Outlast – Unoffical Level Editor Guide (Work in progress)

Outlast – Unoffical Level Editor Guide (Work in progress) 1 - steamlists.com
Outlast – Unoffical Level Editor Guide (Work in progress) 1 - steamlists.com
This is a guide for setting up, and using a custom level editor for outlast. The setup process is quite lengthy, but once finished, the editor can be easily used.

 
 

README

 
If you want to talk to fellow mappers, or need some help in using the editor that can’t really be answered in the comments, then you can join the discord server. I am almost always willing to help. https://discord.gg/nC9EzE9jzA 
 
If you, the reader is from Red Barrels I just want to mention that the dummy scripts linked here cannot be used to recreate the game, as the functions have been gutted, and most that remains are variables, their default properties, and a bunch of empty unusable functions. They are simply variable holders, that allow users to use the tools. If you still wish for me to take them down, please email me,my email is the same as the one I sent with the subject, “Custom Level Editor Behavior Tree problem”. 
 
So first of all, this guide might be a bit hard to follow, but I’ve held back this information from here for long enough now. I’m not a great guide writer, i’m really sorry about that. If you have some knowledge in using udk, or can help improve the descriptions in the guide, then put what you want to change in the comments, and i’ll add it. Everyone who helps out will get full credit, no matter how small or large their contribution is. 
 
You’ve also probably noticed that the guide doesn’t have many sections for actually using the editor, I’ll be trying to make guides as much as I can, but i’m still learning as well. 
 
