Skip to content

Releases: 3ndetz/unionclef

UnionClef v0.23.3 (MC 1.21.11)

Choose a tag to compare

@3ndetz 3ndetz released this 05 Jul 16:51

Installation

  1. Install Fabric Loader for the Minecraft version listed in the release title
  2. Drop the release JAR into your .minecraft/mods/ folder
  3. Launch Minecraft

No separate mods install needed — everything is bundled into the main UnionClef JARfile. But if you see another JARs like tungsten-**.jar or shredder-**.jar, you can use it separetely if you want to, but NOT with UnionClef because it combines them all!

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.)

0.23.3

Fixes

  • @connect works while in game. Every command invoked over py4j runs on a worker thread;
    Debug.logMessage sent its chat line straight from that thread, and on 1.21.11 the chat text
    renderer bakes font glyphs — off the render thread that throws
    IllegalStateException: Rendersystem called from wrong thread and ABORTS the command on its
    own log line, before connectToServer ever runs. Out of game the log falls back to stdout,
    which is why @connect only worked from the title screen. All Debug chat output is now
    marshalled to the render thread via client.execute (inline when already there, queued
    otherwise) — this also hardens every other py4j-invoked command that logs.

0.23.2 (no separate GitHub release)

Features

  • getRecentChat(n) over py4j. Incoming chat is buffered in a ring (300 lines) and exposed
    as a PULL method, so external control (e.g. the Telegram /switch local bridge) reads chat
    without tailing the log file.

Fixes

  • getScreenshot() works on 1.21.11 (was returning null). The screenshot API went async
    (Consumer<NativeImage>) and NativeImage.getBytes() was removed; the capture now goes
    through the async consumer + NativeImage.writeTo, bridged to sync with a 5s timeout.

Full Changelog: v0.23.1...v0.23.3

UnionClef v0.23.1 (MC 1.21.11)

Choose a tag to compare

@3ndetz 3ndetz released this 22 Jun 14:27

Installation

  1. Install Fabric Loader for the Minecraft version listed in the release title
  2. Drop the release JAR into your .minecraft/mods/ folder
  3. Launch Minecraft

No separate mods install needed — everything is bundled into the main UnionClef JARfile. But if you see another JARs like tungsten-**.jar or shredder-**.jar, you can use it separetely if you want to, but NOT with UnionClef because it combines them all!

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.)

0.23.1

Fixes

  • Minigame autojoin no longer spam-clicks the server menu. ItemHelper.clickCustomItem
    (called every tick by the autojoin loops behind @game mm / @game bw etc.) now throttles the
    actual click to ~once per 1.2s. On the musteryworld cluster, clicking every tick tripped the
    server anti-double-click ("Подождите, прежде чем снова щелкнуть") and blocked entry into the
    mini-game lobby. Pacing the click fixes the rate-limit while keeping autojoin fully automatic.

Note for agents: hub→lobby slot indices are mirror-specific — open the compass, read the screen
(getOpenScreen) and pick the slot BY NAME rather than a hardcoded index. See the operator-side
nav notes.

Full Changelog: v0.23.0...v0.23.1

UnionClef v0.21.2-alpha (MC 1.21.11)

Pre-release

Choose a tag to compare

@3ndetz 3ndetz released this 05 Apr 17:35

Installation

  1. Install Fabric Loader for the Minecraft version listed in the release title
  2. Drop the release JAR into your .minecraft/mods/ folder
  3. Launch Minecraft

No separate mods install needed — everything is bundled into the main UnionClef JARfile. But if you see another JARs like tungsten-**.jar or shredder-**.jar, you can use it separetely if you want to, but NOT with UnionClef because it combines them all!

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.)

Alpha — MC 1.21.11 migration + Tungsten upstream sync

This is an alpha release. Core pathfinding works but may be less
reliable than 0.21.x on 1.21.1. Some features need further testing.

Changes

MC 1.21.11 migration

  • Tungsten standalone mod — now compiles with MC 1.21.11 mappings
    (yarn 1.21.11+build.4) and loads as a separate mod visible in ModMenu.
    All //#if preprocessor blocks flipped to 1.21.11-primary.
  • API renamesgetPosgetEntityPos, getWorldgetEntityWorld,
    FALL_FLYINGGLIDING, getTickDeltagetTickProgress across all
    tungsten files.
  • GizmoDrawing renderer — line rendering uses MC 1.21.11 native
    GizmoDrawing.line() with ignoreOcclusion() instead of raw
    BufferBuilder vertex writing.
  • Diagonal movement normalizationapplyDirectionalMovementSpeedFactors
    enabled for 1.21.4+ physics (MC-271065). Controlled by preprocessor gate.

