promotional bannermobile promotional banner

Shtreimel - Sable Utility

Server-side admin tools for Sable and Create Aeronautics on NeoForge 1.21.1: list, inspect, freeze, archive, and remove sub-level grids; surface lag suspects in the console; enrich crash reports.

Shtreimel

A server admin toolkit for Sable and Create Aeronautics. Find lag-causing airships, freeze runaways, undo accidental griefing, trace exactly when a body vanished, and identify which contraption was on the server when it crashed.

NeoForge and Fabric 1.21.1. Server-only install on dedicated servers. No client mod required.

"Shtreimel" is the fur hat worn over a sable lining. It's a hat that goes on top of Sable. The name is a joke; the mod is not.

Why you want this

You run a Sable or Create Aeronautics server. Eventually one of these happens:

  • Someone builds a 50,000-block monster contraption and your TPS dies. You don't know whose, where, or how to stop it without /stop.
  • A player flies an airship out of survival range and it never comes back. Or it gets stuck in midair. Or it falls into the void.
  • Someone you trust runs /sable remove on the wrong contraption and you have nothing to roll back to.
  • Sable removes a body between two ticks and your logs never recorded why.
  • Your server crashes and the crash report says "physics tick" with no other information.

Shtreimel gives you commands for every one of those.

What it does

Find the lag

When a dimension's physics slice gets hot, Shtreimel ranks the most-likely-suspect bodies and prints one line in the server console with position, owner-given name, UUID, bounding box, and suspect score.

Example console line:

[shtreimel.lag] lag suspect dim=minecraft:overworld ewma=7.43ms max60=18.20ms uuid=8a1f... name="Big Blimp" plot=(10005,10003) center=(124.0,72.5,-88.3) bb=24x10x32 suspect=83

Ranking uses configurable proxies: volume, footprint, loaded chunks, Sable actors, speed, network drift, reaction wheels, queued forces, intersecting entities, and optional connected/dependency/ticket signals. Weights and caps are all in config.

If your server is heavier or lighter than typical, run /shtreimel lag autotune after a few hours of normal play and it prints recommended thresholds for <world>/shtreimel/dimension-overrides.json.

You can also pull a live ranking on demand:

  • /shtreimel rank
  • /shtreimel physics-stats
  • /shtreimel list

Stop the lag

  • /shtreimel freeze <uuid>
  • /shtreimel freeze nearest [radius]
  • /shtreimel freeze connected <uuid>
  • /shtreimel freeze list
  • /shtreimel unfreeze <uuid>
  • /shtreimel unfreeze connected <uuid>

freeze pins a contraption in place without pausing physics for the whole dimension. connected freezes a body and every body linked to it. The pin sticks across server restarts, survives unload, and split children inherit frozen state from a frozen parent. unfreeze wakes the body back up.

  • /shtreimel delete uuid <uuid> --confirm
  • /shtreimel delete at <x> <y> <z> --confirm
  • /shtreimel delete nearest --confirm

delete runs Sable's own removal path. Same cleanup as /sable remove.

Undo your mistakes

  • /shtreimel archive save <uuid> [tag]
  • /shtreimel archive list [uuid] [limit]
  • /shtreimel archive verify <uuid> <archiveId>
  • /shtreimel archive restore <uuid> <archiveId> [keepUuid] [dimension] [at <pos>]
  • /shtreimel archive prune

archive save writes the contraption's full block data to disk with compressed size and SHA-256 metadata. verify checks an archive before you trust it. restore brings it back, optionally with the same UUID. Legacy 0.2/0.3 archives still list and restore. Per-contraption undo.

Inspect a contraption

/shtreimel info <uuid>

Pose, bounding box, mass, center of mass, mass and rigid-body validity, reaction wheels, queued forces, network drift, connected-chain and loading-dependency counts, split parent, frozen state, last serialization pointer, Sable 2 force-load tickets, and a configurable load-index breakdown. On Sable 1.2.x, ticket fields report that the Sable 2 API is unavailable. In-game, the header has clickable [teleport], [freeze], [archive] buttons.

Profile forces on one body

  • /shtreimel forces start <uuid> [seconds]
  • /shtreimel forces show <uuid>
  • /shtreimel forces stop <uuid>

Shtreimel enables individual point-force recording only for bodies you explicitly select, for bounded sessions, and cleans up on stop, expiry, removal, or shutdown. Results show force-group sample count, point-force count, and average/maximum force and torque.

Find what's where

  • /shtreimel at <x> <y> <z>
  • /shtreimel in <fromPos> <toPos>
  • /shtreimel near [radius]
  • /shtreimel who <uuid>
  • /shtreimel watch <uuid> [seconds]
  • /shtreimel unwatch

at says which contraption is at a block position. in lists every contraption whose bounding box intersects a region. near lists what's around the calling player. who says which players are inside a contraption right now and who is tracking it. watch subscribes a staff member to live pose updates for a contraption for N seconds (great for following an airship live).

