MicroTimingReplay

MicroTimingReplay

Record sub-tick events and replay them in game!

3 downloads 0 followers

MicroTimingReplay (MTIR)

Read more in README.md

A Fabric mod for recording micro-timing events on the server over a period of time (block updates, shape updates, scheduled ticks, block events, piston movements, entity movement/spawning, etc.) and later step-by-step replaying them — you can go forward, backward, jump to any step, and inspect the Java call stack at the moment each event was produced.


Core Concepts

Profile
A container for one recording session. Each profile has its own name, one or more Areas, all recorded tick frames, plus associated world backups and call-stack files.

Area
An axis-aligned bounding box + the dimension it belongs to. Only events that fall inside an area are recorded. A profile can have multiple areas and can span dimensions.

If a profile has no areas at all, no spatial filtering is applied (every event in the entire world is recorded) — the data volume becomes enormous; this is not recommended.

Frame / Event / Step
Recording is sliced into frames by game tick (TickFrame). Inside each frame is an event tree:

Phase → Queue → Update → Leaf events (add scheduled tick / entity move / ...)


Quick Start

/tick freeze
/mtr profile create test
/mtr profile area add test 100 60 100 120 80 120
/mtr record test 20

Recording stops automatically after 20 gt (or you can stop it manually with /mtr record stop).

/mtr replay start test
/mtr replay forward steps 1
/mtr replay screen
/mtr replay stop

Notes

  • Run /tick freeze before recording. The mod never freezes or unfreezes time by itself. Replay is unaffected; stepping works correctly even without freezing.
  • Replay truly modifies the world. replay start restores the areas to the recording start state; replay stop restores your live world. If the server crashes or is force-killed during replay, the _replay backup is not restored automatically and your world stays at the recording-start state — in that case simply run /mtr replay start again and then a normal stop to recover.
  • Non-player entities inside the areas are backed up and restored. On restore the entities inside the areas are first cleared, then rebuilt from the backup.
  • No areas = no filtering. A profile without any areas records every event in the whole world; use with caution.
  • subscribe, unsubscribe, screen and dump must be executed by a player (they either open a UI for the player or bind to a player). All other commands can be run from the console or command blocks.
  • The “currently viewed” state of /mtr profile info is a single server-wide variable; simultaneous operations by multiple players will interfere with each other.
Version Minecraft Loader Download

MicroTimingReplay 1.0.0

1.0.0

26.1.2
fabric
Download