Skip to content

Outpost security: wanted stars, arrests, massacre recovery - #537

Draft
Jackriip wants to merge 124 commits into
feature/hyperviolence-megafrom
feature/outpost-police
Draft

Jackriip wants to merge 124 commits into
feature/hyperviolence-megafrom
feature/outpost-police

Conversation

@Jackriip

@Jackriip Jackriip commented Nov 11, 2026 •

Copy link
Copy Markdown
Member

Outpost security

The three trader outposts no longer defend themselves with turrets. Each now has a security squad of real people, and what they do depends on the stars you carry. Traders and checkpoint guards are people too and can be killed, and an outpost that has been shot up cleans itself up afterwards.

Wanted stars

  • Crimes at an outpost put stars on the person who did them, shown as a wanted alert on the HUD. There is no chat text about stars.
  • A crime counts only if someone saw it: an officer, a trader, a gate guard, a bystander or a camera. Kill the witness, or break their radio before the call goes out, and nobody is wanted. Fighting back against someone who attacked you first is not a crime.
  • Punches, weapons, gunfire, vandalism, hitting staff or shoppers, a drawn gun without a permit, forcing the checkpoint, breaking out of a cell, looting a prisoner's locker and fighting officers all raise stars. Killing someone is three stars at least.
  • Stars fade if you stay out of sight or leave the outpost. At three and up they hold while you are still there.
Stars What security does
1-2 Orders you to stop, stuns and cuffs you, takes what you used, walks you to the desk
3 Shoots to kill. No surrender
4-5 As 3, your crewmates at the outpost are arrested, and your crew is embargoed at that outpost

The wanted alert, one to five stars

The security squad

  • Officers walk beats around the concourse, stop for coffee, sit at the desk, talk to each other and call things in on the radio. They are ordinary people: they can be stunned, cuffed, wounded and killed like anyone.
  • More officers arrive through staff lifts as stars rise, and keep coming. They stay inside the outpost and its hangars and do not board docked ships.
  • Officers in green and yellow space spare someone who is down. In red space they finish the job.
  • Each outpost has its own force, with its own look and voice.

Officer looks per outpost (beat, sergeant, officer, tactical, marshal):

Officer outfits for the three outposts

Patrol routes on each outpost:

Halcyon patrol routes
Quartermain patrol routes
Undertow patrol routes

Arrest, fine, jail

  • At one or two stars an officer stuns and cuffs the offender, takes every item used in the crime (it is destroyed at the desk), and fines the crew's ship accounts. Paid, you wait in a cell for a short while and walk out.
  • If the fine cannot be paid you go to jail for a few minutes. Your gear goes into a property locker outside the cells and you wear a prison jumpsuit. You keep your ID and implants. There is no debt afterwards, and paying the fine ends the term early.
  • The locker opens for you or your ID, or for an emag. Anyone can empty one, but a theft an officer sees is two stars and the goods go back. Gear nobody collects stays locked. If every locker is in use the one left longest is emptied onto the floor.
  • Forcing a cell door sets off an alarm and is three stars, as is walking out early. A prisoner who is badly hurt or dies in a cell gets the door opened and a medic called.

The security station on each outpost's lobby side (cells, property lockers, desk, evidence chute):

Halcyon security station
Quartermain security station
Undertow security station

Lethal response and the embargo

  • At three stars officers shoot to kill, and a surrender is not taken.
  • At four stars crewmates at the outpost are arrested, not shot, and every ship of the crew is embargoed at that outpost: no shops, no checkpoint. Five stars lasts longer, and every officer killed adds more time. Other outposts are unaffected.

Killable traders and gate guards

  • Traders and checkpoint guards are people behind a counter or a booth. A shop is open only while its keeper stands at the counter. A dead, knocked out or dragged-off trader closes the shop, and a replacement arrives with the new staff.
  • A trader may drop one item from their shelf when killed, within a small cap per outpost. The shop stock itself cannot be looted.
  • Killing a trader or guard in sight of anyone is four stars at least. A guard's death leaves the gate working.

The stick-up

Point a gun at a trader behind their counter and they hand over the till, or one cheap item if it is empty. They raise the alarm when you leave their sight or half a minute later. Armed robbery is two stars. If you are caught the gun is destroyed and the takings go back.

The gate emag

An emag on the checkpoint's wall scanner takes the gate down for a few minutes: nobody is scanned and both doors open for anyone. Anyone who sees it reports you. With the guard dead and nobody watching, nobody reports it. The same scanner cannot be emagged again for a while.

