
Tetrachord Lib
A lightweight library mod that provides various data structures such as KD Trees and Segment Trees, alongside some other utilitarian functionalities.
Screenshots




Über diese Mod
Introduction
Numerous Minecraft mods have integrated functional features within both 2D and 3D environments[1][2][3], yet brute-force methods frequently prove inefficient. In this regard, we introduce Tetrachord Lib, a lightweight library modification designed to optimize diverse data structures.
Related Works
Server-side Optimization Mods
jellysquid3_[4] introduced Lithium, a groundbreaking optimization mod that enhances various facets of Minecraft servers. Employing precise algorithms to minimize chunk and block access, this mod enhances not only world generation but also AI for mobs, collision detection, discovery of points of interests (poi), and other crucial aspects to boost computational efficiency and decrease milliseconds per tick (mspt) of servers.
Spottedstar[5] introduced Starlight, an innovative modification that redefines the light engine of Minecraft to improve performance in chunk generation, block placement and destruction. In contrast to Phosphor[6], Starlight does not alter the vanilla light engine system - instead, it revolutionizes it by introducing a new algorithm.
Data Structures
The KD Tree[7] is a data structure utilized in high-dimensional spaces for the storage and organization of k-dimensional data points. Functioning as a binary tree, each node within the KD Tree represents a k-dimensional data point and is partitioned according to the feature values (dimensions) of the data point. KD trees are particularly well-suited for conducting range queries and nearest neighbor searches within high-dimensional datasets, and they can also contribute to optimizing data retrieval within the Minecraft world.

The Segment Tree[8] is a data structure utilized for handling range updates and queries. It divides a segment into smaller subsections and organizes them hierarchically in a tree structure. Segment trees are efficient for updating and querying data ranges. In the context of a Minecraft world represented as a 3D tensor, employing a segment tree can greatly improve performance when frequent range updates and queries are involved.

Experiments
Evaluation
Spark[9] is a lightweight performance profiler mod, which shows detailed time costs of mods, memory and CPU usage, milliseconds per tick (mspt) and other metrics of performance of clients and servers. We utilized Spark and chose time costs and mspt as metrics to evaluate the capability of optimization of Tetrachord Lib.
Benchmarks
We implemented the aforementioned data structures and conducted experiments using the following benchmarks:
No Hostiles around Campfire
In a specific scenario, when players light campfires, the surrounding areas within a radius of several blocks will no longer spawn monsters. The original mod[1] offers a brute-force method that involves multiple block accesses, leading to a significant increase in mspt on the server and slowing down the game program. We chose to utilize KD Tree to implement this requirement. We utilized Spark profiler to record 1 minute of normal game progress under different parameter setting, and the experimental results are shown in the following figure:

Ore Blocks near Beacon Increase Xp Drop
Considering the scenario where players mine blocks close to a beacon, they can receive an additional XP reward based on the number of ore blocks surrounding the mined block. The table below illustrates the response area and "ore score" associated with each type of ore block:
| Type of Ore | Copper | Iron | Gold | Diamond | Netherite |
|---|---|---|---|---|---|
| Response Area | 5x5 | 9x9 | 13x13 | 17x17 | 19x19 |
| Ore Score | 1 | 1 | 1 | 2 | 3 |
We utilized Spark profiler to record 32 ore block placing and 32 block mining under different parameter setting, and the experimental results are shown in the following figure:

Conclusion
Experiments show that Tetrachord lib plays an emphatic role in different situation, and provides a highly efficient way to implement some requirements on 2D and 3D space updates and queries.
Tetrachord Lib mod is currently working as a library, so developers can use it as a dependency to improve their mod performance.
References
[1] Serilum. No Hostiles Around Campfire. Modrinth 2022.
[2] Serilum. Healing Campfire. Modrinth 2022.
[3] Mikul, chubbymomo, skinnymomo. Cold Sweat. Modrinth 2023.
[4] jellysquid3_. Lithium. Modrinth 2021.
[5] Spottedstar. Starlight. Modrinth 2021.
[6] jellysquid3_. Phosphor. Modrinth 2021.
[7] Jon Louis Bentley. Multidimensional binary search trees used for associative searching. Commun. ACM 18, 9 (Sept. 1975), 509–517.
[8] Jon Louis Bentley. Solutions to Klee's rectangle problems, Unpublished Manuscript, 1977.
[9] Iucko. Spark. Modrinth 2021.
Verfügbare Versionen
Tetrachord Lib auf dem Server installieren
Server bestellen
Bestelle einen Minecraft Java Server mit mindestens 3 GB RAM (4 GB empfohlen).
fabric Loader setzen
Wähle im Panel unter "Egg" den fabric-Loader und die passende Minecraft-Version (26.1.2).
Mod installieren
Öffne den Mod-Browser im Dashboard und suche nach "Tetrachord Lib". Klicke "Installieren" – fertig! Alternativ: Lade die .jar via SFTP in den /mods Ordner.
Kompatibilität
Mod-Loader
Minecraft-Versionen
26.1.2, 26.1.1, 26.1 (+35 weitere)
Server-seitig
~ OptionalEmpfohlener RAM
4 GB(min. 3 GB)Häufige Fragen
Tetrachord Lib Server crasht beim Start – was tun?
Häufigste Ursache: falsche fabric-Version oder zu wenig RAM. Prüfe im Server-Log (latest.log), ob ein "OutOfMemoryError" oder "Mixin"-Fehler auftritt. Bei Mado Hosting: Stelle sicher, dass mindestens 3 GB RAM zugewiesen sind und der Loader zur Mod-Version passt (26.1.2). Über das Panel kannst du den Loader mit einem Klick wechseln.
Ist Tetrachord Lib mit fabric und forge und neoforge kompatibel?
Tetrachord Lib unterstützt offiziell fabric, forge, neoforge für Minecraft 26.1.2, 26.1.1, 26.1. Achtung: Forge- und Fabric-Mods sind NICHT untereinander kompatibel – wähle einen Loader und bleibe dabei. Im Mado Dashboard werden inkompatible Loader-Kombinationen automatisch erkannt.
Server laggt mit Tetrachord Lib – wie optimiere ich die Performance?
Empfohlener RAM: 4 GB (+1 GB pro 8 Spieler). Prüfe mit /spark profiler, ob Tetrachord Lib den meisten Tick-Time verbraucht. Häufige Fixes: Server-View-Distance auf 8-10 reduzieren, bei Forge "performant" oder "starlight" als Zusatz-Mod installieren. Bei Mado Hosting läuft dein Server auf NVMe-SSDs mit dedizierten CPU-Kernen für minimale Latenz.
Ähnliche Mods
Modded Server mieten
Installiere Tetrachord Lib mit nur einem Klick auf deinem Server.
Details
- Lizenz
- GNU Lesser General Public License v2.1 or later
- Server-seitig
- Optional