Jump to content

Forge and other ModLoader APIs


Recommended Posts

Hello dear users,

I know there are serveral related threads out there and I also know the answer myself, but I want to verify my thoughts by asking you the following:

I downgraded my Minecraft to 1.2.5 again because I like that version more, many more mods are compatible with 1.2.5 instead of 1.3.2. The way I always used my modded Minecraft was by installing ModLoader, ModLoaderMP, Forge and then AudioMod. Now I red that Forge loads the mods from ModLoader without installing ModLoader and also replaces AudioMod. That's fine. I also know that ModLoaderMP isn't compatible with Forge, but I always get it to run by installing it before Forge and it works. Now I want to ask you: Does Forge replace ModLoaderMP (I think not)? Can I use them together or are there any disadvantages?

Sorry for any mistakes in this text, I'm on my iPod touch.


Thanks, DigitalClark.

Link to comment
Share on other sites

I'm pretty sure that no. Forge doesn't actually replace it. If it did, it'd be more compatible with it. From what I've read ModLoaderMP goes about what it does either poorly, or in a way that isn't ideal. So, it's more a (bad) design choice for mod creators to use MLMP instead of Forge. For actual compatibility instead of "Well, it doesn't explode... That's good", mod authors will need to migrate to Forge instead of ModLoaderMP.


I'm almost certain this is the case. I say almost as I have little to no knowledge of java code quite yet, and am going on what I've seen around the forum. All I've seen is that Forge has a built in replacement for Forge, and is not compatible with MLMP. Never saw any mention of them trying to bother trying to be compatible with it. So I'd say no.


I'm sure somebody more knowledgeable than me will come along soon to let you know for sure.  :-X

Check out my

Texture Packs Thread here on the Forge Forum. :)

Currently in the process of adding some mod support for JohnSmith Texture Pack.

width=105 height=12https://www.sugarsync.com/piv/D8135159_67366891_21351[/img]


width=209 height=19https://www.sugarsync.com/piv/D8135159_67366891_772852[/img]

Link to comment
Share on other sites

Thanks Zero for your reply!

All I've seen is that Forge has a built in replacement for Forge, and is not compatible with MLMP. Never saw any mention of them trying to bother trying to be compatible with it. So I'd say no.

Don't you mean that Forge has a built in replacement for ModLoader? Well, I know that it shouldn't be compatible with MLMP and I believe all of you, but the strange thing is that it works if you just install MLMP before Forge... Now, that this normally shouldn't work, I think that there are any disadvantages and that I better do not use MLMP mods until they are ported to Forge... Well, I'm just going to reinstall Forge without ModLoader, ModLoaderMP and AudioMod and I hope that it will work... But it's strange, that it works...


EDIT: I've just red that Forge and MLMP are compatible with each other, but only in SSP. In SMP they'll conflict. I won't use ModLoaderMP mods now, I'll stick with Forge. Goodbye MLMP, hello Forge!

EDIT 2: I just decided stick with 1.2.5 until 1.4 is out and I use ModLoaderMP with Forge for SSP and for SMP only Forge. That does not conflict and works fine. Are there any disadvantages to use MLMP and Forge in SSP?

Link to comment
Share on other sites

Considering SSP no onger exists in 1.3, {I know you're stating 1.2.5} anything that still uses MLMP is pretty much on a dieing horse and they should switch.

On the client side MLMP is really minimal, it does a few things, but for the most part there is a compatibility layer on the client side, as long as you install Forge AFTER MLMP.

MLMP just simply doesn't do the job that it set out to do in a satisfactory manor {seriously the job is 90% copy/paste of ModLoader and they can't even do that u.u}

Which causes incompatibility between client and server mods, causing the mod devs more pain.


