Started by
alttest255671
on
Topic category: Troubleshooting, bugs, and solutions
Steps to reproduce: unknown
Observed behavior:
-MCreator NeoForge workspace compiles correctly and launches game window. Game window then never finishes loading.
-RAM spikes to 2GB of use and 33% CPU usage.
-Logs reveal that it gets stuck on auto-subscribing a GUI of the mod to the event bus.
-Attached are the couple last lines of the log.
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.numHeapArenas: 24
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.numDirectArenas: 24
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.pageSize: 8192
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.maxOrder: 9
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.chunkSize: 4194304
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.smallCacheSize: 256
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.normalCacheSize: 64
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.maxCachedBufferCapacity: 32768
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.cacheTrimInterval: 8192
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.cacheTrimIntervalMillis: 0
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.useCacheForAllThreads: false
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.PooledByteBufAllocator/]: -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.ByteBufUtil/]: -Dio.netty.allocator.type: pooled
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.ByteBufUtil/]: -Dio.netty.threadLocalDirectBufferSize: 0
[23:31:26] [modloading-worker-0/DEBUG] [io.ne.bu.ByteBufUtil/]: -Dio.netty.maxThreadLocalCharBufferSize: 16384
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.neoforged.neoforge.network.NetworkInitialization to MOD
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.neoforged.neoforge.network.ConfigurationInitialization to MOD
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.neoforged.neoforge.common.MonsterRoomHooks to GAME
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.neoforged.neoforge.common.DeferredSpawnEggItem$CommonHandler to MOD
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.neoforged.neoforge.common.DeferredSpawnEggItem$ColorRegisterHandler to MOD
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.neoforged.neoforge.client.model.data.ModelDataManager to GAME
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.neoforged.neoforge.client.ParticleBoundsDebugRenderer to GAME
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.neoforged.neoforge.client.ClientHooks$ClientEvents to MOD
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.neoforged.neoforge.client.BlockEntityRenderBoundsDebugRenderer to GAME
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.neoforged.neoforge.attachment.AttachmentInternals to GAME
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for drone_controllers
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.mcreator.dronecontrollers.init.DroneControllersModBlockEntities to MOD
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.mcreator.dronecontrollers.init.DroneControllersModScreens to MOD
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.mcreator.dronecontrollers.init.DroneControllersModTabs to MOD
[23:31:26] [modloading-worker-0/DEBUG] [ne.ne.fm.ja.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.mcreator.dronecontrollers.network.DroneControllerGUIButtonMessage to MOD
Workarounds:
-None found so far.
-Tried transferring to new workspace, reinstalled MCreator, rebooted PC. None of these worked.
New info:
-Clearing caches did not work.
-Other workspaces working fine.
-Deleting all mod elements fixed it, likely proving it was a project-related runtime error.
New info:
-Culprit has been found.
-By rebuilding the mod from scratch, I found that me setting a blockstate integer's max value to 10,000 caused this to occur. Removing it or making its range smaller fixes the issue.
-Issues start to happen at some value between 2050 and 3000.
New info:
-Adding 3 or more blockstate properties also causes the same error. What is happening?
This is normal. If you set blockstate integer value to 10.000, this will break the game as this is too many possible block states.
Consider you are making models for each state, 10000 models is not realistic.
MCreator 2024.4 will calculate this for you: https://x.com/PyloDEV/status/1852306439278133570
If you need calculation now.
Number of possible states is multiple of possible combinations of each property.
Logic property = 2 combinations
Number property = number of possible values, e.g. if min is 0 and max is 3, this is 4 combinations
Enum property = number of enums
Practical example:
2 logic properties, number property 1 to 10, enum with 3 values means
2 * 2 * 10 * 3 = 120 states
Avoid having more than few 1000 states
To simplify this, by setting an integer property's max value to 10000 you're adding 10000 blocks to minecraft
If you don't need to change a block's model, texture, or hitbox, you only need a variable number linked to that block, consider using nbt tags instead of blockstates. You will need to check the block entity box in the advanced properties page of your block in order for it to be able to store nbt tags, but it is a much easier to compile and load than blockstates are.
Thanks Klemen, good to know! As for the other two answers, sadly, I need the block to be moveable by pistons
Blocks with a lot data are not meant to be movable by piston, as this defies how the game is designed.
Try to optimize the amount of block states you need in this case, but keep in mind states are not meant as data storage