THIS WAR OF MINE: COLD CRISIS MOD MODDING INSTRUCTIONS To start, you need to find and open the Storyteller.exe. It’s located in your game folder. Alternatively, you can just right-click on “This War of Mine” on your Steam games list and choose the “Tools” option. Once the window opens, click on the “Create New Mod” button, choose a name for your mod. Description is optional. If you want to have the option to mod the textures as well, check the “extract textures” box. Optionally, you can also add a picture to represent your mod. Once you’ve filled and checked everything you wanted, click ok and sit back. The modding tool will extract all the files needed. It can take several minutes. Once it’s done, the path to your mod will be displayed. Now you’ll be able to see the mod you've created on the list and you can open it by clicking "edit". 1. Scenarios Config To add a new scenario in the Scenarios Config we need to do a few things. First we need to add a new timeline, which is a selection of parameters which define the game. The easiest way to add this is by right-clicking one of the existing timelines and duplicating it. Picture 1: Duplicating a timeline. Change the text in the fields: Name, ShelterAttackRuleSetName, VisitsGroupName, and WinterConfigEntryName to "ColdCrisis". After that we add our own rules: attacks, visits, and the cold weather for the name we used (ColdCrisis). Additionally, we set the duration of the war in WarDurationInDays. Expand MajorEventConfig and define when the winter begins and ends, as well as the beginning and the end of BanditsAttackStart event (there will be stronger attacks during this period). It should look like it does in the second picture. Picture 2: “Cold Crisis” Timeline The ItemPriceDefs field allows us to change the prices of vendors' items. Using tags (i.e. Coffee) we can increase or decrease the prices of items in a specific time period. In the basic scenarios these changes were connected with events such as winter or bandits' attacks. During winter, fuel prices went up. There won't be such price changes in the mod, because the winter lasts for pretty much the entire game, so the fuel prices are constantly high. Additionally, we will connect the price changes to the announcements on the radio (Radio Config). For example, on the 30th day the player will hear over the radio that due to the large number of bandits in the area, the prices of alcohol and cigarettes have gone up. It's important to inform the player why the prices of goods are higher than normal in a particular period. The VanishingItems field works pretty much the same way—listed items disappear from locations. We can define the days during which particular items of a defined value (Value) will disappear. We can see the value of the items in Item Config. Using Item Tags we can define which items will disappear (we can select one item or an entire group). It's worth informing the player about this, i.e., over the radio. Picture 3: “Vanishing Items” The ShelterAttackConfig field allows us to configure the attacks on the shelter on particular days. One entry generates a group of attacks with random breaks (Max–Min interval between attacks), the days during which the attacks will be randomly picked (Valid from to), and the strength of the attacks (Attack power). Picture 4: “ShelterAttackConfig”. The Scenarios field defines the scenarios available during the gameplay. It's main elements are the Complication Tier, which is the number of times the player needs to finish one playthrough (survive at least 10 days) to unlock the next scenario (setting the value to 0 will cause the scenario to be visible from the beginning). DwellerSetName is the name of the group of survivors the player needs to take care of. TextureName is the graphical front for a particular scenario. TimelineNames defines which timelines will be available (if we define more than one, the system will randomly choose one at the beginning of each playthrough). Picture 5: “Scenarios” field The DwellerSets field allows us to customize the group of survivors. In DwellerTemplates we choose which survivors the player will have to take care of, and IntroLocalizedText defines the scenario's name. DwellerTemplates list: Characters/Player_characters/Dweller_Cook – Bruno Characters/Player_characters/Dweller_Crafter – Marin Characters/Player_characters/Dweller_Female_Thief – Arica Characters/Player_characters/Dweller_Lawyer – Emilia Characters/Player_characters/Dweller_Mathematician – Anton Characters/Player_characters/Dweller_Misiek – Boris Characters/Player_characters/Dweller_Scavenger – Marko Characters/Player_characters/Dweller_Star – Pavle Characters/Player_characters/Dweller_Star – Zlata Characters/Player_characters/Dweller_Teacher – Cveta Characters/Player_characters/Dweller_Trader – Katia Characters/Player_characters/Dweller_Warrior – Roman Picture 6: “DwellerSets” field. 2. Weather conditions (Winter Config) In this file we customize the temperatures during the 60-day period of ColdCrisis's timeline. There's no need to customize each day – only every few days – the system will balance the changes. Picture 7: filled Winter Config. 3. Heroes (Localization Strings, Scenario Config) In Scenarios Config, add the text in the DwellerSets field. This will create a new, empty group of survivors – picture 6 – Roman and Bruno are in this group. The name of the group will be added as well in IntroLocalizedText. But first we need to add the name in the Localizations Strings – in this config file we only paste the path for the name in the Localizations Strings. Picture 8: Scenarios Config -> DwellerSets. For the sake of the modification we'll change the identity of both characters. To do this, first we need to change the description texts – so-called strings – in the language file (Localizations/English.lang). Here is the list of strings that we can use to describe a character: Names/Roman – name, CharacterSkills/Warrior – description of skills, CharacterBios/Roman/DeathNote – note shown after death, CharacterBios/Roman/Bio – bio. Additionally we can change the survivor's portrait: UI/Characters/Characters_02.dds – portrait with eyes open, UI/Characters/Characters_02_Closed.dds – portrait with eyes closed. 4. Visits (Visit Config) There are four kinds of visits in This War of Mine: Helper, Trader, Dweller, Quest. We can customize the days during which a visit might take place – although it's not guaranteed that it will. For a particular visit to take place, some conditions have to be fulfilled and each condition increases the number of points, i.e., the chance of the visit taking place. If the number of points goes over the defined threshold, the visit will take place. In the case of the Helper, points are accumulated by the bad management of the shelter and the group of survivors. If we're doing well, guests who would offer us a few cans of beer, e.g., won't visit us. Points for the Trader and Quest are added each day. If they go over the threshold on the same day, the Quest (which has a higher priority) will happen first, and the Trader will visit the next day. The Dweller gets points when our group is smaller. In the basic configuration, if we have only one survivor a new survivor will visit us over five times faster than if we had three survivors. To add a visit on a particular day, we can use the DebugVisits field located in Scenario Config -> Timelines -> ColdCrisis. Picture 9: Visits Config. Picture 10: Scenario config -> Timelines -> ColdCrisis -> DebugVisits. 5. Loot (Loot Generators Config) We can customize the type and amount of items in each place. We can use Loot Generators Config for that. The config has the codenames of places. Here's the list – including the in-game names. Dev Name Map Setup InGame Name Loot Generator Name 001_scav_cpn - CPN LootGen_Map01_D 001_scav_domekA_2_nu - Abandoned Cottage LootGen_Map01_A 001_scav_domekA_nu - Shelled Cottage LootGen_Map01_B 001_scav_ruined_bloc - Ruined Block of Flats LootGen_Map01_C 002_scav_domek_petrolstation - Garage LootGen_Map02 003_scav_domekM_nu Bandits Small Apartment Building LootGen_Map03_bandits 003_scav_domekM_nu Family Small Apartment Building LootGen_Map03_family 004_scav_domek_coward_nu - Decrepit Squat LootGen_Map04 005_scav_domek_kidnapers - Brothel LootGen_Map05 006_school Defenders Shelled School LootGen_Map06_defenders 006_school Oldmen Shelled School LootGen_Map06_oldmen 007_scav_domek_warehouse * Warehouse LootGen_Map07 009_scav_domekR_nu Couple Ruined Villa LootGen_Map09 009_scav_domekR_nu Hostage Ruined Villa LootGen_Map09_R_guns 010_scav_domek_twin Girls Semi-Detached House LootGen_Map10 010_scav_domek_twin Trader Semi-Detached House LootGen_Map10_Trader 011_scav_domek_armybase - Military Outpost LootGen_Map11 012_scav_domek_hotel Loner Hotel LootGen_Map12_loner 012_scav_domek_hotel Psyhic Hotel LootGen_Map12_psyhic 012_scav_domek_hotel Trader Hotel LootGen_Map12_trader 013_construction_site RadioMen Construction Site LootGen_Map13_RadioMen 013_construction_site SniperSquad Construction Site LootGen_Map13_SniperSquad 014_old_couple - Quiet House LootGen_Map14 015_violator Additional Supermarket LootGen_Map08_B 015_violator Default Supermarket LootGen_Map08_A 016_sniper Additional Central Square LootGen_Map16_market 016_sniper Sniper Sniper Junction LootGen_Map16 017_scav_domek_church Bandits St. Mary's Church LootGen_Map17_bandits 017_scav_domek_church Faithful St. Mary's Church LootGen_Map17_faithful 018_hospital - City Hospital LootGen_Map18 019_old_town - Old Town LootGen_Map19_abadonshelter Table 1: List of location names, variables, and loot generators. Picture 11: Loot Generator Config MaxQuantity and MinQuantity define the maximum and minimum number of items of the same type. For example, we set materials to 60. Each material has a value of 2. This means that there will be around 30 materials on the map. The value of the items is located in Item Config. 6. Items (Item Config) For the sake of modification we'll create an item called a "Blower", which will be required to modify the heater. Firstly, we need to add the item. The easiest way to do this is by duplicating an already existing component of the heater – e.g. the thermostat – and editing it appropriately (Name, IconTexture, StringName, StringDescription, Value). Picture 12: A new item, Blower. Next, for the new item to become an element of the heater's upgrade, we need to add it to the recipe. We need to edit the Heater2 item to do that – go to the CraftingRecipes -> Ingredients field and add a new entry, which includes the Blower. Picture 13: Adding the Blower as an item that is required to upgrade the heater. You have to remember to put the Blower some place or to add it to the items offered by the Trader – using the Loot Generators Config – so that the player can get the Blower. 7. Locations (Scavenge Locations Config) In this config file we can customize our own location sets (MapPack) that will be available in our scenario. We customize this by using the location's DevName (including the !CURRENT/ path) and LocationVersionName if the map has several versions (if not, the field remains empty). The Group field defines when the location will be available. A is the first group, which means that the location will be available from the beginning. Group B is unlocked after the player has visited 1 location, group C after 2 locations, and group 4 after 4 locations. DisabledInWinter blocks specific locations during the winter, and BlockingAvaliable blocks the location during the CrimeSeasonEvent event. Picture 14: MapPack Edit Location sets are chosen randomly. You can force the system to pick only one MapPack by using the ComplicationTier parameter. It decides how many playthroughs are required to enable the set to be randomly picked (surviving 10 days counts as one playthrough). So, for the selected MapPack we can set the value to 0, and 1000000 for the rest. 8. Radio (Radio Config) Radio messages can be configured in Radio Config. We can choose one of the available channels (news, weather, music, etc.) and a timeline. In this case we can create a new one called ColdCrisis. After that we add events, which will appear as text or audio messages over the radio. Start day and End day define the period during which the message will appear. Localized text is the text which will be displayed in the radio's window (the path leading to the entry in the Localizations Strings). Sound Table Entry Name shows the name of the sound defined in Sound Table Config. Picture 15: Adding a new radio message. 9. Sound All of the game sounds are located in Sound Table Config. To add a new one, first we need to come up with its name, which we'll use in the config files. After that we add paths to where the sound file is located. We can add several files – the system will randomly choose one of them. The Remember last played sounds field allows us to avoid a situation in which the same sound is played twice in a row. Additionally, we can customize the volume of a particular sound using the Volume field. Picture 16: Adding a new sound Sound Config contains sounds which appear in-game, such as the menu music, machine gun fire, etc. Here you can edit existing ones or add new ones and use them, e.g., for the newly created items. Menu music editing window. Picture 17: Editing the menu music