Skip to content

Releases: geode-sdk/geode

Second beta release of v1.0.0

28 Jan 10:37

Choose a tag to compare

Pre-release

This beta release brings one new major API change along with various bug fixes & improvements.

As before, if you encounter any issues using Geode (installation, documentation, usage, etc.), please do let us know through Github issues or through our Discord server. Along with this, if you have any complaints about Geode, please direct those at us too.

Changelog

  • Switched to a new custom-built JSON library to replace nlohmann::json for compile-time improvements; if you were using the old JSON library, you can add & link to nlohmann::json in your own project, or update to use the new API. (deab672)
  • Fix resources not being downloaded automatically by using a fallback to latest release (a418828)
  • Add a new clear instruction popup in case downloading still fails (30dc9ad)
  • String ID hooks now have higher priority, so they should always be applied regardless of if you call NodeIDs::provideFor or not (though it can still be called to absolutely ensure the IDs are there!) (b6a6e4d)
  • Various internal bugfixes & improvements (ceb02e9, a90b3e1, b00ab40, c644b43)

Bindings

  • Add DrawGridLayer::loadTimeMarkers (d06840d)

Docs

  • We now have a fresh new look for our docs, along with automated documentation for all our classes & GD bindings! You can find them at https://docs.geode-sdk.org :)

First beta release of v1.0.0

24 Jan 12:43

Choose a tag to compare

Pre-release

Introducing a major redesign of many parts of the framework, including a new hooking framework, a string ID & layout system for nodes, improvement of many existing features, and much more.

The purpose of this release is to make sure the framework is production-ready, and to catch bugs / missing features before the full release of v1.0.0 while we are working on documentation (we've got a new site!). Once the full release of v1.0.0 hits, the API will be stabilized - from there on out, we will be following semver, and you can be quite confident that the mods you write now will work in the future, without needing to update them every few weeks.

If you encounter any issues using Geode (installation, documentation, usage, etc.), please do let us know through Github issues or through our Discord server.

v0.6.1

26 Oct 11:11

Choose a tag to compare

Additions

  • Add geode::cocos::switchToScene utility for easily switching to a layer with the default fade transition
  • Add Mod::getPackagePath as a replacement for Mod::getPath
  • Add geode/config directory as a standardized place for mods to add their config files
  • Add Mod::getConfigDir for getting a mods' config directory
  • Add open config directory button to mods with a config directory
  • Add open save directory button to mods' settings popup
  • Add more bindings

Changes

  • Removed deprecation from Result (it still will be replaced in v1.0.0, we just got tired of the warnings)
  • JsonChecker<nlohmann::json> and JsonChecker<nlohmann::ordered_json> are now defined in-source as exported symbols to speed up compilation times

Fixes

v0.6.0

22 Oct 20:15

Choose a tag to compare

This minor release brings a few new features and changes.

Additions

  • Added Loader::addTexturePath and Loader::removeTexturePath to work with additional resource paths
    • Mods that work with Cocos2d search paths directly should convert to using the above functions
  • New header Geode/ui/LayerBG.hpp with createLayerBG function for creating the blue gradient background GD layers have
  • Added NewResult class, which will eventually replace the old Result
  • Add deprecate and nodiscard attributes to the old Result class
  • Many more bindings on Mac and Windows
  • Add IDs to LevelSearchLayer (thank you @Jollycistaken, #57)

Changes

  • Mod resource loading has been reworked again, with the intent of adding support for texture pack loaders
  • All Cocos2d include paths have been changed to be relative
  • cocos2dx folder has been removed, cocos2d is now directly inside Geode/cocos
  • Loader resources updating will no longer check for plist file differences due to problems with CLI on Mac
  • Cocos2d selectors (like SEL_MenuHandler) no longer require using namespace cocos2d

Fixes

  • More codegen optimizations, Geode mods should now compile faster

v0.5.0

16 Oct 17:24

Choose a tag to compare

This minor release brings some new utilities and reworks how adding mod resources are handled. On top of this, I have been informed I was doing semver incorrectly. We will be trying to do it better from now on.

Changelog

  • Added CCFileUtils::get
  • Fix crashes related to setting IDs in MenuLayer
  • Remove Loader::updateModResourcePaths and Loader::updateResourcePaths. The minimum mod target version is still v0.4.0 however, as you should never have been using these functions.
  • Rework how mod resources are added
  • Deprecate geode::utils::vector and geode::utils::container namespaces and replace them with geode::utils::ranges
  • Finally added a license to Geode! The framework is now licensed under BSL v1.0.

v0.4.8

15 Oct 16:01

Choose a tag to compare

This patch release should fix issues with loader resources.

Changelog

  • Loader again verifies if resources are missing / corrupt on startup
  • Resource download text is no longer a popup on top of the title but instead just replaces the loading text
  • Add delegates to EditLevelLayer

v0.4.7

14 Oct 22:31
7c410c4

Choose a tag to compare

This is a hotfix for the previous version.

Fixes

  • Loader resources check would always fail, so now make it simpler by only checking if the folder exists

v0.4.6

14 Oct 21:05
07e36ce

Choose a tag to compare

This patch release brings a new feature: automatic resource fixing! If Geode is missing resources, they are automatically downloaded on startup.

Additions

  • Automatically checks & downloads loader resources if they are missing / corrupt on startup
  • CMake rework; GeodeFile.cmake now checks and verifies CLI version
  • Add optional DONT_INSTALL parameter to create_geode_file
  • Add package_geode_resources_now command for packaging resources at configure time and creating a header with their calculated hashes
  • Test mods are now no longer automatically installed

Fixes

  • Fix getSceneDelegate
  • Change CCArrayExt to use Ref

v0.4.5

13 Oct 20:27

Choose a tag to compare

This release brings a lot of internal reworkings and fixes related to the mods index and headers. Bindings and modify are both now split, meaning that you can include specific bindings with #include <Geode/binding/ClassName.hpp> and specific modifies with #include <Geode/modify/ClassName.hpp>.

Additions

  • Add new overloads to file utils and deprecate ones that don't use ghc::filesystem::path
  • Add JsonChecker::at and JsonChecker::array for dealing with arrays
  • Add geode::utils::web::fetchBytes for fetching a byte array synchronously
  • Add geode::utils::web::AsyncWebRequest for creating thread-safe asynchronous web requests
  • Add Loader::updateModResourcePaths for adding a mods' resources to search paths. Not recommended to be called manually
  • Add an overload to geode::createQuickPopup for specifying popup width
  • ModInfo::createFromFile now checks for about.md and other special files in the same directory
  • More addresses

Changes

  • Remove automatic mod updating for now, however automatic update checking for mods is still there
  • Rework bindings and codegen to improve compile times, now individual bindings can be included with <Geode/binding/{ClassName}.hpp>
  • Modify has also been separated, you can now include individual modifiers with <Geode/modify/{ClassName}.hpp>
  • Various other fixes to improve compile times

Fixes

  • Fix mod resources not being loaded when installed from Index
  • Fix crashes related to downloading mods
  • Fix Loader::queueInGDThread sometimes leaving out functions
  • Fix crashes related to logging
  • Index mods now show their about.md files
  • Various other fixes & improvements

Internal

  • Index reworked
  • Fix issues with VERSION file
  • Add GEODE_DEBUG macro for enabling log::debug to actually print stuff
  • Show crashlog on crash when GEODE_DEBUG is enabled

v0.4.4

11 Oct 19:41

Choose a tag to compare

Additions

  • New listenForSettingChanges API for more ergonomically listening for setting changes

Bugfixes

  • Fixed bug where GD was unopenable through Steam
  • Various other internal fixes