Skip to content

Deliberate differences from real GD

MegaSa1nt edited this page Dec 27, 2022 · 5 revisions

This article aims to document things that differ between servers hosted using this repository and the real Geometry Dash server on purpose.

Backwards compatibility

Unlike real GD, this repo aims to be compatible with all Geometry Dash versions. This means that if you create a 3rd party tool meant to interface with the Geometry Dash endpoints directly, you must supply the gameVersion and binaryVersion POST parameters, otherwise you will be served a version intended for Geometry Dash 1.0 or whatever is the lowest version supported by the endpoint.

Note that the responses won't be period accurate - not only are old responses from most Geometry Dash versions unavailable, the focus here is to just make things work in older versions - older versions may still be served information only meant to be processed by later ones, as long as it can be safely ignored.

Note that you have to enable $unregisteredSubmissions in config/security.php for versions before 2.0 to work because the server restricts all actions to registered users otherwise.

Also certain features exclusive to older versions have not been implemented yet, notable examples are Top Week and restoreGJItems.

1.9

Accounts are disabled in Geometry Dash 1.9 - you can log in but once you log in, the server won't allow you to do anything. This is due to 1.9 lacking any password verification mechanisms while logged in, which means that without this countermeasure, login bypass hacks would be fully working.

Timestamps

In the current version, the full date & time of uploads is printed instead of a string formatted like 2 weeks [ago].

Future plans: Make this optional with a config option with the default being the current real GD behavior on versions 2.0 and newer and to print a string formatted like real GD did it on versions 1.9 and prior.

Creator Points

Please refer to the below table for awarded creator points differences:

Real GD GMDprivateServer
Rated 1 CP 1 CP
Featured 1 CP 1 CP
Epic 1 CP* 2 CP
Daily 0 CP 1 CP
Gauntlet 0 CP 1 CP
  • Back in early 2017 Epic levels used to award 2 CP instead of 1, however this has since been changed by RobTop.

Note that the table lists Epic levels as awarding 2 CP on private servers, however in practice, they usually actually award 4 CP. The reason is, that Epic levels are usually also Featured and Rated, which acumulates to 4 CP total. This behavior differs from real GD where featured levels without stars don't award CP at all. This means that the maximum a single level can award on real GD is 3 CP and 6 CP on private servers.

Players also have the option to share CP gained from a single level among multiple people. This option can equally split creator points between multiple people (example: 1 level awarding 4 CP -> 2 people, including creator: each gets 2 CP, 3 people: each gets 1.333 CP)). Points gained from the level being a Daily or Gauntlet feature do not count into this split - these still go to the uploader directly.

Future plans: Add a config file allowing server owners to edit these values.

Commands

The comments system has built-in commands, comments beginning with ! are reserved for these. If the command is successful, the server returns a temp_0_Command executed successfully - You've been banned for 0 second! Reason: Command executed successfully. If it wasn't, the command will appear as a normal comment.

Default downloads/likes

All levels have 300 downloads and 100 likes upon uploading. The current reasoning for this is that this makes it easier to gain the 100 likes achievement. These defaults are set in the SQL database structure and may be changed in the future.

Sakujes April fools joke

On April 1st every year, all leaderboards will display Sakujes with 999 stars instead of legitimate players. This is only a visual thing and is changed back the day after.

Account activation

Account activation using e-mail is not implemented. All accounts are activated by default, however server owners do have the option to enable an optional requirement to activate accounts with a captcha in config/security.php. The user-facing endpoint for this part of the activation is tools/activateAccount.php.

Unlisted levels

Users are able to change whether a level is unlisted using commands.

In the current version, friends only unlisted is not implemented. This means that anyone can view any unlisted levels if they know the ID.

Future plans

Friends only unlisted will be implemented in a slightly different way from real GD. Levels will be searchable by anyone but they won't be downloadable for non-friends. This is due to GD 2.1 not sending the account ID and GJP combination while searching and therefore there being no way to verify the user's identity other than their IP address. This information is sent while downloading levels though, so it is possible to do proper verification of whether the user is supposed to be able to access the level. This behavior is only expected to be temporary before the release of Geometry Dash 2.2, which will hopefully address the underlying issue.

User-based level/demon difficulty voting

This feature is not implemented yet.

This Sidebar has some extra information that might help you :)

  • Stuck? Read the wiki to know how to install the GDPS to your server.
  • Have an issue? Then feel free ask questions or problems in Discussions tab.
  • Want to go to a different page on the wiki? Click the dropdown titled "Pages" above this little section that you are reading right now.
Clone this wiki locally