<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.larian.game/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LarSeb</id>
	<title>Divinity Engine Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.larian.game/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LarSeb"/>
	<link rel="alternate" type="text/html" href="https://docs.larian.game/Special:Contributions/LarSeb"/>
	<updated>2026-05-13T03:42:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://docs.larian.game/index.php?title=Osiris/Shared/ProcGetClosestAvailableCharacterTo&amp;diff=5438</id>
		<title>Osiris/Shared/ProcGetClosestAvailableCharacterTo</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Osiris/Shared/ProcGetClosestAvailableCharacterTo&amp;diff=5438"/>
		<updated>2018-01-29T17:27:32Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: Reverted edits by Greever (talk) to last revision by Tinkerer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Full Definition(s) =====&lt;br /&gt;
* PROC '''ProcGetClosestAvailableCharacterTo'''(''(CHARACTERGUID)'''''_Obj''', ''(INTEGER)'''''_SightCheck''')&lt;br /&gt;
* PROC '''ProcGetClosestAvailableCharacterTo'''(''(CHARACTERGUID)'''''_Obj''', ''(INTEGER)'''''_SightCheck''', ''(INTEGER)'''''_PartyCheck''', ''(CHARACTERGUID)'''''_Player''')&lt;br /&gt;
* PROC '''ProcGetClosestAvailableCharacterTo'''(''(CHARACTERGUID)'''''_Obj''', ''(INTEGER)'''''_SightCheck''', ''(INTEGER)'''''_PartyCheck''', ''(CHARACTERGUID)'''''_Player''', ''(CHARACTERGUID)'''''_ExceptPlayer''')&lt;br /&gt;
&lt;br /&gt;
===== Description =====&lt;br /&gt;
The first invocation is equivalent to calling the second one with '''_PartyCheck == 0''' and '''_Player == NULL'''.&lt;br /&gt;
&lt;br /&gt;
The second invocation is equivalent to calling the third one with '''_ExceptPlayer === NULL''' .&lt;br /&gt;
&lt;br /&gt;
Gets the closest '''player''' character to '''_Obj''' that is available to start a dialog with '''_Obj'''. Set '''_SightCheck''' to 1 if that character must be able to see '''_Obj'''. If '''_PartyCheck''' is 1, you must also and pass a valid parameter for '''_Player''', and the found player character (if any) will be guaranteed to be in the same party as '''_Player'''. If '''_ExceptPlayer''' is not NULL, then this routine will consider '''_ExceptPlayer''' to be unavailable even if they pass the other checks.&lt;br /&gt;
&lt;br /&gt;
===== Return Values =====&lt;br /&gt;
* '''DB_ClosestAvailablePlayer'''(''(CHARACTERGUID)'''''_Char''''',(CHARACTERGUID)'''''_Obj'''): closest player that can start a dialog with '''_Obj''' (conforming to all requested conditions), if any.&lt;br /&gt;
* '''DB_ClosestAvailablePlayer_NoAvailablePlayer'''(''(CHARACTERGUID)'''''_Obj'''): Set if no player character is available that conforms to the requested conditions.&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
* /&lt;br /&gt;
&lt;br /&gt;
===== See Also =====&lt;br /&gt;
* [[Osiris/API/GetClosestAlivePlayer|GetClosestAlivePlayer]]&lt;br /&gt;
 &lt;br /&gt;
[[Category:Osiris Shared Mod Helpers|GetClosestAvailableCharacterTo]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Maya_Exporter&amp;diff=4189</id>
		<title>Setup: Maya Exporter</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Maya_Exporter&amp;diff=4189"/>
		<updated>2017-11-10T14:45:54Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The files should be present in the editor data ''~DivinityEngineDataPath~\Data\Editor\Tools\Maya\''&amp;lt;br /&amp;gt;&lt;br /&gt;
These scripts were written for Maya 2015 on Windows.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
All the files you need you'll find in ''~DivinityEngineDataPath~\Data\Editor\Tools\Maya\''&lt;br /&gt;
&lt;br /&gt;
To have the granny plugin working in Maya 2015 copy ''larian_maya2015_x64.mll '' to your maya plugin folder ''~Maya2015InstallFolder~\Maya2015\bin\plug-ins''&amp;lt;br /&amp;gt;&lt;br /&gt;
To have the scripts working in Maya 2015 copy the ''userSetup.py'' and ''LarianStudiosModTools'' folder into ''~YourDocuments~''\maya\scripts &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
When starting up Maya the userSetup.py should automaticly create a Larian_Mod_Tools shelf for you with the relevant scripts saved into buttons.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Once you have launched Maya with this userSetup for the first time use the modify path script (ModP Button on the shelf) to set up your divinity engine data path for the exporter. This info will be saved in you maya scripts folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===For advanced users===&lt;br /&gt;
If you already have a python userSetup file taking care of several preferences you can add this method and add a call to it during your start up sequence:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def scriptRun():&lt;br /&gt;
    mainPath = os.environ['MAYA_APP_DIR']+ &amp;quot;/scripts/LarianStudiosModTools/&amp;quot; #Best guess for maya path install &lt;br /&gt;
    #Load toolbar creation script&lt;br /&gt;
    setupScript = imp.load_source('secondary', mainPath+&amp;quot;LarianToolbarSetup.py&amp;quot;)&lt;br /&gt;
    setupScript.run() &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then you only need to copy the ''LarianStudiosModTools'' folder&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Maya_Exporter&amp;diff=4188</id>
		<title>Setup: Maya Exporter</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Maya_Exporter&amp;diff=4188"/>
		<updated>2017-11-10T14:45:38Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The files should be present in the editor data (insert path approximate here)&amp;lt;br /&amp;gt;&lt;br /&gt;
These scripts were written for Maya 2015 on Windows.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
All the files you need you'll find in ''~DivinityEngineDataPath~\Data\Editor\Tools\Maya\''&lt;br /&gt;
&lt;br /&gt;
To have the granny plugin working in Maya 2015 copy ''larian_maya2015_x64.mll '' to your maya plugin folder ''~Maya2015InstallFolder~\Maya2015\bin\plug-ins''&amp;lt;br /&amp;gt;&lt;br /&gt;
To have the scripts working in Maya 2015 copy the ''userSetup.py'' and ''LarianStudiosModTools'' folder into ''~YourDocuments~''\maya\scripts &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
When starting up Maya the userSetup.py should automaticly create a Larian_Mod_Tools shelf for you with the relevant scripts saved into buttons.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Once you have launched Maya with this userSetup for the first time use the modify path script (ModP Button on the shelf) to set up your divinity engine data path for the exporter. This info will be saved in you maya scripts folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===For advanced users===&lt;br /&gt;
If you already have a python userSetup file taking care of several preferences you can add this method and add a call to it during your start up sequence:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def scriptRun():&lt;br /&gt;
    mainPath = os.environ['MAYA_APP_DIR']+ &amp;quot;/scripts/LarianStudiosModTools/&amp;quot; #Best guess for maya path install &lt;br /&gt;
    #Load toolbar creation script&lt;br /&gt;
    setupScript = imp.load_source('secondary', mainPath+&amp;quot;LarianToolbarSetup.py&amp;quot;)&lt;br /&gt;
    setupScript.run() &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then you only need to copy the ''LarianStudiosModTools'' folder&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=4187</id>
		<title>Setting up the editor</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=4187"/>
		<updated>2017-11-10T14:45:18Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Editor Steam | Editor Setup (Steam)]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Editor GOG | Editor Setup (GOG)]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Maya Exporter | Maya Exporter]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Game_Master_Mode&amp;diff=2885</id>
		<title>Game Master Mode</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Game_Master_Mode&amp;diff=2885"/>
		<updated>2017-09-18T14:49:54Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GM_Banner.jpg|center]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== How to ==&lt;br /&gt;
* [[Creating Campaign| '''Create''' a campaign from scratch or '''play''' a campaign]]&lt;br /&gt;
* [[Publish Campaign| '''Publish''' a campaign]]&lt;br /&gt;
&lt;br /&gt;
== Game Master Panels ==&lt;br /&gt;
* [[Game Menu| '''Game Menu''', where the game options are like saving and going back to the main menu]]&lt;br /&gt;
* [[Overview| '''Overview Map''', where the Game Master create the world map and see everything]]&lt;br /&gt;
* [[Scenes| '''Scenes''', where the Game Master create all the locations the players will travel]]&lt;br /&gt;
* [[Stickies| '''Stickies''', the notes for the Game Master]]&lt;br /&gt;
* [[Vignettes| '''Vignettes''', the storytelling part]]&lt;br /&gt;
* [[Monster Items| '''(Coming Soon) Monsters &amp;amp; Items''', all the usable entities for the Game Master]]&lt;br /&gt;
* [[Encounter| '''(Coming Soon) Encounter Manager''', where the Game Master setup the encounters]]&lt;br /&gt;
* [[Item Generator| '''(Coming Soon) Item Generator''', where the Game Master create custom equipment]]&lt;br /&gt;
* [[Mood| '''(Coming Soon) Mood Panel''', where the Game Master set the ambiance of a scene]]&lt;br /&gt;
* [[Surface| '''(Coming Soon) Surface Panel''', used by the Game Master to paint surfaces in a scene]]&lt;br /&gt;
* [[Start Point| '''(Coming Soon) Start Point''', used by the Game Master to place a spawning location in a scene for the players]]&lt;br /&gt;
* [[GM Inventory| '''(Coming Soon) Game Master Inventory''', where the Game Master can put entities he want to use quickly]]&lt;br /&gt;
* [[GM Skils| '''(Coming Soon) Game Master Skills''', all the skills in the game to be given to something by the Game Master]]&lt;br /&gt;
* [[Roll| '''(Coming Soon) Dice Roll''', where the Game Master will be able to ask dice rolls from the player or him/herself]]&lt;br /&gt;
* [[Possess| '''(Coming Soon) Possess Panel''', where the Game Master takes control or manage an entity]]&lt;br /&gt;
* [[Manage| '''(Coming Soon) Manage Panel''', where the Game Master can change everything on an entity]]&lt;br /&gt;
* [[Manage Status| '''(Coming Soon) Status Panel''', where the Game Master can add or remove status on an entity]]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Videos ==&lt;br /&gt;
&amp;lt;youtube&amp;gt;ZSh7hOZl9hg&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2839</id>
		<title>Setup: Editor Steam</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2839"/>
		<updated>2017-09-18T09:23:59Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==1. Enable DLC==&lt;br /&gt;
The editor needs some extra data. For this you need to enable a free DLC for DOS2 on steam called 'Divinity Engine 2 Data'.&amp;lt;br&amp;gt;&lt;br /&gt;
Go to your steam library, right click Divinity: Original Sin 2 and select properties.&lt;br /&gt;
&lt;br /&gt;
[[File:Dlcdivinityenginedata.png]]&lt;br /&gt;
&lt;br /&gt;
==2. Install toolset==&lt;br /&gt;
Open your library and go to the tools section. There you will find 'The Divinity Engine 2'.&lt;br /&gt;
&lt;br /&gt;
[[File:Toolsdivinityengine2.png]]&lt;br /&gt;
&lt;br /&gt;
==3. Initial setup==&lt;br /&gt;
On starting up the divinity engine 2, it will ask for a game data path. Set this to your Divinity: Original Sin 2 'Data' folder.&amp;lt;br&amp;gt;&lt;br /&gt;
It looks approximately like this for steam: 'C:\Program Files (x86)\Steam\steamapps\common\Divinity Original Sin 2\Data'.&lt;br /&gt;
&lt;br /&gt;
[[File:Initialsetup.png]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=2838</id>
		<title>Setting up the editor</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=2838"/>
		<updated>2017-09-18T08:26:45Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Editor Steam | Editor Setup (Steam)]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Maya Exporter | Maya Exporter (Coming soon)]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Maya_Exporter&amp;diff=2837</id>
		<title>Setup: Maya Exporter</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Maya_Exporter&amp;diff=2837"/>
		<updated>2017-09-18T08:26:24Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: LarSeb moved page Setup: Max Exporter to Setup: Maya Exporter without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Coming soon==&lt;br /&gt;
&lt;br /&gt;
The files should be present in the editor data (insert path approximate here)&amp;lt;br /&amp;gt;&lt;br /&gt;
These scripts were written for Maya 2015 on Windows.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To have the scripts working in Maya 2015 copy the ''userSetup.py'' and ''LarianStudiosModTools'' folder into ''~YourDocuments~''\maya\scripts &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
When starting up Maya the userSetup.py should automaticly create a Larian_Mod_Tools shelf for you with the relevant scripts saved into buttons.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Once you have launched Maya with this userSetup for the first time use the modify path script (ModP Button on ther shelf) to set up your divinity engine data path for the exporter. This info will be saved in you maya scripts folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===For advanced users===&lt;br /&gt;
If you already have a python userSetup file taking care of several preferences you can add this method and add a call to it during your start up sequence:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def scriptRun():&lt;br /&gt;
    mainPath = os.environ['MAYA_APP_DIR']+ &amp;quot;/scripts/LarianStudiosModTools/&amp;quot; #Best guess for maya path install &lt;br /&gt;
    #Load toolbar creation script&lt;br /&gt;
    setupScript = imp.load_source('secondary', mainPath+&amp;quot;LarianToolbarSetup.py&amp;quot;)&lt;br /&gt;
    setupScript.run() &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then you only need to copy the ''LarianStudiosModTools'' folder&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Command_list&amp;diff=2797</id>
		<title>Command list</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Command_list&amp;diff=2797"/>
		<updated>2017-09-16T08:14:31Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Info ==&lt;br /&gt;
