Community listing page, reviews here may not be monitored by the author.
Tessellate
No reviews yet
Improves Minecraft server performance by isolating loaded regions, ticking independent areas in parallel, and throttling only the region causing lag.
Enhances game performance and optimizes resource usage.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Filters
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
Tessellate
Tessellate is a NeoForge/Fabric performance mod for Minecraft 1.21.1. It groups distant loaded areas into independent regions and lets them run on different CPU cores. If one region gets too expensive, Tessellate can slow it down without dragging the rest of the server with it.
| Situation | What Tessellate does |
|---|---|
| Several distant bases are busy | Runs their regions concurrently |
| One region exceeds the server budget | Reduces only that region's simulation rate |
| Two regions become close enough to interact | Merges them before they tick |
| A worker reaches unsafe shared state | Falls back to serial ticking for the session |
This works best when players or forced-loaded areas are spread out. One dense base, mob farm, or machine cluster is still one region, so Tessellate cannot split that work across several cores. It also doesn't replace single-thread optimizers such as Lithium.
Requirements and installation
- Minecraft 1.21.1
- NeoForge 21.1.x
- Java 21
- No required optimization-mod dependencies
Drop the JAR into the server's mods folder. The client install is optional. Players who have it get the GPU-rendered region map and boundary overlay, while everyone else can still use the particle fallback.
Performance
For a concrete comparison, we benchmarked four forced-loaded regions 2,048 blocks apart with 1,200 persistent zombies in each region. Parallel ticking cut median MSPT by 61.2% and p95 MSPT by 62.5%.
| Mode | Median MSPT | Median p95 | Regions at 20 TPS | Slowest region |
|---|---|---|---|---|
| Serial regional ticking | 40.55 ms | 50.80 ms | 0/4 and 1/4 | 10.0-10.6 TPS |
| Parallel regional ticking | 15.75 ms | 19.05 ms | 4/4 in both runs | 20.0 TPS |
Both modes ran on Minecraft 1.21.1, NeoForge 21.1.248, Java 21, and the same nine-mod setup. This test is deliberately built around several separate regions. It is not a promise of the same speedup everywhere. Hardware, region layout, entity count, and installed mods all matter.
How it works
Tessellate divides the loaded world into 4x4-chunk sections. Nearby entity-ticking sections join into a region before they run, which keeps areas that could interact on the same worker. Separate regions can run in parallel. Packets, lifecycle callbacks, saves, and other shared work still go through the main thread.
The region map changes with the world. Regions form, merge, split, and disappear as chunks load and unload.
Regional TPS: slicing instead of skipping
Tessellate measures every region each tick. If the server is about to miss its tick-time target, the most expensive region gets a tick divisor. A divisor of 4 runs that region at 5 TPS while unaffected regions can stay at 20.
Running the whole region once every fourth tick would produce the right average rate, but it feels awful in play. Tessellate spreads that work across every tick instead:
| Gated every fourth tick | Sliced across every tick | |
|---|---|---|
| Bystander TPS | 19.6 | 20.0 |
| Mean MSPT | 20.5 ms | 23.7 ms |
| p95 MSPT | 210.9 ms | 32.9 ms |
The trade-off
Throttling has an intentional cost. When a region exceeds its share, everything inside it runs slower. Mobs move more slowly, farms produce less, and hoppers move fewer items. That is useful for containing a lag machine, but Tessellate cannot tell one apart from a legitimately busy base.
If you would rather let the whole server fall below 20 TPS, disable adaptive throttling:
[regions]
adaptiveThrottling = false
Region tracking, parallel ticking, and diagnostics remain available.
Configuration
Settings are stored in config/tessellate-common.toml.
| Option | Default | Purpose |
|---|---|---|
regions.enabled |
true |
Enables region tracking; disabling it makes the mod inert |
regions.adaptiveThrottling |
true |
Enables regional TPS control |
regions.budgetMillis |
25.0 |
Minimum budget retained for region work |
regions.targetTickMillis |
45.0 |
Tick-time target; raise it to intervene later |
regions.maxTickDivisor |
16 |
Slowest allowed region rate, 1.25 TPS |
regions.minThrottleMillis |
2.0 |
Regions cheaper than this are never slowed |
regions.sectionShift |
2 |
Region grid granularity, 4x4 chunks |
regions.parallelTicking |
true |
Runs independent regions on worker threads |
regions.directWorkerChunkReads |
true |
Resolves loaded worker chunk reads directly |
regions.parallelNaturalSpawning |
true |
Runs owner-region spawn searches concurrently |
regions.shardEntityStorage |
true |
Enables storage isolation required by parallel ticking |
regions.asyncRegionLoops |
true |
Lets regions run without a per-tick global join |
regions.scopedScheduledTicks |
true |
Uses region-owned block and fluid tick schedulers |
regions.scopedBlockEvents |
true |
Uses region-owned block-event queues |
compatibility.rulesEndpoint |
Public rules service | Downloads reviewed compatibility rules; blank disables the check |
compatibility.rulesApiKey |
Public key | Read-only key used to download rules |
compatibility.reportEndpoint |
Blank | Optional compatibility reporting service; blank disables uploads |
compatibility.reportApiKey |
Blank | Public key used only when reporting is enabled |
For a serial diagnostic mode:
[regions]
parallelTicking = false
asyncRegionLoops = false
Commands
/tessellate regions: shows the region map, cost, tick rate, and execution mode/tessellate phases: reports worker/main-thread boundaries, timing, failures, and queue depth/tessellate violations: reports thread-ownership violations; this should remain empty/tessellate visualize: toggles the region map and boundary visualization
Compatibility
We tested independent region loops with:
- NeoForge alone
- Lithium 0.15.4
- Mekanism and Mekanism Generators 10.7.19.85
- Naturalist 2.0.3, Citadel 2.7.1, Friends & Foes 4.0.27, Resourceful Lib 3.0.12, and ScalableLux 0.3.0-alpha.0.8
- C2ME 0.4.0-alpha.0.120 with the full mod set above
Lithium needs a little special handling, so Tessellate replaces two of its level-wide caches with worker-safe equivalents. C2ME is optional. Tessellate runs without it and has no hard dependency on it.
Compatibility reports and automatic fixes
Parallel ticking can expose problems in mods that assume every entity or block entity runs on the main server thread. When Tessellate detects one of these failures, it falls back to a safer execution mode and records the details in the normal server log.
Server owners can also choose to send a small compatibility report. The goal is to find repeatable mod conflicts without asking people to upload entire logs or spend hours testing different configuration changes.
A report may include:
- The Minecraft, Tessellate, and mod loader versions
- Installed mod IDs and versions
- The part of Tessellate that encountered the problem
- The failure class
- The suspected mod and one relevant code location
- The entity or block entity type involved, when known
Reports do not include raw server logs, server addresses, world names, player names, chat, coordinates, or player data.
The upload service does not store your IP address with the report. It creates a one-way rate-limit value so one server cannot flood the database.
Reports are treated as clues, not automatic decisions. A report cannot block a mod or create a compatibility rule. Reports are grouped and reviewed by the Tessellate maintainer first. A confirmed problem can then be fixed upstream, patched in Tessellate, or added as a version-specific compatibility rule.
For example, if a mob is broken in mod version 1.1 but fixed in 1.2, the rule can apply only to 1.1. Players using 1.2 will keep normal parallel ticking.
Compatibility rules can:
- Move a specific entity or block entity to the main thread
- Prevent entity tick bodies from overlapping
- Disable parallel natural spawning for a specific mod
- Use serial region ticking when the problem cannot be isolated further
Remote rules can only reduce concurrency. They cannot enable features, change worlds, run commands, or upload data.
Opting out
Compatibility reporting is off by default. When reportEndpoint is blank, nothing is uploaded and failures are only written to the local server log.
To explicitly disable reporting:
[compatibility]
reportEndpoint = ""
reportApiKey = ""
Remote compatibility rules are separate from reporting. Tessellate checks a public, read-only rules list at startup so known problems can be handled automatically.
To disable the remote rules check:
[compatibility]
rulesEndpoint = ""
rulesApiKey = ""
If the compatibility service is unavailable, Tessellate continues starting normally and uses the local configuration. A failed report upload also has no effect on the server.
What we tested
| Check | Result |
|---|---|
| JVM regression suite | 106 tests passed |
| Tessellate-only NeoForge GameTests | All 7 required tests passed |
| Scheduled ticks | 30 minutes, 422 rebuild cycles, no failure or queued work left |
| Block events | 30 minutes, 1,001,984 callbacks, packets stayed on the main thread |
| Natural spawning | Parallel overlap confirmed; global and local caps held |
| Deferred writes | 6,947 level writes and 2,592 entity callbacks replayed exactly |
| Full-mod save/unload | 1,200 entities survived a 49-chunk unload/reload exactly |
| Main-thread boundaries | 8,519 deferred operations balanced with zero pending work |
What it cannot do
- Tessellate protects the shared state it knows about, but another mod can still introduce a race through its own global state. Tessellate falls back to serial ticking when it detects an ownership violation.
- C2ME 0.4.0-alpha.0.120 passes live benchmarks, save/unload, restart, and shutdown testing, but its natural-spawning GameTest fails in both serial and parallel regional modes.
- One hot connected region cannot use another core under the current ownership model.
- Benchmark results are workload-specific and hardware-specific.
Incompatible
- Bukkit-Neoforge/Fabric Hybrids (ex Arclight) - it will load but support is limited as bukkit has very very bad threaded support.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers