Commit Graph
29 Commits
Author SHA1 Message Date
michael 625c30e264 debug: skull_invalid sub-gate breakdown (vet_conflict/unaggroed/capacitance/range) + one-shot wrapper-hack state trace (is_server/self/flag) — sniper candidate reaches pass loop fine (1870 lines w/ snipers in candidates), hack shadow confirmed on call path but flagged-branch never fires, need internals 2026-10-03 16:53:34 -04:00
michael 1827c9e3c0 fix+feat: auto-hack LOS bypass now flips GameParameters.testify around a normal orig set_tag call (keeps upstream bookkeeping/template/rpc intact — previous accept-branch replication diverged and caused inconsistency); auto-marking verified to never hit the look-gate (set_auto_mark creates tags directly), so sniper misses were the 100m max_range cap — slider ceiling raised to 250 2026-10-03 16:23:22 -04:00
michael 19046de0e7 fix: Lua functions don't accept ad-hoc fields — dropped the marker stamp that threw every hack tick (safe_hook spam, 412x); call-site check now compares rawset identity against stored patched fn ref 2026-10-03 16:09:20 -04:00
michael 297fbcdb93 fix(again): shadow set_tag directly on the SmartTagSystem INSTANCE (rawset) — three class-table hook attempts all provably missed the instance call path (marker nil, counter 0, zero fires); instance shadow also re-arms per mission since systems are recreated 2026-10-03 16:03:37 -04:00
michael 5ab17ac22e change: remove omni auto-hack range cap (companion decoding costs the player no charges per user; nearest decoding objective anywhere wins, 30s per-object retry blacklist still guards loop-de-loop) 2026-10-03 15:52:02 -04:00
michael ab5ff1ee49 fix: omni auto-hack retargeted at DECODING OBJECTS (_target_type=='hack' + interactee can_interact) — per cryptic_double_tag_settings the companion hack template applies to data-interro objectives, NOT enemies (enemy double-ping = shooting tag, already covered by marking); validates the exact same way the game's own double-ping resolver does 2026-10-03 15:50:37 -04:00
michael 1479b62a61 debug: hook wrapper stamp (marker field on fn) + unconditional fire-counter — engine stubs tostring(function) so pointer traces were blind; counters settle whether wrapper is on the call path at all 2026-10-03 15:45:56 -04:00
michael c274d177ec fix: hook the real class table via metatable.__index (getmetatable may return a wrapper whose raw fields are invisible to instance lookups) + pointer-trace diag to prove hook actually sits on the call path 2026-10-03 15:37:48 -04:00
michael dfcafb9f4a debug: one-shot hook-fire trace (is_server/flag state inside wrapped set_tag) — last run: hook installed OK, tag created-then-gone or branch-skipped, console shows zero SmartTagSystem warnings, ambiguous 2026-10-03 15:31:19 -04:00
michael 33bdc872b2 feat: bypass host-side look-check by replicating set_tag's accept-branch in a hook (source from Darktide-Source-Code dump: gate is _tagger_is_looking_at_target dot-0.75 cone + LOS sweep inside set_tag/handler; everything after is _generate_tag_id/_create_tag_locally/group-limit/rpc — reproduced verbatim for flagged auto-hack targets, pcall-guarded with vanilla fallback); replaces never-installed spoof attempt 2026-10-03 15:23:52 -04:00
michael ac79578c19 fix: install spoof hook lazily from a live extension instance (getmetatable/__index) — CLASS-registry scan at mod load found nothing because extension classes register later; failure path now dumps class keys for next diagnosis 2026-10-03 15:21:13 -04:00
michael e62d6dc6e8 feat: spoof _contextual_tag_template_name for the flagged auto-hack target — tagcheck proved the game silently rejects off-LOS set_tag (27/29 tag_applied=false); the game re-validates tags through this forward-LOS check, so flagging the chosen unit's extension makes its own validation accept the order 2026-10-03 15:13:50 -04:00
michael e98d5e166e debug: OMNI-HACK tagcheck — 1s after each auto set_tag, log whether the tag actually applied and whether skull entered hacking state (selection itself confirmed working: 16 picks incl 7m; skull only flies on-screen targets) + blacklist entries carry breed name 2026-10-03 15:05:46 -04:00
michael 15994ed04e debug: sample per-candidate distances when filter matches but nothing within OMNI_HACK_RANGE (measured: enemies=8-10 yet selected=nil all mission — suspect NaN/long distances from position reads) 2026-10-03 14:52:21 -04:00
michael 2cabef7661 feat: omni auto-hack picks target itself (measured: game's _contextual_tag_template_name is forward-LOS gated — hackable=0 all session even under crosshair); nearest filtered enemy breed within 45m, direct set_tag, 30s per-unit retry blacklist 2026-10-03 14:43:21 -04:00
michael 5334580fd3 fix: diagnostics write to mods/AutoMark/diag_log.txt — printf is not a Lua sandbox global (nil call crashed the hook every tick once debug_mode was on) and DMF :info spams notifications; pcall-guarded mod:diag via Mods.lua.io 2026-10-03 14:25:13 -04:00
michael a9fa06e6f8 chore: ignore .opencode/ workspace dir 2026-10-03 14:17:43 -04:00
michael d4290329d7 docs: README crediting upstream AutoMark v2.5.3 (Shui Yu), fork by Nacho Replay; info.json 2.5.3-fork1 with source URL; gitignore AGENTS.md 2026-10-03 14:16:49 -04:00
michael b16a9cc8df fix: route OMNI/HACK diagnostics through raw engine printf — DMF :info also fires on-screen notifications and spammed chat 2026-10-03 14:10:07 -04:00
michael 0ba1d73ba4 fix: capacitance retention thresholds were mislabeled 'percent' (-1000..1000) — values are compared to remaining ability charges; relabel to charge(s), range -10..10, rewrite tooltip in plain English (+zh) 2026-10-03 14:07:05 -04:00
michael f41ef1793e debug: OMNI-HACK-DIAG probe — dump hack-tag template fields + hackable-vs-total unit counts (debug_mode-gated) to locate why omni auto-hack doesn't fire off-LOS 2026-10-03 14:07:05 -04:00
michael 32994520bb feat: auto-hack is 360-aware — with omni_mark on, pick nearest hackable unit from smart-tag registry instead of crosshair-scoped HUD markers 2026-10-03 07:24:54 -04:00
michael bd8b3f2f72 fix: 360 omni marking now enumerates smart-tag registry instead of physics sweep
linear_sphere_sweep returns only a capped hit table (no count) and its
slots flood with world-geometry actors, starving real enemies behind the
player (crash: nil num_hits compare; then silent no-marks). Candidates
now come from smart_tag_system._unit_extension_data (alive, breed-typed,
in range) — geometry can't interfere, LOS gates still apply unless
omni_mark_ignore_los. OMNI-DIAG candidate/reject logging kept, gated on
debug_mode.
2026-10-03 07:15:32 -04:00
michael 791c68b64e chore: make breed dump silent (debug-mode logging only, file still refreshed each boot) 2026-10-03 06:18:09 -04:00
michael 79ec73506f notes: live breed dump 2026-10-03 (verified all hardcoded breed names current; new boss-tier: renegade_twin_captain x2, renegade_wizard — auto-covered by generic boss handling) 2026-10-03 06:16:38 -04:00
michael 57ba90fe71 fix: sandbox strips standard io, use Mods.lua.io (DMF engine backup); pcall the load-time dump 2026-10-03 06:13:50 -04:00
michael 5862b9194f feat: 360-degree omni marking option
- omni_mark: full-sphere sweep (linear_sphere_sweep capsule covering max_range
  around the player) replaces the forward-only ping raycast, so enemies behind
  you / off-screen become mark candidates
- omni_mark_ignore_los: optional sub-toggle, skips line-of-sight checks entirely
- prefer nearest unit on score ties (sweep hit order is arbitrary)
- bypass FOV dot gate in is_target_pingable when omni_mark is on
- LOS check budget 10 -> 16 per frame
2026-10-03 06:09:31 -04:00
michael a2de1dfd1d dev: dump live game breeds to breed_dump.txt on mod load (for post-update enemy table diffing) 2026-10-03 06:09:31 -04:00
michael 41a999f7d7 Upstream AutoMark v2.5.3 (Shui Yu, Nexus #736) baseline 2026-10-03 06:04:57 -04:00