&lt;br /&gt;
[[ReCon]] can be attached to the game or editor to send console commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Some commands will only be applied on the object that is currently selected (i.e. with CTRL SHIFT Click).'''&lt;br /&gt;
&amp;lt;p&amp;gt;Ctrl + shift + click an object to select it or command&amp;lt;br&amp;gt;&lt;br /&gt;
select %name% - needed for some commands&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List ==&lt;br /&gt;
&lt;br /&gt;
==== Combat ====&lt;br /&gt;
&lt;br /&gt;
* killcombat - kills all enemies in current combat&lt;br /&gt;
* peace on/off - turn peace mod on off&lt;br /&gt;
* god - turn god mode on/of&lt;br /&gt;
* resurrect - resurrects currently selected character&lt;br /&gt;
* nocooldowns - removes cooldowns&lt;br /&gt;
* infiniteAp - your actions will cost 0 AP&lt;br /&gt;
* infiniteMemory - You will have over 9000 memory&lt;br /&gt;
* think on/off - enables/disables AI char/item scripts except player&lt;br /&gt;
* setHPPercentage &amp;lt;percentage&amp;gt; - e.g setHPPercentage 20, sets the HP of a (selected) character to 20%&lt;br /&gt;
* charm %character or item name% -&amp;gt; makes the current select character charmed by character/item in parameter&lt;br /&gt;
* setCanFight %true/false%- enables / disables the CanFight option for the selected entity (it will still join combat, just not get a turn)&lt;br /&gt;
* setCanJoinCombat %true/false% - enables / disables the CanJoinCombat option for the selected entity&lt;br /&gt;
* setAlignment %alignmentID% - Changes the alignment of the selected entity&lt;br /&gt;
* nearlyKill - Sets the HP of the current selected character to 1.&lt;br /&gt;
* killArmor - Sets the magic and physical armor of the selected character to 0.&lt;br /&gt;
&lt;br /&gt;
==== Party setup ====&lt;br /&gt;
&lt;br /&gt;
* spawnitem GLO_QA_Debug_Item: spawns a Debug book to start in Act 2 with a Party setup - easiest way to start Act 2&lt;br /&gt;
* levelup %amount% - levels up entire party by %amount% levels&lt;br /&gt;
* unlockall - unlocks all skills&lt;br /&gt;
* maxout - gives level 27 and maxes out stats&lt;br /&gt;
* gold %amount% - gives both players half of %amount% in gold&lt;br /&gt;
* givetreasure %table_name%&lt;br /&gt;
* addExp %amount% - gives the selected character %amount% xp&lt;br /&gt;
* magemana - Adds the maximum amount of source points for this character&lt;br /&gt;
* givetreasure CheatBooks and then the respective element will yield all the skillbooks of that element: eg. CheatBooksAir, CheatBooksEarth, CheatBooksNecromancy...&lt;br /&gt;
&lt;br /&gt;
==== Generics ====&lt;br /&gt;
&lt;br /&gt;
* raiseTension: increase tension ingame&lt;br /&gt;
* ResetCrimes: removes all performed Crimes and clears your criminal records, this will lower the tension again&lt;br /&gt;
&lt;br /&gt;
==== General ====&lt;br /&gt;
&lt;br /&gt;
* setWalkSpeedMultiplier %multiplier% - Multiplies your walk and run speed by value (4 seems to be a nice value)&lt;br /&gt;
* loadlevel &amp;lt;levelname&amp;gt; - e.g. loadlevel Cyseal: loads level&lt;br /&gt;
* oe &amp;lt;command&amp;gt; - send an Osirs TextEventSet event with &amp;lt;command&amp;gt; as the parameter&lt;br /&gt;
* teleport &amp;lt;target&amp;gt; - e.g teleport Zandalor: teleport to certain character, object, trigger on current level&lt;br /&gt;
* teleportToMe %name% - teleports a character to currently selected character&lt;br /&gt;
* goto x y - e.g. goto 12 174: teleport to x y coordinates on current level&lt;br /&gt;
* rps win - win a CIR confrontation&lt;br /&gt;
* rps lose - lose a CIR confrontation&lt;br /&gt;
* shroud %on/off% - turn shroud (a.k.a. fog of war) on/off&lt;br /&gt;
* reloadScripts - reloads scripts&lt;br /&gt;
* reloadStory - reloads osiris&lt;br /&gt;
* statusapply &amp;lt;status&amp;gt; &amp;lt;duration&amp;gt; - e.g. statusapply FROZEN 5 - apply status to selected for 5 turns. Duration -1 sets a permanent status.&lt;br /&gt;
* statusremove &amp;lt;status&amp;gt;&lt;br /&gt;
* autoidentify %on/off% - let's you see all magic items&lt;br /&gt;
* think %on/off% - Disables the AI for all NPCs&lt;br /&gt;
* give &amp;lt;objectname&amp;gt; - Moves an item from somewhere in the game (local item, quest item, global item) to your inventory.&lt;br /&gt;
* create &amp;lt;statname&amp;gt; - Creates an instance of a stats object in your inventory (notice there is a huge difference between give and create!!!1)&lt;br /&gt;
* setOffstage &amp;lt;characterName|itemName|characterUUID|itemUUID&amp;gt; - removes (raises OFFSTAGE flag) for specified character or item&lt;br /&gt;
* charAmbientLight &amp;lt;on|off&amp;gt; - enables or disables ambient light for currently selected player's character&lt;br /&gt;
&lt;br /&gt;
==== Dungeon master ====&lt;br /&gt;
&lt;br /&gt;
* addDungeonMaster&lt;br /&gt;
* removeDungeonMaster&lt;br /&gt;
&lt;br /&gt;
==== System ====&lt;br /&gt;
&lt;br /&gt;
* usecontroller&lt;br /&gt;
* usekeyboard&lt;br /&gt;
&lt;br /&gt;
==== Screen capture ====&lt;br /&gt;
&lt;br /&gt;
* SetCaptureScale %amount% - Set scale for screenshot and video capture resolution (game resolution * amount)&lt;br /&gt;
* SetVideoCaptureFPS %amount% - Set target FPS to capture screenshots for the video capture mode (amount x screenshots per ingame sec.)&lt;br /&gt;
&lt;br /&gt;
==== Debugging ====&lt;br /&gt;
&lt;br /&gt;
* fps %amount% - set the client's fps to a specified amount&lt;br /&gt;
* show projectiles &amp;lt;optional&amp;gt; - show debugging info for projectiles - optional: client (client only); server (server only); %time% (display time)&lt;br /&gt;
* hide projectiles - hide debugging info for projectiles&lt;br /&gt;
* show crimes &amp;lt;optional&amp;gt; - show debugging information  for crimes  - optional: %index% (index of the crime, provides detailed information)&lt;br /&gt;
* hide crimes - hide debugging information  for crimes&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Game_Master_Mode&amp;diff=2794</id>
		<title>Game Master Mode</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Game_Master_Mode&amp;diff=2794"/>
		<updated>2017-09-15T21:31:22Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GM_Banner.jpg|center]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== How to ==&lt;br /&gt;
* [[Creating Campaign| '''Create''' a campaign from scratch or '''play''' a campaign]]&lt;br /&gt;
* [[Publish Campaign| '''Publish''' a campaign]]&lt;br /&gt;
&lt;br /&gt;
== Game Master Panels ==&lt;br /&gt;
* [[Game Menu| '''Game Menu''', where the game options are like saving and going back to the main menu]]&lt;br /&gt;
* [[Overview| '''Overview Map''', where the Game Master create the world map and see everything]]&lt;br /&gt;
* [[Scenes| '''Scenes''', where the Game Master create all the locations the players will travel]]&lt;br /&gt;
* [[Stickies| '''Stickies''', the notes for the Game Master]]&lt;br /&gt;
* [[Vignettes| '''Vignettes''', the storytelling part]]&lt;br /&gt;
* [[Monster Items| '''(Coming Soon) Monsters &amp;amp; Items''', all the usable entities for the Game Master]]&lt;br /&gt;
* [[Encounter| '''(Coming Soon) Encounter Manager''', where the Game Master setup the encounters]]&lt;br /&gt;
* [[Item Generator| '''(Coming Soon) Item Generator''', where the Game Master create custom equipment]]&lt;br /&gt;
* [[Mood| '''(Coming Soon) Mood Panel''', where the Game Master set the ambiance of a scene]]&lt;br /&gt;
* [[Surface| '''(Coming Soon) Surface Panel''', used by the Game Master to paint surfaces in a scene]]&lt;br /&gt;
* [[Start Point| '''(Coming Soon) Start Point''', used by the Game Master to place a spawning location in a scene for the players]]&lt;br /&gt;
* [[GM Inventory| '''(Coming Soon) Game Master Inventory''', where the Game Master can put entities he want to use quickly]]&lt;br /&gt;
* [[GM Skils| '''(Coming Soon) Game Master Skills''', all the skills in the game to be given to something by the Game Master]]&lt;br /&gt;
* [[Roll| '''(Coming Soon) Dice Roll''', where the Game Master will be able to ask dice rolls from the player or him/herself]]&lt;br /&gt;
* [[Possess| '''(Coming Soon) Possess Panel''', where the Game Master takes control or manage an entity]]&lt;br /&gt;
* [[Manage| '''(Coming Soon) Manage Panel''', where the Game Master can change everything on an entity]]&lt;br /&gt;
* [[Manage Status| '''(Coming Soon) Status Panel''', where the Game Master can add or remove status on an entity]]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Videos ==&lt;br /&gt;
&amp;lt;youtube&amp;gt;rYg7qAjg3v0&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Game_Master_Mode&amp;diff=2775</id>
		<title>Game Master Mode</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Game_Master_Mode&amp;diff=2775"/>
		<updated>2017-09-15T17:45:16Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GM_Banner.jpg|center]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== How to ==&lt;br /&gt;
* [[Creating Campaign| '''Create''' a campaign from scratch or '''play''' a campaign]]&lt;br /&gt;
* [[Publish Campaign| '''Publish''' a campaign]]&lt;br /&gt;
&lt;br /&gt;
== Game Master Panels ==&lt;br /&gt;
* [[Game Menu| '''Game Menu''', where the game options are like saving and going back to the main menu]]&lt;br /&gt;
* [[Overview| '''Overview Map''', where the Game Master create the world map and see everything]]&lt;br /&gt;
* [[Scenes| '''Scenes''', where the Game Master create all the locations the players will travel]]&lt;br /&gt;
* [[Stickies| '''Stickies''', the notes for the Game Master]]&lt;br /&gt;
* [[Vignettes| '''Vignettes''', the storytelling part]]&lt;br /&gt;
* [[Monster Items| '''(Coming Soon) Monsters &amp;amp; Items''', all the usable entities for the Game Master]]&lt;br /&gt;
* [[Encounter| '''(Coming Soon) Encounter Manager''', where the Game Master setup the encounters]]&lt;br /&gt;
* [[Item Generator| '''(Coming Soon) Item Generator''', where the Game Master create custom equipment]]&lt;br /&gt;
* [[Mood| '''(Coming Soon) Mood Panel''', where the Game Master set the ambiance of a scene]]&lt;br /&gt;
* [[Surface| '''(Coming Soon) Surface Panel''', used by the Game Master to paint surfaces in a scene]]&lt;br /&gt;
* [[Start Point| '''(Coming Soon) Start Point''', used by the Game Master to place a spawning location in a scene for the players]]&lt;br /&gt;
* [[GM Inventory| '''(Coming Soon) Game Master Inventory''', where the Game Master can put entities he want to use quickly]]&lt;br /&gt;
* [[GM Skils| '''(Coming Soon) Game Master Skills''', all the skills in the game to be given to something by the Game Master]]&lt;br /&gt;
* [[Roll| '''(Coming Soon) Dice Roll''', where the Game Master will be able to ask dice rolls from the player or him/herself]]&lt;br /&gt;
* [[Possess| '''(Coming Soon) Possess Panel''', where the Game Master takes control or manage an entity]]&lt;br /&gt;
* [[Manage| '''(Coming Soon) Manage Panel''', where the Game Master can change everything on an entity]]&lt;br /&gt;
* [[Manage Status| '''(Coming Soon) Status Panel''', where the Game Master can add or remove status on an entity]]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Videos ==&lt;br /&gt;
&amp;lt;youtube&amp;gt;8xGnACMq5KU&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=2774</id>
		<title>Setting up the editor</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=2774"/>
		<updated>2017-09-15T16:55:35Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Editor Steam | Editor Setup (Steam)]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Max Exporter | 3Ds Max Exporter (Coming soon)]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=2773</id>
		<title>Setting up the editor</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=2773"/>
		<updated>2017-09-15T16:55:21Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Editor Steam | Editor Setup (Steam)]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Max Exporter | Max Exporter (Coming soon)]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Maya_Exporter&amp;diff=2772</id>
		<title>Setup: Maya Exporter</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Maya_Exporter&amp;diff=2772"/>
		<updated>2017-09-15T16:55:03Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Coming soon==&lt;br /&gt;
&lt;br /&gt;
The files should be present in the editor data (insert path approximate here)&amp;lt;br /&amp;gt;&lt;br /&gt;
These scripts were written for Maya 2015 on Windows.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To have the scripts working in Maya 2015 copy the ''userSetup.py'' and ''LarianStudiosModTools'' folder into ''~YourDocuments~''\maya\scripts &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
When starting up Maya the userSetup.py should automaticly create a Larian_Mod_Tools shelf for you with the relevant scripts saved into buttons.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Once you have launched Maya with this userSetup for the first time use the modify path script (ModP Button on ther shelf) to set up your divinity engine data path for the exporter. This info will be saved in you maya scripts folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===For advanced users===&lt;br /&gt;
If you already have a python userSetup file taking care of several preferences you can add this method and add a call to it during your start up sequence:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def scriptRun():&lt;br /&gt;
    mainPath = os.environ['MAYA_APP_DIR']+ &amp;quot;/scripts/LarianStudiosModTools/&amp;quot; #Best guess for maya path install &lt;br /&gt;
    #Load toolbar creation script&lt;br /&gt;
    setupScript = imp.load_source('secondary', mainPath+&amp;quot;LarianToolbarSetup.py&amp;quot;)&lt;br /&gt;
    setupScript.run() &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then you only need to copy the ''LarianStudiosModTools'' folder&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2771</id>
		<title>Setup: Editor Steam</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2771"/>
		<updated>2017-09-15T16:43:02Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==1. Enable DLC==&lt;br /&gt;
The editor needs some extra data. For this you need to enable a DLC for DOS2 on steam called 'Divinity Engine 2 Data'.&amp;lt;br&amp;gt;&lt;br /&gt;
Go to your steam library, right click Divinity: Original Sin 2 and select properties.&lt;br /&gt;
&lt;br /&gt;
[[File:Dlcdivinityenginedata.png]]&lt;br /&gt;
&lt;br /&gt;
==2. Install toolset==&lt;br /&gt;
Open your library and go to the tools section. There you will find 'The Divinity Engine 2'.&lt;br /&gt;
&lt;br /&gt;
[[File:Toolsdivinityengine2.png]]&lt;br /&gt;
&lt;br /&gt;
==3. Initial setup==&lt;br /&gt;
On starting up the divinity engine 2, it will ask for a game data path. Set this to your Divinity: Original Sin 2 'Data' folder.&amp;lt;br&amp;gt;&lt;br /&gt;
It looks approximately like this for steam: 'C:\Program Files (x86)\Steam\steamapps\common\Divinity Original Sin 2\Data'.&lt;br /&gt;
&lt;br /&gt;
[[File:Initialsetup.png]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2770</id>
		<title>Setup: Editor Steam</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2770"/>
		<updated>2017-09-15T16:34:21Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==1. Enable DLC==&lt;br /&gt;
The editor needs some extra data. For this you need to enable a DLC for DOS2 on steam called 'Divinity Engine 2 Data'.&lt;br /&gt;
&lt;br /&gt;
[[File:Dlcdivinityenginedata.png]]&lt;br /&gt;
&lt;br /&gt;
==2. Install toolset==&lt;br /&gt;
Open your library and go to the tools section. There you will find 'The Divinity Engine 2'.&lt;br /&gt;
&lt;br /&gt;
[[File:Toolsdivinityengine2.png]]&lt;br /&gt;
&lt;br /&gt;
==3. Initial setup==&lt;br /&gt;
On starting up the divinity engine 2, it will ask for a game data path. Set this to your Divinity: Original Sin 2 'Data' folder.&amp;lt;br&amp;gt;&lt;br /&gt;
It looks approximately like this for steam: 'C:\Program Files (x86)\Steam\steamapps\common\Divinity Original Sin 2\Data'.&lt;br /&gt;
&lt;br /&gt;
[[File:Initialsetup.png]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2769</id>
		<title>Setup: Editor Steam</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2769"/>
		<updated>2017-09-15T16:32:46Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==1. Enable DLC==&lt;br /&gt;
The editor needs some extra data. For this you need to enable a DLC for DOS2 on steam called 'Divinity Engine 2 Data'.&lt;br /&gt;
&lt;br /&gt;
[[File:Dlcdivinityenginedata.png]]&lt;br /&gt;
&lt;br /&gt;
==2. Install toolset==&lt;br /&gt;
Open your library and go to the tools section. There you will find 'The Divinity Engine 2'.&lt;br /&gt;
&lt;br /&gt;
[[File:Toolsdivinityengine2.png]]&lt;br /&gt;
&lt;br /&gt;
==3. initial setup==&lt;br /&gt;
On starting up the divinity engine 2, it will ask for a game data path. Set this to your Divinity: Original Sin 2 'Data' folder.&amp;lt;br&amp;gt;&lt;br /&gt;
It looks approximately like this for steam: 'C:\Program Files (x86)\Steam\steamapps\common\Divinity Original Sin 2\Data'.&lt;br /&gt;
&lt;br /&gt;
[[File:Initialsetup.png]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2768</id>
		<title>Setup: Editor Steam</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2768"/>
		<updated>2017-09-15T16:32:31Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===1. Enable DLC===&lt;br /&gt;
The editor needs some extra data. For this you need to enable a DLC for DOS2 on steam called 'Divinity Engine 2 Data'.&lt;br /&gt;
&lt;br /&gt;
[[File:Dlcdivinityenginedata.png]]&lt;br /&gt;
&lt;br /&gt;
===2. Install toolset===&lt;br /&gt;
Open your library and go to the tools section. There you will find 'The Divinity Engine 2'.&lt;br /&gt;
&lt;br /&gt;
[[File:Toolsdivinityengine2.png]]&lt;br /&gt;
&lt;br /&gt;
===3. initial setup===&lt;br /&gt;
On starting up the divinity engine 2, it will ask for a game data path. Set this to your Divinity: Original Sin 2 'Data' folder.&amp;lt;br&amp;gt;&lt;br /&gt;
It looks approximately like this for steam: 'C:\Program Files (x86)\Steam\steamapps\common\Divinity Original Sin 2\Data'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Initialsetup.png]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2767</id>
		<title>Setup: Editor Steam</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2767"/>
		<updated>2017-09-15T16:32:23Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===1. Enable DLC===&lt;br /&gt;
The editor needs some extra data. For this you need to enable a DLC for DOS2 on steam called 'Divinity Engine 2 Data'.&lt;br /&gt;
&lt;br /&gt;
[[File:Dlcdivinityenginedata.png]]&lt;br /&gt;
&lt;br /&gt;
===2. Install toolset===&lt;br /&gt;
Open your library and go to the tools section. There you will find 'The Divinity Engine 2'.&lt;br /&gt;
&lt;br /&gt;
[[File:Toolsdivinityengine2.png]]&lt;br /&gt;
&lt;br /&gt;
===3. initial setup==&lt;br /&gt;
On starting up the divinity engine 2, it will ask for a game data path. Set this to your Divinity: Original Sin 2 'Data' folder.&amp;lt;br&amp;gt;&lt;br /&gt;
It looks approximately like this for steam: 'C:\Program Files (x86)\Steam\steamapps\common\Divinity Original Sin 2\Data'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Initialsetup.png]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=File:Initialsetup.png&amp;diff=2761</id>
		<title>File:Initialsetup.png</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=File:Initialsetup.png&amp;diff=2761"/>
		<updated>2017-09-15T16:28:20Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2760</id>
		<title>Setup: Editor Steam</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Editor_Steam&amp;diff=2760"/>
		<updated>2017-09-15T16:26:23Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: Created page with &amp;quot;===1. Enable DLC=== The editor needs some extra data. For this you need to enable a DLC for DOS2 on steam called 'Divinity Engine 2 Data'.  File:Dlcdivinityenginedata.png...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===1. Enable DLC===&lt;br /&gt;
The editor needs some extra data. For this you need to enable a DLC for DOS2 on steam called 'Divinity Engine 2 Data'.&lt;br /&gt;
&lt;br /&gt;
[[File:Dlcdivinityenginedata.png]]&lt;br /&gt;
&lt;br /&gt;
===2. Install toolset===&lt;br /&gt;
Open your library and go to the tools section. There you will find 'The Divinity Engine 2'.&lt;br /&gt;
&lt;br /&gt;
[[File:Toolsdivinityengine2.png]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=File:Toolsdivinityengine2.png&amp;diff=2759</id>
		<title>File:Toolsdivinityengine2.png</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=File:Toolsdivinityengine2.png&amp;diff=2759"/>
		<updated>2017-09-15T16:23:30Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=File:Dlcdivinityenginedata.png&amp;diff=2758</id>
		<title>File:Dlcdivinityenginedata.png</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=File:Dlcdivinityenginedata.png&amp;diff=2758"/>
		<updated>2017-09-15T16:20:47Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setup:_Maya_Exporter&amp;diff=2757</id>
		<title>Setup: Maya Exporter</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setup:_Maya_Exporter&amp;diff=2757"/>
		<updated>2017-09-15T16:15:01Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: Created page with &amp;quot;==Setting up the Maya 2015 export tools==  The files should be present in the editor data (insert path approximate here)&amp;lt;br /&amp;gt; These scripts were written for Maya 2015 on Wind...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Setting up the Maya 2015 export tools==&lt;br /&gt;
&lt;br /&gt;
The files should be present in the editor data (insert path approximate here)&amp;lt;br /&amp;gt;&lt;br /&gt;
These scripts were written for Maya 2015 on Windows.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To have the scripts working in Maya 2015 copy the ''userSetup.py'' and ''LarianStudiosModTools'' folder into ''~YourDocuments~''\maya\scripts &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
When starting up Maya the userSetup.py should automaticly create a Larian_Mod_Tools shelf for you with the relevant scripts saved into buttons.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Once you have launched Maya with this userSetup for the first time use the modify path script (ModP Button on ther shelf) to set up your divinity engine data path for the exporter. This info will be saved in you maya scripts folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===For advanced users===&lt;br /&gt;
If you already have a python userSetup file taking care of several preferences you can add this method and add a call to it during your start up sequence:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def scriptRun():&lt;br /&gt;
    mainPath = os.environ['MAYA_APP_DIR']+ &amp;quot;/scripts/LarianStudiosModTools/&amp;quot; #Best guess for maya path install &lt;br /&gt;
    #Load toolbar creation script&lt;br /&gt;
    setupScript = imp.load_source('secondary', mainPath+&amp;quot;LarianToolbarSetup.py&amp;quot;)&lt;br /&gt;
    setupScript.run() &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then you only need to copy the ''LarianStudiosModTools'' folder&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=2756</id>
		<title>Setting up the editor</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=2756"/>
		<updated>2017-09-15T16:14:47Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Editor Steam | Editor Setup (Steam)]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Max Exporter | Max Exporter]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=2755</id>
		<title>Setting up the editor</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Setting_up_the_editor&amp;diff=2755"/>
		<updated>2017-09-15T16:12:53Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[Setup: Editor Steam | Editor Setup (Steam)]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:LarianLogo_Icon.png|32px]] &amp;lt;big&amp;gt;&amp;lt;b&amp;gt;[[My first: Character | Character]]&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Main_Page&amp;diff=2328</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Main_Page&amp;diff=2328"/>
		<updated>2017-09-13T20:57:46Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;gallery mode=packed heights=550px&amp;gt;&lt;br /&gt;
File:DivinityEngine-thumbnail.png|link=The Divinity Engine 2|The Divinity Engine 2&lt;br /&gt;
File:GameMaster-thumbnail.png|link=Game Master Mode|Game Master Mode&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=MediaWiki:Sidebar&amp;diff=1690</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=MediaWiki:Sidebar&amp;diff=1690"/>
		<updated>2017-09-07T14:07:53Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
&lt;br /&gt;
* Main Pages&lt;br /&gt;
** The Divinity Engine 2|The Divinity Engine 2&lt;br /&gt;
** Game Master Mode|Game Master Mode&lt;br /&gt;
&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=MediaWiki:Sidebar&amp;diff=1423</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=MediaWiki:Sidebar&amp;diff=1423"/>
		<updated>2017-08-29T18:03:09Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
&lt;br /&gt;
* Main Pages&lt;br /&gt;
** Technical documentation|Technical documentation&lt;br /&gt;
** Larian guides|Larian guides&lt;br /&gt;
** Game Master Mode|Game Master Mode&lt;br /&gt;
&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Community_guides&amp;diff=1395</id>
		<title>Community guides</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Community_guides&amp;diff=1395"/>
		<updated>2017-08-28T08:54:07Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Skill creation]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Game_Master_Mode&amp;diff=1200</id>
		<title>Game Master Mode</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Game_Master_Mode&amp;diff=1200"/>
		<updated>2017-08-25T13:30:05Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: Protected &amp;quot;Game Master Mode&amp;quot; ([Edit=⧼protect-level-larianeditonly⧽] (indefinite) [Move=⧼protect-level-larianeditonly⧽] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GM_Banner.jpg|center]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== How to ==&lt;br /&gt;
* [[Creating Campaign| Create a campaign from scratch]]&lt;br /&gt;
* [[Play Campaign| Play a campaign]]&lt;br /&gt;
* [[Publish Campaign| Publish a campaign]]&lt;br /&gt;
&lt;br /&gt;
== Game Master Panels ==&lt;br /&gt;
* [[Overview| '''Overview Map''', where the Game Master create the world map]]&lt;br /&gt;
* [[Scenes| '''Scenes''', where the Game Master create all the places the players will travel]]&lt;br /&gt;
* [[Stickies| '''Stickies''', the notes for the Game Master]]&lt;br /&gt;
* [[Vignettes| '''Vignettes''', the storytelling part]]&lt;br /&gt;
* [[Monster Items| '''Monsters &amp;amp; Items''', all the usable entities for the Game Master]]&lt;br /&gt;
* [[Encounter| '''Encounter Manager''', where the Game Master setup the encounters]]&lt;br /&gt;
* [[Item Generator| '''Item Generator''', where the Game Master create custom equipment]]&lt;br /&gt;
* [[Mood| '''Mood Panel''', where the Game Master set the ambiance of a scene]]&lt;br /&gt;
* [[Surface| '''Surface Panel''', used by the Game Master to paint surfaces in a scene]]&lt;br /&gt;
* [[Start Point| '''Start Point''', used by the Game Master to place a spawning location in a scene for the players]]&lt;br /&gt;
* [[GM Inventory| '''Game Master Inventory''', where the Game Master can put entities he want to use quickly]]&lt;br /&gt;
* [[GM Skils| '''Game Master Skills''', all the skills in the game to be given to something by the Game Master]]&lt;br /&gt;
* [[Roll| '''Dice Roll''', where the Game Master will be able to ask dice rolls from the player or him/herself]]&lt;br /&gt;
* [[Pocess| '''Pocess Panel''', where the Game Master take control or manage an entity]]&lt;br /&gt;
* [[Manage| '''Manage Panel''', where the Game Master can change everything on an entity]]&lt;br /&gt;
* [[Manage Status| '''Status Panel''', where the Game Master can add or remove status on an entity]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Community_guides&amp;diff=1199</id>
		<title>Community guides</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Community_guides&amp;diff=1199"/>
		<updated>2017-08-25T13:29:56Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: Created page with &amp;quot;PLACEHOLDER&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PLACEHOLDER&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Larian_guides&amp;diff=1198</id>
		<title>Larian guides</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Larian_guides&amp;diff=1198"/>
		<updated>2017-08-25T13:29:30Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: Protected &amp;quot;Larian guides&amp;quot; ([Edit=⧼protect-level-larianeditonly⧽] (indefinite) [Move=⧼protect-level-larianeditonly⧽] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;gallery mode=packed-overlay heights=250px style=&amp;quot;max-width:80%;margin:auto&amp;quot;&amp;gt;&lt;br /&gt;
File:StartGuide-thumbnail.png|link=Setting up the editor|Setting up the editor for the first time.&lt;br /&gt;
File:ProjectGuide-thumbnail.png|link=Working with projects|On creating/loading and publishing a project that suits my needs.&lt;br /&gt;
File:LevelGuide-thumbnail.png|link=Working with levels|On the different ways to create/load a level.&lt;br /&gt;
File:MyFirstCreation-thumbnail.png|link=My first...|How do I create my first... ?&lt;br /&gt;
File:Modding-thumbnail.png|link=Modding...|How do I modify an existing... ?&lt;br /&gt;
File:FAQ.png|link=Frequently Asked Questions|Frequently Asked Questions.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[David list WIP]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=The_Divinity_Engine_2&amp;diff=1197</id>
		<title>The Divinity Engine 2</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=The_Divinity_Engine_2&amp;diff=1197"/>
		<updated>2017-08-25T13:29:12Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: Protected &amp;quot;The Divinity Engine 2&amp;quot; ([Edit=⧼protect-level-larianeditonly⧽] (indefinite) [Move=⧼protect-level-larianeditonly⧽] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:dos2banner.jpg|center]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=packed heights=490px&amp;gt;&lt;br /&gt;
File:TechnicalDocs.png|link=Technical documentation|Technical Documentation&lt;br /&gt;
File:LarianGuides.png|link=Larian guides|Larian Guides&lt;br /&gt;
File:CommunityGuides.png|link=Community guides|Community Guides&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Credits for tarot card fan art go to the lovely [http://drathe.deviantart.com/ Drathe]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= Technical Documentation =&lt;br /&gt;
[[Technical documentation|Click here to go to the technical documentation.]]&lt;br /&gt;
&lt;br /&gt;
= Larian Guides =&lt;br /&gt;
[[Larian guides|Click here to go to the Larian guides.]]&lt;br /&gt;
&lt;br /&gt;
= Community Guides =&lt;br /&gt;
[[Community guides|Click here to go to the community guides.]]&lt;br /&gt;
&lt;br /&gt;
= !EDITING WIKI GUIDELINES: PLEASE READ! =&lt;br /&gt;
[[Editing guidelines]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Technical_documentation&amp;diff=1174</id>
		<title>Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Technical_documentation&amp;diff=1174"/>
		<updated>2017-08-24T19:22:33Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: Protected &amp;quot;Technical documentation&amp;quot; ([Edit=⧼protect-level-larianeditonly⧽] (indefinite) [Move=⧼protect-level-larianeditonly⧽] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Systems ==&lt;br /&gt;
* [[Templates explanation|Root and local templates, how do they work?]]&lt;br /&gt;
* [[AI grid|AI grid: surfaces, walkables, ...]]&lt;br /&gt;
* [[Scripting|Scripting]]&lt;br /&gt;
* [[Osiris|Osiris: story scripting]]&lt;br /&gt;
* [[Modding internals|Modding: internal system]]&lt;br /&gt;
* [[Light probes]]&lt;br /&gt;
* [[Entity types]]&lt;br /&gt;
* [[Decals]]&lt;br /&gt;
* [[Triggers]]&lt;br /&gt;
&lt;br /&gt;
== Panels ==&lt;br /&gt;
* [[Root template panel]]&lt;br /&gt;
* [[Content browser]]&lt;br /&gt;
* [[World outliner]]&lt;br /&gt;
* [[Sidebar]]&lt;br /&gt;
* [[AI grid panel]]&lt;br /&gt;
* [[Project settings window]]&lt;br /&gt;
* [[Publish project window]]&lt;br /&gt;
* [[Combat group panel]]&lt;br /&gt;
* [[Terrain panel]]&lt;br /&gt;
* [[Decal painter panel]]&lt;br /&gt;
* [[Instance painter panel]]&lt;br /&gt;
* [[Atmosphere panel]]&lt;br /&gt;
* [[Work atmosphere panel]]&lt;br /&gt;
&lt;br /&gt;
== Editors ==&lt;br /&gt;
* [[Material editor]]&lt;br /&gt;
* [[Stats editor]]&lt;br /&gt;
* [[Story editor]]&lt;br /&gt;
* [[Script editor]]&lt;br /&gt;
* [[Journal editor]]&lt;br /&gt;
* [[Translated string key editor]]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [[Editor preferences]]&lt;br /&gt;
* [[Project browser]]&lt;br /&gt;
* [[Level browser]]&lt;br /&gt;
* [[Main toolbar]]&lt;br /&gt;
* [[Osiris API Tips]]&lt;br /&gt;
* [[Sandbox]]&lt;br /&gt;
* [[AI bound editor]]&lt;br /&gt;
* [[Script debugger]]&lt;br /&gt;
&lt;br /&gt;
== Console ==&lt;br /&gt;
* [[Command list]]&lt;br /&gt;
* [[ReCon|ReCon: remote console]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Category:Osiris_Queries&amp;diff=1020</id>
		<title>Category:Osiris Queries</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Category:Osiris_Queries&amp;diff=1020"/>
		<updated>2017-08-08T13:55:21Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: Created page with &amp;quot;test&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Technical_documentation&amp;diff=942</id>
		<title>Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Technical_documentation&amp;diff=942"/>
		<updated>2017-08-07T12:35:10Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Systems ==&lt;br /&gt;
* [[Templates explanation|Root and local templates, how do they work?]]&lt;br /&gt;
* [[AI grid|AI grid: surfaces, walkables, ...]]&lt;br /&gt;
* [[Scripting|Scripting]]&lt;br /&gt;
* [[Osiris|Osiris: story scripting]]&lt;br /&gt;
* [[Modding internals|Modding: internal system]]&lt;br /&gt;
* [[Light probes]]&lt;br /&gt;
* [[Entity types]]&lt;br /&gt;
* [[Decals]]&lt;br /&gt;
&lt;br /&gt;
== Panels ==&lt;br /&gt;
* [[Root template panel]]&lt;br /&gt;
* [[Content browser]]&lt;br /&gt;
* [[World outliner]]&lt;br /&gt;
* [[Sidebar]]&lt;br /&gt;
* [[AI grid panel]]&lt;br /&gt;
* [[Project settings window]]&lt;br /&gt;
* [[Publish project window]]&lt;br /&gt;
* [[Combat Group Panel]]&lt;br /&gt;
* [[Terrain panel]]&lt;br /&gt;
* [[Decal painter panel]]&lt;br /&gt;
* [[Instance Painter Panel]]&lt;br /&gt;
&lt;br /&gt;
== Editors ==&lt;br /&gt;
* [[Material editor]]&lt;br /&gt;
* [[Stats editor]]&lt;br /&gt;
* [[Story editor]]&lt;br /&gt;
* [[Script editor]]&lt;br /&gt;
* [[Journal editor]]&lt;br /&gt;
* [[Translated string key editor]]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [[Editor preferences]]&lt;br /&gt;
* [[Project browser]]&lt;br /&gt;
* [[Level browser]]&lt;br /&gt;
* [[Main toolbar]]&lt;br /&gt;
* [[Osiris API Tips]]&lt;br /&gt;
* [[Sandbox]]&lt;br /&gt;
* [[AI Bound Editor]]&lt;br /&gt;
* [[Script debugger]]&lt;br /&gt;
&lt;br /&gt;
== Console ==&lt;br /&gt;
* [[Command list]]&lt;br /&gt;
* [[ReCon|ReCon: remote console]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=David_list_WIP&amp;diff=887</id>
		<title>David list WIP</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=David_list_WIP&amp;diff=887"/>
		<updated>2017-08-07T07:06:38Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: Created page with &amp;quot;== Step 1: New Project - What type of project do I need? == * Campaign|Campaign: You want to create an entire story, with levels and fights and dialogues, and a lot of scrip...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step 1: New Project - What type of project do I need? ==&lt;br /&gt;
* [[Campaign|Campaign: You want to create an entire story, with levels and fights and dialogues, and a lot of scripting.]]&lt;br /&gt;
* [[Add-on|Add-on: You want to modify non-story parts of the existing campaign or another mod.]]&lt;br /&gt;
* [[Story mod|Story mod: You want to change or add to the Divinity Original Sin 2 story code.]]&lt;br /&gt;
== Step 2: Load or Create Level ==&lt;br /&gt;
* [[Choose Level|Choose Level: Load an existing level in your project or in the campaign]]&lt;br /&gt;
* [[Create New Level|Create New Level: A fresh start.]]&lt;br /&gt;
* [[Sandbox|But I don't want to create or change a level: choose Sandbox. Choose sandbox if you want to work on treasure, stats, textures, models...]]&lt;br /&gt;
== Step 3: Now how do I... == &lt;br /&gt;
* [[MOD THE MAIN CAMPAIGN]]&lt;br /&gt;
* [[Modding visuals]]&lt;br /&gt;
* [[Change icons of statuses, skills, NPCs...]]&lt;br /&gt;
* [[Add player icons to select from]]&lt;br /&gt;
* [[Change 3D models]]&lt;br /&gt;
* [[Change a texture]]&lt;br /&gt;
* [[Change the atmosphere (lighting etc)]]&lt;br /&gt;
* [[Change animations]]&lt;br /&gt;
* [[Change existing materials, or create and assign new materials]]&lt;br /&gt;
* [[Change visual fx]]&lt;br /&gt;
* [[Change Balancing]]&lt;br /&gt;
* [[Change enemy and NPC stats and gear]]&lt;br /&gt;
* [[Change enemy behaviour and known skills]]&lt;br /&gt;
* [[Change base stats of player characters]]&lt;br /&gt;
* [[Change presets and create new presets (&amp;quot;classes&amp;quot;)]]&lt;br /&gt;
* [[Change player weapon and armour stats]]&lt;br /&gt;
* [[Change some exposed combat and gameplay variables]]&lt;br /&gt;
* [[Change the gold value of things]]&lt;br /&gt;
* [[Change what food and potions do]]&lt;br /&gt;
* [[Change crafting ingredients and results]]&lt;br /&gt;
* [[Change treasure settings of containers and characters]]&lt;br /&gt;
* [[Change trade inventories of characters]]&lt;br /&gt;
* [[Change magical properties of magic modifiers on generated items]]&lt;br /&gt;
* [[Change settings of magic generation of items]]&lt;br /&gt;
* [[Change some talent settings]]&lt;br /&gt;
* [[Change skill properties (e.g. damage, action points...)]]&lt;br /&gt;
* [[Change skill, crafting and item requirements; and talent requirements]]&lt;br /&gt;
* [[Change how statuses act and react]]&lt;br /&gt;
* [[Change some exposed surface settings]]&lt;br /&gt;
* [[Translate the game]]&lt;br /&gt;
* [[By using a loca kit, not the modding tool.]]&lt;br /&gt;
* [[Make one of those fancy camera-flies-through-the-level movies?]]&lt;br /&gt;
* [[Use splines!]]&lt;br /&gt;
* [[Change interactivity]]&lt;br /&gt;
* [[Change what items you can pick up and move]]&lt;br /&gt;
* [[Change what item tooltips are shown in the world]]&lt;br /&gt;
* [[Change how items behave when you destroy them]]&lt;br /&gt;
* [[Change, add, remove use actions on items]]&lt;br /&gt;
* [[Change text]]&lt;br /&gt;
* [[Add hints to the loading screen]]&lt;br /&gt;
* [[Change character names, item names and item descriptions]]&lt;br /&gt;
* [[Change contents of books]]&lt;br /&gt;
* [[Change dialogs]]&lt;br /&gt;
* [[Change journal entries]]&lt;br /&gt;
* [[Redecorate existing levels]]&lt;br /&gt;
* [[Move items and characters around]]&lt;br /&gt;
* [[Change the terrain]]&lt;br /&gt;
* [[Add books to the game]]&lt;br /&gt;
* [[Add keys to existing chests]]&lt;br /&gt;
* [[Add chests and containers to the game]]&lt;br /&gt;
* [[Add decorational items to the game]]&lt;br /&gt;
* [[Add weapons and armour to the game]]&lt;br /&gt;
* [[Change terrain]]&lt;br /&gt;
* [[Modify scripting]]&lt;br /&gt;
* [[Change story code]]&lt;br /&gt;
* [[Change behaviour script code]]&lt;br /&gt;
* [[ADD STUFF TO THE MAIN CAMPAIGN]]&lt;br /&gt;
== FAQ: Why can I not... == &lt;br /&gt;
* [[Add talents to the game?]]&lt;br /&gt;
* [[Talents are coded in C++. They usually override or change the gameplay rules in such a unique way, that it's not viable to create reusable templates and make them data driven.]]&lt;br /&gt;
* [[Change all sounds in the game?]]&lt;br /&gt;
* [[We use Wwise and sounds have to be added and processed in Wwise.]]&lt;br /&gt;
* [[Mod the UI?]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50%;&amp;quot;&lt;br /&gt;
| tables&lt;br /&gt;
| are&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 30%;&amp;quot;|&lt;br /&gt;
hard&lt;br /&gt;
| yes&lt;br /&gt;
|-&lt;br /&gt;
| FAQ&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Larian_guides&amp;diff=886</id>
		<title>Larian guides</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Larian_guides&amp;diff=886"/>
		<updated>2017-08-07T07:06:21Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;gallery mode=packed-overlay heights=250px style=&amp;quot;max-width:79%;margin:auto&amp;quot;&amp;gt;&lt;br /&gt;
File:StartGuide-thumbnail.png|link=Setting up the editor|Setting up the editor for the first time.&lt;br /&gt;
File:ProjectGuide-thumbnail.png|link=Working with projects|On creating/loading and publishing a project that suits my needs.&lt;br /&gt;
File:LevelGuide-thumbnail.png|link=Working with levels|On the different ways to create/load a level.&lt;br /&gt;
File:FAQ.png|link=Frequently Asked Questions|Frequently Asked Questions.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[David list WIP]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Technical_documentation&amp;diff=638</id>
		<title>Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Technical_documentation&amp;diff=638"/>
		<updated>2017-08-02T15:01:18Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Systems ==&lt;br /&gt;
* [[Templates explanation|Root and local templates, how do they work?]]&lt;br /&gt;
* [[AI grid|AI grid: surfaces, walkables, ...]]&lt;br /&gt;
* [[Scripting|Scripting]]&lt;br /&gt;
* [[Osiris|Osiris: story scripting]]&lt;br /&gt;
* [[Modding internals|Modding: internal system]]&lt;br /&gt;
* [[Light probes]]&lt;br /&gt;
* [[Entity types]]&lt;br /&gt;
&lt;br /&gt;
== Panels ==&lt;br /&gt;
* [[Root template panel]]&lt;br /&gt;
* [[World outliner]]&lt;br /&gt;
* [[Sidebar]]&lt;br /&gt;
* [[AI grid panel]]&lt;br /&gt;
* [[Project settings window]]&lt;br /&gt;
* [[Publish project window]]&lt;br /&gt;
* [[Combat Group Panel]]&lt;br /&gt;
* [[Terrain panel]]&lt;br /&gt;
&lt;br /&gt;
== Editors ==&lt;br /&gt;
* [[Material editor]]&lt;br /&gt;
* [[Stats editor]]&lt;br /&gt;
* [[Story editor]]&lt;br /&gt;
* [[Script editor]]&lt;br /&gt;
* [[Translated string key editor]]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [[Editor preferences]]&lt;br /&gt;
* [[Project browser]]&lt;br /&gt;
* [[Level browser]]&lt;br /&gt;
* [[Main toolbar]]&lt;br /&gt;
* [[Osiris API Tips]]&lt;br /&gt;
* [[Sandbox]]&lt;br /&gt;
* [[AI Bound Editor]]&lt;br /&gt;
&lt;br /&gt;
== Console ==&lt;br /&gt;
* [[Command list]]&lt;br /&gt;
* [[ReCon|ReCon: remote console]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Technical_documentation&amp;diff=635</id>
		<title>Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Technical_documentation&amp;diff=635"/>
		<updated>2017-08-02T14:48:27Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Systems ==&lt;br /&gt;
* [[Templates explanation|Root and local templates, how do they work?]]&lt;br /&gt;
* [[AI grid|AI grid: surfaces, walkables, ...]]&lt;br /&gt;
* [[Scripting|Scripting]]&lt;br /&gt;
* [[Osiris|Osiris: story scripting]]&lt;br /&gt;
* [[Modding internals|Modding: internal system]]&lt;br /&gt;
* [[Light probes]]&lt;br /&gt;
&lt;br /&gt;
== Panels ==&lt;br /&gt;
* [[Root template panel]]&lt;br /&gt;
* [[World outliner]]&lt;br /&gt;
* [[Sidebar]]&lt;br /&gt;
* [[AI grid panel]]&lt;br /&gt;
* [[Project settings window]]&lt;br /&gt;
* [[Publish project window]]&lt;br /&gt;
* [[Combat Group Panel]]&lt;br /&gt;
* [[Terrain panel]]&lt;br /&gt;
&lt;br /&gt;
== Editors ==&lt;br /&gt;
* [[Material editor]]&lt;br /&gt;
* [[Stats editor]]&lt;br /&gt;
* [[Story editor]]&lt;br /&gt;
* [[Script editor]]&lt;br /&gt;
* [[Translated string key editor]]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [[Editor preferences]]&lt;br /&gt;
* [[Project browser]]&lt;br /&gt;
* [[Level browser]]&lt;br /&gt;
* [[Main toolbar]]&lt;br /&gt;
* [[Osiris API Tips]]&lt;br /&gt;
* [[Sandbox]]&lt;br /&gt;
* [[AI Bound Editor]]&lt;br /&gt;
&lt;br /&gt;
== Console ==&lt;br /&gt;
* [[Command list]]&lt;br /&gt;
* [[ReCon|ReCon: remote console]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Templates_explanation&amp;diff=311</id>
		<title>Templates explanation</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Templates_explanation&amp;diff=311"/>
		<updated>2017-08-01T12:59:47Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Root template =&lt;br /&gt;
&amp;lt;p&amp;gt;Root templates are the '''building blocks''' of our game. A root template can be an item, a character, a trigger, etc.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A root template '''describes''' a game object. It contains the '''data''' of a thing necessary to put that thing in the game.&lt;br /&gt;
&amp;lt;br&amp;gt;(For instance: its visual, the physics, the AI bounds, name, stats, scripts, etc. All these properties describe and make up the game object.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A root template is set up so that it defines the default visual and default behaviour of the game object. This means that a root template '''contains important gameplay''' information.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For our interactive, reactive, systemic game to work correctly, we need roots and they must be carefully set up.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Rootsarmy.jpg|frame|Army Men game has 2 roots: ArmyMan and Tank. Thanks art team!|none]]&lt;br /&gt;
&lt;br /&gt;
= Local instances/templates =&lt;br /&gt;
&amp;lt;p&amp;gt;You never really place a root in the game. You place a '''reference''' to the root in the game.&amp;lt;br&amp;gt;&lt;br /&gt;
Roots really exist on another plane outside of the game.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The game merely contains '''links''' to the root. When you drag a root into the game, it creates a local instance (also called local template) of the root at that spot. You could say local instances are '''children''' of their parent (the root).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Localsarmy.jpg|frame|Army Men game has 2 local instances in-game that refer to the root ArmyMan.|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A local instance can live without data. It '''just refers''' to the root and it will get its data there.&amp;lt;br&amp;gt;&lt;br /&gt;
However, if the root is deleted, the link is broken and the local instance will no longer be able to show anything. (This is why you get errors if roots are deleted and they’re used by local instances.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Inheritance =&lt;br /&gt;
&amp;lt;p&amp;gt;If you are an artist, think of a root template as a '''magical mold''' or a magical pattern: when you update the mold, everything you ever made with it updates too!&amp;lt;br&amp;gt;&lt;br /&gt;
If you are a programmer, think of a root template as a '''class'''.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Every time a root template is updated, all its '''local instances inherit the updates automatically'''.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p&amp;gt;'''“Green?! NO! All ArmyMan must be red!” The Root ArmyMan was updated with the colour RED. All its instances in the game everywhere inherit the colour automatically.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''(NOTE: This is just an example of a property. Colour works differently in our game.)'''&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Whew. What a relief. I thought we would have to update all local instances everywhere in the entire game. Thank you root system!&lt;br /&gt;
&lt;br /&gt;
[[File:Colorsarmy.jpg|frame|none]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
* If an artist finally gives the root an icon, all the local instances in the game inherit the root. This means that you can close 248 bugs about “vase has no icon” by updating 1 root, and it means that you just gave 3400 vases an icon with 1 click.&lt;br /&gt;
* If a designer finally creates an item combo for the root, you can perform the item combo with all local instances of that root. By updating 1 root, you can close 134 bugs about “cup plus barrel gives no mug of beer”, and it means that you just gave 4200 mugs the ability to become a mug of beer.&lt;br /&gt;
* If a writer finally finds the time to write a kickass description for this special bottle of wine, and she writes it on the root template, she can close the 124 tickets about the 879 bottles in the game not having a description. If we would not have roots and their magical inheritance, we would have to copy paste that description 879 times.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;All hail roots.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Consistency and player expectations =&lt;br /&gt;
By using roots, we also ensure consistent behaviour of the items in our world.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
* Every barrel of oil explodes because every barrel of oil in our game gets that piece of information from its root template.&lt;br /&gt;
* You can drink every bottle of wine in the game, because its root refers to wine stats and has the consume action.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The '''player''' of our game has certain '''expectations'''. &lt;br /&gt;
Things '''do''' what they look like they do in real life: &lt;br /&gt;
* you can read a book, &lt;br /&gt;
* you can drink wine, &lt;br /&gt;
* you can eat bread, &lt;br /&gt;
* you can cook meat, &lt;br /&gt;
* you can climb stairs, &lt;br /&gt;
* you can open a cupboard, &lt;br /&gt;
* you can open a door, &lt;br /&gt;
* you can open that hatch, &lt;br /&gt;
* you can open a can of whoop ass, &lt;br /&gt;
* you can wear a helmet, &lt;br /&gt;
* you can put on shoes, &lt;br /&gt;
* you can use that weapon on the wall, &lt;br /&gt;
* that shield is not just decoration, &lt;br /&gt;
* you can wield that broom as a weapon, &lt;br /&gt;
* you can look in that mirror, &lt;br /&gt;
* you can cook something in the oven, &lt;br /&gt;
* you can lie in a bed, &lt;br /&gt;
* you can sit on a chair,&lt;br /&gt;
* you can climb a ladder,&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
* You can '''move''' everything that is not too heavy and not nailed down.&lt;br /&gt;
* You can '''pick up''' anything that looks like it can fit in a backpack. (Exceptions: barrels, crates, chests, baskets, a lot of weapons and armour.)&lt;br /&gt;
* You can '''interact''' with things that you expect to be interactive and see an animation (turn on a lamp, pull a lever) or hear a funny remark (click on a gravestone) or you can do an item combo with it (an anvil, an oven).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To live up to these expectations, we '''set up the roots correctly''', and as a result, all its instances inherit the settings and everything works as it should. If one item in the game behaves differently, it is experienced as a bug and it’s not the way this game was designed.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= What is wrong =&lt;br /&gt;
&amp;lt;p&amp;gt;If you turn off or change this expected, standard behaviour on a local instance, that is wrong in 99% of the cases: it is no longer consistent with the other items of this type and confuses the player. It’s a bug, it’s an inconsistency.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;What is even worse is to set up such behaviour on a local instance. Doing this is wrong in 99% of the cases: it then only works on that local and not on the rest of its brothers and sisters. This is not consistent and you are not using the power of the root system.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''“Green?! NO! All ArmyMan must be red!” The WRONG way to do this is to go over every local instance and override their colours. This is wrong because:'''&lt;br /&gt;
* You forgot a couple in that other level. You introduced bugs.&lt;br /&gt;
* The other guy who is using ArmyMan did not get the memo and is not doing it to his locals. Bugs.&lt;br /&gt;
* All future instances of ArmyMan will still be green because its root is still green.&lt;br /&gt;
* The player will then start seeing green and red army men and will be confused. Bugs.&lt;br /&gt;
* Any updates on the colour of the root will not be inherited because the colour was overridden and some other poor sod will have to find out why fixing the root doesn’t update all instances in the game.&lt;br /&gt;
* All this could have been avoided by updating the root.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[File:Wrongarmy.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Warningred.png|left|30px]]If you find yourself constantly overriding the same things on all the locals of one root, you are probably doing it wrong and you should just ''fix'' the root and not try to fix all instances one by one.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Overrides on local instances =&lt;br /&gt;
&amp;lt;p&amp;gt;A designer or an artist building the world '''can''' override properties of game objects. Because '''sometimes''', there are '''exceptions''' and then overriding a property is a powerful tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ingamearmy.jpg|frame|none|“This very specific ArmyMan01 must always be green no matter what colour ArmyMan Root has. ArmyMan01 is really special.” In this case, we can override the colour property with green. The rest of the properties are still automatically inherited.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;But one must always be careful, because overriding properties can be a cause of bugs too.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
When is it a good idea to override properties on a local? For instance, you want a certain painting to react differently to a click than usual, because it is part of a quest: you can talk to this particular painting!&amp;lt;br&amp;gt;&lt;br /&gt;
Or this hand placed weapon belonged to the duke and has a special name and needs unique stats. Or, this chest is locked with a key. This particular door is possessed and you have to talk to it instead of open it.&amp;lt;br&amp;gt;&lt;br /&gt;
This water well is not just a water well, if you do the right things to it, it becomes a wishing well! And so forth.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Sometimes, overrides on local instances are perfectly possible and encouraged. But as soon as you are changing systemics, think about what you’re doing.&amp;lt;br&amp;gt;&lt;br /&gt;
And as soon as you find yourself doing the same thing over and over again to the same locals, think about what you’re doing.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Overrides mean: no more updates from root =&lt;br /&gt;
&amp;lt;p&amp;gt;However, as a designer or artist, you must know that '''a property of a local that gets an override no longer inherits from its root'''.&amp;lt;br&amp;gt;&lt;br /&gt;
This is only logical, because it is an override. Even if the root is updated, the local instance’s property is still overridden.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Purplearmy.jpg|frame|none|“Red is out, we should make our ArmyMan purple in the entire game. For Prince!” We set the root’s colour property with purple. However, all instances that have an override on colour do not inherit this, and that may be fine if that’s what you wanted.]]&lt;br /&gt;
&lt;br /&gt;
= Perfectly normal overrides =&lt;br /&gt;
&amp;lt;p&amp;gt;There are cases in which it can be perfectly normal to use the override functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
The following properties can be overridden '''in the following cases''':&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''DisplayName:''' if you want to give this particular local a specific name. &lt;br /&gt;
** Pitfall: if you find yourself selecting and renaming an entire group of similar item locals or character locals, you probably want to:&lt;br /&gt;
*:: a) fix the root’s name&lt;br /&gt;
*:: b) create a new root&lt;br /&gt;
** ...because you are probably creating a certain new type that warrants a root&lt;br /&gt;
* '''Alignment:''' for specifying for instance more regional alignments to NPCs&lt;br /&gt;
* '''IsBoss:''' for specifying that this particular local is a boss character&lt;br /&gt;
* '''IsInspector:''' if you want to turn specific items or characters that are usually not inspectors into an inspector &lt;br /&gt;
** A trap item should have this on root level, or you will find yourself turning this on constantly for all trap locals&lt;br /&gt;
** Other than traps, this may be necessary on some locals in some circumstances&lt;br /&gt;
* '''ActivationGroupId:''' If you want to group locals to start together (this is never set on root because it is so local-specific)&lt;br /&gt;
* '''Amount:''' if you want to put an item in the world and make it a stack &lt;br /&gt;
** e.g. gold or arrows&lt;br /&gt;
** it also works on potato but the visual doesn’t change&lt;br /&gt;
* '''Description:''' if you want to give this particular local a specific description.&lt;br /&gt;
** Pitfall: example. You see a healing potion in the game. It has no description. You click on the local instance of the potion and you fill in the description.&amp;lt;br&amp;gt;This is '''wrong'''. You are only making a description for that one particular healing potion. If you want all healing potions in the game to have that description, you must fix the root.&amp;lt;br&amp;gt;If you fill in a description in the root, all healing potions in the game will have the description. Use this field only to override an existing root description for a particular and specific local.&lt;br /&gt;
** Pitfall: example. You see a painting in the game. It has no description. You click on seven local instances of the painting and you fill in the description.&amp;lt;br&amp;gt;This is '''wrong'''. Someone somewhere else uses the same painting root. This will not have the description you filled in because you didn’t fill it in on the root.&amp;lt;br&amp;gt;Someone else fills in a proper description on the root. Your seven instances will not inherit it because you made the error of filling in a description on the local instances.&lt;br /&gt;
* '''Icon:''' if you have a really specific icon for this particular local version (e.g. because it is a special NPC or a unique item)&lt;br /&gt;
* '''Treasure / Inventory:''' if you want to give this particular instance of the item or character a specific treasure table&lt;br /&gt;
** Pitfall: if you find yourself doing this to the local because the root has no treasure filled in, are you sure the root doesn’t need a default treasure?&lt;br /&gt;
* '''Trade Treasure :''' if you want to give this particular copy of the character a specific trade table&lt;br /&gt;
* '''Items:''' usually not set on a root, this enables you to put things in an item or in a character’s pockets&lt;br /&gt;
* '''LevelOverride:''' can be set to a specific level, zero to take level of stats, or -1 to take level trigger&lt;br /&gt;
* '''LockLevel:''' to change lockpicking requirements for this specific container&lt;br /&gt;
* '''Stats:''' to change to more specific stats (more common override for characters and weapons and armour, most other items only get an override for special cases like quest objects;&amp;lt;br&amp;gt;remember that item combos might not work if you change stats)&lt;br /&gt;
* '''StoryItem:''' check this flag if this is a story item&lt;br /&gt;
* '''TreasureLevel:''' set to a specific level to force a level, zero to get from area, -1 to get from level trigger&lt;br /&gt;
* '''UsePartyLevelForTreasureLevel:''' check this box if you want the party level to determine the level of treasure this particular container generates&lt;br /&gt;
* '''OnUseActions:''' for story scripting purposes, this can trigger extra uses, but its default uses should be taken into account carefully;&amp;lt;br&amp;gt;the designer should take into account that the default scripts on the root may often change or get fixed and that an override will then not be inherited as soon as this part is changed, so use with caution and don’t forget about player expectation&lt;br /&gt;
* '''Scale:''' don’t exaggerate with scaling. This means: don’t turn a ten foot statue into a six inch figurine. And don’t scale a needle up to a sword.&lt;br /&gt;
* '''Tags:''' sometimes, a local’s tags can change&lt;br /&gt;
* '''VisualSet:''' data can be changed&lt;br /&gt;
* '''Equipment:''' a local can wear different weapons than its root&lt;br /&gt;
* '''IsHardcoreOnly:''' a local can be added for HC only&lt;br /&gt;
* '''Skills:''' a local can have different skills than its root&lt;br /&gt;
&lt;br /&gt;
= The parable of the 3 designers =&lt;br /&gt;
&amp;lt;p&amp;gt;3 designers each made a farm.&amp;lt;br&amp;gt;&lt;br /&gt;
When inspecting, the lead designer says to all 3 of them: “I want to see a rooster here among the chickens.”&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Designer 1 clicks one local chicken, changes the name to “Rooster” and calls it a day.&lt;br /&gt;
* Designer 2 clicks a local chicken, changes the name to “Cock”, sets the treasure to Empty, sets the stats to FTJ_Magister_Soldier cause he thinks it should be stronger than a chicken, and requests an icon and a visual for a cock.&lt;br /&gt;
* Designer 3 opens his Roots panel, right-clicks the root ANIMAL_Chicken and selects “Create new from selected…” and gives it the name “ANIMAL_Rooster”.&amp;lt;br&amp;gt;He gives the root a displayname, sets the treasure to Empty, and puts one instance of the root ANIMAL_Rooster near his chickens and requests an icon and a visual for a rooster.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;There are now 3 different roosters in the game.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The third designer’s root gets filled in by art, sound designers made it cock-a-doodle, and someone makes a treasure for the rooster and specific stats.&amp;lt;br&amp;gt;&lt;br /&gt;
The combat designer changes the behaviour of the root of the rooster: it doesn’t flee but has powerful attacks with its claws and beak.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Everyone’s forgotten about the local overrides. Designer 1’s rooster is still laying eggs if you kill it and is now just a white chicken called “Rooster”.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Designer 2’s rooster never got the icon or the visual, cause the art department thinks they filled his request by completing the root.&amp;lt;br&amp;gt;&lt;br /&gt;
Designer 2’s “cock” is also being mistranslated by a lot of loca companies and it’s taken hours to figure out where the dirty word is coming from cause the root has the name “Rooster”.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The game is now illegal in Australia.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Why changing locals is not “a quick hack” =&lt;br /&gt;
&amp;lt;p&amp;gt;The argument is often made that to quickly fix something or hack something, or get something ready quick, you “do it to the local”.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is wrong in a lot of cases.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;First and foremost, creating a new root for your specific item is only 2 clicks away.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Second of all, if you are trying to fix a local while you should have fixed the root,&amp;lt;br&amp;gt;&lt;br /&gt;
you went through more trouble loading the level and finding the local, than fixing the root, which would have been the correct solution.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Third, by “hacking the local”, you are &lt;br /&gt;
* Creating unexpected behaviour &lt;br /&gt;
* Creating inconsistent behaviour &lt;br /&gt;
* Possibly removing expected behaviour&lt;br /&gt;
* Possibly no longer inheriting future updates and fixes to the root&lt;br /&gt;
* Not updating the other locals that may need the same treatment you are giving this local (you should be doing it in the root)&lt;br /&gt;
* Possibly creating a standalone version of something that is now untraceable (needs an icon but it’s hiding away between thousands of other tiny local items)&lt;br /&gt;
* Causing bugs that are hard to find and fix because “the root works”&lt;br /&gt;
* Causing skeletons that drop out of the closet at the end of the project and wasting time that could have been spent on polish instead of fixing “quick” hacks&lt;br /&gt;
&lt;br /&gt;
= Real life examples of what people did wrong and why it was wrong =&lt;br /&gt;
=== The jar story ===&lt;br /&gt;
&amp;lt;p&amp;gt;You get a ticket about the name of a jar being wrong. There is nothing special about the jar. It is not a quest item or puzzle item.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Correct''' || '''Wrong'''&lt;br /&gt;
|-&lt;br /&gt;
| You look for the root template of the jar and you fix the name of the root. || You go to the location of the jar in the ticket.&amp;lt;br&amp;gt;You fix the name of the local.&lt;br /&gt;
|-&lt;br /&gt;
| '''Why correct?''' || '''Why wrong?'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;You just fixed not just this one jar, but all 473 jars in one go.&amp;lt;br&amp;gt;&lt;br /&gt;
Future jars will also have the correct name&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;You fixed only 1 instance of the jar. There are 472 other jars.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You could fix all 472 other jars if you have a lot of time. But you don’t.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Even if you did fix all 472 jars, 23 of them are checked out by someone else and 34 are being added at this moment and 78 will be added between now and next year. How will you fix those?&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When the name of the root gets fixed or updated, your jar name remains in the game and you have made a unique jar.&amp;lt;br&amp;gt;&lt;br /&gt;
It will not stack with other jars. It will stand out and the player will think it is special.&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;“I was told to unstub the name of these jars.” Yes. But not these particular jars, you are taking it too literally.&amp;lt;br&amp;gt;&lt;br /&gt;
You were told to unstub all jars of this type in the entire game. So you do it in the root.&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== The book story ===&lt;br /&gt;
&amp;lt;p&amp;gt;You have a library full of books. You think there are too many books there, and too many of them don’t have actual content.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Correct''' || '''Wrong'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;You leave the books be and use a generic BookID&amp;lt;br&amp;gt;&lt;br /&gt;
(e.g. “You cannot read this.” or “Pages are ripped from this book so it doesn’t make a lot of sense anymore.”)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Also correct: you remove some books (careful not to touch story items) and use BookRows instead.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;You delete their onUse action.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;And you don’t want to waste the player’s time, so you turn off the flags “CanMove” and “CanPickup”.&amp;lt;br&amp;gt;&lt;br /&gt;
You think they’re only decoration.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''Why correct?''' || '''Why wrong?'''&lt;br /&gt;
|-&lt;br /&gt;
| You are keeping the game consistent.&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Killing player expectation: you should never make a moveable item non-moveable.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Killing player expectation: you should never make an interactable item non-interactable.&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== The small statuette story ===&lt;br /&gt;
&amp;lt;p&amp;gt;Your job is to decorate the museum.&amp;lt;br&amp;gt;&lt;br /&gt;
You think you’re short on decoration items so you decide to start using those big statues that are all over the game.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Correct''' || '''Wrong'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;You select the root of a statue, right click it, you choose “Create new from selected…” and you make a new root.&amp;lt;br&amp;gt;&lt;br /&gt;
You give it the same name but append _Tiny&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You set the Scaling of the new root to 5%.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Yet grab your new root and put it on a shelf.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You tell a lead you made a new root and that it needs checking (stats, flags, visual, AI bounds…).&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
You grab a statue and put it on a shelf, you resize it to 5% and check it in thinking “I’m done, I am so smart.”&lt;br /&gt;
|-&lt;br /&gt;
| '''Why correct?''' || '''Why wrong?'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;All people responsible will now update your root.&amp;lt;br&amp;gt;&lt;br /&gt;
Doing so will result in all current and future instances of the little statue to be correct.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;They will all get stats, moveable and pickupable flags, AI bounds, and a visual made for that small size.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;The statue can not be moved or picked up. There is no specific root for this statue, so nobody will ever know.&amp;lt;br&amp;gt;&lt;br /&gt;
You could start overriding this local, but then you are creating a very specific statue.&amp;lt;br&amp;gt;&lt;br /&gt;
If someone else is doing the same thing in another spot in the game, you are both creating inconsistency.&amp;lt;br&amp;gt;&lt;br /&gt;
By doing it to a local, you are hiding the problem.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the root of this statue would get a certain update (for instance, all these statues are now a waypoint shrine),&amp;lt;br&amp;gt;&lt;br /&gt;
your statue will inherit behaviour it was not intended to inherit.&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== The story about you don’t want to break other people’s stuff ===&lt;br /&gt;
&amp;lt;p&amp;gt;You notice that a book cannot be picked up.&amp;lt;br&amp;gt;&lt;br /&gt;
You are afraid to change the root because you think that other people may have used this book and you don’t want to break their stuff.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Correct''' || '''Wrong'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;You '''fix''' the root because you must be able to pick up all books in this game.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You tell everyone about what root you fixed and tell them to check if their stuff still works.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;If they complain, they are using the book incorrectly and should not hack their local back again to not be moveable.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
You don’t do anything and make your own locals pickupable.&lt;br /&gt;
|-&lt;br /&gt;
| '''Why correct?''' || '''Why wrong?'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Player expectation, rules of the game.&lt;br /&gt;
||&lt;br /&gt;
Not following player expectation, not according to the rules of the game.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Templates_explanation&amp;diff=310</id>
		<title>Templates explanation</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Templates_explanation&amp;diff=310"/>
		<updated>2017-08-01T12:57:56Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Root template =&lt;br /&gt;
