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.
The following sections are required.
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. |
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. |
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.
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
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
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. |
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. |
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. |