File information
Last updated
Original upload
Created by
Subnautica Modding CommunityUploaded by
LeeTwentyThreeVirus scan
Safe to use
Tags for this mod
Current section
About this mod
A library that helps you add items, sprites, crafting logic, and much more, into the game the easy way!
Spend less time figuring out how to get your mod to work and more time on what you can do with it!
- Requirements
-
Nexus requirements
Mod name Notes QModManager 4 VersionChecker - A version checking utility for Subnautica Below Zero mods OPTIONAL Mods requiring this file
- Permissions and credits
-
Credits and distribution permission
- Other user's assets All the assets in this file belong to the author, or are from free-to-use modder's resources
- Upload permission You are not allowed to upload this file to other sites under any circumstances
- Modification permission You must get permission from me before you are allowed to modify my files to improve it
- Conversion permission You can convert this file to work with other games as long as you credit me as the creator of the file
- Asset use permission You must get permission from me before you are allowed to use any of the assets in this file
- Asset use permission in mods/files that are being sold You are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
- Asset use permission in mods/files that earn donation points You are not allowed to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
Full list of contributors to this project can be found on https://github.com/QModManager/SMLHelper/graphs/contributors
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
- Changelogs
-
-
Version 2.14.1
- What The Dock Update fixes
- Fixed SMLHelper not being able to automatically identify the default path of mod assets
-
Version 2.14.0
- Fixed caching issues
- CustomSoundPatcher Performance Improvements & Bug Fixes
- Remove extra EventHandler for options menu
- Allow mod options to add Language IDs instead of string literals
- Added EatableHandler to modify existing eatable items
-
Version 2.12.1
- Fixed Coordinated Spawns save failing sometimes
- Fixed custom TechCategories showing the wrong name under the blueprints tab
-
Version 2.12
- Hotfix for global Coordinated Spawns
- Added AudioClip support for the CustomSoundsHandler
- Quit/Save events now get called in the appropriate functions.
- for more information, please visit the GitHub: https://github.com/SubnauticaModding/SMLHelper/pull/241
-
Version 2.11.1
- This is a hotfix release. For full details, please see the release on GitHub: https://github.com/SubnauticaModding/SMLHelper/releases/tag/v2.11.1
- Hotfix: Resolved an issue introduced in SMLHelper 2.11, which caused toggle events to no longer be invoked appropriately due to a missing case in the event router.
-
Version 2.11
- This is a backwards-compatible feature release. For full details, please see the release on GitHub: https://github.com/SubnauticaModding/SMLHelper/releases/tag/v2.11
- New feature: Added JsonFile, a basic abstract implementation of the IJsonFile interface for mod authors to extend when wanting to work with simple JSON data. See the PR for more details: https://github.com/SubnauticaModding/SMLHelper/pull/233
- New feature: Added SaveDataCache, an abstract extension of JsonFile which is intended for use by mod authors to extend in a similar manner as ConfigFile, but for per-saveslot data. See the PR for more details: https://github.com/SubnauticaModding/SMLHelper/pull/233
- New feature: Added methods to the InGameMenuHandler for registering a callback to be invoked whenever the game loads a saveslot. See the PR for more details: https://github.com/SubnauticaModding/SMLHelper/pull/233
- Enhancement: ConfigFile now supports Vector3 and Quaternion.
- Bugfix: Resolved an issue where passing custom string names for enum-based Choice was incorrectly displaying the choice as if the first option was selected when the menu is first built, regardless of what option is actually selected.
- Bugfix: Resolved an issue where backing out to the main menu and loading into the game again would result in CoordinatedSpawnsInitialized.smlhelper not being correctly saved when the player saves the game.
- Maintenance: Invocation of ConfigFile attribute-based events are now deferred until the OptionsPanelHandler has finished registering the ConfigFile to the options menu to ensure consistency across all ConfigFile events.
- Maintenance: Example Mod project updated to include examples of how to use the SaveDataCache and SaveDataHandler features.
-
Version 2.10.1
- This is a backwards-compatible hotfix release.
- Hotfix: Identified and resolved bugs in the CoordinatedSpawnsHandler implementation. If you were previously consuming the SpawnInfo API, pay close attention to this PR: https://github.com/SubnauticaModding/SMLHelper/pull/229
-
Version 2.10
- This is a backwards-compatible feature release. For full details, see the GitHub release: https://github.com/SubnauticaModding/SMLHelper/releases/tag/v2.10
- New feature: Sound Handler Initial implementation. https://github.com/SubnauticaModding/SMLHelper/pull/220
- Enhancement: Add optional Rotation to Coordinated spawns when using the assets system. https://github.com/SubnauticaModding/SMLHelper/pull/221
- Enhancement: ModPrefab's ProcessPrefab method is now marked protected virtual rather than private. This is intended for the purpose of advanced modders to be able to customise how the prefab is processed via overriding. https://github.com/SubnauticaModding/SMLHelper/pull/225
- Maintenance: Updated to using C# 9.0 and some of its features. https://github.com/SubnauticaModding/SMLHelper/pull/222
- Maintenance: To accommodate #225, CustomFabricator.ProcessPrefab is now renamed CustomFabricator.PreProcessPrefab. https://github.com/SubnauticaModding/SMLHelper/pull/227
- Bugfix: Fixed a bug where non-global coordinated spawns objects were getting despawned after save/reload. https://github.com/SubnauticaModding/SMLHelper/pull/226
-
Version 2.9.2
- Fix ConfigFile List Entry Duplication
- fix for new Tooltip Property breaking mod menu.
- Moved changes from Experimental branch to Stable branch for CraftData Async changes.
- Fix for Mod Options Keybindings.
- Make the SpritePatcher wait for the Sprite Atlas to be loaded before patching.
- More Dynamic Language Patching
- Semi Dynamic SpritePatcher
- GetItemSprite() Fix for ModPrefabs Using the Assets system.
- Prevent unknown JSON string from BREAKING Choice options
-
Version 2.9.0.1
- Hotfix for an issue introduced in v2.9 affecting some mods using sliders
-
Version 2.9.0
- Added a new API for registering custom console commands.
- Fixed a bug if a prefab does not have a SkyApplier.
- Added method to ModPrefab, for upcoming async update for SN.
- Added a new way of creating Menu Options.
- Pda Data overwriting. Use with CAUTION!
-
Version 2.8.5
- Hotfix for a JSON parsing issue.
-
Version 2.8.4
- Hotfix for an issue where overwriting sprites that already exist in-game would crash SMLHelper
-
Version 2.8.3
- Missing Sprite Hotfix
-
Version 2.8.2
- Modded prefabs can now be fetched during patching via PrefabDatabase.TryGetPrefabFilename
- Added new ModPrefabCache for use by ModPrefab
- Fixer component is now obsolete
- Updates to .net 4.7.2 for compatibility with upcoming .NET Standard libraries
- Optimizations in mod sprite patching
- Updated BZ dependencies to Unity 2019.4.2
- AudioUtils Field name change updated
-
Version 2.8
- Updated for QModManager 4.0 and HarmonyX
- For full details, visit the GitHub repo https://github.com/SubnauticaModding/SMLHelper/pull/175
- Updated ExampleMod to showcase attribute patching and the new ConfigFile system
- Updated ConfigFile system to no longer require referencing Newtonsoft JSON
- Fixed a bug that incorrectly displayed modded items as originating from Subnautica
- Inventory cache now resets when container changes size
- Fixed a bug in ConfigFile system that incorrectly serialized Float values of zero
-
Version 2.7.3
- Hotfix for Salad Days update
-
Version 2.7.2
- Correction to unintended side effect bug in v2.7.1
- For full details, visit the GitHub repo https://github.com/SubnauticaModding/SMLHelper/pull/161
- Special thanks to OSubMarin for beta testing and troubleshooting
-
Version 2.7.1
- Fixes a bug that was causing craft data to be repeatedly patched
- Minimizes logs in craft data patching
- For full details, visit the GitHub repo https://github.com/SubnauticaModding/SMLHelper/pull/160
-
Version 2.7
- Added volume control overloads to AudioUtils (#156)
- ButtonModOptions allows for clickable buttons withing the Mod Options menu (#155)
- Now saves and restores the last known scroll position in the Mod Options menu (#154)
- Added PingHandler for registering new PingTypes with an associated Sprite (#153)
-
Version 2.6.5
- removed a missed debugging message that could cause screen spam and slight performance issues.
-
Version 2.6.4
- TechGroup/Catagory changed to Virtual to be Optional in PDAItem.
- Group/Catagory Validation before patching.
- QuickSlotType patching added to Equipable with default value of none.
- Warning for Patching QuickSlotType that it must be done after setTechData.
- Enhancements to Spawnable and PDAItem enabling easier spawning and scanner entry creation.
-
Version 2.6.3
- Bugfix for GetRecipeData.
- Bugfix for SetItemSize.
-
Version 2.6.2
- Added simple KeyCode utility methods #140
- Code Refactoring for less duplication #139
- Json Configuration Utility #142
- Options Menu fix for FrostBite BZ Update #146
- Custom Eating sounds #144
- Add Craft speed modifier to #143
- Null check on removing craft nodes for softfail.
-
Version 2.6.1
- ModdedTechTypeExists and TryGetModdedTechType no longer return true for deactivated TechTypes
- For full details, visit the GitHub repo https://github.com/SubnauticaModding/SMLHelper/pull/138
-
Version 2.6.0
- Mod Option system refactoring and new option types
- New AudioUtility to import and play .wav files ingame
- Cache Save/Load Overhaul - Altered data patching to allow for ingame changes to recipes and more
- New onQuit Event handler to register events to trigger when someone quits via in game menu
- New optional features in ModCraftTreeRoot and Customfabricator allow for total control of the craft tree at run time
- For full details, visit the GitHub repo https://github.com/SubnauticaModding/SMLHelper/pull/135
-
Version 2.5.3
- Fix for CraftdataHandler for changing recipes already in game.
-
Version 2.4.1
- Fixed TechTypeCache related bugs
-
Version 2.4.0
- Open Beta now public!
- Full details at https://github.com/QModManager/SMLHelper/pull/105
- The AssetsFolder property in the Spawnable class is now virtual with default behavior
- Spawnable now exposes a new virtual method: GetItemSprite that mods can override
- Previously missing XML documentation now added
- Added a new "Handler" class that makes it easy to discover all of the various handler classes provided by SMLHelper
- New CustomFabricator asset class has been added
- Special thanks to MrPurple6411 for being the MVP who made this possible https://www.nexusmods.com/subnautica/users/71927478
-
SMLHelper has been deprecated and will no longer receive updates.
Many mods are now using Nautilus instead. You may need to install both libraries.
A library that helps you add items, models, sprites, etc into the game in a very easy way!
Before asking any questions, please read the FAQ!
Also, DO NOT try to change the files in the Modding Helper folder, especially the
folders that contain the word "Cache". They are very crucial in
determining how SMLHelper will add items into the game, and it is REQUIRED that they are not touched, especially if you don't know what you're doing!
Installation
1. Download and install QMods.
2. Download the archive.
3. Open up the archive with WinRar or 7zip.
4. Drag-and-drop the "SMLHelper_BZ" folder into your QMods folder. (if
your QMods folder doesn't exist, run the game at least once so that
QModManager can make it, or you can make the folder yourself.)
FAQ - For Players
What is this?
This library is basically allows you to easily communicate with the game so
that you can focus more on the mod's features you are developing. It
does nothing on its own, but is rather a "tool" to help other mods.
What's the difference between this version and the one for the original Subnautica?
There were some big changes made in Below Zero to how crafting data is handled.
Because of that, we had to rediscover how to handle patching of craft data all over again.
And that means we also had to figure out a way to be able to keep SMLHelper moving forward on both games at the same time.
FAQ - For Modders
How do I enable debug logging?
Will I have to completely re-write my Subnautica mods that used SMLHelper when porting them to Below Zero?
Not really. But you will need to make a few changes.
Pay close attention to the new handling of blueprint/recipe data.
The old TechData class is now RecipeData in Below Zero.
All of the original Handler APIs are still present in SMLHelper Zero so it shouldn't take much effort to make the jump.
Does this mean development for SMLHelper is now split between the two games?
Not at all. There will still be a single repo and a single branch serving both games.
We will do our best to keep everything together.
However, each game will have it's one separate DLL
Additional Resources
For modders and developers:
Please refer to the Wiki to get to know how to use this library!
https://github.com/SMLHelper/SMLHelper/wiki
And here's the source code:
https://github.com/SMLHelper/SMLHelper
For players:
As of the 2.1 release, there is a new Language Patcher feature in SMLHelper
You can use this to provide your own custom translations or alternate text for any SMLHelper enabled mod.
Learn how to use the Language Overrides on the wiki
Many mods are now using Nautilus instead. You may need to install both libraries.
A library that helps you add items, models, sprites, etc into the game in a very easy way!
Before asking any questions, please read the FAQ!
Also, DO NOT try to change the files in the Modding Helper folder, especially the
folders that contain the word "Cache". They are very crucial in
determining how SMLHelper will add items into the game, and it is REQUIRED that they are not touched, especially if you don't know what you're doing!
Installation
1. Download and install QMods.
2. Download the archive.
3. Open up the archive with WinRar or 7zip.
4. Drag-and-drop the "SMLHelper_BZ" folder into your QMods folder. (if
your QMods folder doesn't exist, run the game at least once so that
QModManager can make it, or you can make the folder yourself.)
FAQ - For Players
What is this?
This library is basically allows you to easily communicate with the game so
that you can focus more on the mod's features you are developing. It
does nothing on its own, but is rather a "tool" to help other mods.
What's the difference between this version and the one for the original Subnautica?
There were some big changes made in Below Zero to how crafting data is handled.
Because of that, we had to rediscover how to handle patching of craft data all over again.
And that means we also had to figure out a way to be able to keep SMLHelper moving forward on both games at the same time.
FAQ - For Modders
How do I enable debug logging?
- Debug logging (for development and troubleshooting) can be enabled by changing the value in the new file
EnableDebugLogs.txt
. - Debug logging can also be toggled from the in-game Mods menu, however, since
most of the SMLHelper actions (and thus logs) take place before the main menu loads, this will mostly only be useful for subsequent loads of the game.
Will I have to completely re-write my Subnautica mods that used SMLHelper when porting them to Below Zero?
Not really. But you will need to make a few changes.
Pay close attention to the new handling of blueprint/recipe data.
The old TechData class is now RecipeData in Below Zero.
All of the original Handler APIs are still present in SMLHelper Zero so it shouldn't take much effort to make the jump.
Does this mean development for SMLHelper is now split between the two games?
Not at all. There will still be a single repo and a single branch serving both games.
We will do our best to keep everything together.
However, each game will have it's one separate DLL
Additional Resources
For modders and developers:
Please refer to the Wiki to get to know how to use this library!
https://github.com/SMLHelper/SMLHelper/wiki
And here's the source code:
https://github.com/SMLHelper/SMLHelper
For players:
As of the 2.1 release, there is a new Language Patcher feature in SMLHelper
You can use this to provide your own custom translations or alternate text for any SMLHelper enabled mod.
Learn how to use the Language Overrides on the wiki