A brief intro to how to make your own maps, quests and stories.
Guide to Editor
Create a New Story
- First, you need to create a new folder to put your story files in. Find your Survivalist Invisible Strain installation by right-clicking on it in Steam, going to Properties -> Local Files -> Browse Local Files. In there, go to the Survivalist2_Data\StreamingAssets\ directory. In that directory, create a new folder called MyStory or whatever you want to call it.
- You will have seen that there is another folder called Sandbox in the Survivalist2_Data\StreamingAssets\ directory (There are currently two folders in that directory, Sandbox and BasicStory. BasicStory contains speeches and equipment that are common to all stories, while Sandbox is the sandbox mode). Copy the files English.tsv and Settings.xml from Sandbox into MyStory.
- Edit your Settings.xml (in Notepad or an xml editor) and change the line saying <ProcedurallyGenerated>true</ProcedurallyGenerated> to <ProcedurallyGenerated>false</ProcedurallyGenerated>. This means you will be able to use the map editor to create your own map instead of having one randomly generated.
- Add a line saying <MapSize>Small</MapSize>. (Valid values for this are Tiny, Small, Medium and Large - Large being what you see in a Sandbox game, 1km squared, Medium being half a km squared, and Small being a quarter km squared)
- The other settings in this file mostly relate to what the player sees on the character creation screen, you can mess with them too if you want.
- Edit English.tsv. This is a tab-separated file, you can edit it in Notepad or a spreadsheet editor such as OpenOffice. There are two columns, Tag and Translation. Change the translation for STORY_Title to "My Awesome Story" (or whatever). Change the translation for STORY_Description to something exciting like "Demonstrating how to use the editor!"
- Now run the game, go to Editor, and open My Awesome Story.
Edit the Map
If you were to play "My Awesome Story" now you would start off in a completely flat map. Instead, go to the Editor, select My Awesome Story and Edit Map.
A lot of the map editor features are unfinished - most obviously, you can't create rivers and roads, and there's no undo button. It may also be pretty buggy as I've mostly been concentrating on Sandbox mode so far. Here's a quick guide to the most obvious stuff:
- Press F8 to open the debug menu.
- At the top of the debug menu is a Save button - click this! If there's an error, you may need to run the game in Administrator mode (because it's saving to your Program Files directory).
- Click on Prop Spawner -> SpawnPoints -> PlayerStartPoint. Click your cursor on the map somewhere to create it.
- Back out by pressing Escape, go to Prop Editor, click on the spawn point and you can adjust the angle, position, or delete it.
- Click the Community List button at the top level of the debug menu, and create a new community. Set the type to Normal. Create another one and set the type to Looters.
- Click Character Spawner at the top level of the debug menu, and create a Neutral character. Set their community to the first one you just created. Give them a unique ID of "Foo". Create another one in another part of the map belonging to the second community, and give them a unique ID of "Bar".
- Remember to save before quitting!
Create a Quest
- From the editor, click on Edit Script. Click Create New to create a new script, and call it "AwesomeQuest".
- Right-click to open the script menu, click New Speech.
- Click Expand on the speech. This shows all the fields, clicking Collapse only shows the fields that have been set to a non-default value. Only one element can be expanded at once.
- In the English Text field enter "Hello, I have an awesome quest for you". For Situation select QuestTopic.
- At the bottom, click the + symbol next to Extra Reply To. Enter Basic_LookingForWork. This means it will be a reply to the speech from BasicStory saying "I'm looking for work".
- Click the + next to Conditions. Set the dropdown to HasID, Subject to Actor and Unique ID to Foo (the unique ID of the first character you created in the map editor). This means only that character will say this speech. (From the point of view of a speech, the Actor is the person doing the speaking).
- Create another speech. Note the field at the very top will be automatically named AwesomeQuest_Speech2. This name is used to link speeches together. Change it to AwesomeQuest_GiveQuest. Copy this (with CTRL+C), and add it to the Continues section of the first speech (with CTRL+V). You should see a line appear between them.
- Set the text to "%1 must die! Kill %2 and I will reward you." Click + twice on the Parameters section. Set the first to FullName, ID: Bar. Set the second to HimOrHer, ID: Bar. When Foo says this speech they will fill those fields with the name of Bar, and either him or her depending on their gender.
- Right click and create a New Quest. Set the English Description to "Kill %1". Add a parameter FullName, ID: "Bar". Under Complete Conditions, add a condition AliveAndNotZombie, ID: "Bar". Tick the "Not" tickbox. This means the quest will be completed when Bar is not... "Alive and not a zombie", i.e. when Bar is either dead, or a zombie. In the Markers section, add a marker and set it to ID: "Bar". This means you will see a quest arrow pointing to Bar.
- In the AwesomeQuest_GiveQuest speech, add an Event, set it to DiscoverQuest, and set the quest to AwesomeQuest_Quest1 (or whatever you named your quest).
- Add another event, set it to DiscoverCharacterName, set the Subject to Target and the Object to ID: Bar. From the point of view of a speech, the Target is the person who we are talking to, i.e. the player. This means the player discovers the name of the character Bar, and they will see that instead of Stranger when they target them.
- Create a second quest, and add a Completion Event to the first quest, make it DiscoverQuest and set it to discover your second quest "AwesomeQuest_Quest2". Set the description to "Inform %1", add a Parameter "FullName", ID: "Foo". Also add a marker pointing to ID: "Foo".
- Right click and create a New Quest Group. Name it "AwesomeQuest_QuestGroup". Set both your quests Quest Group ID to "AwesomeQuest_Quest2". All quests need a quest group, this groups them together on the quests screen.
- Create another new speech, make it say "I killed %1", set the Situation to QuestTopic and add a condition with type QuestIsActive, set the Quest to "AwesomeQuest_Quest2".
- Create a speech saying "Well Done". Add a Reply to the previous speech, copy and paste the name of this one. Add an Event to this speech, set the type to SpawnEquipment, the Subject to "Target", the Item to "Gold" and the Amount to 100. This spawns 100 gold in the inventory of the person we are talking to, i.e. the player's character. Add another event of type CompleteQuest and set the quest to AwesomeQuest_Quest2.
Right click to save and exit your script (note: currently scripts save automatically on exit anyway). Back out and start a new game, select your awesome story and run it!