Skip to main content

AIO Fighter

[n3] AIO Fighter is disabled by default and registered as com.n3plugins.fighter.FighterPlugin. Its global config group is n3fighter; named versioned profile JSON is kept in the same ConfigManager group.

The active profile must define combat and bank anchors, at least one exact or mapped target, an ordered combat goal, and at least one approved package. Start is blocked with the first validation error until those fields are complete.

The tick controller issues at most one command per tick. Its priority is terminal safety, goals complete, emergency food, restock and bank reconciliation, travel, safespot, combat setup, owned loot, maintaining an existing fight, target attack, then optional hopping.

Combat packages select only user-approved equipment and inventory IDs. The optimizer chooses the first unmet ordered goal and then the highest-priority eligible package that declares it can train that goal. It does not calculate best-in-slot equipment or buy supplies.

Targets must expose Attack, be in the configured combat area, and are not attacked when already interacting with another actor. Ground-item collection is limited to local/group-owned items and applies blacklist before always-loot, whitelist, and loot-all rules.

Bank reconciliation uses BankWorkflowBuilder.reconcile(...) after travelling to the configured bank anchor. Walking is requested through NavigationActions while Packet Utils continues to own walker and action-pacer ticks.

The sidebar creates profiles and captures combat, safespot, and bank anchors from the local player's current tile. Edit Profiles opens a named-profile window with Overview, Targets & Area, Goals & Packages, Supplies & Prayer, Loot & Bones, Banking & Recovery, and Advanced tabs. It supports duplicate, delete, clipboard export, and validated clipboard import. The overlay exposes current state, goal, selected package, health, prayer, supply count, kills, XP/hour, loot value/hour, deaths/recoveries, route status, and last InteractionResult.

Loot applies blacklist before always-loot, whitelist/loot-all, then the minimum value rule (the larger of RuneLite item price and high-alchemy price, multiplied by stack quantity). At a full inventory, the policy can bank, skip, consume a configured supply, or replace a lower-value non-protected, non-required item. Bone policy consumes configured selected IDs or all detected bones/ashes, while preserved IDs are never consumed.

Optional hopping runs only when there is no fight or owned loot. It preserves membership type and excludes PvP, high-risk, Deadman, seasonal, league, fresh-start, and skill-total worlds.

Caution

Combat widgets, autocast selection, prayer widgets, banking, pathing, and live ground-item ownership are revision- and account-state-sensitive. The current autocast reads use the rev239 game values for enabled state, selected spell, and defensive mode. Validate a new profile manually with low-value supplies before enabling unattended automation.

Breaks and bootstrap

The plugin requests Packet Utils account bootstrap only while enabled. It registers with Break Handler at startup, starts active tracking only while the fighter has an actionable session, pauses on planned or active breaks, and releases the input lock and bootstrap owner when idle, stopped, or disabled.

Current live verification boundary

Unit tests cover profile validation, package selection, command priority, and the one-command runtime boundary. RuneLite live verification is still required for combat styles/autocast, bank widgets, safespots, owned loot, hopping, and completion banking. Ordinary-PvM recovery records a local ActorDeath, rejects Wilderness and a second death during recovery, walks to the recorded location, and opens a nearby visible grave through its Loot/Reclaim action. The reclaim step uses a visible Reclaim action inside the rev239 gravestone interface group; an unknown or missing action stops safely. If no local grave is present, the runtime only uses a visible verified Death's Domain entrance; it does not guess a map coordinate or spend coins through an unverified retrieval interface.