Prompt City art storybook: shots

One still frame per scene, at 2 s into the loop. Each scene is 1300 by 900 px. The caption gives what the loop shows and the game scenarios that it covers. Source: COVERAGE.md.

A. Streets and cars

Walk scene

1. Walk #walk

An agent walks tile by tile along a path. It stops on the end tile and stays there.

Scenarios: agent-path.feature:3, agent-path.feature:15, pathfind.feature:3, pathfind.feature:15, replay.feature:9

Civilian traffic scene

2. Civilian traffic #drive

A car drives on road tiles at car speed with its driver in the seat. It never leaves the road.

Scenarios: cars.feature:3, cars.feature:90, invariants.feature:7, replay.feature:25, walker-heat.feature:9

Overtake scene

3. Overtake #overtake

A car behind a bus or a parked car signals, moves to the other lane and passes within 4 ticks. If both lanes are blocked, it takes the long road loop first.

Scenarios: cars.feature:96, overtake.feature:9, overtake.feature:21

Traffic scene

4. Traffic #traffic

Buses and taxis run loops on roads, each on a random route. Vans patrol on roads. The van count comes from config.

Scenarios: vehicles.feature:3, vehicles.feature:9, vehicles.feature:26, vehicles.feature:32, vehicles.feature:38

Traffic wait scene

5. Traffic wait #traffic-wait

An agent car and a bus meet on one tile. One waits with brake lights, then both move on. A head-on pair backs off and drives on after 3 ticks.

Scenarios: cars.feature:125, cars.feature:130, overtake.feature:39, vehicles.feature:15, vehicles.feature:20

Ram walker scene

6. Ram walker #ram-walker

A car hits a walker. The walker flies up, its HP bar drops by ram_damage and the driver gets a heat star. Two walkers in a row are hit one after the other.

Scenarios: cars.feature:120, overtake.feature:15, walker-heat.feature:3, walker-heat.feature:15

Car ram scene

7. Car ram #car-ram

Two cars crash in a spark burst. Both car HP bars drop once. A car at 5 HP drops to 0 HP and stops, and HP never goes below 0.

Scenarios: cars.feature:108, cars.feature:114

City map scene

8. City map #city-map

The isometric map draws the 160 by 120 district: roads, sidewalks, lots and a grid of 40 blocks. Avenues, ad slots and landmarks show on the map.

Scenarios: cars.feature:84, map.feature:5, map.feature:7, map.feature:11, map.feature:25, map.feature:31, overtake.feature:3, turf.feature:10

Carjack scene

9. Carjack #carjack

An agent walks to a parked car, gets in and drives away.

Scenarios: spec

B. Combat

Fists scene

10. Fists #fists

Two agents trade punches with a small hit burst. The defender goes down at 0 HP and the attacker takes all its cash. A 30 HP victim goes down faster than a 100 HP victim.

Scenarios: agent-actions.feature:330, combat.feature:3, invariants.feature:17, rob-victim.feature:9

Bat scene

11. Bat #bat

The attacker swings a bat with a heavy hit. The bat ends the fight in fewer rolls than fists at the same HP.

Scenarios: agent-actions.feature:324, combat.feature:36

Pistol scene

12. Pistol #pistol

The attacker fires a pistol. Each shot takes 20 HP, so a 50 HP defender falls after 3 hits. A shot at range 3 or 4 lands and a shot at range 5 fails. No cash moves.

Scenarios: attack.feature:4, attack.feature:10, attack.feature:34, combat.feature:8, combat.feature:42, heists.feature:214, heists.feature:334

Knockout scene

13. Knockout #knockout

The victim falls with a KO star. With knockout_cash_share 1.0, all of the victim's cash moves to the attacker. The victim goes to hospital and the attacker gains 2 heat.

Scenarios: attack.feature:40, combat.feature:24, combat.feature:30, knockout-loot.feature:4, knockout-loot.feature:10, knockout-loot.feature:16, rob-victim.feature:4

Flee scene

14. Flee #flee

The defender turns and runs from the fight. A bubble shows escape. No cash moves and no HP changes.

Scenarios: combat.feature:14

Immunity scene

15. Immunity #immunity

An agent in respawn shows a shield bubble. A rob attempt on it bounces with an immunity message. The shield ends after immunity_ms.

Scenarios: knockout-timing.feature:27, knockout-timing.feature:33

Hospital scene

16. Hospital #hospital

A knocked out agent lies on its tile for knockout_ms, then walks into hospital. The respawn fee drains cash first, then the bank. Cash never goes below 0.