Morgue crews and janitors

  • After a massacre, once things go quiet, morgue crews and janitors arrive by staff lift. Morgue workers bag the dead and haul them off. Dead visitors, yours included, are placed in a tray in the outpost's new morgue and can be collected. Player bodies are never deleted.
  • Janitors mop blood and pick up casings and litter. Both crews carry radios, talk to each other and are people like any other.
  • When the floors are clean, new traders, guards and officers walk in from the lifts, shops reopen as their keepers reach the counter, and the regulars drift back. If crews keep getting killed, the next one comes later with more escort, and after four in a row the port sends nobody for a quarter of an hour.
  • Each outpost gets a morgue, a janitor closet, a security station with two cells, property lockers, a desk and an evidence chute, and signs for the stalls.

The new morgue and janitor closet, before and after:

Halcyon lobby before and after
Quartermain lobby before and after
Undertow lobby before and after

A morgue worker:

A morgue worker

Removed

  • The outpost defense turrets.
  • The warning strikes and the marked-on-sight system.

The checkpoint, the hazard protection and the sanctuary doors stay. Player outposts and the prison wing are untouched.

Branch

Based on #512 (feature/hyperviolence-mega). It includes the stealth branch, which the officers' patrols and witness checks use.

Testing

Compiled with no errors, and the new unit tests pass; the suites that also fail on the base branch still fail the same way. Not playtested.

…n view of every guard's sight

Guards with nobody else noticed say a line, look round for a few seconds and go back to their route
after killing or downing their target. Hits from a second attacker during a fight are remembered.
Wary now fades after three minutes with nothing new. Admins can show the sight of every guard on
their level at once. The notice map moves off the blackboard, whose qdel sweep runtimed on it.
The ally check walked get_line(), which takes one turf per step. A shot at an
angle clips turfs beside that line, so a gunner fired past a guard standing
next to its target and hit him. The check now walks every turf the straight
line passes through.
…er 60 s

The ? fills as a guard notices you and only you see it. Alert is a red ! for
everyone; it drains while the guard has lost you, then turns into a yellow ?
that drains over the search. Drawn on the guard, so never through walls, and
above the lighting so it reads in the dark. Built only with a player nearby.

Wary now fades after 60 seconds with nothing new.
Standing marks sit 6 px higher and follow the head's height offset; a lying
guard's mark clears its body. No own ? shows in the moment after a search ends.
Guards walk back to their route or post after a chase instead of turning
sentry, in legs when it is far. Only being carried to another level or
map region makes a sentry; a guard that can't get back waits and retries.

The AI stays fully awake while any living player is on the level, the
scan runs from planning instead of the behaviour queue, and long walks
are no longer cancelled every step.

An alert guard still notices others and turns on someone clearly nearer
or on whoever hits it, at most once every few seconds. A glimpse while
searching is an alert. Notice is capped, and only what it sees now
decides its state. The candidate cap counts only those it can perceive.

A box that moves at its shoulder or bumps it is noticed. Blasts, fire,
gas and stuns with nobody to blame send it and nearby friends searching.
Cuffs, syringes, the strip menu and thrown items count as touches.

The head mark exists only while the scan runs, so it clears on cuffs,
stuns and player control. A player in the body gets no reactions.
…nocks, glass, doors, bodies, shouts and radios

Guards react to noise as a group. A small noise sends one guard to look, a second at the same spot two,
a third everyone; a guard that never comes back is missed. Gunfire, blasts and screams send the nearest
few running while sentries hold. Suppressed guns are heard only close by and in the open. Running is
heard and walking is not, by tg's own footstep rules, and running no longer makes you easier to see.
Guards who see or feel someone shout for help; lookouts carry an earpiece and call it in after three
seconds unless they are dropped, jammed or EMPed first. A guard that heard something shows a grey ?.
No sound ever gives a guard a target. Adds the Stealth Noise admin verb and a noise view.
…ets, a window, a locked door, carpet and plating
…sing guard, alarms, shouts, radios, and real shots, throws, knocks, falls, emotes and blasts
Guards switch a belt seclite on in the dark and whenever they are on edge;
an EMP cuts it out. A body found mid-search is called out, a quick volley
from one spot counts as one noise, and sentries keep facing their post.
…the dark, and stop flickering lights

