Skip to main content

Combat Awareness

com.n3plugins.combatawareness.CombatAwarenessPlugin tracks the player's combat state (via sdk.widgets.CombatSessionTracker), surfaces reminders/overlay, extends the client idle timeout while enabled, and optionally re-attacks the tracked NPC. The old neverlog-style idle timer removal toggle now lives in PacketUtils as the suite-wide preventIdleLogout config.

Interaction layer

The only server interaction - the opt-in re-attack - routes through the enhanced action API, NPCActions.interact(target, "Attack"). That path queues the mouse click packet (MousePackets.tryQueueClickPacket()) ahead of the NPC action and is gated by ActionPacer, so re-attacks inherit the suite-wide click-packet + pacing behavior. The legacy CombatTargetClient/CombatTargetInteractor/ NpcInteractionCombatTargetClient wrapper trio was removed; the attackable guard (!isDead && healthRatio != 0) lives inline in attemptAttack.

Randomized reminder / re-attack window

The plugin uses no fixed interval. The reminder and re-attack fire at a random time inside a configured window so the cadence is never exactly predictable:

  • reminderMinMinutes / reminderMaxMinutes - lower/upper bound (minutes).

CombatReminderService picks a fresh random window length each cycle and holds it stable until the window is consumed (so the overlay countdown matches the fire time). When automation is enabled and NPCActions.interact returns PACED (or there is no attackable target), the window is not consumed - the plugin retries on the next tick and keeps the cycle active.

Anti-ban fidgets

Opt-in human-like idle gestures, scheduled through the suite-level sdk.humanizer.HumanizerService by CombatAntiBanService, only while a combat session is active. The timer is the rate limiter (per-tick self-limiting); fidgets are not gated on ActionPacer.

ConfigFidget
fidgetRightClickItemRight-click the nearest ground item to open its menu
fidgetMoveCameraNudge the camera with an arrow key
fidgetSwitchTabFlick to a random side tab, then back to inventory
fidgetRightClickActorRight-click a passing player/NPC to open its menu
  • antiBanEnabled - master switch (default off).
  • antiBanMinMinutes / antiBanMaxMinutes - randomized gap between fidgets.

Camera nudges and right-click menus are real AWT canvas events (sdk.input.CanvasInput), not packet interactions - "examine" here means opening the right-click menu, which is auto-dismissed a few ticks later with a neutral click. The tab switch uses the enhanced TabActions.open. The shared humanizer also supports camera nudge, right-click item/actor, tab glance, and mouse-offscreen micro-break gesture kinds for other opt-in profiles.

Humanizer / Anti-Ban Gesture Scheduling Flow

Anti-ban fidget gestures are managed by the HumanizerService via a randomized, tick-driven scheduler: