====== Place File Synax ====== ==== Header Line ==== This line must begin with #, and may include any text desired. There must be at least one header line, but the file may include as many as are deemed useful for documentation purposes. # Place file for Project Name ==== Comments ==== ; Any line beginning with a semicolon is a comment. ==== IMPORT FROM / IMPORT ALL ... FROM ==== When a library is imported, its contents becomes available for use elsewhere in the Place File, but they are conceptually still stored in the library, and don't get compiled in with your game until you make use of them individually. If you import a location specifically, it gets incorporated into your project immediately (you can still open its definition back up to make modifications, however.) A package is a named set of connected locations IMPORT [LIBRARY | LIBRARIES] FROM "filename": "BUILDINGS" AS "B" "NATURE" AS "N" "BUILDINGS" LOCATION "INT. CAFE" [AS "INT. DINER"] or IMPORT ALL LIBRARIES FROM "filename" [PREFIXED BY "IMPORTED"] ==== [FROM ...] ==== When you see [FROM ...] (but not FROM "filename") as part of other syntax, it means you may optionally specify a Library or Area from which the preceding named object should be fetched. [FROM LIBRARY "L" | FROM AREA "A"] ==== (BASED ON) ==== This must be the first line after an Area Declaration or after a Location Header. When used for an Area: MY NEW AREA -- --- ---- (BASED ON "AREA OR LIBRARY NAME" [IMPORTED FROM "filename"] [ROTATE 0]) When used for a Location, it makes a copy of the named Location and opens it for modification. This Location may either be a Location that already exists in your game, or a Location defined in an imported Library: INT. MY NEW LOCATION (BASED ON "INT. LOCATION NAME" [FROM ...] [ROTATE 0]) ==== REFER TO IMPORTED ... AS ... ==== Goes after the (BASED ON) line for an Area, this is used to effectively rename any Package, Location, or other identifier from the imported place file so that a different name is applied throughout the imported version of the content. REFER TO IMPORTED "POLICE STATION" AS "SHERIFF'S DEPARTMENT" ==== PACKAGE ==== Packaging locations together allows them to be imported or cloned as a related set of locations, maintaining any connections between their exits. PACKAGE "TRAIL" (START): EXT. TRAILHEAD ([FROM ...] AS $START) WITHIN $PACKAGE: EXT. TRAIL / SWITCHBACK PATH EXT. TRAIL / LARGE ROCK EXT. TRAIL / MEADOW ==== UNPACK ==== UNPACK "TRAIL" [FROM ["filename.place"] [LIBRARY "OUTDOORS"]] AS "NATURE PATH" (START = "PARKING LOT") ==== INT. / EXT. ==== Name a Location in uppercase on an unindented line to either create it (if new) or re-open its definition for additions, changes, or deletions. Once this line is encountered, you are in "Location Definition Context" until switching to another context. INT. OFFICE ==== Descriptive Text ==== To add or replace a description: INT. OFFICE You are in a poorly lit, smoke-filled office. In the center of the room is a heavy, well-worn mahogany desk. To append to the existing description: INT. OFFICE You look around to gain your bearings. $DESCRIPTION or DELETE DESCRIPTION ==== MARK / DELETE MARK ==== To add or update a mark: MARK markname To delete an existing mark: DELETE MARK markname ==== @ (EXITS) ==== Exits can be any of the abbreviated compass directions, UP, DOWN, or ENTER [target] or EXIT [target] (both of which have an optional target), or GO , with the target required in this case. If a target is specified, a colon is used to separate it from the destination location. Locations may be substantially abbreviated. Int. or Ext. alone will flip to the corresponding exterior or interior matching with the current location (if any.) If a location has a main area and sub-areas (separated by a slash), and it is within the same main area as the current location, only the sub-area needs to be given. @ENTER DOOR: Int. ==== SCOPE LIMITERS ==== G$ = Ghostwood GL Engine \\ U$ = Fully 3D Rendering Engine \\ T$ = Text Adventure Engine \\