Skip to content

Latest commit

 

History

History
96 lines (67 loc) · 2.94 KB

File metadata and controls

96 lines (67 loc) · 2.94 KB

mods/

Geode mods for Geometry Dash. Each subfolder is an independent Geode mod project with its own CMakeLists.txt, mod.json, and src/.

Folders

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

Creating a new mod

  1. Copy ModTemplate/ to a new folder
  2. Update mod.json: set a unique id (e.g. yourname.modname), name, and developer
  3. Write hook logic in src/main.cpp
  4. 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/"
  1. Launch Geometry Dash, open the Geode menu (bottom-right corner), go to Mods, and enable your mod. Restart GD if prompted.

Building current mods

Build Telemetry

cmake -S mods/Telemetry -B mods/Telemetry/build
cmake --build mods/Telemetry/build -j
cp mods/Telemetry/build/gdrl.telemetry.geode "$GEODE_MODS_PATH/"

Build TelemetryObstacles

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/"

Build TrainingPipeline

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/"

Running current mods

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.

Run Telemetry (player-state monitoring)

python -m gdrl.env.live_monitor --print-every 25

Run TelemetryObstacles (player + obstacle monitoring)

# 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 k

If a stale shared memory segment remains after a crash:

python -m gdrl.env.geode_shm_cleanup --shm-name gdrl_ipc

Run TrainingPipeline (human play recording + RL training)

python -m gdrl.data.record_human --out artifacts/recordings/ --shard-size 10000

If a stale shared memory segment remains after a crash:

python -m gdrl.env.geode_shm_cleanup --shm-name gdrl_ipc_v3