CE Modder's Field Manual
CE Modder's Field Manual
THIS DOCUMENT IS ETERNALLY UNDER CONSTRUCTION. If you are reading this, that means
you can comment (use right-click). I’d love any feedback!
Contributors
This document has been (and continues to be) a community effort, with seasoned modders donating
their knowledge, and newcomers giving valuable feedback on how to improve the manual. Here are
the people who’ve made contributions large and small:
Senja Codeine
Terrornaut Whiskey
Rob the Swede Testerle
Happy Reaper Eujima
The Sam Dr Goatens
Dustin
Key
BlueprintName Names of specific Conan Exiles blueprint classes will look like this
To Do:
1
Terminology
Mod. Mods are modifications of a video game (in this case, Conan Exiles) which add new content or
alter existing content. Mods for Conan Exiles are created using the Conan Exiles Dev Kit and saved
as .pak archive files.
Dev Kit. A special version of the Unreal Engine version 4.15.3, containing the code, visuals and other
assets of the base game in an uncompressed state. It allows the use of many of the features of the
Unreal Engine, such as the Blueprint visual scripting language, but does not permit the modification of
the game’s C++ code, nor does it allow the use of plugins.
Unreal Engine. A game engine developed by Epic Games, written in C++. It is a vast suite of tools
used by developers to create video games of many genres, across many platforms.
Actor. Any object which exists in the game world during runtime. Actors are often visible objects with
collision, such as a character, but can also be invisible and simply executing game logic behind the
scenes.
Blueprint. A visual scripting language used in the Unreal Engine to quickly and intuitively write game
logic. It is a visually-oriented, accessible approach to C++. An object class asset of the Blueprint type
is also typically referred to as a blueprint (noun).
Class. A template for an object in the world. Classes in Unreal are constructed in either C++ or
Blueprint, and in the latter case, are sometimes referred to as blueprints (noun). Classes are
instantiated into memory as objects during runtime.
Modcontroller. A class of Actor created by Funcom and used specifically for modding Conan Exiles.
Modcontrollers allow you to merge data and add Actor Components during runtime, and are essential
for modding in a compatibility-friendly way.
PAK File. The compressed version of your mod used by the game. PAK files are encrypted and
cannot be edited directly. The PAK file is created during the cooking process described later in this
guide.
2
I. Getting Started
System Requirements
As of January 2020, Epic recommends the following system specifications for using the Unreal
Engine 4:
■ Desktop PC or Mac
■ Windows 7 64-bit or Mac OS X 10.9.2 or later
■ Quad-core Intel or AMD processor, 2.5 GHz or faster
■ NVIDIA GeForce 470 GTX or AMD Radeon 6870 HD series card or higher
■ 8 GB RAM
The Dev Kit can be run on a system that does not meet all of these specifications, but you will
experience some severe performance issues. It will be up to you to decide what is acceptable.
3
Download the Conan Exiles Dev Kit
You can find the Epic Games Store app at Epic Games. From there, you will find the Conan Exiles
Devkit in the store under the name Conan Exiles Modkit. Download and install it.
Some important things to keep in mind when installing the Dev Kit:
■ Your Epic Games Store library may be hidden in the launcher by default. If this is the case, you
can enable it in the Store Settings menu
■ Acquiring the Conan Exiles Modkit will add two apps to your Epic Games Store library, one for
the Live branch of the game (“Conan Exiles Dev Kit”), and one for the Testlive branch (“Conan
Exiles Mod Dev Kit Testlive”). To begin with, download the version for the Live branch.
■ Install the Dev Kit to the shortest possible path on the installation drive, such as
C:/ConanExilesDevKit (the default name). Unreal Engine 4 can encounter problems with
longer file path names
You can launch the Dev Kit either from the desktop icon, or from your Epic Games library. Note that
the Dev Kit takes much longer to load than other common applications. This is normal.
One of the first things you do in the Dev Kit while learning the interface will probably be to press the
Play button.
Playing in the editor (PIE) is covered later in this guide, but it’s worth mentioning that the first PIE
session after a fresh installation of the Dev Kit will cause the engine to load the shaders necessary to
display the game. A message in the lower right-hand corner of the viewport will display “Compiling
Shaders…” along with its progress.
It is not unusual for this to take 30 minutes or more to complete. This is normal and will only happen
once after each installation.
4
II. Dev Kit Basics
This section covers the basics of using the Conan Exiles Dev Kit. It describes some of the differences
between a normal Unreal Engine project and the Conan Exiles Dev Kit. If you’re brand new, digest
this information as best you can and then move on to Creating Your First Mod. You may need to
come back to this section later to fully absorb all of it.
IMPORTANT: The following sections on the basics of the Dev Kit, creating and uploading a mod, do
not assume you have prior Unreal Engine experience. However, newcomers can benefit greatly from
some foundational knowledge about Unreal Engine, so this may be a good time to pause and get that
knowledge. You can find links to Unreal Engine 4 beginner materials in the Unreal Engine & Blueprint
Basics section below. Otherwise, feel free to simply keep reading.
The first time you open the Dev Kit, it will load a default mod called Test Mod. You can use this mod to
learn the interface and experiment, but you should not use it for any serious work. For that, create a
new mod (see Dev Kit Actions, below).
In the Toolbar of the Dev Kit, on the far right side, you will find the
The Dev Kit Window button. The Dev Kit Window is where you
define some of the basic information about your mod and how
users will view that information in the Steam Workshop.
Note that this button is specific to the Conan Exiles Dev Kit and
does not appear in the unmodified Unreal Engine.
5
Name. The name of your mod. This will change how the mod name is displayed in the in-game Mods
menu, but will not change the name of the PAK file.
Version. This version number is displayed in the Mods menu and is used to compare the version of a
client-side mod to the version installed on a server.
Description. This text is displayed in the Description tab of your mod page on the Steam Workshop.
Change Notes. This is the text that will appear in the Change Notes tab of your Steam Workshop
page. A new Change Notes entry is generated for each upload.
Preview Image. This will be used a the thumbnail image for your mod on the Steam Workshop, and
by default will be used as the first marquis image at the top of your Description page
6
Build Mod for Usage. Clicking the Build Mod button will “cook” the mod into a .pak file, making it
ready to distribute and use. Checking Compress Pak before cooking will reduce the size of the pak
file, resulting in faster downloads and faster load times for users. Clicking on the Choose Assets for
Cook button allows you to browse assets available to be “cooked” (included) in the pak file for your
mod, selecting and deselecting them as you wish. See Shared Assets & the ModsShared Folder
below.
Compile Blueprints. Clicking Compile Modded Blueprints allows you to recompile all modded assets
belonging to your currently active mod (Mods/ModName) as well as any shared assets from your
other mods (ModsShared/ModNames). You are additionally given the option here to re-save all such
assets, once the compile process is complete.
Active Mod Folder. Clicking Active Mod Folder will open the source file location for your mod.
Clicking Built Mod Folder will open the location of your most recently cooked PAK file.
Steam File ID. Generated by Steam and assigned to your mod the first time you upload. This number
is arbitrary, permanent, and can only be changed by forcing a new upload. Clicking the Open
Workshop Page button opens the Steam Workshop page for your mod.
Steam Visibility. Designates what users can see and download your mod on the Steam Workshop.
Steam File ID. Clicking the Upload Built Mod to Steam button uploads your mod to the Steam
Workshop. This cannot be undone, and once a mod is uploaded, it will begin auto-updating to
subscribers. If your mod does not already exist on the workshop from a previous upload, a new mod
ID and description page will be created. Always double-check to make sure you’re ready before doing
this. See Cooking & Uploading Your First Mod below.
Clicking the Update Mod Info to Steam button will update your mod info on the Steam Workshop,
using the updated info from this window. The mod name visible to users in their Mods menu will not
be updated however, as the name is cooked into the PAK file.
Steam Testlive Fild ID. The buttons in this section function exactly like those in Steam File ID, with
one important difference: It will update (or create) your mod on a separate version of the Conan
Exiles Steam Workshop exclusively for the current Testlive version of the game. Players using the live
version of the game client (almost everyone) will not be able to use this mod.
In the Toolbar, The down-arrow button to the right of the Dev Kit
Window button will give you a small handful of options:
Select Active Mod. This is how you switch between mods. Note that
this requires a Dev Kit restart, and will move the Active.txt file to the
7
windows source folder of the mod you are switching to (see Active.txt, below).
Create a New Mod. Allows you to create a new mod. This will prompt you to enter a name for your
new mod and then restart the Dev Kit.
IMPORTANT: The name you give your mod determines the name of the PAK file as well, and this
cannot be changed later. Make sure to give this some thought and choose a unique name.
Open Documentation Web Page. Opens the official Conan Exiles Wiki article on Modding.
You can play with your mod in the Dev Kit, which by default will load the player into a level called
AlmostEmpty. This level has all of the features and game mechanics of Conan Exiles, but uses a
bare bones map with a simple plane surrounded by a default skybox.
In addition to that, you have some options to choose from that affect the environment in which you
play.
8
Managing Your Mod Files
Source Folder. Referred to as the Active Mod Folder in the Dev Kit window, your source files are
kept here. Original assets are stored in the Local subdirectory, while edited base game assets are
stored in the Content subdirectory. Your modinfo.json file can also be found here.
Built Mod Folder. Your mod’s PAK file is kept here. When you upload your mod to Steam, this is the
location the PAK file is sourced from. Both your Active Mod Folder and Built Mod Folder can be
located by clicking the respective buttons near the bottom of the Dev Kit Window.
IMPORTANT: These folders are used by the dev kit to identify your mods and make them available to
be edited and published. If they are deleted or lost, you will no longer be able to edit your mod, so
make periodic backups!
Additionally, it can be helpful to create desktop shortcuts to the following Windows directories, as
you’ll be navigating to them often:
Mods can only be edited using the source files (those found by clicking the Active Mod Folder button
in the Dev Kit Window). PAK files cannot be edited directly, nor can they be extracted into usable
source files.
Also found in your Active Mod Folder is the modinfo.json file, which contains some of the basic
information about your mod.
You do not need to alter this file manually, as the dev kit automatically writes to this file when you
makes changes in the Dev Kit Window inside the Dev Kit itself (see The Dev Kit Window above)
To re-upload your mod to a different mod ID for any reason, such as to re-publish it as a new Steam
user or publish a secondary test version of your mod, delete the numerical value given for
steamPublishedFileID so that there is nothing between the quotations.
9
Active.txt
The Conan Exiles Dev Kit redirects reads & writes of assets to the mod's folder on the disk:
■ If you modify assets in the /Content folder outside of your own mod, they are saved to
Content/Mods/<ActiveModName>/Content/. If the modified asset is deleted from your mod
folder in Explorer, the reads/writes will revert to the default path location.
■ Reads & writes in Content/Mods outside of your <ActiveModName> folder are blocked in the
dev kit (changes can still be made in Windows Explorer, although this is not recommended).
■ Nothing in the Content Browser outside of Content/Mods can be added, moved, deleted or
renamed, with the exception of the ModsShared/ModNames folders, which will be visible and
modifiable regardless of the currently active mod.
■ Due to licensing agreements, some assets purchased from third parties by Funcom cannot be
moved, edited or exported. These will usually be visual assets such as meshes, materials,
textures and particles.
10
Shared Assets & the ModsShared Folder
Below the Mods folder in the Dev Kit Content Browser, you will see a folder named
ModsShared/ActiveModName, as well as a folder for all of your other mods. You can created assets
in these ModsShared folders and share them freely between different mods, allowing you to
consolidate frequently used blueprints, etc. or create API functionality for use by other modders.
In Windows Explorer, you can find these ModsShared assets in your mod’s Shared folder.
The image below shows where your mod’s source files are located in your Dev Kit installation
directory, as well as how the subdirectories relate to how your assets are displayed in the Content
browser:
11
12
Naming Conventions
Conan Exiles assets created by Funcom for the base game follow naming schemes that make them
easy to search for and identify. Following these naming conventions in your mods is voluntary, but is
considered best practice as doing so makes troubleshooting and error log analysis much more
straightforward.
It is also a good idea to give your components individual prefixes related to your mod to avoid
inadvertently giving an asset the same name as an asset in another mod. In some cases, such as
Actor Components, this can cause client and server crashes.
Example: SvS_BP_PL_StygianChair
The above example is the name of a Blueprint for the Stygian Chair placeable in the Shadows of
Skelos Extended Mod by Senja.
AC Actor Component
BP Blueprint
DT Data Table
M Material
MC Mod Controller
MF Material Function
MI Material Instance
PL Placeable
SM Static Mesh
ST Struct
T Texture
13
Other Best Practices
Some other notes about working with the Dev Kit, in no particular order:
■ While playing, you can open the Admin Panel by pressing SHIFT+INS
■ By default, the ESC key closes your Play In Editor session and will not open the main menu
in-game. To rebind the key used to stop a Play In Editor session, open Editor Preferences >
Keyboard Shortcuts and search for the “Stop” keybinding.
■ Avoid using the “Save All” option in the editor. This can cause you to overwrite base game
assets if you have mistakenly made even a minor change to them, such as moving a node.
■ Give everything unique names. As a general rule, avoid giving your objects and variables
names that you think might be used by other mods.
■ Stay organized. Plan out a good Content Browser folder structure for your assets that can
expand as your mod becomes larger, and stick to your plan.
■ Do not, for any reason, press CTRL+Z (Undo) with the dev kit open. This can break all the
references in a data table, wiping out countless hours of work.
■ You can run the RunDevKit.bat file in your ConanExilesDevKit folder to run the Dev Kit without
updating it to the most recent version. This may be helpful if the dev kit is updated
pre-emptively to a version that is not compatible with the current live version of the game.
■ You should make frequent backups of your mod source files and save them externally, in case
the unthinkable happens
■ You can find the database and save data (including logs) for your Dev Kit play sessions in:
X:/Users/<YourUserName>/AppData/Local/ConanSandbox/Saved
■ You can disable real-time thumbnail previews in your Content Browser by clicking on the View
Options button and unchecking the Real-time Thumbnails option. Doing this can provide a
major performance boost when running the dev kit, even on high-end PCs.
14
III. Creating Your First Mod
In this section, we’ll guide you through getting your feet wet by creating a very simple mod. This mod
will:
■ Add a ModController to the game. A ModController is a special kind of object that you can
think of as the home base of your mod. In layman’s terms, it is an invisible actor that can be
referenced by any other actor or process in the game during runtime.
■ Add a new type of broadsword item and modify it to use the attack combos of the One-handed
axe
IMPORTANT: You should not upload the mod we are about to create, unless you decide to choose
different, unique names for all of the assets created during the guide.
Step 1: Setup
First, let’s create your mod, set up some folders in the Content Browser, and create the assets you’ll
need to get your mod functioning.
1. Click on the Conan Exiles Dev Kit button near the top of the screen and select Create a new
mod…
15
2. Create a new mod called MyFirstMod. If you think you might ever publish the mod we’re about
to create, choose a unique name. Changing the name of a mod is a big undertaking, so always
put a lot of thought into this step.
3. Create folders for your assets in the Content Browser, one called Blueprints and one called
DataTables.
4. In your Blueprints folder, create a new blueprint class, choose the Modcontroller class, and
name it MC_MyFirstModcontroller. As mentioned in the Terminology chapter above,
ModControllers are a special class of Actor who perform some very important functions critical
to modding in a compatible way. Almost every mod you create and publish will have at least
one ModController.
16
5. In your DataTables folder, create a new Data Table asset by right-clicking in the folder view
space and selecting Data Table from Create Advanced Asset > Miscellaneous. Use the struct
type ItemTableRow and name it MyFirst_ItemTable.
17
6. Create another Data Table asset using the SpawnTableRow struct type, and name it
MyFirst_SpawnTable.
7. Create one more Data Table using the EquipmentTemplateTableRow struct, and name it
MyFirst_EquipmentTemplate.
What we’ve done here is create some supplemental data tables. Later in this tutorial, we’ll use our
ModController to tell the game to merge our supplemental data tables into the base game’s tables,
allowing us to add rows to them without editing them directly, which causes compatibility issues.
1. Open the base game ItemTable data table asset in the editor, and search for Iron Broadsword.
3. Open your MyFirst_ItemTable. Right click anywhere in the Data Table space, and select
Paste Rows. You’ve now created a duplicate of the Iron Broadsword row in your mod’s item
table.
a. Change the Row Name to some unique number. In our image below, we’ve used
995995. NOTE: Item Table row names, a.k.a. Item Template IDs, cannot be
longer than 9 digits
18
Step 3: Create a new NPC
1. Open the base game SpawnDataTable asset in the editor and search the data table for
Exile_Fighter_1_Cimmerian. This is the basic NPC data for the Exile T1 Cimmerian fighter
NPC in the game.
3. Open your MyFirst_SpawnTable. Right click anywhere in the Data Table space, and select
Paste Rows. You’ve now created a duplicate of the Exile T1 Fighter row in your mod’s item
table.
4. As before, we are going to change some things about this new row:
c. Delete one of the elements of the Equipment Template array, and change the
remaining element to Exile_Gear_Special
19
2. Add a new row by clicking the + icon at the top left corner of the Row Editor and name it
Exile_Gear_Special to correspond to the Spawn Data for your NPC.
3. Add an array element to Main Hand, and assign it the row name you used for your special
broadsword (995995 in our case).
4. Add an array element to Legs and assign it the row name for the Light Wrap item from the
base game, 52004.
3. As shown below, create three Merge Data Tables Nodes and link them together using the
execution (white) pins:
20
4. Compile and save your MC_MyFirstModcontroller.
1. Using the Play button, either above the Viewport or in the Editor, test your mod. If this is your first
time playing a level, the Dev Kit will need to build some assets, which may take quite a while. This
only needs to happen once per installation, however.
2. Open the admin panel (Shift+INS). You should now be able to search for and spawn your new
NPC using its row name, Exile_Fighter_1_Special. Note that it will attack you when you spawn it!
3. If you’ve completed the above steps correctly, your fighter NPC will be wearing a light wrap and
will attack using your special broadsword with one-handed axe attacks.
21
IV. Cooking & Uploading to Steam
These are some best-practice steps to follow each time you publish your mod:
When you upload, your mod description will automatically be updated to whatever text you have
typed into the Description field in the Dev Kit Window, even if it is blank. This means that if you’ve
created a personalized description on Steam using BBCode with links, images, etc., it will be lost
when you upload from the Dev Kit. Make sure you save your description to a google doc or
something similar.
Click on the Active Mod Folder button in the Dev Kit Window, and navigate to the Content subfolder in
Windows Explorer, if it exists. This folder (and any subfolders) contains any base game assets which
you are overwriting with your mod.
It is extremely important to check here before each upload to make sure you haven’t mistakenly
overwritten a base game asset, which is as easy as making a minor change and then saving it.
Overwriting base game assets can cause bugs and compatibility issues with other mods.
In the Dev Kit Window, click on the Choose Assets for Cook button, and make sure no unneeded
shared assets from other mods are being included when you cook your mod.
Before uploading, save a copy of your .pak file for the current version of your mod.
This is a good habit to get into in case your users become locked out of a server due to a version
mismatch. This is a common situation because Steam automatically pushes mod updates to
subscribers, but does not automatically update game servers.
How you choose to make your old PAK file availables to users is up to you, and will depend on the
size of your user community.
22
5. Check Your Steam Account
Make sure you’re logged into the right Steam account if multiple people use your PC.
Also note that a valid Conan Exiles key must be present on the account. If you play the game using
Steam’s Family Sharing feature, you will need to purchase the game before you can upload mods to
the Steam Workshop.
To cook your mod, open the Dev Kit Window. Make sure the Name field contains the name you want
users to see in their Mods menu. In most cases, you will want to check the Compress .pak checkbox
to make your mod size as small as possible.
Once you’re happy with your settings, click the Build Mod button.
Double-check all of your mod info in the Dev Kit Window to make sure it’s correct and up-to-date.
Make sure you’ve selected the right Visibility setting (Public in almost every case), then click Upload
Built Mod to Steam.
23
V. Mod Compatibility
Staying Up to Date
Mods can often break after updates to the base game of Conan Exiles. Sometimes, the only way to
fix this is by downloading an updated version of the devkit corresponding to the latest version of the
game, and re-cooking your mod.
The devkit is usually (although not always) updated several days in advance of a base game update.
It is important to know the difference between modifying a base game asset, such as a Blueprint
class or data table, and making equivalent changes during some process at runtime. As mentioned in
previous sections, your mod’s assets are stored in the Content/Mods subfolder of the UE4 Content
Browser. Any assets in any other subfolder are base game assets and should not be overwritten
except as a last resort when all other methods have been exhausted.
The reasons for this are twofold. First, any base game asset you overwrite will be “frozen” in that
version and will not reflect changes from any base game updates in the future (if it is a Blueprint
class, it will inherit any changes from updated parent classes, however). This can cause
game-breaking bugs that make your mod unusable.
Second, an asset can only be modified by one mod in a game’s load order. If multiple mods modify
the same base game asset, only the mod that is loaded last (lowest in the load order) will have its
version of that asset used by the game during runtime. At a minimum, this will cause other mods to
lose functionality. It can also cause bugs or crashes in other parts of the game.
For example: Let’s say you want to make a small change to the way the basic crafting stations in
Conan Exiles function. You edit the BP_PL_CraftingStation class, save your change and publish
your mod. Your mod probably works fine at this point! However, your changes will be incompatible
with any other mod that makes changes to that base class. Additionally, any changes made by
Funcom to that base class in the future will not be applied to your mod, because you have frozen that
class in time.
As you become more familiar with how CE’s base game systems work, it will be easier to develop
solutions to problems that keep you compatible with other mods, as well as future base game
updates.
24
Mod Load Order
Conan Exiles loads mods in order from the top to the bottom of the game’s mod list, with lower mods
taking precedence over those higher up. If two or more mods in the list modify the same base game
asset, the version of the asset provided by the mod furthest down will be the one used by the game.
In most cases, this will not cause crashes, but can cause features of some mods not to function
Players and server admins can manually configure the mod list of a game by editing the modlist.txt
found in the Content/Mods folder of the game directory. The mod list in that text file follows all of the
rules mentioned so far.
Additionally, modlist.txt entries can point to either a mod in your Steam Workshop content directory, or
a manually installed mod. For example:
*X:\steam\steamapps\workshop\content\440900\880454836/Pippi.pak
*X:\steam\steamapps\workshop\content\440900\2019092080/Emberlight.pak
Emberlight_Lament.pak
The first two lines in the list will use the mods found in the location of the user’s Steam Workshop
directory. PAK files kept in those folders are updated automatically by Steam. The third mod, which is
simply listed as the file name with no path, will use the PAK file found in Content/Mods, alongside the
modlist.txt file itself.
If a player starts the game client, and the game cannot find the correct PAK files in the locations
indicated by the modlist, they will receive an error, and that mod will be removed from the modlist.
The ModController blueprint class created by Funcom serves two very important purposes for
compatibility. It allows modders to take the following actions without modifying base game assets
directly:
■ Add, remove or replace Data Table rows in the Mod Data Table Operations tab
You can find a more detailed breakdown of the ModController in the section The ModController
Blueprint Class, below.
25
Mod Data Table Operations
In the Creating Your First Mod section, we showed you how to merge your own supplemental
ItemTable (MyFirst_ItemTable) into the base game’s ItemTable. Please refer to that tutorial if you
need a refresher.
The Mod Data Table Operations graph of your ModController is a space set up to run very specific
functions during the initial startup of the game. These functions exist to allow the manipulation of base
game data tables without requiring modders to directly edit assets, which can create compatibility
issues.
The functions available in Mod Data Table Operations cannot be called from within other blueprint
classes, and only these three functions can be executed in the Data Table Operations graph.
Clear Data Table Clears the entire Target Data Table of all rows. Don’t use this.
Merge Data Tables Combines all rows from the To Be Added Data Table into the Merge Into Data
Table. Some things to keep in mind about this function node:
■ The two referenced Data Table assets must be of the same Struct.
■ Any overlapping row names will be replaced by the To Be Added Data Table. Only entire rows
can be replaced in this way; individual columns of a row cannot.
■ To remain compatible with other mods, your row names must be unique to your mod. Rows
with duplicate row names will overwrite one another according to the mod load order rules
above.
Merge Data Tables with Control Table This node functions similarly to Merge Data Tables,
with one important difference: the ability to use a Merge Control Table to make isolated changes in
specific rows of data table columns. Using this node, modders can alter the way the base game (or
26
another mod) works by tweaking specific data table values while leaving the rest of that row
untouched. To use this node:
1. Set up the first two inputs (“Merge Into Data Table” and “To Be Added Data Table”) exactly as
you would in the Merge Data Tables node. You will want to create a separate data table asset
to use for rows that you want to edit rather than override.
2. Create a new data table using the Data Table Merge Control Row struct. You will use this to
give instructions to the game about how to merge your new data into an existing data table.
Name this data table something appropriate, like MyFirst_ItemTable_MergeControl
3. Open your Merge Control data table and create a single row with the row name
“MergeControl_Default”. It is important to get this row name exactly right.
4. Use the columns of the MergeControl_Default row to indicate which columns of the target data
table should be overridden by default. You must use the exact names of the columns in the
target data table (e.g. “ShortDesc”, “Icon”, etc.) Additionally, data table columns with arrays
(such as required crafting materials in RecipesTable) can have array elements added or
removed using this process.
5. Add additional rows to include specific merging rules for specific rows. For example, if you
want to override the Long Description of the Four-Sided Die item, you would create a row in
your Merge Control Table with the row name 4220 (the ItemTable row name of Four-Sided
Die), and add “LongDesc” to the array of Columns to Override. Note that any columns merged
in this way without their own rows in the Merge Control Table will follow the rules in the
ModControl_Default row.
Some other important notes about using Merge Data Tables with Control Table:
■ Only create one row in your Merge Control data table. Creating additional rows or using a row
name other than “MergeControl_Default” can result in unintended behavior and/or bugs.
■ You will need to create a separate data table asset to use for merging with a control table, as
ONLY the columns indicated by the Merge Control table will be edited. All other columns will
be ignored.
■ For example, if your mod adds new weapons to the game and you also want to change the
properties of an existing base game weapon, you need to make two data tables of the
ItemTableRow structure: one to add whole rows for your new weapon items, and another to
tweak specific properties of base game weapons.
■ Always use the column names without spaces. Even though the Unreal Engine 4 displays
many names with spaces, this is for clarity only, and the correct spelling of column names will
always be without spaces (e.g. “LongDesc”, not “Long Desc”).
27
Remove Data Table Rows Given a Data Table asset reference and an array of Name variables,
removes those row names from the Target Data Table, deleting those rows entirely.
Another useful tool in the ModController class is the ability to add an Actor Component to an Actor at
runtime without the need to directly modify that class. You can find this in the Defaults panel of the
ModController under Mods > Additional Class Components.
Actor Components and their use are covered in later sections of this guide.
28
In the above example, we are adding an Actor Component class called AC_MyFirstMod to the
BasePlayerChar actor class. Now whenever a character of the BasePlayerChar class is spawned, it
will have an AC_MyFirstMod component attached to it.
You can use such an Actor Component to execute Remote Procedure Calls (RPCs) or add
functionality to the owning actor, all without modifying base game assets.
■ Always make sure that your Actor Components have their Component Replicates checkbox
set to True in their Defaults panel. If everything seems like it should work, but it’s not working,
it’s probably because you forgot to do this.
■ Actor components added in this way (and in general) must have a unique name. If they have
the same name as an actor component that is included as part of the target’s class, or is
added by another mod, the game or server will crash on startup.
29
VI. Unreal Engine & Blueprint Basics
This guide recommends you learn the basics of the Unreal Engine, which will teach you about some
fundamental concepts and techniques that will be essential for understanding how Conan Exiles
works and how best to plan your mod projects.
To get started learning the Unreal Engine, you will need to download a version of the engine from the
Epic Games Store launcher. Following any of the below tutorial series before getting too far into your
first modding project will give you a huge advantage.
This series spans about 200 minutes of video, and takes the viewer from downloading the engine
through working with materials and basic behavior scripting.
Website Tutorial
Official Documentation
https://docs.unrealengine.com/en-US/GettingStarted/index.html
Epic’s official guide to using Unreal Engine 4 is comprehensive, but includes a lot of information which
is not relevant to Conan Exiles modders, such as creating C++ classes. Nevertheless, individual
sections of this site make for invaluable reference and will be linked throughout this CE modding
guide.
30
VII. Critical Unreal Engine Topics
Before getting too far into your modding journey, you should be familiar with these broad topics, and
be able to answer some basic questions. If you have already gone through one or more of the above
tutorials, feel free to skip to each of the Learning Check sections below and decide for yourself if you
need further reading.
A Blueprint class has one or more instances created in the game world during runtime. This does not
happen automatically, but must be done using a Spawn Actor node or some other process. One
notable exception to this is the Modcontroller Class (see The Modcontroller Blueprint Class, below), a
single instance of which will always be present during games.
A simple way to think of it is this: a Blueprint Class is a template for an in-game object that exists on a
hard drive as part of the game’s data. During runtime, the game creates one or more instances of that
Blueprint in the game world; those instances exist in RAM, and are “living” objects that immediately
start to behave according to their instructions.
For example: BP_NPC_Wildlife_Gazelle is a Blueprint Class, but each gazelle you see in the game is
a separate instance of that class.
Learning Check:
An actor is a class of object that exists in the game world and has game logic which it executes
during runtime. It may or may not have visuals associated with it. A Pawn, which is an actor that has
a mesh and can be controlled by a player or AI, is a child class of the Actor class.
An Actor Component is a sub-object which can be attached to an Actor, either in Blueprint or during
runtime using script.
An example of an Actor class is BasePlayerChar, the class of all player characters in the world. An
example of an Actor Component class is the Character Customization Component, which controls all
the visual and other info of characters in the world, such as name and race.
31
Actor Components (or ACs) are a common, versatile tool for implementing new functionality in Conan
Exiles, as they allow you to give new behavior to existing base game objects without modifying base
game assets.
Resources:
https://docs.unrealengine.com/en-US/Programming/UnrealArchitecture/Actors/Components/index.html
https://docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/Components/index.html
Learning Check:
Class Inheritance
Object classes (in both C++ and Blueprint) follow a parent-child hierarchy. Creating a child of an
existing class allows you to expand on its behavior and better organize complex projects. It also
saves time, as you can change a property in many classes by simply changing that property in their
shared parent class.
Almost all Blueprint classes have a parent class from which they inherit some properties or behavior.
Resources:
https://docs.unrealengine.com/en-US/Engine/Blueprints/BP_HowTo/BasicUsage/index.html
https://docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/Types/ClassBlueprint/index.html
Learning Check:
According to the official Unreal Engine 4 documentation, “The Pawn class is the base class of all
Actors that can be controlled by players or AI.” In Conan Exiles, this includes all NPCs as well as the
BasePlayerChar class.
Usually, a pawn is possessed by a controller at the moment it spawns, and a pawn can be possessed
by multiple controllers during its existence.
32
Resources:
https://docs.unrealengine.com/en-US/Gameplay/Framework/Pawn/index.html
https://www.youtube.com/watch?v=UwZOw5KmRno
Learning Check:
Replication
Replication is the term for a range of processes which communicate information across a network
during a multiplayer game.
If two players are logged into a dedicated server to play Conan Exiles, there are actually three games
running: the server’s game, and each client’s game. Most important processes, such as calculating
damage and updating character information, occur on the server and then the results are replicated to
clients, updating them on the state of the game.
If those same two players are playing a co-op game, it’s quite a bit different. In that situation, the
player hosting the game is the server (called a Listen Server), while the player joining the game is a
client.
These are very different environments, and you will need to make sure your scripts work correctly in
both, while being mindful of other considerations such as server CPU usage and network traffic.
The good news is that, very often, Conan Exiles’ existing systems will handle replication for you. If
you are simply adding new variants of things that already exist in the game, such as buildings or
weapons, you won’t need to think about replication. But the more advanced and experimental your
mods get, the more you will need to manage replication yourself.
Resources:
https://docs.unrealengine.com/en-US/Gameplay/Networking/index.html
Learning Check:
What are the two main ways in which Actors are replicated over a multiplayer network?
Why is efficient replication important?
33
What is the difference between a dedicated server and a listen server?
What is the difference between a Run on Server event and a Multicast event?
What is a Remote Procedure call?
As a 3D game, Conan Exiles’ visuals are rendered using Static Meshes and Skeletal Meshes. These
meshes are wrapped in another type of asset called a Material, which gives them their color,
reflectiveness, etc.
Resources:
https://docs.unrealengine.com/en-US/Engine/Content/Types/index.html
Learning Check:
34
VIII. Other Asset Types
In addition to Blueprint Classes, there are several other UE4 asset types commonly used in Conan
Exiles that you should be familiar with.
Struct
From the UE4 documentation: “A struct is a collection of different types of data that are related and
held together for easy access.” Essentially, a struct is a single variable containing a number of other
variables.
The most basic use of a Struct is to store groups of variables together so they can be referenced as
one object, which saves time and helps you stay organized. Structs are also used to define Data
Table rows.
For example, the ItemTableRow struct is used to define the ItemTable data table, which contains
crucial information about all the items in the game.
Resources:
https://docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/Variables/Structs/index.html
https://www.youtube.com/watch?v=2-tCCtkX1sk&t
Data Table
Data tables let you set up constant (not variable) data for easy reference by your scripts.
An example of a Data Table in Conan Exiles is the ItemTable, which is based on the ItemTableRow
struct.
Resources:
https://www.youtube.com/watch?v=nt1hlJO-DPo
Enumeration (Enum)
An Enumeration is a list of constant values, and is often used to implement a switch or a selector. An
example of an Enumeration in Conan Exiles is E_CharacterState, which the game uses to track the
state of a character with values such as Dead, Emoting, etc.
Resources:
35
https://www.youtube.com/watch?v=yVx8sTO43gc
Widget
Widgets are User Interface elements, usually created in the Unreal Motion Graphics (UMG) UI
designer. They are used to design interfaces such as HUDs and menus.
Resources:
https://docs.unrealengine.com/en-US/Engine/UMG/index.html
36
IX. Conan Exiles Actor Classes
ModController
In addition to the functions mentioned in Mod Compatibility, the ModController class can be used as
a central place to manage variables and execute scripts. It has a persistence component for saving
data to the game’s database (see Persistence Components, below)
ModControllers always exist in the world during runtime on the server and all clients. Only one
instance of a ModController class can exist at any time, though a mod can have any number of
individual ModController classes.
Characters
Character blueprints are some of the most complex in Conan Exiles, and include everything from
boss characters to passive prey animals to the player character. They are also quite modular; many
of the most important properties and functions of CE characters can be found in their actor
components.
There are two main “branches” in the character class inheritance tree: one that adds the functionality
for the player character (Base Player Char) and one that adds functionality for NPCs (Base NPC) and
all of its child classes. See the diagram below for a more in-depth visualization of this.
There are many properties and functions common to both the Base Player Char class and the Base
NPC classes; these include buff system functionality, movement and combat, and can be found in the
Base BP Combat class.
Conan Exiles’ character blueprint classes use the Unreal Engine 4 Pawn class as their base. See the
diagram below for more information on how these classes inherit from one another.
37
38
Base Player Char
The character blueprint class controlled by the player during gameplay is Base Player Char. When a
player character spawns into the game either because they’ve logged in or because they’ve died and
respawned, the character they control is an instance of the Base Player Char class.
This class is always possessed by a Player Controller class named FunCombat Player Controller.
[WIP]
Character Stats
All character stats and attributes, from the six major ones that players are familiar with like Strength
and Grit, to more behind the scenes properties, are defined in C++ and separated into Int Stats and
Float Stats.
The following tables may be incomplete, as the game has changed over time, and many stats have
been added, depreciated, or had their usage altered. If you see any incorrect information here, please
right click on it and leave a detailed comment.
Int Stats
0 Health Max Maximum health of the character (can be set independently of Vitality)
2 Feat Points Used The amount of feat points spent to buy feats
3 Feat Points Total The character’s current maximum feat points, based on it’s level
6 Stamina Max Maximum stamina of the character (can be set independently of Grit)
7 Consciousness Current
8 Consciousness Max
9 Thrall ID
10 Thrall Tier
11 Gender
39
12 Knockback Defense
13 Faction
14 Attribute Health This is the Vitality attribute for players, NOT raw health
15 Attribute Stamina This is the Grit attribute for players, NOT raw stamina
16 Attribute Encumbrance
18 Attribute Accuracy
24 Endurance Current
25 Endurance Max
26 Stagger Resistance
Float Stats
6 Natural Armor
9 Armor
40
11 Killed XP Modifier
12 Current Encumbrance
15 Knockback Fragility DR
16 Knockback Threshold DR
18 Creature Damage UI
19 Creature Penetration UI
Actors placed in the world by players using Conan Exiles’ building system fall roughly into two
categories: buildings and placeables. Both of these types of actors share the Buildable Base class,
but diverge early on in their inheritance scheme and behave quite differently. See Buildings vs.
Placeables below for a breakdown on how these two classes differ.
Much of the functionality of buildables is coded in C++ and is not accessible to modders. That said,
many of the C++ functions can be overridden in Blueprint, and many of their properties (such as the
boolean CanBeDamaged) can be accessed from other blueprints.
The base class for all buildings and decorations, Buildable Base, inherits directly from the UE4 Actor
class. See the diagram below for a breakdown of these blueprint classes.
41
42
Buildings vs. Placeables
Building Bases...
■ Are single actors made up of building pieces which snap together into larger
structures
■ Can support decorations (placeables) as well as additional building pieces
Placeables...
BP Building Base
When a player begins building with building pieces in Conan Exiles, the first piece they place (usually
a foundation) creates a BP Building Base actor in the game world at that location. As you snap more
building pieces to that initial foundation, new actors are not created (with one exception; see below).
Instead, Instanced Static Mesh Components (in this case a child class named Instanced Building
Static Mesh) are added to the existing BP Building Base actor. This reduces the number of draw
calls required to render a player build in-game.
If you are manipulating the building system in your mod, you can use the Get Root Master
Building function to get a reference to the master building. If the building base being referenced is
the master, it will return a reference to Self.
BP Master Placeables
[WIP]
43
44
X. Conan Exiles Component Classes
Persistence Components
Many actor classes in Conan Exiles, such as players, NPCs and buildings, have a Persistence
Component used to store data associated with an actor instance to the game.db database. If you
want to save special properties to characters (such as a mana value, etc.) or mod settings configured
by administrators, this is the node you’ll use.
[WIP]
■ Only variables with their Save Game property set to True will be saved to the database when
this node executes.
■ To save the value of actor properties while playing on a dedicated server, you must be
executing script on the server.
■ Saving extra data to player-owned thralls using the persistence component will cause those
thralls to fail to spawn should the mod responsible for that extra data ever be removed from the
server. For example, if your mod gives a mana value to player thralls and you use the
Persistence Component to save their mana value between server restarts, and then your mod
is uninstalled, those thralls will remain in the game.db but will fail to spawn until your mod is
reinstalled.
45
Character Customization Components
Player characters and humanoid NPCs have a Character Customization Component that controls
the appearance of the character. These components work in conjunction with the Character
Assemble Library and player/NPC data to apply the correct visuals when the owning character is
spawned.
46
XI. Other Conan Exiles Object Classes
The GUI Module Controller is a client-side object that controls the behavior of the game’s various
menus, crafting screens, HUD elements, etc. The UI Module Table data table contains the specific
properties for each module.
You can get a reference to the GUI Module Controller in any event graph using the Get GUI
Module Controller function. Note that the GUI Module Controller only exists on the client. If it is
called in a script executing on a server, it will return None.
IMPORTANT: Any widget blueprint class you create for your mods (for example, a mod settings
panel) must be reparented to the Window Root class in order for Funcom’s GUI Module Controller
to interact with it. You can do this at any time, even after you’ve added script or widget elements, as
reparenting in this way will not cause you to lose any work within the blueprint.
47
Useful Functions
Get Module Given a GUI Module name, returns a reference to that module. This reference can be
used to bind events.
Is Module Active Given a GUI Module name, returns a boolean value depending on whether or
not that module is currently active.
Activate Module Given a GUI Module name, activates or deactivates that module, and returns a
reference to the widget associated with it. Note that widget blueprints can only interact with the GUI
Module system in Conan Exiles if they inherit from the Window Root class.
This function library contains various functions accessed by many different blueprint classes
throughout the game.
[WIP]
The Character Assemble Library contains many shared functions used by different blueprint
classes to apply customization data to characters and render them in the game. It is responsible for
translating customization data (such as eye color, hair style, etc.) into the skeletal meshes that you
see in the game.
Useful Functions
Set Character Layout commits changes to a humanoid character’s meshes, tints, etc.
The player controller class used by the game to handle player input and possess the Base Player
Char actor class is Fun Combat Player Controller.
Useful Functions
Notification Text Will display a message to the player on the right-hand side of the screen,
using the game’s standard visuals.
48
49
XII. Conan Exiles Data Tables
Many of the game systems in Conan Exiles are data-driven, meaning they function based on the
information found in Data Tables. Data Tables are static; their values cannot be changed during
runtime.
Gameplay and character progression in Conan Exiles center around items, whether looted or crafted.
Much of the crafting system in the game is data-driven, meaning information about item properties,
crafting stats and magical bonuses are stored in data tables and looked up by actors, such as crafting
benches, during gameplay.
Feat Table
The Feat Table defines every knowledge feat in the game, with the exception of DLC feats. Browsing
Funcom’s base game feats should give you an idea of the information that needs to be included with
a Feat, but here are some things to note:
These properties are straightforward and affect how the feat appears in the
Feat Name, Description, Icon
Knowledge Menu
Feats with this property checked will be granted to all player characters when they
Give on Spawn
enter the game.
The cost of the feat, in Knowledge Points. You will usually want to have a feat cost
Feat Cost
of at least 1, as a feat cost of 0 causes some visual issues in the knowledge menu.
The category tabs your feat will be displayed in. If you do not set at least one
Categories category, players will only be able to find your feat in the Search tab of the
knowledge menu.
The feat required before this feat can be purchased. If you add a feat ID to this
Prerequisite Feat
array, your feat will appear alongside its prerequisite feats.
An array of recipe IDs. These are the recipes that will be granted to the player
Reward Recipe
character when they learn a feat.
Feats with this box unchecked will be hidden in the knowledge menu until it is
Show in Feat Window
granted to the player character.
Feats with this box checked will be hidden in the knowledge menu, even if granted
Always Hidden in Feat Window
to the player character.
50
Determines the placement, from top to bottom, of the feat in the knowledge window.
Corner Stone Level
This only applies if the feat does not have a prerequisite feat.
Recipes Table
The recipe table contains a row for each crafting recipe in the game, including hand-crafted items and
those crafted at stations, regardless of the type of station. Like Feat Table, Recipes Table does not
include any DLC content.
Recipe Name, Short Desc, These properties are straightforward and affect how the recipe is displayed in the
Icon crafting menus.
Recipe Type
Building Module
Setting this to True causes the crafting station to destroy itself when the recipe is
Destroy Station on Complete
completed.
Ingredient ID, Ingredient Up to 4 pairs of Item IDs and quantities (as integers). These are the required
Quantity materials and their quantities required to craft the recipe.
Catalyst ID
Four output items (by Item ID) can be defined in these columns, along with quantities
Result ID, Result Quantity,
as integers. The weights allow you to set your recipe so that some results only have a
Result Weight
chance to be spawned in the output inventory.
Is Recipe Enabled Allows you to disable this recipe without needing to delete the data table row.
A Name property. When your recipe is completed, the Journey system will award this
Exiles Journey Trigger
journey step to the player character who initiated the crafting process.
51
Item Table
The Item Table structure is massive and complex enough to warrant its own document elsewhere, so
we will simply cover some of the foundational properties as well as those relevant to the game’s
crafting mechanics:
Items Category
Name, Short Desc, Long These properties are straightforward and affect how the item appears in the GUI
Desc, Icon
The blueprint class for the inventory item itself. This must be BP Game Item or one of
Item Class
its child classes.
The blueprint class of the Building Base to be placed in the world, if the item is a
Building Class
building foundation.
The blueprint class to be used for defining weapon combo type, hit detection area,
Visual Object
etc.
Max Stack Size The quantity of this item that can be stacked in a single inventory space.
GUI Category
Item Tags
Visual Static Mesh The Static Mesh asset displayed for a weapon while it is being wielded.
Perish Rate The rate at which the item perishes. Higher values perish faster.
Perish to The item that will be spawned when this item decays/spoils
Max Durability
Repair Item, Repair Amount, The item IDs and quantities required to repair this item to full. Repair Item Weight =
Repair Weight ???
A building piece or placeable will be immune to damage dealt by a weapon below the
Affected by Damage Tiers
tier indicated here.
Determines decay timer for a stand-alone item, subject to server settings. E.g. 233 is
Building Piece Score
equivalent to tier 3 shrine.
52
Building Max Health The total HP of a building piece
Repair XP The amount of experience gained when repairing this item to full durability.
Descriptors you can give your item that will appear as bullet points when a player
Modifiers
selects the item. E.g. “Weapon”, “Sunder”, etc. They have no gameplay effect.
53
NPC Data Tables
[WIP]
54
Working with Data Tables
Gameplay in Conan Exiles is very data-driven, so it is important to learn how to work with the game’s
existing tables as well as create your own structures.
In the early stages of creating your mod, decide on how you want to number your rows in tables such
as the Item Table and Recipes Table.
IMPORTANT: Numerical data table rows should never be more than 8 digits long. Use the first 3-4
digits of a row for your unique mod identifier and the rest to count sequentially.
Example:
We choose 3040 as our unique identifier after making sure no one else is using that. So our Item
Table rows will look something like:
30400001
30400002
…
30401001
etc.
IMPORTANT
NEVER use CTRL+Z to undo an action while editing a data table. The "Undo" action (CTRL +
Z) itself cannot be undone and will break most references throughout an entire data table, including
links to icons, blueprints, etc. If this does happen to you, do not save your mod in its current state.
Instead, close the DevKit without saving and restart it.
If you don’t realize this has happened and save your mod afterward, you will be stuck with the
broken references throughout your data table and will need to either manually repair it (potentially a
very time-consuming process) or restore your mod from a backup.
1. Maintain your data tables outside the dev kit using the methods outlined in this section.
2. Unbind the Undo key in the dev kit’s Editor Preferences.
55
Importing & Exporting Data Tables
Exporting to .CSV
It is possible to export data tables from the Dev Kit in CSV format, which can be edited with any
common spreadsheet application. CSV stands for Comma-Separated Values and is a text file
containing each column of the table, line by line, separated by a comma.
Example:
A B C
D E F
“A”,”B”,”C”
“D”,”E”,”F”
To start the export within the DevKit, right-click on the data table you wish to export and select "Export
as CSV" in the context menu. Now select a location where you want to save the CSV file.
■ Entries within the data tables may contain links to other objects such as blueprints, visual static
meshes, icons or others, and are therefore stored as paths. These should always be left intact.
■ Text that occurs directly in the game, such as the Short and Long Description properties in the
Item Table, are dressed in special tags such as NSLOCTEXT and also contain internal field
identifiers that are needed for localization.
You can use these files to look at the internal structure of Funcom's data tables and reverse engineer
them into your spreadsheet program, e.g. DataTableExporter.
Due to the partially nested structure of the NSLOCTEXT fields, editing the CSV files directly is not
recommended, as it is too easy to delete an inverted comma or put a comma in the wrong place.
56
To start the import, right-click on your data table and select the option "Reimport" in the context menu.
Now select the location of the CSV file you want to import. The DevKit remembers the last path and
will use the path and file the next time "Reimport" is called.
You can change the location of the source file that a data table uses when reimporting:
1. Right-click your Data Table asset in the Content Browser and select Open Source Location
from the context menu. This will open Windows Explorer.
2. Find your CSV file in Windows Explorer and change the name to something new, leaving the
.CSV extension.
3. Right-click your Data Table asset once more, and select the Reimport option from the context
menu. You will now be prompted to select a new source file.
DataTableExporter
The DataTableExporter tool was originally provided by RobTheSwede. This tool is a data table from
Open Libre Office, an open source spreadsheet programme available for free on the internet at
https://www.libreoffice.org/
As you have seen in previous chapters, data-tables such as the ItemTable, are very important within
Conan Exiles. Editing these tables is only possible in a very rudimentary way in DevKit. You can
create new rows, change or delete rows, move an entry up or down or place it at the beginning or end
of the table. There is no "search and replace" function. If an error occurs when duplicating an entry,
each entry must usually be corrected manually.
In short: all the comfort features that a common spreadsheet programme has are missing in the
DevKit. And this is exactly where the DataTableExporter comes in.
In its original form, this DataTableExporter tool supports datasheet tabs for the three most common
DevKit tables (ItemTable, RecipeTable, FeatTable).
By means of a macro, the (pre-formatted) entries are automatically saved in one CSV file per table.
This can now be easily imported into existing tables in the DevKit.
Advantages:
57
● You can use the full potential of editing functions of the spreadsheet programme (here Open
Libre Office).
● You can keep backups of your data tables without the DevKit getting confused with the
referencing.
● The Undo-Bug (see chapter “Working with Data Tables”) loses its horror.1
Disadvantages:
● You have to get used to a new workflow: Changes are always made outside the DevKit and
are always imported into the respective tables in the DevKit (effort: 2 clicks).
● You must initially transfer your data into the tool.
Links to files that are easily selectable in the DevKit must be transferred as a directory path (effort: 2
clicks export + 2 clicks import).
● DevKit installed
● Open Libre Office installed: https://www.libreoffice.org/
● Download Template for DataTableExporter
Macros
The spreadsheet uses a VisualBasic Script to export the files, and thus, you will need to activate
macros for the spreadsheet. You can find the option for this in
You should switch this option to ”Medium” (recommended) or ”Low” (not recommended) in order to
run the macro.
You will receive a notification once you’re opening the DataTableExporter tool as they contain a
macro. Click “Activate Macro” to allow the macro to be active. You execute the macro by pressing the
cogwheel.
You have to activate macros for that file every time you open it. Just pay attention when you’re
opening other files, as macros can be potentially bad, so check twice for which file you allow them!
1
You will repair your Data Tables one time after you accidentally hit CTRL + Z (Undo) with a
grumble. You will repair it a second time, but with despair. After the third time you will love the
DataTableExporter especially when you got a huge data table, because the Undo-Bug can't do you
any harm.
58
Fix for slow UI in LibreOffice
There is an issue in LibreOffice which makes the UI slightly slow on certain machines. Use this fix if
you encounter this Slowdown. Else you do not need to do this.
Go to
and disable ”OpenGL” there. Restart LibreOffice and it will run fine.
The spreadsheet has multiple sheets. Each table has an Input sheet and an Export sheet. The Input
sheets are where you enter data and the Export sheets are used by the macro to export the data to
tables. Below, we’ll go through how to enter data as well as how to make sure that all the entries are
exported correctly. The process is relatively easy:
Before doing anything with your item-table data in the DevKit, it always pays to make a
backup of it. Just in case.
The first thing you will see when you start up the spreadsheet is something like this:
59
We won’t go through the Conan Exiles data-structure in detail (as the structures of data tables are
covered in the chapters prior) – suffice to say that each row represents an item in the game, and all
items have a number of stats assigned to them. These stats are represented in the columns in the
spreadsheet and you can edit these in order to create new items. If you are not sure about what
certain stats do, there are comments for most of the headers that will briefly explain what they are.
The original template was provided by Rob the Swede (so is most of this DataTableExporter section),
and it’s enhanced and adapted by Senja. These enhancements are explained later on in chapter
“Template Enhancement”.
Note: If you are used to modding items in the Unreal DevKit data tables, do note that the order of this
datatable has been changed in order to make things a bit smoother and you might feel slightly
unfamiliar with it at first but it was done in order to collect all related stats under the same heading
and make things easily read. It does not affect the import in any way.
The provided examples (purple font) in the table represent a selection of items, mostly placeables
though. These are meant to be guides to how to input your own items.
It might be a good idea to replace these with your items, or insert new rows and copy the data from
these into the new rows. Since it’s unlikely you need these items, you should get rid of them once you
feel that you know what you’re doing. Furthermore the ItemIDs of the examples are not accepted
during the import process.
60
Quick reminder about ID Ranges
The number on the left is the Row ID (=ItemID, RecipeID or FeatID). These need to be unique for
each item. However - you can use the same ID in many different tables; a prime example of this is
when making a recipe for an item. It's quite handy to use the same RecipeID as the Item.
Only different ID is the SortID, but this will be covered in the chapter “Template Enhancement”.
Header Comments
Many of the table headers have comments in them in order to help with the creation of your items. If
you don't find the help you need here, refer to the original data table in Unreal to see if you can find
what you need.
Most cells for any given item do not have to be filled in. If you are creating a new type of material (let's
say "Platinum" for example), you don't need to fill in all the data ranges for weapons, armors, etc. The
export-table will automatically populate the missing fields with default entries.
That’s the export button. We’ll get to that one in a short while. Hold your horses.
61
Step 2. Updating the Export Sheets
Alternatively:
62
Do not edit the cells in the export sheet as they contain formatting crucial to the import of the
table.
Cogwheel time! In the first Input Sheet ("InputItemTable") you can find a cogwheel at the very top left
corner of the spreadsheet. Clicking this will export ALL the tables.
Asset → Reimport
That's too bad and shouldn't happen. The two most common errors are these:
63
This will happen when the data-export tables are missing columns that Unreal DevKit expects.
An example would be that the DevKit has updated and the Unreal ItemTable has an additional
column named (for example) "AdditionalProperties" but the ExportDataTable does not.
Don't panic, this only means that the new column will use default data and will not break your
table. It MAY of course break functionality in the game if the new column is crucial but it is
unlikely. Most certainly a modder using this template will provide an update for it.
This is nastier and means that something is very wrong with the data-table export. There is not
much to do about this but to swear loudly and figure out why this is. Always make sure that you
re-import the data from the correct type of table. Assuming you have done so, this requires
more investigation than it could possibly be written down here.
Template Enhancement
Master Table
The idea of the enhanced template (compared to the original provided template) is to avoid multiple
identical entries. E.g. when editing the InputItemTable and InputRecipeTable you will see that there
will be identical columns for Name, Short Description and Icon,...
If you have to make changes, you don't want to make them in the same way over and over again, but
change something once and have it done once and for all.
Thus all the information which do appear more than once or are central made it into the “Master
Table”. This is the very core of the enhanced template. Let’s take a quick ride through the columns:
64
https://1drv.ms/x/s!AqvlsDFICO9_gzdkVr59Bt3VDvas
C Automatically created You will find the Item- or RecipeName in col. R. The Suffix
name with suffix entered in S:2 will be attached in col. C.
DO NOT make your changes in col. C, but in col. R.
D Short Description Is what the name says...a short description about your
item / recipe.
E Long Description Is what the name says...a long description about your
item / recipe.
If you want to achieve a linebreak in your long description
to appear in the game, enter “n\” (without “ “). Every other
attempt will be ignored.
H,J,L,N Ingredients 1-4 ItemID of crafting ingredients 1-4. You can add up to 4
ingredients.
This information will be also used for determination of the
repair costs.
Important: If there shall be no ingredient, set it’s ID to 0.
65
● In dialogue Validity (de: “Konsolidieren”) select
from drop-down list Function “Cell range”, and
bottom set “Source” to e.g.
$InputFeatTable.$B$3:$B$39 (this will be B:3 to
B:39 from InputFeatTable).
● Change this to your liking and needs
● Push OK
Q Additional internal notes This value is optional. It can contain any information
suiting your individual needs. Leave empty if not needed.
It has no impact on any Conan Exiles relevant values.
R ItemName Enter your Item- or Recipe name here. E.g. “Red Apple”
S:3 Suffix Optional value. Enter your mod individual suffix here. It
helps to fetch your mod content during quicksearch in the
admin menu.
Delete content and leave it empty to not use any suffix.
Enhancement of InputItemTable
Columns A - E, BR, BS, BU, BV, BX, BY (all marked green) and CW (orange) will be automatically
filled if you’re updating the InputItemTable. Please use the same method as in “Step 2. Updating the
Export Sheets” described above. To fetch the correct values enter the corresponding SortID in col.
CV.
Watch a short video how to do this: https://i.gyazo.com/86564cffe106159b8c6686ab9402a364.mp4
(maximise video to see the spreadsheet tabs)
Pay attention that values, which do not rely on any references are copied from the origin row (in the
video it was row 79 in the InputItemTable). Thus you need to CHANGE the values especially in
column G, H or I of the InputItemTable.
Note: When adding a path in col. G, H or I (InputItemTable) to a certain blueprint, make sure to add
manually a “_C” at the end, e.g.
/Game/Mods/SvS2/SvS2_Blueprint/Tavern/SvS2_BP_Apple_Full_Red.SvS2_BP_Apple_Full_Red
will become
/Game/Mods/SvS2/SvS2_Blueprint/Tavern/SvS2_BP_Apple_Full_Red.SvS2_BP_Apple_Full_Red_
C
Do NOT enter “_C” if you’re linking to /Script/ConanSandbox.BuildingItem (in case of your item
being a placeable).
66
You can adapt the other values of your item regarding to your needs. Also you can sort the table in a
way you like. The order items appear in the admin menu is the same as the sequence of rows in your
InputItemTable. E.g. if your table got Items sorted as follows “XX06, XX03, XX12 and XX01” the items
in the admin menu ingame will have the same sorting as “XX06, XX03, XX12 and XX01”.
You do NOT need to sort the InputRecipesTable the same way you sort your InputItemTable.
Enhancement of InputRecipesTable
Columns A - C, J, P - X (all marked green) and AQ (orange) will be automatically filled if you’re
updating the InputRecipesTable. Please use the same method as in “Step 2. Updating the Export
Sheets” described above. To fetch the correct values enter the corresponding SortID in col. AP.
You can do this in the same manner as is described in “Enhancement of InputItemTable”.
Enhancement of InputFeatTable
Adapt the InputFeatTable to your liking. Column B is used as a source for drop down lists in the
Master Table, InputItemTable and InputRecipesTable.
Columns R - U are NOT part of the Data Table. They are used to e.g. show prerequisite feats (col. R)
and their ID (col. S); e.g. if you want to include prerequisites from another mod than the current one.
You can of course leave this blank if not needed.
You can also list the workstation names (col. T) and their IDs (col. U) as a reminder, IF all recipes
from a certain feat require the same workstation. You can of course leave this blank if not needed.
It helps especially in a bigger mod to fetch the current workstation IDs necessary for the
InputRecipesTable col. H.
Apart from things described above there is no hidden enhancement in this table.
67
A new window will open:
Go to the object catalogue and click on the Data Table Exporter *.ods file (here:
DevKit_v2_5_DataTableExporter.ods).
In “Standard” -> “Module1” you will find the macro code.
If you want to change the export directory edit line 4 and change the value of “exportationDirectory”
to another folder, e.g. “C:/ConanExiles/DataTableExporter” (without “ ”)
If you have added more sheets and wish them to be exported, add a new line between line 30 and
31 like
SheetName = “MySpreadsheetName” Or _
68
Make sure that the spreadsheet you want to export as *.CSV has the correct values. The headline
has to be exactly the same as in the data table you want to import the CSV file into.
Make sure to have the proper formatting of the column entries per row as well.
Hint: To get an idea how the correct formatting looks like you can make the reverse-test: Insert an
test entry in your current data table of the DevKit, right click on it and export it as *.csv file. The *.csv
file can be opened as a new LibreOfficeCalc file. The programme transforms your *.csv file into a
table with given values of your example, so that you can look which parts need to be “prefilled” with
certain formatting content and which parts can be inserted freely.
You can take examples from the other input and to be exported data tables within the Exporter to
build the data table of your needs, either to build new existing data tables or for export of your own
data tables with individual structs.
XIII. Troubleshooting
If your mod does not do what it’s intended to do, it’s important to know what your tools are for
troubleshooting the problem. One of the primary methods you will use for narrowing down the root
cause of an issue is placing Breakpoints in your scripts (see Using Breakpoints, below).
Let’s briefly discuss the feedback you’ll get from the Dev Kit when your mod has problems:
Compile Errors
Some blueprint errors are critical enough that they will prevent the Unreal Engine from compiling and
running the game. There is no one approach for resolving these errors; you will need to open the
69
problem blueprints in the editor, find the issues in the graphs for that blueprint, and resolve them
before you will be able to safely test your mod.
A Runtime Error is any error caused by a problem in your script that was not severe enough to cause
a crash. If your mod generates any errors or warnings while running, upon ending your play session,
you will receive a pop-up message in the lower right corner of the viewport:
Click on Show Message Log to navigate instantly to the Message Log, which will show you the
errors generated during runtime:
If the pop-up message fades before you’re able to click on it, you can reach the Message Log from
the menu: Window > Developer Tools > Message Log. Make sure to click on the Play In Editor tab
on the left side of the window.
Once the Message Log is open, clicking the links provided in the error lines will open the related
blueprint in the editor and navigate you automatically to the node responsible for the error.
■ “Accessed None...” A reference to an object returns None and is invalid. This happens often
for objects which exist only on the server or client, but not both. Ex. trying to reference the GUI
70
Module Controller while executing on a dedicated server. This error can also occur when
attempting to read the value of an un-replicated variable.
Cook Problems
When “cooking” your mod into a .pak file, you will frequently encounter errors and warnings. It is
important to know what this feedback means and how to address it.
Cook Warnings
In general, warnings reported during the cook process indicate that something is out of the ordinary,
but not serious enough to cause the cook to fail. If the dev kit finds some number of warnings but no
errors, your cook will complete successfully. However, it is important to periodically review these
warnings, as they can point to larger problems in your mod.
■ “Warning: - Missing cooked file: …” Check your mod source folder for any stray 1kb files left
over from instances where you renamed or moved an asset. These redirectors are not used,
but can cause this warning to occur.
Cook failures are often related to the mod’s source files, such as the Dev Kit being unable to locate
the source file (on your local drive) corresponding to one of the mod’s assets. There are many other
rarer causes, however, and these will need to be resolved on a case-by-case basis.
71
How to approach reading the Output Log after a failed cook:
Note: The summary will only show the first 50 errors and/or warning messages. You can find the
complete list by scrolling up.
Using Breakpoints
72
You can read more about Breakpoints and other troubleshooting methods here:
https://docs.unrealengine.com/en-US/ProgrammingAndScripting/Blueprints/UserGuide/Debugging/index.html
When troubleshooting a problem, you may also find it useful to check the game’s regular log file for
errors and warnings which may not have been reported in the Dev Kit itself.
Your Dev Kit maintains a log file during your Play in Editor sessions in exactly the same way as the
base game. You can find your Dev Kit’s log file in Windows Explorer at the following location:
X:\Users\YourUserName\AppData\Local\ConanSandbox\Saved\Logs\ConanSandbox.log
NOTE: AppData is a hidden folder by default, and you may need to make hidden files and folders
visible in Windows before you are able to see it.
73