Minecraft Multi-Threading Mod Fabric Port

Overview

MCMTFabric - Minecraft Multi-Threading Mod Fabric Port

This mod is based on the amazing work on JMT-MCMT. Please check that repository for details.

Notice

This project is in its earlier stage. Any contribution is welcome.

Comments
  • Miscellaneous Errors

    Miscellaneous Errors

    This is a dirty log of various errors I am coming across. Very possible they could be from other mods or the interaction between obscure mods and MCMT. Or from Lithium & MCMT. A few relate to fast util which we may have a clear path for fixing (related: #19).

    Lithium phases: nb. Set references cannot be relied on; this was testing done with parents disabled largely.

    • 1
      • mixin.ai
      • mixin.alloc
      • mixin.block
      • mixin.chunk
      • mixin.collections
      • mixin.entity
      • mixin.item
      • mixin.math
      • mixin.shapes
      • mixin.tag
      • mixin.world
    • 2
      • mixin.ai.nearby_entity_tracking
      • ~~mixin.ai.nearby_entity_tracking.goals~~ OOB1-4, NPE3, Unk2-3, Warn1
      • mixin.math.sine_lut
      • mixin.shapes.optimized_matching
    • 3
      • mixin.ai.pathing
      • mixin.ai.poi
      • mixin.ai.poi.fast_init
      • mixin.ai.poi.fast_retrieval
    • 4
      • mixin.world.block_entity_retrieval
    • 5
      • mixin.block.hopper
      • mixin.ai.goal
      • mixin.ai.raid
      • mixin.ai.task
    • 6
      • mixin.entity.collisions
      • mixin.entity.fast_retrieval
      • mixin.entity.fast_suffocation_check
      • mixin.entity.skip_fire_check
      • mixin.entity.stream_entity_collisions_lazily
    • 7
      • ~mixin.alloc.chunk_random~ ILE1
      • ~mixin.alloc.chunk_ticking~ CHAOS1
      • mixin.block.redstone_wire
      • ~mixin.chunk.entity_class_groups~ NPE5, Warn2
      • mixin.world.mob_spawning
    • 8
      • mixin.shapes.blockstate_cache
      • mixin.shapes.lazy_shape_context
      • mixin.shapes.precompute_shape_arrays
      • mixin.shapes.shape_merging
      • mixin.shapes.specialized_shapes
      • mixin.world.block_entity_ticking
      • mixin.world.block_entity_ticking.support_cache
    • 9
      • mixin.block.flatten_states
      • mixin.block.moving_block_shapes
      • mixin.chunk.palette
      • ~mixin.collections.entity_filtering~ CME2
    • 10
      • ~mixin.cached_hashcode~ Weird1
      • mixin.entity.inactive_navigations
      • mixin.entity.replace_entitytype_predicates
    stale 
    opened by KyGost 27
  • Memory leak on linux

    Memory leak on linux

    Launching minecraft with MCMTFabric currently seems to leave memory to bubble up pretty quickly. I got to 14GB used in less than 5 minutes. While typing this, another 3 minutes has gone by and it's at 17GB. (also affects performance very noticably as one might reasonably expect) I've experienced something that feels very similar to this, with EssentialsCommands.

    Link to trying to debug and solution with the developer of that: https://discord.com/channels/513219024927326211/857077956336943154/871488694530494535

    I use a somewhat hacky library to fix the Nickname command issue with command parsing. It uses stuff like JNT (Java Native Tools).

    Aha! I've managed to reproduce this issue on Linux. Can confirm that it 100% has something to do with the lib I mentioned. Will see what I can do about this.

    https://discord.com/channels/513219024927326211/857077956336943154/871873153490624512

    stale 
    opened by KyGost 27
  • Incompatble with Lithium

    Incompatble with Lithium

    20:30:27] [main/FATAL]: Mixin apply failed mcmtfabric.mixins.json:ServerChunkManagerMixin -> net.minecraft.class_3215: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("FIELD") on net/minecraft/class_3215::overwriteServerThread with priority 1000 cannot inject into net/minecraft/class_3215::method_12121(IILnet/minecraft/class_2806;Z)Lnet/minecraft/class_2791; merged by me.jellysquid.mods.lithium.mixin.world.chunk_access.ServerChunkManagerMixin with priority 1000 [PREINJECT Applicator Phase -> mcmtfabric.mixins.json:ServerChunkManagerMixin -> Prepare Injections ->  -> redirect$bgm000$overwriteServerThread(Lnet/minecraft/class_3215;)Ljava/lang/Thread; -> Prepare]
    org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("FIELD") on net/minecraft/class_3215::overwriteServerThread with priority 1000 cannot inject into net/minecraft/class_3215::method_12121(IILnet/minecraft/class_2806;Z)Lnet/minecraft/class_2791; merged by me.jellysquid.mods.lithium.mixin.world.chunk_access.ServerChunkManagerMixin with priority 1000 [PREINJECT Applicator Phase -> mcmtfabric.mixins.json:ServerChunkManagerMixin -> Prepare Injections ->  -> redirect$bgm000$overwriteServerThread(Lnet/minecraft/class_3215;)Ljava/lang/Thread; -> Prepare]
    
    stale 
    opened by duplexsystem 21
  • 1.19.1 not starting: Mod Loaded Too Early

    1.19.1 not starting: Mod Loaded Too Early

    obrazek Any idea what causes this? It seems to be fighting with the latest update of lithium. It says it cannot inject ServerChunkManager with prioriti 1000 over Lithium injection with priority 1000.

    opened by JosefLitos 13
  • Item lose when rapidly dropping item

    Item lose when rapidly dropping item

    Example: Each dropper has 1 stack of items in it. image But only some of them survived. image Same when holding Q to rapidly drop items, Ctrl+Q crafting in carpet mod. It only happens when dropping the same type of item, if there are random items in the dropper the chance of it happens drops significantly. Example: Items in dropper: image Items dropped from dropper then picked up from ground: image IMO its the item stacking causing this, when lots of items are very close to each others, they will try to stack into a single item entity, but entities got multithreaded in this mod, so theres probably a race condition when stacking items, and using "disableEntity = true" can fix this issue but the mspt will rise significantly if there are lots of entities in the world, basically disables the most useful feature in this mod.

    opened by LagPixelLOL 9
  • Sudden internal server and server stopping.

    Sudden internal server and server stopping.

    I am using latest actions commit of MCMTFabric - Fix tile entity injection. with latest fabric api version for 1.16.5 at this moment - fabric-api-0.33.1+1.16 Thats all the mods i used for testing.

    2021-05-01_12 51 58

    After starting a single player world the internal server stops after a few seconds, as shown in the screenshots.

    2021-05-01_12 53 35

    Chunks would also obviously stop loading. I have tried the same thing on a server and same thing happens.

    Heres the server crash report:

    crash-2021-05-01_13.03.03-server.txt

    Keep up the Good Work!

    opened by Necxx 9
  • [Crash] Causes Minecraft Transit Railways to crash

    [Crash] Causes Minecraft Transit Railways to crash

    https://mclo.gs/dXBGIwn

    SO i went looking for an MultiThread MC mod for fabric because this trains mod just completely overwhelms my server (entity ticks alone) But my server has all the threads for multi-threadding so I thought I would give this an shot,

    it does not work,

    https://git.merith.xyz/modpacks/ultron/src/branch/server/.minecraft/mods

    all of the mods on the server

    stale 
    opened by Merith-TK 7
  • Crashed at startup

    Crashed at startup

    Caused by: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("FIELD") on net/minecraft/class_3215::overwriteServerThread with priority 1000 cannot inject into net/minecraft/class_3215::method_12121(IILnet/minecraft/class_2806;Z)Lnet/minecraft/class_2791; merged by me.jellysquid.mods.lithium.mixin.world.chunk_access.ServerChunkManagerMixin with priority 1000 [PREINJECT Applicator Phase -> mcmtfabric.mixins.json:ServerChunkManagerMixin -> Prepare Injections -> -> redirect$bcl000$overwriteServerThread(Lnet/minecraft/class_3215;)Ljava/lang/Thread; -> Prepare]

    opened by Syntax3rror404 7
  • server not loading world; on singleplayer eating like 80% of cpu in idle

    server not loading world; on singleplayer eating like 80% of cpu in idle

    Here are some logs of the server: latest.log

    here is a client log: latest.log this log is a fresh world generating

    for information, I have: 32 gigs ram intel i99900k 5GHz 8 cores and 16 threads while starting and generating chunks 100% usage

    after a few minutes in world 78% usage

    the ram usage rises at around 95% the usage goes down with the CPU usage to like 15% CPU and 80% RAM

    At that point the game is extremely unstable. Every command or even chat message can crash the client.

    stale 
    opened by 1Euro7Cent 6
  • MCMT Incompatible with Optifine and optifabric

    MCMT Incompatible with Optifine and optifabric

    Hello, my MCMTFabric has problems with some other Mods that i use. I pasted in the crash log and below that the list which mods i use.One of this mods that causes this is optifabric .i hope u can fix this and btw i am sorry for any mistakes English is not my native language.

    Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:228) at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:146) at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226) ... 2 more Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) at org.spongepowered.asm.mixin.transformer.HackedMixinTransformer.transform(HackedMixinTransformer.java:61) at org.spongepowered.asm.mixin.transformer.HackedMixinTransformer.transformClass(HackedMixinTransformer.java:35) at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178) at org.spongepowered.asm.mixin.transformer.HackedMixinTransformer.transformClassBytes(HackedMixinTransformer.java:11) at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23) at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:157) at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:150) at net.fabricmc.loader.launch.knot.UnsafeKnotClassLoader.loadClass(UnsafeKnotClassLoader.java:67) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at net.optifine.reflect.Reflector.(Reflector.java:287) at net.minecraft.class_128.method_559(class_128.java:101) at net.minecraft.class_128.(class_128.java:54) at net.minecraft.class_128.method_24305(class_128.java:425) at net.minecraft.client.main.Main.main(Main.java:135) ... 7 more Caused by: java.lang.ExceptionInInitializerError at me.modmuss50.optifabric.compat.InterceptingMixinPlugin.findMixin(InterceptingMixinPlugin.java:87) at me.modmuss50.optifabric.compat.InterceptingMixinPlugin.preApply(InterceptingMixinPlugin.java:43) at me.modmuss50.optifabric.compat.fabricrendering.RenderingMixinPlugin.preApply(RenderingMixinPlugin.java:43) at org.spongepowered.asm.mixin.transformer.PluginHandle.preApply(PluginHandle.java:158) at org.spongepowered.asm.mixin.transformer.MixinInfo.preApply(MixinInfo.java:1341) at org.spongepowered.asm.mixin.transformer.MixinTargetContext.preApply(MixinTargetContext.java:1177) at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:308) at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:345) at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:569) at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:351) ... 21 more Caused by: java.lang.IllegalArgumentException: Cannot locate declared field class org.spongepowered.asm.mixin.transformer.HackedMixinTransformer.processor at org.apache.commons.lang3.Validate.isTrue(Validate.java:158) at org.apache.commons.lang3.reflect.FieldUtils.readDeclaredField(FieldUtils.java:511) at me.modmuss50.optifabric.util.MixinFinder.goFish(MixinFinder.java:61) at me.modmuss50.optifabric.util.MixinFinder.(MixinFinder.java:73) ... 31 more

    OptiFine_1.16.4_HD_U_G7 mcmtfabric-1.0.2 optifabric-1.11.9 fabric-api-0.29.3+1.16

    stale 
    opened by limohd 6
  • 1.18.2 need cloth-config2

    1.18.2 need cloth-config2

    Incompatible mod set! net.fabricmc.loader.impl.FormattedException: Mod resolution encountered an incompatible mod set! A potential solution has been determined: - Install cloth-config2, version 5.0.34 or later. Unmet dependency listing: - Mod 'MCMTFabric' (mcmtfabric) 1.3.2 requires version 5.0.34 or later of cloth-config2, which is missing! at net.fabricmc.loader.impl.FabricLoaderImpl.load(FabricLoaderImpl.java:190) at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:148) at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68) at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at oolloo.jlw.Wrapper.invokeMain(Wrapper.java:58) at oolloo.jlw.Wrapper.main(Wrapper.java:51)

    opened by qihang518887 4
  • Prevent deadlock from other mods in item merge

    Prevent deadlock from other mods in item merge

    Some mods change item behavior and may want to execute things when item are merged, the count is changed or when an entity is discarded, and may try to acquire another lock, but if a thread holding that lock causes an item merge (by moving items from world to world for example) the code will deadlock.

    Simple solution to make this change safe for mods: if the lock is not free when attempting merging, just skip the merge. This barely ever happens in vanilla (and when it does, it doesn't matter because those rare cases will just be merged anyway the next tick), but at least the code can now never deadlock and give headaches in the future.

    opened by MartijnMuijsers 6
Releases(v1.3.2-1.19.1)
Owner
Grider
Grider
An elegant Minecraft mod template for the Fabric mod loader

Fabric Example Mod Lorem ipsum dolor sit amet Example is a Minecraft mod that lorem ipsum dolor sit amet. Ut mi lectus, egestas a justo nec, hendrerit

Axieum 24 Dec 25, 2022
Addon to the Minecraft Forge/Fabric mod InvMove that adds mod compatibilities

Addon to the Minecraft Forge/Fabric mod InvMove that adds mod compatibilities

David M. 3 Oct 21, 2022
OptiFine 1.7.3 HD MT G2 (+ Long Distance Patch) port to Fabric.

Fabric Example Mod with StationAPI and BIN Mappings for beta 1.7.3 server + client Setup See the StationAPI wiki. Common Issues Here. License This tem

null 4 Dec 2, 2022
Port of the forge api to fabric, under the same path.

MinecraftForge Forge is a free, open-source modding API all of your favourite mods use! Version Support 1.18.x Active 1.16.x LTS Download Forum Discor

null 16 Dec 6, 2022
Small mod for Minecraft Forge 1.16.5 that sends messages of in-game events to a channel in your Discord server. This mod also enables cross-chatting between Minecraft and Discord.

DiscordSync Small mod for Minecraft Forge 1.16.5 that sends messages of in-game events to a channel in your Discord server. This mod also enables cros

AeonLucid 4 Dec 20, 2022
A Minecraft Mod for Fabric which aims to make Block Entity rendering faster and more customizable with almost no compromises.

Enhanced Block Entities EBE is a 100% client side mod for Minecraft on the Fabric mod loader which aims to increase the performance of block entity re

null 151 Dec 30, 2022
A Fabric mod designed to improve the chunk performance of Minecraft.

C^2M-Engine A Fabric mod designed to improve the chunk performance of Minecraft. So what is C2ME? C^2M-Engine, or C2ME for short, is a Fabric mod desi

null 411 Jan 5, 2023
Fabric mod for rainbow backgrounds in minecraft guis

rainbowify rainbowify is a Fabric mod for Minecraft 1.17 that adds a customizable rainbow background to many Minecraft HUDs. Discord: https://discord.

Lennox 18 Sep 29, 2022
A Minecraft mod on the Fabric modloader which aims to add some useful vehicles.

Automobility A Minecraft vehicle mod adding customizable cars. Made for ModFest 1.17 Screenshots Try it out! Recommended to use along with LambdaContr

null 31 Dec 15, 2022
Minecraft mod to change the stack size of all items. Fabric 1.17

Stacker Minecraft mod to change the stack size of all items. For Fabric 1.17 Note: This mod has a config that defaults to 64. Change it to be whatever

Andrew Grant 18 Sep 25, 2022
A client-side Fabric mod for Minecraft Beta 1.7.3 that allows you to connect to servers running almost any patch from Alpha v1.1.2_01 to Beta 1.7.3.

multiversion-fabric A client-side Fabric mod for Minecraft Beta 1.7.3 that allows you to connect to servers running almost any patch from Alpha v1.1.2

0n1 2 Mar 13, 2022
Minecraft Fabric mod for Stardew Valley-inspired hotbar swapping.

HotbarSwap Minecraft Fabric mod for Stardew Valley-inspired hotbar swapping. Developed for 1.18.1. Features Adds 2 keybinds: Swap Hotbar (Default: H):

null 6 Sep 19, 2022
Minecraft Fabric mod for Stardew Valley-inspired hotbar swapping

HotbarCycle Minecraft Fabric mod for Stardew Valley-inspired hotbar cycling. Developed for 1.18.1. Features Adds 2 keybinds: Swap Hotbar (Default: H):

null 7 Jan 8, 2023
Minecraft Forge/Fabric mod that adds the ability to walk around while in inventories

Minecraft Forge/Fabric mod that adds the ability to walk around while in inventories

David M. 16 Nov 22, 2022
Mesh is a cross-version minecraft mod development platform for Forge and Fabric.

Mesh is a cross-version minecraft mod development platform for Forge and Fabric. Supported Versions Mesh will eventually be able to run on most f

null 12 Dec 13, 2022
A legacy-fabric mod that makes minecraft versions older than 1.13 run using LWJGL 3 instead of the legacy LWJGL 2

A legacy-fabric mod that makes minecraft versions older than 1.13 run using LWJGL 3 instead of the legacy LWJGL 2

Zarzel K. Shih 17 Dec 4, 2022
A Fabric mod that allows using RakNet as Minecraft networking backend.

RaknetFabric A Fabric mod that allows using RakNet as Minecraft networking backend. Features Higher reliability and lower latency under unreliable and

null 75 Jan 3, 2023
Fabric mod to add Copper Golem. Goal is to achieve parity with what was announced/shown at Minecraft Live 2021

Copper Golem for Fabric ?? Sadly at Minecraft Live 2021 the Copper Golem did not win the vote to get added into 1.18. But this little golem is so cute

null 10 Sep 23, 2022
A Minecraft Fabric Mod to make splash texts translatable and customizable.

Splasher! ?? Customize Minecraft Splash Texts on Your Own! Contribute a Translation Translate assets/splasher/lang/en_us.json into your favorite langu

KrLite 9 Dec 27, 2022