Teleport to it

  • /shtreimel tp <uuid>
  • /shtreimel tp player <playerName> <uuid>
  • /shtreimel tp back

Teleports to the top of the contraption's bounding box. tp back returns you to where you were.

See who did what

  • /shtreimel audit tail [n]
  • /shtreimel audit since 1h
  • /shtreimel audit by Steve
  • /shtreimel audit uuid <uuid>

Every destructive command (delete, freeze, archive save/restore) writes a single line to <world>/shtreimel/audit.log. Tail reads current and rotated logs. Query it from in-game.

Know what happened before it vanished

  • /shtreimel history [limit]
  • /shtreimel history <uuid> [limit]

Shtreimel attaches a SubLevelObserver to every Sable container and records additions and permanent removals at the exact callback, before Sable destroys the plot. Permanent removals are mirrored to the audit log with validity, pose, bounds, reason, and—when enabled—the initiating caller frame. The journal survives after a body is unloaded and catches removals that happen within a single tick.

Better crash reports

When the server crashes, Shtreimel adds a bounded -- Shtreimel snapshot -- block listing loaded contraptions (UUID, name, position, bounding box, validity, tickets, topology), per-dimension physics timing, recent lifecycle/removal events, active force-profile summaries, and storage pointers. NeoForge uses CrashReportCallables; Fabric uses the same output through a fail-soft friendly-report mixin.

On NeoForge servers with Create installed, crash reports can also name the contraption being processed inside ContraptionCollider.collideEntities (Create Aeronautics airship/propeller crashes). Create contraption context requires NeoForge; Create 6 and Aeronautics publish for NeoForge on 1.21.1.

Run /shtreimel debug crash-header to preview the block without crashing the server.

Permissions

With no permissions mod installed, Shtreimel uses vanilla op levels:

  • Op 2: read-only commands (list, info, rank, history, watch, spatial lookup, physics-stats, dump, snapshot diff, lag autotune).
  • Op 3: destructive and state-changing commands (delete, freeze, archive save / restore / prune / verify, forces start / stop, audit queries).
  • Op 4: skip the --confirm token. Server console and RCON are op 4.

If you run a permissions mod (LuckPerms, FTB Ranks, Fabric Permissions API, etc.), the named nodes are:

  • shtreimel.observe
  • shtreimel.profile
  • shtreimel.delete
  • shtreimel.delete.confirm_bypass
  • shtreimel.audit.read

Install

  1. Make sure your server has Sable 1.2.1 or newer in mods/.
  2. Drop the matching jar from Releases into the same mods/ folder:
    • shtreimel-neoforge-1.21.1-<version>.jar on NeoForge, or
    • shtreimel-fabric-1.21.1-<version>.jar on Fabric.
  3. Start the server. The config generates at <world>/serverconfig/shtreimel-server.toml and reloads when you edit the file. Existing 0.3.x configs, frozen state, archives, snapshots, and audit logs remain readable.

That's it. Nothing to install on your players' clients.

Compatibility

NeoForge

Component Required version
Minecraft 1.21.1
NeoForge 21.1.219 or newer
Java 21
Sable 1.2.1 through 2.x (>=1.2.1 <3.0.0)

Optional on NeoForge

Mod What it adds
Create Crash reports can name the contraption active inside ContraptionCollider.collideEntities. Toggle with mixins.createContraptionContextEnabled in server config.
Create Aeronautics Same crash context as Create, with Aeronautics contraption types (for example airships) when those contraptions are processed through Create’s collider.

All other Shtreimel features work on a Sable-only NeoForge server with no Create installed.

Fabric

Component Required version
Minecraft 1.21.1
Fabric Loader 0.16.9 or newer
Fabric API 0.110.0+1.21.1 (needs fabric-command-api-v2 and fabric-lifecycle-events-v1)
Java 21
Sable 1.2.1 through 2.x (>=1.2.1 <3.0.0)

Optional on Fabric

Mod What it adds
No optional mod integrations in 0.4.0. All admin, audit, lifecycle, freeze, archive, snapshot, and crash-enrichment features are built in. Create contraption crash context is NeoForge-only because Create 6 and Create Aeronautics do not publish official 1.21.1 Fabric builds.

Bundled inside the Fabric jar

Component Purpose
Fabric Permissions API 0.3.3 Same permission nodes and vanilla op fallbacks as NeoForge

Notes for both loaders

  • Install only one Shtreimel jar: shtreimel-neoforge-1.21.1-<version>.jar or shtreimel-fabric-1.21.1-<version>.jar.
  • Sable Companion ships with Sable; no separate Shtreimel install step.
  • On dedicated servers, players do not need Shtreimel on their clients.

The Shtreimel - Sable Utility Team

Forgeborn tier frameprofile avatar
  • 3
    Followers
  • 5
    Projects
  • 272.3K
    Downloads

More from sauramelView all