# Mod Utils
### [GitHub](https://github.com/Yukitty/CassetteBeasts-cat-modutils)
This is a support library that adds several helpful functions for other mods to use. If you are a modder, you are more than welcome to make use of it yourself. Please visit the [Mod Utils wiki](https://github.com/Yukitty/CassetteBeasts-cat-modutils/wiki) on GitHub to learn how.
## Features
* Unified mod settings menu with automatic saving / loading.
* Node ready callbacks by scene path, by script path or class, or by streaming chunk index.
* New "Mod Club Station" fast travel destination for centralized access to mod content. Dynamic mod NPCs, shops, and locations can appear here. [Demo available on GitHub.](https://github.com/Yukitty/CassetteBeasts-cat-modclubdemo)
* Script source code patcher to merge code changes directly into any class.
* Translation patcher, to replace localization strings from the base game.
* Simple "cheat mod" flag with an in-game warning message.
**Mod metainfo**
Tags save file: No - Safe to remove
Tags netplay: **Yes** - Online players must match
Release v1.3.1 (code 6)
* Fix mod loading errors by removing the `WarpRegion` bugfix?
* Add `world.merge_tree` for easy Node tree merging (untested)
Release v1.3 (code 5)
* Major bug fixes and improvements to Mod Club Station
* Add new `MODUTILS` data tables for Mod Club Station content
* Depreciated old methods for adding content to Mod Club Station
* Fix logic bug in `WarpRegion`
* Don't keep `mod_settings.cfg` in memory, in case it's edited externally
* Don't override `SettingsMenu` script, use a callback instead
* Process out `ConditionalLayer` nodes in Mod Club NPCs
Hotfix v1.2.1 (code 4)
* Fix script crash when `callbacks.connect_chunk_setup` is used
* Simplify logic for all callbacks using a meta flag to prevent re-runs
Release v1.2 (code 3)
* Add full Redkrab dialogue and custom travel scenes
* Add `world.add_modclub_destination` to populate Redkrab's travel menu
* Add pause screen button to "Return to Mod Club Station" after Redkrab travel
* Change `callbacks.connect_class_ready` to use script paths instead of script Resources, to support `Resource.take_over_path`
* Add `callbacks.connect_chunk_setup` to handle streaming levels like the Overworld
Release v1.1 (code 2)
* Add class patch processing by David
* Add initial Mod Club Station prototype
Hotfix v1.0.1 (code 1)
* Fix missing menu selection indicator on Mod Settings menu
Mod Utils v1.0 (code 0)
* Add Mod Settings menu
* Add "cheat_mod" flag
* Add node ready callbacks by script class and by scene (exact matches only)
* Add class script source code patcher
Translation Patcher v1.0.2
* Simplify scripts
* Remove global node, add its functionality to the mod metadata instead.
* Reorder default translation priorities.
Translation Patcher v1.0.1
* Only tell the TranslationServer to explicitly remove the specific built-in Translation tables we are replacing. Should create compatibility with other mods that add new Translations to TranslationServer directly.
“Redkrab” character design and art assets © 2023 by Simon S. is licensed under [CC BY-NC 4.0](http://creativecommons.org/licenses/by-nc/4.0/)
All other original mod assets, scripts, and edits are published under the MIT License, as copied below:
MIT License
Copyright © 2023 Yukita Mayako, David Didier
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Instructions
For installation instructions see the [Cassette Beasts Mod User Guide](https://wiki.cassettebeasts.com/wiki/Modding/Mod_User_Guide)
For mod developers, see the [Mod Utils wiki](https://github.com/Yukitty/CassetteBeasts-cat-modutils/wiki) on GitHub.
Comments