When distributing maps, do not include any asset from the game embedded in them, instead use the dummy asset method. (You can read more about that here, https://rocketleaguemoddingwiki.github.io/pages/tutorials/How_to_use_any_in-game_assets.html. Even though the article is for rocket league, the principle still applies here since they run in the same engine.) 
 
Here is a list of credits thus far: 
 
Obviously I’d like to thank Red Barrels for creating this awesome game. 
 
I’d like to thank @Snake4life, if it weren’t for their discussion post about getting multiplayer into this game I probably wouldn’t have even attempted this. 
 
I’d like to thank the Outlast Speedrunning Discord for the support they’ve given me, everyone there has been really supportive. 
 
 

Requirements

 
Alright, so first you’ll need the game. If you don’t have the whistleblower dlc I recommend you get that as well, so you don’t have to reconstruct your tools if you get it in the future. 
 
Now you need a version of UDK, I recommend downloading a version from 2013. You can find a list of versions here, www.gildor.org – https://forums.unrealengine.com/t/all-udk-downloads/52939 from eliotvu.com – https://www.gildor.org/downloads, from https://eliotvu.com/portfolio/view/21/ue-explorer. This is what you will be using to decompile scripts from the game. 
 
Optional: 
 
I recommend you download the level launcher script i’ve created, though it isn’t required to launch levels, it just makes it a helleva lot easier, and way more convenient. Make sure to place it in the root directory of outlast, (The directory that contains OutlastLauncher.exe) https://www.dropbox.com/s/jd0q9f3mc74jxmv/Level_Launcher.Bat 
 
 

Setting up the editor

 
Go through the installation of udk, I recommend starting with ut content, though it’s your choice. 
You can manually decompile the game, and make dummy scripts, or use the one I have made. Obviously I recommend you use the premade ones since it’s mostly just drag at drop at that point, but it’s your choice. Just note that if you do use the premade ones, not everything is included at the current moment. Most of the AI types haven’t been included. The premade scripts are also set up with a bunch of sprites I made. I’ll be updating the editor template sometimes, so make sure to come back and check every so often. 
 

The easiest way

 

 
Clone the repository linked below, and follow the instructions in the readme. It’s really simple. https://github.com/superboo07/Outlast-Level-Editor 
 

The easy way.

 

 
First download the folder using the download all option, https://drive.google.com/drive/folders/1ByJ2t8KXBRpvXa1TgUfjvHvp9T49KWjx?usp=sharing. Make sure to paste the folder’s contents into the root of your UDK installation. 
 
Now you need to go to *UDKInstallLocation*\UDKGame\Config and open the ini file named DefaultEngine.ini. Now you need to scroll down until you reach 
 
[UnrealEd.EditorEngine] 
+EditPackages=UTGame 
+EditPackages=UTGameContent
 
 
Then add +ModEditPackages=OLGame to the bottom. It should now look like this 
 
[UnrealEd.EditorEngine] 
+EditPackages=UTGame 
+EditPackages=UTGameContent 
+ModEditPackages=OLGame
 
 
Now you need to navigate to the binaries folder (*UDKInstall*\Binaries) and open the file named unrealfrontend.exe. 
 
At this point you should see 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now you need to hover over script, and press compile scripts.They should compile without issue, but if you get an error please tell me. 
 

The hard way

 
Now you need to navigate to where you installed outlast, and go into the folder named OLGame. Inside you should find another folder named CookedPCConsole, now you must copy the file inside named OLGame.upk to somewhere safe. Now navigate to where you copied it, and drag the file into the exe you got from extracting the Unreal Package Decompressor. Now in the same directory there should be a folder called Unpacked, inside should be the now ready to be decompiled upk file. 
 
Now you must open up UE Explorer, when you open it you should be greeted by a screen like this. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now you need to click file, then open file. Then navigate to where the decompressed upk file is, and open it. Now you should have access to all the scripts in the game. Note: You will need to fix up a bunch of these scripts. I’ll leave details onto how in a moment. 
 
This is what you should see now, 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
All you have to do is click onto tools, then hover over exporting, and click export scripts. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Then it should ask if you want to go to where it exported the scripts. Click yes, and now you should find yourself in this folder. Now you need to copy the folder, and navigate to *UDKInstallLocation*\Development\Src and paste the folder. Now you need to go to *UDKInstallLocation*\UDKGame\Config and open the ini file named DefaultEngine.ini. Now you need to scroll down until you reach 
 
[UnrealEd.EditorEngine] 
+EditPackages=UTGame 
+EditPackages=UTGameContent
 
 
Then add +ModEditPackages=OLGame to the bottom. It should now look like this 
 
[UnrealEd.EditorEngine] 
+EditPackages=UTGame 
+EditPackages=UTGameContent 
+ModEditPackages=OLGame
 
 
Now you need to navigate to the binaries folder (*UDKInstall*\Binaries) and open the file named unrealfrontend.exe. 
 
At this point you should see 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now you need to hover over script, and press compile scripts. You WILL get a bunch of errors, especially for the default properties of a bunch of scripts. If it gives a line number, make note of it. Heres how you fix those, navigate back to the development folder, and go into src again. Then go into the OLGame folder and into the conflicting script, then scroll until you find the conflicting line using the line number given. Now you need to fix the object end issues, simply begin a replace operation, and set it’s settings to this. For this I recommend using notepad++. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
You WILL run into issues with duplicated and overwriting object defaults. Now what you need to do is look for duplicates of a certain object in the default properties. For example 
 
begin object name=WPawnSkeletalMeshComponent class=SkeletalMeshComponent 
SkeletalMesh=SkeletalMesh’02_Generic_Patient.Pawn.Generic_Patient’ 
AnimTreeTemplate=AnimTree’02_Behaviors.Enemy.Enemy_AnimTree’ 
PhysicsAsset=PhysicsAsset’02_Generic_Patient.Meshes.Patient_2_Physics’ 
AnimSets(0)=AnimSet’03_NPCMedium_Generic.NpcMediumGeneric-01_AS’ 
MinDistFactorForKinematicUpdate=0.20 
bHasPhysicsAssetInstance=true 
bOverrideAttachmentOwnerVisibility=true 
bChartDistanceFactor=true 
bCacheAnimSequenceNodes=false 
ReplacementPrimitive=none 
LightEnvironment=DynamicLightEnvironmentComponent’Default__OLEnemyPawn.MyLightEnvironment’ 
MotionBlurInstanceScale=0.0 
RBChannel=ERBCollisionChannel.RBCC_Untitled3 
RBDominanceGroup=20 
bOwnerNoSee=true 
bUseOnePassLightingOnTranslucency=true 
BlockRigidBody=true 
RBCollideWithChannels=(Untitled3=true) 
Translation=(X=0.0,Y=0.0,Z=1.0) 
end object
 
 
Might be defined a couple times, delete all those definitions but one. You must leave one, then if the editor still complains about the script, delete the class definition so that it looks like this. 
 
begin object name=WPawnSkeletalMeshComponent 
SkeletalMesh=SkeletalMesh’02_Generic_Patient.Pawn.Generic_Patient’ 
AnimTreeTemplate=AnimTree’02_Behaviors.Enemy.Enemy_AnimTree’ 
PhysicsAsset=PhysicsAsset’02_Generic_Patient.Meshes.Patient_2_Physics’ 
AnimSets(0)=AnimSet’03_NPCMedium_Generic.NpcMediumGeneric-01_AS’ 
MinDistFactorForKinematicUpdate=0.20 
bHasPhysicsAssetInstance=true 
bOverrideAttachmentOwnerVisibility=true 
bChartDistanceFactor=true 
bCacheAnimSequenceNodes=false 
ReplacementPrimitive=none 
LightEnvironment=DynamicLightEnvironmentComponent’Default__OLEnemyPawn.MyLightEnvironment’ 
MotionBlurInstanceScale=0.0 
RBChannel=ERBCollisionChannel.RBCC_Untitled3 
RBDominanceGroup=20 
bOwnerNoSee=true 
bUseOnePassLightingOnTranslucency=true 
BlockRigidBody=true 
RBCollideWithChannels=(Untitled3=true) 
Translation=(X=0.0,Y=0.0,Z=1.0) 
end object
 
 
Now repeat that with the rest of the files. If you run into issues with things like AKEvents just delete the line of code, or the whole function encompassing the line of code. You may even have to delete a couple of variables, trust me. It will be fine, I promise. The scripts you are placing in editor will not be the ones used in game, they will simply act as variable holders. 
 
This process will take awhile, so be ready for that. If you need help with this process feel free to ask for help in the comments, just make sure to paste the error you need help fixing in the comments. Also, if you really know what your doing there are ways you can speed this up. Which I will list below, 
 
Try cutting and pasting some scripts you don’t think you’ll need, if you get a compile error related to them just put them back in. Also try going into scripts and clearing out the functions, but leave the default properties and variables. This will help kill a bunch of references for unneeded scripts. 
 
 

Quality of Life Script Fixes

 
At the current moment, you won’t be able to see the classes you place in editor. There are multiple ways to fix this. Remember to compile your scripts, after you make an edit to them. 
 
Here is a link to all the visualizer meshes I have made thus far, https://drive.google.com/drive/folders/1PR15dDtoo8AYbKkAd3O36HaBUyx2go1t?usp=sharing
 

OLGameplayMarker

 

 
These are quite important, as quite a few of the classes you’ll be using derive off these. Normally these are not visible, which is good in game, but not so good when editing your level. Below is a few lines of code, I recommend you paste into it’s default properties. This will give you a good visualizer. 
 
Begin Object Class=SpriteComponent Name=Sprite44 
Sprite=Texture2D’EditorResources.Crowd.T_Crowd_Destination’ 
HiddenGame=true 
HiddenEditor=false 
AlwaysLoadOnClient=False 
AlwaysLoadOnServer=False 
SpriteCategoryName=”GSD” 
Scale=.5 
End Object 
Components.Add(Sprite44)
 
 

OLDoor

 

 
So first you’ll need to download the door mesh I made, or make your own mesh based on the one from in game. You can find the link for downloading it at the top of this section. Now that you’ve downloaded it, navigate into the projects content folder (\UDKInstallation\UDKGame\Content), and make a new folder named EditorMeshes. Then place the downloaded mesh into the new folder. Now you need to launch your editor so you can import the mesh, open the content browser, then click import, and navigate to where you saved your mesh. Then select it, and another dialog window should appear. Set the package to EditorMeshes, and the name to door
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Then save the package, by right clicking on it, and then pressing save. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now close the editor, and navigate to your developement source folder, and navigate into OLGame, classes (Unreal Development Kit\Development\Src\OLGame\Classes). Then find the file named OLDoor.uc, and open it. Then scroll down until you find default properties, and paste this inbetween the brackets. 
 
begin object name=EditorDoor class=StaticMeshComponent 
StaticMesh=StaticMesh’EditorMeshes.door’ 
ReplacementPrimitive=none 
bUsePrecomputedShadows=true 
LightingChannels=(Static=true) 
Translation=(X=-7.60,Y=50.0,Z=107.50) 
HiddenEditor=False 
End Object 
Components.add(EditorDoor)
 
 
As long as you’ve set up everything correctly, you will be able to see the doors when you place them in the editor. 
 

OLCornerMarker

 

 
Corner Markers are very important, as they are what determines what corners the player can use to peak through. Now, the corner markers are rotation based, and if their rotation is set wrong, they will either refuse to work, or they will work incorrectly. This is a problem without anything to really visualize the right direction they need to be facing, but I have figured out a solution. Paste the lines of code below into the actors default properties. 
 
Begin Object Class=ArrowComponent Name=Arrow 
HiddenGame=True 
Rotation=(Pitch=0,Yaw=32768,Roll=0) 
End Object 
Components.Add(Arrow) 
Begin Object Class=ArrowComponent Name=Arrow2 
HiddenGame=True 
Rotation=(Pitch=0,Yaw=-16384,Roll=0) 
End Object 
Components.Add(Arrow2)
 
 
Now when you place them in editor, they should have two arrows attached to them. When placing them on a corner, make sure both arrows are facing away from the corner you want the player to be able to peak around. 
 
 

Using the Editor

 
So first of all, to launch the editor you need to click the button labeled UnrealEd in the unreal front end. 
 
This will launch the editor, and when it finishes delete everything in the current map. Yes everything except the light, even the background. Afterward it should look something like this 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now select the brush placement tool, (I have it selected in the screenshot) and drag it up to just above the lightmap volume. Then go into the brush editing mode, and drag out each face until its big enough to be a floor. Then go onto the side panel and click the button with the tooltip CSG Add. This will make the placement tool a brush you can stand on. Now you need to right click over the brush, hover over add actor, then click add playerstart. 
 
Your map should now look like this (Without the weird clipping at the back, not sure why it’s doing that. But I’m too lazy to figure out why at this current moment. It shouldn’t be happening to you) 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now you need to build everything, so in the toolbar click build, then build all. 
 
Once it finishes you’ll need to save the map, I recommend saving it as something short like test.udk or something. 
 
If you don’t want to do this everytime you make a new map, I have created a template map. Which you can download from here, https://drive.google.com/file/d/13Arb_SL5mrA4cUF0HVxl7j9rJ1hPv3hH/view?usp=sharing. I recommend you add it as a template to UDK, you can find out how to do so using the guide linked below. 
 
https://www.worldofleveldesign.com/categories/udk/udk-custom-map-template.php 
 
 

Importing your map into Outlast

 
Now there are two ways we can continue from here. We can use a script to launch our map, or use a method that requires editing the games config files. 
 
For method one, I have created script just for this. The script is pretty basic, but in the future i’ll be improving it. Don’t worry, you won’t have to worry about downloading it from here everytime you want to update, the script has the ability to update itself if you decide to do so. 
 
You must navigate to where you saved your map, and copy the file. Then navigate to where you found OLGame.upk in Outlast’s files. Which should be *OutlastInstallation*\OLGame\CookedPCConsole, and create a folder named Custom. This is where the script will search for maps. Then in the new folder you just created, you must paste the map you just copied. Now navigate to the root directory of outlast. From here you will need to download the script. 
 
You can download it here, https://www.dropbox.com/s/jd0q9f3mc74jxmv/Level_Launcher.Bat?dl=0. The reason it’s a dropbox link, is because this is the same link the batch file uses to update, and I couldn’t get google drive to work with it. Place the downloaded script into the root folder of outlast, and run it. Then type Open [Your Maps Name] into the script. Don’t include the .udk file extension in the command, as the script is supposed to add it for you. This will open your map. For further details on using the script please read the section titled Using the Launch Script 
 
For method two, 
 
You must navigate to where you saved your map, and copy the file into the folder you found OLGame.upk in Outlast. Which should be *OutlastInstallation*\OLGame\CookedPCConsole
 
Now you must navigate to *OutlastInstallation*\OLGame\Config, and open the file named DefaultInput.ini
 
Now scroll down until you find 
 
;- Keyboard and mouse 
 
Then above 
 
;- Gamepad (default) 
 
Make a new line, and paste this. 
 
.Bindings=(Name=”F3″,Command=”Open <MapName>”) 
 
And replace <MapName> with what you named your map, (Do not include the .udk extension in the command) 
 
Now save the config file, and open outlast. Then load a save, and press F3, then it should now load into your map. If all goes right, you should be able to move around and such. Except there’s nothing to interact with. 
 
 

Using Doors

 
In the editor, use the asset classes menu, and search for OLDoor. (If you don’t understand, there are a bunch of tutorials that can help you) Then drag the class into the editor. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
You’ve probably noticed how yours doesn’t have any kind of visualizer like in the screenshot shown above. I’ve left details on how to do so in the section titled Quality of Life Script Fixes
 
If you double click on the door it should open a window with a list of options, if you have not added a mesh or sprite, then you’ll need to select the door you just placed in the scene menu. This will you give you the same list of options. 
 
 

OLLedgeMarker

 
OLLedgeMarkers are the back bone of the climbing component, seriously, almost every time you climb on something in outlast, it’s using these. This guide will not cover every single way to use them, for that reason I have included a map file that covers most, if not all ways to use them. Which you can download from here, https://drive.google.com/file/d/1xvNuxa5eLcZYQ0v0kqDqaTmUvBu9qvfs/view?usp=sharing
 
This section assumes you’ve added a sprite to the script named OLGameplayMarker, without it you won’t be able to see the climbing markers. You can find details on how to do so in the section named Quality of Life Script Fixes
 

Video Guide

 

 
 

 

Written Guide

 

 
Now, first I recommend you load the template map I gave you, or set up a map using the tutorial given in the section titled Using the Editor. Then place another brush, and move it up, so it’s something like the screenshot below. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now go into the actor classes window, and search for OLLedgeMarker and drag it into one of the top corners of the brush you just placed. Repeat this, until each corner of the top of brush has an OLLedgeMarker on it. Like in the screenshot below, 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now, we need to tell the game, which ledge marker is connected to which. This step can be a little confusing, though once you get the hang of it, it’s pretty easy to understand. Now I need you to open the scene menu, and select the Ledge marker you want to start the connection with. Then in the viewport, select the next ledge marker. The object you selected in the scene window should remain the same. In the scene menu, you should find a variable under the object options Named Next, and next to text box should be an arrow. Click the green arrow, and it will input the object you have selected in the viewport. Repeat this, until the four ledge markers are connected in a loop. Below is a video showcasing this strategy. 
 

 
If you wish to download the map used in this tutorial you can do so here, https://drive.google.com/file/d/1tdVAu9UBiMK3GaQ9HWo89GVPA4i6b9Xk/view?usp=sharing
 
 

Squeeze Volumes

 

Video Guide

 

 
 

 

Written Guide

 

 
Begin by creating a brush cube, that is postioned onto your floor, and lined up with the checker texture. Then create another brush cube, 3 units to the right of the brush you just placed. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now position the brush placement tool, inbetween the two brushes you placed earlier. Then go into the brush editor, click on the open face of the brush placement tool, and drag it out 2 units. Repeat this on the other side, like below. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Then on the side bar, click add volume, under the volumes catagory. Then click on, OLSqueezeVolume. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now you must open the actor classes window, and drag the actor named OLGameplayMarker into the viewport. Position it inbetween the two brushes from earlier, at the closest point to the end. Then copy it over to the other side, like below. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now you need to switch over to the scene tab, and select the OLSqueezeVolume Actor. Then in the viewport, select one of the OLGameplayMarker’s. Then back in the scene menu, click the green arrow next to the variable named Node 1. Then in the viewport, select the other OLGameplayMarker you placed, and in the scenes menu, click the green arrow next to the variable named Node 2. So that the options look similar to the ones below. 
 
Outlast - Unoffical Level Editor Guide (Work in progress) 
 
Now make sure to build your geometry and lighting, then save the level, and import into outlast. If you’ve followed the steps correctly, you should have a fully working squeeze through area, with minimal clipping. 
 
If you wish to download the map used in this tutorial you can do so here, https://drive.google.com/file/d/163tYJWHhI9Wm2Yw7dLw4zE5BPs7xkVCZ/view?usp=sharing
 
 

OLCornerMarker

 
Using Corner Markers are really easy, as long as you’ve applied the script fix detailed in the section titled Quality of Life Script Fixes
 
All you need to do to use them is to place them up against a corner, with the arrows facing away from said corner. Then the player will be able to peak around the corner. 
 
 

AI

 
So at the current moment, AI is kinda working. Though it is quite buggy, and really janky. Enemies will have trouble chasing and such. Below I have linked a highlight to a stream I did on it. I will release a better tutorial when I get it to work better. 
 
https://www.twitch.tv/videos/1023746866 
 
 

Using the launch script

 
Alright, so first things first, you need to download the script if you haven’t already done so. https://www.dropbox.com/s/jd0q9f3mc74jxmv/Level_Launcher.Bat 
 
Then move the downloaded script into the root folder of outlast. If you launch the script, and a message appears saying Script is not installed in the correct directory it means you haven’t installed it correctly. Make sure to place it in the directory with the file named OutlastLauncher.exe. Sometimes while launching, the script may say an update is available, in order to update you need to type Update into the script. Updates are not required to use the script, though I recommend you update it, since I will be adding more functionality to the script later. 
 
For a list of commands you should type Help
 
For a list of installed maps you should type List 
 
To open a map type Open <MapName>, while replacing <mapname> with the map you wish to open. 
 
Also make sure to place your custom maps in the custom folder in the CookedPCConsole folder, if you don’t have a custom folder then make it. This will allow the script to find them. Later I will program a way for the script to find maps in sub folders. 
 
If you want to run a custom campaign type play <Campaign Name> into the script. Custom campaigns are placed into the custom folder that is created in the root directory of outlast apon launching the script. 
 
If you want to make a custom campaign, type Make <Campaign Name> <Uses Config {True/False}> <Uses Localization {True/False}> <Uses content {True/false}> Then it will set up all the correct directorys, and even the config file. 
 
 

The Campaign Launcher

 
The Campaign Launcher is one of the features of the level launcher script, it allows mounting and using mods easily. It even helps create different save files, depending on the mod you are using. The campaign launcher doesn’t even have to launch custom maps, it can simply be used to launch the game with different configurations, without tainting your own config files. It can also be used to make different save profiles. 
 
Unlike the level loader, the Campaign launcher does not launch maps using the launch options, but instead uses config files mounted into the game to launch the map. The campaign launcher also mounts custom content into the game using symlinks. This helps mitigate the issue of maps having the same name, and allows you to keep a mostly clean outlast installation, as the campaign launcher undoes all it’s changes after the game closes. (Granted you don’t close the script beforehand.) 
 
Though if anything does go wrong, the campaign launcher leaves backups you can restore from. 
 
At first this may seem pretty complex, but you can easily make a shell of a campaign by typing Make <Campaign Name> <Config> <Localization> <Content> Into the script, while replacing the last three options with true or false depending on weather you want the campaign to use them. Remember, the campaign name cannot have a space in it. 
 
For editing config files, you simply must copy the config file you want the campaign to edit, into your campaigns config folder. For localization just copy over the localization folder over to your campaigns, and for the content just copy over your campaigns maps and any .upk files containing content for your map into the content folder of the campaign launcher. 
 
For launching custom campaigns, type Play <Campaign Name> into the script. While replacing <Campaign Name> with the name of the campaign you want to launch. Just make sure the script is running as admin if the campaign you are launching uses custom content, as the symlink will fail if the script is not. 
 

By superboo07

Hope you enjoy the Guide about Outlast – Unoffical Level Editor Guide (Work in progress), if you think we should add extra information or forget something, please let us know via comment below, and we will do our best to fix or update as soon as possible!
 
 
 
 


Be the first to comment

Leave a Reply

Your email address will not be published.


*