Перейти к содержимому
Mineforgian

Async

Async improves entity performance by processing entities in parallel across multiple CPU cores and threads.

Загрузки
620K
Подписчики
544
Обновлён
28 июля 2026 г.
Лицензия
GPL-3.0-or-later

Опубликован 13 октября 2024 г.

Async - Minecraft Entity Multi-Threading Mod ⚙️

Async improves entity performance by processing entities in parallel across multiple CPU cores and threads.

Supported on Fabric Requires Fabric API Available for NeoForge

Available on Modrinth View source on GitHub Chat with us on Discord

Important❗

Async is currently in alpha testing and is experimental. Its use may lead to incorrect entity behavior and crashes.

What is Async? 🤔

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.

💡 Key Benefits:

  • 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.

📋 Requirements

  • Minecraft: 26.1 or newer
  • Java: 25 or newer
  • Loader: Fabric, Quilt or NeoForge
  • Dependency: Fabric API (on Fabric/Quilt)

📊 Performance Comparison (9000 Villagers)

Configuration TPS MSPT
Lithium + Async 20 41.8
Lithium (without Async) 4.4 225.4
Purpur 5.72 176.18

🛠️ Test Configuration

  • 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.

⚠️ Incompatible Mods

  • ❌ 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.

🔧 Commands

Configuration

  • /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 to minecraft:tnt, minecraft:item and minecraft: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.

Statistics

  • /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 as async or sync. For example, /async stats entity 10 displays 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.

⚙️ Configuration

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.

📥 Download

The mod is available on Modrinth

🔄 Minecraft Version Support

Full support is provided only for the latest version of Minecraft. Support for older Minecraft snapshots is not planned.

📭 Feedback

Our tracker for feedback and bug reports is available on GitHub: Report issues on GitHub

You can also chat with us on Discord: Chat with us on Discord

🙌 Acknowledgements

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!

Ченджлог

0.2.4+alpha-26.2Альфа26.2 · 28 июля 2026 г.

👾 New Mod Update 👾

🐛 Bug Fixes

  • Fixed incompatibility with VMP
  • Fixed dead entities staying visible to clients as unremovable ghosts
  • Fixed mob farms spawning much slower with enableAsyncSpawn
  • Fixed ArrayIndexOutOfBoundsException during async spawning
  • Fixed the ender dragon no longer landing or shooting fireballs
  • Fixed chunk corruption on save caused by unsynchronized palette access
  • Fixed one failing chunk cancelling the remaining spawn attempts in a tick
  • Fixed a crash with mods that cache the ticking chunk list (ServerCore)
  • Fixed enableAsyncSpawn rebuilding the spawn state on the main thread every tick on large worlds
  • Fixed a race in Lithium's block change trackers that could lose trackers or throw during a block change
  • Fixed hopper minecarts writing to a container while another mob hauled from it, losing or duplicating items
  • Fixed entities continuing to tick past the barrier when the server thread was interrupted
  • Fixed natural spawning silently going quiet in some dimensions
  • Fixed mob spawning skipping ticks: spawn state is now rebuilt on the main thread every tick instead of an async recompute that could lag or be skipped

⚡ Improvements

  • Improved block reads: the palette no longer takes a lock to read
  • Improved mob spawning: thread-local random, and the mob cap check no longer serializes every worker
  • Improved thread pool utilization and reduced barrier overhead
  • Reduced lock contention with Lithium, VMP and C2ME
  • Default thread count now scales down from the logical thread count, leaving room for the main thread and GC
  • Simplified async spawning to dispatch each tick's batch as a single background task instead of splitting it across the pool
  • Improved async chunk access with a per-thread last-chunk cache and safer fallback when the worker pool is unavailable
  • Improved the parallel tick barrier: the main thread now helps drain the work queue instead of idling while workers finish
0.2.4+alpha-26.2Альфа26.2 · 28 июля 2026 г.

👾 New Mod Update 👾

🐛 Bug Fixes

  • Fixed incompatibility with VMP
  • Fixed dead entities staying visible to clients as unremovable ghosts
  • Fixed mob farms spawning much slower with enableAsyncSpawn
  • Fixed ArrayIndexOutOfBoundsException during async spawning
  • Fixed the ender dragon no longer landing or shooting fireballs
  • Fixed chunk corruption on save caused by unsynchronized palette access
  • Fixed one failing chunk cancelling the remaining spawn attempts in a tick
  • Fixed a crash with mods that cache the ticking chunk list (ServerCore)
  • Fixed enableAsyncSpawn rebuilding the spawn state on the main thread every tick on large worlds
  • Fixed a race in Lithium's block change trackers that could lose trackers or throw during a block change
  • Fixed hopper minecarts writing to a container while another mob hauled from it, losing or duplicating items
  • Fixed entities continuing to tick past the barrier when the server thread was interrupted
  • Fixed natural spawning silently going quiet in some dimensions
  • Fixed mob spawning skipping ticks: spawn state is now rebuilt on the main thread every tick instead of an async recompute that could lag or be skipped

⚡ Improvements

  • Improved block reads: the palette no longer takes a lock to read
  • Improved mob spawning: thread-local random, and the mob cap check no longer serializes every worker
  • Improved thread pool utilization and reduced barrier overhead
  • Reduced lock contention with Lithium, VMP and C2ME
  • Default thread count now scales down from the logical thread count, leaving room for the main thread and GC
  • Simplified async spawning to dispatch each tick's batch as a single background task instead of splitting it across the pool
  • Improved async chunk access with a per-thread last-chunk cache and safer fallback when the worker pool is unavailable
  • Improved the parallel tick barrier: the main thread now helps drain the work queue instead of idling while workers finish
