Difference between revisions of "Mission Editor"
GoogleFrog (talk | contribs) |
Johnmyster (talk | contribs) |
||
Line 20: | Line 20: | ||
# Do <code>!engine 104.0.1-287-gf7b0fcc</code>. You should see the response <code>Nightwatch Engine changed to 104.0.1-287-gf7b0fcc</code>. | # Do <code>!engine 104.0.1-287-gf7b0fcc</code>. You should see the response <code>Nightwatch Engine changed to 104.0.1-287-gf7b0fcc</code>. | ||
# Start the battle. The engine should start downloading silently in the background. | # Start the battle. The engine should start downloading silently in the background. | ||
− | # Wait a few minutes and check whether <code>steamapps/common/Zero-K/win64/104.0.1-287-gf7b0fcc</code> exists. If it doesn't then try <code>win32</code>. If you're on Linux then check the appropriate directory. | + | # Wait a few minutes and check whether <code>steamapps/common/Zero-K/win64/104.0.1-287-gf7b0fcc</code> exists (you may have to look in Zero-K/engine/win64). If it doesn't then try <code>win32</code>. If you're on Linux then check the appropriate directory. |
# Copy the entirety of <code>104.0.1-287-gf7b0fcc</code> folder to a new folder somewhere isolated called <code>missionDev</code>. | # Copy the entirety of <code>104.0.1-287-gf7b0fcc</code> folder to a new folder somewhere isolated called <code>missionDev</code>. | ||
# Copy <code>steamapps/common/Zero-K/maps</code> and <code>steamapps/common/Zero-K/games</code> to <code>missionDev</code> such that you have the paths <code>missionDev/spring.exe</code>, <code>missionDev/maps</code> and <code>missionDev/games</code>. Optionally, you may just make empty <code>games</code> and <code>maps</code> folders and copy whatever you need in as you need it. | # Copy <code>steamapps/common/Zero-K/maps</code> and <code>steamapps/common/Zero-K/games</code> to <code>missionDev</code> such that you have the paths <code>missionDev/spring.exe</code>, <code>missionDev/maps</code> and <code>missionDev/games</code>. Optionally, you may just make empty <code>games</code> and <code>maps</code> folders and copy whatever you need in as you need it. |
Revision as of 14:40, 10 September 2024
Campaign missions are created in one of two ways, with the missions editor or with a mission definition file. The mission editor is used for the first mission and Kodachi Rally as they involve triggers and cutscenes. The skirmish-style missions are created with a definition file.
The Mission Editor allows players to create interactive missions similar to single-player scenarios of commercial games and to easily publish them to all players. These missions are mutators so can be designed for multiplayer and played cooperatively or competitively.
Feature Requests and Bug Reports
Contents
Script Missions
Most of the campaign missions are defined solely by the contents of Chobby/campaign/sample/planets. For example, planet1.lua contains a list of sides, commanders, units, objectives, and rewards. The file is processed into a startscript by chobby when ythe mission is launched. Some gadgets and widgets in ZK read particular values in the startscript to to make unmodified base ZK run as the mission.
There are a few development widgets in ZK that can help create mission files. The most useful is the one that saves all the units (and optionally orders) in the format required for the script mission files. Documentation of the script mission files can be found in planetDocumentation.lua
Running the Mission Editor
The mission editor loads its files using an older version of Spring. To get the required version:
- Open a Custom host and set a password.
- Do
!engine 104.0.1-287-gf7b0fcc
. You should see the responseNightwatch Engine changed to 104.0.1-287-gf7b0fcc
. - Start the battle. The engine should start downloading silently in the background.
- Wait a few minutes and check whether
steamapps/common/Zero-K/win64/104.0.1-287-gf7b0fcc
exists (you may have to look in Zero-K/engine/win64). If it doesn't then trywin32
. If you're on Linux then check the appropriate directory. - Copy the entirety of
104.0.1-287-gf7b0fcc
folder to a new folder somewhere isolated calledmissionDev
. - Copy
steamapps/common/Zero-K/maps
andsteamapps/common/Zero-K/games
tomissionDev
such that you have the pathsmissionDev/spring.exe
,missionDev/maps
andmissionDev/games
. Optionally, you may just make emptygames
andmaps
folders and copy whatever you need in as you need it. - Run the mission editor and point it to
missionDev/spring.exe
when it asks you to supply an engine path.
You now have a mission editor setup capable of making and editing missions that use the maps and games you have copied into the relevant folders. To edit existing missions you may require two additional steps:
- Some missions run off the development version of Zero-K as this makes them easier to test and debug. When the mission is exported for use the version is changed to zk:stable. To get the development version of Zero-K follow the instructions here with paths modified to end up with
missionDev/games/zk.sdd
. - To take a look at or edit the current missions, clone this repository similarly to how you would clone the main game in the above dot point.
- Some old missions may be made with a version of Zero-K that no longer loads on the mission editor. When in doubt, use the development version of Zero-K (
Zero-K $VERSION
as it is the most likely to be up to date. The version of a mission can be changed directly by editing its xml.
Tutorials
Publishing a mission
The mission editor exports mutators, so missions can be uploaded the same way you would upload any other mod, see Mod Creation. If the mission must be run on a particular map, then you can bundle the map and mutator together with a Custom Mode.
Publishing a mission OUTDATED (but the infrastructure may still be there)
You can make your mission available online by publishing it. It will be available for others to play once enabled by an administrator.
To do this, open the Mission menu and click Publish. Fill in the form displayed.
A mission must have a description and image to be published.
Uploading the mission will take a few seconds. If you want to update or delete it, select the Manage Missions item in the Mission menu.
Errors
If you have the error message "Value cannot be null. Parameter name: paths"
- Make sure your engine folder exists in the correct format in your Spring data directory:
engine/<platform>/<version>
. - For instance:
engine\win32\103.0.1-746-g82259fc