Loot tables and lighting

I started designing and producing a datapack game for Minecraft back on March 6, 2020. I started by live-tweeting the design and development process. I ran a few work threads, and had a good deal of fun.

Throughout all of that, I began to get a bit dissatisfied with how Twitter organizes larger threads. Getting the content nicely organized sucked.

It’s been about a month, and I’ve decided to switch over to a blog format for a couple of reasons:

  • It’s easier to organize complex thoughts.
  • Things will get recorded and stay recorded.

Let’s get started.

10:37 AM CEST

Started my day a few hours ago. I began messing with Misode‘s Loot Table Generator.

As far as generators go, this one is top notch.

Through investigating this, I have found out a bit more about the Bonus Rolls feature and location condition feature. I’m beginning to think there may be a VERY interesting idea of lighting up an area being a requirement before players can mine.

I can check the Luck-based box at the top to enable creators usage of the Luck status effect. I may also consider using this to create compelling scoring as the game goes on.

When designing Minecraft maps as a hobby, I think it is very important to remember to have fun as you go. Here is my current scoped work to get to a prototype. I’m fairly confident I can get there.

But look at #20, this is something I just discovered today and want to spend some time exploring before moving back to finishing the real work.

Let’s test to see if light level actually applies the proper loot table.

This whole theory is based on whether or not the loot tables respect the light levels in the game. We’ll test this on coal.

If the visible light level is between 1 and 15, drop a coal block.
If the visible light level is 0, refer to Minecraft’s empty loot table and drop nothing. Nothing!

I’ll toss this into the custom loot_tables folder I’ve setup. I have a coal_ore.json just setup for just this kind of thing.

2:30 PM CEST

I don’t know, got distracted for awhile there watching YouTube, scrolling Reddit, and playing a bit of Animal Crossing. Let’s test our theory.

Nothing happened. Now, now we must confirm maybe something whether or not something should have.

Nothing worked. Next step is to goto the Official Minecraft Wiki and take a look at the loot_table properties to see if something is wrong.

From the Loot Tables page.

OK, things seem to be lining up. The wording makes sense. Off to the /r/MinecraftCommands Discord for some peer review.

Oh, I suppose that makes sense. Let’s try to add this complexity. My next idea is to add a few Alternative Conditions. We’ll check all six sides of the block for the light level of that block.

My first attempt with setting this up was a bit of a mess. I went into Minecraft’s default coal_ore.json for some checking on formatting. I perhaps don’t know how to use the generator appropriately.

Ah, yeah. That was the problem with my first pass. Let’s bring everything up to the parent level.

3:24 PM CEST

Success! This block now only drops when it’s been lit.

Next up is applying bonus drops based on the Lucky status effect. I don’t quite have a plan for how to use it, but we’re here now and might as well take a look at applying it. Let’s give an additional one roll for each level of luck.

3:42 PM CEST

OK, I can’t figure out how these bonus rolls work on loot tables.

I figured it would be something fairly close to increasing the Bonus Rolls number. I’m thinking maybe it has something to do more with multiple entries needing to be rolled for.

I’ve found Skylinerw’s guide on loot tables, and while it is comprehensive, it doesn’t quite answer my question of why no extra loot is dropping.

Back into Discord.

5:40 PM CEST

Alright, got my answer some time ago and took a break for some nachos.

Essentially, bonus tables do not apply to mining. Since this is an extra investigation we can’t really afford to spend more time on, we’ll move on to something else.

However, I was advised that a way to do this would be to use the entity scores condition. I could probably use that to listen to the Luck level. The only real thing holding me back is figuring out the ranges. I’ll hold back on adding the bonus feature until we get a prototype out.


Silverfish are hiding!

I want silverfish to spawn when ores are dug-up in the dark. Let’s make that happen by dropping a spawn egg and then using a function to swap it out. I would have preferred to drop an entity directly, but we’ll stick with this for now. It’s highly likely this won’t even make it to the final map.

But it’s fun.

6:33 PM

It took a bit of wrangling, but I’ve got the silverfish spawning properly now. I always get tripped up on the NBT.

I think that’s really freaking cool.