Jump to content

Recommended Posts

Posted

 

Hey everyone!

I started learning Minecraft modding with a friend and we have a medium-sized mod we are about to start working on as a hobby (something like Botania, a sort of tech mod with magic skin). We have a lots of ideas and we might end up releasing it one day if we succeed to make a polished enough mod. In this eventuality in mind, we would like to have a clean project from the start, in case we release it and expand it afterwards. So I have multiple questions, some of them will certainly be seen as overkill (ex: thinking about mod porting before developing the mod in the first place) but those are also to satisfy my curiosity and learn more about modding in general (I added numbers so it's easier to answer a specific question):

1) Regarding Minecraft versions, which one do you advise us to start with, and how hard is it to port for other versions? 1.19 is pretty recent, so I guess less stable and with less documentation than 1.18. Are there any good practice to adopt early to ease future version porting?

2) (I couldn't find if this question is allowed here, feel free to delete it if it's not) Same question for Forge and Fabric. We use Forge for now, how hard is it to port for Fabric (or other modding api), and are there any good practice to ease the process?

3) I've seen some Libraries mod (like AppleCore for 1.12 or GeckoLib), are there any very useful ones I should be aware of that should be included in almost every mod projects?

4) Our mod would use at least some entities to work (think about MineColonies, or the chicken mod https://www.curseforge.com/minecraft/mc-mods/chickens) and we are debating on how much entities could we use without introducing too much lag. We have a design in mind to reduce the potential amount of entities used (like the chicken staff that turn chicken entities into item form), but we prefer the visual appeal of having entities "working" and moving around. So I know it's a very vague question (depend of the scale of the server and client hardware), but from your experience what would be an acceptable range of entities count we should target?

5) This one is really out of curiosity, but I've seen some big mods divided into multiple smaller mods (like the Thermal Series or Integrated Dynamic). What's the reason behind this and how hard is it to achieve/maintain? I suppose it allow players and modpack creator to include specific features without having to include a whole lot of unwanted content?

6) Any other good practice/tips/recommandation?

Have a nice day!

 

 

Posted

2) just separate "forge" stuff (registering things, etc.) from "mod" stuff (what should happen for players to see) into separate classes and you will be fine.

3) no, not really. especially if you want to port to other mod loaders. except maybe architectury but i never used that.

4) don't worry about it, at least for controllable things like chickens. let player decide if he wants 4 or 400 chickens around. you should worry about ambient entities (things flying/swimming around) and not have hundreds of those especially if you can't prevent them from appearing all the time (like squids) or if you can't kill them (like some glowbugs/fireflies...).

1) start with 1.18. porting to 1.19 is pretty easy, but you probably wont want to maintain 1.19 in parallel, likely 1.18 and 1.20. you do not need to decide on this now because you don't know when you'll have a stable mod and free time.

  • Like 1

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.

Guest
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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • The problem occurs also in 1.20.1 Forge, but with an "Error executing task on client" instead. I have "Sinytra Connector" installed. On 1.21.5 Fabric, there is no problem. When this happens, the chat message before the death screen appears gets sent, with an extra dash added.
    • Well, as usual, it was user error. Naming mismatch in sounds.json.  Please delete this post if you find it necessary. 
    • Hello Forge community.  I'm running into an issue with a mod I'm working on.  To preface, I can call /playsound modId:name music @a and I can hear the sound I registered being played in game. Great!  However, I cannot get it to trigger via my mod code.    Registration: public static final RegistryObject<SoundEvent> A_WORLD_OF_MADNESS = SOUND_EVENTS.register("a_world_of_madness", () -> new SoundEvent(new ResourceLocation("tetheredsouls", "a_world_of_madness")));   Playback: Minecraft mc = Minecraft.getInstance(); if (!(mc.player instanceof LocalPlayer) || mc.level == null) return; LocalPlayer player = (LocalPlayer) mc.player; BlockPos pos = player.blockPosition(); SoundEvent track = ModSounds.A_WORLD_OF_MADNESS.get(); System.out.println(track); System.out.println(pos); System.out.println(player); // play exactly like the tutorial: client-only, at the player's position try { mc.level.playLocalSound( player.getX(), player.getY(), player.getZ(), track, SoundSource.MUSIC, // Or MASTER if needed 1f, 1f, false ); System.out.println("[DEBUG] playSound success: " + track.getLocation()); } catch (Exception e) { System.err.println("[ERROR] Failed to play sound: " + track.getLocation()); e.printStackTrace(); } Sounds.json:   { "theme_of_laura": { "category": "music", "sounds": [ { "name": "tetheredsouls:a_world_of_madness", "stream": true } ] } } Things I have tried: - multiple .ogg files. Short .ogg files (5 seconds, <100KB).  - default minecraft sounds imported from import net.minecraft.sounds.SoundEvents; These work given my code. No idea why these are different.  - playSound() method, as well as several others in past iterations that did not work   I would be forever grateful if somebody could point me in the right direction. I've looked at several mod github repositories and found extremely similar code to what I'm doing. I've also found several threads in this forum that did not solve my issue. I just cannot figure out what I'm doing differently, and why I'm able to queue sounds manually with playsound but the code won't play it (despite confirming the code is being run with the debug statements.)
    • Delete the tensura-reincarnated/common.toml file (config folder)
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

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