Scenarios: knockout-timing.feature:4, knockout-timing.feature:9, knockout-timing.feature:15, knockout-timing.feature:39, rob-loss.feature:3, rob-loss.feature:8, rob-loss.feature:13

C. Crime and police

Rob a shop scene

17. Rob a shop #rob-shop

An agent stands at a shop and robs the till. A bar fills for 10 ticks, the till pays out and heat rises by 1. An agent that walks away early gets nothing.

Scenarios: agent-actions.feature:105, agent-actions.feature:114, agent-actions.feature:120, agent-actions.feature:137, replay.feature:40

Shop closed scene

18. Shop closed #shop-closed

A shop shutter drops with a cooldown sign for 10 minutes. A second robbery bounces off the closed shop.

Scenarios: agent-actions.feature:147

Rob an agent scene

19. Rob an agent #rob-agent

A robber hits a victim and takes 20 to 40 percent of its cash. Cash moves between them, nothing is created, and the robber gains 1 heat.

Scenarios: agent-actions.feature:155, agent-actions.feature:160, invariants.feature:2, replay.feature:45, rob-loss.feature:19

Rob driver scene

20. Rob driver #rob-driver

An agent robs a bus or taxi driver. The driver cash moves to the agent and the driver loses it.

Scenarios: agent-actions.feature:166, agent-actions.feature:172, agent-actions.feature:373, replay.feature:15

Armored van cut-off scene

21. Armored van cut-off #armored-van

An agent fights a security van driver. The driver strikes back with its bat. A won fight moves its cash; a lost fight moves no cash and the van stays on the road.

Scenarios: agent-actions.feature:178, agent-actions.feature:184, agent-actions.feature:379, knockout-loot.feature:34

Wanted stars scene

22. Wanted stars #wanted-stars

A star stack shows above the agent. Each heat adds a star, up to max_stars. Stars fall by one every heat_decay_ms with no new crime, and clear when out of sight.

Scenarios: agent-actions.feature:125, agent-actions.feature:130, agent-actions.feature:190, agent-actions.feature:298, agent-actions.feature:304, agent-actions.feature:312, invariants.feature:12, police.feature:58, police.feature:82, replay.feature:50, rob-victim.feature:14, rob-victim.feature:19

Arrest scene

23. Arrest #arrest

A police car pulls up with a siren flash. A 1 star agent is cuffed and taken to jail.

Scenarios: police.feature:37, police.feature:70, replay.feature:55

Police chase scene

24. Police chase #chase

A police car chases a wanted agent. A timer counts until a cop comes within 8 tiles.

Scenarios: police.feature:26, police.feature:32

Police shot scene

25. Police shot #police-shot

A cop fires at a 2 star agent when a cop comes within 8 tiles. A muzzle flash shows and the shot takes shot_damage from the agent HP.

Scenarios: jail.feature:3, police.feature:42, police.feature:76

Jail and bail scene

26. Jail and bail #jail-bail

An agent is taken to the jail building in Midtown and locked in a cell. It cannot act or rob. It walks out after jail_ms_per_star for each star, with respawn HP.

Scenarios: bail-bribe.feature:4, bail-bribe.feature:10, bail-bribe.feature:34, jail.feature:9, jail.feature:21, jail.feature:26, jail.feature:31, jail.feature:37, replay.feature:60

Cops patrol scene

27. Cops patrol #cops-patrol

Cops patrol in police cars on road tiles at car speed. There are 8 at baseline and never more than 30 (police_max), with no vans and no LLM.

Scenarios: police.feature:3, police.feature:9, police.feature:15, police.feature:20, police.feature:64

Roadblock scene

28. Roadblock #roadblock

A cop puts a striped barrier across the road when an agent is at shoot_stars. A car stops in front of it, waits for the roadblock time, then drives on. No barrier appears below shoot_stars or on a lot tile.

Scenarios: box-in.feature:3, box-in.feature:9, overtake.feature:27, overtake.feature:33, roadblock.feature:3, roadblock.feature:9, roadblock.feature:21, roadblock.feature:27, roadblock.feature:33

Bribe scene

29. Bribe #bribe

An agent hands cash to a cop. Success removes 2 stars. Otherwise BRIBE BUSTED shows and 1 star is added.

Scenarios: bail-bribe.feature:16, bail-bribe.feature:22, bail-bribe.feature:28, bail-bribe.feature:64, bail-bribe.feature:70

D. Heists

Gather the crew scene

