keeperrl_wiki


Project maintained by miki151 Hosted on GitHub Pages — Theme by mattgraham

Understanding The File Formats For KeeperRL

MainPage

general rules

  • The text files are editable in a text editor
  • Each text file is a set of tables containing a list of available game content
  • Multiple spaces and new lines between entries in the table are read as a single space
  • Lines starting in a # are ignored and may contain useful comments

technology.txt

Begin the file

The file always begins like this:

\{
\{

The table of technologies in the game

  • Each entry adds a new technology to the game.
  • The entry has two possible formats

1) “TechId” {Description} Example:

“alchemy” \{ “Build a laboratory and produce basic potions.” \}

2) “TechId1” { “Description” {“TechId2”} }

Where TechID1 is the new technology and TechId2 must be researched first to unlock it. Example:

“alchemical conversion” \{ “Convert resources to and from gold.” \{“alchemy”\} \}

End the file

The file always begins like this:

\}
\}

workshops_menu.txt

Begin the file

The file always begins like this:

\{

  • The format is constructed of sections, sub-sections and entries

Sections and subsections

  • There can be as many sections as you want and later on any section can be assigned to player_characters.txt to give those characters the build menu sections they need.
  • There are 4 sub-sections below each section. These subsections are respectively for:
  1. Workshop
  2. Forge
  3. Lab
  4. Jeweller
  • Each subsection has as many entries as you want.

Example of an empty section with all 4 subsections but no actual entries:

“DwarvenCrafting”
# Workshop
\{
\}

# Forge
\{
\}

# Lab
\{
\}

# Jeweller

\{
\}

Entries

  • Each entry enables an item to be built in that workshop, forge, jewellers or lab.
  • The entry has two possible formats

1) {{ItemType} Speed ResourceID Amount}

Example:

 \{ 0.03 \{ SkillId FORGE LastingEffect INSANITY \}\}\}

  • Each entry ends with

\}

  • Each section ends with

\}

End the file

The file always ends like this:

\}

player_creatures.txt

Begin the file

The file always begins like this:

\{

  • The format is constructed of 2 sections (keepers and adventures) and entries in both sections.
  • Each section begins with

\{

  • Each section ends with

\}

Keeper Entries

  • Entries in the keeper section enable a new type of Keeper Class
  • The immigrants available from immigration.txt are specified
  • The technologies available from technology.txt are specified
  • The game menus available to the keeper class from build_menus.txt are specified
  • The items buildable in workshops from workshops_menu.txt are specified.
  • The format for an entry is as follows:

\{
  creatureId = \{ CreatureIDMale CreatureIDFemale \}
  tribeAlignment = TribeAlignment
  immigrantGroups = \{“ImmigrantSection1” “ImmigrantSection2”...\}
  technology = \{
    “TechID1” “TechID2”...
    \}
  intialTech = \{
    “TechID1” “TechID2”...
    \}
  buildingGroups = \{
    \{“BuildMenuSection1” “BuildMenuSection2”...\}
  \}
  workshopGroups = \{
    \{“WorkshopMenuSection1” “WorkshopMenuSection2”...\}
  \}
  description = “HelpText”
\}

Example:

\{
  creatureId = \{ KEEPER_MAGE KEEPER_MAGE_F \}
  tribeAlignment = EVIL
  immigrantGroups = \{“imps” “dark_keeper”\}
  technology = \{
    “alchemy” “advanced alchemy” “alchemical conversion” “humanoid mutation” “beast mutation”
    “pig breeding” “iron working” “jewellery” “two-handed weapons” “traps” “archery” “sorcery”
    “advanced sorcery” “magical weapons” “master sorcery” “demonology”
    \}
  initialTech = \{ “sorcery” \}
  buildingGroups = \{
    “structure” “doors” “floors” “storage” “quarters” “library” “throne” “beds” “beast_cage” “pigsty” “coffins”
    “training” “crafting” “demon_shrine” “prison” “orders” “installations” “magical_installations” “traps”
  \}
  workshopGroups = \{ “basic” “traps” \}
  description = “Build and manage your dream dungeon, defend against raids, and attack your enemies!”
\}

Adventurers Entries

  • Entries in the adventurer section enable a new type of Adventurer Class

\{ CreatureIDMale CreatureIDFemale \} TribeAlignment “HelpText”

Example:

\{ ADVENTURER ADVENTURER_F \} LAWFUL “Roam the land in search of adventures and loot!”

End the file

The file always begins like this:

\}

MainPage