Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hello, I'm newbie in minecraft modding and i'm stuck.

I need to add new items to fishing loot table but I don't know how. I created fish.json in loot_tables/gameplay/fishing and add here my fish.
But it don't work, as I understand I need to registry or smth else this "fish"(if not, please correct me).  

I saw code of some open sourse mods like "Aquacuture 2" and they do smth like this:

@Mod.EventBusSubscriber(modid = BetterFishing.MOD_ID)
public class LootTableInit {

    public static final ResourceLocation FISH = register("gameplay/fishing/fish");

    private static ResourceLocation register(String path) {
        return new ResourceLocation(BetterFishing.MOD_ID, path);
    }
}

Why are they doing this and should I use smth similar?

P.S. Sorry, if there are mistakes here and it looks unclear(Еnglish isn't my native language)

  • Author
1 hour ago, diesieben07 said:

If you want to modify, but not overwrite, the loot table, look at https://mcforge.readthedocs.io/en/latest/items/globallootmodifiers/.

How and for what I can use it?
I need to add items to fishing. I realized that I could change a vanilla fishing loot table(i tried it and it works) but i think that it isn't so easy

So, I'm newbie in modding and I can be dumb sometimes

  • Author
44 minutes ago, diesieben07 said:

You could overwrite the vanilla fishing loot table, yes. However: Vanilla does not do any loot table merging. One datapack wins. So if you and another mod (or another data pack) both modify the fishing loot table, only one wins.

That's why Forge has added global loot modifiers, which allow you to specify modifiers that act on the result of loot tables, without replacing them.

I have done it! Yahooo ^-^

So, I didn't used your variant. I take part of code from 
https://github.com/TeamMetallurgy/Aquaculture/blob/b5a006328b298a6d61b1f26379da8809423c017c/src/main/java/com/teammetallurgy/aquaculture/init/AquaLootTables.java

and part from
https://github.com/TheIllusiveC4/CombustiveFishing/blob/master/src/main/java/top/theillusivec4/combustivefishing/common/registry/CombustiveFishingLoot.java
And make my own code

Anyways, thanks a lot :3

  • Author
1 hour ago, diesieben07 said:

Do not use LootTableLoad event. It is the wrong tool for this.

Ok. What are the differences between this variant and Global Loot Modifiers?
As you explained(and as I understand)

  1. I can overwrite vanila loot table but if another mod do the same, 1 of us won't work 
  2. Global Loot Modifiers can "add" items to loot tables and if more than 1 mod change loot table it still  will work
  3. And this variant - it works, but as you said it wrong tool for it.

Why it's wrong tool, what's wrong?

  • Author
4 minutes ago, diesieben07 said:

LootTableLoadEvent completely bypasses the data driven system. Modpack makers or just "regular users" can not change your logic by using a datapack if you use LootTableLoadEvent.

So, this variant doesn't allow modpack makers use datapacks.
And the best way without restriction is Global Loot Modifiers.

So, global_loot_modifiers.json and The serialized json look simple but The LootModifier Subclass...

Is it example for loot in chests? Or it is for every loot table 

Really high level nonsense, all modifiers are invoked any time any loot is dropped by anything.

The LootConditions result in most of those modifiers effects being skipped (because the conditions were false, and that includes things like "a zombie died? Well that wasn't iron ore..."), but they're still checked.
 

The point was to create a system that replaced HarvestDropsEvent in a way that was as data driven as possible and would layer properly so that multiple mods could modify the same loot table without conflict (eg. adding a new crop seed to tall grass).

 

As such its complicated to create, but it is more better than any other approach for all the reasons that those other approaches are broken.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

  • Author
1 hour ago, Draco18s said:

As such its complicated to create, but it is more better than any other approach for all the reasons that those other approaches are broken.

It isn't for beginners at all. Yes?

  • Author
Just now, diesieben07 said:

Depends on what kind of beginner. In my opinion its not hard to create at all.

For me now it looks hard, for the first realization I will youse "me vatiant"

 

3 hours ago, AsnDen said:

And this variant - it works, but as you said it wrong tool for it.

I think soon I will change it to Global Loot Modifiers. When I will have more experiense.

Anyways thanks a lot. It was very helpful

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

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.