ModLoader has not been updated to 1.6.4, and may be discontinued. As a result I have started working on a new mod API. If you are a modder and are interested, information can be found here.
Since Minecraft 1.6, Risugami's ModLoader has had several annoying bugs. Some are quite major, and a few can actually make the game almost unplayable! Many mods require ModLoader to work, so I wrote this patch to fix them. Currently the patch fixes these bugs:
Sound shuts down after 30 seconds when using ModLoader.
Mods with in-game GUIs (minimaps, HUD mods, etc.) do not work on servers until a single player world has be loaded.
Some mod config files are not saved properly.
Keybindings are not saved properly. - Thanks Minecrafter_awr
Entities turn invisible in multiplayer. - Thanks Minecrafter_awr
I am currently working on a few other bugs, but these are not so major. If you find any major bugs with ModLoader, reply to this post so that I can add them to the patch! Currently some of the older versions are missing some patches, so check which patches are included next to the download for each version.
Downloads:
By downloading the ModLoader patch, you agree to the License Agreement below.
NOTE: If using a version including patch 5 with optifine, make sure to install optifine AFTER the patch! If you install the patch after optifine then the game will crash!
TERMS AND CONDITIONS 0. USED TERMS MOD - modification, plugin, a piece of software that interfaces with the Minecraft client to extend, add, change or remove original capabilities. MOJANG - Mojang AB OWNER - , Original author(s) of the MOD. Under the copyright terms accepted when purchasing Minecraft ( http://minecraft.net/terms) the OWNER has full rights over their MOD despite use of MOJANG code. USER - End user of the mod, person installing the mod.
1. LIABILITY THIS MOD IS PROVIDED 'AS IS' WITH NO WARRANTIES, IMPLIED OR OTHERWISE. THE OWNER OF THIS MOD TAKES NO RESPONSIBILITY FOR ANY DAMAGES INCURRED FROM THE USE OF THIS MOD. THIS MOD ALTERS FUNDAMENTAL PARTS OF THE MINECRAFT GAME, PARTS OF MINECRAFT MAY NOT WORK WITH THIS MOD INSTALLED. ALL DAMAGES CAUSED FROM THE USE OR MISUSE OF THIS MOD FALL ON THE USER.
2. USE Use of this MOD to be installed, manually or automatically, is given to the USER without restriction.
3. REDISTRIBUTION This MOD may only be distributed where uploaded, mirrored, or otherwise linked to by the OWNER solely. All mirrors of this mod must have advance written permission from the OWNER. ANY attempts to make money off of this MOD (selling, selling modified versions, adfly, sharecash, etc.) are STRICTLY FORBIDDEN, and the OWNER may claim damages or take other action to rectify the situation.
4. DERIVATIVE WORKS/MODIFICATION
This mod is provided freely and may be decompiled and modified for private use, either with a decompiler or a bytecode editor. Public distribution of modified versions of this MOD require advance written permission of the OWNER and may be subject to certain terms.
Currently in progress:
Patch for the rest of the config issues
URI is not hierarchical crash
Not loading mods installed in the jar or loaded on the classpath
Thank you for creating this patch. I think it will not only be useful, but I'll link to this topic at least until Risugami fixes ModLoader.
And for others reading this thread: Please don't turn this into a Forge recruitment thread. There still is a niche for ModLoader mods in the universe of Minecraft mods.
Thank you for creating this patch. I think it will not only be useful, but I'll link to this topic at least until Risugami fixes ModLoader.
And for others reading this thread: Please don't turn this into a Forge recruitment thread. There still is a niche for ModLoader mods in the universe of Minecraft mods.
I'm glad you find it useful! And thanks for warning off the uber-forge people. Forge is nice for big mods, but for small mods ModLoader is just simpler.
Strangely on my system I don't get the sound bug. But for some reason all the mods config file except Modloader.cfg come out empty.
Perhaps you could look into that as well. When I run it in eclipse the configs work just fine.
Rollback Post to RevisionRollBack
I'm not active on these forums, so forgive me if I don't respond!
If you want to contact me, try going through Discord or you can find me on GitHub where I am still updating the below mods (and more):
Strangely on my system I don't get the sound bug. But for some reason all the mods config file except Modloader.cfg come out empty.
Perhaps you could look into that as well. When I run it in eclipse the configs work just fine.
I think the sound bug may only happen on Magic Launcher. I have not tested it with the mojang launcher but some peopel have said it works fine otherwise. Although i do get the bug in MCP, which is more vanilla than Magic Launcher... I will look at the config errors. Someone else mentioned that but they thought it was a problem with their mod. Thanks for pointing that out!
EDIT: can you link me a mod that uses it's config file? All of mine have their own storage system.
EDIT: can you link me a mod that uses it's config file? All of mine have their own storage system.
Sorry the only one I have is my own but I haven't gotten a download link. :C
You could try just adding a variable with the MLProp annotation and see if it turns up in the config.
Rollback Post to RevisionRollBack
I'm not active on these forums, so forgive me if I don't respond!
If you want to contact me, try going through Discord or you can find me on GitHub where I am still updating the below mods (and more):
Sorry the only one I have is my own but I haven't gotten a download link. :C
You could try just adding a variable with the MLProp annotation and see if it turns up in the config.
There seems to be a pretty serious problem where the ModLoader.onTick method is not being invoked. This seems to be a very huge bug, as it also impacts several other things in the game and how mods interact with ModLoader.
I've tried to do a trace back in 1.5.2 (when ModLoader was still working) and compare that to 1.6.x, and I can't find the problem right off.
Because this method is not being invoked, several parts of BaseMod are also not being invoked, and it is surprisingly also screwing up the string localization issue as well. It really is a big bug that would be nice to fix.
Looking at the call stack, I see ModLoader.OnTick is called by EntityRendererProxy.updateCameraAndRender which is in turn called by Minecraft.runGameLoop
There is a new function in the Minecraft class added by Mojang called currently by MCP 8.04 as "func_99999_d" (aka this really is so new that MCP hasn't assigned it a name) that may be the culprit. This is definitely different from how 1.5.x worked and is new to 1.6.x
I'm suspecting that the EntityRenderer class variables used internal to Minecraft aren't being set properly.... but that is the extent of hunting this bug down so far. If you have some additional insight, it would be appreciated.
There seems to be a pretty serious problem where the ModLoader.onTick method is not being invoked. This seems to be a very huge bug, as it also impacts several other things in the game and how mods interact with ModLoader.
I've tried to do a trace back in 1.5.2 (when ModLoader was still working) and compare that to 1.6.x, and I can't find the problem right off.
Because this method is not being invoked, several parts of BaseMod are also not being invoked, and it is surprisingly also screwing up the string localization issue as well. It really is a big bug that would be nice to fix.
Looking at the call stack, I see ModLoader.OnTick is called by EntityRendererProxy.updateCameraAndRender which is in turn called by Minecraft.runGameLoop
There is a new function in the Minecraft class added by Mojang called currently by MCP 8.04 as "func_99999_d" (aka this really is so new that MCP hasn't assigned it a name) that may be the culprit. This is definitely different from how 1.5.x worked and is new to 1.6.x
I'm suspecting that the EntityRenderer class variables used internal to Minecraft aren't being set properly.... but that is the extent of hunting this bug down so far. If you have some additional insight, it would be appreciated.
Does my patch fix it? That sounds like what I fixed in order to make mods work on servers. The bug was that EntityRenderer is created when the integrated server is started, which only happens when a single player world is created. My patch sets up EntityRenderer when the player connects to a server.
I did what you suggested, and sure enough my variables were not in the config. I am going to do some testing to see where things went wrong. The methods that handle the config files are very complex.
EDIT: apparently the fields have to be static otherwise they are ignored. I am trying to remove that requirement.
Does my patch fix it? That sounds like what I fixed in order to make mods work on servers. The bug was that EntityRenderer is created when the integrated server is started, which only happens when a single player world is created. My patch sets up EntityRenderer when the player connects to a server.
No, the patch doesn't fix the problem. I see some of the changes you've made, but is there something missing by pulling the EntityRendererProxy constructor out of the ModLoader.init method? (how Risugami implemented the constructor call)
The ModLoader.onTick method still isn't being invoked.
*Edit* -- Correction. ModLoader.onTick isn't being called when you are on the main menu screen. It does seem to work when you are in some worlds. I guess this could be considered a minor annoyance now, but it impacts some of the things I'm doing.
No, the patch doesn't fix the problem. I see some of the changes you've made, but is there something missing by pulling the EntityRendererProxy constructor out of the ModLoader.init method? (how Risugami implemented the constructor call)
The ModLoader.onTick method still isn't being invoked.
I will track down the method and see what I can do about it. It may be hard for me to test, however, because I have nothing to test against. If you can send me a mod with this bug or can test potential patches for me that would be great!
I will track down the method and see what I can do about it. It may be hard for me to test, however, because I have nothing to test against. If you can send me a mod with this bug or can test potential patches for me that would be great!
You can test with the Biospheres mod and check if when you create a new world that the name "World Type: Biospheres" shows up correctly as one of the world types instead of "World Type: generator.biospheres". Yeah, it seems odd that it is a bug which impacts one of Risugami's own mods. If the onTick method is being invoked correctly, this should be translated correctly.
You can test with the Biospheres mod and check if when you create a new world that the name "World Type: Biospheres" shows up correctly as one of the world types instead of "World Type: generator.biospheres". Yeah, it seems odd that it is a bug which impacts one of Risugami's own mods. If the onTick method is being invoked correctly, this should be translated correctly.
Thanks! And I actually may have found something! Apparently if a boolean called "skipRenderWorld" is set to true in Minecraft.class, the game will skip calling the update method in EntityRenderer, and thus modloader will not get it's ticks. I can find no instances where this flag is set to true, although it is checked in several places and it is set to false in one. I will try messing with it with biospheres, if I can.
EDIT: Yep, even with my patch the bug is still there. I might have also found a bug in biospheres: It does not work properly if it is added to the jar. It has to be loaded from the mods folder.
EDIT2: I tried one thing that didn't work, so I'm going to sleep on this one. I have some ideas for tracking this down I will try tomorrow.
Since Minecraft 1.6, Risugami's ModLoader has had several annoying bugs. Some are quite major, and a few can actually make the game almost unplayable! Many mods require ModLoader to work, so I wrote this patch to fix them. Currently the patch fixes these bugs:
Downloads:
By downloading the ModLoader patch, you agree to the License Agreement below.
License Agreement:
TERMS AND CONDITIONS
0. USED TERMS
MOD - modification, plugin, a piece of software that interfaces with the Minecraft client to extend, add, change or remove original capabilities.
MOJANG - Mojang AB
OWNER - , Original author(s) of the MOD. Under the copyright terms accepted when purchasing Minecraft ( http://minecraft.net/terms ) the OWNER has full rights over their MOD despite use of MOJANG code.
USER - End user of the mod, person installing the mod.
1. LIABILITY
THIS MOD IS PROVIDED 'AS IS' WITH NO WARRANTIES, IMPLIED OR OTHERWISE. THE OWNER OF THIS MOD TAKES NO RESPONSIBILITY FOR ANY DAMAGES INCURRED FROM THE USE OF THIS MOD. THIS MOD ALTERS FUNDAMENTAL PARTS OF THE MINECRAFT GAME, PARTS OF MINECRAFT MAY NOT WORK WITH THIS MOD INSTALLED. ALL DAMAGES CAUSED FROM THE USE OR MISUSE OF THIS MOD FALL ON THE USER.
2. USE
Use of this MOD to be installed, manually or automatically, is given to the USER without restriction.
3. REDISTRIBUTION
This MOD may only be distributed where uploaded, mirrored, or otherwise linked to by the OWNER solely. All mirrors of this mod must have advance written permission from the OWNER. ANY attempts to make money off of this MOD (selling, selling modified versions, adfly, sharecash, etc.) are STRICTLY FORBIDDEN, and the OWNER may claim damages or take other action to rectify the situation.
4. DERIVATIVE WORKS/MODIFICATION
This mod is provided freely and may be decompiled and modified for private use, either with a decompiler or a bytecode editor. Public distribution of modified versions of this MOD require advance written permission of the OWNER and may be subject to certain terms.
And for others reading this thread: Please don't turn this into a Forge recruitment thread. There still is a niche for ModLoader mods in the universe of Minecraft mods.
Version 2.1 now updated for MC 1.6.2
I'm glad you find it useful! And thanks for warning off the uber-forge people. Forge is nice for big mods, but for small mods ModLoader is just simpler.
That is fine with me!
EDIT: I was about to post in your thread, but you have no idea how much gammabright helps me with my super-dark monitor...
You are welcome!
Perhaps you could look into that as well. When I run it in eclipse the configs work just fine.
If you want to contact me, try going through Discord or you can find me on GitHub where I am still updating the below mods (and more):
PRESENCE FOOTSTEPS - (github)
VOID FOG - (github)
I think the sound bug may only happen on Magic Launcher. I have not tested it with the mojang launcher but some peopel have said it works fine otherwise. Although i do get the bug in MCP, which is more vanilla than Magic Launcher... I will look at the config errors. Someone else mentioned that but they thought it was a problem with their mod. Thanks for pointing that out!
EDIT: can you link me a mod that uses it's config file? All of mine have their own storage system.
Sorry the only one I have is my own but I haven't gotten a download link. :C
You could try just adding a variable with the MLProp annotation and see if it turns up in the config.
If you want to contact me, try going through Discord or you can find me on GitHub where I am still updating the below mods (and more):
PRESENCE FOOTSTEPS - (github)
VOID FOG - (github)
Ok, I will try that thanks!
I've tried to do a trace back in 1.5.2 (when ModLoader was still working) and compare that to 1.6.x, and I can't find the problem right off.
Because this method is not being invoked, several parts of BaseMod are also not being invoked, and it is surprisingly also screwing up the string localization issue as well. It really is a big bug that would be nice to fix.
Looking at the call stack, I see ModLoader.OnTick is called by EntityRendererProxy.updateCameraAndRender which is in turn called by Minecraft.runGameLoop
There is a new function in the Minecraft class added by Mojang called currently by MCP 8.04 as "func_99999_d" (aka this really is so new that MCP hasn't assigned it a name) that may be the culprit. This is definitely different from how 1.5.x worked and is new to 1.6.x
I'm suspecting that the EntityRenderer class variables used internal to Minecraft aren't being set properly.... but that is the extent of hunting this bug down so far. If you have some additional insight, it would be appreciated.
Version 2.1 now updated for MC 1.6.2
Does my patch fix it? That sounds like what I fixed in order to make mods work on servers. The bug was that EntityRenderer is created when the integrated server is started, which only happens when a single player world is created. My patch sets up EntityRenderer when the player connects to a server.
I did what you suggested, and sure enough my variables were not in the config. I am going to do some testing to see where things went wrong. The methods that handle the config files are very complex.
EDIT: apparently the fields have to be static otherwise they are ignored. I am trying to remove that requirement.
No, the patch doesn't fix the problem. I see some of the changes you've made, but is there something missing by pulling the EntityRendererProxy constructor out of the ModLoader.init method? (how Risugami implemented the constructor call)
The ModLoader.onTick method still isn't being invoked.
*Edit* -- Correction. ModLoader.onTick isn't being called when you are on the main menu screen. It does seem to work when you are in some worlds. I guess this could be considered a minor annoyance now, but it impacts some of the things I'm doing.
Version 2.1 now updated for MC 1.6.2
This version fixes a bug with mod config files not saving properly.
I will track down the method and see what I can do about it. It may be hard for me to test, however, because I have nothing to test against. If you can send me a mod with this bug or can test potential patches for me that would be great!
You can test with the Biospheres mod and check if when you create a new world that the name "World Type: Biospheres" shows up correctly as one of the world types instead of "World Type: generator.biospheres". Yeah, it seems odd that it is a bug which impacts one of Risugami's own mods. If the onTick method is being invoked correctly, this should be translated correctly.
Version 2.1 now updated for MC 1.6.2
Thanks! And I actually may have found something! Apparently if a boolean called "skipRenderWorld" is set to true in Minecraft.class, the game will skip calling the update method in EntityRenderer, and thus modloader will not get it's ticks. I can find no instances where this flag is set to true, although it is checked in several places and it is set to false in one. I will try messing with it with biospheres, if I can.
EDIT: Yep, even with my patch the bug is still there. I might have also found a bug in biospheres: It does not work properly if it is added to the jar. It has to be loaded from the mods folder.
EDIT2: I tried one thing that didn't work, so I'm going to sleep on this one. I have some ideas for tracking this down I will try tomorrow.
Praise be to Spode.
Are you using 1.6.1+ modloader? (ForgeModLoader doesn't count).