Skip to content

Releases: geode-sdk/geode

Geode v4.4.0

03 May 14:45
55e0414

Choose a tag to compare

This release came out much bigger than expected! Huge thanks to @RoootTheFox, @FireMario211 and the rest of the team involved on the iOS support. Note that iOS support is still experimental, expect a proper release soon.

v4.4.0

  • Experimental support for iOS! (#1275, #1280, #1282, and a lot more other commits...)
  • Use MDPopup for mod setting descriptions (#1286)
  • Add a new filter that shows enabled mods before disabled ones on the install page (#1315)
  • Save filters from InstalledModListSource to disk (#1315)
  • Fix a vanilla crash that could happen with large save files on Android (#1270)
  • Fix a vanilla MacOS crash that could happen on game close (#1304, 7b877db, eb043db, 75c8efa, 8982011, 8bd735a)
  • Fix a rare crash that could happen when searching for mods (eb874ad)
  • Fix a small visual bug that happened when viewing mod problems (967b6ad)
  • Fix some file access related crashes that could happen when loading mods (27ca8b6)
  • Fix a small visual bug in ModDeveloperList (#1303, #1319)
  • Fix link buttons not being disabled when needed in ModPopup (#1303)
  • Print more useful information in Windows crashlogs when an access violation happens (c3d2b4e)
  • Fix small issues with installer spanish translation (#1254)
  • Optimize ModsLayer a lot (#1296, #1321, 427e0b0, eb874ad)
  • Remove Modtober tab (#1299)
  • Add geode::dirs::getResourcesDir() and {gd_resources_dir} setting variable (#1285)
  • Add geode::globalListen() and EventListener operator= move (#1218)
  • Add base64 utils (#1307)
  • Make geode::utils::web::openLinkInBrowser open the system webview on Android (#1295)
  • Add API to change log level per mod (#1305)
  • Add safe area API for Android and iOS node placement (#1284)
  • Add unicode conversion utils (#1310)
  • Add missing SimpleAxisLayout getters (#1314)
  • Add format_as for all SeedValue classes (#1316)
  • Add LazySprite class, which handles image loading in a separate thread as much as possible (#1320)
  • Add gd::pair for non-Android platforms (#1322)
  • Add optional saving for geode::utils::game::exit and geode::utils::game::restart (061c335)
  • Add members for CCParticleSystem (#1273)
  • Add gnustl vector and map, alongside other dependencies (#1255)
  • Make gd::pair constructible from std::pair (b444247)
  • Fix some geode::stl iterator conversions (e64ab20)
  • Expose BreakLine class (#1309)
  • Correctly check image size in MacOS crashlogs (#1274)
  • Fix a MacOS crash related to extra keys added by Geode (f7d44f3)
  • Fix memory leaks in CCImage usage (f38fe30)
  • Fix CCSprite members (#1308)
  • Update minimum CMake version to 3.21 (023274b)
  • Let our libcurl use the native system CA, alongside our bundle (#1301)
  • Fix gnustl set functions returning wrong type (ac1de8a)
  • Fix SimpleAxisLayout scaling not working properly in some cases (22f01bb)
  • Fix SimpleAxisLayout offset gaps in BackToFront disrection (f4deccd)
  • Fix TextArea not handling scale properly on touches (#1313)
  • Fix undefined behaviour in path handling on file utils
  • Rename 2.207 to 2.2070 in the timestamp map (79ba633)
  • Update TulipHook to 2.4.4

Contributors

@RoootTheFox @FireMario211 @hiimjasmine00 @Alphalaneous @Prevter @0x5abe

Geode v4.3.1

12 Mar 22:32
2513197

Choose a tag to compare

Hotfix for the previous release

v4.3.1

  • Fix SimpleAxisLayout not respecting Layout::ignoreInvisibleChildren (a16d230)
  • Fix MacOS arrow keys (#1267)
  • Fix ScrollLayer culling with scaled children (f03cee8)

Geode v4.3.0

12 Mar 17:35

Choose a tag to compare

This release adds some features for devs, and fixes some bugs related to settings.

v4.3.0

  • Event export macro (#1243)
  • Fix settings enable-if parsing (315bf46, 1542e29)
  • Add SimpleAxisLayout (#1223)
    • A simpler and faster alternative to AxisLayout. Some features may be missing
  • Add environment variable for forcing terminal colors (39b1bef)
  • Fix crashlog PDB search paths (#1222)
  • Add support for missing keys and mouse buttons (#1258)
  • Add utils::string::trim* overloads for specific charset (0d4dcb3, 17faf36)
  • Round number settings to 5 decimal places (c9dbc4b)
  • Allow number inputs to be invalid while typing and active (6c6215b)
  • Optimize m_fields access to perform no allocations (7548421)
  • Allow Task<void>, useful for coroutines (2bfff1a, 463ea22)
  • Add some coroutine utils (99cefab)
  • Fix culling on ScrollLayer (b136e3b, b733c36)
  • Fix WeakRef behavior with nullptr (9a8939f)
  • Remove handler from function if no hooks are active (dc14d4c)
  • Fix some bugs in geode::utils::ranges methods (#1236, #1239)
  • Add patch for CCGLProgram::compileShader on remaining platforms (#1241)
  • Update the pugixml headers to be v1.15 compatible (#1247)
  • Allow auto update across major versions if running in forward compat mode (4bb17a9)
  • Re-add console log level to android (b1dc29a)

Geode v4.2.0

18 Jan 01:58
f540c39

Choose a tag to compare

This release adds many new APIs and features for developers, as well as some smaller tweaks for the end user. Happy 2025!

v4.2.0

  • Implement gd::set for android (#1197, #1207)
  • Log levels for console and file logging (#1208)
    • Now in the Geode settings you can set the minimum severity for logs
  • Add GameEvent::Loaded, to avoid hooking Menulayer (c04bcaa)
    • Check the header for more info
  • Add setColor shorthands to RGBAProtocol (961c7c8)
  • New dependency list syntax, also add per dependency settings (1161e18, 889fb0d, c1d3a53)
    • The dependencies can then read these settings from their dependants
  • Add auto log deletion after period of time (8f60c3c)
    • Period length can be changed in settings
  • Add log::getCurrentLogPath() (4c9f990)
  • Load changelog and mod about page from latest version on the index, instead of local (1d716fc)
  • Cascade color and opacity for BasedButtonSprite (17107a2)
  • Add Event v2 classes, wrapper around current event system (728df4e)
  • Serialize std::filesystem::path as UTF-8 for matjson (#1210)
  • Improve MDPopup (56a8ced)
  • Fix macOS file picker, add file ext filters (0b61b50, 241be1b, b8cff6d)
  • Add UUIDs for old GD versions on macOS (#1213)
  • Add CCFontSprite and CCSpriteExtra to cocos (#1194)
  • Reorganize buttons in Geode layer on 4:3 aspect ratio screens (54c93c4)
  • Patch CCGLProgram::compileShader to prevent closing the game on shader errors (0340f52)
  • Make all cocos members public (#1214)
  • Remove modtober animation (f1bf2b6)
  • Only show "Recommended by X mod" text on recommended dependencies, not suggested (5f64d77)
  • Fix SceneManager use-after-free (8707a1b)
  • Icon for pending mod updates is now persistent (0969ec3)
  • Cleanup stale files from old index version (4d6c173)
  • Rename Loader to Geode in LoadingLayer text (203c819)
  • Add GEODE_BUNDLE_PDB option in CMake to allow bundling PDB files with mods (#1134)

Geode v4.1.2

29 Dec 03:57
d9d8a12

Choose a tag to compare

Hotfix to fix a silly bug with settings

v4.1.2

  • Prevent crashlog recursion on MacOS (a69c4c2)
  • Fix a logic bug in SettingChangedFilter (3665da9)
  • Fix a grave misspelling error (#1203)
  • Less strict sdk version checking for developers (100be49)

Geode v4.1.1

20 Dec 18:13

Choose a tag to compare

Quite a few bugfixes, more and more. That is why it took so long because we couldn't just you know release more than one update. What's that, consistency?

v4.1.1

  • Check is mod is available for current version in ModPopup (fdf4348)
  • Revert earlier commit that broke incompatibilities (ded70bb)
  • Fix fmt::join on logs (22e4cbf, #979)
  • Allow any float or int type in getSettingValue (d08e141)
  • Fix cocos headers (9dd7128, 6c039c6)
  • Fix target Geode version comparison with tags (ec2e8d8)
  • Fix "GD 0.000" from being displayed in mod listing (fb85530)
  • Id overload for openInfoPopup now fetches the latest mod version (c6666a3, bda9444)

Geode v4.1.0

12 Dec 21:39
695f39f

Choose a tag to compare

Version completa de Geode 4.1.0 tonite queen?? This release has lots of quality of life changes for the Result library, and lots of minor fixes and additions. Also Modtober winners are announced! Have fun!

v4.1.0

  • Add Modtober winner announcement (0aa2449)
  • Add getHighestChildZ crash fix (24189b1)
  • Add Greek and German to Windows installer (bff6324, f7559ec)
  • Add command line arg support for MacOS (6a62813)
  • Add ID for ModItem badge container (d7177c1)
  • Add Stub and Replace hook priorities (1f50390)
  • Allow passing pointers to getChildByType, CCArrayExt, CCDictExt (b956596)
  • Make CCEGLView members public (0d607bf)
  • Fix links not appearing on non-installed mods (#1184)
  • Fix trailing gap on AxisLayout when auto grow enabled (4b5d112)
  • Fix null not being convertible to std::optional in JsonExpectedValue (15a1b34)
  • Update Result, matjson, TulipHook (12069db)

Geode v4.0.1 (re-release)

22 Nov 19:48
19f18ca

Choose a tag to compare

Pre-release

This release only serves as a phantom release for the Android launcher to pick instead of v3.9.3, which needs to be considered latest by the Windows updater at this moment. Please refer to the proper v4.0.1 release instead, as that is the actual commit this release is based on.

Geode v3.9.3

22 Nov 19:28
e363a3e

Choose a tag to compare

This release was originally also intended to contain a fix for the bug where mod dependencies download their versions for later versions of GD, but that was determined to be a server-side issue. Therefore this should truly be the farewell release to 2.206 - the updater is fixed for 2.207 users, and 2.206 users should have their major bugs resolved.

v3.9.3

  • Add cutoff constructor for CCRenderTexture (#1171)
  • Add XInputSetState export in proxy loader, fixing certain steam emus (480b12)
  • Force update to 4.0.1 on forward compat (2ed1886)

Geode v4.0.1

20 Nov 21:50
ed97f3b

Choose a tag to compare

v4.0.1

  • Add cutoff constructor for CCRenderTexture (#1171)