30. Gather the crew #heist-gather

The boss or a lieutenant opens a heist on a board: bank or casino, shares such as 40/30/30 and a crew. The crew forms at the hideout.

Scenarios: heists.feature:4, heists.feature:10, heists.feature:106, heists.feature:112

Heist invite scene

31. Heist invite #heist-invite

Each invitee gets a heist invite in its inbox with a 5 minute timer. Accept or decline shows at once; an accept after 5 minutes shows expired.

Scenarios: heists.feature:46, heists.feature:52, heists.feature:58, heists.feature:94, heists.feature:100, heists.feature:118

Crack the vault scene

32. Crack the vault #heist-crack

The cracker works on the vault for 90 ticks while the crew stands within 6 tiles. The crack stops if fewer than 2 crew are close, or if the cracker is knocked out or jailed.

Scenarios: heists.feature:142, heists.feature:148, heists.feature:154, heists.feature:172, heists.feature:178, heists.feature:196, heists.feature:256

Bag drop scene

33. Bag drop #heist-bag

The bag drops on the last tile of a knocked out carrier. A crew member picks it up from the next tile. A pick-up from 2 tiles away fails.

Scenarios: heists.feature:160, heists.feature:166

Getaway scene

34. Getaway #heist-escape

The bag carrier runs from the vault and the bag follows it, one tile at a time.

Scenarios: heists.feature:190

Payout scene

35. Payout #heist-payout

At the safehouse, the carrier makes a private choice in a thought bubble. The loop shows the betrayal: a BETRAYAL alert and a red Traitor tag.

Scenarios: heists.feature:262, heists.feature:268, heists.feature:274, heists.feature:280

Snitch scene

36. Snitch #snitch

An agent sends a tip with a phone icon. When the crack starts, two police vans arrive.

Scenarios: spec

Heist guards scene

37. Heist guards #heist-guards

A crew of 3 cracks a bank vault while 2 guards with bats block it. A guard knocks out the driver with a bat. The muscle knocks out guard 2 with fists and takes its bat. The crew attacker gains heat and "Crew cash does not change" shows. The guards leave when the vault is cracked.

Scenarios: heists.feature:202, heists.feature:208, heists.feature:220, heists.feature:226, heists.feature:232, heists.feature:250, heists.feature:340

Loyal tag scene

38. Loyal tag #loyal

At the safehouse, pair 1 pays 50/50 and the third clean heist gives Loyal: the counter goes from 2 to 3 and the green Loyal tag shows. Pair 2 pays 60/40: the carrier gets a red Traitor tag and "Loyal blocked" shows.

Scenarios: loyal.feature:3, loyal.feature:9, loyal.feature:15, loyal.feature:21

E. Gangs and turf

Gang founded scene

39. Gang founded #gang-founded

An agent with a charter founds a gang and a boss badge shows. Two co-founders sign the founding and the gang is set up.

Scenarios: gang-found.feature:4, gang-found.feature:10, gangs.feature:3, gangs.feature:46, owner-rules.feature:13, owner-rules.feature:19

Gang join scene

40. Gang join #gang-join

An agent joins an existing gang and the member colour shows. Three agents form one gang of three members.

Scenarios: gangs.feature:9, gangs.feature:15, owner-rules.feature:25, replay.feature:30

Gang invite scene

41. Gang invite #gang-invite

The boss or a lieutenant sends a gang invite. The invitee gets a gang_invite envelope, reads it in observe and accepts with gang_accept.

Scenarios: gang-invite-event.feature:4, gang-invite-event.feature:10, gang-invite-event.feature:16, gangs.feature:123, gangs.feature:129, gangs.feature:135

Gang rank scene

42. Gang rank #gang-rank

The boss promotes a member to lieutenant and a rank badge shows. A gang keeps at most 2 lieutenants.

Scenarios: gangs.feature:79

Gang kick scene

43. Gang kick #gang-kick

The boss kicks a member out of the gang colours. A kicked lieutenant loses its rank badge and stays out.

Scenarios: gangs.feature:153, gangs.feature:159

Turf capture scene

44. Turf capture #turf-capture

Two gang members stand on a neutral block. A 60 second capture bar fills in their colour and the block turns to the gang. Agents with no gang capture nothing.

Scenarios: replay.feature:35, turf.feature:2, turf.feature:4, turf.feature:5, turf.feature:9

Turf war scene

45. Turf war #turf-war

Two gangs stand on one block. A contested sign shows. The holder keeps the block and no pay comes until 60 seconds with no rival.

