Home
Warning
Extreme work in progress. We've only gotten started!
What is Reloaded III
Info
Reloaded III is a placeholder name; we're open for suggestions.
[Reloaded III] is a formal specification for an improved version of Reloaded-II, a universal Game Modding framework.
It is an extensible and modular framework that allows you to create your own mods for any game on virtually any platform.
R3 is built on a tried and tested architecture; that ensures games stay functional post updates, and good support for new games can be added fast.
Don't waste time making a whole infrastructure for your game; go mod stuff instead!.
Question
So what is Reloaded about? 👇 Below are some goals of the project.
Mod Loader
Portable
Supports a variety of platforms.
Native x86, x64, Switch ARM, .NET 7+ etc.
Modular & Extensible
Minimal core. Does nothing unnecessary.
All game modifications performed via mods.
Write Memory Safe Mods
Fast development time with easy to learn C#.
Or Rust for wider platform support.
High Performance
Lightweight and fast as fuck.
Optimized for your CPU and with PGO.
Integrated Logging
Logs to console and file in real time.
And perhaps with a universal mod, to the screen too!
Dependency System
Mods can set requirements on other mods.
The loader will ensure they're loaded before your mod.
Early Hook
Your code executes before the game
runs a single line of code.
Hot Reload
Load & Unload supported mods at runtime.
Or even remotely, APIs available!
Library Conflict Safety
Mods are stored and executed in isolation.
Use dynamically linked 3rd party libraries without worrying.
Use Any Language
Can your language interop with C?
Congrats, you're 100% supported.
Add Mod Support Fast
New game? Don't make a loader from scratch.
Your game engine might already have modules ready to go.
The goal is to create a world where modders can focus on actually modding the games.
Mod Management & Packaging
Info
Mod Managers implementing the R3 standard guarantee the following.
Clean Installation
Doesn't modify game's existing files.
Self contained. Remove R3 folder and it's gone.
1-Click Downloads
Supports 1-click downloads on supported websites.
With backwards compatibility for games' legacy protocols.
Dependency Resolution
If a mod requires another mod to function,
it will be automatically downloaded.
Automatic Updates
For everything: Launcher, Loader & Mods.
Includes super cool Delta Update technology.
Built-in Mod Configuration
Unified schema for configuring mods.
Works with any language; changes apply in real time!
Multi-Game Manager
Supports multiple games at once.
Only one copy of Mod Manager needed.
Download From Anywhere
Full support for various download sources, download and update!
GameBanana, GitHub, Nexus and More!
So What's the Idea?
Info
This page looks awfully familiar to Reloaded-II, what's up with that?
Reloaded3
is a specification for an enhanced version of Reloaded-II
; with a newer config schema,
design that supports multiple platforms (not just Windows) and the ability to allow anyone write mods in an arbitrary programming
language of their choice.
It expands the tried and tested Reloaded-II paradigm of having individual mods communicate with each other.
For example, support for specific games is implemented by talking to existing other mods which implement middleware/engine specific features for archive formats, utility functions etc.
Tip
Did you know the first mod for Persona 3 on GameBanana appeared 40 minutes after the game released on PC? No changes were needed to Reloaded-II Launcher or Loader.
This was possible because the game used .cpk
, an archive format from
CRI Middleware; for which Reloaded had a universal mod to handle
these archives without repacking.
All the mod author had to do was set a dependency
the mod and... that was all, it magically works!
Feasible?
Question
Whoa, whoa, whoa; isn't that a lot of stuff? Yeppers, the good news is; most of this stuff already exists in Reloaded-II 😉.
Contributions
Contributions to this specification are highly encouraged; feel free to make corrections of any sort, and discuss issues as needed.
-
For .NET you might need to set
COMPLUS_FORCEENC = 1
environment variable. ↩