0.2.4+alpha-26.1.2Альфа26.1, 26.1.1, 26.1.2 · 28 июля 2026 г.

👾 New Mod Update 👾

🐛 Bug Fixes

  • Fixed incompatibility with VMP
  • Fixed dead entities staying visible to clients as unremovable ghosts
  • Fixed mob farms spawning much slower with enableAsyncSpawn
  • Fixed ArrayIndexOutOfBoundsException during async spawning
  • Fixed the ender dragon no longer landing or shooting fireballs
  • Fixed chunk corruption on save caused by unsynchronized palette access
  • Fixed one failing chunk cancelling the remaining spawn attempts in a tick
  • Fixed a crash with mods that cache the ticking chunk list (ServerCore)
  • Fixed enableAsyncSpawn rebuilding the spawn state on the main thread every tick on large worlds
  • Fixed a race in Lithium's block change trackers that could lose trackers or throw during a block change
  • Fixed hopper minecarts writing to a container while another mob hauled from it, losing or duplicating items
  • Fixed entities continuing to tick past the barrier when the server thread was interrupted
  • Fixed natural spawning silently going quiet in some dimensions
  • Fixed mob spawning skipping ticks: spawn state is now rebuilt on the main thread every tick instead of an async recompute that could lag or be skipped

⚡ Improvements

  • Improved block reads: the palette no longer takes a lock to read
  • Improved mob spawning: thread-local random, and the mob cap check no longer serializes every worker
  • Improved thread pool utilization and reduced barrier overhead
  • Reduced lock contention with Lithium, VMP and C2ME
  • Default thread count now scales down from the logical thread count, leaving room for the main thread and GC
  • Simplified async spawning to dispatch each tick's batch as a single background task instead of splitting it across the pool
  • Improved async chunk access with a per-thread last-chunk cache and safer fallback when the worker pool is unavailable
  • Improved the parallel tick barrier: the main thread now helps drain the work queue instead of idling while workers finish
0.2.4+alpha-26.1.2Альфа26.1, 26.1.1, 26.1.2 · 28 июля 2026 г.

👾 New Mod Update 👾

🐛 Bug Fixes

  • Fixed incompatibility with VMP
  • Fixed dead entities staying visible to clients as unremovable ghosts
  • Fixed mob farms spawning much slower with enableAsyncSpawn
  • Fixed ArrayIndexOutOfBoundsException during async spawning
  • Fixed the ender dragon no longer landing or shooting fireballs
  • Fixed chunk corruption on save caused by unsynchronized palette access
  • Fixed one failing chunk cancelling the remaining spawn attempts in a tick
  • Fixed a crash with mods that cache the ticking chunk list (ServerCore)
  • Fixed enableAsyncSpawn rebuilding the spawn state on the main thread every tick on large worlds
  • Fixed a race in Lithium's block change trackers that could lose trackers or throw during a block change
  • Fixed hopper minecarts writing to a container while another mob hauled from it, losing or duplicating items
  • Fixed entities continuing to tick past the barrier when the server thread was interrupted
  • Fixed natural spawning silently going quiet in some dimensions
  • Fixed mob spawning skipping ticks: spawn state is now rebuilt on the main thread every tick instead of an async recompute that could lag or be skipped

⚡ Improvements

  • Improved block reads: the palette no longer takes a lock to read
  • Improved mob spawning: thread-local random, and the mob cap check no longer serializes every worker
  • Improved thread pool utilization and reduced barrier overhead
  • Reduced lock contention with Lithium, VMP and C2ME
  • Default thread count now scales down from the logical thread count, leaving room for the main thread and GC
  • Simplified async spawning to dispatch each tick's batch as a single background task instead of splitting it across the pool
  • Improved async chunk access with a per-thread last-chunk cache and safer fallback when the worker pool is unavailable
  • Improved the parallel tick barrier: the main thread now helps drain the work queue instead of idling while workers finish
0.2.4+alpha-26.2Альфа26.2 · 22 июня 2026 г.

👾 New Mod Update 👾

🐛 Bug Fixes

  • Fixed incompatibility with VMP
  • Fixed an error receiving a remote entity's packet
  • Config fixes (JordanOlivet)
0.2.4+alpha-26.2Альфа26.2 · 22 июня 2026 г.

👾 New Mod Update 👾

🐛 Bug Fixes

  • Fixed incompatibility with VMP
  • Fixed an error receiving a remote entity's packet
  • Config fixes (JordanOlivet)
0.2.4+alpha-26.1.2Альфа26.1, 26.1.1, 26.1.2 · 22 июня 2026 г.

👾 New Mod Update 👾

🐛 Bug Fixes

  • Fixed incompatibility with VMP
  • Fixed an error receiving a remote entity's packet
  • Config fixes (JordanOlivet)
0.2.4+alpha-26.1.2Альфа26.1, 26.1.1, 26.1.2 · 22 июня 2026 г.

👾 New Mod Update 👾

🐛 Bug Fixes

  • Fixed incompatibility with VMP
  • Fixed an error receiving a remote entity's packet
  • Config fixes (JordanOlivet)

Комментарии

Загружаем…