Skip to content

Commit 2e878e2

Browse files
committed
stuff
1 parent dedc679 commit 2e878e2

File tree

8 files changed

+59
-7
lines changed

8 files changed

+59
-7
lines changed

.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
node_modules
22
.idea/
3-
.vs/
3+
.vs/
4+
5+
package-lock.json

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
</div>
44

55
# GDDocs
6-
Some documentation for Geometry Dash's servers, and the game itself.
76
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/9badf0ef98b242a7883c6dbd4e6c9443)](https://www.codacy.com?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=gd-programming/gddocs&amp;utm_campaign=Badge_Grade)
7+
Some documentation for Geometry Dash's servers, and the game itself.
88

99
----
1010

docs/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Introduction
22

3-
Welcome to the Geometry Dash Programming [Discord](https://discord.gg/bV6NBs) server's online iteration of documentation for Geometry Dash. Here, you'll find all sorts of information, documents, and resources for interacting with [Geometry Dash](http://robtopgames.com). We aim to make [GDDocs](https://github.com/gd-programming/gddocs) the most comprehensive and open source of information for the game, created by many people who have interacted with the game and wish to share such with others.
3+
Welcome to the Geometry Dash Programming **[Discord](https://discord.gg/bV6NBs)** server's online iteration of documentation for Geometry Dash. Here, you'll find all sorts of information, documents, and resources for interacting with **[Geometry Dash](http://robtopgames.com)**. We aim to make **[GDDocs](https://github.com/gd-programming/gddocs)** the most comprehensive and open source of information for the game, created by many people who have interacted with the game and wish to share such with others.
44

55
The provided documentation is available on it's repository, over [here](https://github.com/gd-programming/gddocs). For all issues regarding information found here, please consult us by creating an issue.
66

docs/_sidebar.md

+11-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
<!-- docs/_sidebar.md -->
22

3-
* [Intro](/)
4-
* [Reference](/reference.md)
3+
- [Intro](/)
4+
- [Reference](/reference.md)
5+
6+
**Resources**
7+
- [Level](/resources/level.md)
8+
9+
**Endpoints**
10+
- *None documented yet*
11+
12+
**Topics**
13+
- [Level Passwords](/topics/level_passwords.md)

docs/index.html

+3
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,8 @@
2626
}
2727
</script>
2828
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
29+
30+
<!-- Additional Languages -->
31+
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-python.min.js"></script> <!-- Python -->
2932
</body>
3033
</html>

docs/reference.md

+11-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
1-
# GD API References
1+
# Geometry Dash References
22

33
The **Geometry Dash** servers are based around one main HTTP server, rather than primarily through secondary sources or establishing a direct REST api for usage. All endpoints are stored over the `/database` folder, rather than the base.
44

5-
###### Server/Database URL
5+
**Server/Database URL**
66
```
77
http://www.boomlings.com/database
8+
```
9+
10+
## Server Responses
11+
12+
Most server repsonses are formatted in weird ways, not in more usual ways like **JSON**, or **XML**. Usually, they're formatted in a way that consists of `key:value`, not really in a way that gives each key a name; but is more similar to an ID system. Most responses will use the splitters `:`, `|`, or `#`, the last two being mostly to split between multiple response strings, usually seen in filtering endpoing such at `getGJLevels` or `getGJUsers`.
13+
14+
**Example of a String**
15+
```
16+
1:61154556:2:Chillin:5:1:6:12901137:8:10:9:20:10:3348:12:0:13:21:14:373:17::43:4:25::18:3:19:24962:42:0:45:29651:3:UmVtYWtlIG9mIG15IG9sZCAyLjAgbGV2ZWwgY2FsbGVkIENoaWxsIHhkIEp1c3QgYSBzaW1wbGUgYW5kIGNoaWxsIGxldmVsLCBlbmpveSA6KQ==:15:3:30:0:31:0:37:0:38:1:39:3:46:1:47:2:35:669275
817
```

docs/resources/level.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Levels Resource
2+
3+
## Level
4+
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](#).
5+
6+
### Level Object
7+
**Level Structure**
8+
9+
| Key | Name/Value | Type | Description |
10+
|-----|------------|------|-------------|
11+
| 1 | Level Name | **string** | This is the name of the level. |

docs/topics/level_passwords.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Level Passwords
2+
Level Passwords are numbers of `4 - 6` character long numbers that can be set when a level is published. They are used for setting a way for adding a security to copying levels without making them free, alongside the implemented **Unlisted** property. Over the server, level passwords are encoded in a way that makes it more difficult for people to normally read, to prevent people from directly copying them from the response given from the server.
3+
4+
The property is also used to determine whether a level is set for free copy, or not; with the values `0` being uncopyable, and `1` being free copy.
5+
6+
## Decoding
7+
The passwords to copying levels that have such set aren't plain string, and are encoded in a method commonly seen for values like these. Like most of the base64, it's done in [URL Encoded Base64]() The method of decryption is as follows:
8+
9+
`Decode Base64` -> `Xor Cipher (key 26364)` -> `Level Password`
10+
11+
**The following pseudocode demonstrates this process programmatically:**
12+
```py
13+
def decode_level_password(password):
14+
decoded_b64 = base64.b64decode(password) # decode the password from base64
15+
decoded = xor.cipher(password, 26364) # put it through the xor cipher with the key 26364)
16+
17+
return password
18+
```

0 commit comments

Comments
 (0)