Scenarios

Scenarios are the playing worlds which the player can select and start from the menu. With their components the scenario designer can adjust freely everything from the landscape, the goals and rules, the available objects and materials to the look in the menu.

Basic contents

Scenario.txt
Contains most scenario settings.
Script.c
The scenario script.
Map.bmp
Static landscapes are stretched by factor MapZoom defined in Scenario.txt to the size of the actual landscape in the game. The colors used in Map.bmp correspond to materials and textures as defined in TexMap.txt.
MapFg.bmp / MapBg.bmp
Same as Map.bmp as defined above, except that foreground and background materials can be drawn separately. In Map.bmp, color indices greater than 127 will result in underground materials. In MapFg.bmp and MapBg.bmp, all color indices up to 255 can be used, and undergroup materials are simply specified by tunnel material in the background map.
Landscape.txt
Advanced scenario designers can use this component to define highly complex, fully random generated dynamic landscapes. This does require certain mathematical skill and some patience, however.
Map.c
Script for dynamic generation of map. See map script documentation.

Title, description and illustration

Title.txt
For language dependent titles you should create a Title.txt component with the appropriate contents:
DE:Angriff der Killerwipfe
US:Attack of the Killer Wipfs
Important: No quotation marks and special characters should be used.
Title.png
The title picture of the scenario in png format. Size: 200x150 pixel.
Icon.png
The icon of the scenario in png format. Size: 24x24 pixel.
Desc__.txt
The description of the scenario. '__' must be replaced by the two digit language code, e.g. DE for German and US for American English. Multiple descriptions for several languages can be contained in a scenario file of which the game will automatically load the one appropriate for the configured language.
The first line of the file will be used as a heading.

Additional files

ParameterDefs.txt
Contains custom scenario parameters that players can adjust like e.g. difficulty settings.
Teams.txt
Contains the Teamsettings for multiplayer scenarios.
*.ocd
Scenarios can contain local object definitions which are then available in that scenario only.
The engine will also search all parent folders (ocf) of the scenario for additional local object definitions. In this way, a scenario folder can contain object definitions which are then available in all its contents scenarios.
Sound.ocg
Scenarios can contain any number of sound files (*.ogg or *.wav). These can be played back by script during the game. Scenario local sounds are loaded dynamically on demand which might cause delays with large scenario files. The sounds should be stored in a local sound group.
Just like the global sound file, scenario local Sound.ocg groups may contain any subfolders with .ocg extension to define sound namespaces. For example, a file Sound.ocg/Animals.ocg/Growl.ogg can be played back using Sound("Animals::Growl").
Music.ocg
If the scenario contains music (*.ogg) files, these can be played back during the game in random order. Also see the script command Music(). Local music files should be stored in a local music group.
Material.ocg
Scenarios can contain local material definition groups. See overloading rules.
Graphics.ocg
Scenarios can overload individual entries of the global Graphics.ocg group as well as add new content like a sky background image or loader graphics (*.png or *.jpg). Sky graphics should either be tileable or big enough that it won't even tile if the player zooms out very far. Loader screen are displayed while the scenario is loading. If multiple files are present (Loader1.png, Loader2.png, Loader3.png...), one is selected randomly. You can optionally specify which loader to use in Scenario.txt. Loader image files located in parent scenario folders are also used.See overloading rules.
System.ocg
Scenarios can contain any number of script files (*.c). These can define or modify global functions, or append to loaded definitions. See overloading rules.
Names.txt
These names are used for clonks created in this scenario.
Info.txt
Here an author can store additional information about the development of his scenario, his email address, or other information he wants to share with other developers.

Additional files created for saved games or scenarios

MatMap.txt
Stores the material table used in this scenario. The materials listed here are used by the exact landscape and have to be available in the loaded Material.ocg group.
Game.txt
This component is generated by the engine and stores runtime object data of a savegame.
Objects.c
This component is generated by the engine if the game is stored as a scenario. Contains an InitializeObjects() function to recreate all objects placed during editing before. See Object saving.

Overloading Rules

Various system components (graphics, loader screens, materials, music, or objects) can be overloaded in scenarios. In doing this, parent scenario folders (ocf) are searched. Also, components located in child groups will always overload the same components located in parent groups.
Sven2, 2002-04
matthes, 2004-06
Marky, 2019-04