SnowRunner

SnowRunner

Discover a wealth of new maps, vehicles, modes, and more, all created by the community! Discover something new every day and expand your SnowRunner experience.

Find the game on Epic Games, Xbox, Playstation, Facebook, Twitter, Instagram, Reddit, Forums, Discord.

SnowRunner™ Editor Guide. Part #3

Part #3 of this guide continues the description of the map creation process (Chapter 5, from 5.12 to 5.15). It covers such aspects as: Sounds, Sound Domains, Zones, and Objectives.

Posted by on (updated ago)


Quick links to parts of this guide:

  • Part #1 - Introduction to SnowRunner™ Editor: First Launch, UI, File Paths (Chapters 1 to 4)
  • Part #2 - Creation of a Map, beginning (Chapter 5, from 5.1 to 5.11) that covers:
    • Terrain
    • “Geometry” Brushes
    • PBR Materials
    • Snow and Ice
    • Models
    • Plants
    • Distributions
    • Overlays
    • Rivers and Water Objects
    • References
    • Trucks
  • Part #3 - Creation of a Map, continuation (Chapter 5, from 5.12 to 5.15) that covers:
    • Sounds
    • Sound Domains
    • Zones
    • Objectives
  • Part #4 - Post-production operations: Packing a Map, Testing a Map, Publishing a Map, Playing on a Map (Chapters 6 to 10)
  • Part #5 - Viewing Trucks (Chapter 11)

If you want an offline copy, you can download the full guide in the PDF format here.


5. Creation of a Map

