https://github.com/thisisignitedoreo/uvbot
A TAS tool for Geometry Dash
https://github.com/thisisignitedoreo/uvbot
geometry-dash geometry-dash-bot geometry-dash-mod
Last synced: 6 months ago
JSON representation
A TAS tool for Geometry Dash
- Host: GitHub
- URL: https://github.com/thisisignitedoreo/uvbot
- Owner: thisisignitedoreo
- License: unlicense
- Created: 2025-08-18T21:52:01.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-09-02T15:32:40.000Z (6 months ago)
- Last Synced: 2025-09-02T17:29:51.935Z (6 months ago)
- Topics: geometry-dash, geometry-dash-bot, geometry-dash-mod
- Language: C
- Homepage:
- Size: 326 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.adoc
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
README
image::logo.png[uvBot logo,200]
= uvBot
A free and open source TAS tool for Geometry Dash
WARNING: You are kinda early. This is still in heavy development
Features include:
* Good accuracy (Hardest recorded level by me is Flamewall I think?)
* Standalone-ness (You don't need an additional mod menu to use this bot efficiently)
* Internal Recorder
== Quickstart
Compile it, download from https://github.com/thisisignitedoreo/uvbot/actions[Actions] or from https://github.com/thisisignitedoreo/uvbot/releases[Releases]
== `.uv` format
The file format is as follows:
[source,c]
----
typedef uint64_t frame_t;
struct input {
frame_t frame;
uint8_t flags;
// Least significant bit - hold or release
// The rest (.flags >> 1) - button:
// 0 - Jump P1
// 1 - Left P1
// 2 - Right P1
// 3 - Jump P2
// 4 - Left P2
// 5 - Right P2
// Bits: [ U U U U B B B D ]
// U - unused
// B - button bits
// D - down bit
};
struct physic {
frame_t frame;
float x, y, rotation, y_velocity;
};
struct replay {
char front_magic[5] = "UVBOT";
uint8_t version = 2;
#if version == 2
float tps;
#endif
int32_t inputs, physics_p1, physics_p2;
struct input input_actions[inputs];
struct physic physic_p1_actions[inputs];
struct physic physic_p2_actions[inputs];
char back_magic[5] = "TOBVU";
};
----
== Contributions
This project is *Open Source*, however, it is not *Open Contribution*.
Any pull request created will be closed. Issues, however, are welcome.
The reason is simple - I want to have all the control over the codebase,
so a bad reviewed PR won't break the bot or introduce some kind of
undebuggable bug.
If you want to have a version with your modifications - feel free to
create a fork, however, none of them will be accepted into upstream.
== Links
* https://discord.gg/GmRDUKRqE8[Discord Server]
== Thanks to
* @matcool for ReplayBot, from which both the `subprocess.hpp` header
and recorder implementation was taken
* @tobyadd for GDH for a _lot_ of stuff (`grep -rn "// Thanks toby" src/ | wc -l`)
* @cvolton for Various Bugfixes from which both the hitboxes mirror fix
and the hitbox physics fix were taken