Pular para o conteúdo

Server Level Resource

Este conteúdo não está disponível em sua língua ainda.

Level

A level is a playable object in Geometry Dash, namely coming with data that explains on what it is, and the string that the client interprets, known as a level string.

A typical level server response is structured with a key:value:key:value pairing and is then split with a |

keep in mind that the value for key 4 will be replaced with {levelString} as it is too big to show

Level Example Response

1:6508283:2:ReTraY:3:VGhhbmtzIGZvciBwbGF5aW5nIEdlb21ldHJ5IERhc2g=:4:{levelString}:5:3:6:4993756:8:10:9:10:10:39431612:12:0:13:21:14:4125578:17::43:3:25::18:2:19:7730:42:0:45:20000:15:3:30:0:31:0:28:5 years:29:1 year:35:557117:36:0_733_0_0_0_0_574_716_0_0_352_78_729_0_42_0_833_68_0_347_0_38_240_205_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0:37:3:38:1:39:2:46:7729:47:13773:40:0:27:AwMABAYDBw==#eb541c03f8355c0709f8007a1d9a595ae5bedc5d#291568b26b08d70a198fca10a87c736a2823be0c

Each key is tied to a component within the client and the value sets data for the specific component.
A list of all known keys can be found in the table below

Level Object

Keys indicated with an asterisk (*) are only returned from the downloadGJLevel22 endpoint.

Level Structure

KeyName/ValueTypeDescription
1levelIDIntegerThe id of the level
2levelNameStringThe name of the level
3descriptionStringThe level description, encoded in base64
4*levelStringLevel StringAll the data for the level
5versionIntegerThe version of the level published
6playerIDIntegerThe player ID of the level author
8difficultyDenominatorIntegerReturns 0 if the level is N/A, returns 10 if a difficulty is assigned. Historically used to be the amount of people who have voted on the difficulty.
9difficultyNumeratorIntegerThe nominator used for calculating the level difficulty. Divided by the denominator to get the difficulty icon. Nowadays just 0 = unrated, 10 = easy, 20 = normal, 30 = hard, 40 = harder, 50 = insane. Can be also used to determine the demon difficulty as a side-effect of the voting system. Historically used to be the sum of stars from all votes
10downloadsIntegerThe amount of times the level has been downloaded
11setCompletesIntegerThe Number of people who have completed a specific level removed in update 2.1
12officialSongIntegerThe official song number used by the level, if applicable
13gameVersionIntegerThe GD version the level was uploaded in. Versions 1.0 to 1.6 use version numbers 1 to 7 respectively. Version 10 is 1.7. Otherwise, divide the version number by ten to get the correct number.
14likesIntegerlikes - dislikes
15lengthIntegerA number from 0-4, where 0 is tiny and 4 is XL
16dislikesIntegerdislikes - likes
17demonBoolIf the level’s difficulty is demon
18starsIntegerThe amount of stars rewarded for completing the level
19featureScoreInteger0 if the level is not featured, otherwise a positive number. The higher it is, the higher the level appears on the featured levels list.
25autoBoolIf the level’s difficulty is auto
26recordStringStringappears in the GJGameLevel parser but is unused
27*passwordEncrypted StringThe password required to copy the level. It is XOR encrypted with a key of 26364
28*uploadDateStringThe approximate date the level was uploaded on
29*updateDateStringThe approximate date the level was last updated on
30copiedIDIntegerThe ID the of the original level (if the level was copied)
31twoPlayerBoolWhether the level uses two player mode
35customSongIDIntegerThe ID of the custom Newgrounds song used in the level
36extraStringStringThe extraString passed when uploading the level. Its use is currently unknown
37coinsIntegerThe number of user coins placed in the level
38verifiedCoinsBoolIf the level’s user coins are verified (silver)
39starsRequestedIntegerThe star value requested for the level
40*lowDetailModeBoolIf the level has a low detail checkbox
41*dailyNumberIntegerDaily/weekly levels only. Returns which daily/weekly the level was (e.g. the 500th daily level). Subtract 100,000 if the level is weekly
42epicIntegerThe epic rating for the level. 0 = none, 1 = epic, 2 = legendary, 3 = mythic.
43demon DifficultyIntegerThe difficulty of the demon rating. 3 = easy, 4 = medium, 0 = hard, 5 = insane, 6 = extreme. Can also be used to determine the level difficulty non-demons had before rating as a side-effect of the voting system.
44isGauntletBoolif the level is in a gauntlet
45objectsIntegerThe amount of objects in the level, used to determine if the level is considered “large”. It caps at 65535
46editorTimeIntegerthe total number of seconds spend on the current copy of a level
47editorTime(Copies)IntegerThe accumulative total of seconds spend on previous copies of the level
48settingsString [Unused]StringIt was found in early 2.1 coming from the servers and was removed shortly after. The December 2019 2.2 Leaks however have information regarding it showing that it is called settingsString but, there is no information regarding its usage
52*songIDsComma-Separated ListThe list of all song IDs in the level, separated by commas
53*sfxIDsComma-Separated ListThe list of all SFX IDs in the level, separated by commas
54unknownIntegerUnknown value, perhaps robtop-only? (corresponds to k106 in the save file)
57*verificationTimeIntegerHow long the level took to verify (in frames, assume 240 FPS)

Trivia

  • The getGJLevels endpoint returns the keys 46 and 47 however they aren’t actually correct (as of 2.1)

  • Keys 46 and 47 are also capped at the 24-bit integer limit so any time longer than around 4660 hours won’t be accurate

  • key 45 caps at the 16-bit integer limit so any level with more objects won’t be accurate

  • Key 57 caps at the 24-bit integer limit so any time longer than around 465 hours won’t be accurate