Tungsten upstream sync (Hackerokuz/Tungsten server-side)

Ported from upstream:

  • PathFinder — closed set Set<Integer> (hash-based), retry system
    (failedAttempts up to 2x), checkForFallDamage threshold -2.75 + isDamaged,
    shouldNodeBeSkipped scaling 100 (coarser grid), start-based updateBestSoFar
    with failing flag, upstream computeHeuristic (xzMul=1, *0.8)
  • Node — calculateNodeCost base 4.358 with velocity stall/collision/water/lava
    penalties, jump +2.4 extra cost, 3 yaw variants for airborne nodes
  • BlockSpacePathFinder — upstream heuristic formula, updateNode with
    water penalties, stringPull changes, timeout 480ms
  • SwimmingMove — upstream single-loop rewrite (isSubmergedInWater,
    cost 0.02, velY correction)
  • RunToNode — cost 0.5→0.85, isDamaged check, null-safety fix
  • WalkToNode — water break + lava penalty
  • Move colors — SprintJump purple, RunToNode pink, DivingMove uniform blue
  • Agent.compare() — configurable drift correction (driftCorrectionEnabled
    in tungsten.json): upstream teleport mode or our safe log+stop mode

Kept our improvements over upstream:

  • Parallel node generationparallelStream() for multi-threaded
    Agent.tick (configurable via enableParallelStreaming)
  • 15s search timeout (upstream: 1.8s) — configurable via searchTimeoutMs
  • Native rotation — pixel-quantized mouse deltas for anti-cheat safety
  • Combat system — TriggerBot, WindMouse, SafetySystem, CombatExecutor
  • ViaVersion compat — fence/anvil collision workarounds
  • TungstenConfig — all settings in tungsten.json

Build system

  • GitHub Pre-Releasegradlew githubPreRelease creates alpha release
    with unionclef + shredder + tungsten JARs
  • Tungsten build.gradle updated to MC 1.21.11, version BETA-1.0.0

New config options

  • searchTimeoutMs (15000) — A* search timeout in ms
  • enableParallelStreaming (true) — parallel node creation threads
  • driftCorrectionEnabled (false) — teleport player to sim position on mismatch

Known issues

  • Pathfinding success rate on parkour lower than 0.21.x on 1.21.1 —
    upstream cost tuning (4.358 base) + coarser grid (100) trades precision
    for speed. Investigating hybrid approach.
  • Position drift still present at movement start/end — not from diagonal
    normalization (tested). Root cause under investigation.
  • Tungsten standalone JAR uses 1.21.1 mappings (no preprocessor) — works
    via intermediary remap but ModMenu entry requires the inline build.

Full Changelog: v0.21.0...v0.21.2-alpha

UnionClef v0.21.1 (MC 1.21.1)

Choose a tag to compare

@3ndetz 3ndetz released this 03 Apr 18:20

Installation

  1. Install Fabric Loader for the Minecraft version listed in the release title
  2. Drop the release JAR into your .minecraft/mods/ folder
  3. 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>           — walk through cactus/fire to test damage prediction
;punkPlayer <nick>           — hunt a player (rotation now pixel-quantized)
;followPlayer <nick> [dist]  — follow a player (pitch now tracks ahead)
;settings enableNativeRotation true/false — toggle pixel-quantized rotation
;settings enablePitchChange true/false    — toggle look-ahead pitch
;settings predictDamageFromBlocks true/false — toggle damage block sim
;settings                    — show all tungsten settings

AltoCef (@prefix):
@set autoLogin false         — disable auto /login /register
@set setting ""              — test empty string stripping (was broken)

Changes

Tungsten: synced with upstream

Tungsten: new rotations

Rotation in PathExecutor now goes through changeLookDirection which
rounds yaw/pitch deltas to integer mouse pixel increments before
applying. Result is indistinguishable from a real mouse for server-side
anti-cheat. Controlled by enableNativeRotation (default true).

Additionally, pitch now looks ahead toward upcoming path nodes instead
of staying frozen. Respects intentional pitch from swimming/climbing
moves. Controlled by enablePitchChange and pitchLookAheadNodes.

