Building Operatives, Agents, and Programs
Characters drive every mission. A good TINS roster gives the GM four kinds of file to pull from at speed.
The four castes
| Caste | File example | Matrix / Skills | Chips | What the file must answer |
|---|---|---|---|---|
| Operative (PC) | Trinity, Apoc | Matrix 2–4, two or three Skills at 4–5 | 3 Body, 1 Matrix | What is their Deal? What is their Fate? |
| Agent | Smith, Jones | Matrix 5, Gun Fu & Kung Fu at 4–5 | Effectively endless, but plays by the chase rules | How do they arrive? How do they possess a coppertop? |
| Program | Oracle, Merovingian, rogue | Matrix 1–5, wild Skills | Special respawn rules | What is their function and what do they want from humans? |
| Coppertop | Guards, police, Mr. Reeves | No Matrix stat (Skill cap 3) | 1 chip (use the Woah rule) | How many Advantage Dice do they contribute as a group? |
For now, store all of this in the existing Character fields. Use a consistent pattern in notes so a future schema migration is mechanical:
Matrix: 3
Skills: Kung Fu 4, Gun Fu 3, Intrusion 5
Chips: Body 3 / Matrix 1
Deal: Cannot leave a teammate behind
Fate: (GM only) You will choose who lives
Advantage Dice: —
For Agents and groups of coppertops, add:
Arrival: 2 rounds after detection, via possessed guard
Possession: Any coppertop in line of sight, phone required to leave
Group Size: 8 guards = 4 Advantage Dice
Keep description focused on residual self-image — leather, hair, the way they move. Keep mechanics in notes. Keep personality for how they speak on the phone.
Making a good operative file
A useful operative file does three things in under a minute of reading:
- Sells the look. One sentence that a player can embody. Not "skilled hacker" but "wears her dead brother's coat three sizes too big, never takes off the gloves."
- Codifies the Deal. One clear, actionable, all-consuming belief. See On Deals and Fates for what makes a good one. Write it verbatim in notes as
Deal:so the GM can find it without scanning. - Lists the cribbed moves. Two or three bullet phrases for what a Double Success looks like for this character. Trinity doesn't just "win combat" — she runs up a wall, freezes mid-air, and unloads. Write those down:
Double Success moves:
- Wall-run into scissor kick; camera rotates 180°
- Point-blank "Dodge this" execution
- Slide across hood while firing both pistols
Do this for every combat-capable character you build. Your future self running a subway fight at speed will thank you.
Making a good Agent file
Agents are not just high stats. They are a procedure. A good Agent file encodes that procedure:
- How detection works. What triggers them? Failed Hack? Killing too many coppertops? Tripping a trace?
- How they arrive. Do they possess the nearest guard? Step out of a sedan that was always there? How many rounds?
- What they do first. "Disarm, then interrogate. Never shoots first if he can possess."
- How they leave. Phone, possessed body slumps, new host elsewhere.
Give them exactly two Skills above 4. An Agent who is Godlike at everything is boring. An Agent who is Godlike at Interrogation and Kung Fu but only Expert at Gun Fu has a shape.
Programs and the respawn rule
Programs follow the same stat shape as operatives — the difference is fictional, not mechanical. The useful thing to encode is their respawn clause (see Playing a Program in the Player's Handbook): three scenes of downtime, new host body, GM decides where.
In the file, write:
Program: Rogue — former search-routine, now hides as a nightclub owner
Respawn: 3 scenes, new body chosen by GM. Bug can be found and erased.
Wants: Safe passage for other rogues in exchange for an exit code
Batch checklist
Before you call a character done, check:
-
nameis a free name (short, sharp, mythic-adjacent) -
notescontains Matrix, Skills, Chips, Deal in the format above -
notescontains 2–3 Double Success moves if combat-capable -
personalitysays how they talk, not what they believe (belief is Deal) -
inventorylinks only to Equipment that exists (Operator-coded loadout) -
imageshows residual self-image, not a stat block