Skip to content

uploadGJLevelList.php

Uploads a created list to the servers.

Parameters

ParameterExplanationRequired
gameVersionA number representing the game's version. The current value is 22 for 2.2Yes
accountIDThe player's account ID (not to be confused with user ID). Used for authorizationYes
gjp2The player's account password, encoded with GJP2. Used for authorizationYes
listIDThe ID of the list if updating to a newer version, otherwise 0Yes
listNameThe name of the list, in plain textYes
listDescThe description of the list, in URL-safe base64Yes
listLevelsAll level IDs included in the list, separated by ,Yes
difficultyThe list's difficulty face. -1 is N/A, and then it's 0-10 where 0 is Auto and 10 is Extreme DemonYes
listVersionAlways 0Yes
originalThe ID of the original list if the list was copied, otherwise 0Yes
unlistedSet to 2 if the list should be unlisted, and to 1 if the list should be unlisted and only viewable by friendsYes
seedA mandatory chk value generated from the first 50 characters of the listLevels parameter, followed by the accountIDYes
seed25 randomly generated characters from [A-Za-z0-9]Yes
secretCommon Secret: Wmfd2893gb7Yes
binaryVersionA number representing the game's small version. The current value is 47 for 2.2081 on PC and 48 for 2.208 on mobile
udidThe player's UDID (Unique Device Identifier). Used to identify unregistered users
uuidIn modern versions, this is sent as the user ID. See the previous format here
dvsA number added in 2.208 representing the device the player is using. Corresponds to the Cocos2d CC_TARGET_PLATFORM macro: 1 for iOS, 2 for Android, 3 for Windows, 8 for macOS

Response

Returns the ID of the uploaded list, or -1 if the request was rejected.

Example

Python

py
import requests
import random
from string import ascii_letters, digits  # so we don't have to type [A-Za-z0-9] by hand

possible_letters = ascii_letters + digits
seed = ("").join(random.choices(possible_letters, k=5))

data = {
    "gameVersion": 22,
    "accountID": 173831, # This is DevExit's account ID
    "gjp2": "*******", # This would be DevExit's password encoded with GJP2 encryption
    "listLevels": "128,132,133,134,136", # These are the IDs of the levels in the list
    "listID": 0,
    "listName": "First Levels", # This is the list name
    "listDesc": "QSB0ZXN0IGxpc3QgZm9yIHRoZSBHRCBEb2NzIQ==", # "A test list for the GD Docs!"
    "listVersion": 0,
    "original": 0,
    "difficulty": 3, # This indicates a Hard difficulty face
    "unlisted": 2, # This list is unlisted, but does exist!
    "levelString": levelString, # The level string for the level described above
    "seed": seed,
    "seed2": '', # TODO,
    "secret": "Wmfd2893gb7"
}

headers = {
	"User-Agent": ""
}

url = "https://www.boomlings.com/database/uploadGJLevelList.php"

req = requests.post(url=url, data=data, headers=headers)
print(req.text)

Response

plain
297650