Heisa Posted September 14 Posted September 14 (edited) PvP Sense Cooldown awareness and action cues beside player nameplates A standalone Core script for PvP and any fight with enemy players. Overview pvp_sense turns known active timed buffs on players into instant reads: defensive and offensive icons beside nameplates, plus action cues for a current hostile target, such as DO NOT CC while Entrench or Combat Trance is freshly observed. Cooldown icons - a researched allow-list of normalized timed-buff names, each drawn beside the nameplate on its own side, laid out horizontally or from top to bottom. Unknown names stay hidden. Timers and stacks - remaining time over each icon, stack counts, colored borders per category, and an animated time sweep wash when the effect includes total duration. Stack counts share the timer label and are not drawn when timers are disabled. Action cues - an explicit response attached to the highest-priority fresh catalog entry in each enabled category for your current hostile target, so one defensive and one offensive cue may appear together. The ability name and double-drawn bold effect are optional. Retained last-known rows remain dimmed icon continuity only. Objective interactions - a movable, clickable window recognizes reviewed capture, orb pickup, bomb, bridge, forcefield, data-core, emplacement, artifact, ball-pickup, and Ilum interaction names. It accepts both localized titles and explicit Core prototype-name aliases, including Plant Bomb, Use Objective, Use Objective Purple, Gather Energy, and Generator1 / Generator2 / Generator3. Rows are labeled CAPTURE, ORB, PLANT, DISARM, PICKUP, or INTERACT. Each row requires an active cast and a resolved player; hostile rows sort first and at most eight rows are drawn. Core captures the displayed entity at mouse press, independently of later reordering or Lua/render rates. Lua resolves the captured handle and submits its opaque click ticket; Core retains undispatched intent during contention for up to two seconds. A newer click/manual selection supersedes stale pending intent; hiding/disabling the window, session changes, or an ended/filtered objective cancels pending intent if it has not dispatched. Lua does not retry uncertain selections. Layout controls - icon size, gap, side distance, vertical offset, per-side icon cap, timer and cue text sizes, cue gap, border width, and sweep opacity. Hostile roster - a separate movable window lists known hostile players nearest first, including off-screen players in Core's snapshot. Columns show abbreviated class, clickable name, observed spec, HP percentage/bar, iLvl (overall equipped item rating), and distance in metres. Unknown fields show --. It reuses the Seer action window's [=] drag handle and X close control, plus the objective window's captured-entity click ticket and target-request lifecycle. No cast or interrupt is automated. Hiding one window cancels only that window's pending target intent; a newer click in either window replaces the script's older undispatched intent. Filters - friendly, hostile, neutral, and self targets, with a max player count and a max distance. Readable at range - icons follow the same nameplate distance scaling as Core's plates: full size up to 30 m, shrinking to half size by 60 m. Preview - cycle the catalog on yourself to tune the layout without waiting for a fight, at a configurable speed. pvp_sense - DO NOT CC action cues Controls PvP Sense - Enabled, Preview - Cycle Icons, and Preview - Cycle Speed. Objectives - Interaction Window, Objectives - Friendly Players, Objectives - Hostile Players, and Objectives - Remaining Time, with Objectives - Position X, Objectives - Position Y, and Objectives - Window Width. Hostiles - Roster Window, Hostiles - Position X, Hostiles - Position Y, Hostiles - Window Width, and Hostiles - Rows. Re-enable Roster Window after closing it with X. The default is 16 rows; at most 32 are drawn, further limited by viewport height. The roster inspects at most 64 prepared hostile players. Player Cooldowns - Defensives, Player Cooldowns - Offensives, and Player Cooldowns - Action Cues. Action Cues - Ability Name and Action Cues - Bold Text. Player Cooldowns - Timers, Player Cooldowns - Stack Counts, Player Cooldowns - Colored Borders, and Icon Effects - Time Sweep. Player Cooldowns - Side Layout and PvP Layout - Icon Direction. Targets - Friendly, Targets - Hostile, Targets - Neutral, and Targets - Self with Limits - Max Players, Limits - Player Icons per Side, and Limits - Max Distance. PvP Layout - Icon Size, PvP Layout - Icon Gap, PvP Layout - Y Offset, PvP Layout - Side Distance, PvP Layout - Timer Text Size, PvP Layout - Cue Text Size, PvP Layout - Cue Gap, and PvP Layout - Border Width, plus Icon Effects - Sweep Opacity. PvP Colors - Defensive, PvP Colors - Offensive, and Diagnostics - Effect Observations. Diagnostics are off by default and emit bounded aggregate effect/objective status at most once per second. Requirements GoS: SWTOR Core with scripting enabled and the native click-ticket / target-request contract. The shared Core repair is source/regression tested but UNTESTED LIVE; the Lua script and matching native build must be activated together by the user. Star Wars: The Old Republic, retail client. No other Lua modules are needed. The package must retain its bundled SWTOR sprite files; the script reads them from the sandbox sprite root and has no configurable icon-root control. Installation Open the Script Library in Core, select PvP Sense, and install or update to the latest release. Enable the script in the Scripts list and open its settings card. Use the preview cycle to place the icons and cues before heading into a fight. Notes Cooldowns are matched against an explicit allow-list after lower-casing and normalizing spaces, hyphens, and punctuation in the reported effect name. This is exact catalog-name matching, not numeric effect-definition matching; unknown observations stay hidden. The script never casts or runs a rotation. Cooldown awareness is display-only, but an explicit click in the objective window does request a target change and waits up to two seconds for confirmation. Preview replaces only the cooldown observations with rotating self-anchored catalog samples. The objective window continues to use live active casts while preview is enabled. Objective remaining time always comes from Core. Bar totals come from the reviewed definitions: pylon aliases and modern bomb plant 6 s, orb pickup 5 s, defuse 3 s, turret control 8 s, Novare emplacement channel 18 s, bridge/forcefield 6 s, and modern data core 0.5 s. A bar measures the current cast/channel, not objective ownership or capture percentage. Capturing the Objective is shared by 6 s capture and 8 s extraction; Turretswitch is shared by different actions. Those ambiguous names and generic Accessing retain their reported countdown without a guessed fill. Instant ball pickup has no invented duration and appears only if an active cast row exists. Explosions, taxis, bolster, grapples, carrier buffs, and scoring/support effects are excluded. The roster's iLvl column requires Core's unit:item_rating() getter and reads the same prepared equipped-rating value as native nameplates, not an inventory item's level or the character's level. Older Core builds show -- and log the missing API once. Remote specs remain optional; the roster does not infer them from buffs or abilities. Native/Lua source tests do not establish live behavior; activate the rebuilt Core and reload Lua before testing the new window. Part of GoS: SWTOR Core - see the full feature overview: Detailed Explanation of All Features. Built on GoS: SWTOR Core. Edited Tuesday at 10:43 PM by Heisa Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.