Jump to content

Syric

Members
  • Posts

    108
  • Joined

  • Last visited

Everything posted by Syric

  1. entityInside() detects the entirety of the 16x16x16-pixel block. I want something that only detects when the entity is inside the small part of it that has a hitbox.
  2. I have a block that doesn't take up a full block - it's placed on the side of existing blocks (and is therefore directional). It has a hitbox of about 16x16x2 pixels and does not collide, so it can be entered. How should I detect when an entity's hitbox intersects with the block's? I simply need to return a boolean for an entity (a check triggered by entityInside, which covers the entire 16x16x16 cube) depending on whether they're in the block's hitbox or not. I tried using level.getEntities, but that seems to be only searching for entities' origins. There are a few other methods: several versions of getEntities, one getEntityCollisions, and one getCollisions, but those don't seem to be returning any hits when I step into the block either. Any advice?
  3. Unfortunately this forum doesn't support 1.12 anymore. The best we can do is tell you to read the crash and ask the authors of whichever mods are causing problems.
  4. My block is as thin as a snow layer. When I put two on top of each other (so with most of a block of empty space between them, like stacking carpets) the friction when walking on top of the top one is correct, suggesting that it's calculating based off the friction of the block below: i.e. the layer underneath it. This matches warjort's info, which says that the game calculates friction based on the block 0.5 blocks below the bottom of the entity. Hm. Perhaps it would work if I turned the block below into a 'slicked block' containing its previous state as data somehow and possessing the correct friction. That seems a bit overkill though, so I might just use SpeedFactor instead.
  5. I can confirm that when I place two of the custom block on top of each other the slipperiness works fine. Are there any methods that let you interfere with the friction-calculation process? I could check for entities stepping on or inside the block and manually set their friction to the desired value then.
  6. I'm attempting to create a thin, carpetlike block with very little friction, but modifying its friction value has no effect. Is the game checking friction for the block underneath it instead? How can I override this?
  7. The trick is making the block be of a material that's nonSolid(). Because you unfortunately can't make your own materials, I'm using Materials.PORTAL and then overriding the block's getCollisionShape() method so it remains collidable.
  8. ...that would explain some lingering weirdness. Block entity it is, then.
  9. They don't try to walk through them, though. Trapdoors are the opposite situation: mobs treat them as full blocks when they're not, whereas I want mobs to treat my blocks as though they're not there. Simply overriding isPathfindable() isn't sufficient for my situation.
  10. Is it possible to make a block that monsters will be able to see through? Ideally a monster would be able to target a player on the other side of this block and then pathfind directly through it rather than around.
  11. Here's my code. This works fairly well. protected int breakTime = 0; protected int lastBreakProgress = -1; protected int timeToBreak = 200; //10-second break time public void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { if (entity instanceof Monster) { ++this.breakTime; int i = (int)((float)this.breakTime / (float)this.timeToBreak * 10.0F); if (i != this.lastBreakProgress) { entity.level.destroyBlockProgress(entity.getId(), pos, i); this.lastBreakProgress = i; } if (breakTime == timeToBreak) { level.destroyBlock(pos, true); this.breakTime = 0; } } super.entityInside(state, level, pos, entity); }
  12. I have a block that I'd like monsters to break through, a little like doors. As a simpler alternative to the door implementation, I'm thinking that I'll make its collision box slightly smaller (like honey) and then slowly break the block whenever a monster is 'inside' it. However, I'm not sure how I should slowly break a block: I can destroy it or change the block at its position, but I don't know how to use the normal mining-progress system. All the methods I can find seem to be tailored specifically to a player intentionally mining the block, rather than being something I can just call whenever a condition is satisfied. What approaches should I look into?
  13. As it turns out, what I needed was this: int value = level.getRawBrightness(pos, level.getSkyDarken()); My issue wasn't client/server, it was that I was inputting zero for the darkening factor instead of the sky darkness, which is how the game calculates nighttime and weather's effects on the light level.
  14. When a StairBlock is checked to see if it's randomly ticking, it returns whether its 'base block' is randomly ticking. When oak stairs are constructed, for instance, they pass in oak planks as their 'base block'. public static final Block OAK_STAIRS = register("oak_stairs", new StairBlock(OAK_PLANKS.defaultBlockState(), BlockBehaviour.Properties.copy(OAK_PLANKS))); Did you give your stairs themself as a base block somehow? that would cause a loop. Whatever the case, whatever you're passing as their base block isn't able to provide a proper answer on whether the stairs should be randomly ticking. You might theoretically be able to fix the problem by overriding your stairs' isRandomlyTicking() method and just making it return false.
  15. I'm not sure exactly what you've done, but it seems to be producing a loop via isRandomlyTicking() somehow, and that runs until you get a stack overflow. What are your stairs randomly ticking for, and have you written any code that runs when they randomly tick?
  16. I'm making a slime block whose bounciness varies with light level. In order to do this, I need to override fallOn(), updateEntityAfterFallOn(), and StepOn(), and calculate the block's light level with them. The problem is that my attempts seem to return the client-side light first, which is always 15 outside, even at night. More specifically, if I make the code return one value if the level is on server side and another on client side, I can see that both checks trigger in the log... but only the client side actually affects how bouncy the block is. I need a way to either get the server light from the client side, or a way to make the block's server-side behavior override its client-side behavior. My code: @Override public int light(Level level, BlockPos pos, BlockState state) { if (level instanceof ServerLevel serverLevel) { int value = serverLevel.getMaxLocalRawBrightness(pos, 0); LogUtils.getLogger().info("Detected light level of " + value); return value; } else { int value = level.getMaxLocalRawBrightness(pos, 0); LogUtils.getLogger().info("Level not instance of serverlevel. Detected light level of " + value); return value; } }
  17. Thank you! Removing that line does indeed fix the problem. I then wrote a function that adds the contents of the registry to the map, and called it during commonSetup. Everything seems to be working.
  18. First, this method is called from the main mod class: public static void register() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); AlchemineBlocks.register(modEventBus); AlchemineItems.register(modEventBus); AlchemineBlockEntityTypes.register(modEventBus); ! AlchemicalIngredients.register(modEventBus); AlchemicalRecipes.register(modEventBus); } Then the AlchemicalIngredients class: public class AlchemicalIngredients { private static boolean isInitialized = false; public static final DeferredRegister<Ingredient> INGREDIENTS = DeferredRegister.create(new ResourceLocation(Alchemine.MODID, "ingredients"), Alchemine.MODID); public static final HashMap<Item, Ingredient> INGREDIENTS_MAP = new HashMap<>(); public static final RegistryObject<Ingredient> PHOSPHORUS = registerIngredient("phosphorus", ! () -> new Ingredient(AlchemineItems.PHOSPHORUS.get(), 2.9D, 0.3D) .addAspect(Aspect.LIGHT, 2).addAspect(Aspect.STICKY, 1)); public static void register(final IEventBus modEventBus) { if (isInitialized) { throw new IllegalStateException("Ingredients already initialized"); } INGREDIENTS.makeRegistry(RegistryBuilder::new); INGREDIENTS.register(modEventBus); isInitialized = true; LogUtils.getLogger().info("Ingredients initialized"); } private static <T extends Ingredient> RegistryObject<T> registerIngredient(String name, Supplier<T> ingredient) { RegistryObject<T> ret = INGREDIENTS.register(name, ingredient); INGREDIENTS_MAP.put(ingredient.get().getItem(), ingredient.get()); return ret; } } Here, I'm trying to register a 'phosphorus' ingredient to the Ingredients registry, linking it to the phosphorus item I added in AlchemineItems. The issue I get is an InvocationTargetException that says "Exception message: java.lang.NullPointerException: Registry Object not present: alchemine:phosphorus". It targets the line marked with an exclamation point in AlchemicalIngredients. The full crash log is here. I added the actual phosphorus item some time back; I can confirm that it is present in-game and has not posed any issues on its own. I don't think it's the issue, but I could always post my item-registration code if necessary. Phosphorus is just a new Item with no unique functionality.
  19. I've created a new registry for a class called 'Ingredient'. Each ingredient has several properties, including the item that represents them in the game. However, when I attempt to start the game, I get a crash caused by attempting to register an Ingredient associated with an item my mod adds. The crash report claims that the registry object for that added item is not present. I'm registering my modded items (i.e. calling the register() method) before I register my ingredients, but I suspect that the 'deferred' part of 'DeferredRegister' is interfering with the neat ordering of events. How can I register objects which require other modded objects to be registered first?
  20. How are you currently attempting to load your models and textures? Can we see the filetree that you've placed them in? What are you trying to load models and textures for? A block? An item?
  21. Oh, I misunderstood! I thought you were saying what I should do, but you were just telling me what I was doing wrong. Removing setCanceled(false) makes everything work. Thank you!
  22. Oops, forgot to update the post. The question was rhetorical; I was not actually seeking an answer on something so easily done myself.
  23. So I use setCanceled(true), then I modify it, then I use setCanceled(false)? Or do I modify it, then use setCanceled(true) and setCanceled(false) in succession? Neither of those worked during my initial round of testing, so I'll go back and try them again, see if I had an error in implementation somewhere.
  24. Yeah, I saw that and assumed it was referring to the ':', which I didn't have any control over, so I didn't know what it wanted me to do about it. ...but on second thought it's because I capitalized 'Ingredients', isn't it. Edit: yes it was (and also I used the wrong logger. oops)
  25. I want to make a custom registry for ingredients. I have an 'Ingredient' class defined. From the main mod class (emphasis added with !): public Alchemine() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); IEventBus forgeEventBus = MinecraftForge.EVENT_BUS; // Register the commonSetup method for modloading modEventBus.addListener(this::commonSetup); forgeEventBus.addListener(this::handleFog); forgeEventBus.addListener(this::handleFogColor); ! registry.register(); // Register ourselves for server and other game events we are interested in MinecraftForge.EVENT_BUS.register(this); } Then from the registry utility class: public static void register() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); AlchemineBlocks.register(modEventBus); AlchemineItems.register(modEventBus); AlchemineBlockEntityTypes.register(modEventBus); ! AlchemicalIngredients.register(modEventBus); } I don't think the problem's with either of those, but they're there for completeness. Finally, the AlchemicalIngredients class: public class AlchemicalIngredients { private static boolean isInitialized = false; public static final DeferredRegister<Ingredient> INGREDIENTS = DeferredRegister.create(new ResourceLocation(Alchemine.MODID, "Ingredients"), Alchemine.MODID); public static void register(final IEventBus modEventBus) { if (isInitialized) { throw new IllegalStateException("Ingredients already initialized"); } INGREDIENTS.makeRegistry(RegistryBuilder::new); INGREDIENTS.register(modEventBus); isInitialized = true; LogManager.getLogManager().getLogger(Alchemine.MODID).info("Registered ingredients"); } } When I try to run the game, though, I get this crash report, complaining about: ---- Minecraft Crash Report ---- // You're mean. Time: 6/20/22, 1:48 AM Description: Mod loading error has occurred java.lang.Exception: Mod Loading has failed at net.minecraftforge.logging.CrashReportExtender.dumpModLoadingCrashReport(CrashReportExtender.java:55) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2389%2396!/:?] {re:classloading} at net.minecraftforge.client.loading.ClientModLoader.completeModLoading(ClientModLoader.java:170) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2389%2396!/:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.lambda$new$1(Minecraft.java:553) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.Util.ifElse(Util.java:432) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading} at net.minecraft.client.Minecraft.lambda$new$2(Minecraft.java:547) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.gui.screens.LoadingOverlay.render(LoadingOverlay.java:135) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:885) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.runTick(Minecraft.java:1071) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:661) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:205) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading,pl:runtimedistcleaner:A} at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] {} at java.lang.reflect.Method.invoke(Method.java:577) ~[?:?] {} at net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.lambda$launchService$0(ForgeClientUserdevLaunchHandler.java:24) ~[fmlloader-1.19-41.0.17.jar%230!/:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.6.jar%2310!/:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.6.jar%2310!/:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.6.jar%2310!/:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.6.jar%2310!/:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.6.jar%2310!/:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.6.jar%2310!/:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.6.jar%2310!/:?] {} at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace: at net.minecraft.resources.ResourceLocation.<init>(ResourceLocation.java:37) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading} -- MOD alchemine -- Details: Caused by 0: java.lang.reflect.InvocationTargetException at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:79) ~[?:?] {} at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {} at java.lang.reflect.Constructor.newInstance(Constructor.java:483) ~[?:?] {} at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:68) ~[javafmllanguage-1.19-41.0.17.jar%2391!/:?] {} at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$10(ModContainer.java:121) ~[fmlcore-1.19-41.0.17.jar%2394!/:?] {} at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?] {} at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {} at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {} at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {} at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {} at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {} Caused by 1: java.lang.ExceptionInInitializerError at syric.alchemine.setup.registry.register(registry.java:17) ~[%2395!/:?] {re:classloading} at syric.alchemine.Alchemine.<init>(Alchemine.java:45) ~[%2395!/:?] {re:classloading} at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67) ~[?:?] {} at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {} at java.lang.reflect.Constructor.newInstance(Constructor.java:483) ~[?:?] {} at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:68) ~[javafmllanguage-1.19-41.0.17.jar%2391!/:?] {} at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$10(ModContainer.java:121) ~[fmlcore-1.19-41.0.17.jar%2394!/:?] {} at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?] {} at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {} at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {} at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {} at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {} at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {} Mod File: main Failure message: Alchemine (alchemine) has failed to load correctly java.lang.reflect.InvocationTargetException: null Mod Version: 0.0NONE Mod Issue URL: NOT PROVIDED Exception message: net.minecraft.ResourceLocationException: Non [a-z0-9/._-] character in path of location: alchemine:Ingredients Stacktrace: at net.minecraft.resources.ResourceLocation.<init>(ResourceLocation.java:37) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading} at net.minecraft.resources.ResourceLocation.<init>(ResourceLocation.java:46) ~[forge-1.19-41.0.17_mapped_official_1.19-recomp.jar%2390!/:?] {re:classloading} at syric.alchemine.brewing.ingredients.AlchemicalIngredients.<clinit>(AlchemicalIngredients.java:19) ~[%2395!/:?] {re:classloading} at syric.alchemine.setup.registry.register(registry.java:17) ~[%2395!/:?] {re:classloading} at syric.alchemine.Alchemine.<init>(Alchemine.java:45) ~[%2395!/:?] {re:classloading} at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67) ~[?:?] {} at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {} at java.lang.reflect.Constructor.newInstance(Constructor.java:483) ~[?:?] {} at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:68) ~[javafmllanguage-1.19-41.0.17.jar%2391!/:?] {} at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$10(ModContainer.java:121) ~[fmlcore-1.19-41.0.17.jar%2394!/:?] {} at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?] {} at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {} at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {} at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {} at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {} at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {} -- System Details -- Details: Minecraft Version: 1.19 Minecraft Version ID: 1.19 Operating System: Windows 10 (amd64) version 10.0 Java Version: 18.0.1.1, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode, sharing), Oracle Corporation Memory: 824614400 bytes (786 MiB) / 1409286144 bytes (1344 MiB) up to 2116026368 bytes (2018 MiB) CPUs: 8 Processor Vendor: GenuineIntel Processor Name: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz Identifier: Intel64 Family 6 Model 142 Stepping 10 Microarchitecture: Coffee Lake Frequency (GHz): 1.80 Number of physical packages: 1 Number of physical CPUs: 4 Number of logical CPUs: 8 Graphics card #0 name: NVIDIA GeForce MX150 Graphics card #0 vendor: NVIDIA (0x10de) Graphics card #0 VRAM (MB): 2048.00 Graphics card #0 deviceId: 0x1d10 Graphics card #0 versionInfo: DriverVersion=26.21.14.4223 Graphics card #1 name: Intel(R) UHD Graphics 620 Graphics card #1 vendor: Intel Corporation (0x8086) Graphics card #1 VRAM (MB): 1024.00 Graphics card #1 deviceId: 0x5917 Graphics card #1 versionInfo: DriverVersion=23.20.16.5038 Memory slot #0 capacity (MB): 8192.00 Memory slot #0 clockSpeed (GHz): 1.60 Memory slot #0 type: DDR3 Virtual memory max (MB): 19066.14 Virtual memory used (MB): 15878.22 Swap memory total (MB): 10996.92 Swap memory used (MB): 2259.47 JVM Flags: 1 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump ModLauncher: 9.1.6+9.1.6+main.14b0cc03 ModLauncher launch target: forgeclientuserdev ModLauncher naming: mcp ModLauncher services: mixin PLUGINSERVICE eventbus PLUGINSERVICE slf4jfixer PLUGINSERVICE object_holder_definalize PLUGINSERVICE runtime_enum_extender PLUGINSERVICE capability_token_subclass PLUGINSERVICE accesstransformer PLUGINSERVICE runtimedistcleaner PLUGINSERVICE mixin TRANSFORMATIONSERVICE fml TRANSFORMATIONSERVICE FML Language Providers: minecraft@1.0 lowcodefml@null javafml@null Mod List: forge-1.19-41.0.17_mapped_official_1.19-recomp.jar|Minecraft |minecraft |1.19 |COMMON_SET|Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f |Forge |forge |41.0.17 |COMMON_SET|Manifest: NOSIGNATURE main |Alchemine |alchemine |0.0NONE |ERROR |Manifest: NOSIGNATURE Crash Report UUID: 357be982-9699-4897-8441-d3d03af22f28 FML: 41.0 Forge: net.minecraftforge:41.0.17 From what I can tell, I've screwed something up with the ResourceLocation, which is to be expected considering I'm not entirely sure what I'm doing in that department. Any help would be appreciated.
×
×
  • Create New...

Important Information

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