Uploaded by Sangaji Sarkoro

Modding Instructions

advertisement
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
Download