Tungsten: damage block prediction

Agent simulation now predicts damage from cactus, fire, campfire,
wither rose, sweet berry bush, and magma blocks. Sets isDamaged
and hurtTicks=10 matching vanilla mechanics.

Jump is suppressed during the first 2 ticks of hurtTicks (> 8) because
the server calls scheduleVelocityUpdate() on block damage, which
resyncs velocity and cancels any jump from the same tick. Bot must wait
for immunity before jumping. Controlled by predictDamageFromBlocks.

AltoCef: settings and login fixes

  • @set setting "value" now strips surrounding quotes — @set x ""
    correctly sets empty string instead of literal ""
  • Fixed typo: failedAuthorizationResposnefailedAuthorizationResponse
  • New autoLogin setting (default true) — controls automatic /login
    and /register on server join. Disabled when multiplayer_password
    is empty.

Documentation

  • TUNGSTEN_MOUSE.md — rotation approaches and why async WindMouse
    doesn't work for pathfinding
  • TUNGSTEN_HUMANIZING.md — analysis for future movement humanizing
  • TUNGSTEN_MODIFIERS.md — attribute/effect handling gaps
  • TUNGSTEN_SURFACES.md — damage block velocity resync mechanic

Known issues

  • Same as 0.21.0 (slime bounce routing, ice drift, scaffolding)
  • enableHumanizedMovements not yet implemented (documented only)
  • Missing Slowness effect in simulation (documented in TUNGSTEN_MODIFIERS.md)

Full Changelog: v0.21.0...v0.21.1

UnionClef v0.21.0 (MC 1.21.1)

Choose a tag to compare

@3ndetz 3ndetz released this 24 Mar 16:03

Installation

  1. Install Fabric Loader for the Minecraft version listed in the release title
  2. Drop the release JAR into your .minecraft/mods/ folder
  3. 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):
;punkPlayer <nick>          — hunt and fight a player (A* + combat AI)
;goto <x> <y> <z>           — parkour routes, fences, ladders
;followPlayer <nick> [dist]  — follow a player (optional distance)
;settings                    — show all tungsten settings
;settings avoidStuckFence false — disable ViaVersion fence workaround
;stop                        — stop current action

AltoCef (@prefix):
@punk <nick>                — same as ;punkPlayer but through altoclef task system

Shredder (#prefix):
#bridgingMode jump          — telly bridge

Changes

Tungsten: combat AI

New ;punkPlayer <nick> command — full PvP system with A* approach + combat.

  • TriggerBot — human-like attack clicker with MC key binding cycles
  • WindMouse aiming — anti-cheat safe rotation via raw pixel deltas,
    configurable gravity/wind/maxStep/flickScale
  • SafetySystem — edge detection, anti-fall braking, escape jumps
  • CombatExecutor (experimental) — Agent-simulated combat timeline

Combat settings (;settings <name> <value>):

  • combatTriggerBotEnabled (true) — auto-click on target
  • combatRotatesEnabled (true) — auto-rotation toward target
  • combatMovementsEnabled (false) — combat legs (sprint-jump, chase)
  • combatExecutorEnabled (false) — pre-computed attack timeline
  • combatSaverEnabled (true) — edge safety system
  • combatWindMouseGravity (2.0), combatWindMouseWind (0.8),
    combatWindMouseMaxStep (4.0), combatWindMouseWindDist (15.0),
    combatWindMouseDoneThreshold (0.5), combatWindMouseFlickScale (3.0)

AltoCef integration: @punk <nick> wraps TungstenPunkTask,
replaces old KillPlayerTask across the codebase.

Tungsten: ViaVersion compatibility

Fixes for older servers accessed through ViaVersion where block
collisions differ from the 1.21 client.

  • avoidStuckFence (default true) — isConnected() now treats any
    fence/wall/pane/iron bars with an adjacent similar block as connected,
    regardless of client-side state. Blocks paths through invisible
    connection bars. Covers all fence types, walls, glass panes, iron bars.
  • avoidStuckAnvil (default true) — anvil collision replaced with
    rotation-invariant center square (0.25–0.75). Rejects nodes horizontally
    adjacent to anvils. Bot can stand on center top but not edges.
  • Start inside thin blocks — when pathfinding starts inside a fence,
    pane, chain, etc., the start node is moved to the nearest air block
    (cardinal directions first) instead of getting stuck.

Tungsten: pathfinding fixes

  • Slime NPE fix — starting pathfind on slime no longer crashes
    (null check for previous in shouldRemoveNode)
  • Slime bounce condition — inverted to correctly detect falls onto
    slime (previous.y > current.y), expanding search radius for bounce
  • SlimeBounceMove (experimental) — physics-level bounce trajectory,
    but block-space routing through slime still broken (A* can't plan
    "go down to go up" routes — documented in TUNGSTEN_SURFACES.md)
  • Chat crash fix — throttle stage change logs, route through mc.execute()
  • Key sticking — TriggerBot reset clears needsRelease flag

Documentation

  • docs/features/TUNGSTEN_SURFACES.md — block collision/physics
    tracking: ice, soul sand, slime, scaffolding, damage blocks, and
    TODO lists for thin blocks and non-full hitboxes
  • docs/features/TUNGSTEN_COMBAT.md — combat system architecture

Known issues

  • Slime bounce routing: physics work, but pathfinder can't plan
    fall→bounce→land routes (architectural A* limitation)
  • Ice: friction formula matches vanilla but small drift accumulates
    due to low friction (0.98)
  • Scaffolding: physics know about it, but no pathfinding through towers
  • parallelPathfinding and closedLoopStrength are experimental — keep disabled

What's Changed

  • shredder: rewrite jump bridge as sprint-speed telly by @tctev in #6

New Contributors

  • @tctev made their first contribution in #6

Full Changelog: v0.20.6...v0.21.0

UnionClef v0.20.6 (MC 1.21.1)

Choose a tag to compare

@3ndetz 3ndetz released this 21 Mar 06:14

Installation

  1. Install Fabric Loader for the Minecraft version listed in the release title
  2. Drop the release JAR into your .minecraft/mods/ folder
  3. 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

UnionClef v0.20.5 (MC 1.21.1)

Choose a tag to compare

@3ndetz 3ndetz released this 20 Mar 08:39

Installation

  1. Install Fabric Loader for the Minecraft version listed in the release title
  2. Drop the release JAR into your .minecraft/mods/ folder
  3. 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

;goto <x> <y> <z>       — pathfinding
#bridgingMode slow       — test slow bridging (default)
#bridgingMode jump       — test jump bridging (sprint-jump + airborne placement)
#bridgingMode back_jump  — test backward jump bridging
#bridgingMode standard   — original baritone bridging
@bedwars                 — test bedwars with all changes

Build a platform at a gap edge (2+ blocks behind the edge) and try #bridgingMode jump + ;goto across the gap.

Changes

Shredder: slow bridge overhaul

Slow bridging now walks backward (butt-first) instead of the old
face-forward-sneak-to-edge approach. Simpler, more reliable, and
doesn't fight with the camera.

Shredder: jump bridge (experimental)

Sprint-jump bridging mode. Bot sprints forward, jumps at the edge,
snaps camera backward mid-air, and places blocks while flying.
Still has rough edges — works best with 3+ blocks of runway behind.

  • #bridgingMode jump to enable
  • Safe landing cycle: sneak on landing, backup for runway, sprint again
  • Cooldown after failed attempts to prevent stuck loops
  • Y-level check prevents ghost loops when falling into gaps

Shredder: bridging command cleanup

#bridgingMode is now the only command name (removed bridgemode, bm aliases).
Tab completion works for all modes.

AltoCef: BedWars improvements

  • Gear gate: no offensive actions until 48 blocks in inventory
  • Shop priority over loot when lacking blocks
  • Loot radius scales with current gear state
  • Fix shop clicking player inventory slots instead of shop slots

AltoCef: BedWars task expansion

  • Aggro mode, bed cover detection, resource spawn tracking
  • Teammate follow behavior

AltoCef: misc

  • EpicCamera toggle via epicCameraEnabled setting (F5 camera)
  • Stuck detection fixes (3 bugs)
  • getCurrentGoal() falls back to tungsten TARGET
  • isTungstenActive() exposed via Py4J
  • Python scripting setup and auto-connect

Tungsten: pathfinding improvements

  • Stabilized heuristic + reduced yaw bloat in closed set
  • Reduced 180-degree turns + enableTrailing setting
  • Pipeline pathfinding + goto retry + drift tolerance
  • Fixed partial path emission for longer routes

Known issues

  • Jump bridge doesn't place foundation blocks (Y-1) — only works on
    terrain with existing 2-block-high surfaces
  • Jump bridge can get stuck if landing in a 1-block gap — cooldown
    prevents infinite loops but bot needs #stop + manual recovery
  • Continuous jump bridging (no-stop between jumps) not yet implemented

Full Changelog: v0.20.4...v0.20.5

UnionClef v0.20.4 (MC 1.21.1)

Choose a tag to compare

@3ndetz 3ndetz released this 19 Mar 13:08

Installation

  1. Install Fabric Loader for the Minecraft version listed in the release title
  2. Drop the release JAR into your .minecraft/mods/ folder
  3. 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

;goto <x> <y> <z>       — test pathfinding to various locations
;followPlayer <nick>     — test follow mode
@bedwars                 — test bedwars task with team colors

Try targets that previously failed or took forever:

  • Short paths (5-10 blocks) that tungsten used to miss
  • Paths requiring jumps (should land more accurately now)
  • Same route multiple times (should give identical results now)

Changes

Tungsten: critical A* pathfinding fix

Fixes ~90% of pathfinding failures. Three bugs identified and fixed:

1. Paths at target were rejected (isPathComplete)
When the bot reached the destination, the path was silently discarded
if the search hadn't yet recorded enough "progress" internally.
The bot would keep searching forever despite already being at the goal.

2. Non-deterministic yaw stepping
Math.random() was added to the yaw iteration step (22.5 + rand),
making every search produce different results. Removed — search is
now deterministic and reproducible.

3. No mid-air course correction
After jumping, the bot could only continue in the direction it was
already facing (1 yaw variant). Now tries 3 variants
(current yaw, target direction, target-30deg), allowing the bot to
steer mid-jump without excessive search cost.

AltoCef: BedWars team colors

All missing team colors added (white, pink, gray, etc.).
Bot now correctly recognizes every team on any BedWars map.

AltoCef: slot handler fixes

  • Server-cancelled slots are blacklisted for 4 seconds to stop click spam
  • Fixed slot blacklist not working properly in shop menus
  • Fixed bed/reset bugs in BedWars task

AltoCef: crash fixes

  • Fixed NPE in enchantment protection calculation on client side
  • Fixed isArmorEquipped using wrong armor slot index
  • Fixed MobDefenseChain false activation from stale projectiles

Shredder: IOOBE crash fix

Fixed IndexOutOfBoundsException in canSprintJump when
pathPosition exceeds movements array size.

AltoCef + Shredder: WindMouse flick

Large angle rotations now use WindMouse interpolation instead
of snapping — looks more human, less likely to trigger anticheats.

Known issues

  • Tungsten can still struggle with very long paths (100+ blocks) —
    heuristic tuning is ongoing
  • Airborne course correction adds ~3x nodes per jump — acceptable
    but watch for performance on weak machines

Full Changelog: v0.20.3...v0.20.4

UnionClef v0.20.3 (MC 1.21.1)

Choose a tag to compare

@3ndetz 3ndetz released this 19 Mar 03:38

Installation

  1. Install Fabric Loader for the Minecraft version listed in the release title
  2. Drop the release JAR into your .minecraft/mods/ folder
  3. 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

;goto <x> <y> <z>       — test tungsten pathfinding (should be noticeably faster)
;followPlayer <nick>     — test follow mode
;settings debugTime true — enable per-node timing in console (stdout)

Changes

Tungsten: parallel node generation (5-6x faster)

Child node creation in A* now runs via parallelStream.

Children/node Before After Speedup
193 8.8 ms 1.7 ms 5.2x
145 6.3 ms 1.1 ms 5.7x
127 5.9 ms 0.9 ms 6.6x
Late-search (GC) 21.7 ms ~1.7 ms ~12x

Tungsten: built-in profiler

;settings debugTime true — logs per-node breakdown to stdout.

Shredder: jump bridging (WIP, ~2/3 done)

Forward-jump and sprint-jump placement from edges works.
Still missing: reliable multi-block sequences, edge cases.
Not production-ready yet.

Known issues

  • Jump bridging can misplace blocks on laggy servers
  • Profiler output goes to stdout only, not in-game chat

Full Changelog: v0.20.2...v0.20.3

UnionClef v0.20.2 (MC 1.21.1)

Choose a tag to compare

@3ndetz 3ndetz released this 18 Mar 13:30

Full Changelog: v0.20.1...v0.20.2