diff --git a/README.md b/README.md index 012b897..5d5ba16 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,7 @@ The build runs all three guards before it writes anything: ``` -check-rules: OK — 87 rules, 19 files scanned, 3 aliases + 41 constant sets checked, 275 formulas verified +check-rules: OK — 87 rules, 20 files scanned, 3 aliases + 41 constant sets checked, 275 formulas verified check-kits: OK — 25 roles, 10 trades, 218 catalogue items, every kit key resolves, every posting can use what it carries, every loadout distinct check-lang: OK — en.json, 927 keys, no leaf/branch collisions check-behaviour: OK — 42 behavioural tests diff --git a/art/scenes/la_01_hall.webp b/art/scenes/la_01_hall.webp new file mode 100644 index 0000000..dc45668 Binary files /dev/null and b/art/scenes/la_01_hall.webp differ diff --git a/art/scenes/la_03_corridor.webp b/art/scenes/la_03_corridor.webp new file mode 100644 index 0000000..58521c3 Binary files /dev/null and b/art/scenes/la_03_corridor.webp differ diff --git a/art/scenes/la_04_nursery.webp b/art/scenes/la_04_nursery.webp new file mode 100644 index 0000000..71206c7 Binary files /dev/null and b/art/scenes/la_04_nursery.webp differ diff --git a/art/scenes/la_05_glass.webp b/art/scenes/la_05_glass.webp new file mode 100644 index 0000000..c8c56ad Binary files /dev/null and b/art/scenes/la_05_glass.webp differ diff --git a/art/scenes/la_06_green.webp b/art/scenes/la_06_green.webp new file mode 100644 index 0000000..c1adbf1 Binary files /dev/null and b/art/scenes/la_06_green.webp differ diff --git a/art/scenes/la_07_stairs.webp b/art/scenes/la_07_stairs.webp new file mode 100644 index 0000000..edd1591 Binary files /dev/null and b/art/scenes/la_07_stairs.webp differ diff --git a/art/scenes/la_08_carpark.webp b/art/scenes/la_08_carpark.webp new file mode 100644 index 0000000..c74801c Binary files /dev/null and b/art/scenes/la_08_carpark.webp differ diff --git a/docs/scenarios/LAST_ADMISSION.md b/docs/scenarios/LAST_ADMISSION.md new file mode 100644 index 0000000..ad362b8 --- /dev/null +++ b/docs/scenarios/LAST_ADMISSION.md @@ -0,0 +1,466 @@ +# Prologue — The Custodians: LAST ADMISSION + +> *Twelve thousand people paid to be told this house was haunted. It was listening.* + +--- + +## GM ESSENTIALS + +- **System:** d100 roll-under. Under a fifth of the skill is a **special**, under a + twentieth a **critical**. 96–99 always fail. 00 fumbles. Everyone has 1% at anything. +- **Mechanics inline:** `[CUS: Skill — what it gets you]` +- **Two hours.** One house. Four names on a wall. Three of them can be hit. +- **No Coherence is lost.** They do not know what they are looking at yet. The word is + not said until the last scene. +- **Safety:** X-card or open door, stated in 30 seconds at seating. +- **Runs with the six:** Pollard, Ashcroft, Braithwaite, Renshaw, Sharrock, Ferriby — + their **"(before)"** sheets, the civilian ones. Works at 4; drop Ashcroft then Ferriby. + +--- + +## Overview + +- **Setting:** Culland Hall, four miles outside Nettlefold. The last Saturday in October, + 20:40 to about 23:00. +- **Tone:** A cheap scare attraction, and then the real thing standing in the queue with + everybody else. +- **Runtime:** 2 hours. No break. +- **Content warnings:** jump scares and staged violence; a real death in a fire (1963, + off-screen, discussed); a child character who is not a child; one dead body; brief + fighting; strobe and fog effects described. + +### Design intent + +1. **One building, one truth, one decision.** Deliberately simpler than OPEN DAY: no + fixed timetable to narrate, no unresolved list, and the players can hit things. +2. **The mystery is "which of these is an actor".** That is the whole investigation and + it explains itself the moment they walk in. +3. **A fight is available and never required.** The three can be stopped by hurting them + or by breaking their script. Both work. The script is faster. +4. **The ending is a decision with a price on both sides**, not a die roll. +5. **They finish attached to the department** because they see it work, not because + somebody explains it to them afterwards. + +--- + +## Session Timing + +| Section | Time | Cumulative | Checkpoint | +|---|---|---|---| +| Seating + open | ~10 min | 0:10 | everyone knows why they are at the Hall | +| Act One — Last Admission | ~30 min | 0:40 | they have been through the attraction and something was wrong in it | +| Act Two — Who's Still In There | ~45 min | 1:25 | the three are loose, one PC has been hurt or nearly, the fourth name is found | +| Act Three — The Fourth Name | ~25 min | 1:50 | the panel comes down, or it does not | +| Close — Last Admission | ~10 min | 2:00 | the cards are handed out | + +**Hard rule: at 1:25, go to Act Three.** + +--- + +## Plot Summary (GM truth — one page, players never see it) + +Culland Hall has been empty since 1998. This autumn a company called Blackwick +Attractions leased it for six weeks and turned it into **THE CULLAND HAUNTING** — timed +entry, twelve people every ten minutes, eighteen actors, fog, a soundtrack, and a story +invented in an afternoon by a marketing agency. + +The agency invented three ghosts, wrote them a page of backstory each, printed them on +the tickets, the wall panel, the website and the actors' call sheets, and had eighteen +people perform them forty times a night for six weeks to **twelve thousand paying +visitors who agreed to believe them**, briefly, on purpose, as the price of a good time. + +**Reality keeps a record of what belongs where.** It is a good record, and it can be made +to get it wrong by something patient and stupid saying the same wrong thing for a very +long time — or by something loud and clever saying it twelve thousand times in six weeks. +Tonight is the last night of the run. The house now contains what the panel says it +contains. + +**The three are not ghosts. They are entries.** They have exactly as much inside them as +was written down, which is a page each, and they do the page. They are cold, they are +solid, and they can be hurt. + +**And there is a fourth name on the panel.** The agency's copywriter needed a fourth for +the layout and took one off a photograph of a memorial in Nettlefold parish church: +**EDITH CRANE, 1941–1963**. Edith Crane was a real housemaid who died in a real fire in +the east wing in 1963, and nobody wrote her a page, because nobody had to. She has been +named twelve thousand times alongside three inventions, on a poster, for money. + +She is not following a script. She wants her name off the wall. + +**Tonight**, at about 21:10, an actor named **Josh Pardoe** — who plays the gardener — +did not come out of the east corridor. What came out finished his shift. + +### Timeline + +| When | What | +|---|---| +| 1963 | Fire in the east wing. Edith Crane, housemaid, 22, dies. | +| 1998 | The Hall closes. | +| September | Blackwick leases it. The panel goes up. | +| Six weeks | Forty performances a night. Twelve thousand visitors. | +| **21:10 tonight** | Josh Pardoe does not come out of the east corridor. | +| **21:40** | The players' timed entry. | +| **~22:00** | The last group of the run goes in. After that the doors are locked and the house is full. | + +### Revelations (7, and that is all) + +| # | Revelation | +|---|---| +| R1 | Some of the performers are not performing | +| R2 | The three do exactly what their printed backstory says and nothing else | +| R3 | An actor is missing, and the thing in his costume is not him | +| R4 | Breaking the script — panel, tape, call sheets — stops them | +| R5 | There are **four** names on the wall panel and only **three** on the call sheet | +| R6 | Edith Crane was a real person who really died here | +| R7 | Somebody official is already in the building and is not surprised by any of it | + +--- + +## Player Experience + +You paid eighteen quid, or you work here, or you are in the cast. It is the last night of +a cheap haunted-house attraction in a big empty hall, with fog and a soundtrack and a +teenager in a nurse's costume who says the same line to every group. Then the nurse says +it in the wrong room, and she says it to you by name, and she is cold to the touch. There +are three of them on the poster and four names on the wall, and one of those names +belonged to somebody who actually died in this building, and she has been listening to +twelve thousand people say it wrong. + +--- + +## The Six, and why they are at Culland Hall + +| PC | Why | +|---|---| +| **Kate Renshaw** — actor | **She is in the show.** Third-billed. She plays Sister Enderby, forty times a night, six weeks. She knows every line of the script that is now walking about. | +| **Danny Sharrock** — site foreman | He built the sets. He is here to start striking them at eleven, because the lease ends Sunday. | +| **Colin Ferriby** — infrastructure engineer | He wired the show — fog, lights, sound, the radios. He is in the control room with a laptop and a headset. | +| **Gareth Pollard** — custody sergeant | Off duty, on the door as paid security, because the money is good and it is one weekend. | +| **Neil Braithwaite** — histopathologist | Dragged along by colleagues who thought it would be funny. It is not funny. | +| **Dominic Ashcroft** — research physicist | Came with a group from the university to laugh at it, and has been quietly unsettled since the car park. | + +**Nothing essential lives on one PC.** Renshaw's script knowledge, Ferriby's control room +and Sharrock's set plans each shortcut a different part of the middle. Any one of them is +enough; none is required. + +--- + +## Act One — Last Admission *(~30 minutes)* + +> **Goal:** let them enjoy a cheap haunted house for ten minutes, then put one wrong thing +> in it and let them argue about whether it was wrong. + +### Opening (read aloud) + +> A big cold house with a marquee bolted to the front of it, a smoke machine going in the +> porch, and a queue of about forty people in coats. Somebody's speaker is playing the +> same eleven seconds of organ over and over. A girl in a nurse's costume is taking +> selfies with a hen party. +> +> The board by the door says **LAST ADMISSION 22:00**. + +### The attraction — six rooms, ten minutes + +Run it fast and lightly. This is meant to be fun. One or two lines a room. + +| # | Room | What the show does | +|---|---|---| +| 1 | **The Entrance Hall** | A recorded voice welcomes you and names the three. Fog to knee height. | +| 2 | **The Ward** *(east corridor)* | Sister Enderby walks the corridor counting beds. She has one line. **Renshaw's room.** | +| 3 | **The Nursery** | Sammy, the boy in the wall, laughs and moves behind the panelling. A hand comes out of a hole at ankle height. | +| 4 | **The Glasshouse** | Old Marrow with the shears. He chases you eleven feet and stops at a taped line on the floor. | +| 5 | **The Long Gallery** | Strobe, screaming, a mirror gag. Nothing in it at all. | +| 6 | **The Ballroom** | Everything goes dark and quiet, then the lights come up on the fire exit and a girl thanks you for coming. | + +### The one wrong thing + +Pick **one** and make it the only strange beat in Act One: + +- **Sister Enderby does her line in room 5.** She is not scheduled in room 5. Room 5 has + no cast. *(If Renshaw is dealt, use this one — she knows the running order.)* +- **Old Marrow does not stop at the tape.** He follows the group to the door of the next + room, which is not in the routine, and stands there. +- **Sammy's hand is warm and holds on**, and the hole at ankle height is nine inches + across and there is no room behind that wall. + +Let the table talk themselves out of it. That is the correct outcome for Act One. Somebody +will say *"that'll be the actor messing about"*, and they will be right, once. + +### Clue trail — Act One + +| # | Clue | Where | How | Type | +|---|---|---|---|---| +| 1 | The wall panel by the ticket desk lists **four** names | Entrance hall | **Automatic** to anyone who reads it — it is a poster, it is at eye height | Essential | +| 2 | The call sheet on the green-room door lists **three** | Green room / clipboard | **Automatic** to Renshaw or anyone who goes backstage | Essential | +| 3 | Old Marrow's costume has no radio pack | Anywhere he appears | `[CUS: Spot]` — every performer wears one and Ferriby issued them | Optional | +| 4 | Josh Pardoe has missed two comms checks | Control room | **Automatic** to Ferriby; otherwise the floor manager says it out loud | Essential | + +**Fallbacks.** Clue 1: the same four names are on the ticket in their hand. Clue 2: Beata +Nowak is standing at the green-room door shouting for Josh. Clue 4: the floor manager +walks past saying *"has anybody seen Pardoe?"* — she does this every ten minutes until +somebody answers her. + +### Pacing note + +At 0:40, whatever they have worked out: + +> **Fast-track:** the lights on the whole east side go out, the soundtrack keeps playing, +> and Beata Nowak comes through the crowd asking for anyone with first aid. + +--- + +## Act Two — Who's Still In There *(~45 minutes)* + +> **Goal:** the show stops, the three do not, and the players find out what a script is +> for. This is where the action lives. + +### The situation + +The public are being walked out through the marquee — it takes twenty minutes and it is +not orderly. Roughly **thirty people are still inside**: cast in costume, crew, a hen +party who went the wrong way, and three things that are not any of those. + +**Josh Pardoe is dead.** He is in the east corridor, behind the false wall, and he has +been for half an hour. He is not marked. `[CUS: Medicine or First Aid — nothing killed +him that leaves a sign; Braithwaite will say cold, and will not be able to say why]` + +### The three + +Each does its printed page and nothing else. Read the page aloud when the players first +get a good look — the page is on the wall, on the ticket and in the programme, so this +is not a secret. + +#### Sister Enderby + +*"She walked the ward at night and counted the beds, and if the count was wrong she made +it right."* + +- **Does:** counts people. Out loud. In a group of six she will say *six*, and then she + will say *five*, and then she will go and make it true. +- **Fight:** cold, strong, ignores pain. **HP 13, armour 0, Brawl 55%, 1d6 damage.** She + does not defend herself. She counts while you hit her. +- **Script break:** she stops the moment the count is right. Put a person back in the + room and she is finished with it. *This is the cheapest kill in the scenario and the + table should be allowed to find it.* + +#### Sammy, the boy in the wall + +*"He hid where nobody could reach him, and he is still hiding, and he wants someone to +come in and hide with him."* + +- **Does:** laughs, moves inside the walls, and takes hold of ankles. He does not hurt + anybody. He pulls, and he is very strong, and the hole is nine inches across. +- **Fight:** you cannot hit him. He is in the wall. **Athletics or Brawl vs STR 17 to get + a leg back**, or somebody else pulls with you for an automatic success. +- **Script break:** he is hiding, so he stops when he is *found*. Say his name and open + the panel and he is not there any more. + +#### Old Marrow + +*"He kept the grounds for forty years and never once came in the house, and he is not +coming in now, but he will see you off it."* + +- **Does:** carries the shears, moves at a walk, and will not enter the building. He is + the reason nobody gets to the car park. +- **Fight:** **HP 16, armour 1 (coat), shears 1d8+1, Brawl/Melee 60%.** He is the actual + fight in this scenario. He is slow, he never runs, and he is between them and the way + out. +- **Script break:** *he will not come in the house.* Going inside is a complete answer + and it costs nothing. Reward it. He waits on the lawn. + +### The set-piece — the run to the marquee *(the combat, if they want one)* + +Someone has to get thirty people across ninety feet of lawn past Old Marrow. + +- **Three ways to run it:** fight him, distract him (he follows anyone off the grass), or + go back inside and out through the kitchens — Sharrock built the sets and knows there + is a door there; the plans are pinned in the green room for anyone else. +- **Rounds:** four is plenty. He closes at a walk, one attack a round, and he goes for + whoever is furthest from the house. +- **If it goes badly:** he does not pursue anyone indoors and he does not finish anybody + off. He sees them off the grass. That is his whole page. +- **Idle players:** hand them the hen party — six frightened people who need telling what + to do, and who will do it. + +### Clue trail — Act Two + +| # | Clue | Where | How | Type | +|---|---|---|---|---| +| 5 | Each of the three does exactly what the panel says and nothing else | Anywhere | **Automatic** by the second encounter | Essential | +| 6 | The fourth name has no page — one line, two dates, nothing else | Wall panel | **Automatic** to anyone who goes back and reads it properly | Essential | +| 7 | Josh Pardoe's body is behind the false wall in the east corridor | East corridor | **Automatic** if anyone searches; otherwise Beata finds him at the twenty-minute mark and screams | Essential | +| 8 | EDITH CRANE, 1941–1963 is on a memorial in Nettlefold parish church | Phone, or the local-history board in the entrance hall | `[CUS: Research or Computer Use]`, or automatic to Braithwaite, who has been past that memorial a hundred times | Essential | +| 9 | The 1963 fire was in the east wing, and one person died in it | Local-history board, ticket office | `[CUS: Knowledge]` or asking any local | Optional | + +**Fallbacks.** Clue 6: Renshaw says it herself — *"there's only three of us"*. Clue 8: +Mrs Ferrand says it aloud in Act Three if nobody has got there. + +### The woman on the stairs + +At about 1:10, wherever they are, they see her: a young woman in a housemaid's uniform +of the wrong period for the attraction, standing halfway up the main stairs, doing +nothing at all. + +- She is not cold. She is not fast. She does not have a page. +- **She will not speak until she is asked her name.** Then she says it, and she waits. +- Anyone who tries to hurt her will find they cannot make themselves do it. *No roll + resolves this. Say it plainly and move on.* + +--- + +## Act Three — The Fourth Name *(~25 minutes)* + +> **Goal:** one decision, priced on both sides. No new information. + +### Mrs Ivy Ferrand + +*A woman who came in on a nine o'clock ticket, alone, and has not been surprised by +anything since.* + +- **Physical:** fifties, a raincoat, a small hard case she has not opened. +- **She has been in the building for two hours.** She is not here to rescue anybody. She + is here to take a statement and decide what the department does on Monday. +- **What she knows and will say:** what the three are and why. That they will stop. +- **What she will not say:** who she works for. *"I'm not able to tell you that tonight."* + Not *"I don't know"* — she is careful about the difference. +- **Key line:** *"Three of them were made up in an afternoon. One of them was a girl of + twenty-two who worked here. Which of those do you think is angry?"* + +### The situation + +Everyone who is getting out is out. Vic Tunnicliffe wants his last night finished and his +set struck. The panel is screwed to the wall of the entrance hall, four names, and Edith +Crane is standing on the stairs where anyone can see her. + +**Taking the name down ends it.** Ferrand says so. She also says the department will do +it on Monday whatever happens tonight, and that Monday is two days away, and that there +are two more performances between now and then, and that the doors open at seven. + +### The choices + +| Choice | Cost | +|---|---| +| **Take the panel down tonight** | The run ends. Blackwick's licence and bond go with it, Tunnicliffe is finished, forty people including three PCs lose the last of the money, and the town's one profitable weekend of the year is cancelled. The three stop within the hour. Edith goes. | +| **Leave it until Monday** | Two more performances, twelve people every ten minutes, with the three still running and Josh Pardoe still dead. Ferrand will not stop them; she will write it down. | +| **Change the name** *(the table will invent this)* | Unscrew the letters, make the fourth name a fiction like the other three. **It works.** It also does to Edith exactly what was done to her in September, on purpose this time, by people who knew. Ferrand allows it and writes down who suggested it. | +| **Ask her what she wants** | Nobody has. She wants her name off a poster and somebody to write down that she was here. That is all, and it takes four minutes, and it is the best ending. | + +### If Tunnicliffe fights for it + +He will. He is not a villain — he is a man with a bank loan, forty staff and one dead +employee, and he is holding a screwdriver he has not put down since ten o'clock. He +does not threaten anybody. He asks them not to. `[CUS: Persuade, Insight or Status — +he can be talked round, and the roll is a real one]` + +### If someone gets violent + +Nothing in the last twenty minutes needs hitting. If they hit Tunnicliffe, Pollard is +paid security and off-duty police and this becomes his scene, and Ferrand watches to see +what he does. She is not judging. She is recruiting. + +--- + +## Close — Last Admission *(~10 minutes)* + +Whatever they chose, the ending is the same shape: blue lights in the car park, a +statement each, and a woman in a raincoat going round the six of them one at a time with +a card in her hand. + +### Read aloud + +> The marquee is coming down at four in the morning because nobody can face leaving it up. +> Somebody has put a tea urn on the tailgate of a van. The board by the door still says +> **LAST ADMISSION 22:00** and somebody has turned it round to face the wall. +> +> The woman in the raincoat has spoken to each of you separately and said nearly the same +> thing to all of you, which is that you wrote down or said out loud one true thing +> tonight that nobody wanted to hear, and that this is rarer than you would think. +> +> There is a card in your coat pocket with a telephone number on it and no name. + +### What she says to each + +One line each, spoken privately, in front of the table. **Keep it to one line.** + +| PC | Her line | +|---|---| +| **Kate Renshaw** | *"You knew it was wrong because you knew the running order. Nobody else in that building was listening that closely to a script they were sick of."* | +| **Danny Sharrock** | *"You got thirty people out through a door that is not on the fire plan. Somebody has to know where the doors are."* | +| **Colin Ferriby** | *"Two missed comms checks and you went to look. Everybody else assumed he'd gone for a cigarette."* | +| **Gareth Pollard** | *"You wrote the times down. On the back of a ticket, in the dark, while it was happening."* | +| **Neil Braithwaite** | *"You said cold, and then you said you didn't know why, and you did not fill the gap in with something that sounded better."* | +| **Dominic Ashcroft** | *"You were frightened from the car park onwards and you went in anyway and you kept saying so. Do you know how useful that is?"* | + +### The one true thing + +If there is time — and there usually is, because this ends early — she says it: + +> *"Reality keeps a record of what belongs where. It is a very good record. It can be made +> to get it wrong by anything patient enough — or by twelve thousand people agreeing to be +> lied to, for six weeks, for eighteen pounds each. That is all a haunting is. Somebody +> wrote it down too many times."* + +**Then the word Coherence, once, and then the card.** + +--- + +## NPC Roster (GM quick sheet) + +| NPC | Essence | Wants | Key line | +|---|---|---|---| +| **Beata Nowak** | Floor manager holding the whole night together on a radio | Josh found, the house cleared, and to be sick afterwards | *"Has anybody seen Pardoe?"* | +| **Vic Tunnicliffe** | Operator with a bank loan and a dead employee | Two more performances | *"Monday. Just give me Monday."* | +| **Josh Pardoe** | The gardener. Twenty-four. Dead since 21:10 | — | — | +| **Sister Enderby** | An invention that counts | the count to be right | *"…five."* | +| **Sammy** | An invention that hides | somebody to hide with | *(laughing, in the wall)* | +| **Old Marrow** | An invention that will not come indoors | you, off his grass | *(nothing; he walks)* | +| **Edith Crane** | A real housemaid, 22, dead here in 1963 | her name off a poster | *"Edith Crane."* | +| **Mrs Ivy Ferrand** | Recruiting officer on a nine o'clock ticket | to see what you do | *"Which of those do you think is angry?"* | + +--- + +## Artwork + +**Style line:** flat editorial vector, deep navy and pale yellow with warm off-white, +1970s British public-information poster, `--style raw --ar 3:2 --v 6`. + +| ID | Description | +|---|---| +| LA-ART-01 | Culland Hall at night with the marquee and the queue | +| ~~LA-ART-02~~ | *Cut.* Two generations both produced three frames instead of four, and a picture that contradicts the count is worse than none. The panel is a handout — show it, do not describe it. | +| LA-ART-03 | The east corridor: fog, hospital beds, red light | +| LA-ART-04 | The nursery: torn panelling and a hole at ankle height | +| LA-ART-05 | The glasshouse: a figure with shears among dead vines | +| LA-ART-06 | The green room: mirrors, costumes, a clipboard on the door — used on the Act One page, where the call sheet is | +| LA-ART-07 | Edith Crane on the stairs | +| LA-ART-08 | The car park afterwards: a van, a tea urn, blue lights | + +--- + +## GM Notes + +- **Act One is a comedy.** Play the attraction as cheap and likeable and let the players + take the mickey out of it. The scenario only works if they were having a nice time. +- **The three are not clever.** Never have them plan, hide their nature, or exploit + anything. They have a page each. Anything not on the page, they do not do. +- **Say the page out loud.** It is a poster in the entrance hall. Withholding it makes the + scenario a puzzle; giving it away makes it a game about scripts, which is the good one. +- **Let them break the script.** Putting a person back in the room, saying Sammy's name, + or simply going indoors are all complete answers, and a table that finds one should get + it for free and feel clever. +- **Edith is not a monster.** She never attacks, never speaks first, and cannot be hurt. + She is the only thing in the building that is owed something. +- **Cut first:** the Long Gallery, then the glasshouse fight if the clock has gone — + Marrow can simply be standing between them and the cars, and going round him is a + conversation. +- **If they solve it in ninety minutes**, run the close long: let each of them have their + private line as a proper scene. + +--- + +## Which prologue to run + +**LAST ADMISSION** is the two-hour opener: one house, one decision, a fight available. +**OPEN DAY** is the longer, quieter one — 2h15, no combat, a fixed timetable — and it is +built for the ten-agent roster rather than these six. Run either. They are alternative +first nights and nothing in the campaign depends on which. diff --git a/packs/armour/LOG b/packs/armour/LOG index ab8f4dd..1a1ad09 100644 --- a/packs/armour/LOG +++ b/packs/armour/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.088570 171de3000 Recovering log #3 -2026/08/12-17:19:00.088713 171de3000 Level-0 table #5: started -2026/08/12-17:19:00.088860 171de3000 Level-0 table #5: 4591 bytes OK -2026/08/12-17:19:00.089133 171de3000 Delete type=0 #3 -2026/08/12-17:19:00.089168 171de3000 Delete type=3 #2 +2026/08/12-17:49:53.368182 1740df000 Recovering log #3 +2026/08/12-17:49:53.368621 1740df000 Level-0 table #5: started +2026/08/12-17:49:53.368768 1740df000 Level-0 table #5: 4591 bytes OK +2026/08/12-17:49:53.369101 1740df000 Delete type=0 #3 +2026/08/12-17:49:53.369149 1740df000 Delete type=3 #2 diff --git a/packs/armour/LOG.old b/packs/armour/LOG.old index ae47c90..b34de91 100644 --- a/packs/armour/LOG.old +++ b/packs/armour/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.603922 172807000 Delete type=3 #1 +2026/08/12-17:49:38.068944 170d6f000 Delete type=3 #1 diff --git a/packs/expedition/LOG b/packs/expedition/LOG index 836196b..d739dbf 100644 --- a/packs/expedition/LOG +++ b/packs/expedition/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.109401 172dfb000 Recovering log #3 -2026/08/12-17:19:00.109721 172dfb000 Level-0 table #5: started -2026/08/12-17:19:00.109829 172dfb000 Level-0 table #5: 4129 bytes OK -2026/08/12-17:19:00.110053 172dfb000 Delete type=0 #3 -2026/08/12-17:19:00.110082 172dfb000 Delete type=3 #2 +2026/08/12-17:49:53.391934 1750f7000 Recovering log #3 +2026/08/12-17:49:53.392050 1750f7000 Level-0 table #5: started +2026/08/12-17:49:53.392170 1750f7000 Level-0 table #5: 4129 bytes OK +2026/08/12-17:49:53.392389 1750f7000 Delete type=0 #3 +2026/08/12-17:49:53.392428 1750f7000 Delete type=3 #2 diff --git a/packs/expedition/LOG.old b/packs/expedition/LOG.old index 8ab8e5d..34670cb 100644 --- a/packs/expedition/LOG.old +++ b/packs/expedition/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.677543 173013000 Delete type=3 #1 +2026/08/12-17:49:38.136741 17157b000 Delete type=3 #1 diff --git a/packs/gear/LOG b/packs/gear/LOG index decccb8..0f44096 100644 --- a/packs/gear/LOG +++ b/packs/gear/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.089865 172dfb000 Recovering log #3 -2026/08/12-17:19:00.090418 172dfb000 Level-0 table #5: started -2026/08/12-17:19:00.090766 172dfb000 Level-0 table #5: 31614 bytes OK -2026/08/12-17:19:00.091075 172dfb000 Delete type=0 #3 -2026/08/12-17:19:00.091125 172dfb000 Delete type=3 #2 +2026/08/12-17:49:53.370014 1748eb000 Recovering log #3 +2026/08/12-17:49:53.370516 1748eb000 Level-0 table #5: started +2026/08/12-17:49:53.370852 1748eb000 Level-0 table #5: 31614 bytes OK +2026/08/12-17:49:53.371120 1748eb000 Delete type=0 #3 +2026/08/12-17:49:53.371155 1748eb000 Delete type=3 #2 diff --git a/packs/gear/LOG.old b/packs/gear/LOG.old index 0e1bfaf..55d3bae 100644 --- a/packs/gear/LOG.old +++ b/packs/gear/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.606186 172807000 Delete type=3 #1 +2026/08/12-17:49:38.070939 171d87000 Delete type=3 #1 diff --git a/packs/lastadmission/000005.ldb b/packs/lastadmission/000005.ldb new file mode 100644 index 0000000..527a85d Binary files /dev/null and b/packs/lastadmission/000005.ldb differ diff --git a/packs/lastadmission/000006.log b/packs/lastadmission/000006.log new file mode 100644 index 0000000..5530ffa Binary files /dev/null and b/packs/lastadmission/000006.log differ diff --git a/packs/lastadmission/CURRENT b/packs/lastadmission/CURRENT new file mode 100644 index 0000000..cacca75 --- /dev/null +++ b/packs/lastadmission/CURRENT @@ -0,0 +1 @@ +MANIFEST-000004 diff --git a/packs/lastadmission/LOG b/packs/lastadmission/LOG new file mode 100644 index 0000000..7860066 --- /dev/null +++ b/packs/lastadmission/LOG @@ -0,0 +1,5 @@ +2026/08/12-17:49:53.383707 1740df000 Recovering log #3 +2026/08/12-17:49:53.384445 1740df000 Level-0 table #5: started +2026/08/12-17:49:53.384803 1740df000 Level-0 table #5: 44041 bytes OK +2026/08/12-17:49:53.385114 1740df000 Delete type=0 #3 +2026/08/12-17:49:53.385152 1740df000 Delete type=3 #2 diff --git a/packs/lastadmission/LOG.old b/packs/lastadmission/LOG.old new file mode 100644 index 0000000..29226ae --- /dev/null +++ b/packs/lastadmission/LOG.old @@ -0,0 +1 @@ +2026/08/12-17:49:38.120600 170563000 Delete type=3 #1 diff --git a/packs/lastadmission/MANIFEST-000004 b/packs/lastadmission/MANIFEST-000004 new file mode 100644 index 0000000..453e9a7 Binary files /dev/null and b/packs/lastadmission/MANIFEST-000004 differ diff --git a/packs/npcs/LOG b/packs/npcs/LOG index a44db56..5f0ecf6 100644 --- a/packs/npcs/LOG +++ b/packs/npcs/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.074858 172dfb000 Recovering log #3 -2026/08/12-17:19:00.076687 172dfb000 Level-0 table #5: started -2026/08/12-17:19:00.078405 172dfb000 Level-0 table #5: 225945 bytes OK -2026/08/12-17:19:00.078758 172dfb000 Delete type=0 #3 -2026/08/12-17:19:00.078869 172dfb000 Delete type=3 #2 +2026/08/12-17:49:53.355183 1748eb000 Recovering log #3 +2026/08/12-17:49:53.357363 1748eb000 Level-0 table #5: started +2026/08/12-17:49:53.358793 1748eb000 Level-0 table #5: 225945 bytes OK +2026/08/12-17:49:53.359057 1748eb000 Delete type=0 #3 +2026/08/12-17:49:53.359096 1748eb000 Delete type=3 #2 diff --git a/packs/npcs/LOG.old b/packs/npcs/LOG.old index 8617b82..69b692b 100644 --- a/packs/npcs/LOG.old +++ b/packs/npcs/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.644950 173013000 Delete type=3 #1 +2026/08/12-17:49:38.104926 171d87000 Delete type=3 #1 diff --git a/packs/powers/LOG b/packs/powers/LOG index dc12104..b11bd8e 100644 --- a/packs/powers/LOG +++ b/packs/powers/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.085539 171de3000 Recovering log #3 -2026/08/12-17:19:00.085669 171de3000 Level-0 table #5: started -2026/08/12-17:19:00.085805 171de3000 Level-0 table #5: 3295 bytes OK -2026/08/12-17:19:00.086064 171de3000 Delete type=0 #3 -2026/08/12-17:19:00.086105 171de3000 Delete type=3 #2 +2026/08/12-17:49:53.364381 175903000 Recovering log #3 +2026/08/12-17:49:53.364910 175903000 Level-0 table #5: started +2026/08/12-17:49:53.365049 175903000 Level-0 table #5: 3295 bytes OK +2026/08/12-17:49:53.365394 175903000 Delete type=0 #3 +2026/08/12-17:49:53.365437 175903000 Delete type=3 #2 diff --git a/packs/powers/LOG.old b/packs/powers/LOG.old index d9fb2d2..c5eadc4 100644 --- a/packs/powers/LOG.old +++ b/packs/powers/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.670715 17381f000 Delete type=3 #1 +2026/08/12-17:49:38.131380 17157b000 Delete type=3 #1 diff --git a/packs/pregens/000008.log b/packs/pregens/000006.log similarity index 100% rename from packs/pregens/000008.log rename to packs/pregens/000006.log diff --git a/packs/pregens/CURRENT b/packs/pregens/CURRENT index 875cf23..cacca75 100644 --- a/packs/pregens/CURRENT +++ b/packs/pregens/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/pregens/LOG b/packs/pregens/LOG index 2540532..8c4274c 100644 --- a/packs/pregens/LOG +++ b/packs/pregens/LOG @@ -1,3 +1,5 @@ -2026/08/12-17:19:00.068863 171de3000 Recovering log #6 -2026/08/12-17:19:00.069245 171de3000 Delete type=0 #6 -2026/08/12-17:19:00.069278 171de3000 Delete type=3 #4 +2026/08/12-17:49:53.343466 1740df000 Recovering log #3 +2026/08/12-17:49:53.346354 1740df000 Level-0 table #5: started +2026/08/12-17:49:53.349680 1740df000 Level-0 table #5: 546705 bytes OK +2026/08/12-17:49:53.350185 1740df000 Delete type=0 #3 +2026/08/12-17:49:53.350240 1740df000 Delete type=3 #2 diff --git a/packs/pregens/LOG.old b/packs/pregens/LOG.old index a9c0409..6f758ad 100644 --- a/packs/pregens/LOG.old +++ b/packs/pregens/LOG.old @@ -1,5 +1 @@ -2026/08/12-17:18:41.342413 172e97000 Recovering log #3 -2026/08/12-17:18:41.345683 172e97000 Level-0 table #5: started -2026/08/12-17:18:41.349608 172e97000 Level-0 table #5: 546705 bytes OK -2026/08/12-17:18:41.349967 172e97000 Delete type=0 #3 -2026/08/12-17:18:41.350026 172e97000 Delete type=3 #2 +2026/08/12-17:49:38.090847 170563000 Delete type=3 #1 diff --git a/packs/pregens/MANIFEST-000004 b/packs/pregens/MANIFEST-000004 new file mode 100644 index 0000000..49b29a4 Binary files /dev/null and b/packs/pregens/MANIFEST-000004 differ diff --git a/packs/pregens/MANIFEST-000007 b/packs/pregens/MANIFEST-000007 deleted file mode 100644 index 63b2a92..0000000 Binary files a/packs/pregens/MANIFEST-000007 and /dev/null differ diff --git a/packs/primer/LOG b/packs/primer/LOG index 27e2cdf..fb65ede 100644 --- a/packs/primer/LOG +++ b/packs/primer/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.093726 172dfb000 Recovering log #3 -2026/08/12-17:19:00.094281 172dfb000 Level-0 table #5: started -2026/08/12-17:19:00.094522 172dfb000 Level-0 table #5: 21613 bytes OK -2026/08/12-17:19:00.094764 172dfb000 Delete type=0 #3 -2026/08/12-17:19:00.094800 172dfb000 Delete type=3 #2 +2026/08/12-17:49:53.373813 1750f7000 Recovering log #3 +2026/08/12-17:49:53.374272 1750f7000 Level-0 table #5: started +2026/08/12-17:49:53.374551 1750f7000 Level-0 table #5: 21613 bytes OK +2026/08/12-17:49:53.374779 1750f7000 Delete type=0 #3 +2026/08/12-17:49:53.374812 1750f7000 Delete type=3 #2 diff --git a/packs/primer/LOG.old b/packs/primer/LOG.old index 45ac03a..af34f23 100644 --- a/packs/primer/LOG.old +++ b/packs/primer/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.666982 172807000 Delete type=3 #1 +2026/08/12-17:49:38.128383 170563000 Delete type=3 #1 diff --git a/packs/prologue/LOG b/packs/prologue/LOG index 8fa5aa5..e099dca 100644 --- a/packs/prologue/LOG +++ b/packs/prologue/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.104140 171de3000 Recovering log #3 -2026/08/12-17:19:00.104725 171de3000 Level-0 table #5: started -2026/08/12-17:19:00.105236 171de3000 Level-0 table #5: 43953 bytes OK -2026/08/12-17:19:00.105498 171de3000 Delete type=0 #3 -2026/08/12-17:19:00.105544 171de3000 Delete type=3 #2 +2026/08/12-17:49:53.385969 1740df000 Recovering log #3 +2026/08/12-17:49:53.386885 1740df000 Level-0 table #5: started +2026/08/12-17:49:53.387263 1740df000 Level-0 table #5: 43953 bytes OK +2026/08/12-17:49:53.387509 1740df000 Delete type=0 #3 +2026/08/12-17:49:53.387539 1740df000 Delete type=3 #2 diff --git a/packs/prologue/LOG.old b/packs/prologue/LOG.old index cd8bd28..55c511a 100644 --- a/packs/prologue/LOG.old +++ b/packs/prologue/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.663164 17402b000 Delete type=3 #1 +2026/08/12-17:49:38.124895 171d87000 Delete type=3 #1 diff --git a/packs/rules/LOG b/packs/rules/LOG index 32be603..dc77208 100644 --- a/packs/rules/LOG +++ b/packs/rules/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.095716 173607000 Recovering log #3 -2026/08/12-17:19:00.096342 173607000 Level-0 table #5: started -2026/08/12-17:19:00.096667 173607000 Level-0 table #5: 33484 bytes OK -2026/08/12-17:19:00.096950 173607000 Delete type=0 #3 -2026/08/12-17:19:00.096997 173607000 Delete type=3 #2 +2026/08/12-17:49:53.375753 175903000 Recovering log #3 +2026/08/12-17:49:53.376385 175903000 Level-0 table #5: started +2026/08/12-17:49:53.376715 175903000 Level-0 table #5: 33484 bytes OK +2026/08/12-17:49:53.376959 175903000 Delete type=0 #3 +2026/08/12-17:49:53.376987 175903000 Delete type=3 #2 diff --git a/packs/rules/LOG.old b/packs/rules/LOG.old index faa0975..eeedb8d 100644 --- a/packs/rules/LOG.old +++ b/packs/rules/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.675786 17381f000 Delete type=3 #1 +2026/08/12-17:49:38.135361 17157b000 Delete type=3 #1 diff --git a/packs/skills/LOG b/packs/skills/LOG index ed7214b..4676a1a 100644 --- a/packs/skills/LOG +++ b/packs/skills/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.081802 173607000 Recovering log #3 -2026/08/12-17:19:00.082258 173607000 Level-0 table #5: started -2026/08/12-17:19:00.082491 173607000 Level-0 table #5: 7590 bytes OK -2026/08/12-17:19:00.082869 173607000 Delete type=0 #3 -2026/08/12-17:19:00.082938 173607000 Delete type=3 #2 +2026/08/12-17:49:53.361533 175903000 Recovering log #3 +2026/08/12-17:49:53.361695 175903000 Level-0 table #5: started +2026/08/12-17:49:53.361841 175903000 Level-0 table #5: 7590 bytes OK +2026/08/12-17:49:53.362062 175903000 Delete type=0 #3 +2026/08/12-17:49:53.362096 175903000 Delete type=3 #2 diff --git a/packs/skills/LOG.old b/packs/skills/LOG.old index f181cb2..51b565f 100644 --- a/packs/skills/LOG.old +++ b/packs/skills/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.596786 172807000 Delete type=3 #1 +2026/08/12-17:49:38.062885 171d87000 Delete type=3 #1 diff --git a/packs/slice/LOG b/packs/slice/LOG index 2254f56..8c276c0 100644 --- a/packs/slice/LOG +++ b/packs/slice/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.106260 171de3000 Recovering log #3 -2026/08/12-17:19:00.106423 171de3000 Level-0 table #5: started -2026/08/12-17:19:00.106676 171de3000 Level-0 table #5: 16902 bytes OK -2026/08/12-17:19:00.106920 171de3000 Delete type=0 #3 -2026/08/12-17:19:00.106958 171de3000 Delete type=3 #2 +2026/08/12-17:49:53.388330 1740df000 Recovering log #3 +2026/08/12-17:49:53.388940 1740df000 Level-0 table #5: started +2026/08/12-17:49:53.389166 1740df000 Level-0 table #5: 16902 bytes OK +2026/08/12-17:49:53.389390 1740df000 Delete type=0 #3 +2026/08/12-17:49:53.389423 1740df000 Delete type=3 #2 diff --git a/packs/slice/LOG.old b/packs/slice/LOG.old index a357ba7..d316f21 100644 --- a/packs/slice/LOG.old +++ b/packs/slice/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.668882 172807000 Delete type=3 #1 +2026/08/12-17:49:38.129923 17157b000 Delete type=3 #1 diff --git a/packs/starter/LOG b/packs/starter/LOG index 1e850a8..0f0d523 100644 --- a/packs/starter/LOG +++ b/packs/starter/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.099636 171de3000 Recovering log #3 -2026/08/12-17:19:00.100694 171de3000 Level-0 table #5: started -2026/08/12-17:19:00.101317 171de3000 Level-0 table #5: 82299 bytes OK -2026/08/12-17:19:00.101608 171de3000 Delete type=0 #3 -2026/08/12-17:19:00.101669 171de3000 Delete type=3 #2 +2026/08/12-17:49:53.379303 1740df000 Recovering log #3 +2026/08/12-17:49:53.380189 1740df000 Level-0 table #5: started +2026/08/12-17:49:53.380887 1740df000 Level-0 table #5: 82299 bytes OK +2026/08/12-17:49:53.381137 1740df000 Delete type=0 #3 +2026/08/12-17:49:53.381171 1740df000 Delete type=3 #2 diff --git a/packs/starter/LOG.old b/packs/starter/LOG.old index 767e435..88280c7 100644 --- a/packs/starter/LOG.old +++ b/packs/starter/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.656351 17381f000 Delete type=3 #1 +2026/08/12-17:49:38.115076 170563000 Delete type=3 #1 diff --git a/packs/tables/LOG b/packs/tables/LOG index 1f2c662..93eb909 100644 --- a/packs/tables/LOG +++ b/packs/tables/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.107991 1725ef000 Recovering log #3 -2026/08/12-17:19:00.108128 1725ef000 Level-0 table #5: started -2026/08/12-17:19:00.108248 1725ef000 Level-0 table #5: 3739 bytes OK -2026/08/12-17:19:00.108494 1725ef000 Delete type=0 #3 -2026/08/12-17:19:00.108528 1725ef000 Delete type=3 #2 +2026/08/12-17:49:53.390375 175903000 Recovering log #3 +2026/08/12-17:49:53.390930 175903000 Level-0 table #5: started +2026/08/12-17:49:53.391056 175903000 Level-0 table #5: 3739 bytes OK +2026/08/12-17:49:53.391269 175903000 Delete type=0 #3 +2026/08/12-17:49:53.391300 175903000 Delete type=3 #2 diff --git a/packs/tables/LOG.old b/packs/tables/LOG.old index 765649a..aabdd1c 100644 --- a/packs/tables/LOG.old +++ b/packs/tables/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.649334 172807000 Delete type=3 #1 +2026/08/12-17:49:38.109114 171d87000 Delete type=3 #1 diff --git a/packs/talents/LOG b/packs/talents/LOG index be18a4e..9e850ac 100644 --- a/packs/talents/LOG +++ b/packs/talents/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.083995 172dfb000 Recovering log #3 -2026/08/12-17:19:00.084129 172dfb000 Level-0 table #5: started -2026/08/12-17:19:00.084298 172dfb000 Level-0 table #5: 5770 bytes OK -2026/08/12-17:19:00.084575 172dfb000 Delete type=0 #3 -2026/08/12-17:19:00.084614 172dfb000 Delete type=3 #2 +2026/08/12-17:49:53.362963 1748eb000 Recovering log #3 +2026/08/12-17:49:53.363098 1748eb000 Level-0 table #5: started +2026/08/12-17:49:53.363267 1748eb000 Level-0 table #5: 5770 bytes OK +2026/08/12-17:49:53.363499 1748eb000 Delete type=0 #3 +2026/08/12-17:49:53.363537 1748eb000 Delete type=3 #2 diff --git a/packs/talents/LOG.old b/packs/talents/LOG.old index d52b153..e27c2b4 100644 --- a/packs/talents/LOG.old +++ b/packs/talents/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.599461 173013000 Delete type=3 #1 +2026/08/12-17:49:38.065656 17157b000 Delete type=3 #1 diff --git a/packs/vehicles/LOG b/packs/vehicles/LOG index 9fd298b..fb96f04 100644 --- a/packs/vehicles/LOG +++ b/packs/vehicles/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.092147 171de3000 Recovering log #3 -2026/08/12-17:19:00.092413 171de3000 Level-0 table #5: started -2026/08/12-17:19:00.092589 171de3000 Level-0 table #5: 6939 bytes OK -2026/08/12-17:19:00.092830 171de3000 Delete type=0 #3 -2026/08/12-17:19:00.092877 171de3000 Delete type=3 #2 +2026/08/12-17:49:53.372199 1740df000 Recovering log #3 +2026/08/12-17:49:53.372664 1740df000 Level-0 table #5: started +2026/08/12-17:49:53.372794 1740df000 Level-0 table #5: 6939 bytes OK +2026/08/12-17:49:53.373008 1740df000 Delete type=0 #3 +2026/08/12-17:49:53.373046 1740df000 Delete type=3 #2 diff --git a/packs/vehicles/LOG.old b/packs/vehicles/LOG.old index dca6851..f7be9ec 100644 --- a/packs/vehicles/LOG.old +++ b/packs/vehicles/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.608215 17381f000 Delete type=3 #1 +2026/08/12-17:49:38.073160 171d87000 Delete type=3 #1 diff --git a/packs/weapons/LOG b/packs/weapons/LOG index bb2d8d9..2a3bdc8 100644 --- a/packs/weapons/LOG +++ b/packs/weapons/LOG @@ -1,5 +1,5 @@ -2026/08/12-17:19:00.086848 172dfb000 Recovering log #3 -2026/08/12-17:19:00.087140 172dfb000 Level-0 table #5: started -2026/08/12-17:19:00.087447 172dfb000 Level-0 table #5: 14767 bytes OK -2026/08/12-17:19:00.087737 172dfb000 Delete type=0 #3 -2026/08/12-17:19:00.087788 172dfb000 Delete type=3 #2 +2026/08/12-17:49:53.366404 1748eb000 Recovering log #3 +2026/08/12-17:49:53.366708 1748eb000 Level-0 table #5: started +2026/08/12-17:49:53.366949 1748eb000 Level-0 table #5: 14767 bytes OK +2026/08/12-17:49:53.367196 1748eb000 Delete type=0 #3 +2026/08/12-17:49:53.367229 1748eb000 Delete type=3 #2 diff --git a/packs/weapons/LOG.old b/packs/weapons/LOG.old index 222a703..c7c46aa 100644 --- a/packs/weapons/LOG.old +++ b/packs/weapons/LOG.old @@ -1 +1 @@ -2026/08/12-17:18:28.601849 17381f000 Delete type=3 #1 +2026/08/12-17:49:38.067337 17157b000 Delete type=3 #1 diff --git a/system.json b/system.json index 32d8788..fbcb690 100644 --- a/system.json +++ b/system.json @@ -134,6 +134,13 @@ "type": "Adventure", "system": "ringbrp" }, + { + "name": "lastadmission", + "label": "Custodians: Prologue — LAST ADMISSION", + "path": "packs/lastadmission", + "type": "Adventure", + "system": "ringbrp" + }, { "name": "prologue", "label": "Custodians: Prologue — OPEN DAY", diff --git a/tools/build-packs.mjs b/tools/build-packs.mjs index cfc97f8..9965031 100644 --- a/tools/build-packs.mjs +++ b/tools/build-packs.mjs @@ -751,6 +751,59 @@ await writePack("armour", ARMOURS.map(a => { + `${S.STARTER_PAGES.length} GM pages, ${S.STARTER_HANDOUTS.length} handouts`); } +// LAST ADMISSION — the two-hour prologue, and the one to run by default. Same shape as +// OPEN DAY's adventure and for the same reason: journals and cast only, because the +// player characters are the "(before)" pregens in the Pregens pack. +{ + const L = await import("./scenario-lastadmission.mjs"); + + const castDocs = []; + for (const spec of L.LA_CAST) { + const { actorDoc, itemDocs } = buildActor(spec, "npc"); + actorDoc.items = itemDocs; + castDocs.push(actorDoc); + } + + const gmJournal = journalDoc("LAST ADMISSION — Run the prologue", "la_gm", L.LA_PAGES); + const handouts = journalDoc("LAST ADMISSION — Player handouts", "la_handouts", L.LA_HANDOUTS); + handouts.doc.ownership = { default: 2 }; + handouts.doc.flags = { ringbrp: { brand: true } }; + for (const pg of handouts.pages) pg.ownership = { default: 2 }; + + const advId = idFor("adventure:last_admission"); + const adventure = { + _id: advId, + name: "LAST ADMISSION — The Culland Haunting", + img: IC("journal") ?? ICON.journal, + caption: "The two-hour prologue. A haunted house, and a fight on the lawn.", + description: + "
Twelve thousand people paid to be told this house was haunted. It was " + + "listening.
" + + "The last night of a cheap scare attraction in a real empty hall. Three of the " + + "ghosts on the poster were invented in an afternoon by a marketing agency and " + + "performed forty times a night for six weeks. They are in the building now, and " + + "they have a page each, and they do the page.
" + + "There is a fourth name on the poster. The copywriter took it off a memorial " + + "in the parish church because the layout needed four. She was real, nobody wrote " + + "her a page, and she wants her name off the wall.
" + + "Two hours. One house, one decision, and something to hit. Played with the " + + "second intake's “(before)” sheets from the Pregens " + + "compendium.
", + actors: castDocs, + items: [], + journal: [ + { ...gmJournal.doc, pages: gmJournal.pages }, + { ...handouts.doc, pages: handouts.pages } + ], + scenes: [], combats: [], tables: [], macros: [], cards: [], playlists: [], folders: [], + sort: 0, ...BASE() + }; + + await writePack("lastadmission", [[`!adventures!${advId}`, adventure]]); + console.log(` lastadm LAST ADMISSION — ${castDocs.length} cast, ` + + `${L.LA_PAGES.length} GM pages, ${L.LA_HANDOUTS.length} handouts`); +} + // OPEN DAY — the prologue. A much smaller adventure than BLACK PLATFORM: no case file, // no contact groups, no authority, no combat. The player characters are the ten // "(before)" pregens already in the Pregens pack — shipping a second copy here would diff --git a/tools/scenario-lastadmission.mjs b/tools/scenario-lastadmission.mjs new file mode 100644 index 0000000..7ebaa3e --- /dev/null +++ b/tools/scenario-lastadmission.mjs @@ -0,0 +1,513 @@ +/** + * LAST ADMISSION — the two-hour prologue, as data. + * + * A cheap haunted-house attraction on the last night of its run, in a real house, with + * paying public in it. Three of the ghosts on the poster were invented in an afternoon + * by a marketing agency and performed forty times a night for six weeks to twelve + * thousand people who agreed to believe them. They are now in the building, and they + * have exactly as much inside them as was written down, which is a page each. + * + * The fourth name on the poster was copied off a memorial in a parish church because the + * layout needed a fourth. She was real. Nobody wrote her a page, because nobody had to. + * + * Deliberately simpler than OPEN DAY: one house, one truth, one decision, and things the + * players can hit. Written for the second-intake six and played on their "(before)" + * sheets. The full GM document is docs/scenarios/LAST_ADMISSION.md; these pages are the + * running text, in the order a GM needs it at the table. + */ + +const P = s => `${s}
`; +const H = (n, s) => `| ${h} | `).join("")}
|---|
| ${c} | `).join("")}
${s}`; +const ART = (id, alt) => + `
