- How can I make custom statistics?
-
- [Solved] Trying to register a Custom RecipeType and recipes [Forge 1.20.1]
- Failed to open gui for custom block menu.
-
How can I make custom statistics?
At an attempt at answering my first question I thought I might be able to change the code to this public class SampleModStatisticsRegistry { public static final DeferredRegister<StatType<?>> STATISTICS = DeferredRegister.create(ForgeRegistries.STAT_TYPES, SampleMod.MODID); public static final RegistryObject<StatType<?>> FIREWORK_BOOSTS_USED = STATISTICS.register("firework_boosts_used", () -> new StatType<>(ForgeRegistries.STAT_TYPES, Component.literal("firework_boosts"))); } or to this public class SampleModStatisticsRegistry { public static final DeferredRegister<StatType<?>> STATISTICS = DeferredRegister.create(ForgeRegistries.STAT_TYPES, SampleMod.MODID); public static final RegistryObject<StatType<?>> FIREWORK_BOOSTS_USED = STATISTICS.register("firework_boosts_used", () -> new StatType<>(BuiltInRegistries.STAT_TYPE, Component.literal("firework_boosts"))); } but for the first code snippet the StatType constructor requires a Registry not an IForgeRegistry and for the second code snippet we run into the same NPE issue from above.
-
How can I make custom statistics?
I am attempting to create a mod that adds custom statistics to Minecraft. I've had some help from LexManos on the Discord server, but posting a lot of what I posted in the #mod-dev-support-1.20 channel here to have a more permanent spot for discussion. --- Minecraft creates their stats like this: and some of the registries in the code above are located in BuiltInRegistries.java like this: and the ForgeRegistries#STAT_TYPES looks like this: So, attempting to follow that and the forge documentation on registries I arrived at this: Clearly, registering a stat twice in a row is the wrong way to do it, but the makeRegistryStatType function was used as it does give the correct return type for the code I had come up with so far. --- At this point the game crashes upon trying to use Player#awardStat, because of a NPE that occurs in Stat#locationToKey. Which happens in the 2nd Stat#locationToKey in the Stat#buildName function. The .getRegistry returns the this.registry class variable with a value of {MappedRegistry@#####} "Registry[ResourceKey[minecraft:root / minecraft:custom_stat] (Stable)]" The value passed into .getKey is "samplemod:fireworks_boosts_used" but the reference found is null. So Lex's conclusion was that "[I'm] passing in null because the registry doesnt have an entry for your custom stat instance. So.. register your custom stat instance in that registry." --- So I suppose at this point my questions are 1. How can I create a supplier that returns a Supplier<? extends StatType<?>> to replace the () -> makeRegistryStatType("firework_boosts_used", BuiltInRegistries.CUSTOM_STAT) line of code. 2. Is my registry entry public static final RegistryObject<StatType<?>> FIREWORK_BOOSTS_USED the correct type? 3. Do I need to do anything additional, like create my own StatType<> or my own Stat<> ?
- Issues with adding custom enchantment books to chests that naturally spawn
-
(1.20) Beginner having issue with making a crafting recipe
Pretty sure you get that error because ShapelessRecipe is only for recipes that are crafted using a grid, and don't need to be arranged in a certain way. You have to use AbstractCookingRecipe for any recipe that uses the [smeltable item - fuel item - result item] combination. But I don't think you really need to be messing with code here for recipes. You should just be able to copy what the minecraft\recipes\iron_ingot_from_smelting_raw_iron.json does and replace the ingredient item and your result item: { "type": "minecraft:smelting", "category": "misc", "cookingtime": 200, "experience": 0.7, "group": "iron_ingot", "ingredient": { "item": "minecraft:raw_iron" }, "result": "minecraft:iron_ingot" } or just add the block to the logs_that_burn_tag since the Minecraft recipe for charcoal uses that: { "type": "minecraft:smelting", "category": "misc", "cookingtime": 200, "experience": 0.15, "ingredient": { "tag": "minecraft:logs_that_burn" }, "result": "minecraft:charcoal" }
-
Adding a tool without a recipe
If you don't want an item to have a recipe then simply don't create the .json file for it in the `your_mod/recipes/` directory.
-
How do I get the ResourceLocation of the sprite of an item?
This feels like a really basic question, but my mind is just drawing a blank right now. Trying to get the ResourceLocation of an Item to use with ImageWidget#sprite, so if there is a better way of doing this, do let me know.
- Modder Support: can't make custom fluid able to waterlog slabs, stairs etc.
-
[SOLVED] [1.18.2] Custom armor set extending DyeableArmorItem is dye-able, but not displaying
Your files are named like this? armormaterial_layer_1.png armormaterial_layer_1_overlay.png armormaterial_layer_2.png armormaterial_layer_2_overlay.png
-
[1.20.4] Advice needed: how to make vanilla plants only survive and grow where there is sunlight.
Have you tried using net.minecraft.world.level.BlockAndTintGetter#canSeeSky ?
-
Entity behavior similar to a boat i.e. floats, is solid, slow on land
Have you taken a look at what net.minecraft.world.entity.vehicle.Boat#floatBoat does?
-
[1.20.1] Custom Crop - Disallow vanilla farmland block
Have you checked if you need to override Block#canSustainPlant ? It has this line of code in it: if (net.minecraftforge.common.PlantType.CROP.equals(type)) { return state.is(Blocks.FARMLAND); } which would be relevant since StemBlock.java has this in it: @Override public net.minecraftforge.common.PlantType getPlantType(BlockGetter world, BlockPos pos) { return net.minecraftforge.common.PlantType.CROP; }
-
[1.20.4] events when player start a new word or respawn after being killed, recipes in the recipe book, add items to villager
If you look at the Minecraft wiki, you can see that there already exists one block that unlocks without needing any other blocks, which is the crafting table. https://minecraft.fandom.com/wiki/Recipe_book#Unlocking So if you find the file: \data\minecraft\advancements\recipes\decorations\crafting_table.json You can see that it uses a "unlock_right_away" criteria to do the job. { "parent": "minecraft:recipes/root", "criteria": { "has_the_recipe": { "conditions": { "recipe": "minecraft:crafting_table" }, "trigger": "minecraft:recipe_unlocked" }, "unlock_right_away": { "trigger": "minecraft:tick" } }, "requirements": [ [ "has_the_recipe", "unlock_right_away" ] ], "rewards": { "recipes": [ "minecraft:crafting_table" ] }, "sends_telemetry_event": false }
IPS spam blocked by CleanTalk.