UnionClef v0.20.6 (MC 1.21.1)
Installation
- Install Fabric Loader for the Minecraft version listed in the release title
- Drop the release JAR into your
.minecraft/mods/folder - Launch Minecraft
No separate baritone install needed — everything is bundled.
Modules
UnionClef bundles three systems, each with its own command prefix:
| Module | Prefix | What it does |
|---|---|---|
| Tungsten | ; |
A* movement — precise physics-simulated pathfinding |
| Shredder | # |
Block-level pathfinding (baritone fork, bridging, mining) |
| AltoCef | @ |
High-level bot tasks (get items, kill mobs, survive) |
Quick start commands
;goto <x> <y> <z> — tungsten: walk/jump to coordinates
;followPlayer <nick> — tungsten: follow a player
;stop — tungsten: stop current action
;settings debugTime true — tungsten: enable profiling output
#goto <x> <y> <z> — shredder: pathfind to coordinates
#stop — shredder: stop
@goto <x> <y> <z> — altoclef: smart goto (avoids mobs, eats, etc.)
How to test
Tungsten (;prefix):
;goto <x> <y> <z> — parkour routes, fences, ladders
;followPlayer <nick> — follow a moving target
;settings — show all tungsten settings
;settings verboseDebug true — see position/velocity mismatches
;settings mismatchThreshold 0.05 — hide small precision noise
;settings reload — reload tungsten.json
Shredder (#prefix):
#bridgingMode jump — enable telly bridge (or back_jump)
#bridgingMode slow — default safe bridging
#testBridging — test bridging on current path
Changes
Tungsten: simulation accuracy overhaul
Bytecode-level comparison of tungsten Agent.tick() vs vanilla MC 1.21.1
Entity/LivingEntity/PlayerEntity. Fixed multiple sources of simulation
drift that caused path failures on parkour.
Simulation fixes (kept):
- Velocity zeroing threshold: 1e-5 → 0.003 on X/Z (vanilla correct) —
residual velocity after collisions was kept alive, accumulating drift - BlockPos flooring: (int) cast → MathHelper.floor() in 6 places —
wrong block lookups at negative coordinates - Diagonal input normalize removed — vanilla normalizes in
updateVelocity, not in KeyboardInput. Double normalize caused 29%
diagonal speed mismatch, main source of mid-path drift - Fence/wall/gate friction: added getVelocityAffectingPos() matching
vanilla's getPosWithYOffset() — correct friction on fences - fallDistance type: double → float (vanilla type)
- Diagonal normalization (MC-271065, 1.21.4+) disabled for 1.21.1
Infrastructure:
- Server teleport packets: no longer cancelled during execution —
fixed deadlock where server waited for TeleportConfirmC2SPacket - Entity tracker updates: no longer cancelled during execution
- ConcurrentModificationException: removed entity collision queries
from pathfinder thread (not thread-safe, not needed for pathfinding) - IndexOutOfBoundsException: clamped NEXT_CLOSEST_BLOCKNODE_IDX
- Path start resimulation: when executor receives path with stale
start position, re-simulates inputs from real player state
Settings & debugging:
;settings— shows all current values;settings reload— reloads tungsten.json without restart;settings airStrafe <multiplier>— air control tuning;settings mismatchThreshold <value>— filter verbose debug noise;settings closedLoop,;settings parallelPath— experimental- Drift stop message in chat: shows drift distance, expected/actual pos
- Aligned mismatch output (real/sim values vertically aligned)
- Diagonal input speed mismatch suppressed at threshold >= 0.01
Follow improvements:
- Target position snapped to nearest solid block below entity feet —
fixes pathfinder searching for targets "in the air" (sneaking on edge)
Documentation:
- MULTIVERSIONING.md: tungsten/shredder preprocessor TODO
- Simulation audit archived in docs/ai/archive/
Shredder: jump bridge rewrite (experimental)
Rewrote jump bridging as sprint-speed telly bridge. Enable with
#bridgingMode jump (or back_jump for backward-facing variant).
- Telly bridge cycle: FJ_SPRINT → FJ_AIRBORNE, continuous sprint-jump
forward with backward snap rotation mid-air - Block placement bypasses crosshair (processRightClickBlock) —
objectMouseOver returns MISS at steep pitch (86°+), so place directly - Sprint forced at entity level — no more losing sprint mid-bridge
- TestBridgingCommand fix: GoalBlock at player Y instead of GoalXZ
(pathfinder was descending instead of bridging forward) - Cooldown between bridge attempts, path-end graceful exit
Known simulation differences (not yet fixed)
- airStrafingSpeed 0.06 vs vanilla 0.02/0.026 (3x air control) —
pathfinder tuned for 0.06, changing breaks path quality - setSprinting movementSpeed recalc timing (1-tick mismatch on sprint
toggle, ~0.007 blocks drift, negligible)
Known issues
- Long parkour (30+ jumps): accumulated drift can still cause falls
on the last jumps. Diagonal normalize fix significantly reduced this. - Stale start position: if pathfinder takes >1s, first few ticks may
have wrong trajectory. Path resimulation mitigates this. - parallelPathfinding and closedLoop are experimental — keep disabled.
Full Changelog: v0.20.5...v0.20.6