Geode mods for Geometry Dash. Each subfolder is an independent Geode mod project with its own CMakeLists.txt, mod.json, and src/.
| Folder | Purpose |
|---|---|
Telemetry/ |
Player-only telemetry to shared memory (/gdrl_ipc) every frame |
TelemetryObstacles/ |
Player telemetry + nearby obstacle scanning to shared memory |
TrainingPipeline/ |
V3 ring buffer for human play recording and RL training (/gdrl_ipc_v3) |
ModTemplate/ |
Clean starting point for new mods — copy this, update mod.json, write in src/main.cpp |
- Copy
ModTemplate/to a new folder - Update
mod.json: set a uniqueid(e.g.yourname.modname),name, anddeveloper - Write hook logic in
src/main.cpp - Build and install:
cmake -S mods/YourMod -B mods/YourMod/build
cmake --build mods/YourMod/build -j
cp mods/YourMod/build/yourname.modname.geode "$GEODE_MODS_PATH/"- Launch Geometry Dash, open the Geode menu (bottom-right corner), go to Mods, and enable your mod. Restart GD if prompted.
cmake -S mods/Telemetry -B mods/Telemetry/build
cmake --build mods/Telemetry/build -j
cp mods/Telemetry/build/gdrl.telemetry.geode "$GEODE_MODS_PATH/"cmake -S mods/TelemetryObstacles -B mods/TelemetryObstacles/build
cmake --build mods/TelemetryObstacles/build -j
cp mods/TelemetryObstacles/build/gdrl.telemetry-obstacles.geode "$GEODE_MODS_PATH/"cmake -S mods/TrainingPipeline -B mods/TrainingPipeline/build
cmake --build mods/TrainingPipeline/build -j
cp mods/TrainingPipeline/build/gdrl.training-pipeline.geode "$GEODE_MODS_PATH/"Launch Geometry Dash, open the Geode menu (bottom-right corner), go to Mods, and enable the mod you want to run. Restart GD if prompted.
Only enable one mod at a time — Telemetry and TelemetryObstacles share /gdrl_ipc, and TrainingPipeline uses a separate segment /gdrl_ipc_v3. Do not run TrainingPipeline alongside either Telemetry mod.
python -m gdrl.env.live_monitor --print-every 25# player state only (default)
python -m gdrl.env.live_monitor --print-every 25
# with obstacles
python -m gdrl.env.live_monitor --print-every 25 --show-objects
# show only first k nearest obstacles
python -m gdrl.env.live_monitor --print-every 25 --show-objects --num-objects kIf a stale shared memory segment remains after a crash:
python -m gdrl.env.geode_shm_cleanup --shm-name gdrl_ipcpython -m gdrl.data.record_human --out artifacts/recordings/ --shard-size 10000If a stale shared memory segment remains after a crash:
python -m gdrl.env.geode_shm_cleanup --shm-name gdrl_ipc_v3