So ya, pretty much if you use a mod that uses MLMP go yell at them to move to a better system, it's actually less work for them in the long run.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello I cannot resize my minecraft anymore when I try it does only crash. I don't know what is happening with this game I'm using Forge 1.20.1-47.2.17 and here's the link of the latest log https://paste.ee/p/y00ed  
    • Wait guys, I still don't don't understand... I shall send my code -- Define the function to decrease hunger local function decreaseHunger(player)     local currentHunger = player.getHunger()          -- Check if hunger is not already zero     if currentHunger > 0 then         player.setHunger(currentHunger - 1)     end end -- Register event to decrease hunger over time script.registerEvent(EntityPlayer, function(player)     while true do         -- Decrease hunger every few seconds         decreaseHunger(player)         script.sleep(1000) -- Sleep for 1 second     end end)     Any help appriecated. It's been a while since I learnt Javascript or whatever Minecraft is made with... ... ... ... Nicknotname Hungerinpeaceful xx
    • good days  i get this error: java.lang.ClassCastException: class net.minecraft.client.player.LocalPlayer cannot be cast to class net.minecraftforge.common.extensions.IForgeServerPlayer (net.minecraft.client.player.LocalPlayer is in module minecraft@1.20.4 of loader 'TRANSFORMER' @3e8b3b79; net.minecraftforge.common.extensions.IForgeServerPlayer is in module forge@49.0.26 of loader 'TRANSFORMER' @3e8b3b79)     at mercmod.blocks.classes.panel_whit_entity_inside.use(panel_whit_entity_inside.java:576) ~[main/:?] {re:classloading}     at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.use(BlockBehaviour.java:826) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading}     at net.minecraft.client.multiplayer.MultiPlayerGameMode.performUseItemOn(MultiPlayerGameMode.java:324) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.multiplayer.MultiPlayerGameMode.lambda$useItemOn$4(MultiPlayerGameMode.java:292) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.multiplayer.MultiPlayerGameMode.startPrediction(MultiPlayerGameMode.java:251) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.multiplayer.MultiPlayerGameMode.useItemOn(MultiPlayerGameMode.java:291) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.startUseItem(Minecraft.java:1799) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.handleKeybinds(Minecraft.java:2083) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.tick(Minecraft.java:1902) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.runTick(Minecraft.java:1216) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.run(Minecraft.java:801) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:234) ~[forge-1.20.4-49.0.26_mapped_official_1.20.4-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} ------------------------------------------------------------------------------------------------------------------   context:  im updating the briefcase from mi mod an i need to make a gui whit this image that gonna be launched from a block and from a item soo im using kapenjoe tutorials  ---------------------------------------------------------------------------------------- The problem is that tutorial is for 1.20.1 and im using 1.20.4 and i really dont get how to call and open the gui from the block nor from the item i made this based on post i made short ago everything seems find but when right click the block to open the gui it crash the game  @Override public InteractionResult use(BlockState blkstate, Level warudo, BlockPos pos, Player pe, InteractionHand hand, BlockHitResult hitresult) {     if(warudo.isClientSide()){         BlockEntity blkentity = warudo.getBlockEntity(pos);         if(blkentity instanceof Panel_BlockEntity){             //   ↓↓↓  open the menu from the block              IForgeServerPlayer ifpe = (IForgeServerPlayer)pe; //<--- this is wrong  "class net.minecraft.client.player.LocalPlayer cannot be cast to class net.minecraftforge.common.extensions.IForgeServerPlayer"             ifpe.openMenu( (Panel_BlockEntity) blkentity, pos ); //<-- i need an example of how open a gui in 1.20.4         }     } return InteractionResult.sidedSuccess(warudo.isClientSide()); } Theres nothing highlighted in red in the code like everything where right an possible but dont works  ####################################################################################################### i need to see an example, just the piece of code for the use() method of the block whit the block entity for 1.20.4  and the same  but for the item     @Override     public @NotNull InteractionResultHolder<ItemStack> use(@NotNull Level warudo, @NotNull Player pe, @NotNull InteractionHand interactionHand)     {         if (!warudo.isClientSide())         {             ItemStack heldItem = pe.getItemInHand(interactionHand);                          if (heldItem.getCapability(ForgeCapabilities.ITEM_HANDLER).isPresent())             {                 //   ↓↓↓  open the menu from the item                 NetworkHooks.openScreen((ServerPlayer) pe, this);             }         }         return super.use(warudo, pe, interactionHand);     }   thanks for your attention           
    • It depends on the data you want to save, but generally speaking you should use some custom Player Capabilities, attach to the Player and use them to store/retrieve any kind of data you want. You can find how to make them work for 1.20.x in the documentation here: https://docs.minecraftforge.net/en/latest/datastorage/capabilities/
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.