Point-blank sight within 2 tiles in the cone is an alert on that look, with a quick look between scans;
3-4 tiles fill three times faster. The close radius behind a guard needs light that isn't its own beam.
A guard's own spot is judged without any guard seclites. No missing-friend line over a reported body.
An AI-switched light is re-laid as a turn would. Diagonal AI steps cost what a player's do.
The test room's east room gets a floor light in the middle.
… drop them, a matte knife backstabs, and their seclites can be looted
Adds the outpost police module skeleton (defines, the police datum with its
tick, roster and interior link, shared datums, officer types and brain, the
station's map kit types) with every cross-package proc stubbed. Trader outpost
crimes now go to the police with a crime kind and the item used; the strike
ladder, armed-trespass state and the outpost turrets (38 on the three maps)
are removed. Tests that no longer compile are guarded for porting.
…officers

The tests that read the strike ladder or the outpost turrets now read the police's warrants, stars and evidence, and an officer's targeting strategy. Crimes that need a witness get an officer to see them. The guards are gone. The police types are left out of the death cash, crowd and combat sense checks that would not fit them.
The wanted alert shows one to five stars (a blinking set while the suspect is
unseen or away) at the outpost the person is at, and clears at none. The
overmap management bans view lists warrants and bars next to embargoes: lift
any row (a prisoner's lift lets them out of the cell), add a warrant at one to
five stars. Long names are cut with a mark and the add form shrinks with the
window. The bans test is ported to the new rows.
…where

The police cutter, its hull, crew, hunt and pardon-by-payment are gone, and the customs
patrol's dispatch is back to how it was. A 4+ star embargo now covers only the outpost
where it happened, on the same timer with the per-officer extension. Players see
security, not police, in names, lines, the wanted alert and the wiki.
…ailbreaker

Only a step of the prisoner's own is a jailbreak on them. A shove or a swap
charges the one who did it, as a pull already did, and a move nobody is
behind charges nobody. The time to walk back waits while the prisoner is
down, held, carried or disconnected.
A cell with no prisoner keeps its door open while a body or anyone else is
on its floor, and opens again if it was shut on them. A crowbar works on a
cell shut on someone it does not hold, with no jailbreak when nobody is held.
A keeper away from the outpost's own floor for a minute (dragged into a
hangar or shut in a docked ship) leaves the counter vacant, so a replacement
comes as if the keeper had died. An original still off the outpost never
takes the counter back from the replacement.
…e forever

A wanted person aboard a docked ship, in a hangar or logged off holds the
outpost in trouble for three minutes at most, so the cleanup and the new
staff still come. On the concourse with a player at the keys they hold it as
long as they stay.
A replacement trader steps off the public lift onto a free alcove tile if
there is one, else one with nobody standing on it, else any open tile, so a
body or someone parked in the alcove no longer keeps the shop shut.
…current crew

The warrant reads the offender's crew again whenever it fines them, embargoes
their ships, lengthens an embargo or names accomplices. A crew they have left
or been kicked from never pays for them; with no crew there is nobody to pay
and an unpaid fine is jail, so leaving still dodges nothing.
…r is a crime

A trader out cold, tied up or off the counter when the alarm is due raises
it the moment it can, instead of never. Trying to cuff a trader is assault
on the staff, as grabbing one already was.
… shot

Standing in an officer's line of fire is resisting only for someone who can
step out of it: not someone stunned, tied up, dragged, carried or logged off.
report_crime() clears the perception's last witness and witness list once it
has read them, so an officer or player who saw a crime is never held from
deletion by it.
Someone who followed an officer into the staff lift closet, or was left there,
can now walk out. Getting in from the concourse still takes an officer's ID.
Someone tied up, stunned or logged off who is dragged or carried through a
forced checkpoint door, or shut in a locker pulled through it, is not the
one who breached it: whoever moved them is. Goods from a property locker are
a theft only for the first person to take them out; handing or planting them
on someone else does not put that person on record.
An NPC body a player is or was in is kept as a person's body, not collected
with the NPC dead or by the body cap. Anything an NPC body or its bag holds
with a person in it (a pAI card, an MMI, a carried pet) is put on the floor
before the bag goes down the lift. A player in an officer's body leaves the
roster, so no sweep or recall deletes them.
Forget how a returned prisoner last left, so a later shove or swap out is
charged to whoever did it.
Since traders became ambient NPCs, the stealth witness rules gave them the
townsperson report delay.
A deleted mind stayed in recent_reports until the next report and hard-deleted.
Two punches in front of a beat officer, dispatch, the order, cuffs, search,
desk and cell, stepped by hand: fined from the ship, or jailed in the prison
jumpsuit with the gear in a locker the prisoner can open; a stabber's knife
goes down the evidence chute.
- Bodies at an outpost are the morgue crew's, not the corpse sweep's.
- A one-star suspect is a target the force subtree only watches.
- Officers wear their own locked headset; used police cuffs cuff nobody;
  tg's cuffs drop what is held.
- A test outpost gets a site for its trader, and a normal day before the
  killed-slot check.
- Diagnostics on assertions that did not say what they saw.
…he storefront, a broken locker lets its occupant out

Plus diagnostics on the beat, sleeper and gunfire checks.
# Conflicts:
#	voidcrew/modules/outpost_police/police_wanted.dm
…t; the stop and sleeper checks stand on public floor

Plus diagnostics on the police lift and gunfire checks.
…t minutes

The five-minute lookup cooldown started from world.time 0, so no officer found one before minute five.
…ed of staff the recovery sent, the gunfire officer is not held still
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant