Async improves entity performance by processing entities in parallel across multiple CPU cores and threads.
Async is currently in alpha testing and is experimental. Its use may lead to incorrect entity behavior and crashes.
Async enhances the performance of entity processing. The mod leverages multithreading, which allows multiple CPU cores to improve performance when handling a large number of entities.
- ⚡ Improved TPS: Maintains stable tick times even with a large number of entities.
- 🚀 Multithreading: Utilizes multiple CPU cores for parallel entity processing.
- 🎲 Async Random Ticks (Experimental): Processes random ticks asynchronously for better performance.
- Minecraft: 26.1 or newer
- Java: 25 or newer
- Loader: Fabric, Quilt or NeoForge
- Dependency: Fabric API (on Fabric/Quilt)
| Configuration | TPS | MSPT |
|---|---|---|
| Lithium + Async | 20 | 41.8 |
| Lithium (without Async) | 4.4 | 225.4 |
| Purpur | 5.72 | 176.18 |
- Processor: AMD Ryzen 9 7950X3D
- RAM: 64 GB (16 GB allocated to the server)
- Minecraft Version: 1.21.4
- Number of Entities: 9000
- Entity Type: Villagers
Mod List
Concurrent Chunk Management Engine, Fabric API, FerriteCore, Lithium, ScalableLux, ServerCore, StackDeobfuscator, TT20 (TPS Fixer), Tectonic, Very Many Players, Fabric Carpet.- ❌ Moonrise - Known incompatibility
- ❌ Open Parties and Claims - Known incompatibility
⚠️ ...and there may be conflicts with other mods.
If you encounter issues with other mods, please report them on our GitHub or Discord.
/async config toggle— Enables or disables the mod in-game (no server restart required). Use this command to instantly see how Async improves your server./async config reload— Reloads the configuration from disk./async config setAsyncEntitySpawn [true|false]— Enables or disables parallel mob spawn processing (disabled by default). Without an argument, shows the current value. Warning: Not compatible with Carpet mod lagFreeSpawning rule./async config setAsyncRandomTicks [true|false]— Enables or disables async random ticks processing (experimental feature, disabled by default). Without an argument, shows the current value./async config synchronizedEntities— Lists entities that are currently processed synchronously. Defaults tominecraft:tnt,minecraft:itemandminecraft:experience_orb./async config synchronizedEntities add <entity|namespace:*>— Adds an entity type, or every entity of a namespace, to synchronized processing./async config synchronizedEntities remove <entity|namespace:*>— Removes an entity type, or every entity of a namespace, from synchronized processing.
/async stats— Displays mod status, async spawn and random tick states, the total entity count, and the number of threads in use./async stats entity— Shows the number of entities per world, along with how many of them are processed asynchronously./async stats entity <number>— Additionally shows the top<number>(1-100) entity types by count in descending order, each marked asasyncorsync. For example,/async stats entity 10displays the top 10 most numerous entity types./async stats entity <number> <ticks>— Records for<ticks>ticks, then displays the top<number>entity types with their average mspt usage.
Async can also be configured through its config file:
disabled— Fully disables the mod.maxThreads— Number of threads to use. Defaults to-1(auto)enableAsyncSpawn— Parallel mob spawn processing.enableAsyncRandomTicks— Async random ticks (experimental).synchronizedEntities— Entity types that must be ticked on the main thread.
The mod is available on Modrinth
Full support is provided only for the latest version of Minecraft. Support for older Minecraft snapshots is not planned.
Our tracker for feedback and bug reports is available on GitHub:
You can also chat with us on Discord:
This mod is based on code from MCMTFabric, which in turn was based on JMT-MCMT. Huge thanks to Grider and jediminer543 for their invaluable contributions!