Skip to content

Server User Resource ​

Users ​

Each player of Geometry Dash has their own profile which includes various different elements such as in-game stats, icons and even socials.

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

User Example Response ​

md
1:Rifct:2:81183402:13:132:17:1921:10:17:11:12:51:105:3:23843:52:1607:46:36431:4:502:8:66:18:0:19:0:50:0:20:Rifct:21:334:22:129:23:67:24:148:25:62:26:40:28:1:43:38:48:1:53:25:54:1:30:6481:16:8927557:31::44:Rifct:45:RifctGD:59:RifctGD:60::58:Rifct:61:balls:49:0:55:336,34,15,12,9,16,5,5,2,1,51,11:56:90,95,100,1010,1424,346,210,66:57:4,3,11,101,92,25,0:29:1

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.

KeyName/ValueTypeDescription
1userNameStringThe player's display name
2userIDIntegerThe player's User ID
3starsIntegerThe player's star count
4demonCountIntegerThe number of demons the player has completed
6rankingIntegerThe player's ranking on the global leaderboard
7accountHighlightStringThe player's account ID, or the device ID for unregistered players. Used for highlighting unregistered players on the leaderboards. For registered players, the game instead checks if the accountID field matches the current account.
(only returned by getGJScores20 when viewing yourself on a leaderboard).
8creatorpointsIntegerThe number of creator points the player has
9iconIDIntegerThe ID of the player's display icon (see iconType)
10colorIntegerThe player's primary icon color
11color2IntegerThe player's secondary icon color
12shipIDIntegerDeprecated key; the player's ship ID in 1.4 and 1.5. Was 0 if a cube was selected instead of a ship
13secretCoinsIntegerThe number of secret coins the player has
14iconTypeIntegerThe icon displayed on leaderboards, comments, etc. (see the Gamemode enum)
15specialIntegerMirrors accGlow for non-getGJUserInfo20 requests. 0 = Glow Disabled, 2 = Enabled. Was the ID of the player's trail prior to 2.0
16accountIDIntegerThe player's account ID
17userCoinsIntegerThe number of user coins the player has
18*messageStateIntegerWho can send the player messages. 0 = All, 1 = Friends only, 2 = None
19*friendsStateIntegerWho can send the player friend requests. 0 = All, 1 = None, 2 = All, and messages can be attached
20*youTubeStringThe player's YouTube channel
21*accIconIntegerThe ID of the player's cube
22*accShipIntegerThe ID of the player's ship
23*accBallIntegerThe ID of the player's ball
24*accBirdIntegerThe ID of the player's UFO
25*accDartIntegerThe ID of the player's wave
26*accRobotIntegerThe ID of the player's robot
27accStreakIntegerThe ID of the player's trail. Is not sent, see trivia
28*accGlowBoolIf the player has glow enabled
29*isRegisteredBoolIf the player is registered
30*globalRankIntegerThe global rank of the player
31*friendStateIntegerFriendship status. Empty = Unfriended, 1 = Friended, 3 = Friend request sent to the player, 4 = Friend request received from the player
32*friendRequestIDIntegerAn ID unique to each friend request
(only returned if player sent you a friend request)
35*friendRequestMessageStringThe friend request's message, encoded in base64
(only returned if player sent you a friend request)
37*friendRequestAgeIntegerHow long ago the friend request was sent (e.g. "2 months")
(only returned if player sent you a friend request)
38*messagesIntegerThe number of new messages you have
(only returned when logged in and viewing own profile)
39*friendRequestsIntegerThe number of new friend requests you have
40*newFriendsIntegerThe number of new friends you have
41newFriendRequestBoolIf the friend request is new
(only returned by getGJFriendRequests20)
42*ageStringThe time since you submitted a levelScore
(only returned by getGJLevelScores211)
43*accSpiderIntegerThe ID of the player's spider
44*twitterStringThe player's Twitter handle
45*twitchStringThe player's Twitch channel
46diamondsIntegerThe number of diamonds the player has
48*accExplosionIntegerThe ID of the player's explosion effect
49*modIntegerThe mod level of the player. 0 = None, 1 = Normal Mod (Yellow), 2 = Elder Mod (Orange), 3 = Leaderboard Mod (Blue). Leaderboard mods show as 0 if gameVersion is not set to 22 or above
50*commentHistoryStateIntegerWho can view the player's comment history. 0 = All, 1 = Friends only, 2 = None
51color3IntegerThe player's glow color
52moonsIntegerThe player's moon count
53*accSwingIntegerThe ID of the player's swing
54*accJetpackIntegerThe ID of the player's jetpack
55*demonsStringBreakdown of the player's demons, in the format {easy},{medium},{hard},{insane},{extreme},{easyPlatformer},{mediumPlatformer},{hardPlatformer},{insanePlatformer},{extremePlatformer},{weekly},{gauntlet}
56*classicLevelsStringBreakdown of the player's classic mode non-demons, in the format {auto},{easy},{normal},{hard},{harder},{insane},{daily},{gauntlet}
57*platformerLevelsStringBreakdown of the player's platformer mode non-demons, in the format {auto},{easy},{normal},{hard},{harder},{insane},{the map}
58*discordStringThe player's Discord handle
59*instagramStringThe player's Instagram username
60*tiktokStringThe player's TikTok handle
61*customStringThe player's custom one-time authentication token
62*groupStateIntegerWho can invite the player to groups. 1 = Friends, 2 = None
63*gOIntegerUnknown. Seemingly related to the gO parameter in updateGJAccSettings20
64friendsSince / followingSinceIntegerThe unix timestamp representing the amount of time you've been friends with this player. In getGJUserList type 3, it's replaced with the UNIX timestamp that represents when you followed this user
67*followersIntegerThe amount of people following this account
68*followingIntegerHow many accounts you follow. Can only be fetched for yourself (requires your own gjp2)
69*isFollowingBoolWhether you are following this person (requires auth)

Keys indicated with an asterisk (*) are only returned from the getGJUserInfo20 endpoint. Conversely, keys 6, 9, 14, & 15 are only returned by user search endpoints (getGJUsers20, getGJScores20). Key 64 is only returned by endpoint getGJUserList20.

Thread Invite User Object ​

In threads, users who are invited to the group but haven't accepted the invite yet are represented differently than regular user objects. They do not use key:value:key:value pairings, and instead are a fixed list of values separated by colons :. The values are as follows:

accountID:userID:username:invitedBy:iconID:color1:color2:color3:iconType:special:stars:moons:demons:secretCoins:userCoins:diamonds:friendsSince

The username is encoded in base64. invitedBy is the account ID of the user that invited them.

Thread Former User Object ​

In threads, users who have left or have been kicked are represented similarly to invited users, but with less values. They are as follows:

accountID:userID:username:iconID:color1:color2:color3:iconType:special

The username is encoded in base64, just like for invited users.

Trivia ​

  • Setting Key 29 to 0 stops most aspects of your profile from loading

  • Key 27 is impossible to recieve from the server as there is no way for the server to know what the player's streak is

  • Key 15 represented the player's streak prior to 2.0; the 2 it now returns would have corresponded to the rainbow trail