Thread Weave
🟡 Updated this year⚠️ Install Order · 2 steps
Install in this order, then this mod last — most mods fail to load without their framework and dependencies in place.
🖼️ Gallery (2 images)
🔍 Analysis
- 👍 0.6% endorsement rate
- 🏆 #8 of 9 library mods in this game by downloads
📋 About This Mod
ThreadWeave is a lightweight simulation framework that allows you to move expensive logic from Minecraft thread into other threads while keeping all world modifications thread-safe
### - Mod does not modify Minecraft or patch vanilla code. This is library for other mods - All world changes are still executed on the main server thread
Isolated simulation does not have Live Level changing access due to race-conditions on threads so it only processes calculations and e.t.c. This may sound useless unless you start to make AI, reactors, computers or more complicated systems like physics Engines.
Execution changes to world like placing blocks will still depend on Minecraft Thread to not create race conditions
Minecraft mods often suffer from: - Heavy tick logic on main thread - Expensive calculations inside BlockEntities - Complex systems (reactors, AI, factories)
ThreadWeave allows you to move only the computation part into async execution while keeping world safety intact
Only pure data is allowed inside simulation methods
## Important limitation Simulation methods must be pure methods: - input DTO -> output DTO - No side effects allowed inside async execution
# How it works? ThreadWeave works by separating what your mod does into two parts: data processing and world changes
Minecraft normally runs everything on a single thread. That means all calculations, AI, machines, and block logic compete for the same limited performance budget
ThreadWeave changes this by safely moving heavy calculations to background threads 1. Minecraft Tick 1. Extract data from BlockEntity 1. Run simulation in background threads 1. Get results (updated values) 1. Apply changes back to world
Modder only defines: - What data is used - What calculation should happen - How results are applied
What ThreadWeave does automatically? - Extracts data from BlockEntity - Runs calculations on multiple threads - Prevents unsafe access to the game world - Applies results back safely - Manages tick timing (normal or accelerated simulation)
### Tick modes WORLD_SYNCED
Runs in sync with Minecraft (20 times per second)
Used for normal game logic
ISOLATED
Runs independently of Minecraft speed
Used for simulations that can run faster or slower than the game itself
- Minecraft world is never accessed from background threads
- Only simple data is used during calculations
- All world changes happen safely on the main thread
Framework prevents unsafe access to: - Level - Entities - BlockEntities - Server internals
## How to use?
## Installation Guide ```gradle repositories { maven { url = "https://api.modrinth.com/maven" } }
dependencies { implementation "maven.modrinth:thread-weave:{version}" } ```
Do not forget to define dependency in mods.toml or you will get minecraft crashed ``` [] modId="thread_weave" type="required" versionRange="[{version},)" ordering="AFTER" // VERY important to load your mod AFTER ThreadWeave side="BOTH" ```
For example you have BlockEntity (you can use custom classes. No matter it's minecraft or not) ```java public class ReactorBlockBE extends BlockEntity implements TickableBE { private int heat; private int fuel;
public ReactorBlockBE(BlockPos pos, BlockState state) { super(ThreadBlockEntities. REACTOR_BE.get(), pos, state); }
@Override public void tick() { if (level == null || level.isClientSide()) return; heat+=20; fuel-=1; } } ```
I - You need to set what variables will be used in async-processing
```java public record ReactorData(int heat, int fuel) implements SimulationDelta {} ```
II - Then you need to split your processing. Simply take all of your calculations and move it to other method. Here you need to set @SimulatedThread annotation. TickMode can be Isolated or WorldSynced. WorldSynced will run at minecraft TPS. Isolated will run at any tick speed you set without minecraft dependency
```java //value = MOD_ID + ":reactor" //value = "my_mod:reactor" @SimulatedThread(value = MOD_ID + ":reactor", mode = TickMode. WORLD_SYNCED) public ReactorData simulate(ReactorData data) { int heat = data.heat() + 20; int fuel = data.fuel() - 1; return new ReactorData(heat, fuel); } ```
III - Last you need to submit your data to framework. Use static method "submit"
```java @Override public void tick() { if (level == null || level.isClientSide()) return;
Simulations.submit(this); System.out.println("heat=" + this.getHeat() + " fuel=" + this.getFuel()); } ```
IV - Also you need set what classes will be scanned for @SimulatedThread annotation ```java public YourMainModClass(IEventBus modEventBus, ModContainer modContainer) { modEventBus.addListener(this::commonSetup); Simulations.submitScan(NavMeshSimulation.class); ... } ```
You can also manually control in
📊 Mod Details
- Game
- Minecraft Mods
- Author
- Awyvrix
- Version
- 0.2.3-NeoForge
- Downloads
- 949
- Endorsements
- 6
- Category
- library
- Created
- 6/12/2026
- Updated
- 7/13/2026
- Game Versions
- 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4
- Tags
- library, optimization
🔧 How to Install Minecraft Mods Mods
Download from Modrinth. Use Prism Launcher or drop into your mods folder.
📖 Full step-by-step install guide for Minecraft Mods →
Visit the official mod page for specific installation instructions for this mod.
🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Mods commands, item IDs, and more.
❓ Frequently Asked Questions
Which Minecraft Mods versions does Thread Weave support?
The author lists 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5. Other versions may work but are untested by the author.
What is the latest version of Thread Weave?
Version 0.2.3-NeoForge, published 2026-07-13 with 949 downloads recorded at the source.
Keep browsing — more Minecraft Mods mods await

