The Sims Social is an online social-network game owned by Playfish (a part of EA).
Resource Manifest[]
The Resource Manifest is loaded by the game pre-loader, and is used for estalishing the url and size of various in-game resources, including the GameEngine which contains most game logic. The Resource manifest is most often compressed using zlib, however it can be decompressed by removing the first four bytes and then running it though a decompressor. (If you use a decompressor expecting DEFLATE, you must remove the 2 byte zlib header). Once decompressed, it is a simple xml file in the format:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <config> <paths> <path src="http://d.static-cdn.playfish.com/game/simssoc/d/" name="3"/> <path src="http://a.static-cdn.playfish.com/game/simssoc/d/" name="2"/> <path src="http://b.static-cdn.playfish.com/game/simssoc/d/" name="1"/> <path src="http://c.static-cdn.playfish.com/game/simssoc/d/" name="0"/> </paths> <resources path="3"> <resource length="992798" src="63QDVnRCs1" name="GameEngine"/> </resources> </config>
The url for the resource manifest is passed to the flash pre-loader as the "pf_manifest_url" flashvar, e.g. http://static-cdn.playfish.com/game/simssoc/d/usXhXexXc1
RPC Packet Format[]
The Sims Social uses a binary RPC format similar to most other Playfish games. All messages are sent over a HTTP POST to http://simssoc.game.playfish.com/g/rpc/simssoc/ and start with a NULL byte (00) followed by a 1-byte message type and then the session id, followed by the message-specific bytes.
Message Types[]
ID | Name | Format/Parameters |
---|---|---|
1 | init |
|
3 | save |
|
5 | loadUserInfo | |
9 | getAllFriends |
|
10 | getFriends | |
11 | getFeedLink | |
12 | buyNPCRoomBuildingHelp | |
13 | buyCashItem | |
14 | buyTraitWithCash | |
15 | upgradeTraitWithCash | |
16 | buyEnergy | |
17 | changePersonalityWithCash | |
18 | payCashToSkipQuest | |
19 | buyCoinsForCash | |
20 | activateFeedLink | |
21 | buySocialPointForCash | |
230 | logPlatformEvent | |
231 | getQuotesForDirectPayments | |
232 | inboxSendLetterByRequestType | |
233 | getTokenForLetter | |
234 | getCurrencyBalance | |
235 | geterverTimeOffset | |
236 | adjustServerTimeOffset | |
237 | getPlayfishUID | |
238 | inboxGetRestrictedSendUsers | |
239 | getEmailPermissions | |
240 | inboxSendLetter | |
241 | inboxAcknowledgeLetters | |
242 | inboxGetLetters | |
243 | getPlayFishCashAndMessages | |
244 | getPlayFishCashMessages | |
245 | removePlayfishCashMessages | |
246 | getPricepoints | |
247 | claimRewards / pollEvents | |
248 | getCashBalance | |
249 | getServerTime | |
250 | getPurchasableItems | |
251 | recordGameEvent | |
253 | getTimeToken0 | |
254 | ping | |
255 | batchOperation |
The following bytes are subrequests, each with 1-byte type then the message request body. |