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

  • Author
8 minutes ago, V0idWa1k3r said:

There is a section in the official docs that explains how to add custom drops to a vanilla loottable. If you need an example you can have them here(json, registration, injection)

why I have to use loot tables?

4 hours ago, Animefan8888 said:

LivingDeathEvent

 

4 minutes ago, nov4e said:

why I have to use loot tables?

36 minutes ago, V0idWa1k3r said:

data-driven methods prefferred over code-based ones, a lot of mods rely on loottables, like JEI Mob drops addon. You also won't have any issues as a side bonus. 

 

Also why did you quote @Animefan8888 who also told you not to use LivingDeathEvent?

  • Author
@SubscribeEvent
	    public static void onLootTable(LootTableLoadEvent event)
	    {
	        if (event.getName().toString().equals("minecraft:entities/pig"))
	        {
	            LootEntry entry = new LootEntryTable(tableScales, 1, 0, new LootCondition[0], "bone_drop");
	            LootPool pool = new LootPool(new LootEntry[] { entry }, new LootCondition[0], new RandomValueRange(1), new RandomValueRange(0, 1), "bone_drop");
	            event.getTable().addPool(pool);
	        }
	    }
{
    "pools": [
        {
            "rolls": 1,
            "name": "bone",
            "entries": [
                {
                    "type": "item",
                    "weight": 1,
                    "name": "minecraft:bone",
                    "functions": [
                        {
                            "function": "set_count",
                            "count": {
                                "min": 1,
                                "max": 2
                            }
                        },
                        {
                            "function": "looting_enchant",
                            "count": {
                                "min": 1,
                                "max": 2
                            },
                            "limit": 2
                        }
                    ]
                }
            ]
        }
    ]
}
HDropsLiving.tableScales = LootTableList.register(new ResourceLocation("bone_drop"));

Thi is correct?

23 minutes ago, nov4e said:

HDropsLiving.tableScales = LootTableList.register(new ResourceLocation("bone_drop"));

 

This would register the loottable with the name of minecraft:bone_drop. I don't think your modid is minecraft. Also when are you calling this?

 

Apart from that(and apart from the fact that you've blatanly copied my code - you even left the field names the same which makes no sense in your mod) sure, looks fine to me.

  • Author
3 minutes ago, V0idWa1k3r said:

Apart from that(and apart from the fact that you've blatanly copied my code - you even left the field names the same which makes no sense in your mod) sure, looks fine to me.

It's just for make a base. Tomorrow I will change the code.

 

4 minutes ago, V0idWa1k3r said:

minecraft:bone_drop

What you mean? I would it drops minecraft:bone.

 

27 minutes ago, nov4e said:

HDropsLiving.tableScales = LootTableList.register(new ResourceLocation("bone_drop"));

Now eclipse tell me this is not correct.

4 minutes ago, nov4e said:

What you mean? I would it drops minecraft:bone.

It can drop whatever you want, but you are telling the game to look for a lottable at minecraft:loot_tables/bone_drop, which is incorrect.

 

5 minutes ago, nov4e said:

Now eclipse tell me this is not correct.

Well, you are a programmer. You should be able to easily fix syntax errors. I can't tell what the issue is since you have neither provided enough code to determine the issue nor the error report.

  • Author
17 minutes ago, V0idWa1k3r said:

It can drop whatever you want, but you are telling the game to look for a lottable at minecraft:loot_tables/bone_drop, which is incorrect.

HDropsLiving.tableScales = LootTableList.register(new ResourceLocation("nex:bone_drop"));

 

nex is the mod id

1 hour ago, nov4e said:

 Why?????

Multiple people could try to use that modid leading to mod ID conflictions. You have 64 characters use them.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

  • Author
1 minute ago, Animefan8888 said:

Multiple people could try to use that modid leading to mod ID conflictions. You have 64 characters use them.

okok but we are here for talking about loot tables.

 

If I would do that i have to rewrite a lot of models, recipes ufff

56 minutes ago, nov4e said:

If I would do that i have to rewrite a lot of models, recipes ufff

Write a file parser that will do it for you.

 

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

  • Author
1 hour ago, Animefan8888 said:

Write a file parser that will do it for you.

okok but i need help for loottables.

  • Author
On 11/8/2018 at 10:18 PM, nov4e said:

@SubscribeEvent
	    public static void onLootTable(LootTableLoadEvent event)
	    {
	        if (event.getName().toString().equals("minecraft:entities/pig"))
	        {
	            LootEntry entry = new LootEntryTable(tableScales, 1, 0, new LootCondition[0], "bone_drop");
	            LootPool pool = new LootPool(new LootEntry[] { entry }, new LootCondition[0], new RandomValueRange(1), new RandomValueRange(0, 1), "bone_drop");
	            event.getTable().addPool(pool);
	        }
	    }

{
    "pools": [
        {
            "rolls": 1,
            "name": "bone",
            "entries": [
                {
                    "type": "item",
                    "weight": 1,
                    "name": "minecraft:bone",
                    "functions": [
                        {
                            "function": "set_count",
                            "count": {
                                "min": 1,
                                "max": 2
                            }
                        },
                        {
                            "function": "looting_enchant",
                            "count": {
                                "min": 1,
                                "max": 2
                            },
                            "limit": 2
                        }
                    ]
                }
            ]
        }
    ]
}

HDropsLiving.tableScales = LootTableList.register(new ResourceLocation("bone_drop"));

Is this correct?

37 minutes ago, nov4e said:

HDropsLiving.tableScales = LootTableList.register(new ResourceLocation("bone_drop"));

On 11/9/2018 at 12:39 AM, V0idWa1k3r said:

This would register the loottable with the name of minecraft:bone_drop. I don't think your modid is minecraft. Also when are you calling this?

 

  • Author
1 minute ago, V0idWa1k3r said:
35 minutes ago, nov4e said:

HDropsLiving.tableScales = LootTableList.register(new ResourceLocation("bone_drop"));

On 11/8/2018 at 10:39 PM, V0idWa1k3r said:

This would register the loottable with the name of minecraft:bone_drop. I don't think your modid is minecraft. Also when are you calling this?

So it has to be:

HDropsLiving.tableScales = LootTableList.register(new ResourceLocation("nex:inject/bone_drop")); ?

4 minutes ago, nov4e said:

new ResourceLocation("nex:inject/bone_drop")

Where did the inject/ came from? It wasn't there in your previous message. Is your loottable located withing the inject folder?

  • Author
18 minutes ago, V0idWa1k3r said:

Where did the inject/ came from? It wasn't there in your previous message. Is your loottable located withing the inject folder?

Ok so i have to remove inject/ ??

I found inject in the documentation

Edited by nov4e

I don't know. I have not seen your folder structure nor have you told it to us. I don't know which folder contains your loottable file and thus which path you should use. The base path is assets/%modid%/loot_tables/%filename%.

  • Author
31 minutes ago, V0idWa1k3r said:

assets/%modid%/loot_tables/%filename%.

yeah is here the file.

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.