github Reloaded-Project/Reloaded-II 1.31.0

3 hours ago

Read and Discuss in a Browser.
Previous Changelog.

1.31.0: Native Mod Configuration

Add Native Mod Configuration and Loader API by @Sora-yx & @Sewer56

Just a temporary stopgap until Reloaded3.

Configure Native Mod Settings

Native mods can now use the launcher's settings dialog without a C# DLL.
Declare settings in ConfigSchema.json, beside ModConfig.json:

{
"Configurations": [
{
"FileName": "Config.json",
"Properties": [
{ "Name": "Enabled", "Type": "bool", "DefaultValue": true },
{
"Name": "Volume", "Type": "int", "DefaultValue": 75,
"Slider": { "Minimum": 0, "Maximum": 100 }
}
]
}
]
}

Native settings have feature parity with C#.
They support sliders, enums, file/folder pickers, and opt-in real-time updates.

Use the Native Loader API

Native mods can now access some parts of the IModLoader API through
ReloadedStartEx.

#include "ReloadedModConfig.h"

static void my_start()
{
auto& config = reloaded::config();

// Schema defaults take precedence over these fallbacks.
bool enabled      = config.get_bool("EnableThing", true);
long long volume  = config.get_int("Volume", 75);
double brightness = config.get_float("Brightness", 1.5);
std::wstring file = config.get_wstring("CustomFile", L"");

// Query loader stuff.
std::wstring modDir = config.mod_directory();
std::wstring configDir = config.config_directory();

static const char* quality[] = { "Low", "High" };
int qualityIndex = config.get_enum("Quality", quality, 2, 1);

// Reload on changes; detach the thread or retain and join it on unload.
// config.watch([](reloaded::ModConfig& changedConfig) {
//     reloaded::write_line("Configuration changed");
// }).detach();

// Writes go to the Reloaded log; *_line adds a newline, *_async queues.
// Prefer async except for temporary debugging.
// reloaded::write_line("Configuration loaded");
// reloaded::write_line_async("Configuration loaded");
// reloaded::write("Configuration loaded");
// reloaded::write_async("Configuration loaded");
}

RELOADED_MOD_CONFIG_IMPL(my_start)

More APIs welcome with future PRs.

Start with dotnet new reloaded-native, or copy ReloadedModConfig.h from the
template. See the
native mod guide
for more information.

Add Japanese Translation by @ShibainuK

Adds a Japanese (ja-JP) launcher translation, with corrected line breaks for
executable-read error messages.

Complete Changes (Autogenerated)

1.31.0 - 2026-09-23

Merged

  • Add Japanese (ja-JP) translation #951

Commits

  • Harden auto index builder Discord logging 0c7bd2e
  • Implement C++ Mod Config. 4c8e61c
  • Fix typo in the doc (ended dropping crossplatform) 8bbcc06
  • ModConfig: Fix missing 32 bits mod template reference. 7fb4acf
  • Syntax moment 00d437e
  • Handle null case for when user config directory is null (+ rework migrate stuff) a1658e0
  • Validate filename helper + add missing "Values" for enum a423fff
  • Inlined enum stuff through helper functions e924738
  • Invoke and Migrate improvement stuff. 7308d68
  • Reloaded Mod Config header: Add mutex for thread safe + API struct 9671e70
  • Documentation fixes: formatting adjust + rework CMake to use env variable 8db149d
  • ja-JP: Preserve trailing newline in ErrorCantReadExeFile / ErrorCantReadExeFileAsiLoaderDeploy 89a4dd7
  • wrapper to the loader API ef58379
  • Changed: Improve/shorten NativeMods docs 3b0573e
  • Changed: Shorten native mod template README da26497
  • Changed: Remove unused usings from native config tests 9055250
  • Changed: Polish native config docs and clear new-code warnings 98c866e
  • Changed: Group native mod config types under Native subnamespace 756a7a8
  • Changed: Split native mod config schema models into Schema subnamespace 1f8bd02
  • Changed: Link native schema docs to C# interface types 405b14c
  • Update: Doc cleanup of ConfigurableBase.cs 14c1c83
  • Style: ModConfigSchema added newline 1dfb6cb
  • Style: Fix initializer alignment in picker schema parsers a15949f
  • Fixed: Remove duplicate blank line in ConfigureModCommand eadcbad
  • Changed: Link plain doc mentions to code members 7b9e43e
  • Changed: Dedupe native and managed configurator setup 0fa2850
  • Changed: Add Arrange/Act/Assert sections to native mod tests e799103
  • Changed: Removed redundant comment cc6ff21
  • Native Mod Config: swap to Enum + add missing json exception + validate file name check 0aa172d
  • Updated documentation to add enum property and InitialFolderPath 86c1e4d
  • Rewrite logger to be more like C# equivalent fa6bbc2
  • Changed: Remove docs for wrapper funcs adcc59a
  • Changed: Use nint instead of IntPtr in native mod config code 1a9c095
  • Removed: Redundant external-write retry comment in ConfigurableBase 5a04cc4
  • Changed: Use Environment alias for System.Environment in native schema 9e877f6
  • Changed: Clarify native mod documentation f67f40a
  • Changed: Show config and logging usage in C++ example e0b8550
  • Changed: Bump version to 1.31.0 294d048
  • Changed: Update 1.31.0 changelog 458987f

====

====

Available Downloads

(Below this text, on GitHub)

Setup.exe: This is a 1 click installer for Windows.
Setup-Linux.exe: This is a version of Setup.exe for easier use in WINE / Proton. Use Linux Setup
Guide
.
Release.zip: For people who prefer to install manually without an installer.
Tools.zip: Tools for mod authors and developers.

Other files are related to updates, you can ignore them.

Don't miss a new Reloaded-II release

NewReleases is sending notifications on new releases.