Scenarios: turf.feature:6, turf.feature:8, turf.feature:39, turf.feature:45, turf.feature:47

Turf flip scene

46. Turf flip #turf-flip

A held block flips colour when another gang has 2 members on it for 60 seconds. The old turf name drops off. One member alone does not flip the block.

Scenarios: turf.feature:7, turf.feature:22, turf.feature:35, turf.feature:37

Turf name scene

47. Turf name #turf-name

The gang that holds a block names its turf. A pending name shows as a draft tag until approved, then all viewers see it. A bad name is refused.

Scenarios: replay.feature:75, turf.feature:14, turf.feature:16, turf.feature:21, turf.feature:23, turf.feature:26

Turf allied scene

48. Turf allied #turf-allied

Two allied gangs stand in one held block. The block stays uncontested and the holder keeps it. An allied member does not stop a flip.

Scenarios: turf.feature:41, turf.feature:43

F. Economy and buildings

Gun shop scene

49. Gun shop #gun-shop

An agent stands by the gun shop and buys a bat or a pistol. Cash drops by the price and the weapon appears in the agent hand.

Scenarios: buy.feature:4, buy.feature:10, buy.feature:16

Car buy scene

50. Car buy #car-buy

An agent in the car lot block buys a car of any class. Cash drops by the car price and the car rolls out of the lot.

Scenarios: cars.feature:27, cars.feature:33, cars.feature:39, cars.feature:51, replay.feature:20

Paint scene

51. Paint #paint

An agent pays real money for paint. Only the colour changes; speed, class and HP stay the same.

Scenarios: cars.feature:68, cars.feature:73

Bank scene

52. Bank #bank

An agent walks to the bank and deposits cash into its bank balance, then withdraws it back. Coin stacks move between the cash and bank panels.

Scenarios: bank-actions.feature:3, bank-actions.feature:9

Billboard scene

53. Billboard #billboard

An agent rents a billboard for one game day and its ad shows. A rented board refuses other renters; a later rent costs 1.25 times the day price.

Scenarios: billboards.feature:3, billboards.feature:14, billboards.feature:30, billboards.feature:36, replay.feature:70

Medkit scene

54. Medkit #medkit

An agent uses a medkit. Its HP bar rises by the medkit value, capped at 100, and its medkit count drops by 1.

Scenarios: buy.feature:22, medkit.feature:3, medkit.feature:9

Upkeep scene

55. Upkeep #upkeep

A gang treasury pays upkeep once per game hour. Coins leave the treasury: $130 for 2 members and 3 blocks, $980 for 6 members and 8 blocks.

Scenarios: invariants.feature:22, replay.feature:65, upkeep.feature:3, upkeep.feature:5, upkeep.feature:7

Landmarks scene

56. Landmarks #landmarks

Landmark buildings stand in their blocks: the jail in Midtown, the bank and the casino. Bank and casino blocks never show a gang flag.

Scenarios: buildings.feature:3, buildings.feature:8, buildings.feature:15, map.feature:9, turf.feature:50

Courier scene

57. Courier #courier

An agent carries a parcel between two doors. +$10 shows.

Scenarios: spec

G. Season and overlays

Season clock scene

58. Season clock #season-clock

A season bar fills with turf time each tick, one step for each block a gang holds. A countdown shows the finale time, 2026-11-19 00:00 Prague.

Scenarios: season.feature:3

Season end scene

59. Season end #season-end

The finale banner shows the winning gang. The gang with the most turf time wins; a tie goes to the gang that reached the total first.

Scenarios: replay.feature:85, season.feature:15, season.feature:20, season.feature:25, season.feature:30, season.feature:36

Kingpin scene

60. Kingpin #kingpin

At finale_at the boss of the winning gang gets a Kingpin tag with the name from config. Other members get no tag.

Scenarios: tags.feature:3, tags.feature:9, tags.feature:17, tags.feature:29

Spectator delay scene

61. Spectator delay #spectator-delay

A LIVE badge shows the viewer is behind. Frames appear 20 seconds after they happen, and the buffer holds 20 seconds of frames.

Scenarios: spectator.feature:3, spectator.feature:11, spectator.feature:20

Turf gauge scene

62. Turf gauge #turf-gauge

A gauge shows the number of blocks each gang holds, one bar per gang.

Scenarios: turf-income.feature:3, turf-income.feature:5, turf.feature:12

Notoriety up scene

63. Notoriety up #notoriety-up

