GeometryDashAPI
API for Geometry Dash
So, **GeometryDashAPI** is the library for edit _everything_ that you imagine Amooong things... The project is written primarily in C#, distributed under the MIT License license, first published in 2018. Key topics include: api, game, game-data, geometry-dash.

So, GeometryDashAPI is the library for edit everything that you imagine
Amooong things...
Levels
Edit your own level from the stored data, or download from the server and... edit it!
csvar local = await LocalLevels.LoadFileAsync(); var level = local.GetLevel("MyLevel", revision: 0).LoadLevel(); level.AddColor(new Color(11) { Rgb = RgbColor.FromHex("#ffa500") // orange }); for (var x = 0; x < 1024; x += 4) { level.AddBlock(new ColorBlock(1887) { PositionX = x, PositionY = (float)Math.Sin(x / 100f) * 120, ColorBase = 11 }); } local.GetLevel("MyLevel", revision: 0).SaveLevel(level); await local.SaveAsync();

Stored data
Open .dat/.plist file for explore your own statistics, creation, downloads, achievements and more
csvar manager = GameManager.LoadFile(); manager.PlayerName = "your name :>"; manager.Save();
For editing .dat files with a text editor, you can use CLI tool for unpacking them
Network
Don't think about communicates with the server.
Ready-made methods are at your disposal for
- search
- account
- ...
to be honest there are few methods.todo: add a new items when make more methods ;)
csvar client = new GameClient(); var user = await client.SearchUserAsync("Folleach");
You can even interact with unofficial servers too
How to use
- Install
GeometryDashAPIfrom Nuget - The end. You can use it :)
See wiki for learn more information
Tested on
- .NET 6
- .NET Core 2.2
- .NET Framework 4.8
Versions convention
The main version pattern is 0.x.y
Where x is this some new feature or a big rework
Where y is this a small fix [bug]
Sometimes there are -alpha suffix appears.
This is means experiment release for include this library to other projects
Major 0 will be change to 1 when library will support most features of game
Every version should contains a tag, with prefix v.
Example: v1.2.3-alpha
Used libraries
| Name | Link |
|---|---|
| SharpZipLib | GitHub |
| csFastFloat | GitHub |
| UrlBase64 | GitHub |
Contributors
Showing top 6 contributors by commit count.
