Editing Mod Creation

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
For instructions on how to play someone else's mod go to [[How To Play Mods]]. For how to create and run a stat tweak go to [[Quick Stat Tweaks]], and to save them look at [[Custom Modes]].
 
 
 
Zero-K runs on the [https://springrts.com Spring engine], which supports a lot of modification of game files. The most advanced mods may amount to creating an entire new game. The Spring engine wiki is a valuable resource for game and mod development using the engine, especially the [https://springrts.com/wiki/Gamedev:Main gamedev page].
 
Zero-K runs on the [https://springrts.com Spring engine], which supports a lot of modification of game files. The most advanced mods may amount to creating an entire new game. The Spring engine wiki is a valuable resource for game and mod development using the engine, especially the [https://springrts.com/wiki/Gamedev:Main gamedev page].
  
Line 6: Line 4:
  
 
== Cosmetic and UI changes ==
 
== Cosmetic and UI changes ==
Some changes can be made just by adding files to your install directory. The following subfolders of the game repository should support this (feel free to attempt more): unitpics, sounds, unittextures, bitmaps, anims, icons and LuaUI. Replace a file by perfectly matching its name and path. Everything in the main menu repository can be overridden.
+
Some changes can be made just by adding files to your install directory. The following subfolders of the game repository should support this (feel free to attempt more): unitpics, sounds, unittextures, bitmaps, anims, icons and LuaUI. Replace a file by perfectly matching its name and path.
  
=== Common Changes ===
+
Here's [[:File:LocalColors.zip|an example config replacement]] for team colour config that you can place in <code>LuaUI/Configs/LocalColors.lua</code>.
Configuration files from the [https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Configs Zero-K repositry] can be copied to <code>Zero-K/LuaUI/Configs</code> and modified. Some are made with configuration in mind while others are a bit challenging to modify. Two easy to configure aspects of the interface are as follows.
+
 
* To configure teamcolours, unzip [[:File:LocalColors.zip|this file]] so that you have <code>LuaUI/Configs/LocalColors.lua</code>. Modify the values within and select 'Custom' in the dropdown menu at the top left corner of the screen ingame.
+
Everything in the main menu repository can be overridden.
* To configure the position of commands and states in the command panel, copy [https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Configs/integral_menu_commands.lua this file] to <code>Zero-K/LuaUI/Configs/integral_menu_commands.lua</code> and edit it.
 
  
 
=== Widgets ===
 
=== Widgets ===
To add widgets or override existing widgets you must enabled local widgets and load local widgets first through the advanced settings in <code>Settings/Interface/Misc</code>.
+
For LuaUI changes you will need to enabled local widgets and load local widgets first through the advanced settings in <code>Settings/Interface/Misc</code>. Completely new widgets can also be added and loaded.
  
 
== More Significant Changes ==
 
== More Significant Changes ==
 
Changing animations, unit behaviour, game mechanics or statistics is a little trickier than cosmetic changes. These types of changes affect everyone in a multiplayer game (as opposed to local interface changes) so require the creation and distribution of a game archive. Entirely new games for the Spring engine can be made with this method.
 
Changing animations, unit behaviour, game mechanics or statistics is a little trickier than cosmetic changes. These types of changes affect everyone in a multiplayer game (as opposed to local interface changes) so require the creation and distribution of a game archive. Entirely new games for the Spring engine can be made with this method.
  
This page tells you how to use Zero-K to easily set up a modding environment and how to run mods on the Zero-K server. For specific information on the components that make up a mod consult the [https://springrts.com/wiki/Gamedev:Main SpringRTS wiki].
+
=== Mutators ===
 +
A mutator is a mod archive that can add and override files relative to a base archive. Mods that make relatively small changes to Zero-K should be made with a mutator, as this keeps filesizes low and allows the mod to stay up to date with fixes or changes to other parts of Zero-K. Even large projects should probably start out as mutators, as it enables the project to build up to handling every aspect of creating a full game archive.
  
=== Mutators ===
+
is to make a mutator, this is a game package that includes modified files but otherwise uses the files of the base game. Here is an example mutator [[:File:BaseMod.sdd.zip|BaseMod.sdd.zip]] to get you started. Unzip it in Zero-K/games, and yes, the folder should be named with the extension ".sdd". Your file stucture should look like this.
A mutator is a mod archive that can add and override files relative to a base archive. Mods that make relatively small changes to Zero-K should be made with a mutator, as this keeps filesizes low and allows the mod to stay up to date with fixes or changes to other parts of Zero-K. Even large projects should probably start out as mutators, as it enables the project to build up to handling every aspect of creating a full game archive. Here is an example mutator to get you started ([[:File:BaseMod.sdd.zip|download]]). Unzip it in Zero-K/games, and yes, the folder should be named with the extension ".sdd". Your file stucture should look like this.
 
  
 
[[File:baseModFile.png]]
 
[[File:baseModFile.png]]
Line 32: Line 29:
  
 
=== Running your mod - Singleplayer ===
 
=== Running your mod - Singleplayer ===
Go to Settings -> Lobby and enable 'Show technical mods list'.
 
 
[[File:TechnicalMods.png]]
 
 
 
Open a skirmish via the singleplayer menu and click 'Adv Options'.
 
Open a skirmish via the singleplayer menu and click 'Adv Options'.
  
 
[[File:AdvOptions.png]]
 
[[File:AdvOptions.png]]
  
Click 'Select Mod' and select your mod from the list. Note that this button only appears if 'Show technical mods list' is enabled, and you may have to restart the lobby to apply the setting. The example above is called 'Zero-K Base Mutator v1'. Click Apply.
+
Click 'Select Mod' and select your mod from the list. The example above is called 'Zero-K Base Mutator v1'. Click Apply.
  
[[File:SelectMod2.png]]
+
[[File:SelectMod.png]]
  
 
The text beneath the Adv Options button should change from 'Zero-K vX.Y.Z.W' to the name of your mod.
 
The text beneath the Adv Options button should change from 'Zero-K vX.Y.Z.W' to the name of your mod.
Line 49: Line 42:
  
 
=== Running your mod - Multiplayer ===
 
=== Running your mod - Multiplayer ===
First check modinfo.lua to make sure that your mod's name, shortname and version are unlikely to clash with any other existing mod. Then turn your sdd into a sdz by first zipping it (as follows on Windows) and renaming it such that the file extension is <code>.sdz</code>.
+
* Enable developer mode. Do this by creating an empty text document "devmode.txt" in the same directory as Zero-K.exe. You may need to restart the lobby.
 
+
* In the Settings menu a new tab appears: Developer. Edit the Singleplayer setting to be Zero-K Dev.
[[File:Zipgame.jpg]]
+
* Your skirmish/campaign games should now use your modified local copy of zk.sdd. In this mod, the [[Lotus]] has 10 times its normal range.
 
 
Here is a zip containing <code>baseMod.sdz</code>, the packaged version of <code>baseMod.sdd</code> ([[:File:BaseModPackaged.zip|download]]). Test that your <code>.sdz</code> file runs and upload it to [https://zero-k.info/Maps zero-k.info/Maps].
 
 
 
[[File:MapUpload.png]]
 
 
 
# Host a Custom passworded multiplayer battle.
 
# Select your mod from the 'Select Mod' list under 'Adv Options' (just as you would for singleplayer).
 
# Other players that join the room will automatically download your mod.
 
# Click start to play.
 
 
 
It is best if you play from your sdz version rather than your sdd version, as any changes between your local version and uploaded archive could cause desync. It is a good idea to give your development .sdd version a unique version name.
 
  
You can now use [[Custom Modes]] to make a preset that hosts your mod. There is currently no site-based way to distribute custom modes, but they can be included manually in lobby releases.
+
=== Advanced mutator creation (offline only?) ===
 +
* Download and extract the [[:File:ZK mod template.zip|ZK mod template]] to your Zero-K folder. It should create the folder <code>Zero-K/games/newmod.sdd</code>.
 +
* Enable developer mode (see above). Go to the Developer tab in Settings and edit the Singleplayer setting to 'Zero-K New Mod'.
 +
* Your skirmish/campaign games should now use the contents of <tt>newmod.sdd</tt>. You can change this folder's contents to mod your game.
 +
* To rename your mod or change the version number, change <code>Zero-K/games/newmod.sdd/modinfo.lua</code> and <code>Zero-K/LuaMenu/configs/gameConfig/newMod/mainConfig.lua</code>.
 +
** Make sure <code>zkBaseConfig._defaultGameArchiveName</code> in <tt>mainConfig.lua</tt> matches the name and version in <tt>modinfo.lua</tt>.
 +
** The folders <tt>games/newmod.sdd</tt> and <tt>LuaMenu/configs/gameConfig/newMod</tt> can also be renamed, if you wish to distribute your mod.
  
 
[[Category:Development]]{{Navbox manual}}
 
[[Category:Development]]{{Navbox manual}}

Please note that all contributions to Zero-K are considered to be released under the Creative Commons Attribution-ShareAlike (see Zero-K:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)