Skip to content

Godot 4.x - v7.0.1

Latest
Compare
Choose a tag to compare
@ZackeryRSmith ZackeryRSmith released this 11 Jun 17:46
e75c045

Godot 4.x - Major release v7.0.1

This release marks a significant milestone, as it signifies more than two years of effort to support Godot 4! Below, you will find installation instructions and a detailed overview of all merged pull requests that followed.

This release is compatible with Godot versions 4.1 through 4.3. Moving forward, we plan to provide dedicated releases for each Godot feature update. This will help reduce the need for backward compatibility trade-offs and allow us to better support each version.

Installation

Note

This release is targeted towards integration! We're actively working on improving the self-setup process,
and we are grateful for anyone willing to test the current version. Your help means a lot to us!

Godot Project Setup
Mod Loader Self Setup

Addressing class_name With Hooks

The most glaring issue of the 4.x ModLoader is extending a file using a class_name statement. For more info, see: #315. As a workaround, we introduce hooks—with major thanks to everyone who contributed to resolving this long-standing issue. See the fantastic PR by @KANAjetzt, @Qubus0, and @pirey0 in #408.

🚨 Breaking Changes

  • Removal of append_node_in_scene and save_scene for refresh_scene and extend_scene by @KANAjetzt in #378
  • steam_workshop_enabled has been replaced by load_from_steam_workshop by @KANAjetzt in #399
  • The MOD_CONFIG_DIR_PATH has been changed from user://configs to user://mod_configs by @KANAjetzt in #480
  • ModLoaderModManager has been entirely removed by @KANAjetzt in #540

Key PRs

Enhancements

  • feat: Allow both workshop and local mods to be loaded by @cgytrus in #369
  • feat: ✨ added refresh_config_data() and refresh_current_configs() by @KANAjetzt in #374
  • feat: ✨ add has_current_config() and has_config() by @KANAjetzt in #375
  • feat: script extensions sorter checks load order by @KANAjetzt in #382
  • feat: ✨ store the mod source in ModData by @KANAjetzt in #387
  • feat: ✨ added steam_id to ml_options by @KANAjetzt in #388
  • feat: ✨ added steam_workshop_id to ModManifest by @KANAjetzt in #393
  • feat: ✨ added is_mod_active to ModLoaderMod by @KANAjetzt in #398
  • refactor: ♻️ log the prefix on errors by @KANAjetzt in #400
  • refactor: use truthy values in dictionaries used as hashsets by @Qubus0 in #422
  • refactor: don't inline is_func_moddable by @Qubus0 in #423
  • refactor: ♻️ updated hook_pre_processor reference by @KANAjetzt in #424
  • style: 🔥 removed % from hook template string by @KANAjetzt in #428
  • feat: disable hook check when not needed by @Qubus0 in #429
  • feat: split off verbose hook preprocessing by @Qubus0 in #430
  • test: add new gut test cases for the hook preprocessor by @Qubus0 in #432
  • style: ✏️ Changed MOD_LOADER_HOOKS_START_STRING by @KANAjetzt in #433
  • feat: ✨ param and return manipulation for mod hooks by @Qubus0 in #436
  • feat: ✨ allow installing hooks from a file like extensions by @Qubus0 in #440
  • feat: ✨ param and return manipulation for mod hooks by @KANAjetzt in #469 (fixes merge of #440)
  • fix: 🚑 remove whitespace after _ModLoaderHooks.call_hooks by @KANAjetzt in #474
  • feat: ✨ detect and handle hooks for async methods by @Qubus0 in #475
  • test: 🧪 added tests for .process_script() by @KANAjetzt in #476
  • refactor: ♻️ use ModLoaderOptionsProfile instead of Dictionary by @KANAjetzt in #532
  • refactor: use GDRE for self setup by @KANAjetzt in #533
  • feat: per method hooks by @Qubus0 in #534
  • feat: ✨ options for game version validation by @KANAjetzt in #536
  • feat: new editor-only log type for dev hints by @Qubus0 in #538
  • feat: ✨ added load_from_unpacked option by @KANAjetzt in #541

Bug Fixes

New Contributors (to the 4.x branch)

Full Changelog: v6.0.2...v7.0.1