Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/kit-extras-belt-only"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
The staging drill's three failing fight checks (#20, #22), explained and fixed. Plan of record: docs PR (D331, PLAN 9c).
s5.kit.heal: Rust changed, and the plugin is fixed. Rust's November 2026 build adds the server variableItemModEntity.playerOnlyEntityBeltOnly, on by default. An item Rust marks player-only, the medical syringe among them, now has a held entity only while it is in the belt. A kit puts syringes in the main inventory, so the heal (D260) found noMedicalTooland never healed. Without this, everykitUse.healNPC would stop healing on public Rust at Thursday's wipe.FindHeldnow falls back to the item definition's entity prefab when an item has no held entity. That covers every extra: heal, melee, flamethrower, grenade, rocket. The org lead chose all five over heal alone.HasFuelreads the flamethrower's fuel type the same way.Heal()returns false when it cannot hold the item (a full belt); before, it used up an item it never held.s5.fight.shootBack: the harness's spot. On the drill's 3500 map (seed 1234), a cliff rock (cliff_hills_large_e_arid) stands between the fifth fight's victim and the bully 15 m north of it. The bully never saw the victim, so never shot it. In the open, the victim answered within a second.s5.fight.leash: diagnostics only (org lead's choice). It failed once (run 49) and passed in every run on 2026-11-02. The harness now notes how the leashed NPC came to fight the moment the check would fail: its target, its health, and how far it and the scientist are from its home. The 38 m rule for a learned target stays until a failing run says which way it got in.Harness 0.7.5.
Closes #20
Closes #22
(Merging into
edgecloses nothing: Gitea acts on these only in a merge intomain. The release-day cutover collects them from this body, so both close when the fix ships at the wipe.)How it was tested
Rust's code was compared between Oxide's public and staging builds, patched against patched. Hurt, OnAttacked, Heal, MaxHealth, NPC targeting,
MedicalToolandItemModConsumableare unchanged.ItemModEntitycarries the belt-only change.Scratch probes on
rust-staging(build 26344826, Oxide 2.0.7861 staging, Kits 4.4.10, fresh data) showed:held=null;NextHealbacked off 15 s per try.cliff_hills_large_e_aridafter 6.8 m. In the open, the victim targeted its attacker within 1 s.The probes are not in this PR.
With this branch on
rust-staging, Rust staging 26377229 (out 2026-11-02; swap fields 58/58,added=-):rnt.run s5heals 2, syringes left 0, health 145, shootBackanswered=True, the bully at 225°.rnt.run allplace, socf3997bhas now run live.Locally:
node scripts/checkPlugin.js: plugin ok, API 6.node --test scripts/checkPlugin.test.js tools/drill/drill.test.js: 33 pass.plugin/RunicNPC.csandtools/RunicNpcTest.cscompile against both staging's and public's Oxide-patched assemblies.Not run: a Carbon boot on public Rust. The fallback only acts when an item has no held entity, which public Rust never leaves in main.
Checklist
AI-assisted contributions (required)
Claude Code (Claude Opus 5.5). I have reviewed and understandevery change, and take responsibility for it. AI-authored commits are
marked with a
Co-Authored-By/Assisted-Bytrailer.License
(GNU GPL v3.0 or later), and I have the right to contribute it.
🤖 Generated with Claude Code
https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY