DevTools
Browser-like developer tools for Geode.
Press F11 (F10 for MacOS) to open up the dev tools.
Features
- Inspect the current node tree
- Inspect individual nodes
- Easily change attributes like the position and color of nodes
- Multiple built-in themes
API
Developers can register their own node's properties to show up in DevTools like so:
#include <geode.devtools/include/API.hpp>
class MySprite : public CCSprite {
public:
enum class RandomEnum {
Option1,
Option2,
Option3
};
static void registerDevTools() {
// The lambda provided will run every frame (given the node is selected)
// for any node that is typeinfo_cast able into MySprite
devtools::registerNode<MySprite>([](MySprite* node) {
devtools::label("My Sprite");
devtools::property("Some Flag", node->m_someFlag);
devtools::property("Some Float", node->m_someFloat);
devtools::property("Some Int", node->m_someInt);
devtools::property("Some String", node->m_someString);
devtools::property("Some Color", node->m_someColor);
devtools::enumerable("Some Enum", node->m_someEnum, {
{ RandomEnum::Option1, "Option 1" },
{ RandomEnum::Option2, "Option 2" },
{ RandomEnum::Option3, "Option 3" }
});
devtools::button("Shake It", [&]{
node->runAction(CCShaky3D::create(
0.5f, CCSize(10, 10), 5, false
));
});
});
}
private:
float m_someFloat = 3.14f;
int m_someInt = 42;
std::string m_someString = "text";
ccColor3B m_someColor = {255, 0, 0};
RandomEnum m_someEnum = RandomEnum::Option1;
bool m_someFlag = true;
};
$on_mod(Loaded) {
// makes sure DevTools is loaded before registering
devtools::waitForDevTools([] {
// use a static method on the class itself
// so it can access private members
MySprite::registerDevTools();
});
}
v1.14.0
- Bump to Geode
v5.7.1, fixing hangs/crashes when loading the mod on MacOS - Allow resizing the scrollbar (#88)
- Add fake children via the
geode.devtools/extra-childrenuser object (#87) - Add a way to hide children from the node tree via the
geode.devtools/hideuser flag (#87) - Fix keyboard arrows typing 'a' characters
- Add layout padding attribute
v1.13.0
- Updated for Geode v5.0.0 and Geometry Dash 2.2081
v1.12.0
- Add ability to restructure the node tree via drag/drop
- Add more api functions for more advanced UI control
- Visualize node visibility in tree graph (#68)
- Show ImGui cursor when mouse is out of GD window on Windows (#67)
- Improved dragging on mobile (#67)
v1.11.0
- Made properties api use drag inputs
- Fix waitForDevTools on mods that load before DevTools
- Add screenshot button to nodes (#65)
- Improve keyboard support on mobile (#62)
- Add floating button on mobile (#62)
- Add search bar in node tree (#62)
- Fix some touch issues in the GD window (#62)
v1.10.0
- Add node properties api (#63)
- Fix a crash when removing layouts and layout options (#58)
- iOS support (#59)
v1.9.0 && v1.9.1
- Bump to Geode
v4.4.0 - Add support for
SimpleAxisLayout - Add missing
AxisLayoutOptionsattributes - Add AxisGap for
AxisLayout - Add
Auto Grow AxistoAxisLayoutattributes - Add
Ignore Invisible Childrencheckbox for layouts - Add the ability to remove layouts and layout options
- Add display for texture name / paths and respective copy buttons
- Add copy class name button
- Add
Tagattribute - Add
ColorandVectorattributes forCCLayerGradient - Add
CCMenuItemSpriteExtraattributes - Add toggleable cascade color and opacity
- Add
Flip XandFlip YforCCSprite - Add custom theme colors
- Reorganize and categorize some related attributes
- Fix flashing Geode Team logo
- Fix some settings not saving
- Fix fullscreen toggling sometimes breaking the UI
- Fix resizing the window causing the GD view to break
- Add back custom resolutions and window information
- Hook Geode's
getMousePosto be relative to the GD view while DevTools is open
Thanks to Alphalaneous for doing most of the changes in this update!
v1.8.0
- Support for 2.206
- Bump to Geode
v4.0.0-beta.1 - Memory viewer overhaul (#46) - thanks @hiimjustin000
- Fix a crash related to UTF-8 directory names (3edd503)
v1.7.1
- Added support for Intel Mac
- Disabled GD hooks that were still enabled on Windows
v1.7.0
- Support for 2.206
- Bump to Geode
v3.0.0-beta.1 - Fixes for 64-bit
- Make the time format for memory dumps better
- Remove logs for GL extension string
- Actually save the settings used
v1.6.0
- Adds Node IDs into the Attributes menu, along with a button to copy them
- Adds a way to create and modify an AnchorLayout
- Removes the Show Mod Index option in preparation for the new index
.geode files you get from this page. Some mods also require other mods as dependencies; you will need to find and install them yourself.