World of Goo Online APIs
- Login to post comments
Recently I used Console Debugger and find out maybe all of those World of Goo Online APIs. All World of Goo does is fetch a url and get the result.
Following are the APIs.
Don't open them with your browser casually because it WORKS!
Get Player Key: (click connect in the World of Goo Corporation)
https://worldofgoo.com/wogbuddy2.php?hwkey={hwkey}&name={name}&op=GetPlayerKey&version={version}
hwkey: Seems to be some kind of code for checking. Anyway mine is this one: 93540be1cc0a8c61e6ea0f0f3a4b9d47.
name: No doubt, it's your player name.
version: The version of your World of Goo. For example, mine is 1.40win (1%2e40win).
Result: A player id (described later), An online player key (also described later), your player name, and your country code (determined by your IP address).
Example
POST:
https://worldofgoo.com/wogbuddy2.php?hwkey=93540be1cc0a8c61e6ea0f0f3a4b9d47&name=Mygod%20Data%20Fetcher&op=GetPlayerKey&version=1%2e40win
Response:
<?xml version="1.0" encoding="UTF-8"?> <WogResponse op="GetPlayerKey" result="OK" message="created player Mygod Data Fetcher id 7488097"> <playerkey>df97bc13a9a8d0a02e1939055181f9dd</playerkey> <name>Mygod Data Fetcher</name> <countryCode>CN</countryCode> </WogResponse>
Set level statistics: (submit: World of Goo LEADERBOARD of EXCELLENCE)
https://worldofgoo.com/wogbuddy2.php?balls={balls}&levelid={levelid}&moves={moves}&op=SetLevelStats&playerkey={playerkey}&time={time}&version={version}
balls: Goo balls collected in this level.
levelid: The id of your level, or the directory name of your level.
moves: Moves used in this level.
playerkey: Online player key. It is stored in your profile and get from the server by using the one above.
time: Seconds used in this level.
Result: Nothing useful, only a message: recorded levelstat for player {name}, levelid {levelid}
Example
POST:
https://worldofgoo.com/wogbuddy2.php?balls=4&levelid=GoingUp&moves=3&op=SetLevelStats&playerkey=a647df2dd93935fab47ee234693e7740&time=5&version=1%2e40win
Response:
<?xml version="1.0" encoding="UTF-8"?> <WogResponse op="SetLevelStats" result="OK" message="recorded levelstat for player tmp, levelid GoingUp"/>
Submit your tower:
https://worldofgoo.com/wogbuddy2.php?ballCount={ballCount}&ballCountAttached={ballCountAttached}&height={height}&op=SetWogcStat&playerkey={playerkey}&version={version}
ballCount: Goo balls you have collected, for example 1300, but not 300 which is the upper limit of World of Goo Corporation.
ballCountAttached: Goo balls you have used to build a tower in World of Goo Corporation.
height: The height of your tower.
Result: Your rank!
Example
POST:
https://worldofgoo.com/wogbuddy2.php?ballCount=23&ballCountAttached=3&height=2%2e0&op=SetWogcStat&playerkey=a647df2dd93935fab47ee234693e7740&version=1%2e40win
Response:
<?xml version="1.0" encoding="UTF-8"?> <WogResponse op="SetWogcStat" result="OK" message=""> <rank>5519948</rank> </WogResponse>
Get other players' statistics:
https://worldofgoo.com/wogbuddy2.php?height={height}&op=GetWogcStats&playerkey={playerkey}&version={version}
Result: Other players' statistics.
player_id: The id of the player. Maybe 6000000 means you are the 6000000th player in World of Goo!
player_name: The name of the player.
heightMax: The max height of the tower you have uploaded.
countryCode: Your country code.
timeCreated: The time of you click connect in the World of Goo Corporation. Time zone: -7:00
timeModified: The time of the tower was uploaded.
Example
POST:
https://worldofgoo.com/wogbuddy2.php?height=0&op=GetWogcStats&playerkey=a647df2dd93935fab47ee234693e7740&version=1%2e40win
Response:
<?xml version="1.0" encoding="UTF-8"?> <WogResponse op="GetWogcStats" result="OK" message=""> <HighTowerStats> <HighTowerStat player_id="7488208" player_name="dy" height="10.5" heightMax="10.5" ballCount="275" ballCountAttached="83" countryCode="CN" timeCreated="2012-08-21 20:35:43" timeModified="2012-08-21 21:25:18"/> <HighTowerStat player_id="7486684" player_name="L" height="12.8" heightMax="20.9" ballCount="718" ballCountAttached="153" countryCode="IR" timeCreated="2012-08-21 07:14:57" timeModified="2012-08-21 21:25:13"/> <HighTowerStat player_id="7328975" player_name="Surmak" height="15.2" heightMax="29.4" ballCount="1757" ballCountAttached="278" countryCode="US" timeCreated="2012-07-12 21:32:08" timeModified="2012-08-21 21:25:11"/> <HighTowerStat player_id="7177384" player_name="" height="6" heightMax="13.5" ballCount="375" ballCountAttached="107" countryCode="CN" timeCreated="2012-06-01 19:06:08" timeModified="2012-08-21 21:25:01"/> <HighTowerStat player_id="6150690" player_name="12" height="8.2" heightMax="12.4" ballCount="369" ballCountAttached="69" countryCode="RU" timeCreated="2011-10-04 21:05:56" timeModified="2012-08-21 21:24:46"/> <HighTowerStat player_id="7487539" player_name="santiago" height="12" heightMax="12" ballCount="183" ballCountAttached="60" countryCode="CO" timeCreated="2012-08-21 14:36:21" timeModified="2012-08-21 21:24:25"/> <HighTowerStat player_id="7488354" player_name="RK" height="6.4" heightMax="7.1" ballCount="74" ballCountAttached="23" countryCode="CN" timeCreated="2012-08-21 21:19:57" timeModified="2012-08-21 21:24:22"/> <HighTowerStat player_id="7488323" player_name="12" height="10.4" heightMax="10.4" ballCount="182" ballCountAttached="46" countryCode="RU" timeCreated="2012-08-21 21:10:43" timeModified="2012-08-21 21:24:20"/> </HighTowerStats> </WogResponse>
P.S. It seems worldofgoo.com isn't stable so sometimes you will get a empty response.
EDIT: Just figured what hwkey
is.
Awesome!
Now this gives me an idea. When David gets the leaderboards working, sometime after the new version of Drupal is out, what it we hexed the executable to replace worldofgoo.com/wogbuddy2 with goofans.com/leaderboards and set it up to record level data?
Another Planet finally has an official release! Download chapters 1 through 3 here! Thank you for waiting so long while I kept starting over.
Wow, cool. Good job decoding all those.
Do you think that the "Get other players' statistics" section is for showing other people's towers in World of Goo? It'd also be cool if you had some kind of communications monitor running on your computer (like Wireshark does in Linux) so you can see when World of Goo is polling all of this.
IRC | Chapter Tutorial | Reference Guide
Thanks. By the way, how do you unshell the program?
| Things I made | And even more |
Sorry, unshell what program? What are you talking about?
IRC | Chapter Tutorial | Reference Guide
| Things I made | And even more |
Shelled? As in, another program is launching it indirectly?
Another Planet finally has an official release! Download chapters 1 through 3 here! Thank you for waiting so long while I kept starting over.
| Things I made | And even more |
Good job. Actually I reverse-engineered this a couple of years ago (yes, by hex editing the exe to post to my server!) in preparation for us hosting the leaderboards. There's a fully functional wogbuddy2.php on our server; unfortunately 2D Boy lost interest so the live game never got pointed at us.
Oh, forget what I said then.
By the way, davidc, do you know how playerkey and hwkey work?
| Things I made | And even more |
I'm unlocking this thread because Mygod has new information.
Another Planet finally has an official release! Download chapters 1 through 3 here! Thank you for waiting so long while I kept starting over.