ModLoader for Minecraft ReIndev
You can join the official ReIndev Discord here
A feature missing to make your mod? Just open an issue!
For client side installation, just run the jar file.
Either by double-clicking on it, or running java -jar FoxLoader.jar
To run FoxLoader as a server just run java -jar FoxLoader.jar --server
Note: For PojavLauncher, click on "Install .jar" and the rest should be automatic, only the Android version of PojavLauncher is supported.
For mixins usage check here: https://github.com/2xsaiko/mixin-cheatsheet
For spark usage check here: https://spark.lucko.me/docs/Command-Usage
For example mod check here: https://github.com/Fox2Code/FoxLoaderExampleMod
betacraft
-> BetaCraft launch method to run fox loaderclient
-> client specific codecommon
-> main component of the mod loader that are shared both on client and on serverdev
-> Gradle pluginfinal
-> Installer a format in which the mod loader is shipped to userserver
-> server specific code
- Load pre patches
- Load core-mods (Aka. Legacy mods) into class loader
- Load pre-patches (FoxLoader asm patches)
- Load mods into class loader
- Do full game pre-patching
- Initialize mixins
- Allow game to be loaded
- Load mods
- Launch game
As you see the game is allowed to be loaded very late into the boot process, even after mixins.
This ensures that all patches introduced by mods are applied, but also prevent code loaded in MixinPlugins to load Minecraft classes, please keep that in mind when messing with mixins plugins.
If you are too lazy to learn java you can just use put .lua
files in your mods
folder,
while the lua API is a lot more limited than the java one, it should be enough to allow
you to customize your server to your likings without putting too much effort.
-- modId: lua_example
-- modName: Lua Example Mod
-- version: 1.0.0
-- description: Just add /discord to the game.
--
print("Hello from lua")
gameRegistry.registerCommand(function(args, player)
player:displayChatMessage(chatColors.AQUA .. "https://discord.gg/38Vfes6NpR")
end, "discord", false) -- false is needed cause it default to "opOnly = true"
mod.onNetworkPlayerJoined = function(player)
player:displayChatMessage(chatColors.AQUA .. "Welcome back to server name!")
end