CryoCore
Ein kleiner Kern. Alles andere ist ein Modul, das sich live neu lädt.
- Version
- 1.0.0
- Art
- Server-Mod
- Minecraft
- 26.3
- NeoForge
- 26.3.0.23-beta
- Seite
- Server (Client-Mod CryoClient optional)
- Sprache der Module
- JavaScript, ES2015-Teilmenge (Rhino 1.8)
- Größe
- 1,4 MB
Mechaniken mit mcfunction zu bauen ist mühsam und frisst Ticks. CryoCore dreht das um: ein kleiner, stabiler Kern in Java, der sich fast nie ändert, und Module in JavaScript (Rhino), die sich beim Speichern selbst neu laden, ohne Neustart.
Was pro Tick über viele Entities läuft, also Tag-Suche, Modell-Transformationen, Sitze, Kollision, erledigt der Kern in Java. Das Modul entscheidet nur, was passieren soll.
- Live-Reload ohne Verlust
- Speichern genügt. Zustand, der den Reload überleben soll, liegt ausdrücklich in ctx.state oder ctx.store.
- Rigs und Modelle
- Fahrzeuge, Objekte und Figuren aus Block-Displays, mit Sitzen, Kollision, Licht und Blockbench-Modellen. Neue Objekte sind im Idealfall nur Daten.
- Persistenz an der Welt
- Rig-Daten hängen als Attachment an der Wurzel-Entity. Backups, Rollbacks und Abstürze bleiben stimmig.
- Pfadfindung
- cryo.nav: A* mit Zeitbudget und Cache, die Grundlage für NPCs, die Wegen folgen, Begleiter und Patrouillen.
- Physik und Overlay
- Der Server beschreibt, der Client (CryoClient) zeichnet lokal: Geisterblöcke, Boxen, Linien, Beschriftungen, Partikel, Körper mit Kollision.
- Eingebaute Prüfung
- /cryo check liefert die Stimmigkeit als JSON, ein Profil schreibt jede Minute Tickzeiten, Tests laufen mit python tools/cryotest.py.
- Gebaut für KI-Werkzeuge
- Kleine, gleichförmige API mit Typen, Beispielen und maschinenlesbaren Fehlern, dazu Vorlagen und eine kurze Einstiegsdatei.
// modules/hallo/main.js
const util = require("lib/util");
module.exports = {
setup(ctx) {
// alles, was hier angemeldet wird, gehört dem Modul
// und wird beim Neuladen automatisch abgeräumt
ctx.command("hallo", function (src) {
const p = src.getPlayer();
if (p == null) return "Nur für Spieler";
util.title(p, "Hallo", "live geladen");
return "";
});
},
teardown(ctx) { /* optional */ }
};Kein Build-Schritt, keine Neustarts. Die Datei speichern und das Modul läuft in der neuen Fassung, mit allem aufgeräumt, was die alte angemeldet hatte.
- Server stoppen.
- Die Jar in den mods-Ordner des Servers legen.
- Server starten. Der Kern legt den Ordner cryocore/ mit modules/ und lib/ an.
- Module in cryocore/modules/<name>/ ablegen. Mit /cryo list sieht man, was geladen ist.
Verträglichkeit
Läuft auf NeoForge 26.3 mit Java 25. Der Kern registriert keine neuen Blöcke oder Items, Spieler brauchen für die Grundfunktionen nichts zu installieren. Für Overlay, Fenster, Kamerafahrten und Physik braucht jeder Spieler CryoClient.
Befehle
/cryo listgeladene Module/cryo checkStimmigkeit als JSON/cryo chat on|offtechnische Meldungen im Ops-Chat (Standard aus)/cr gib <key>eigene Items geben- Neu im Kern: cryo.nav, Pfadfindung mit A*, Zeitbudget, Cache und Folger.
- Neu: Engine-Erweiterungen für Körper, Bahnen, Gelenke, Seile und zerstörbare Strukturen, siehe CryoClient 0.17 bis 0.26.
- Neu: Bibliotheken für NPC-Daten, Dialoge und Tagesroutinen, Begleiter und 3D-Billboards.
- Neu: Sync-Protokoll 2, Zustandspakete mit Geschwindigkeit und Zeitstempel, Hermite-Puffer auf dem Client. Spieler brauchen CryoClient 0.15.11 oder neuer.
- Technische Chat-Meldungen sind jetzt standardmäßig aus, /cryo chat schaltet sie ein.
- Neu: cryo.py doctor, test und rollback.
- Gehärtet: Rig-Daten als Attachment an der Wurzel-Entity, verwaiste Teile werden entsorgt, automatische Tests (cryotest alle).
- Erster Entwurf, danach Prototyp auf einem Testserver.
Prüfsumme anklicken, um sie zu kopieren. Unter Windows lässt sie sich mit certutil -hashfile Datei.jar SHA256 nachrechnen.