-
Notifications
You must be signed in to change notification settings - Fork 4
Modding
Hale is designed from the ground up to be extremely customizable. New campaigns can be dropped into the campaigns/ folder and immediately played.
Game resources can be packaged either as zip files or simple directories. The core set of resources are stored in "core.zip" in the main directory and also the subdirectory core/. The use of the zip file here is simply to reduce the otherwise large number of files on the user's machine that would be created. If you wish to edit the files contained in core.zip, however, simply extract core.zip to the core/ subdirectory. The game will still find the files correctly and you can easily make edits.
Campaigns will normally be packaged as a zip file, allowing easy transfer of the files over the internet. All files can simply be placed in the "campaigns" directory. The files contained in the zip, however, can be extracted to a directory and loaded in that manner as well. The name of the directory should be the same as the name of the zip file without the extension. So, "campaigns/Tutorial.zip" can be extracted to "campaigns/Tutorial/". All files when running the "Tutorial" campaign in the game will then be loaded from the directory rather than the zip file.
In order to allow as much flexibility as possible, the game uses resource overriding or overloading. In particular, any file in core.zip or the core/ directory can be overloaded by the campaign zip or campaign directory. The order for overloading is as follows. Resources in packages further down the list can override resources in packages earlier in the list.
- core.zip package
- core/ directory package
- campaign zip file package
- campaign directory package
Note that while both the core.zip and core/ packages are always loaded (as long as they are present) only one campaign package is ever loaded at once. This means that if you extract a campaign zip to a directory, the zip file will be ignored and all campaign resources will be loaded from the directory as long as it exists.