Goldchest Map File Specification

 

General file specification

Maps for Goldchest follow the same format of the INI file format. This is a simple text format using sections indicated by square brackets containing name/value pairs. The name and value are separated by an equals sign (=) and together they are referred to as a property.

Example:

[General]
Name=The Town of Grothlore
Dimension=16
StartPoint=15,7,North

In the above case there's a section called "General" containing a "Name" property with a value "The Town of Grothlore", a "Dimension" property with a value of "16" and a "StartPoint" property containing a value of "15,7,North".

The file can contain any number of sections as long as they have unique names.  Each property name should also be unique inside a section.

A section ends where another section begins or at the end of a file.

Map Sections

The following sections are required.

General

This section defines the general and default properties for the map.  Properties for this section are:

Property Default Required Comment
Name None YES The descriptive name of this location.
Dimension None YES The size of this map in 2 dimensions. 16 would be 16x16 or 254 squares.
StartPoint None NO Only the main starting map requires this. It's the coordinate where the game begins.

Defaults

This section describes the default sounds and textures used on the map.  You can override these for each location if required (see below).

Property Default Required Comment
WallTexture None YES Image used for the wall textures.
DoorTexture None YES Image used for the door textures. Note this image should be a transparent png or gif file. It's applied on top of the wall texture.
Ceiling false NO Indicates whether the map should have ceilings by default.   Otherwise the sky is visible. Should be true or false.
CeilingTexture None YES Image used for the ceiling textures.
FloorTexture None YES Image used for the floor texture.
AmbientSound None NO Sound file to play as the ambient sound for the map.
WalkSound None NO Sound file to play when walking.

Data

The Data section describes the walls for each cell in the 2d map.

There are 6 options for wall positions. For each cell in the map you need to indicate where the walls and doors will appear. Walls are indicated by "1", Doors by "3" and spaces by "0". Their position indicates West, North, East, South and the 2 angled walls SW to NE and NW to SE.

Note that you can leave a coordinate completely out. In that case it's considered a blank (000000) space.

The positions are indicated with the figure below.

Examples:
0,1=100100 At coordinate 0,1 make walls west and south    
2,4=011000 At coordinate 2,4 make walls north and east    
6,9=010100 At coordinate 6,9 make walls north and south  
7,2=010000 At coordinate 7,2 make wall north  
4,3=000100 At coordinate 4,3 make wall west  
5,6=000010 At coordinate 5,6 make angle wall Southwest to Northeast  /
6,6=000001 At coordinate 6,6 make angle wall Northwest to Southeast  \

Coordinate values can also be 'c' to display a cylinder shape and 'b' to display block shape.

The following sections are optional.

Coordinate sections

Each coordinate (x,y) can be specified as a section.  Coordinate and Range (see below) sections are used to provide additional information about that particular square. Properties not supplied in these sections default to the Defaults section for the map.

Example:

[0,4]
WallTexture=/images/mywall.jpg
DoorTexture=/images/mydoor.png

Property Default Required Comment
WallTexture None NO Image used for the wall textures at this coordinate.
DoorTexture None NO Image used for the door textures at this coordinate.. Note this image should be a transparent png or gif file. It's applied on top of the wall texture.
Ceiling false NO Indicates whether this coordinate should have ceilings by default.   Otherwise the sky is visible. Should be true or false.
CeilingTexture None NO Image used for the ceiling texture at this coordinate.
FloorTexture None NO Image used for the floor texture at this coordinate.
AmbientSound None NO Sound file to play as the ambient sound at this coordinate.
WalkSound None NO Sound file to play when walking at this coordinate.
Exit* None NO The Exit property requires directionality. This property is used to indicate that a particular direction at this coordinate is an exit to another map file. Use ExitNorth, ExitSouth, ExitEast, ExitWest.  The value is the target map name and coordinates separated by commas.

Additionally, WallTexture and DoorTexture can use directionality to indicate at which directions the walls or doors would appear on. Only North, South, East and West are currently supported for this.

Example:

[0,4]
WallTextureNorth=/images/wall1.jpg
WallTextureEast=/images/wall2.jpg

 

Range sections

Map files can accept coordinate ranges by specifying the the top, left .. bottom, right as a section.

Example:

[0,4..2,5]
WallTextureNorth=/images/wall1.jpg
WallTextureEast=/images/wall2.jpg

This means that the properties would be applied to 0,4 1,4 2,4 1,5 2,5

Shop Sections

There are a variety of shop types available in the game.

Armory
The armory sells weapons, armor and ammo of various types.
Bank The bank can be used to deposit moneys and items for safe keeping. Also you can borrow money.
Blacksmith The blacksmith sells weapons, armor and ammo of various types and can repair items.
FighterGuild The fighter guild is used for training fighter related skills.
GeneralStore The general store sells general items an adventurer may need.
Inn The inns are always safe places to rest and recover.
Jeweler Buy, sell and appraise gems or jewels.
MageGuild The mage guild is used for training magic related skills and spells.
Silversmith The silversmith sells silver items good against the undead (not implemented yet).
Tavern Drink, relax, listen to the gossip.
Taylor The taylor sells and repairs leather goods and other clothing.
Temple The temple is for healing but it also used as the place to learn cleric skills.
ThiefGuild The thief guild is used for training thieving related skills.


Each shop type can be a section with the following properties. The sections need to start with one of those shop names so can have more than one shop of the same in the same map. For example you can use Armory1, Armory2 as section names.

Property Default Required Comment
ShopName None YES The descriptive name for this shop
ShopOwner None YES The name of the proprietor (shop owner) of the shop.
Location None YES The X,Y coordinate where this shop is located.
Schedule None NO A scheduling expression indicate the shop open hours.  Usually it's just a start hour, end hour example: 9,17 would be open at 9 am closes at 5 pm.  Note there are other scheduling options.


Encounter Sections

Encounters with monsters can be specified with Encounter sections. Each of these sections should start with "Encounter" but must be unique. They can be entered simply as Encounter1, Encounter2, etc...

Property Default Required Comment
Description None YES The description for this encounter. Example: "As you step through this door you hear a low growling sound."
Location None YES The X,Y coordinate where this encounter is located.
Monsters None YES Monsters is a comma separated list of monsters in this encounter. Each item is a semi-colon separated string indicating count and monster type. Example "3;4,5;2"  would mean 3 monsters of ID 4 and 5 monsters of ID 2.  The monster IDs are defined in the monster data file. (Note the monster list is not yet completed).
Treasure None NO The Treasure property indicates if there's a treasure chest or additional special items found if the player wins the combat.


Script section

This section describes script resources which will execute at any particular location in the game. Scripts can access most everything in the game and can be used to create interactive puzzles, menus and other game interactions.

Property Default Required Comment
coordinate (x,y) None YES The value here is a script resource name to execute when the player enters this square.