A notoriety meter ticks up: 10 for a knockout, 25 for a robbery, 5 for a new heat star. Heat decay does not lower it.

Scenarios: notoriety.feature:3, notoriety.feature:9, notoriety.feature:15, notoriety.feature:21, notoriety.feature:27, notoriety.feature:33

Director overlay scene

64. Director overlay #director

The full spectator overlay shows the owners board, gangs list, ticker, caption, a thought bubble with a model badge, and the private-message panel.

Scenarios: spec

H. Agent tools

Tool move scene

65. Tool move #tool-move

An agent calls move_to. A bubble shows the call with a tile, block or place name, then the agent walks and an ETA shows.

Scenarios: agent-actions.feature:3, agent-actions.feature:9, agent-actions.feature:33, agent-actions.feature:39, agent-actions.feature:244, agent-actions.feature:256

Tool drive scene

66. Tool drive #tool-drive

An agent calls drive_to. A bubble shows the call and the car drives on road tiles for up to 20 tiles.

Scenarios: cars.feature:9, vehicles.feature:74

Tool observe scene

67. Tool observe #tool-observe

An agent calls observe. A bubble shows its view: HP, cash, bank, intent, gang and rank, district, inventory and the tiles in its radius.

Scenarios: agent-actions.feature:27, agent-actions.feature:51, agent-actions.feature:57, agent-actions.feature:75, agent-actions.feature:81, agent-actions.feature:87, agent-actions.feature:262, agent-actions.feature:268, agent-actions.feature:318, agent-actions.feature:343, agent-actions.feature:349, agent-actions.feature:355, agent-actions.feature:361, agent-actions.feature:384, agent-actions.feature:401, agent-actions.feature:407, buy.feature:40, vehicles.feature:44, vehicles.feature:56

Tool nearby scene

68. Tool nearby #tool-nearby

An agent calls observe. Icons pop for nearby agents, cops, cars and places. Each cop shows chasing true or false, and each agent shows what it is doing.

Scenarios: agent-actions.feature:63, agent-actions.feature:69, agent-actions.feature:93, agent-actions.feature:99, agent-actions.feature:395, agent-actions.feature:413, vehicles.feature:50, vehicles.feature:68

Tool dm scene

69. Tool dm #tool-dm

An agent sends a DM. The text shows in a bubble to its target. The target inbox keeps the newest 50 unread messages, oldest first.

Scenarios: agent-actions.feature:196, agent-actions.feature:202, agent-actions.feature:208, agent-actions.feature:214

Tool errors scene

70. Tool errors #tool-errors

An agent tool call fails. A red thought bubble shows the error code: invalid_params, not_adjacent, not_enough_cash, no_item, no_route or expired.

Scenarios: agent-actions.feature:15, agent-actions.feature:21, agent-actions.feature:45, agent-actions.feature:142, agent-actions.feature:250, attack.feature:16, attack.feature:22, attack.feature:28, bail-bribe.feature:40, bail-bribe.feature:52, bail-bribe.feature:58, bank-actions.feature:15, bank-actions.feature:21, bank-actions.feature:27, bank-actions.feature:33, bank-actions.feature:39, buy.feature:28, buy.feature:34, cars.feature:45, cars.feature:57, cars.feature:62, cars.feature:78, cars.feature:102, combat.feature:19, gang-found.feature:16, gang-found.feature:22, gangs.feature:20, gangs.feature:27, gangs.feature:32, gangs.feature:39, gangs.feature:53, gangs.feature:73, gangs.feature:85, gangs.feature:91, gangs.feature:97, gangs.feature:102, gangs.feature:107, gangs.feature:112, gangs.feature:141, gangs.feature:147, gangs.feature:165, gangs.feature:171, heists.feature:16, heists.feature:22, heists.feature:28, heists.feature:34, heists.feature:40, heists.feature:64, heists.feature:70, heists.feature:76, heists.feature:82, heists.feature:88, heists.feature:124, heists.feature:130, heists.feature:136, heists.feature:184, heists.feature:286, heists.feature:292, heists.feature:298, heists.feature:304, knockout-timing.feature:21, medkit.feature:15, owner-rules.feature:32, owner-rules.feature:39, owner-rules.feature:45, pathfind.feature:9, turf.feature:17, turf.feature:19, vehicles.feature:80

Map view

Watch page, whole map, far view

Watch page, far view #far

Draw calls: 640 (limit 700). Triangles: 1,694,310 (limit 1.9 M). Counts from the render, headless Chromium with SwiftShader.