... (for sections 5.1-5.11 of this chapter, please refer to the Part #2).

5.12. Adding Sounds

To add a point source of the 3D sound to the scene:

  1. Right-click the terrain (or the Sounds section in the Scene View) and select Add Sound.
  2. A locator indicating the sound actor will appear in the scene. Move the appeared actor to the necessary area of the scene:
    96 adding sound 1
  3. To set the properties of the created sound actor, select it in the Scene View panel, within the Scene > Terrain > Sounds section of it. Properties of the actor are displayed at the lower part of the Scene View panel:
    97 sound properties
    You can specify the following properties:
    • Name - The internal name of the sound actor in the Editor.
    • Sound file - the sound that this actor will play. In this field, you need to specify the relative path to the sound, including its name without file extension (see the note below). Since our actor is a 3D sound source, the sound file for it must be MONO.

      NOTE: In the alpha version of the Editor, you cannot use custom sound files, you can use only the pre-defined set of sound files used by the game. All these sounds are stored in the shared_sound.pak archive, in the [sound] directory.
      In the Sound file field, you need to specify the path relative to the [sound] folder. When specifying a path, you can use either slashes (“\”) or backslashes (“/”), and you should not specify the file extension of the sound file.
      For example, if you want to play the sound located in the shared_sound.pak at the following path: [sound]\actors\actor_electric_01_loop.pcm, then you need to specify the following value in the Sound file field: actors/actor_electric_01_loop

    • Volume - the playback volume. The default value is 1 (the maximum, initial volume of the sound file). If you specify values in the [0,1] interval, the volume of the sound file will be multiplied by this parameter (and the sound will be decreased correspondingly).
    • Distance section - the section that sets the sound distances (in meters):
      • (Distance) Min - the sound volume will be played at its maximum within a sphere with a center in the source of the sound and a radius equal to the value of this parameter. For example, in the screenshot of the properties above, there will be maximum volume within a radius of 10 meters from the actor.
      • (Distance) Max - the hearing distance. The sound volume will change from its maximum value to zero between Distance Min and Distance Max.
    • Loop delay (Min, Max) section - delay in seconds for the recurred playback of the sound. If both Min and Max values are zero, then the sound will play continuously, without a pause. If these values are not equal to zero, then, after the playback of the sound is finished, there will be a pause. The length of this pause will be in the range of [Min, Max] seconds (a random value will be taken from this range). After the pause, the sound will be played again.
    • Conditions - if this parameter is not specified (the field is empty), the sound will play at any time, during day or night. However, you can limit the interval during which it can be played:
      • If you want to play your sound only during the day, then you should set this parameter to DAY_FOREST, DAY_WIND
        Please note that these two comma-separated IDs are the single value of this parameter, not the two values (see the screenshot above). They cannot be used separately.
      • If you want to play your sound only during the night, then you should set this parameter to NIGHT_FOREST, NIGHT_WIND
        Please note that these two comma-separated IDs are the single value of this parameter, not the two values (see the screenshot above). They cannot be used separately.

5.12.1. Adding Series of Sounds

When configuring a sound actor (or a sound domain, see "5.13" below), you can specify not a single specific sound file to be played, but a random alternation of the sounds from a specific set. For example, a barking of a dog can be played as a series of barking sounds, where each successive sound will be different from the previous one.

You can see that many series of the files in the [sound] directory of the shared_sound.pak archive have been designed that way.
For example, the set of sounds for a night owl, which you can find in the [sound]\amb\amb_us_autumn\amb_us_autumn_night_forest_owl\ directory, consists of 5 sounds. Each of these sound files has the suffix “__<N>” (the double underscore with a number) in the file name:

  • amb_us_autumn_night_owl_rnd__1.pcm
  • amb_us_autumn_night_owl_rnd__2.pcm
  • amb_us_autumn_night_owl_rnd__3.pcm
  • amb_us_autumn_night_owl_rnd__4.pcm
  • amb_us_autumn_night_owl_rnd__5.pcm

To configure the sound actor to play a series of these sounds, rather than a particular sound, you need to specify the name of one of these files without its “__<N>” suffix in the Sound file field of this actor (see "5.12. Adding Sounds" above). In this case, the whole series of these sounds will be played.

For example, to play in your sound actor all the files above, you can specify the following value of the Sound file parameter in the actor's properties:
amb/amb_us_autumn/amb_us_autumn_night_forest_owl/amb_us_autumn_night_owl_rnd

5.13. Adding Sound Domains

You can add 3 types of Sound Domains to the map:

  • Regular SoundDomain - sets the area where a certain 2D stereo sound will play. For example, using this object we can configure the playback of the water lapping in the swamp.
  • OneShotSoundDomain - these domains are designed to play single 3D sounds inside a certain ring around a player when he/she enters the domain. Sounds will be generated at a random position within this ring. For example, you can configure a sound of the rockfall using this type of domain. When the player drives near a large rock and enters the domain located near it, the player will hear that the sounds of crumbling stones will be played around him/her at a random position with a certain frequency.
  • NoMusicSoundDomain - these domains are designed to turn off the in-game music in certain areas. When the player enters the domain of this type, the volume of the music is gradually decreased to zero.

All these types of domains are added to the map in a standard way - by right-clicking the SoundDomains section in the Scene View panel and selecting Add <type of the added domain> in the context menu.

98 adding sound domains

After that, the domain will be created, and the area of this domain will appear on the map. By default, this area is a square with four vertices.

99 adding sound domains 2

You can edit the domain area in the standard way: move the vertices, add vertices to this area, or delete unnecessary vertices.
To add a new vertex, right-click this domain in the Scene View panel and select Add vertex from the context menu. Or, if you want to add a vertex at the particular position, you can select a particular vertex of a domain, right-click it, and select Add vertex in the context menu. In this case, the new vertex will be added in the middle between the selected vertex and the next one in a clockwise direction.

NOTE: If you want the domain to work correctly, its area must be convex. If you need to create a domain of a more complex shape, you need to compose it from several convex domains with the same settings.

After the setup of the domain area, if the domain is selected, you can configure its properties at the lower part of the Scene View panel.

9100 sound domain properties

These properties vary for different types of domains. They are described in the subsections below.

NOTE: The Sound file field (see "5.12" above), which sets a sound or a series of sounds to be played (for SoundDomain and OneShotSoundDomain domains), works the same way as for regular sounds. In the alpha version of the Editor, you cannot use custom sound files for domain sounds, you can use only the pre-defined set of sound files used by the game. All these sounds are stored in the shared_sound.pak archive, in the [sound] directory.
In the Sound file field, you need to specify the path relative to the [sound] folder. When specifying a path, you can use either slashes (“\”) or backslashes (“/”), and you should not specify the file extension of the sound file.
For example, if you want a domain to play a series of sounds located in shared_sound.pak at the following path: [sound]\amb\domains\amb_dom_autumn_day_bog_frogs_rnd_set\,
then you need to specify the following value in the Sound file field: amb/domains/amb_dom_autumn_day_bog_frogs_rnd_set/amb_dom_autumn_day_bog_frogs_rnd
For more details on playing sounds and sound series, see "5.12. Adding Sounds" and "5.12.1. Adding Series of Sounds" above.

5.13.1. SoundDomain Properties

For a general description of a SoundDomain, see "5.13. Adding Sound Domains".

Properties of a SoundDomain are the following:

  • Name - the internal name of the sound domain in the Editor.
  • Sound file - the looped stereo sound that this domain will play. In this field, you need to specify the relative path to the sound, including its name without file extension (see note below).

    NOTE: In the alpha version of the Editor, you cannot use custom sound files for domain sounds, you can use only the pre-defined set of sound files used by the game. All these sounds are stored in the shared_sound.pak archive, in the [sound] directory.
    In the Sound file field, you need to specify the path relative to the [sound] folder. When specifying a path, you can use either slashes (“\”) or backslashes (“/”), and you should not specify the file extension of the sound file.
    For example, if you want a domain to play a series of sounds located in shared_sound.pak at the following path: [sound]\amb\domains\amb_dom_autumn_day_bog_frogs_rnd_set\,
    then you need to specify the following value in the Sound file field: amb/domains/amb_dom_autumn_day_bog_frogs_rnd_set/amb_dom_autumn_day_bog_frogs_rnd
    For more details on playing sounds and sound series, see "5.12. Adding Sounds" and "5.12.1. Adding Series of Sounds" above.

  • Overlay - the weight of the sound of this domain (from 0 to 1). The sound of the domain will be mixed with the main ambient sound of the scene with this weight.
  • Volume - the playback volume. The default value is 1 (the maximum, initial volume of the sound file). If you specify values in the [0,1] interval, the volume of the sound file will be multiplied by this parameter (and the sound will be decreased correspondingly).
  • Fading distance - the distance (in meters) from the domain border where the sound will fade smoothly from its maximum volume (at the domain border) to zero (at the fading distance). On the map, this area of the fading sound is displayed as the semi-transparent external area around the domain:
    9101 sounddomain fading distance
  • Conditions - if this parameter is not specified (the field is empty), the sound will play at any time, during day or night. However, you can limit the interval during which it can be played:
    • If you want to play your sound only during the day, then you should set this parameter to DAY_FOREST, DAY_WIND
      Please note that these two comma-separated IDs are the single value of this parameter, not the two values (see the screenshot of domain properties in "5.13"). They cannot be used separately.
    • ○ If you want to play your sound only during the night, then you should set this parameter to NIGHT_FOREST, NIGHT_WIND
      Please note that these two comma-separated IDs are the single value of this parameter, not the two values (see the screenshot of domain properties in "5.13"). They cannot be used separately.

5.13.2. OneShotSoundDomain Properties

For a general description of an OneShotSoundDomain, see "5.13. Adding Sound Domains".

Properties of an OneShotSoundDomain are the following:

  • Name - the internal name of the sound domain in the Editor.
  • Sound File - the sound or the series of sounds this domain will play. In this field, you need to specify the relative path to the sound, including its name without file extension (see note below). Typically, for an OneShotSoundDomain, the suffix __<N> in the file name is also omitted (to play a series of sounds, see "5.12.1").

    NOTE: In the alpha version of the Editor, you cannot use custom sound files for domain sounds, you can use only the pre-defined set of sound files used by the game. All these sounds are stored in the shared_sound.pak archive, in the [sound] directory.
    In the Sound file field, you need to specify the path relative to the [sound] folder. When specifying a path, you can use either slashes (“\”) or backslashes (“/”), and you should not specify the file extension of the sound file.
    For example, if you want a domain to play a series of sounds located in shared_sound.pak at the following path: [sound]\amb\domains\amb_dom_rolling_stones_rnd_set\,
    then you need to specify the following value in the Sound file field: amb/domains/amb_dom_rolling_stones_rnd_set/amb_dom_rolling_stones_rnd
    For more details on playing sounds and sound series, see "5.12. Adding Sounds" and "5.12.1. Adding Series of Sounds" above.

  • Volume (Min, Max) - the volume range of the played sounds. Each new sound will be played with a new random value of the volume from this range.
  • Radius (Min, Max) - these fields set a ring around the player, with the inner radius of the ring equal to the Min value and its outer radius equal to the Max value. Both Min and Max values are specified in meters. The sound will be played at the random point inside this ring.
  • Interval (Min, Max) - these fields set the minimum and maximum time intervals between sounds (in seconds). Each successive sound will be played after the previous one with a delay, and the value of this delay will be each time taken randomly from the [Min, Max] range.
  • Weather Intensity threshold - this field is currently not used. You should keep the default value of it, which is -1.
  • Conditions - if this parameter is not specified (the field is empty), the sound will play at any time, during day or night. However, you can limit the interval during which it can be played:
    • If you want to play your sound only during the day, then you should set this parameter to DAY_FOREST, DAY_WIND
      Please note that these two comma-separated IDs are the single value of this parameter, not the two values (see the screenshot of domain properties in "5.13"). They cannot be used separately.
    • If you want to play your sound only during the night, then you should set this parameter to NIGHT_FOREST, NIGHT_WIND
      Please note that these two comma-separated IDs are the single value of this parameter, not the two values (see the screenshot of domain properties in "5.13"). They cannot be used separately.

5.13.3. NoMusicSoundDomain Properties

For a general description of a NoMusicSoundDomain, see "5.13. Adding Sound Domains".

Properties of a NoMusicSoundDomain are the following:

  • Name - the internal name of the sound domain in the Editor.
  • Distance threshold - the distance (in meters) from the domain border, at which the music volume decreases/increases.
  • Fade in time - the time (in seconds) for the fade-in transition. This transition will increase the volume of music (from zero to the volume set in the game) when the player is leaving the domain.
  • Fade out time - the time (in seconds) for the fade-out transition. This transition will decrease the music volume (from the volume set in the game to zero) when the player is entering the domain.

5.14. Adding Zones

NOTE: The creation of zones is currently available only in the Public Test Server (PTS) version of the game. In the regular version of the game, they are unavailable.

Using zones you can add to your map such in-game objects as Fuel Stations, Garage, Cargo Loading Zones, and so on. Along with that, zones can be used in various objectives (Contracts, Tasks, and Contests) that you may want to add for your map, see "5.15. Adding Objectives" for details.

NOTE: Zones cannot be used in References. They can be added there, but they will not work correctly on the target map when the Reference with these zones will be added to it.

You should specify properties of each zone very carefully. The Editor allows you to configure a zone with incorrect parameters and logic (e.g. specify multiple “props” for one zone), which can result in unpredicted behavior.

NOTE: The system validates some aspects of the configuration of zones during packing.
The log of occurring errors can be found in Documents\My Games\SnowRunner\base\logs.ModMapError.txt
e.g. C:\Users\<username>\Documents\My Games\SnowRunner\base\logs.ModMapError.txt

To create a zone:

  1. Open the necessary map in the Editor.
  2. Add the zone locator to the map.
    To do this:
    1. Right-click the terrain (or the Zones section in the Scene View panel), and select Add Zone from the context menu.
    2. Move the locator to the necessary location of the map in a standard way.
  3. Specify the ID of the zone locator.
    To do this:
    1. Select the created zone.
    2. In the zone properties (in the lower part of the Scene View panel), specify the ID of the zone in the Id field.
      All zone IDs must contain only small Latin letters, digits, and "_".
      In our example, it is “test_zone_1”:
      zone locator id
    3. Save the map.
  4. Specify other properties of the zone locator, such as its name for UI (Name), icons, etc. See "5.14.2. Zone Locator properties" for details.
    zone locator properties
  5. On the toolbar of the Editor, click the Zone Settings button (zone settings button).
    zone settings button on toolbar
    This will open the window of the specific plugin (ZoneSettingsEditor.exe) that allows you to configure the logic of zones.
  6. In the plugin window, expand the section named as your map.
  7. Then, click the plus button (plus button) next to the TERRAIN LOCATORS LIST.
    terrain locators list
  8. After doing this, the new list entry will appear in the list, named as [0].
    Each new entry in this list ([0], [1], [2], ...) will correspond to a separate zone locator on the map.
    2020 07 27 16 10 58 2
  9. Now you need to link the new entry in the TERRAIN LOCATORS LIST to the zone locator you have added to the map (at the step #2 above).
    They are linked by ID. I.e., you need to specify the same ID you used in step #3 (“test_zone_1” in our example) for the list entry.
    To do this:
    1. Double-click the [0] (or [1], [2], ...) value in the list.
    2. Replace the [0] value with the ID of the zone.
      same id here
  10. There are two types of the zones in the game:
    1. Zones that are visible to the player as a “zone” and have the particular type (e.g. Fuel Station, Garage Entrance, and so on). These zones should have the props section with a set of properties corresponding to the type of the zone.
    2. Zones that just map a specific area on the map to some ID, which is used somewhere else. Typically, these zones are somehow related to objectives (e.g. the player needs to deliver a specific truck there, etc.). These zones can have the empty props section.
  11. So, if you want to simply map a specific zone on the map to some ID (for example, to create an objective for this zone later on), do not fill the props section and proceed to steps 13-14 below.
  12. Or, if you want to create a zone of the particular type, you need to select this type and specify the logic for it. I.e., you need to add a set of properties to the props section and fill them in.
    To do this:
    1. Click the plus button (2020 07 27 16 09 43) next to props below your zone in the list.
      2020 07 27 16 26 11
      WARNING: One zone must have only one set of properties (which corresponds to its type)! Adding multiple entries to the props list may result in unpredicted behavior.
    2. In the appearing dialog, select the type of the zone:
      2020 07 27 16 27 36
      After selection, click OK.
    3. This will add to the form the set of properties that corresponds to the selected type of zone.
      2020 07 27 16 28 53
    4. Setup the logic of the zone by filling in the appeared fields.
      Some zone types, like FuelStation or AutoRepairAndRestore, require no properties to be filled in. Some, like CargoLoading, require the setup of their fields. For descriptions of fields corresponding to the particular zone types, please refer to the subsections below.
  13. Optional step: If you have added multiple zone locators to the map (i.e. if you repeated steps 2-3 multiple times), you need to add the corresponding entries to the TERRAIN LOCATORS LIST. You can do it by repeating steps 7-12 for these zones.
  14. After you have specified properties of all zones that were added to the map, you need to save your changes. To do this, in the plugin window, press CTRL+S or select File > Save in the main menu of the plugin window.
    2020 07 27 16 31 32
    The values of the specified zone properties are saved in the folder of the map within the \Media\levels\ folder. After saving, it will have two files related to zones:
    1. user_name_of_map.txt - which stores the name of your map (to link properties to it).
    2. zone_settings.json - which stores specified zone properties in the JSON format:
      zone settings json
      NOTE: Properties of objectives are stored in the same folder, in the objective_settings.json file.
  15. Now, pack your map. After doing this, you will be able to test your zones in the game.
    2020 07 27 16 35 08

NOTE: Along with zone properties, the ZoneSettingsEditor.exe plugin also allows you to specify objectives for your map (see "5.15" below) and enable the “fog of war” feature (see "5.14.4" below).


5.14.1. Properties of various Zone Types

5.14.1.1. Loading Cargo: ...CargoLoading and ...ManualLoading zones

The ZonePropertyCargoLoading zones allow the player to load cargo of the particular type within them.

2020 07 27 16 57 22

The properties of this zone type are the following:

  • platformId - optional field, which allows you to specify ID of the zone of the ZonePropertyManualLoading type. Within the zone with this ID, the system will spawn the physical cargo, which will allow the player to manually load it using the crane. I.e., to use this feature, you need to create an additional zone, set its ID to the platformId value, and add the ZonePropertyManualLoading property to the props list of this additional zone.
  • cargoSettings - this list allows you to specify the types of cargo that the player will be able to obtain in this zone. You can add multiple types of cargo here (see the screenshot above). To add a type of cargo:
    1. Click the 2020 07 27 16 09 43 next to the cargoSettings list.
    2. Expand the appeared numbered section.
    3. Double-click the empty value next to the name field and select the necessary type of cargo.

The ZonePropertyManualLoading zone is the zone that adds the “manual loading of the cargo” feature to the existing ZonePropertyCargoLoading zone (see platformId above). The ZonePropertyManualLoading zone itself has no properties.


5.14.1.2. Fuel Station and Repairing: ...FuelStation and ...AutoRepairAndRestore zones

The ZonePropertyFuelStation zones work as Fuel Stations. They have no properties that you need to specify - only the ZonePropertyFuelStation property itself is required.

2020 07 27 17 21 12

If a zone has the ZonePropertyAutoRepairAndRestore property in props, it allows the player to automatically repair the vehicle. As with ZonePropertyFuelStation, no additional properties are required.


5.14.1.3. Garage: ...GarageEntrance and ...GarageExit zones

To add a Garage to the map, you need to add two zones:

  • Garage entrance - the zone with the ZonePropertyGarageEntrance property in the props section.
  • Garage exit - the zone with the ZonePropertyGarageExit property in the props section.

Both of these zones have no additional properties, except the ZonePropertyGarageEntrance or ZonePropertyGarageExit property itself.

2020 07 27 17 23 24

2020 07 27 17 24 09

A map can contain only one ZonePropertyGarageEntrance zone and only one ZonePropertyGarageExit zone.

NOTE: In the current version of the game, the UI of a custom Garage may have black background.


5.14.1.4. Trailer Store: …TrailerAttach zones

The ZonePropertyTrailerAttach property allows you to create the “Trailer Store” zones.
These zones have no properties that you need to specify - only the ZonePropertyTrailerAttach property itself is required.

2020 07 27 17 26 59


5.14.1.5. Upgrades: ...UpgradesGiver zones

The ZonePropertyUpgradesGiver property allows you to create the zones that give various upgrades to the player. This property has the upgrades list where you need to list IDs of all upgrades that will be given to the player by this zone.

2020 07 27 17 28 19

NOTE: For information on IDs of the various parts of the truck, see "5.11.1. How to identify IDs of truck parts" above.

To add an upgrade to the upgrades list:

  1. Click the 2020 07 27 16 09 43 next to the upgrades list.
  2. Double-click the empty value next to the appeared numbered section.
  3. Specify the ID of the upgrade there (e.g. g_scout_highway).


5.14.1.6. Watchtower: ...Watchpoint zones

The ZonePropertyWatchpoint property allows you to create a Watchtower (zone), which the player may use to explore the map.

2020 07 27 17 30 58

The properties of a Watchtower here are the following:

  • range - the range of the Watchtower (that defines the opened “explored” area), in meters.
  • Duration of transition - Duration of the animation of “observation” (with the camera moving according to the specified camera settings, see below) that will be played when the player selects “Launch Observation” for this Watchtower. The value is specified in milliseconds.
  • Delay at start - the delay before the playback of the “observation” animation, in milliseconds.
  • Delay at end - the delay after the playback of the “observation” animation, in milliseconds.
  • cameraPosStart - the position of the camera at the beginning of the “observation” animation.
  • cameraDirStart - the direction vector for the camera at the beginning of the “observation” animation.
  • cameraPosEnd - the position of the camera at the end of the “observation” animation.
  • cameraDirEnd - the direction vector for the camera at the end of the “observation” animation.

TIP: To specify initial cameraPosStart and cameraPosEnd values and make the “observation” animation work, you can use coordinates of some objects on the map that are displayed in their properties (you will need to add some value for Y coordinate).
2020 07 27 17 33 43
Then, you can tune the values as necessary.


5.14.1.7. “Recover” feature: …Recovery zone

The ZonePropertyRecovery zone works as a target point for the “RECOVER” feature from the functions menu.
If there are multiple zones of that type, the priority field allows you to set the priority for it. The player’s car will be recovered to the zone with the highest priority value.
In the game, the Recovery zones are invisible to the player.

NOTE: Currently, the ZonePropertyRecovery zones do not work in the game.

2020 07 27 17 36 01


5.14.2. Zone Locator properties

NOTE: For general info on creating zones - see "5.14. Adding Zones" above.

Along with modification of the zone type and logic as described above, you may want to modify the properties of zone locator itself. You can do it in the Editor, after selecting a zone locator in the Zones list in the Scene View.

The properties of the zone locator are the following:

  • Type - using this drop-down you can move the zone to the particular category in the Zones list within Scene View.
  • Org X, Org Z, Dir - Coordinates and direction vector of the zone on the map.
  • Id - ID of the zone locator. This particular ID is used to identify the zone in the Editor and in the zone settings plugin.
  • Icon 30x30, Icon 40x40 - In these fields you can specify the IDs of the icons that will be used for the zone on the mini-map and in the game. The list of possible values for these fields can be found in "5.14.3" below.
  • Name - the name of the zone for UI.
  • Is Visible On Minimap - Whether the zone is visible on minimap (True) or hidden (False).
  • Wall section- initially, the zone lies on the surface of the map. However, sometimes it is necessary to raise it above the surface. In this case, you can use the following settings:
    • Is Wall - make the 3D zone
    • Height - the height to which the zone will be raised
  • Shape Type - the shape of the zone (rectangular or round)
  • Border section - settings of the border of the zone:
    • Rounding Radius - the radius for rounded corners of the zone border
    • Thickness - the thickness of the border
    • Scroll Speed and direction - the speed of movement of the dashed line on the zone border and the direction of such movement. The direction is specified by the minus sign (“-”) or its absence.
    • Opacity - the transparency of the border.
  • Dimensions - settings of the actual dimensions of the zone:
    • Length or diameter - the length or the diameter of the zone (if Shape Type = Circle).
    • Width - the width of the zone.


5.14.3. List of Icons for Zones

The list of in-game icons that can be used for zones (the Icon 30x30 and Icon 40x40 fields in the zone locator properties, see above) is the following:

Icon 30x30

Icon 40x40
airportAltImg30 airportAltImg
airportImg30 airportImg
bunkerImg30 bunkerImg
/ bunkerAltImg
constructionWarehouseImg30 constructionWarehouseImg
drillingSiteImg30 drillingSiteImg
factoryImg30 factoryImg
farmImg30 farmImg
fuelStationAlt2Img30 fuelStationAlt2Img

fuelStationAltImg30
/ fuelStationAltImg40

fuelStationAltImg
fuelStationImg30 fuelStationImg
/ fuelStationImg40
garageBlockImg30
garageImg30 garageImg
/ garageImg40
garageNoImg30
gatewayImg30 gatewayImg
/ gatewayImg40
gatewayLockedImg30 gatewayLockedImg
/ gatewayLockedImg40
lumberjackImg30 lumberjackImg
manualLoadingMarker40
/ manualUploadingMarker40
markerImg30 markerGpsImg
repairRefuelZoneImg
ruins30Bricks1 ruins40Bricks1
ruins30Bricks2 ruins40Bricks2
ruins30Bricks3 ruins40Bricks3
ruins30Metals1 ruins40Metals1
ruins30Metals2 ruins40Metals2
ruins30Metals3 ruins40Metals3
ruins30Woods1 ruins40Woods1
ruins30Woods2 ruins40Woods2
ruins30Woods3 ruins40Woods3
sawmillImg30 sawmillImg
serviceHubImg30 serviceHubImg
townStorage30 townStorage
trailerShopImg30 trailerShopImg40
upgradeCreateImg30 upgradeCreateImg40
/ upgradeCreateImg40Plus
watchTowerImg30 watchTowerImg
/ watchTowerImg40


5.14.4. Adding Fog of War: "isNeedToBeCloacked" flag

Along with specifying zone properties, the ZoneSettingsEditor.exe plugin also allows you to add the “Fog of War” to your mini-map, which is displayed as black color there.

To add the fog of war to your map:

  1. On the toolbar of the Editor, click the Zone Settings button (2020 07 27 14 49 28).
    2020 07 27 16 07 57
  2. In the appearing dialog of the plugin, enable the isNeedToBeCloacked option.
    2020 07 27 18 34 45
  3. To save your changes, press CTRL + S or select File > Save in the main menu of the plugin window.

The information on the fog of war status is stored along with the zone properties (see "5.14." above).


5.15. Adding Objectives

NOTE: Creating objectives is currently available only in the Public Test Server (PTS) version of the game. In the regular version of the game, they are unavailable.

Using the zone settings plugin (ZoneSettingsEditor.exe), are can specify Tasks, Contracts, and Contests for your custom map. This is done similarly to adding zones (see "5.14. Adding Zones").
I.e., you need to click the Zone Settings button (2020 07 27 14 49 28) on the toolbar of the Editor and then specify the objective settings in the appearing dialog, using the same UI techniques as with zones.

2020 07 27 16 07 57 1

The values of the specified properties of objectives are saved in the folder of the map within the \Media\levels\ folder, in the objective_settings.json file there. So, if you want to reuse the settings for both zones and objectives, you will need 3 files from that folder: user_name_of_map.txt, zone_settings.json and objective_settings.json. However, you will need to change the name of the map in these files.

NOTE: The system validates some aspects of the configuration of objectives during packing. The log of occurring errors can be found in Documents\My Games\SnowRunner\base\logs.ModMapError.txt
e.g. C:\Users\<username>\Documents\My Games\SnowRunner\base\logs.ModMapError.txt

However, the settings of objectives have some specifics that are described here and in the subsections below.

Important note on IDs used:

  • In the fields of the objectives where you need to specify the link to the zone (e.g. globalZoneId), you need to specify it in the following format:
    name_of_the_map || ID_of_the_zone
    For example: level_test_map_5 || test_zone_1

    However, in the additional zones fields, the format is different, you need to specify the ID_of_the_zone only. For example: test_zone_1

    Currently, the IDs of the zones in the zone settings plugin need to be specified manually, as text. Please ignore the 2020 07 27 19 57 03 button in these fields!
    This is valid for both the globalZoneId field and additional zones fields.

    2020 07 27 19 58 03

    NOTE: The ID of the zone locator in Editor is specified for the zone as described in "5.14. Adding Zones".

  • In various Truck Uid fields, you need to specify the ID of the Truck, which you can specify for the Truck in Editor in its properties (in the Id field). This is not the type of the Truck.
    2020 07 27 20 00 00

  • For tasks and contests, the ID of the zone where the task or contest is activated (by the player) needs to be specified in the taskGiverZone field. And, you can specify additional such zones in the additionalTaskGivers list.

Notes on names and descriptions:

  • Ui Desc fields – allow you to specify descriptions of objective and particular assignments of the objective throughout the UI.
    NOTE: The Ui Desc field within the particular Stage (not specified in the screenshot below) does not correspond to a field in UI. It will be removed.
    2020 07 27 20 03 03

  • The name of the objective in the UI is specified when adding it to the corresponding list of objectives. It can be modified by double-clicking later.
    2020 07 27 20 04 38

5.15.1. Stages

All objectives consist of Stages. The Stages list specifies what particular assignments of what particular type the player needs to perform to complete an objective. Additional settings can be specified for each assignment, depending on its type.

You need to add at least one stage to your objective.

Fields of the stage define assignment of the particular type. These fields vary from type to type. They are described in the subsections below.


5.15.1.1. Delivery of Goods (“actions” section)

The group of fields below the actions field corresponds to the “delivery of goods” assignment.
For each zone that you need to deliver the goods to, add the separate entry to the zoneToFill list.
The ID of this zone is specified in the globalZoneId field. If you want to specify some additional zones where the player may deliver the goods, specify their IDs in the additionalUnloadZones list.
The cargo that needs to be delivered is specified in the cargo list (ID of cargo + its amount).
For example, the assignment of delivering bricks to the one of two zones (unloading, unloading2) will look like the following:

2020 07 27 20 07 46

NOTE: To create a zone for loading cargo, you can use the zone of the ...CargoLoading type (see "5.14.1.1" above). To create a zone where the physical objects of goods will be spawned for manual loading, you can use the spawnCargoOnStageActive stage (see "5.15.1.7" below).

If necessary - you can specify the ID of the truck that is required to perform this delivery in the Truck need to visit Uid field.
For description of Model Building Settings - see "5.15.3" below.


5.15.1.2. Delivery of the Truck (“truckDelivery” section)

The group of fields below the truckDelivery field corresponds to the “delivery of a truck” assignment.
Here you need to place the truck on the map in Editor and specify its Id as described above (e.g. task_truck).
Specify the IDs of the target zone(s) in the globalZoneDeliveryId field and, if necessary, additionalDeliveryZones (similarly to the goods delivery assignment described above).

2020 07 27 20 14 45

In the afterStageFinished field, specify an action the system needs to do after the player performs the assignment.


5.15.1.3. Repairing the Truck (“truckRepair” section)

The group of fields below the truckRepair field corresponds to the “repairing of a truck” assignment.
Similarly to truckDelivery, you need to place the truck on the map in Editor, specify its Id there, and then specify the same ID in the assignment.


5.15.1.4. Changing the Truck (“changeTruck” section)

The group of fields below the changeTruck field corresponds to the assignment where the player needs to change his/her truck to the particular truck.
Similarly to truckDelivery, you need to place this truck on the map in Editor, specify its Id there, and then specify the same ID in the assignment.


5.15.1.5. Visiting All Zones from the List (“vizitAllZones” section)

The group of fields below the vizitAllZones field corresponds to the assignment where the player needs to visit all zones from the specified list.

For each zone, you need to specify its ID in the globalZoneId field (similarly to the goods delivery assignment described above).
If necessary - you can specify the ID of the truck that the player needs to use to visit this zone in the Truck need to visit Uid field.


5.15.1.6. Seismograph Usage (“Seismograph Settings” section)

The group of fields below the Seismograph Settings field corresponds to the assignment where the player needs to use the seismograph in all zones from the specified list.
The properties of this assignment are identical to vizitAllZones (see above).


5.15.1.7. Spawning Cargo on a Map (“spawnCargoOnStageActive” section)

The spawnCargoOnStageActive field does not correspond to an assignment.
It allows you to create a zone where the system will be spawning cargo as a physical object. After manual loading with the crane, the spawned cargo can be used for the “delivery of the goods” assignment.

The ID of the target zone here is specified in the zone > globalZoneId field. The spawned cargo items must be added to the cargos list (similarly to the “delivery of goods” assignment).

NOTE: Cargo spawned by the spawnCargoOnStageActive feature can be loaded to the truck only manually, by the crane. For automatic loading of the cargo, use the ...CargoLoading zone (see "5.14.1.1" above).


5.15.2. Other fields of Objectives

5.15.2.1. Common fields (for all objectives)

  • Ui Desc - the description of your objective.
  • Required rank - the minimum rank of the player that is required for the objective.
  • Reward Description - the description of the reward received after accomplishing this objective.
  • Recommendation - you can select one of the standard in-game recommendations for this objective here. The corresponding recommendation will be displayed to the player in the UI.
  • Don’t show reward pop-up - whether or not the game should display the reward pop-up to the player.
  • Stages - see "5.15.1. Stages" above.
  • ModelBuildingSettings - see "5.15.3" below.
  • Blocker Objectives - list with the names of objectives you need to accomplish to receive the current objective. The name of the objective is specified when you create a new Contract, Task or Contest in the corresponding list.
    2020 07 27 20 04 38 1
    The same values can be used in the Blocker Objectives list.
  • rewards - this section allows you to add rewards for the objective:
    • …Experience - the amount of XP granted as a reward.
    • …Money - the amount of money granted as a reward.
    • …Item - here you need to specify the ID of the necessary upgrade. For details, see "5.11.1. How to identify IDs of truck parts".
    • …OpenZoneProperties - we can open the particular zone to the player as a reward. You need to specify:
      • zoneId - the ID of the zone (in the short form, without the name of the map and || ).
      • mapId - the ID of the map (the name of the XML file of your map, without the extension).
      • props - properties of this zone, see "5.14.1. Properties of various Zone Types" for details.
        NOTE: You do not need to create a duplicate of this zone in zone settings. However, you need to create a zone locator for this zone (with the specified ID).
    • …ByTime - here you can set 3 types of the rewards (Bronze, Silver, and Gold) given to the player based on the time of the accomplishment of the objective. For each type, you specify:
      • Time limit - time limit for this type of reward, in seconds.
      • Experience - the amount of granted XP.
      • Money - the amount of given money.
      • Possible Item reward - the ID of the necessary upgrade. For details, see "5.11.1. How to identify IDs of truck parts".


5.15.2.2. Specific fields for Contracts

  • employer - the employer of the contract. This field is mandatory and you need to select one of the existing employers from the list.


5.15.2.3. Specific fields for Tasks

  • taskGiverZone - the ID of the zone where the task is activated (by the player).
  • additionalTaskGivers list - the list with IDs of additional zones that activate the task.


5.15.2.4. Specific fields for Contests

  • taskGiverZone - the ID of the zone where the contest is activated (by the player).
  • additionalTaskGivers list - the list with IDs of additional zones that activate the contest.
  • failReasons - the list that contains the conditions for failure of the contest. For example, failure by time, failure by the amount of the received damage, failure due to entering the Garage, etc. There can be multiple reasons for failure here.

    NOTE: When specifying the time of the beginning of the contest and the maximum time when it needs to be accomplished, you need to specify hours as integers and in 24-hour format. For example, the following settings will set the contest to start at 2:00 AM and will set its deadline to 3:00 AM.
    2020 07 27 20 31 56
    You cannot specify float values (e.g. 1.5) here, only integers (e.g. 1 or 2).
    If the player will take this contest earlier (say, at 11:00 PM), the game will switch its time on the map to 2:00 AM automatically.


5.15.3. Model Building Settings

The Model Building Settings fields allow you to link the process of “building” some object on the map to the process of accomplishing stages by the player. The same process of substituting one model on the map with another one and playing the corresponding animation can be used in the game not only for “building”, but for other scenarios too (“repairing” some object, etc.). In the text below, we will use the term “build” meaning any action of that type.

Usage of this functionality requires appropriate animations (e.g. the animation of repairing the bridge) and the model setup. Therefore, currently, you can use this functionality for models where these things are already configured. Typically, these models can be identified by the _objective suffix in their names and you can find them by this suffix in the Select Asset window when adding a model.
For example, you can use the bridge_wooden_big_02_objective model.

2020 07 27 20 36 14

The setup of Model Building Settings fields will require you to know the names of stagesProgress of these models (i.e. states of this object in the process of “building”). For each model used in the game, you can view these states in the XML file of the class of the model. These XML classes can be found in the initial.pak archive, in the [media]\classes\models\ folder there.
In these XML files, names of these states can be found as a value of the Name attribute of the Subset tag.
For example, in the bridge_wooden_big_02_objective.xml model class, you will find such states as build_stage_0 and build_stage_1:

2020 07 27 20 53 34

Along with it, you will need to specify the Tag for the selected model in the Editor. It is specified in the properties of the model, after selecting this model in Scene View.

2020 07 27 20 55 02

For example, in the screenshot above, we have specified the “bridge_tag” for the bridge_wooden_big_02_objective model.
The same tag you will need to specify in the Model Building Settings fields, see below.

As you can see from the settings of objectives, there can be two scenarios for “building” objects:

  1. We can link “building” of an object to the cargo delivered by the player.
  2. We can link “building” of an object to the accomplished stages of the objective.

Scenario #1:
If we are linking to the delivered cargo, we need to fill in the fields in the actions stage of the objective, which describes the assignment to deliver the cargo (see "5.15.1.1" above).

Particularly, the Model Building Settings (Depend On Cargo) fields there:

  • levelName - this field is filled in automatically and contains the name of the map.
  • modelTag - specify here the same tag that you specified for the model in Editor (see above). For example, the “bridge_tag” that we have used above.
  • stagesProgress - in this list, you need to link the states of the model to the status of the delivery. Goods can be either delivered or not delivered. So, you need to add two stages here: one for goods not delivered (with 0 value) and one for delivered goods (with 1 value).

    2020 07 27 21 03 53
    After that, we need to specify states of the model (build_stage_0 and build_stage_1 in our example, see above) as the IDs of the corresponding stages. To do this, you need to double click the default IDs ([0] and [1]) and replace them with these stages.

The final set of settings here will look like the following:

2020 07 27 21 05 52

Scenario #2:
If we are linking to the accomplished stages of the objective (see "5.15.1"), we need to fill in the fields in the Model Building Settings (Depend On Stages) section within this objective.

The fields here are specified similarly to the Scenario #1. However, in the stagesProgress list, you need to create entries corresponding not to the status of delivery but to the amount of stages accomplished by the player for this objective.

For example, let’s assume that your objective contains two stages and the model has 3 states (let’s assume that the model has the build_stage_0, build_stage_1, and build_stage_complete states). The default state of the model (when the player has accomplished no stages) will be build_stage_0. When the player has accomplished the first stage, we want the model to switch into the build_stage_1 state. When the player has accomplished two stages, we want the model to switch into the final build_stage_complete state.
In this case, the necessary settings will be the following:

2020 07 27 21 09 06

As you can see, the stagesProgress list actually maps states of the model (on the left) to the amount of accomplished stages (on the right).
These settings will work as described above.

NOTE: In the game, the bridge_wooden_big_02_objective model has no build_stage_complete state. So, please treat these settings as an illustrative example only.


END OF PART #3


Quick links to parts of this guide:

  • Part #1 - Introduction to SnowRunner™ Editor: First Launch, UI, File Paths (Chapters 1 to 4)
  • Part #2 - Creation of a Map, beginning (Chapter 5, from 5.1 to 5.11) that covers:
    • Terrain
    • “Geometry” Brushes
    • PBR Materials
    • Snow and Ice
    • Models
    • Plants
    • Distributions
    • Overlays
    • Rivers and Water Objects
    • References
    • Trucks
  • Part #3 - Creation of a Map, continuation (Chapter 5, from 5.12 to 5.15) that covers:
    • Sounds
    • Sound Domains
    • Zones
    • Objectives
  • Part #4 - Post-production operations: Packing a Map, Testing a Map, Publishing a Map, Playing on a Map (Chapters 6 to 10)
  • Part #5 - Viewing Trucks (Chapter 11)


Comments

Join the community or sign in with your gaming account to join the conversation: