michael a18194519b review: prod-readiness fix pass (3-agent code review + 2 self-found)
HIGH:
- rpc shadow dropped tagger_game_object_id and target_location (wrong vararg capture,
  args shifted); now forwards all varargs verbatim via unpack
- rpc shadow could NEVER install: ensure() read context.smart_tag_system (client-side
  instance) instead of the updating self; now armed per-instance, client shadow still
  pinned to the context instance only
- on_setting_changed debug_mode branch returned before the snapshot write: Debug Mode
  toggles were dead mid-session and the ON-notify read the stale value (AGENTS.md trap
  again, in my own fix); debug_chat/debug_hud now update the snapshot live too
- capacitance retention unit bug: widget relabel to charges (-10..10) left the legacy
  /100 in load + change handler + breed menu round-trip (*100) + breed setter (/100),
  making every retention threshold 100x too small; removed all four conversions
  (health-threshold percent semantics untouched)

MEDIUM:
- TARGETS capture was observer-non-neutral: MARKED candidate fell through into full
  re-evaluation (burned shared visibility budget); now skips like vanilla
- omni_diag_counter was an implicit global incremented in the prod hot path; now a
  file-local, only touched under debug_mode
- hack skull/check/blacklist state survived mission end (stale unit handles + stamped
  _automark_hack_order flags); mod:reset_servo_skull_local_state() runs on state exit,
  which also clears omni_last/omni_candidates/last_skull_confirm/banners

LOW: dead-tag release now honors per-class reset_cooldown; SERVO_SKULL gate checks class
before doing GameSession reads; mod:diag hard-gated on debug_mode internally (diag_log.txt
is never created for normal users anymore; un-gates OMNI-BOOT/banner/load probes); hits[]
pooled per call; early no-candidates return no longer dangles omni_rejects/omni_hud_units;
omni_last allocation gated on hud_capture; omni_hud_cur reset at entry and per-iteration
before actor resolution (no cross-candidate leakage); builder runs only while a level
world exists (no menu-side pcall spam); debug_hud_y fallback 24->0 matches default;
px unit_text localization added; six new widgets had orphan *_tooltip loc keys - DMF
only shows tooltips via an explicit tooltip field, added
2026-10-04 11:18:23 -04:00

AutoMark — darktide fork

Quality-of-life extension of Auto Mark for Warhammer 40,000: Darktide. Auto-Marks enemies for you (ping, Arbites dog, Servo-Skull, Veteran Focus Target) so you can keep aiming instead of juggling ping keys.

Credits

All core logic and design come from the original Auto Mark v2.5.3 by Shui Yu — go kudos the man. This fork — Nacho Replay — started as that exact mod and has since grown well beyond upstream. Upstream gets no blame for anything listed below; this fork gets no credit for anything not listed below.

What this fork adds (vs upstream v2.5.3)

  • 360° Marking (omni_mark) — marks come from all directions, not just under the crosshair. Implemented by enumerating the game's smart-tag unit registry; enemies behind you are first-class targets.
    • Ignore Line of Sight (omni_mark_ignore_los) — sub-option to mark through cover too.
    • Upstream-style forward-raycast marking is untouched when the option is off.
  • 360° auto-hack — with omni_mark on, the Servo-Skull auto-hack picks the nearest hackable unit anywhere, instead of only HUD markers near your crosshair.
  • Server-side order reliability — 360° ping/hack orders used to be silently dropped by the server's "is the player looking at it" re-check (~⅓ of them). The mod now shadows the server-side order handler during our own marking passes so 360° orders actually land.
  • Skull ping reliability — auto-ping no longer fires while the Servo-Skull is mid-animation or below the talent's minimum capacitance (the old behavior jammed a dead tag for its full 25 s lifetime and starved every other ping); marked units that die are released instantly instead of holding the slot.
  • Debug overlay (Debug HUD) — FpsDoctor-style dark on-screen panel, live and instant to toggle/move (X/Y sliders): current mark targets, cooldowns, skull state, server accept verdicts, and a TARGETS table — every enemy in range with distance and exactly why it was or wasn't pinged (PING / MARKED / not_visible / lower_score …).
  • Diagnostics — with debug_mode on, logs what the mod sees and why each candidate was rejected (OMNI-DIAG / OMNI-HACK-DIAG lines). A new Debug Chat Messages sub-toggle mutes the upstream chat spam; you also get a chat reminder whenever Debug Mode is active so you never ship a run with it on by accident.
  • Max mark range raised to 250 m (upstream capped at 100 m).
  • Silent breed dumper — refreshes mods/AutoMark/breed_dump.txt on every boot so the exception tables can be diffed after game updates.
  • Menu fixes — the "Capacitance Retention" thresholds were mislabeled percent with a −1000..1000 range; they're actually compared against remaining ability charges (relabeled, sane range, tooltip rewritten in human).

Changelog (fork)

  • 2.6.0-fork — Debug overlay + TARGETS table, Debug Chat toggle, server-side order shadow, skull readiness/death-release reliability fixes, 250 m range ceiling, debug-on reminders.
  • 2.5.3-fork1 — initial fork: 360° marking + LOS option, 360° auto-hack, OMNI-DIAG logging, breed dumper, capacitance menu fixes.

Install

./install.sh            # rsyncs AutoMark/ into the game's mods/ folder
GAMEDIR=/some/path ./install.sh

Takes effect on next game start. Settings live under Options → Mod Options → AutoMark (requires DMF).

License

Upstream licensing terms apply; original work remains Shui Yu's.

S
Description
No description provided
Readme
84 KiB