|
Some checks failed
Build Binaries / Build Windows (push) Has been cancelled
Build Binaries / Build macOS (push) Has been cancelled
Build Binaries / Build Android (64-bit) (push) Has been cancelled
Build Binaries / Build Android (32-bit) (push) Has been cancelled
Build Binaries / Build iOS (push) Has been cancelled
Check CHANGELOG.md / Check CHANGELOG.md (push) Has been cancelled
Build Binaries / Publish (push) Has been cancelled
|
||
|---|---|---|
| .github | ||
| cmake | ||
| installer | ||
| loader | ||
| .clang-format | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| CHANGELOG.md | ||
| CMakeLists.txt | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| entry.cpp | ||
| flash.toml | ||
| GEODE_EULA | ||
| LICENSE.txt | ||
| README.md | ||
| title.png | ||
| VERSION | ||
Home page
Geode is a Geometry Dash mod loader and modding SDK with a modern approach towards mod development.
Why Geode?
Unlike previous mod loaders, which merely inject the DLLs and let devs handle the rest, Geode aims to be a more comprehensive project that provides all the tools needed for creating mods in one package.
Geode's goal is to solve mod incompatibility - to ensure that mods work together without buttons getting misplaced or hooks mysteriously disappearing.
"Hello World!" Example
Here's a Hello World mod in Geode:
#include <Geode/Bindings.hpp>
#include <Geode/modify/MenuLayer.hpp>
using namespace geode::prelude;
class $modify(MenuLayer) {
void onMoreGames(CCObject*) {
FLAlertLayer::create(
"Geode",
"Hello World from my Custom Mod!",
"OK"
)->show();
}
};
This code modifies what happens when the "More Games" button is clicked on the home scene in Geometry Dash, showing a custom popup.
Documentation
Detailed documentation, tutorials, and installation instructions on using Geode can be found here.
New to modding GD? Geode's documentation also comes with a handy tutorial book that explains all the basics of GD modding!
Contribution
You can contribute to Geode by opening a Pull Request! Please follow the contribution guidelines.
Build instruction - not added by geode team
When building for another platform, delete the build directory in the root of the Geode source tree.
Windows (must be run on Linux)
- Follow CI until configuration.
export SPLAT_DIR=$(pwd)/.xwin-cache/splat TOOLCHAIN=$(pwd)/toolchain/clang-cl-msvc.cmake HOST_ARCH=x86_64./xwin --arch x86_64 --sdk-version 10.0.22621 --accept-license list(may not be required, it should have been ran in ci)cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGEODE_CODEGEN_CMAKE_ARGS="-DCMAKE_C_COMPILER=clang;-DCMAKE_CXX_COMPILER=clang++;-G Ninja" -G Ninja -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DGEODE_UNITY_BUILD=ONcmake --build build --config RelWithDebInfo --parallel- Geode files will be in
bin/nightly/. These can be manually installed onto a Windows copy of Geometry Dash, in the same directory asGeometryDash.exe.
Android (must be run on non-Android Linux)
- Download the Android NDK at https://developer.android.com/ndk/downloads/, and set
ANDROID_NDK_LATEST_HOMEto the path of the NDK withexport ANDROID_NDK_LATEST_HOME=/path-to/android-ndk/ - Follow CI until configuration.
cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGEODE_CODEGEN_CMAKE_ARGS="-DCMAKE_C_COMPILER=clang;-DCMAKE_CXX_COMPILER=clang++;-G Ninja" -G Ninja -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DANDROID_PLATFORM=android-23 -DANDROID_STL=c++_shared -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DANDROID_ABI=arm64-v8a. Replacearm64-v8awitharmeabi-v7aif you want to build for 32-bit Android.cmake --build build --config RelWithDebInfo --parallel- Geode files will be in
bin/nightly/. The .so can be manually installed onto the Geode app on your device withadb push bin/nightly/Geode.android64.so /sdcard/Android/media/com.geode.launcher(bin/nightly/Geode.android32.soon a 32-bit build), or with the built-in file browser (may not work on all models). Ensure that automatic updates are disabled, or it will get replaced with the regular version of Geode automatically.
Questions, help, etc.
If you have any further questions, need help, be sure to join the Geode Discord server!