From be03ff53f69a007f66f39686e4e45b5b645c5303 Mon Sep 17 00:00:00 2001 From: LPuehringerStudent Date: Sun, 15 Mar 2026 22:58:43 +0100 Subject: [PATCH 1/3] Add moderation timeline info to publishing page (#68) Added note about typical approval time (1-7 days) to help set expectations for new mod developers. Closes #68 --- mods/publishing.md | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/publishing.md b/mods/publishing.md index b449067a..25269363 100644 --- a/mods/publishing.md +++ b/mods/publishing.md @@ -15,6 +15,7 @@ Submitting a mod to the official mod index is as follows: 5. Run `geode index mods create` 6. Provide a **direct download link** to the .geode file (for example `https://github.com/HJfod/BetterEdit/releases/download/v6.3.3/hjfod.betteredit.geode`) 7. An **index admin** will have to validate that your mod meets the [index guidelines](/mods/guidelines) and approve your mod. +8. **Approval typically takes 1-7 days.** Please be patient - the team is reviewing mods as quickly as possible while ensuring quality and safety. ## Releasing updates From 7206f41978d568524eed4d74f3f45bbdd7d1c65a Mon Sep 17 00:00:00 2001 From: LPuehringerStudent Date: Sun, 15 Mar 2026 22:59:12 +0100 Subject: [PATCH 2/3] Clarify correct VS toolset in IDE setup (#72) Added explicit note to use x64 toolset (NOT x64_x86) to prevent confusion from outdated screenshot. Fixes #72 --- getting-started/ide-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/ide-setup.md b/getting-started/ide-setup.md index 5447b47d..d1b5bad0 100644 --- a/getting-started/ide-setup.md +++ b/getting-started/ide-setup.md @@ -134,7 +134,7 @@ Now, before you build, make sure to change these settings (these need to be chan ![Image showing the Manage Configurations button in the drop-down](/assets/vs_manage_configurations.png) 3. Change config type to `Release` or `RelWithDebInfo`. We recommend `RelWithDebInfo`, since it provides easier debugging. **You cannot use `Debug` for this!** -4. Make sure the toolset is set to `x64` +4. Make sure the toolset is set to `x64` (NOT `x64_x86` or any other variant) 5. At this point you can also give your configuration a friendly name such as "default" or "release" or something like that 6. And make sure to use Ctrl + S to save your changes From 4e1e36621346c50b963be3d88ac85825df31caf0 Mon Sep 17 00:00:00 2001 From: LPuehringerStudent Date: Sun, 15 Mar 2026 23:10:39 +0100 Subject: [PATCH 3/3] Add comprehensive namespace documentation (#911) Created new documentation page explaining all Geode namespaces: - geode (main) - geode::modifier - geode::addresser - geode::async - geode::utils - geode::cocos - geode::stl - gd (Geometry Dash shortcut) - cocos2d (game engine) Includes usage examples and best practices. Closes #911 --- source/namespaces.md | 140 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 source/namespaces.md diff --git a/source/namespaces.md b/source/namespaces.md new file mode 100644 index 00000000..7ef50ec8 --- /dev/null +++ b/source/namespaces.md @@ -0,0 +1,140 @@ +# Geode Namespaces + +This document describes the purpose of each namespace in the Geode SDK. + +## Main Namespaces + +### `geode` +The root namespace for all Geode functionality. Contains core classes and functions for mod development. + +**Key classes:** +- `Loader` - Main entry point for interacting with Geode +- `Mod` - Represents a mod and its metadata +- `ModMetadata` - Information about a mod +- `Event`/`EventFilter` - Event system for mod communication + +--- + +### `geode::modifier` +Contains utilities for modifying Geometry Dash classes and functions. + +**Key classes:** +- `Modify` - Base class for creating hooks +- `Field` - For adding fields to existing classes +- `AsStaticFunction` - Converts member functions to static + +**Usage:** +```cpp +using namespace geode::modifier; + +class $modify(MyMenuLayer, MenuLayer) { + // Your modifications here +}; +``` + +--- + +### `geode::addresser` +Utilities for memory address manipulation and function resolution. + +**Key functions:** +- `getNonVirtual` - Get address of non-virtual functions +- `getVirtual` - Get address of virtual functions +- `getThisAdjustment` - Get `this` pointer adjustments + +--- + +### `geode::async` +Asynchronous programming utilities including coroutines and promises. + +**Key classes:** +- `Promise` - Represents a future value +- `Task` - An async operation that can be started/cancelled +- `Coro` - Coroutine helper for async/await style code + +**Usage:** +```cpp +geode::async::Task fetchData() { + auto result = co_await web::fetch("https://api.example.com"); + co_return result.string().unwrap(); +} +``` + +--- + +### `geode::cocos` +Utilities for working with cocos2d-x (the game engine). + +**Key classes:** +- `CCNodeRef` - Smart pointer for CCNode +- Various helper functions for node manipulation + +--- + +### `geode::stl` +Standard library extensions and custom containers. + +**Key classes:** +- `fixed_string` - String with compile-time size +- Custom STL allocators for Geode + +--- + +### `geode::utils` +General utility functions. + +**Sub-namespaces:** +- `geode::utils::file` - File operations +- `geode::utils::string` - String manipulation +- `geode::utils::web` - Web requests +- `geode::utils::cocos` - Cocos2d helper functions + +--- + +## Platform Namespaces + +### `geode::base` +Platform-specific base implementations. Usually not used directly. + +### `geode::platform` +Platform detection and platform-specific code. + +--- + +## Internal Namespaces + +These namespaces are used internally by Geode and should generally not be used by mod developers: + +- `geode::internal` - Internal implementation details +- `geode::geode_internal` - Core internal functions +- `geode::cast` - Internal casting utilities + +--- + +## External Namespaces + +### `gd` +Shortcut namespace for Geometry Dash classes. Contains bindings to GD classes. + +**Usage:** +```cpp +// These are equivalent: +MenuLayer* layer; +gd::MenuLayer* layer; // Shortcut +``` + +### `cocos2d` +The cocos2d-x game engine namespace. Contains all cocos2d classes like: +- `CCNode`, `CCLayer`, `CCScene` - Node hierarchy +- `CCSprite` - Images and textures +- `CCMenu`, `CCMenuItem` - UI elements +- `CCDirector` - Game management + +--- + +## Best Practices + +1. **Use `using namespace geode;`** in your `.cpp` files for convenience +2. **Use `using namespace geode::prelude;`** for the most common includes +3. **Don't use internal namespaces** - they're subject to change +4. **Prefer `gd::` shortcut** for GD class names