| Piece | Where | Status | What it gives the script |
|---|---|---|---|
| Enemy roster feed | war-room/targets-lr.json | LIVE | All 54 BCC members, refreshed every 20 min through Monday: state, hospital-until, online/idle/offline, last action, revivable, ELO, hold rate, hits won/lost, best damage, RW hits. The script reads this instead of hammering Torn itself. |
| Target scoring | war-target-board-lr.html | LIVE | THREAT and FARM axes, ranked within the enemy roster. Becomes the default sort inside the script. |
| Leadership control panel pattern | war-room/control-lr.php | LIVE | Password-gated PHP page that writes one JSON file. The assignment panel is the same pattern with a different form. |
| LR roster feed | war-room/roster-lr.json | LIVE | All 49 LR members with IDs. Group builder ticks names off this list; the script confirms the member is LR from it. |
| Contributor key vault | keyvault.html → offline | 54 KEYS | Declared purpose already covers Fair Fight / battle-stat estimation and faction tools. Server-side enrichment only; keys never leave the vault. |
| RSVP board | war-rsvp-board.html | LIVE | Where the “script readiness” card lands: IN / PARTIAL / OUT next to INSTALLED / MISSING. |
| Userscript | lr-war-command.user.js | TO BUILD | The member side. Built on the war-page selectors from the TWSE fork and the 39X source, which are tested against Torn's actual DOM. |
| Assignment feed + panel | war-room/assignments-lr.json + assign-lr.php | TO BUILD | Groups, direct assignments, group assignments, priority, version stamp. |
| Check-in | war-room/checkin-lr.php + checkins-lr.json | TO BUILD | Script posts ID + name + version every few minutes. No key, ever. |
legitimatenexus.com
|
leadership | members
assign-lr.php ---writes--> assignments-lr.json <--reads-- lr-war-command.user.js
(password, same as targets-lr.json <--reads-- (Tampermonkey on PC,
war-status control) roster-lr.json <--reads-- Torn PDA on phone)
NEXUS via this line ---writes--> |
or #council checkins-lr.json <--posts-- id + name + version
|
NEXUS refresh loop (vault keys, server side)
rebuilds targets-lr.json every 20 min
-- member API keys stay on the member's device. Always. --
assignments-lr.json every 30 s during a war and re-renders only when the version stamp changes. 49 members polling a static file twice a minute is nothing to the host; it is not 49 members hitting the Torn API.player_id means “everyone in group N”. Kept on purpose so the mental model transfers from the script the faction already knows.###PDA-APIKEY### placeholder, so phone users never even type it. The site never sees a key, so there is nothing to leak, log, or be accused of storing. That also closes the exact concern Mags remembers about 39th.online.SYNC: LIVE · 12s ago. A new assignment pops a banner in the panel within 30 s of leadership saving it.@require, no external libraries. Only fetch, localStorage and the PDA key placeholder, so the same file runs unchanged under Tampermonkey and inside PDA without relying on PDA's GreaseMonkey shim. Mobile-first panel: it must be readable on a phone in a hospital bed at 03:00 TCT, because that is where wars are actually fought.LR WAR COMMAND v0.1 · SYNC: LIVE 12s ------------------------------------------------------------------ 3 ONLINE 2 IDLE 7 FARM 2 EXITING enemy-only: ON ASSIGNED Moms_Spaghetti [1192893] L72 Okay Offline 1h hold rate 3.4% · FARM #4 · est. score/hit 18.0 [ ATTACK ] [ NEXT ] [ COPY CALL ] PERSONAL Sassafras [.......] L45 Hosp 0:43 EXITING PINNED kingslayer [.......] L61 Okay Online Assignments: 3 Personal: 1 Next up rotates: assigned → personal → pool
Assigned targets first, then personal, then the general pool of attackable enemies. If leadership has given you three names, NEXT cycles those three before it ever offers you the pool. Targets in hospital drop out of rotation until 60 s before exit, when they come back flagged EXITING.
Ranked-war score per hit is the respect the hit earns, and respect scales with the target's level, so a win against an L80 is worth roughly four times a win against an L20 for the same 25 energy. The other half of the equation is how often that target actually goes down. NEXUS already computes both halves for every enemy, and can publish a single expected score per hit figure in the feed: probability the target loses a defend (their hold rate, from public stats) multiplied by the respect their level pays. That is the number the FARM sort orders by. It makes “who should hit whom” an arithmetic question leadership can answer at a glance: the top of the list is the best return on a stacked energy bar, and the THREAT axis says which of those need a heavy hitter rather than a recruit.
Lands as a card on the RSVP board next to the IN / PARTIAL / OUT tally, so one page answers both “who is coming” and “who can see their targets”.
| Phase | What | Who tests | When |
|---|---|---|---|
| 0 | This brief. Mags and Crysi confirm the shape; Mags uploads the TWSE fork and the 39X source to this channel so the build starts from tested war-page selectors. | — | now |
| 1 | Userscript v0.1: enemy panel from the feed, three tiers, NEXT rotation, PDA-compatible, no assignments yet. | Mags on PC + PDA, Crysi on PC | after BCC, wk of 7 Sep |
| 2 | Assignment feed, leadership panel, plain-words assignment through NEXUS. Script gains SYNC and the banner. | Mags, Crysi | same week |
| 3 | Check-in and readiness card on the RSVP board. | leadership | before next RW |
| 4 | Faction rollout: install guide page, one Discord announcement, readiness chased like RSVP. | everyone | next RW |
| 5 | Optional TornStats overlay with the member's own key, stored locally. | members who have one | later |