Weave fixes a collection of problems that can happen when running Forge mods through Kilt alongside native Fabric mods.
Weave tries to keep Forge compatibility active only where it is actually needed, while leaving normal Fabric behavior alone.
This MAY or may not improve compatibility with your modpack, testing is done on my own pack with around 1k mods, so I think I'm loading Forge mods in the worst case scenario, I originally built this because I couldn't even LOAD Kilt, specifically because of multi-loader mods that had Forge and Fabric compatibility in one .jar
Feel free to leave a comment about what issue you're facing and if it's something worth looking into I might fix it but I'm kind of doing this for my own modpack, sharing it for others to use is mainly a byproduct of me working on my own thing privately
What does Weave fix?
Better separation between Fabric and Forge mods
Kilt can sometimes apply Forge-specific behavior to native Fabric mods just because Forge-related classes or compatibility code are present.
Weave checks whether Forge behavior is actually needed before allowing those compatibility paths to run.
This helps prevent:
- Fabric mods being incorrectly treated as Forge mods
- Multiloader mods accidentally activating Forge behavior
- Kilt triggering its own compatibility systems
- Fabric mods containing
net.minecraftforge.*compatibility classes being mistaken for actual Forge mods - Unrelated Kilt compatibility hooks staying active when they aren't needed
Fewer Kilt mixin conflicts
Some Kilt compatibility mixins only need to exist when a Forge mod actually depends on them.
Weave disables unnecessary compatibility hooks while keeping related Kilt systems together when they are required.
This reduces conflicts between Kilt and native Fabric mods without removing the Forge behavior real Forge mods depend on.
Keybind compatibility fixes
Fabric keybinds could sometimes be passed through Forge-specific key registration and crash, particularly with modifier keys such as Alt.
Weave separates Fabric-owned and Forge-owned key mappings so each uses the correct registration path.
Fixes the FREEZE_DATA startup hang
Kilt could become almost completely stuck while Minecraft was freezing and baking registries during startup.
Weave fixes the affected registry path so loading can continue normally.
Safer startup networking
Some Forge mods can try to send packets before Minecraft has fully entered a valid play state.
Weave prevents those calls from running too early and waits until the client is actually ready.
GeckoLib compatibility improvements
Kilt's Forge GeckoLib compatibility could interfere with native Fabric GeckoLib behavior and cause invalid event casts.
Weave keeps the Fabric and Forge GeckoLib paths separated.
Architectury compatibility improvements
Some Kilt integrations rely on several hooks working together.
Weave prevents only part of those compatibility systems from being enabled, avoiding broken half-active states.
Tooltip compatibility fixes
Forge tooltip hooks could remain active in places where they weren't actually needed.
Weave limits those hooks to the code paths that require them.
AsyncParticles support for Forge particles
Weave adds AsyncParticles support for Forge particles loaded through Kilt.
Forge particles can use asynchronous processing when their renderer is compatible with it.
If a particle renderer requires Kilt/Forge's normal rendering behavior, Weave automatically keeps it on the safer synchronous rendering path instead of forcing it through an incompatible async renderer.
Particle ticking and rendering are handled separately, so particles can still benefit from asynchronous processing where it is safe.
Forge custom model fixes
Weave improves support for Forge custom models loaded through Kilt.
It also keeps Kilt's related custom-model systems together so models are not left in a partially working state where they load but fail to render correctly.
Creative Inventory crash fix
Fabric's Creative Inventory can briefly reach a state where its item-group display context has not been created yet.
Kilt compatibility could hit that state and crash.
Weave safely handles that specific temporary state.
Fixes corrupted menu text and giant triangles
Kilt can globally replace Minecraft's normal text RenderTypes with Forge versions.
With batched GUI rendering, certain text decorations — especially strikethrough text with shadows — could corrupt rendering and create huge diagonal triangles or streaks across menus.
Weave keeps normal Fabric and vanilla text on Minecraft's normal rendering path unless Forge text behavior is actually required.
Better Kilt + Sodium chunk rebuild concurrency
Kilt normally uses a global synchronization lock for certain Forge ModelData lookups during Sodium chunk rebuilding.
Weave narrows that synchronization for models using Forge's normal default ModelData behavior, allowing unrelated chunks to rebuild more independently.
Models with custom Forge ModelData behavior remain on Kilt's original safe path.
If Weave cannot safely recognize the expected Kilt code, the optimization simply stays disabled and Kilt's original behavior is used.
Mod-specific compatibility fixes
These fixes were discovered through individual Forge mods, but are handled automatically by Weave.
Bosses Rise
Fixes the Crossbow Pirate failing because it requires access to Minecraft's normally package-private crossbow state when running through Kilt.
Monster Expansion
Fixes a model-loading crash caused by Porting Lib attempting to call clear() on an immutable empty model-element list.

