Difference between revisions of "Mission Editor"
GoogleFrog (talk | contribs) |
GoogleFrog (talk | contribs) |
||
Line 36: | Line 36: | ||
== Publishing a mission == | == 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 Modes|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. | You can make your mission available online by ''publishing'' it. It will be available for others to play once enabled by an administrator. | ||
Revision as of 16:23, 14 December 2020
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.
Missions can also be designed for multiplayer and can be played cooperatively or competitively.
Missions can become part of campaigns. (Campaigns not implemented yet)
Feature Requests and Bug Reports
Contents
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. 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
Debug data:
[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: 3.146.176.40
Start request GET /mediawiki/index.php?diff=next&oldid=6837&title=Mission_Editor
HTTP HEADERS:
CONTENT-TYPE:
CONTENT-LENGTH: 0
USER-AGENT: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HOST: zero-k.info
ACCEPT-ENCODING: gzip, br, zstd, deflate
ACCEPT: */*
CONNECTION: close[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "3.146.176.40",
"UserAgent": "Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[session] SessionBackend "ndi1f7phopllpn6fpnfqrce5hqji82jo" is unsaved, marking dirty in constructor
[session] SessionBackend "ndi1f7phopllpn6fpnfqrce5hqji82jo" save: dataDirty=1 metaDirty=1 forcePersist=0
[cookie] already deleted setcookie: "wikidb229_mw__session", "", "1713738465", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_UserID", "", "1713738465", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_Token", "", "1713738465", "/", "", "", "1"
[cookie] already deleted setcookie: "forceHTTPS", "", "1713738465", "/", "", "", "1"
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
Title::getRestrictionTypes: applicable restrictions to [[Mission Editor]] are {edit,move}
[ContentHandler] Created handler for wikitext: WikitextContentHandler
Article::view: showing diff page
DifferenceEngine old '6837' new 'next' rcid ''
[MessageCache] MessageCache using store SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb229-mw_:messages:en.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
DifferenceEngine old '0' new '0' rcid '0'
WikiPage::getParserOutput: using parser cache: no
[caches] parser: SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
Parser cache options found.
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:b3c96b7aec4da8b678decf5fb5fb4d62:0)
[Mime] MimeAnalyzer::loadFiles: loading mime types from C:\Projekty\zero-k.info\www\mediawiki\includes/libs/mime/mime.types
[Mime] MimeAnalyzer::loadFiles: loading mime info from C:\Projekty\zero-k.info\www\mediawiki\includes/libs/mime/mime.info
File::transform: Doing stat for mwstore://local-backend/local-thumb/c/c2/Mission_editor_intro_1.jpg/407px-Mission_editor_intro_1.jpg
[FileOperation] FileBackendStore::ingestFreshFileStats: File mwstore://local-backend/local-thumb/c/c2/Mission_editor_intro_1.jpg/407px-Mission_editor_intro_1.jpg does not exist
TransformationalImageHandler::doTransform: creating 407x263 thumbnail at C:\Windows\TEMP\mwtmp-IUSR/transform_3bd0c39839b9.jpg using scaler im
TransformationalImageHandler::doTransform: returning unscaled image
File::transform: Doing stat for mwstore://local-backend/local-thumb/c/c2/Mission_editor_intro_1.jpg/407px-Mission_editor_intro_1.jpg
TransformationalImageHandler::doTransform: creating 407x263 thumbnail at C:\Windows\TEMP\mwtmp-IUSR/transform_3bbc7c968d7d.jpg using scaler im
TransformationalImageHandler::doTransform: returning unscaled image
File::transform: Doing stat for mwstore://local-backend/local-thumb/c/c2/Mission_editor_intro_1.jpg/407px-Mission_editor_intro_1.jpg
TransformationalImageHandler::doTransform: creating 407x263 thumbnail at C:\Windows\TEMP\mwtmp-IUSR/transform_f59464fb6589.jpg using scaler im
TransformationalImageHandler::doTransform: returning unscaled image
File::transform: Doing stat for mwstore://local-backend/local-thumb/8/87/Mission_editor_intro_2.png/407px-Mission_editor_intro_2.png
[FileOperation] FileBackendStore::ingestFreshFileStats: File mwstore://local-backend/local-thumb/8/87/Mission_editor_intro_2.png/407px-Mission_editor_intro_2.png does not exist
TransformationalImageHandler::doTransform: creating 407x263 thumbnail at C:\Windows\TEMP\mwtmp-IUSR/transform_f81aa092f008.png using scaler im
TransformationalImageHandler::doTransform: returning unscaled image
File::transform: Doing stat for mwstore://local-backend/local-thumb/8/87/Mission_editor_intro_2.png/407px-Mission_editor_intro_2.png
TransformationalImageHandler::doTransform: creating 407x263 thumbnail at C:\Windows\TEMP\mwtmp-IUSR/transform_b4785366b12a.png using scaler im
TransformationalImageHandler::doTransform: returning unscaled image
File::transform: Doing stat for mwstore://local-backend/local-thumb/8/87/Mission_editor_intro_2.png/407px-Mission_editor_intro_2.png
TransformationalImageHandler::doTransform: creating 407x263 thumbnail at C:\Windows\TEMP\mwtmp-IUSR/transform_63cf19723e2d.png using scaler im
TransformationalImageHandler::doTransform: returning unscaled image
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:b3c96b7aec4da8b678decf5fb5fb4d62:0)
MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
File::transform: Doing stat for mwstore://local-backend/local-thumb/c/c2/Mission_editor_intro_1.jpg/407px-Mission_editor_intro_1.jpg
TransformationalImageHandler::doTransform: creating 407x263 thumbnail at C:\Windows\TEMP\mwtmp-IUSR/transform_37e30e3dfa20.jpg using scaler im
TransformationalImageHandler::doTransform: returning unscaled image
Title::getRestrictionTypes: applicable restrictions to [[Mission Editor]] are {edit,move}