&amp;lt;p&amp;gt;Root templates are the '''building blocks''' of our game. A root template can be an item, a character, a trigger, etc.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A root template '''describes''' a game object. It contains the '''data''' of a thing necessary to put that thing in the game.&lt;br /&gt;
&amp;lt;br&amp;gt;(For instance: its visual, the physics, the AI bounds, name, stats, scripts, etc. All these properties describe and make up the game object.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A root template is set up so that it defines the default visual and default behaviour of the game object. This means that a root template '''contains important gameplay''' information.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For our interactive, reactive, systemic game to work correctly, we need roots and they must be carefully set up.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Rootsarmy.jpg|frame|Army Men game has 2 roots: ArmyMan and Tank. Thanks art team!|none]]&lt;br /&gt;
&lt;br /&gt;
= Local instances/templates =&lt;br /&gt;
&amp;lt;p&amp;gt;You never really place a root in the game. You place a '''reference''' to the root in the game.&amp;lt;br&amp;gt;&lt;br /&gt;
Roots really exist on another plane outside of the game.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The game merely contains '''links''' to the root. When you drag a root into the game, it creates a local instance (also called local template) of the root at that spot. You could say local instances are '''children''' of their parent (the root).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Localsarmy.jpg|frame|Army Men game has 2 local instances in-game that refer to the root ArmyMan.|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A local instance can live without data. It '''just refers''' to the root and it will get its data there.&amp;lt;br&amp;gt;&lt;br /&gt;
However, if the root is deleted, the link is broken and the local instance will no longer be able to show anything. (This is why you get errors if roots are deleted and they’re used by local instances.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Inheritance =&lt;br /&gt;
&amp;lt;p&amp;gt;If you are an artist, think of a root template as a '''magical mold''' or a magical pattern: when you update the mold, everything you ever made with it updates too!&amp;lt;br&amp;gt;&lt;br /&gt;
If you are a programmer, think of a root template as a '''class'''.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Every time a root template is updated, all its '''local instances inherit the updates automatically'''.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p&amp;gt;'''“Green?! NO! All ArmyMan must be red!” The Root ArmyMan was updated with the colour RED. All its instances in the game everywhere inherit the colour automatically.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''(NOTE: This is just an example of a property. Colour works differently in our game.)'''&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Whew. What a relief. I thought we would have to update all local instances everywhere in the entire game. Thank you root system!&lt;br /&gt;
&lt;br /&gt;
[[File:Colorsarmy.jpg|frame|none]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
* If an artist finally gives the root an icon, all the local instances in the game inherit the root. This means that you can close 248 bugs about “vase has no icon” by updating 1 root, and it means that you just gave 3400 vases an icon with 1 click.&lt;br /&gt;
* If a designer finally creates an item combo for the root, you can perform the item combo with all local instances of that root. By updating 1 root, you can close 134 bugs about “cup plus barrel gives no mug of beer”, and it means that you just gave 4200 mugs the ability to become a mug of beer.&lt;br /&gt;
* If a writer finally finds the time to write a kickass description for this special bottle of wine, and she writes it on the root template, she can close the 124 tickets about the 879 bottles in the game not having a description. If we would not have roots and their magical inheritance, we would have to copy paste that description 879 times.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;All hail roots.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Consistency and player expectations =&lt;br /&gt;
By using roots, we also ensure consistent behaviour of the items in our world.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
* Every barrel of oil explodes because every barrel of oil in our game gets that piece of information from its root template.&lt;br /&gt;
* You can drink every bottle of wine in the game, because its root refers to wine stats and has the consume action.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The '''player''' of our game has certain '''expectations'''. &lt;br /&gt;
Things '''do''' what they look like they do in real life: &lt;br /&gt;
* you can read a book, &lt;br /&gt;
* you can drink wine, &lt;br /&gt;
* you can eat bread, &lt;br /&gt;
* you can cook meat, &lt;br /&gt;
* you can climb stairs, &lt;br /&gt;
* you can open a cupboard, &lt;br /&gt;
* you can open a door, &lt;br /&gt;
* you can open that hatch, &lt;br /&gt;
* you can open a can of whoop ass, &lt;br /&gt;
* you can wear a helmet, &lt;br /&gt;
* you can put on shoes, &lt;br /&gt;
* you can use that weapon on the wall, &lt;br /&gt;
* that shield is not just decoration, &lt;br /&gt;
* you can wield that broom as a weapon, &lt;br /&gt;
* you can look in that mirror, &lt;br /&gt;
* you can cook something in the oven, &lt;br /&gt;
* you can lie in a bed, &lt;br /&gt;
* you can sit on a chair,&lt;br /&gt;
* you can climb a ladder,&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
* You can '''move''' everything that is not too heavy and not nailed down.&lt;br /&gt;
* You can '''pick up''' anything that looks like it can fit in a backpack. (Exceptions: barrels, crates, chests, baskets, a lot of weapons and armour.)&lt;br /&gt;
* You can '''interact''' with things that you expect to be interactive and see an animation (turn on a lamp, pull a lever) or hear a funny remark (click on a gravestone) or you can do an item combo with it (an anvil, an oven).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To live up to these expectations, we '''set up the roots correctly''', and as a result, all its instances inherit the settings and everything works as it should. If one item in the game behaves differently, it is experienced as a bug and it’s not the way this game was designed.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= What is wrong =&lt;br /&gt;
&amp;lt;p&amp;gt;If you turn off or change this expected, standard behaviour on a local instance, that is wrong in 99% of the cases: it is no longer consistent with the other items of this type and confuses the player. It’s a bug, it’s an inconsistency.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;What is even worse is to set up such behaviour on a local instance. Doing this is wrong in 99% of the cases: it then only works on that local and not on the rest of its brothers and sisters. This is not consistent and you are not using the power of the root system.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''“Green?! NO! All ArmyMan must be red!” The WRONG way to do this is to go over every local instance and override their colours. This is wrong because:'''&lt;br /&gt;
* You forgot a couple in that other level. You introduced bugs.&lt;br /&gt;
* The other guy who is using ArmyMan did not get the memo and is not doing it to his locals. Bugs.&lt;br /&gt;
* All future instances of ArmyMan will still be green because its root is still green.&lt;br /&gt;
* The player will then start seeing green and red army men and will be confused. Bugs.&lt;br /&gt;
* Any updates on the colour of the root will not be inherited because the colour was overridden and some other poor sod will have to find out why fixing the root doesn’t update all instances in the game.&lt;br /&gt;
* All this could have been avoided by updating the root.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[File:Wrongarmy.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Warningred.png|left|30px]]If you find yourself constantly overriding the same things on all the locals of one root, you are probably doing it wrong and you should just ''fix'' the root and not try to fix all instances one by one.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Overrides on local instances =&lt;br /&gt;
&amp;lt;p&amp;gt;A designer or an artist building the world '''can''' override properties of game objects. Because '''sometimes''', there are '''exceptions''' and then overriding a property is a powerful tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ingamearmy.jpg|frame|none|“This very specific ArmyMan01 must always be green no matter what colour ArmyMan Root has. ArmyMan01 is really special.” In this case, we can override the colour property with green. The rest of the properties are still automatically inherited.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;But one must always be careful, because overriding properties can be a cause of bugs too.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
When is it a good idea to override properties on a local? For instance, you want a certain painting to react differently to a click than usual, because it is part of a quest: you can talk to this particular painting!&amp;lt;br&amp;gt;&lt;br /&gt;
Or this hand placed weapon belonged to the duke and has a special name and needs unique stats. Or, this chest is locked with a key. This particular door is possessed and you have to talk to it instead of open it.&amp;lt;br&amp;gt;&lt;br /&gt;
This water well is not just a water well, if you do the right things to it, it becomes a wishing well! And so forth.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Sometimes, overrides on local instances are perfectly possible and encouraged. But as soon as you are changing systemics, think about what you’re doing.&amp;lt;br&amp;gt;&lt;br /&gt;
And as soon as you find yourself doing the same thing over and over again to the same locals, think about what you’re doing.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Overrides mean: no more updates from root =&lt;br /&gt;
&amp;lt;p&amp;gt;However, as a designer or artist, you must know that '''a property of a local that gets an override no longer inherits from its root'''.&amp;lt;br&amp;gt;&lt;br /&gt;
This is only logical, because it is an override. Even if the root is updated, the local instance’s property is still overridden.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Purplearmy.jpg|frame|none|“Red is out, we should make our ArmyMan purple in the entire game. For Prince!” We set the root’s colour property with purple. However, all instances that have an override on colour do not inherit this, and that may be fine if that’s what you wanted.]]&lt;br /&gt;
&lt;br /&gt;
= Perfectly normal overrides =&lt;br /&gt;
&amp;lt;p&amp;gt;There are cases in which it can be perfectly normal to use the override functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
The following properties can be overridden '''in the following cases''':&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''DisplayName:''' if you want to give this particular local a specific name. &lt;br /&gt;
** Pitfall: if you find yourself selecting and renaming an entire group of similar item locals or character locals, you probably want to:&lt;br /&gt;
*:: a) fix the root’s name&lt;br /&gt;
*:: b) create a new root&lt;br /&gt;
** ...because you are probably creating a certain new type that warrants a root&lt;br /&gt;
* '''Alignment:''' for specifying for instance more regional alignments to NPCs&lt;br /&gt;
* '''IsBoss:''' for specifying that this particular local is a boss character&lt;br /&gt;
* '''IsInspector:''' if you want to turn specific items or characters that are usually not inspectors into an inspector &lt;br /&gt;
** A trap item should have this on root level, or you will find yourself turning this on constantly for all trap locals&lt;br /&gt;
** Other than traps, this may be necessary on some locals in some circumstances&lt;br /&gt;
* '''ActivationGroupId:''' If you want to group locals to start together (this is never set on root because it is so local-specific)&lt;br /&gt;
* '''Amount:''' if you want to put an item in the world and make it a stack &lt;br /&gt;
** e.g. gold or arrows&lt;br /&gt;
** it also works on potato but the visual doesn’t change&lt;br /&gt;
* '''Description:''' if you want to give this particular local a specific description.&lt;br /&gt;
** Pitfall: example. You see a healing potion in the game. It has no description. You click on the local instance of the potion and you fill in the description.&amp;lt;br&amp;gt;This is '''wrong'''. You are only making a description for that one particular healing potion. If you want all healing potions in the game to have that description, you must fix the root.&amp;lt;br&amp;gt;If you fill in a description in the root, all healing potions in the game will have the description. Use this field only to override an existing root description for a particular and specific local.&lt;br /&gt;
** Pitfall: example. You see a painting in the game. It has no description. You click on seven local instances of the painting and you fill in the description.&amp;lt;br&amp;gt;This is '''wrong'''. Someone somewhere else uses the same painting root. This will not have the description you filled in because you didn’t fill it in on the root.&amp;lt;br&amp;gt;Someone else fills in a proper description on the root. Your seven instances will not inherit it because you made the error of filling in a description on the local instances.&lt;br /&gt;
* '''Icon:''' if you have a really specific icon for this particular local version (e.g. because it is a special NPC or a unique item)&lt;br /&gt;
* '''Treasure / Inventory:''' if you want to give this particular instance of the item or character a specific treasure table&lt;br /&gt;
** Pitfall: if you find yourself doing this to the local because the root has no treasure filled in, are you sure the root doesn’t need a default treasure?&lt;br /&gt;
* '''Trade Treasure :''' if you want to give this particular copy of the character a specific trade table&lt;br /&gt;
* '''Items:''' usually not set on a root, this enables you to put things in an item or in a character’s pockets&lt;br /&gt;
* '''LevelOverride:''' can be set to a specific level, zero to take level of stats, or -1 to take level trigger&lt;br /&gt;
* '''LockLevel:''' to change lockpicking requirements for this specific container&lt;br /&gt;
* '''Stats:''' to change to more specific stats (more common override for characters and weapons and armour, most other items only get an override for special cases like quest objects;&amp;lt;br&amp;gt;remember that item combos might not work if you change stats)&lt;br /&gt;
* '''StoryItem:''' check this flag if this is a story item&lt;br /&gt;
* '''TreasureLevel:''' set to a specific level to force a level, zero to get from area, -1 to get from level trigger&lt;br /&gt;
* '''UsePartyLevelForTreasureLevel:''' check this box if you want the party level to determine the level of treasure this particular container generates&lt;br /&gt;
* '''OnUseActions:''' for story scripting purposes, this can trigger extra uses, but its default uses should be taken into account carefully;&amp;lt;br&amp;gt;the designer should take into account that the default scripts on the root may often change or get fixed and that an override will then not be inherited as soon as this part is changed, so use with caution and don’t forget about player expectation&lt;br /&gt;
* '''Scale:''' don’t exaggerate with scaling. This means: don’t turn a ten foot statue into a six inch figurine. And don’t scale a needle up to a sword.&lt;br /&gt;
* '''Tags:''' sometimes, a local’s tags can change&lt;br /&gt;
* '''VisualSet:''' data can be changed&lt;br /&gt;
* '''Equipment:''' a local can wear different weapons than its root&lt;br /&gt;
* '''IsHardcoreOnly:''' a local can be added for HC only&lt;br /&gt;
* '''Skills:''' a local can have different skills than its root&lt;br /&gt;
&lt;br /&gt;
= The parable of the 3 designers =&lt;br /&gt;
&amp;lt;p&amp;gt;3 designers each made a farm.&amp;lt;br&amp;gt;&lt;br /&gt;
When inspecting, the lead designer says to all 3 of them: “I want to see a rooster here among the chickens.”&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Designer 1 clicks one local chicken, changes the name to “Rooster” and calls it a day.&lt;br /&gt;
* Designer 2 clicks a local chicken, changes the name to “Cock”, sets the treasure to Empty, sets the stats to FTJ_Magister_Soldier cause he thinks it should be stronger than a chicken, and requests an icon and a visual for a cock.&lt;br /&gt;
* Designer 3 opens his Roots panel, right-clicks the root ANIMAL_Chicken and selects “Create new from selected…” and gives it the name “ANIMAL_Rooster”.&amp;lt;br&amp;gt;He gives the root a displayname, sets the treasure to Empty, and puts one instance of the root ANIMAL_Rooster near his chickens and requests an icon and a visual for a rooster.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;There are now 3 different roosters in the game.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The third designer’s root gets filled in by art, sound designers made it cock-a-doodle, and someone makes a treasure for the rooster and specific stats.&amp;lt;br&amp;gt;&lt;br /&gt;
The combat designer changes the behaviour of the root of the rooster: it doesn’t flee but has powerful attacks with its claws and beak.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Everyone’s forgotten about the local overrides. Designer 1’s rooster is still laying eggs if you kill it and is now just a white chicken called “Rooster”.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Designer 2’s rooster never got the icon or the visual, cause the art department thinks they filled his request by completing the root.&amp;lt;br&amp;gt;&lt;br /&gt;
Designer 2’s “cock” is also being mistranslated by a lot of loca companies and it’s taken hours to figure out where the dirty word is coming from cause the root has the name “Rooster”.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The game is now illegal in Australia.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Why changing locals is not “a quick hack” =&lt;br /&gt;
&amp;lt;p&amp;gt;The argument is often made that to quickly fix something or hack something, or get something ready quick, you “do it to the local”.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is wrong in a lot of cases.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;First and foremost, creating a new root for your specific item is only 2 clicks away.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Second of all, if you are trying to fix a local while you should have fixed the root,&amp;lt;br&amp;gt;&lt;br /&gt;
you went through more trouble loading the level and finding the local, than fixing the root, which would have been the correct solution.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Third, by “hacking the local”, you are &lt;br /&gt;
* Creating unexpected behaviour &lt;br /&gt;
* Creating inconsistent behaviour &lt;br /&gt;
* Possibly removing expected behaviour&lt;br /&gt;
* Possibly no longer inheriting future updates and fixes to the root&lt;br /&gt;
* Not updating the other locals that may need the same treatment you are giving this local (you should be doing it in the root)&lt;br /&gt;
* Possibly creating a standalone version of something that is now untraceable (needs an icon but it’s hiding away between thousands of other tiny local items)&lt;br /&gt;
* Causing bugs that are hard to find and fix because “the root works”&lt;br /&gt;
* Causing skeletons that drop out of the closet at the end of the project and wasting time that could have been spent on polish instead of fixing “quick” hacks&lt;br /&gt;
&lt;br /&gt;
= Real life examples of what people did wrong and why it was wrong =&lt;br /&gt;
=== The jar story ===&lt;br /&gt;
&amp;lt;p&amp;gt;You get a ticket about the name of a jar being wrong. There is nothing special about the jar. It is not a quest item or puzzle item.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Correct''' || '''Wrong'''&lt;br /&gt;
|-&lt;br /&gt;
| You look for the root template of the jar and you fix the name of the root. || You go to the location of the jar in the ticket.&amp;lt;br&amp;gt;You fix the name of the local.&lt;br /&gt;
|-&lt;br /&gt;
| '''Why correct?''' || '''Why wrong?'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;You just fixed not just this one jar, but all 473 jars in one go.&amp;lt;br&amp;gt;&lt;br /&gt;
Future jars will also have the correct name&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;You fixed only 1 instance of the jar. There are 472 other jars.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You could fix all 472 other jars if you have a lot of time. But you don’t.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Even if you did fix all 472 jars, 23 of them are checked out by someone else and 34 are being added at this moment and 78 will be added between now and next year. How will you fix those?&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When the name of the root gets fixed or updated, your jar name remains in the game and you have made a unique jar.&amp;lt;br&amp;gt;&lt;br /&gt;
It will not stack with other jars. It will stand out and the player will think it is special.&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;“I was told to unstub the name of these jars.” Yes. But not these particular jars, you are taking it too literally.&amp;lt;br&amp;gt;&lt;br /&gt;
You were told to unstub all jars of this type in the entire game. So you do it in the root.&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== The book story ===&lt;br /&gt;
&amp;lt;p&amp;gt;You have a library full of books. You think there are too many books there, and too many of them don’t have actual content.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Correct''' || '''Wrong'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;You leave the books be and use a generic BookID&amp;lt;br&amp;gt;&lt;br /&gt;
(e.g. “You cannot read this.” or “Pages are ripped from this book so it doesn’t make a lot of sense anymore.”)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Also correct: you remove some books (careful not to touch story items) and use BookRows instead.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;You delete their onUse action.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;And you don’t want to waste the player’s time, so you turn off the flags “CanMove” and “CanPickup”.&amp;lt;br&amp;gt;&lt;br /&gt;
You think they’re only decoration.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''Why correct?''' || '''Why wrong?'''&lt;br /&gt;
|-&lt;br /&gt;
| You are keeping the game consistent.&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Killing player expectation: you should never make a moveable item non-moveable.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Killing player expectation: you should never make an interactable item non-interactable.&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== The small statuette story ===&lt;br /&gt;
&amp;lt;p&amp;gt;Your job is to decorate the museum.&amp;lt;br&amp;gt;&lt;br /&gt;
You think you’re short on decoration items so you decide to start using those big statues that are all over the game.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Correct''' || '''Wrong'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;You select the root of a statue, right click it, you choose “Create new from selected…” and you make a new root.&amp;lt;br&amp;gt;&lt;br /&gt;
You give it the same name but append _Tiny&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You set the Scaling of the new root to 5%.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Yet grab your new root and put it on a shelf.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You tell a lead you made a new root and that it needs checking (stats, flags, visual, AI bounds…).&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
You grab a statue and put it on a shelf, you resize it to 5% and check it in thinking “I’m done, I am so smart.”&lt;br /&gt;
|-&lt;br /&gt;
| '''Why correct?''' || '''Why wrong?'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;All people responsible will now update your root.&amp;lt;br&amp;gt;&lt;br /&gt;
Doing so will result in all current and future instances of the little statue to be correct.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;They will all get stats, moveable and pickupable flags, AI bounds, and a visual made for that small size.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;The statue can not be moved or picked up. There is no specific root for this statue, so nobody will ever know.&amp;lt;br&amp;gt;&lt;br /&gt;
You could start overriding this local, but then you are creating a very specific statue.&amp;lt;br&amp;gt;&lt;br /&gt;
If someone else is doing the same thing in another spot in the game, you are both creating inconsistency.&amp;lt;br&amp;gt;&lt;br /&gt;
By doing it to a local, you are hiding the problem.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the root of this statue would get a certain update (for instance, all these statues are now a waypoint shrine),&amp;lt;br&amp;gt;&lt;br /&gt;
your statue will inherit behaviour it was not intended to inherit.&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Templates_explanation&amp;diff=304</id>
		<title>Templates explanation</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Templates_explanation&amp;diff=304"/>
		<updated>2017-08-01T12:44:20Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Root template =&lt;br /&gt;
