For modders of Dwarven Skykeep, this guide will explain everything you need to know about modding for this game, let’s check it out.
Preparations
For this you’ll need to modify existing rules, which are used to determine how the game works, looks and plays. Rules are text documents which look like that:
It looks intuitive, doesn’t it?
Always included in the game are 2 files: rules.zip (basic game rule) and levels.zip (game levels). Where can you find those?
- Steam library
- Right click on Dwarven Skykeep
- Local Files -> Browse
Let’s start with rules.zip. Find game’s directory. Path to said directory differs depending on the platform of your choice:
Windows: %APP_DATA\Godos\app_userdata\DS\, or, C:\Users\hedin\AppData\Roaming\Godot\app_userdata\DS\.
macOS: ~/Library/Application\ Support/Godot/app_userdata/DS/.
Linux: ~/.local/share/godot/app_userdata/DS/.
Now extract rules.zip and create rules folder in game’s root directory:
And you are ready to roll!
Basic modding
<key> = <value>.
For example, inside ai.cfg (Artificial Idiot config) there is a section named [dwarf_normal_worker], which groups settings for a common dwarf worker. Inside this section there is a key called hp, which signifies how many health points said dwarven worker has, with value 10.
Are you ready to get incredibly strong workers?
Before we continue, we’d like to point out an important moment!
- We recommend you to delete unused rules from the custom rules directory. It will help you to avoid the need to re-define every single rule and only edit and re-do the ones you need. Whenever there is a new game update, you won’t be left with outdated basic rule set this way.
So, in order to prepare:
Delete everything except ai.config from the rules folder.
Delete everything except the [dwarf_normal_worker] section from file ai.cfg.
Delete all key/value pairs from[dwarf_normal_worker] except hp.
Good! Now you are ready to mod!
So, in order to prepare:
- Delete everything except ai.config from the rules folder.
- Delete everything except the [dwarf_normal_worker] section from file ai.cfg.
- Delete all key/value pairs from [dwarf_normal_worker] except hp.
It wasn’t that difficult, wasn’t it?
You can change hundreds of values inside the rules of the game. Every rule is meticulously commented on. If you still have questions – feel free to contact us.
- Attention! All rules are written by professional game designers. Editing any of the rules can cause the game to become unplayable.
Levels
It is rather simple as well. Level is a folder in the levelslevel_id[/b], a unique identifier of any level. First copy level that you are going to use as a reference from levels.zip to levels folder in game’s directory.
What can be inside a level?
- Meta.cfg – it contains basic information about the level: name, achievements, points of entry and exit.
- Messages.cfg – File containing simple writing, which is triggered by certain events during the level.
- cutscenes. – Fullscreen cutscenes.
- cinematics. – Cutscenes made using the game’s engine.
- rules. Rules – redefined on a map by map basis..
We won’t stop in detail on the first out of four of the sections. Anybody who wants to create cutscenes and scripts is referenced to tutorial levels (tutorialXXX).
Let’s talk about rules once more. Every level re-define rules inside it akin to modders changing it globally.
Rules have the following priority:
default rules < game-wide modified rules < custom level rules
So, in order to make the dwarven worker significantly more sturdy, all you need is to create my_great_level/rules/ai.config with the following content:
100 hp is not nearly enough, isn’t it?
99% of all work to create a level is to re-define rules. To begin, we suggest you use gw8 level and its rules. It is a good starting point. We would be most happy to resolve any issues you might have with creating levels!
Testing level
First you need to enable debug mode. It is not harder than drinking a pint of beer.
You just need to create beer.mug file in games’ directory:
Reboot your game. What changed?
Debug mode opens up a lot of interesting options (debug console by pressing ~, for example), but we are more interested in extra buttons we got ourselves in the bottom part of the main menu. We are especially interested in the Level select button. It allows us to selectively load any level we want.
Including custom made ones:
Firstly you should try changing tower’s initial config in gw8/rules/level.cfg. Hit us with any questions that you might have regarding this!
Metagame Debugger
It means that single Level can be played differently depending on whether the player accessed it with the starting deck or late game one.
In order to edit deck in debug mode you can use Metagame Debugger tool (button called Meta Progress in the initial debug menu):
This tool allows you to launch the levels as if you have already beaten everything else, allowing you to fine-tune your deck and set of artifacts.
In order to set game in needed state:
- Reset everything by clicking “reset metagame”
- Tick checkboxes that you need before accessing your level
- Make a custom deck using “Deck” button
- Make custom set of artifact using “Artifacts” respectively
- You are good to go! Launch your new level!