Rooms - originalfoo/Prison-Architect-API GitHub Wiki

Rooms are used to designate areas of your prison for a specific purpose.
A list of all rooms in the base game can be found in the sidebar.
[
](Shower (Room))
[
](Cell (Room))
[
](SuperiorCell (Room))
[
](Solitary (Room))
[
](ParoleRoom (Room))
[
](Execution (Room))
[
](Morgue (Room))
[
](Chapel (Room))
[
](Classroom (Room))
[
](CommonRoom (Room))
[
](Library (Room))
[
](MailRoom (Room))
[
](Shop (Room))
[
](Visitation (Room))
[
](Yard (Room))
[
](Canteen (Room))
[
](Kitchen (Room))
[
](MedicalWard (Room))
[
](Morgue (Room))
[
](CleaningCupboard (Room))
[
](Laundry (Room))
[
](Storage (Room))
[
](Deliveries (Room))
[
](Exports (Room))
[
](Garbage (Room))
[
](Forestry (Room))
[
](Workshop (Room))
[
](Office (Room))
[
](Staffroom (Room))
[
](Security (Room))
[
](Armoury (Room))
[
](Kennel (Room))
The following modding options are available...
All rooms defined in materials.txt are automatically added to the "Rooms" menu.
If a room requires Research to unlock, it will be disabled (not usable) until that research is completed (Execution room is completely hidden until "Death Row" is completed).
Stuff on other menus is defined elsewhere, see Menus for details.
Menu Icons
To add or update room icons, use data/ui.png
If adding icons:
- Put
SpriteRoom<roomId>in the room definition (see next section)
-
<roomId>is theNameof your room specified in its definition
- Define a sprite called
Room<roomId>indata/interface.spritebank
It is currently not possible to use sprites.png for room menu icons.
Rooms don't have sprites.
Their area is automatically filled with a checkerboard pattern, and the room name is then overlaid on top. Both these things are hard-coded in the base game.
Add or replace rooms using BEGIN Room... definition blocks within data/materials.txt
A list of known settings is shown below (bullet points are just for aesthetics don't include them in your definition). Bold settings are mandatory
BEGIN Room
Name<roomId>-
Capturabletrue|false -
BEGINRequirementTypeMinimumSizex <tiles>y <tiles>END -
BEGINRequirementTypeEnclosedEND -
BEGINRequirementTypeSecureEND -
BEGINRequirementTypeIndoorEND -
BEGINRequirementTypeOutdoorEND -
BEGINRequirementTypeObjectId<objectId>END -
BEGINRequirementTypeAdjacentObjectId<objectId>END -
BEGINLikelyObjectId<objectId>END -
BEGINContrabandId<equipmentId>END -
Qualification<qualificationId> -
Research<researchId> -
Workgroup<id>
END
It's not currently possible to script the actual rooms themselves.
Objects, regardless of category, sometimes provide information about rooms they are associated with. Room-specific information can be found via the links in the sidebar.
todo: grants.lua
todo: campaign script
todo
](Intake (Room))
