Jump to content

Beginning forge modding


Recommended Posts

Hi there, My name is Stokykyle from the SwiftWolfNetwork and we have been suffering a problem with clear lag plugins (which are essential for no lag) removing a few modded items such as Fluix Seeds and removing cows with a name tag and item frames. So i have taken upon my self to create my own mod like "LagBGon" by ZenDarva and i am just struggling to get started in doing a interval based clearlag function.


Would love the help :)

Link to comment
Share on other sites

Two pointers:


1) I suggest that you learn how to make basic mods first and learn all of the basics before you start all of this stuff because you will probably be lost otherwise. It is extremely helpful to have experience.


2) What exactly are you trying to do with your clearlag function? Be specific in what you are trying to do so we can help you.


And just to be clear, this is not a forum where people will just give you code and essentially make your mod for you, we help to you to figure it out yourself.

Creator of the MyFit, MagiCraft, Tesseract gun, and Papa's Wingeria mod.

Link to comment
Share on other sites

1) I know how to make basic mods like creating items and blocks but not server only mods etc

2) I want to create the clear lag function to clear all the entities in the world such as items, mobs etc with the exception of the ones listed in the a config file

Link to comment
Share on other sites

To make mod Server only you:

* Add: "serverSideOnly = true" in @Mod - mod will be only loaded by Dedicated server.

* Mark all (I think you can even mark @Mod, but idk) your classes with @SideOnly(Side.SERVER) - classes will be present only on dedicated server.

Note: Both those things are not needed, but are rather a good practice.

Now what is needed:

* You need to make server allows un-modded clients.

To do that:

* Add "acceptableRemoteVersions = "*"" to @Mod


* Add method with @NetworkCheckHandler annotation in your @Mod class.

How to is described in docs.


As to how to do things to entities:

@SubscribeEvent to WorldTickEvent (unless you want other trigger like cmd), pick event.phase (event is fired twice per tick).

You will probably want some iterative integer counter and execute actual code once per e.g: if (counter % 10000 == 0).

Note: counter needs to be per-world. You can use world's local time (every world has timer).

The actual code will need to acces: event.world.loadedEntityList.

You can iterate over them, check instances and remove what you like. Do NOT remove them from list. Use entity.setDead().


Note: Everything I mentioned and didn't explain can be found on google (e.g: usage of events etc.)

Some names/methods may vary on version.

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

* Mark all (I think you can even mark @Mod, but idk) your classes with @SideOnly(Side.SERVER) - classes will be present only on dedicated server.

I just want to stress the bolded portion there - marking your classes @SideOnly(Side.SERVER) will preclude the use of your mod in single player.


Is that really what you want? In the vast majority of cases, there isn't any reason to make a mod specifically server-side only. You could just as easily make it a general mod that performs its duties in the various mod init phases, events, etc., all running on the logical server i.e. when the World object is not remote, and it will have the same effect but be usable also in single player. Just a thought.

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.

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.

  • Create New...

Important Information

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