&amp;lt;p&amp;gt;Root templates are the '''building blocks''' of our game. A root template can be an item, a character, a trigger, etc.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A root template '''describes''' a game object. It contains the '''data''' of a thing necessary to put that thing in the game.&lt;br /&gt;
&amp;lt;br&amp;gt;(For instance: its visual, the physics, the AI bounds, name, stats, scripts, etc. All these properties describe and make up the game object.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A root template is set up so that it defines the default visual and default behaviour of the game object. This means that a root template '''contains important gameplay''' information.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For our interactive, reactive, systemic game to work correctly, we need roots and they must be carefully set up.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Rootsarmy.jpg|frame|Army Men game has 2 roots: ArmyMan and Tank. Thanks art team!|none]]&lt;br /&gt;
&lt;br /&gt;
= Local instances/templates =&lt;br /&gt;
&amp;lt;p&amp;gt;You never really place a root in the game. You place a '''reference''' to the root in the game.&amp;lt;br&amp;gt;&lt;br /&gt;
Roots really exist on another plane outside of the game.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The game merely contains '''links''' to the root. When you drag a root into the game, it creates a local instance (also called local template) of the root at that spot. You could say local instances are '''children''' of their parent (the root).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Localsarmy.jpg|frame|Army Men game has 2 local instances in-game that refer to the root ArmyMan.|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A local instance can live without data. It '''just refers''' to the root and it will get its data there.&amp;lt;br&amp;gt;&lt;br /&gt;
However, if the root is deleted, the link is broken and the local instance will no longer be able to show anything. (This is why you get errors if roots are deleted and they’re used by local instances.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Inheritance =&lt;br /&gt;
&amp;lt;p&amp;gt;If you are an artist, think of a root template as a '''magical mold''' or a magical pattern: when you update the mold, everything you ever made with it updates too!&amp;lt;br&amp;gt;&lt;br /&gt;
If you are a programmer, think of a root template as a '''class'''.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Every time a root template is updated, all its '''local instances inherit the updates automatically'''.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p&amp;gt;'''“Green?! NO! All ArmyMan must be red!” The Root ArmyMan was updated with the colour RED. All its instances in the game everywhere inherit the colour automatically.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''(NOTE: This is just an example of a property. Colour works differently in our game.)'''&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Whew. What a relief. I thought we would have to update all local instances everywhere in the entire game. Thank you root system!&lt;br /&gt;
&lt;br /&gt;
[[File:Colorsarmy.jpg|frame|none]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
* If an artist finally gives the root an icon, all the local instances in the game inherit the root. This means that you can close 248 bugs about “vase has no icon” by updating 1 root, and it means that you just gave 3400 vases an icon with 1 click.&lt;br /&gt;
* If a designer finally creates an item combo for the root, you can perform the item combo with all local instances of that root. By updating 1 root, you can close 134 bugs about “cup plus barrel gives no mug of beer”, and it means that you just gave 4200 mugs the ability to become a mug of beer.&lt;br /&gt;
* If a writer finally finds the time to write a kickass description for this special bottle of wine, and she writes it on the root template, she can close the 124 tickets about the 879 bottles in the game not having a description. If we would not have roots and their magical inheritance, we would have to copy paste that description 879 times.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;All hail roots.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Consistency and player expectations =&lt;br /&gt;
By using roots, we also ensure consistent behaviour of the items in our world.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
* Every barrel of oil explodes because every barrel of oil in our game gets that piece of information from its root template.&lt;br /&gt;
* You can drink every bottle of wine in the game, because its root refers to wine stats and has the consume action.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The '''player''' of our game has certain '''expectations'''. &lt;br /&gt;
Things '''do''' what they look like they do in real life: &lt;br /&gt;
* you can read a book, &lt;br /&gt;
* you can drink wine, &lt;br /&gt;
* you can eat bread, &lt;br /&gt;
* you can cook meat, &lt;br /&gt;
* you can climb stairs, &lt;br /&gt;
* you can open a cupboard, &lt;br /&gt;
* you can open a door, &lt;br /&gt;
* you can open that hatch, &lt;br /&gt;
* you can open a can of whoop ass, &lt;br /&gt;
* you can wear a helmet, &lt;br /&gt;
* you can put on shoes, &lt;br /&gt;
* you can use that weapon on the wall, &lt;br /&gt;
* that shield is not just decoration, &lt;br /&gt;
* you can wield that broom as a weapon, &lt;br /&gt;
* you can look in that mirror, &lt;br /&gt;
* you can cook something in the oven, &lt;br /&gt;
* you can lie in a bed, &lt;br /&gt;
* you can sit on a chair,&lt;br /&gt;
* you can climb a ladder,&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
* You can '''move''' everything that is not too heavy and not nailed down.&lt;br /&gt;
* You can '''pick up''' anything that looks like it can fit in a backpack. (Exceptions: barrels, crates, chests, baskets, a lot of weapons and armour.)&lt;br /&gt;
* You can '''interact''' with things that you expect to be interactive and see an animation (turn on a lamp, pull a lever) or hear a funny remark (click on a gravestone) or you can do an item combo with it (an anvil, an oven).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To live up to these expectations, we '''set up the roots correctly''', and as a result, all its instances inherit the settings and everything works as it should. If one item in the game behaves differently, it is experienced as a bug and it’s not the way this game was designed.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= What is wrong =&lt;br /&gt;
&amp;lt;p&amp;gt;If you turn off or change this expected, standard behaviour on a local instance, that is wrong in 99% of the cases: it is no longer consistent with the other items of this type and confuses the player. It’s a bug, it’s an inconsistency.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;What is even worse is to set up such behaviour on a local instance. Doing this is wrong in 99% of the cases: it then only works on that local and not on the rest of its brothers and sisters. This is not consistent and you are not using the power of the root system.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''“Green?! NO! All ArmyMan must be red!” The WRONG way to do this is to go over every local instance and override their colours. This is wrong because:'''&lt;br /&gt;
* You forgot a couple in that other level. You introduced bugs.&lt;br /&gt;
* The other guy who is using ArmyMan did not get the memo and is not doing it to his locals. Bugs.&lt;br /&gt;
* All future instances of ArmyMan will still be green because its root is still green.&lt;br /&gt;
* The player will then start seeing green and red army men and will be confused. Bugs.&lt;br /&gt;
* Any updates on the colour of the root will not be inherited because the colour was overridden and some other poor sod will have to find out why fixing the root doesn’t update all instances in the game.&lt;br /&gt;
* All this could have been avoided by updating the root.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[File:Wrongarmy.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Warningred.png|left|30px]]If you find yourself constantly overriding the same things on all the locals of one root, you are probably doing it wrong and you should just ''fix'' the root and not try to fix all instances one by one.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Overrides on local instances =&lt;br /&gt;
&amp;lt;p&amp;gt;A designer or an artist building the world '''can''' override properties of game objects. Because '''sometimes''', there are '''exceptions''' and then overriding a property is a powerful tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ingamearmy.jpg|frame|none|“This very specific ArmyMan01 must always be green no matter what colour ArmyMan Root has. ArmyMan01 is really special.” In this case, we can override the colour property with green. The rest of the properties are still automatically inherited.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;But one must always be careful, because overriding properties can be a cause of bugs too.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
When is it a good idea to override properties on a local? For instance, you want a certain painting to react differently to a click than usual, because it is part of a quest: you can talk to this particular painting!&amp;lt;br&amp;gt;&lt;br /&gt;
Or this hand placed weapon belonged to the duke and has a special name and needs unique stats. Or, this chest is locked with a key. This particular door is possessed and you have to talk to it instead of open it.&amp;lt;br&amp;gt;&lt;br /&gt;
This water well is not just a water well, if you do the right things to it, it becomes a wishing well! And so forth.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Sometimes, overrides on local instances are perfectly possible and encouraged. But as soon as you are changing systemics, think about what you’re doing.&amp;lt;br&amp;gt;&lt;br /&gt;
And as soon as you find yourself doing the same thing over and over again to the same locals, think about what you’re doing.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Overrides mean: no more updates from root =&lt;br /&gt;
&amp;lt;p&amp;gt;However, as a designer or artist, you must know that '''a property of a local that gets an override no longer inherits from its root'''.&amp;lt;br&amp;gt;&lt;br /&gt;
This is only logical, because it is an override. Even if the root is updated, the local instance’s property is still overridden.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Purplearmy.jpg|frame|none|“Red is out, we should make our ArmyMan purple in the entire game. For Prince!” We set the root’s colour property with purple. However, all instances that have an override on colour do not inherit this, and that may be fine if that’s what you wanted.]]&lt;br /&gt;
&lt;br /&gt;
= Perfectly normal overrides =&lt;br /&gt;
&amp;lt;p&amp;gt;There are cases in which it can be perfectly normal to use the override functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
The following properties can be overridden '''in the following cases''':&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''DisplayName:''' if you want to give this particular local a specific name. &lt;br /&gt;
** Pitfall: if you find yourself selecting and renaming an entire group of similar item locals or character locals, you probably want to:&lt;br /&gt;
*:: a) fix the root’s name&lt;br /&gt;
*:: b) create a new root&lt;br /&gt;
** ...because you are probably creating a certain new type that warrants a root&lt;br /&gt;
* '''Alignment:''' for specifying for instance more regional alignments to NPCs&lt;br /&gt;
* '''IsBoss:''' for specifying that this particular local is a boss character&lt;br /&gt;
* '''IsInspector:''' if you want to turn specific items or characters that are usually not inspectors into an inspector &lt;br /&gt;
** A trap item should have this on root level, or you will find yourself turning this on constantly for all trap locals&lt;br /&gt;
** Other than traps, this may be necessary on some locals in some circumstances&lt;br /&gt;
* '''ActivationGroupId:''' If you want to group locals to start together (this is never set on root because it is so local-specific)&lt;br /&gt;
* '''Amount:''' if you want to put an item in the world and make it a stack &lt;br /&gt;
** e.g. gold or arrows&lt;br /&gt;
** it also works on potato but the visual doesn’t change&lt;br /&gt;
* '''Description:''' if you want to give this particular local a specific description.&lt;br /&gt;
** Pitfall: example. You see a healing potion in the game. It has no description. You click on the local instance of the potion and you fill in the description.&amp;lt;br&amp;gt;This is '''wrong'''. You are only making a description for that one particular healing potion. If you want all healing potions in the game to have that description, you must fix the root.&amp;lt;br&amp;gt;If you fill in a description in the root, all healing potions in the game will have the description. Use this field only to override an existing root description for a particular and specific local.&lt;br /&gt;
** Pitfall: example. You see a painting in the game. It has no description. You click on seven local instances of the painting and you fill in the description.&amp;lt;br&amp;gt;This is '''wrong'''. Someone somewhere else uses the same painting root. This will not have the description you filled in because you didn’t fill it in on the root.&amp;lt;br&amp;gt;Someone else fills in a proper description on the root. Your seven instances will not inherit it because you made the error of filling in a description on the local instances.&lt;br /&gt;
* '''Icon:''' if you have a really specific icon for this particular local version (e.g. because it is a special NPC or a unique item)&lt;br /&gt;
* '''Treasure / Inventory:''' if you want to give this particular instance of the item or character a specific treasure table&lt;br /&gt;
** Pitfall: if you find yourself doing this to the local because the root has no treasure filled in, are you sure the root doesn’t need a default treasure?&lt;br /&gt;
* '''Trade Treasure :''' if you want to give this particular copy of the character a specific trade table&lt;br /&gt;
* '''Items:''' usually not set on a root, this enables you to put things in an item or in a character’s pockets&lt;br /&gt;
* '''LevelOverride:''' can be set to a specific level, zero to take level of stats, or -1 to take level trigger&lt;br /&gt;
* '''LockLevel:''' to change lockpicking requirements for this specific container&lt;br /&gt;
* '''Stats:''' to change to more specific stats (more common override for characters and weapons and armour, most other items only get an override for special cases like quest objects;&amp;lt;br&amp;gt;remember that item combos might not work if you change stats)&lt;br /&gt;
* '''StoryItem:''' check this flag if this is a story item&lt;br /&gt;
* '''TreasureLevel:''' set to a specific level to force a level, zero to get from area, -1 to get from level trigger&lt;br /&gt;
* '''UsePartyLevelForTreasureLevel:''' check this box if you want the party level to determine the level of treasure this particular container generates&lt;br /&gt;
* '''OnUseActions:''' for story scripting purposes, this can trigger extra uses, but its default uses should be taken into account carefully;&amp;lt;br&amp;gt;the designer should take into account that the default scripts on the root may often change or get fixed and that an override will then not be inherited as soon as this part is changed, so use with caution and don’t forget about player expectation&lt;br /&gt;
* '''Scale:''' don’t exaggerate with scaling. This means: don’t turn a ten foot statue into a six inch figurine. And don’t scale a needle up to a sword.&lt;br /&gt;
* '''Tags:''' sometimes, a local’s tags can change&lt;br /&gt;
* '''VisualSet:''' data can be changed&lt;br /&gt;
* '''Equipment:''' a local can wear different weapons than its root&lt;br /&gt;
* '''IsHardcoreOnly:''' a local can be added for HC only&lt;br /&gt;
* '''Skills:''' a local can have different skills than its root&lt;br /&gt;
&lt;br /&gt;
= The parable of the 3 designers =&lt;br /&gt;
&amp;lt;p&amp;gt;3 designers each made a farm.&amp;lt;br&amp;gt;&lt;br /&gt;
When inspecting, the lead designer says to all 3 of them: “I want to see a rooster here among the chickens.”&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Designer 1 clicks one local chicken, changes the name to “Rooster” and calls it a day.&lt;br /&gt;
* Designer 2 clicks a local chicken, changes the name to “Cock”, sets the treasure to Empty, sets the stats to FTJ_Magister_Soldier cause he thinks it should be stronger than a chicken, and requests an icon and a visual for a cock.&lt;br /&gt;
* Designer 3 opens his Roots panel, right-clicks the root ANIMAL_Chicken and selects “Create new from selected…” and gives it the name “ANIMAL_Rooster”.&amp;lt;br&amp;gt;He gives the root a displayname, sets the treasure to Empty, and puts one instance of the root ANIMAL_Rooster near his chickens and requests an icon and a visual for a rooster.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;There are now 3 different roosters in the game.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The third designer’s root gets filled in by art, sound designers made it cock-a-doodle, and someone makes a treasure for the rooster and specific stats.&amp;lt;br&amp;gt;&lt;br /&gt;
The combat designer changes the behaviour of the root of the rooster: it doesn’t flee but has powerful attacks with its claws and beak.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Everyone’s forgotten about the local overrides. Designer 1’s rooster is still laying eggs if you kill it and is now just a white chicken called “Rooster”.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Designer 2’s rooster never got the icon or the visual, cause the art department thinks they filled his request by completing the root.&amp;lt;br&amp;gt;&lt;br /&gt;
Designer 2’s “cock” is also being mistranslated by a lot of loca companies and it’s taken hours to figure out where the dirty word is coming from cause the root has the name “Rooster”.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The game is now illegal in Australia.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Why changing locals is not “a quick hack” =&lt;br /&gt;
&amp;lt;p&amp;gt;The argument is often made that to quickly fix something or hack something, or get something ready quick, you “do it to the local”.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is wrong in a lot of cases.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;First and foremost, creating a new root for your specific item is only 2 clicks away.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Second of all, if you are trying to fix a local while you should have fixed the root,&amp;lt;br&amp;gt;&lt;br /&gt;
you went through more trouble loading the level and finding the local, than fixing the root, which would have been the correct solution.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Third, by “hacking the local”, you are &lt;br /&gt;
* Creating unexpected behaviour &lt;br /&gt;
* Creating inconsistent behaviour &lt;br /&gt;
* Possibly removing expected behaviour&lt;br /&gt;
* Possibly no longer inheriting future updates and fixes to the root&lt;br /&gt;
* Not updating the other locals that may need the same treatment you are giving this local (you should be doing it in the root)&lt;br /&gt;
* Possibly creating a standalone version of something that is now untraceable (needs an icon but it’s hiding away between thousands of other tiny local items)&lt;br /&gt;
* Causing bugs that are hard to find and fix because “the root works”&lt;br /&gt;
* Causing skeletons that drop out of the closet at the end of the project and wasting time that could have been spent on polish instead of fixing “quick” hacks&lt;br /&gt;
&lt;br /&gt;
= Real life examples of what people did wrong and why it was wrong =&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=File:Purplearmy.jpg&amp;diff=300</id>
		<title>File:Purplearmy.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=File:Purplearmy.jpg&amp;diff=300"/>
		<updated>2017-08-01T12:26:33Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Templates_explanation&amp;diff=299</id>
		<title>Templates explanation</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Templates_explanation&amp;diff=299"/>
		<updated>2017-08-01T12:23:07Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Root template =&lt;br /&gt;
&amp;lt;p&amp;gt;Root templates are the '''building blocks''' of our game. A root template can be an item, a character, a trigger, etc.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A root template '''describes''' a game object. It contains the '''data''' of a thing necessary to put that thing in the game.&lt;br /&gt;
&amp;lt;br&amp;gt;(For instance: its visual, the physics, the AI bounds, name, stats, scripts, etc. All these properties describe and make up the game object.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A root template is set up so that it defines the default visual and default behaviour of the game object. This means that a root template '''contains important gameplay''' information.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For our interactive, reactive, systemic game to work correctly, we need roots and they must be carefully set up.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Rootsarmy.jpg|frame|Army Men game has 2 roots: ArmyMan and Tank. Thanks art team!|none]]&lt;br /&gt;
&lt;br /&gt;
= Local instances/templates =&lt;br /&gt;
&amp;lt;p&amp;gt;You never really place a root in the game. You place a '''reference''' to the root in the game.&amp;lt;br&amp;gt;&lt;br /&gt;
Roots really exist on another plane outside of the game.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The game merely contains '''links''' to the root. When you drag a root into the game, it creates a local instance (also called local template) of the root at that spot. You could say local instances are '''children''' of their parent (the root).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Localsarmy.jpg|frame|Army Men game has 2 local instances in-game that refer to the root ArmyMan.|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A local instance can live without data. It '''just refers''' to the root and it will get its data there.&amp;lt;br&amp;gt;&lt;br /&gt;
However, if the root is deleted, the link is broken and the local instance will no longer be able to show anything. (This is why you get errors if roots are deleted and they’re used by local instances.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Inheritance =&lt;br /&gt;
&amp;lt;p&amp;gt;If you are an artist, think of a root template as a '''magical mold''' or a magical pattern: when you update the mold, everything you ever made with it updates too!&amp;lt;br&amp;gt;&lt;br /&gt;
If you are a programmer, think of a root template as a '''class'''.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Every time a root template is updated, all its '''local instances inherit the updates automatically'''.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p&amp;gt;'''“Green?! NO! All ArmyMan must be red!” The Root ArmyMan was updated with the colour RED. All its instances in the game everywhere inherit the colour automatically.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''(NOTE: This is just an example of a property. Colour works differently in our game.)'''&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Whew. What a relief. I thought we would have to update all local instances everywhere in the entire game. Thank you root system!&lt;br /&gt;
&lt;br /&gt;
[[File:Colorsarmy.jpg|frame|none]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
* If an artist finally gives the root an icon, all the local instances in the game inherit the root. This means that you can close 248 bugs about “vase has no icon” by updating 1 root, and it means that you just gave 3400 vases an icon with 1 click.&lt;br /&gt;
* If a designer finally creates an item combo for the root, you can perform the item combo with all local instances of that root. By updating 1 root, you can close 134 bugs about “cup plus barrel gives no mug of beer”, and it means that you just gave 4200 mugs the ability to become a mug of beer.&lt;br /&gt;
* If a writer finally finds the time to write a kickass description for this special bottle of wine, and she writes it on the root template, she can close the 124 tickets about the 879 bottles in the game not having a description. If we would not have roots and their magical inheritance, we would have to copy paste that description 879 times.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;All hail roots.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Consistency and player expectations =&lt;br /&gt;
By using roots, we also ensure consistent behaviour of the items in our world.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
* Every barrel of oil explodes because every barrel of oil in our game gets that piece of information from its root template.&lt;br /&gt;
* You can drink every bottle of wine in the game, because its root refers to wine stats and has the consume action.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The '''player''' of our game has certain '''expectations'''. &lt;br /&gt;
Things '''do''' what they look like they do in real life: &lt;br /&gt;
* you can read a book, &lt;br /&gt;
* you can drink wine, &lt;br /&gt;
* you can eat bread, &lt;br /&gt;
* you can cook meat, &lt;br /&gt;
* you can climb stairs, &lt;br /&gt;
* you can open a cupboard, &lt;br /&gt;
* you can open a door, &lt;br /&gt;
* you can open that hatch, &lt;br /&gt;
* you can open a can of whoop ass, &lt;br /&gt;
* you can wear a helmet, &lt;br /&gt;
* you can put on shoes, &lt;br /&gt;
* you can use that weapon on the wall, &lt;br /&gt;
* that shield is not just decoration, &lt;br /&gt;
* you can wield that broom as a weapon, &lt;br /&gt;
* you can look in that mirror, &lt;br /&gt;
* you can cook something in the oven, &lt;br /&gt;
* you can lie in a bed, &lt;br /&gt;
* you can sit on a chair,&lt;br /&gt;
* you can climb a ladder,&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
* You can '''move''' everything that is not too heavy and not nailed down.&lt;br /&gt;
* You can '''pick up''' anything that looks like it can fit in a backpack. (Exceptions: barrels, crates, chests, baskets, a lot of weapons and armour.)&lt;br /&gt;
* You can '''interact''' with things that you expect to be interactive and see an animation (turn on a lamp, pull a lever) or hear a funny remark (click on a gravestone) or you can do an item combo with it (an anvil, an oven).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To live up to these expectations, we '''set up the roots correctly''', and as a result, all its instances inherit the settings and everything works as it should. If one item in the game behaves differently, it is experienced as a bug and it’s not the way this game was designed.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= What is wrong =&lt;br /&gt;
&amp;lt;p&amp;gt;If you turn off or change this expected, standard behaviour on a local instance, that is wrong in 99% of the cases: it is no longer consistent with the other items of this type and confuses the player. It’s a bug, it’s an inconsistency.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;What is even worse is to set up such behaviour on a local instance. Doing this is wrong in 99% of the cases: it then only works on that local and not on the rest of its brothers and sisters. This is not consistent and you are not using the power of the root system.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''“Green?! NO! All ArmyMan must be red!” The WRONG way to do this is to go over every local instance and override their colours. This is wrong because:'''&lt;br /&gt;
* You forgot a couple in that other level. You introduced bugs.&lt;br /&gt;
* The other guy who is using ArmyMan did not get the memo and is not doing it to his locals. Bugs.&lt;br /&gt;
* All future instances of ArmyMan will still be green because its root is still green.&lt;br /&gt;
* The player will then start seeing green and red army men and will be confused. Bugs.&lt;br /&gt;
* Any updates on the colour of the root will not be inherited because the colour was overridden and some other poor sod will have to find out why fixing the root doesn’t update all instances in the game.&lt;br /&gt;
* All this could have been avoided by updating the root.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[File:Wrongarmy.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Warningred.png|left|30px]]If you find yourself constantly overriding the same things on all the locals of one root, you are probably doing it wrong and you should just ''fix'' the root and not try to fix all instances one by one.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Overrides on local instances =&lt;br /&gt;
&amp;lt;p&amp;gt;A designer or an artist building the world '''can''' override properties of game objects. Because '''sometimes''', there are '''exceptions''' and then overriding a property is a powerful tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ingamearmy.jpg|frame|none|“This very specific ArmyMan01 must always be green no matter what colour ArmyMan Root has. ArmyMan01 is really special.” In this case, we can override the colour property with green. The rest of the properties are still automatically inherited.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;But one must always be careful, because overriding properties can be a cause of bugs too.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;p&amp;gt;Examples:&amp;lt;br&amp;gt;&lt;br /&gt;
When is it a good idea to override properties on a local? For instance, you want a certain painting to react differently to a click than usual, because it is part of a quest: you can talk to this particular painting!&amp;lt;br&amp;gt;&lt;br /&gt;
Or this hand placed weapon belonged to the duke and has a special name and needs unique stats. Or, this chest is locked with a key. This particular door is possessed and you have to talk to it instead of open it.&amp;lt;br&amp;gt;&lt;br /&gt;
This water well is not just a water well, if you do the right things to it, it becomes a wishing well! And so forth.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Editing_guidelines&amp;diff=195</id>
		<title>Editing guidelines</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Editing_guidelines&amp;diff=195"/>
		<updated>2017-07-31T13:49:22Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General == &lt;br /&gt;
&amp;lt;p&amp;gt;If you are not familiar with MediaWiki please take a look at the help pages or google to find more info.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are unsure on how to explain something, you can always take a look at other documentation of game engines/editors for inspiration.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTML ==&lt;br /&gt;
&amp;lt;p&amp;gt;You can use html codes to properly format your pages and text. Please restrict this only to the layout.&amp;lt;br&amp;gt;&lt;br /&gt;
Do not start adding custom colors/themes etc. Users can switch to different themes on the wiki themselves and the content should therefore not specify colors.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Consistency ==&lt;br /&gt;
&amp;lt;p&amp;gt;Try to keep the wiki as consistent as possible. Look at other pages first before editing/adding your own. We don't want 50 different styles of writing and layouts.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
&amp;lt;p&amp;gt;When creating pages please keep the page name as simple and clear an possible, especially when creating pages directly from links.&amp;lt;br&amp;gt;&lt;br /&gt;
Avoid long and unnecessary complex page names.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;BAD:&lt;br /&gt;
* [[Change skill, crafting and item requirements; and talent requirements]]&lt;br /&gt;
-&amp;gt; http://docs.larian.game/index.php/Change_skill,_crafting_and_item_requirements;_and_talent_requirements&lt;br /&gt;
&lt;br /&gt;
GOOD:&lt;br /&gt;
* [[Stats requirements|Change skill, crafting and item requirements; and talent requirements]]&lt;br /&gt;
-&amp;gt; http://docs.larian.game/index.php/Stats_requirements&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see pages with full sentences as names feel free to delete these and move the contents to a better suited page name.&lt;br /&gt;
&lt;br /&gt;
== Handy links ==&lt;br /&gt;
==== MediaWiki editing ====&lt;br /&gt;
* https://www.mediawiki.org/wiki/Help:Editing&lt;br /&gt;
==== Other engines ====&lt;br /&gt;
* https://developer.valvesoftware.com/wiki/Category:Modding&lt;br /&gt;
* https://docs.unrealengine.com/latest/INT/Engine/Basics/Projects/Browser/index.html&lt;br /&gt;
* https://docs.unity3d.com/Manual/UsingTheInspector.html&lt;br /&gt;
==== Tools ====&lt;br /&gt;
* http://getgreenshot.org/&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Technical_documentation&amp;diff=194</id>
		<title>Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Technical_documentation&amp;diff=194"/>
		<updated>2017-07-31T13:48:07Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Systems ==&lt;br /&gt;
* [[Templates explanation|Root and local templates, how do they work?]]&lt;br /&gt;
* [[AI grid|AI grid: surfaces, walkables, ...]]&lt;br /&gt;
* [[Scripting|Scripting]]&lt;br /&gt;
* [[Osiris|Osiris: story scripting]]&lt;br /&gt;
* [[Modding internals]]&lt;br /&gt;
&lt;br /&gt;
== Panels ==&lt;br /&gt;
* [[Root template panel]]&lt;br /&gt;
* [[World outliner]]&lt;br /&gt;
* [[Sidebar]]&lt;br /&gt;
* [[AI grid panel]]&lt;br /&gt;
&lt;br /&gt;
== Editors ==&lt;br /&gt;
* [[Material editor]]&lt;br /&gt;
* [[Stats editor]]&lt;br /&gt;
* [[Story editor]]&lt;br /&gt;
* [[Script editor]]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [[Project browser]]&lt;br /&gt;
* [[Main toolbar]]&lt;br /&gt;
* [[Osiris API Tips]]&lt;br /&gt;
&lt;br /&gt;
== Console ==&lt;br /&gt;
* [[Command list]]&lt;br /&gt;
* [[ReCon|ReCon: remote console]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Root_template_panel&amp;diff=193</id>
		<title>Root template panel</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Root_template_panel&amp;diff=193"/>
		<updated>2017-07-31T13:44:48Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Roottemplatepanel-overview.png]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;p&amp;gt;The root template panel provides an overview of all the root templates in the loaded active mod and it's loaded dependencies.&amp;lt;br&amp;gt;&lt;br /&gt;
You can use this panel to create new root templates. You can also use existing ones and create local template instances of them in a level.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|More info on how templates work can be found here: [[Templates explanation]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Toolbar ==&lt;br /&gt;
[[File:Roottemplatepanel-toolbar.png]]&lt;br /&gt;
&lt;br /&gt;
#Save/load&lt;br /&gt;
#Create new&lt;br /&gt;
#Track selection&lt;br /&gt;
#Show/hide only current project entries&lt;br /&gt;
#Sidebar&lt;br /&gt;
#Text filter&lt;br /&gt;
#Type filter&lt;br /&gt;
#Help button&lt;br /&gt;
&lt;br /&gt;
== Filters ==&lt;br /&gt;
[[File:Roottemplatepanel-filters.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Entries can be dragged in to a filter folder to organize them and provide a better overview of the root templates.&amp;lt;br&amp;gt;&lt;br /&gt;
New filters can be created via the context menu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entries ==&lt;br /&gt;
[[File:Roottemplatepanel-entries.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This simply shows all the entries according to the active filters.&amp;lt;br&amp;gt;&lt;br /&gt;
Blue entries are the ones that reside in the current (active) mod.&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
	<entry>
		<id>https://docs.larian.game/index.php?title=Root_template_panel&amp;diff=192</id>
		<title>Root template panel</title>
		<link rel="alternate" type="text/html" href="https://docs.larian.game/index.php?title=Root_template_panel&amp;diff=192"/>
		<updated>2017-07-31T13:42:33Z</updated>

		<summary type="html">&lt;p&gt;LarSeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Roottemplatepanel-overview.png]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;p&amp;gt;The root template panel provides an overview of all the root templates in the loaded active mod and it's loaded dependencies.&amp;lt;br&amp;gt;&lt;br /&gt;
You can use this panel to create new root templates. You can also use existing ones and create local template instances of them in a level.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|More info on how templates work can be found here: [[Templates explanation]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Toolbar ==&lt;br /&gt;
[[File:Roottemplatepanel-toolbar.png]]&lt;br /&gt;
&lt;br /&gt;
#Save/load&lt;br /&gt;
#Create new&lt;br /&gt;
#Track selection&lt;br /&gt;
#Show/hide only current project entries&lt;br /&gt;
#Sidebar&lt;br /&gt;
#Text filter&lt;br /&gt;
#Type filter&lt;br /&gt;
#Help button&lt;br /&gt;
&lt;br /&gt;
== Filters ==&lt;br /&gt;
[[File:Roottemplatepanel-filters.png]]&lt;br /&gt;
&lt;br /&gt;
== Entries ==&lt;br /&gt;
[[File:Roottemplatepanel-entries.png]]&lt;/div&gt;</summary>
		<author><name>LarSeb</name></author>
	</entry>
</feed>