<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.oni2.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Loser</id>
	<title>OniGalore - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.oni2.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Loser"/>
	<link rel="alternate" type="text/html" href="https://wiki.oni2.net/Special:Contributions/Loser"/>
	<updated>2026-04-24T09:33:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML_talk:BINA/OBJC/TRGV&amp;diff=29293</id>
		<title>XML talk:BINA/OBJC/TRGV</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML_talk:BINA/OBJC/TRGV&amp;diff=29293"/>
		<updated>2020-05-17T18:54:31Z</updated>

		<summary type="html">&lt;p&gt;Loser: Added link to the article about BSL string comparison.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Failing string comparison==&lt;br /&gt;
There is also a bug with DOOR textures. [[XML:BINA/OBJC/DOOR#tags]]&lt;br /&gt;
&lt;br /&gt;
We could try to capitalize everything, maybe that helps. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 12:12, 14 May 2020 (CEST)&lt;br /&gt;
&lt;br /&gt;
Can someone describe the bug in more detail so I can take a look? --[[User:Geyser|geyser]] ([[User talk:Geyser|talk]]) 14:39, 14 May 2020 (CEST)&lt;br /&gt;
:Oh, OK, silly me, I should have read the TRGV page to learn about the string comparison bug. However, I don&#039;t understand how the TRGV string comparison is related to DOOR textures (DOOR textures are a permanent level setting, nothing to do with BSL - right?) --[[User:Geyser|geyser]] ([[User talk:Geyser|talk]]) 16:20, 14 May 2020 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is what s10k wrote: https://wiki.oni2.net/w/index.php?title=XML%3ABINA%2FOBJC%2FTRGV&amp;amp;type=revision&amp;amp;diff=26530&amp;amp;oldid=26524&lt;br /&gt;
&lt;br /&gt;
Basically &amp;quot;String&amp;quot; eq &amp;quot;String&amp;quot; returns false when one expression is delivered by TV and one expression delivered from a &#039;native&#039; BSL variable.&lt;br /&gt;
&lt;br /&gt;
Maybe the comparison fails because at some side (left or right) the string is made toUpper. We have seen a similar bug when the engine reads texture names.&lt;br /&gt;
&lt;br /&gt;
So the idea is that &amp;quot;STRING&amp;quot; eq &amp;quot;STRING&amp;quot; might work, just maybe. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 16:25, 14 May 2020 (CEST)&lt;br /&gt;
&lt;br /&gt;
The analogy to Doors would be that &amp;quot;String(fromCJBO)&amp;quot; eq &amp;quot;String(fromTextureFileName)&amp;quot; fails because of the bugged comparison. (The code for comparison might be used at both locations - BSL and Door.) --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 16:26, 14 May 2020 (CEST)&lt;br /&gt;
&lt;br /&gt;
To check the toUpper hypothesis, you don&#039;t need to change the game data, just test against &amp;quot;CHAR_0&amp;quot;. Another thing to do (which I did) is set &#039;&#039;&#039;testVar = ai_name&#039;&#039;&#039; (similar to what is done with &#039;&#039;&#039;my_save_point = save_point&#039;&#039;&#039; in many of Bungie&#039;s scripts). I then print &#039;&#039;&#039;testVar&#039;&#039;&#039; (it displays as &#039;&#039;&#039;char_0&#039;&#039;&#039;, both with &#039;&#039;&#039;dmsg&#039;&#039;&#039; and at the dev console, i.e., with no uppercase) and finally check &#039;&#039;&#039;testVar eq &amp;quot;char_0&amp;quot;&#039;&#039;&#039; instead of &#039;&#039;&#039;ai_name eq &amp;quot;char_0&amp;quot;&#039;&#039;&#039; (it fails). I also quick-changed &#039;&#039;&#039;char_0&#039;&#039;&#039; to &#039;&#039;&#039;KONOKO&#039;&#039;&#039; in Konoko&#039;s CHAR. And it still fails the same way: both strings display the same value &#039;&#039;&#039;KONOKO&#039;&#039;&#039;, but &#039;&#039;&#039;testVar eq &amp;quot;KONOKO&amp;quot;&#039;&#039;&#039; (or &#039;&#039;&#039;testVar eq KONOKO&#039;&#039;&#039;) evaluates to &#039;&#039;&#039;false&#039;&#039;&#039; (same as for &amp;quot;char_0&amp;quot; before the hack). However, &#039;&#039;&#039;testVar eq testVar&#039;&#039;&#039;, &#039;&#039;&#039;ai_name eq ai_name&#039;&#039;&#039; and &#039;&#039;&#039;testVar eq ai_name&#039;&#039;&#039; all evaluate to &#039;&#039;&#039;true&#039;&#039;&#039;. So I really think it&#039;s a non-printable char in the character name as sent from the runtime event (end-of-line most likely). -- [[User:Geyser|geyser]] ([[User talk:Geyser|talk]]) 19:41, 14 May 2020 (CEST)&lt;br /&gt;
&lt;br /&gt;
Is there a way / &amp;quot;geyser hack&amp;quot; to count the signs a la length(string)? :D --&#039;Dox&lt;br /&gt;
&lt;br /&gt;
You mean something to count the symbols/characters/bytes? Well, none that I know of, at least not from within Oni&#039;s game/console and scripts. Neo or the Daodan folks would be able to help, but I have never had the patience to look at Oni&#039;s ASM myself. I am pretty sure that the problem is a trailing end-of-line, though. --[[User:Geyser|geyser]] ([[User talk:Geyser|talk]]) 22:37, 14 May 2020 (CEST)&lt;br /&gt;
&lt;br /&gt;
One way to check would be to deliberately initialize a string variable with an end-of-line, and use it to check against the character name received from the TRGV event. Daodan DLL&#039;s &#039;&#039;&#039;sprintf&#039;&#039;&#039; would be the simplest way to create a string variable that includes an end-of-line. Or, if &#039;&#039;&#039;sprintf&#039;&#039;&#039; doesn&#039;t support \n for some reason, it should be possible to hex-edit a custom name for an AISA character, and then retrieve its name into a string variable using &#039;&#039;&#039;d_name&#039;&#039;&#039;. Then again, I guess it would be easy enough to implement &#039;&#039;&#039;strlen&#039;&#039;&#039;. --[[User:Geyser|geyser]] ([[User talk:Geyser|talk]]) 00:38, 15 May 2020 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hi guys,&lt;br /&gt;
I saw this page and got interested in the topic.&amp;lt;br/&amp;gt;&lt;br /&gt;
I tried to run some tests and did some runtime memory probing.&amp;lt;br/&amp;gt;&lt;br /&gt;
See [[BSL:String comparison]] for results.&amp;lt;br/&amp;gt;&lt;br /&gt;
--[[User:Loser|Loser]] ([[User talk:Loser|talk]]) 20:54, 17 May 2020 (CEST)&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:String_comparison&amp;diff=29292</id>
		<title>BSL:String comparison</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:String_comparison&amp;diff=29292"/>
		<updated>2020-05-17T18:49:08Z</updated>

		<summary type="html">&lt;p&gt;Loser: Let&amp;#039;s trample some hopes...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary of this page==&lt;br /&gt;
Even though the topic is a bit convoluted, the general information is that [[BSL]] does &#039;&#039;&#039;not&#039;&#039;&#039; reliably support string comparison.&amp;lt;br/&amp;gt;&lt;br /&gt;
It is strongly advised to &#039;&#039;&#039;not&#039;&#039;&#039; rely on string comparison in BSL scripts.&lt;br /&gt;
&lt;br /&gt;
==Topic==&lt;br /&gt;
As a lot of BSL scripters already know, BSL seemingly allows string comparison, meaning it looks like BSL should be capable of processing syntax similar to the following one:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
func void some_ai_died(string ai_name){&lt;br /&gt;
  if (ai_name eq &amp;quot;A_t48&amp;quot;) {&lt;br /&gt;
    dmsg(&amp;quot;A_t48 died!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    dmsg(&amp;quot;Some other AI died!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, string comparison appears to be a bit unreliable - sometimes it looks like it works, sometimes it does not.&amp;lt;br/&amp;gt;&lt;br /&gt;
But why? The following research is an attempt to find the answer.&lt;br /&gt;
&lt;br /&gt;
==Test setup==&lt;br /&gt;
A test was set in the 1st savepoint of the EnvWarehouse level.&lt;br /&gt;
&lt;br /&gt;
The test comprized of:&amp;lt;br/&amp;gt;&lt;br /&gt;
# A test subject (&amp;quot;A_t48&amp;quot; ai2 character) and its slightly modified death function t48_dead(string ai_name).&lt;br /&gt;
# A global BSL string variable &amp;quot;BOB_string&amp;quot;.&lt;br /&gt;
# A lot of wasted time while searching for all those damned addresses ^_^.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The test was set as follows:&lt;br /&gt;
# There is a global BSL variable &amp;quot;BOB_string&amp;quot;.&amp;lt;br/&amp;gt;Init value of the variable is a BSL string literal &amp;quot;A_t48&amp;quot;.&amp;lt;br/&amp;gt;The variable can be set via custom BSL functions to represent one of these BSL string literals: &amp;quot;A_t40&amp;quot;, &amp;quot;A_t41&amp;quot;, &amp;quot;A_t42&amp;quot;&lt;br /&gt;
# There is a BSL function &#039;&#039;t48_dead(string ai_name)&#039;&#039;.&amp;lt;br/&amp;gt;The function is called by engine when the ai2 character &amp;quot;A_t48&amp;quot; dies.&lt;br /&gt;
# Inside the BSL function t48_dead(), there is an immediate comparison of &#039;&#039;&#039;ai_name&#039;&#039;&#039; and &#039;&#039;&#039;BOB_string&#039;&#039;&#039;.&lt;br /&gt;
# After cca 5 seconds, BOB_string is set to be the same as ai_name and another comparison attempt is made.&lt;br /&gt;
&lt;br /&gt;
==Test results==&lt;br /&gt;
Please see the enclosed series of figures.&lt;br /&gt;
Figures show a relevant selection of Oni application runtime memory data.&lt;br /&gt;
&lt;br /&gt;
# Data regarding global BSL variable &#039;&#039;&#039;BOB_string&#039;&#039;&#039;.&amp;lt;br/&amp;gt;&lt;br /&gt;
#: [[Image:BSL-strcmp-01 gbStrVar-Ptr.png|256px]]  [[Image:BSL-strcmp-02 gbStrVar-PointedMemory.png|256px]]&lt;br /&gt;
# Data regarding local BSL variable &#039;&#039;&#039;ai_name&#039;&#039;&#039;.&amp;lt;br/&amp;gt;(relevant only during the execution of the t48_dead() BSL fnc)&lt;br /&gt;
#: [[Image:BSL-strcmp-03 ainame-Ptr.png|256px]]  [[Image:BSL-strcmp-04 ainame-PointedMemory.png|256px]]&lt;br /&gt;
# State of runtime memory data at the moment when BSL string &#039;comparison&#039; got evaluated for the first time (evaluated &#039;false&#039;) and for the second time (evaluated &#039;true&#039;).&lt;br /&gt;
#: [[Image:BSL-strcmp-05 comparison-false.png|256px]]  [[Image:BSL-strcmp 06 comparison-true.png|256px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
# BSL string data seems to be stored as a C-style string. No additional special characters, simply a stream of bytes till the first 0x00 byte (string terminator).&lt;br /&gt;
# If there are several various independent strings which by chance represent a same text (e.g. &amp;quot;A_t48&amp;quot;), then engine keeps separate instances of these strings (no string grouping or any similar techniques).&lt;br /&gt;
# For BSL strings, the &#039;string&#039; BSL datatype does not seem to be a string itself, but it more probably represents a &#039;&#039;&#039;pointer&#039;&#039;&#039; to the given C-style string.&lt;br /&gt;
# When BSL string &#039;comparison&#039; is attempted, it in fact most probably means that the values of pointers themselves are compared (meaning the addresses are compared), not strings themselves.&lt;br /&gt;
# Engine allocates local BSL variables and parameters of BSL functions &amp;quot;on demand&amp;quot; and utilizes a memory area which is not exclusive for BSL strings, but is generally used for various purposes.&amp;lt;br/&amp;gt;This point effectively means that address of a local BSL string (think ai_name) can differ based on what happened in the game prior to the string allocation request.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:BSL docs]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp_06_comparison-true.png&amp;diff=29290</id>
		<title>File:BSL-strcmp 06 comparison-true.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp_06_comparison-true.png&amp;diff=29290"/>
		<updated>2020-05-17T17:39:10Z</updated>

		<summary type="html">&lt;p&gt;Loser: Documentation of the Oni engine approach to perceived BSL &amp;#039;comparison&amp;#039; of C-style strings.

Category:Modding diagrams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation of the Oni engine approach to perceived [[BSL]] &#039;comparison&#039; of C-style strings.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding diagrams]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-05_comparison-false.png&amp;diff=29289</id>
		<title>File:BSL-strcmp-05 comparison-false.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-05_comparison-false.png&amp;diff=29289"/>
		<updated>2020-05-17T17:38:56Z</updated>

		<summary type="html">&lt;p&gt;Loser: Documentation of the Oni engine approach to perceived BSL &amp;#039;comparison&amp;#039; of C-style strings.

Category:Modding diagrams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation of the Oni engine approach to perceived [[BSL]] &#039;comparison&#039; of C-style strings.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding diagrams]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-04_ainame-PointedMemory.png&amp;diff=29288</id>
		<title>File:BSL-strcmp-04 ainame-PointedMemory.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-04_ainame-PointedMemory.png&amp;diff=29288"/>
		<updated>2020-05-17T17:38:47Z</updated>

		<summary type="html">&lt;p&gt;Loser: Documentation of the Oni engine approach to perceived BSL &amp;#039;comparison&amp;#039; of C-style strings.

Category:Modding diagrams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation of the Oni engine approach to perceived [[BSL]] &#039;comparison&#039; of C-style strings.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding diagrams]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-03_ainame-Ptr.png&amp;diff=29287</id>
		<title>File:BSL-strcmp-03 ainame-Ptr.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-03_ainame-Ptr.png&amp;diff=29287"/>
		<updated>2020-05-17T17:38:36Z</updated>

		<summary type="html">&lt;p&gt;Loser: Documentation of the Oni engine approach to perceived BSL &amp;#039;comparison&amp;#039; of C-style strings.

Category:Modding diagrams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation of the Oni engine approach to perceived [[BSL]] &#039;comparison&#039; of C-style strings.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding diagrams]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-02_gbStrVar-PointedMemory.png&amp;diff=29286</id>
		<title>File:BSL-strcmp-02 gbStrVar-PointedMemory.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-02_gbStrVar-PointedMemory.png&amp;diff=29286"/>
		<updated>2020-05-17T17:38:13Z</updated>

		<summary type="html">&lt;p&gt;Loser: Documentation of the Oni engine approach to perceived BSL &amp;#039;comparison&amp;#039; of C-style strings.

Category:Modding diagrams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation of the Oni engine approach to perceived [[BSL]] &#039;comparison&#039; of C-style strings.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding diagrams]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-01_gbStrVar-Ptr.png&amp;diff=29285</id>
		<title>File:BSL-strcmp-01 gbStrVar-Ptr.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-01_gbStrVar-Ptr.png&amp;diff=29285"/>
		<updated>2020-05-17T17:36:36Z</updated>

		<summary type="html">&lt;p&gt;Loser: I guess this will be a better category...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation of the Oni engine approach to perceived [[BSL]] &#039;comparison&#039; of C-style strings.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding diagrams]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-01_gbStrVar-Ptr.png&amp;diff=29284</id>
		<title>File:BSL-strcmp-01 gbStrVar-Ptr.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:BSL-strcmp-01_gbStrVar-Ptr.png&amp;diff=29284"/>
		<updated>2020-05-17T17:34:40Z</updated>

		<summary type="html">&lt;p&gt;Loser: Documentation of the Oni engine approach to perceived BSL &amp;#039;comparison&amp;#039; of C-style strings.

Category:Engine docs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation of the Oni engine approach to perceived [[BSL]] &#039;comparison&#039; of C-style strings.&lt;br /&gt;
&lt;br /&gt;
[[Category:Engine docs]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Playing_in_Linux&amp;diff=29241</id>
		<title>Playing in Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Playing_in_Linux&amp;diff=29241"/>
		<updated>2020-05-12T18:59:02Z</updated>

		<summary type="html">&lt;p&gt;Loser: Finished!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There is no official support for Oni on a Linux family of OSes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nevertheless, it is still possible to run the game on Linux.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Anniversary Edition/Installer/Updater]] can be made to run as well.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
; [https://www.winehq.org Wine]&lt;br /&gt;
: An application used as a compatiblity layer in order to run Windows applications on a Linux machine.&lt;br /&gt;
: For maximum convenience, it is recommended to install the Wine directly from an official repository of the given Linux distribution (it is natively supported by a wide array of distros).&lt;br /&gt;
: Wine 5.5 was tested to be be capable of flawlessly running Oni and AEInstaller.&lt;br /&gt;
&lt;br /&gt;
; [https://wiki.winehq.org/Winetricks Winetricks]&lt;br /&gt;
: Helper script for configuring various parts of Wine-created compatibility environments.&lt;br /&gt;
: In some distros, Winetricks is installed alongside the Wine itself.&lt;br /&gt;
: In other distors, it needs to be installed as a separate package.&lt;br /&gt;
&lt;br /&gt;
; A legacy JAVA Runtime Environment offline installer for 32bit (aka x86) version of Windows XP.&lt;br /&gt;
: Max compatible version is &#039;&#039;&#039;7u65&#039;&#039;&#039;.&lt;br /&gt;
: Unfortunately, the [https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.html official Oracle download page] requires a subscription in order to download legacy versions of JRE.&lt;br /&gt;
: An obscure link through legacy Sun Microsystems website (former developer of the JAVA platform) was found. The link ( [https://javadl.sun.com/webapps/download/AutoDL?BundleId=78825 click here] ) can be used to download a JRE 7u25 offline installer.&lt;br /&gt;
&lt;br /&gt;
==How to prepare &amp;quot;Oni&amp;quot; WINEPREFIX==&lt;br /&gt;
# Open a Linux terminal and create a new WINEPREFIX (a new instance of the Wine compatibility environment) by executing the following sequence of commands:&lt;br /&gt;
#: &amp;lt;code&amp;gt; export WINEARCH=win32 &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; export WINEPREFIX=/full_path_to_the_folder_where_this_WINEPREFIX_will_be_located &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; winecfg &amp;lt;/code&amp;gt;&lt;br /&gt;
# The sequence of commands from the step 1 creates a new 32bit WINEPREFIX in the requested folder and opens a &amp;quot;Wine configuration&amp;quot; GUI tool.&lt;br /&gt;
#: In the GUI tool, on the &amp;quot;Applications&amp;quot; tab, change the target Windows version to the &amp;quot;Windows XP&amp;quot;. Then click on the OK button.&lt;br /&gt;
# Still in the same terminal (with all the export symbols defined) run Winetricks script to execute necessary configuration changes:&lt;br /&gt;
#: &amp;lt;code&amp;gt; winetricks corefonts msacm32 &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still in the same terminal (with all the export symbols defined) use &#039;&#039;&#039;cd&#039;&#039;&#039; command and navigate to the folder with the Java Runtime offline installer (let&#039;s assume the installer is named &amp;quot;jre-7u25-windows-i586.exe&amp;quot;).&amp;lt;br/&amp;gt;Install the JRE into the given WINEPREFIX.&lt;br /&gt;
#: &amp;lt;code&amp;gt; cd /full_path_to_the_JRE_offline_installer &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; wine jre-7u25-windows-i586.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
# The &amp;quot;Oni&amp;quot; WINEPREFIX is now ready.&amp;lt;br/&amp;gt;Remember, that in order to run either Oni or AEInstaller, path to this WINEPREFIX must be specified (exported).&amp;lt;br/&amp;gt;If it is not specified, then the WINE application will use a default WINEPREFIX, and that one is probably set to represent 64bit Windows 7 or 64bit Windows 10 (which is quite sensible for most applications, but unfortunately not good enough for Oni).&lt;br /&gt;
&lt;br /&gt;
==How to install Oni==&lt;br /&gt;
# Insert Oni installation medium into the CD/DVD drive (if installed from the CD, 00&#039;s style ^_^).&lt;br /&gt;
# Open a Linux terminal, export &amp;quot;Oni&amp;quot; WINEPREFIX, navigate to the folder with contents of the mounted CD drive and initiate the installation process.&lt;br /&gt;
#: &amp;lt;code&amp;gt; export WINEPREFIX=/full_path_to_the_folder_where_Oni_WINEPREFIX_is_located &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; cd /full_path_to_the_contents_of_the_Oni_installation_medium &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; wine OniSetup.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
#: During the installation process, it is recommended to &#039;&#039;&#039;NOT&#039;&#039;&#039; place the game inside the WINEPREFIX compatibility environment folder (do &#039;&#039;&#039;not&#039;&#039;&#039; place it anywhere on the faux &amp;quot;C:\&amp;quot; drive).&lt;br /&gt;
#: Instead, choose an appropriate place somewhere in the Linux machine directory tree. Linux machine directory tree should be by default mapped as a different faux drive (usually it is mapped as drive &amp;quot;z:\&amp;quot;)&lt;br /&gt;
# The game should install without problems. Ignore the warning regarding DirectX 7, it is harmless.&lt;br /&gt;
# DO NOT RUN THE GAME YET!!!&amp;lt;br/&amp;gt;An attempt to run the raw Oni on a modern system is almost guaranteed to fail as Oni will most probably unceremoniously crash.&amp;lt;br/&amp;gt;The game needs to be patched via AEInstaller.&lt;br /&gt;
&lt;br /&gt;
==How to install AEInstaller==&lt;br /&gt;
This is a rather straightforward process.&lt;br /&gt;
# Download the latest Windows version of the AEInstaller from the Oni Mod Depot ( [http://mods.oni2.net/node/79 click here] ).&lt;br /&gt;
# Open a Linux terminal, export &amp;quot;Oni&amp;quot; WINEPREFIX, navigate to the folder with the AEInstaller and initiate the installation process.&lt;br /&gt;
#: &amp;lt;code&amp;gt; export WINEPREFIX=/full_path_to_the_folder_where_Oni_WINEPREFIX_is_located &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; cd /full_path_to_the_AEInstaller &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; wine Anniversary-Edition-Setup-vXX.YY_ZZ.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
#: During the AEInstaller installation, there will be a prompt to provide Oni installation directory.&lt;br /&gt;
#: Navigate to the appropriate directory. Linux machine directory tree should be mapped as a drive &amp;quot;/&amp;quot;.&lt;br /&gt;
# At the end of the installation, the AEInstaller will be automatically executed and will attempt to fetch updates.&lt;br /&gt;
#: During the fetching process, it may appear that the AEInstaller has hanged. That is not true, it just does not signalize that there is some work being done in the background. Be patient.&lt;br /&gt;
&lt;br /&gt;
==How to launch AEInstaller==&lt;br /&gt;
# AEInstaller will be automatically launched once - during the installation process of the AEInstaller. Nice.&lt;br /&gt;
# However, to normally launch the AEInstaller as a user, open a Linux terminal, export &amp;quot;Oni&amp;quot; WINEPREFIX, navigate to the folder with the &#039;&#039;&#039;AEInstaller2Updater.jar&#039;&#039;&#039; file and launch the jar file through Wine JAVA Runtime Environment.&lt;br /&gt;
#: &amp;lt;code&amp;gt; export WINEPREFIX=/full_path_to_the_folder_where_Oni_WINEPREFIX_is_located &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; cd /full_path_to_the_AEInstaller2Updater.jar &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; wine start /ProgIDOpen jarfile AEInstaller2Updater.jar &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Patch Oni via AEInstaller==&lt;br /&gt;
# Let the AEInstaller do its magic. ^_^&lt;br /&gt;
&lt;br /&gt;
==How to launch patched Oni==&lt;br /&gt;
There are two possible ways to launch Oni.&lt;br /&gt;
# Launch the game through the AEInstaller application.&lt;br /&gt;
# Open a Linux terminal, export &amp;quot;Oni&amp;quot; WINEPREFIX, navigate to the folder with the patched Oni.exe file and launch it via Wine.&lt;br /&gt;
#: &amp;lt;code&amp;gt; export WINEPREFIX=/full_path_to_the_folder_where_Oni_WINEPREFIX_is_located &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; cd /full_path_to_the_patched_Oni.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; wine Oni.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==????==&lt;br /&gt;
# PROFIT! ^_^&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Playing_in_Linux&amp;diff=29238</id>
		<title>Playing in Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Playing_in_Linux&amp;diff=29238"/>
		<updated>2020-05-12T15:41:07Z</updated>

		<summary type="html">&lt;p&gt;Loser: Writing, writing...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There is no official support for Oni on a Linux family of OSes.&amp;lt;br/&amp;gt;&lt;br /&gt;
Nevertheless, it is still possible to run the game on Linux.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Anniversary Edition/Installer/Updater]] can be made to run as well.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
; [https://www.winehq.org Wine]&lt;br /&gt;
: An application used as a compatiblity layer in order to run Windows applications on a Linux machine.&lt;br /&gt;
: For maximum convenience, it is recommended to install the Wine directly from an official repository of the given Linux distribution (it is natively supported by a wide array of distros).&lt;br /&gt;
: Wine 5.5 was tested to be be capable of flawlessly running Oni and AEInstaller.&lt;br /&gt;
&lt;br /&gt;
; [https://wiki.winehq.org/Winetricks Winetricks]&lt;br /&gt;
: Helper script for configuring various parts of Wine-created compatibility environments.&lt;br /&gt;
: In some distros, Winetricks is installed alongside the Wine itself.&lt;br /&gt;
: In other distors, it needs to be installed as a separate package.&lt;br /&gt;
&lt;br /&gt;
; A legacy JAVA Runtime Environment offline installer for 32bit (aka x86) version of Windows XP.&lt;br /&gt;
: Max compatible version is &#039;&#039;&#039;7u65&#039;&#039;&#039;.&lt;br /&gt;
: Unfortunately, the [https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.html official Oracle download page] requires a subscription in order to download legacy versions of JRE.&lt;br /&gt;
: An obscure link through legacy Sun Microsystems website (former developer of the JAVA platform) was found. The link ( [https://javadl.sun.com/webapps/download/AutoDL?BundleId=78825 click here] ) can be used to download a JRE 7u25 offline installer.&lt;br /&gt;
&lt;br /&gt;
==How to prepare &amp;quot;Oni&amp;quot; WINEPREFIX==&lt;br /&gt;
# Open a Linux terminal and create a new WINEPREFIX (a new instance of the Wine compatibility environment) by executing the following sequence of commands:&lt;br /&gt;
#: &amp;lt;code&amp;gt; export WINEARCH=win32 &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; export WINEPREFIX=/full_path_to_the_folder_where_this_WINEPREFIX_will_be_located &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; winecfg &amp;lt;/code&amp;gt;&lt;br /&gt;
# The sequence of commands from the step 1 creates a new 32bit WINEPREFIX in the requested folder and opens a &amp;quot;Wine configuration&amp;quot; GUI tool.&lt;br /&gt;
#: In the GUI tool, on the &amp;quot;Applications&amp;quot; tab, change the target Windows version to the &amp;quot;Windows XP&amp;quot;. Then click on the OK button.&lt;br /&gt;
# Still in the same terminal (with all the export symbols defined) run Winetricks script to execute necessary configuration changes:&lt;br /&gt;
#: &amp;lt;code&amp;gt; winetricks corefonts msacm32 &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still in the same terminal (with all the export symbols defined) use &#039;&#039;&#039;cd&#039;&#039;&#039; command and navigate to the folder with the Java Runtime offline installer (let&#039;s assume the installer is named &amp;quot;jre-7u25-windows-i586.exe&amp;quot;).&amp;lt;br/&amp;gt;Install the JRE into the given WINEPREFIX.&lt;br /&gt;
#: &amp;lt;code&amp;gt; cd /full_path_to_the_JRE_offline_installer &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; wine jre-7u25-windows-i586.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
# The &amp;quot;Oni&amp;quot; WINEPREFIX is now ready.&amp;lt;br/&amp;gt;Remember, that in order to run either Oni or AEInstaller, path to this WINEPREFIX must be specified (exported).&amp;lt;br/&amp;gt;If it is not specified, then the WINE application will use a default WINEPREFIX, and that one is probably set to represent 64bit Windows 7 or 64bit Windows 10 (which is quite sensible for most applications, but unfortunately not good enough for Oni).&lt;br /&gt;
&lt;br /&gt;
==How to install and run Oni==&lt;br /&gt;
# Insert Oni installation medium into the CD/DVD drive (if installed from the CD, 00&#039;s style ^_^).&lt;br /&gt;
# Open a Linux terminal, export &amp;quot;Oni&amp;quot; WINEPREFIX, navigate to the folder with contents of the mounted CD drive and initiate the installation process.&lt;br /&gt;
#: &amp;lt;code&amp;gt; export WINEPREFIX=/full_path_to_the_folder_where_Oni_WINEPREFIX_is_located &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; cd /full_path_to_the_contents_of_the_Oni_installation_medium &amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; wine OniSetup.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
#: During the installation process, it is recommended to &#039;&#039;&#039;NOT&#039;&#039;&#039; place the game inside the WINEPREFIX compatibility environment folder (do &#039;&#039;&#039;not&#039;&#039;&#039; place it anywhere on the faux &amp;quot;C:\&amp;quot; drive).&lt;br /&gt;
#: Instead, choose an appropriate place somewhere in the Linux machine directory tree. Linux machine directory tree should be by default mapped as a different faux drive (usually it is mapped as drive &amp;quot;z:\&amp;quot;)&lt;br /&gt;
# The game should install without problems. Ignore the warning regarding DirectX 7, it is harmless.&lt;br /&gt;
# DO NOT RUN THE GAME YET !!! More tweaks to come...&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Playing_in_Linux&amp;diff=29233</id>
		<title>Playing in Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Playing_in_Linux&amp;diff=29233"/>
		<updated>2020-05-11T21:40:44Z</updated>

		<summary type="html">&lt;p&gt;Loser: Can I get unbanned on the Oni Discord after I finish this article? Pretty please ^_^&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There is no official support for Oni on a family of Linux OSes.&amp;lt;br/&amp;gt;&lt;br /&gt;
However, it is possible to run the game on Linux.&amp;lt;br&amp;gt;&lt;br /&gt;
It is also possible to run the AEInstaller application.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
; [https://www.winehq.org Wine]&lt;br /&gt;
: An application used as a compatiblity layer in order to run Windows applications on a Linux machine.&lt;br /&gt;
: For maximum convenience, install the Wine directly from an official repository of your given Linux distribution (it is natively supported by wide array of distros).&lt;br /&gt;
: Wine 5.5 was tested to be be capable of flawlessly running Oni and AEInstaller.&lt;br /&gt;
&lt;br /&gt;
; [https://wiki.winehq.org/Winetricks Winetricks]&lt;br /&gt;
: Helper script for configuring various parts of Wine-created compatibility environments.&lt;br /&gt;
: In some distros, Winetricks is installed alongside the Wine itself.&lt;br /&gt;
: In other distors, it needs to be installed as a separate package.&lt;br /&gt;
&lt;br /&gt;
; Some legacy JAVA Runtime Environment offline installer for 32bit Windows XP.&lt;br /&gt;
: Max compatible version is &#039;&#039;&#039;7u65&#039;&#039;&#039;.&lt;br /&gt;
: Unfortunately, the official Oracle download page requires subscription in order to download legacy versions of JRE.&lt;br /&gt;
: An obscure link through legacy Sun Microsystems website (former developer of the JAVA platform) was found. The link ( [https://javadl.sun.com/webapps/download/AutoDL?BundleId=78825 click here] ) can be used to download a JRE 7u25 offline installer.&lt;br /&gt;
&lt;br /&gt;
==Steps==&lt;br /&gt;
# Open a terminal and create a new WINEPREFIX (a new instance of the Wine compatibility environment) by using the following sequence of commands:&lt;br /&gt;
#: export WINEARCH=win32&lt;br /&gt;
#: export WINEPREFIX=full_path_to_the_folder_where_this_WINEPREFIX_will_be_located&lt;br /&gt;
#: winecfg&lt;br /&gt;
# There may be some text written into the terminal about some functions not supported and so on and so forth. Usually it is safe to ignore it.&amp;lt;br/&amp;gt;Eventually, a &amp;quot;Wine configuration&amp;quot; GUI window should appear.&lt;br /&gt;
# On the &amp;quot;Applications&amp;quot; tab, change the Windows version to &amp;quot;Windows XP&amp;quot;. Then click on the OK button.&lt;br /&gt;
# TBD, bed time...&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:Variables&amp;diff=29192</id>
		<title>BSL:Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:Variables&amp;diff=29192"/>
		<updated>2020-04-15T07:33:32Z</updated>

		<summary type="html">&lt;p&gt;Loser: ai2_showlinetochar: explanation of line colors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Variables&#039;&#039;&#039; in BSL are very similar to variables in other programming languages. Here&#039;s a brief explanation of what a variable is:&lt;br /&gt;
&lt;br /&gt;
When writing logical programs, one often needs the program to remember some information (a number, a piece of text, the ON/OFF state of a switch, etc) so that the information can be used at a later time.&lt;br /&gt;
&lt;br /&gt;
The usual thing to do in this situation is to store the needed data in a &#039;&#039;&#039;variable&#039;&#039;&#039;: an elementary data container.&lt;br /&gt;
&lt;br /&gt;
==General notions==&lt;br /&gt;
===Type and value===&lt;br /&gt;
A variable (data container) has three important attributes: the &#039;&#039;name&#039;&#039;, the &#039;&#039;type&#039;&#039; and the &#039;&#039;value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;value&#039;&#039; or the variable is just the contents it currently stores. It can be read and written.&lt;br /&gt;
&lt;br /&gt;
Also, a given variable can store only a specific &#039;&#039;type&#039;&#039; of data (floating-point number or integer or text string or boolean), and that is what we call the variable&#039;s type.&lt;br /&gt;
&lt;br /&gt;
Finally, the &#039;&#039;name&#039;&#039; of a variable is a unique text string that is used to identify the data container within the script. Like [[BSL:Functions|function]] names, variable names are case-sensitive (NOTE: all variables and functions are lower-case). Valid characters are: &#039;&#039;please fill me in&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An easy way to get the &#039;&#039;type&#039;&#039; and &#039;&#039;value&#039;&#039; of an existing BSL variable is to enter its &#039;&#039;name&#039;&#039; at the console in [[Developer Mode]]: you typically get console output like &amp;quot;bool: 1&amp;quot; or &amp;quot;int32: 42&amp;quot; or &amp;quot;float: 3.14&amp;quot; or &amp;quot;string: hello&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Declaration and assignment===&lt;br /&gt;
If you want to use a new variable (data container), you must set it up (&#039;&#039;declare&#039;&#039; it) first, with the &#039;&#039;&#039;var&#039;&#039;&#039; keyword. A declaration statement can look a bit like this:&lt;br /&gt;
 var int my_superduper_integer;&lt;br /&gt;
 var bool my_totally_awesome_boolean;&lt;br /&gt;
 var string my_incredible_text_string;&lt;br /&gt;
 var float my_cool_floating_point_number;&lt;br /&gt;
The first word is the keyword &amp;quot;var&amp;quot;, next comes the type (keyword), then the name of the variable. The final &amp;quot;;&amp;quot; is required. The name can be any valid name (i.e., not a keyword and not containing invalid characters)&lt;br /&gt;
&lt;br /&gt;
A declaration is usually seen at &amp;quot;global scope&amp;quot; (i.e., outside all functions). It is recommended to group declarations at the beginning of a BSL file (for readability), but it&#039;s not necessary. It is also not necessary (but strongly recommended) to declare a variable &#039;&#039;before&#039;&#039; the context where it is used for the first time.&lt;br /&gt;
&lt;br /&gt;
On some occasions you may want to declare a &#039;&#039;local&#039;&#039; variable (i.e., to embed a declaration statement into a [[BSL:Functions|function]]). This feature will be detailed elsewhere.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: BSL will not complain if you use a nonexistent variable for instance in a if condition. However this cause undefined behavior in your scripts (e.g. for instance I had a real case scenario where chr_wait_health did not work as expected) so make sure you always declare the variables that you are using in your scripts.&lt;br /&gt;
&lt;br /&gt;
===Assignment===&lt;br /&gt;
You can assign a new value to an existing variable with the assignment operator &amp;quot;=&amp;quot;. The name of the variable you want to modify is on the left-hand-side (LHS) of the &amp;quot;=&amp;quot;, and on the right-hand-side (RHS) you can have any valid expression that evaluates/converts into the variable&#039;s type.&lt;br /&gt;
&lt;br /&gt;
An assignment can be combined with a declaration (see above). That means the variable will have a definite value right after it is created. If you don&#039;t specify/define such a starting value, you should not, generally speaking, assume anything about the value.&lt;br /&gt;
&lt;br /&gt;
However, apparently there &#039;&#039;are&#039;&#039; &amp;quot;default&amp;quot; values assigned to every variable even if it hasn&#039;t been defined yet. Those values are 0 (i.e., false) for bool, 0 for int and float, and &amp;quot;&amp;quot; (empty string) for string.&lt;br /&gt;
&lt;br /&gt;
==Built-in variables==&lt;br /&gt;
All the built-in BSL variables are listed here, in alphabetical order.&lt;br /&gt;
&lt;br /&gt;
;Color&lt;br /&gt;
:White: available on all versions&lt;br /&gt;
:Blue: command only exists in Mac Intel build&lt;br /&gt;
:Green: command only exists in Windows build&lt;br /&gt;
;Default value&lt;br /&gt;
:&#039;&#039;&#039;# !!!&#039;&#039;&#039;: reset by engine at level load&lt;br /&gt;
:&#039;&#039;&#039;!?&#039;&#039;&#039;: set by engine at game/level load, depends on [[persist.dat]]&lt;br /&gt;
;Works&lt;br /&gt;
:&amp;quot;OK&amp;quot;: both platforms can use this command&lt;br /&gt;
:&amp;quot;OK-D&amp;quot;: both platforms can use this command, but Windows Oni requires the Daodan DLL&lt;br /&gt;
:&amp;quot;OK-M&amp;quot;: the command only works on Intel Macs&lt;br /&gt;
:&amp;quot;OK?&amp;quot;: confirmation/refinement required&lt;br /&gt;
:&amp;quot;OK!&amp;quot;: apparently works but makes the game crash/hang/etc. Use with caution if at all.&lt;br /&gt;
:&amp;quot;??&amp;quot;: command may not work&lt;br /&gt;
:&amp;quot;NO&amp;quot;: command is proven not to work&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellspacing=0 cellpadding=2&lt;br /&gt;
!Type!!Name!!Default value!!Comment!!Works&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_barabbas_run]]||1&lt;br /&gt;
|&amp;quot;lets Barabbas run while carrying his gun&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_blind]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;turns off the AI&#039;s visual sensing system&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_boss_battle]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;enables AI boss-battle target selection&amp;quot;&amp;lt;br&amp;gt;used in &#039;&#039;&#039;compound&#039;&#039;&#039;: apparently makes Muro&#039;s friends focus on yours rather than on you. Only seems to  have effect on &#039;&#039;Boss&#039;&#039; flagged characters at BINACJBOCharacter file. It seems that makes other characters try to ignore the &#039;&#039;Boss&#039;&#039; flagged character and make the &#039;&#039;Boss&#039;&#039; flagged character focus on the player rather the other characters.||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_chump_stop]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;stops the chump&amp;quot;&amp;lt;br&amp;gt;disables the pathfinding behaviour of chump(s)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_deaf]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;turns off the AI&#039;s sound sensing system&amp;quot;||OK&lt;br /&gt;
|-bgcolor=&amp;quot;lime&amp;quot;&lt;br /&gt;
|int32||[[ai2_debug_localmove_lines]]||20&lt;br /&gt;
|&amp;quot;number of lines to cast to debug local-movement code&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_debug_localmovement]]||0&lt;br /&gt;
|&amp;quot;debug local-movement code from player&#039;s position&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_debug_localpathfinding]]||0&lt;br /&gt;
|&amp;quot;debug local-path code from player&#039;s position and facing&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_debug_showsettingIDs]]||0&lt;br /&gt;
|&amp;quot;shows ID numbers for combat, melee and neutral settings&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_ignore_player]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;makes all AI ignore the player&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_melee_weightcorrection]]||1&lt;br /&gt;
|&amp;quot;weights down non-attack techniques so they are never more than attacks&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_printspawn]]||0&lt;br /&gt;
|&amp;quot;prints information about each AI spawn&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showactivationpaths]]||0&lt;br /&gt;
|&amp;quot;turns on inactive ==&amp;gt; active pathfinding rendering&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showastar]]||0&lt;br /&gt;
|&amp;quot;shows grid squares that are evaluated by the A* pathfinding&amp;quot;||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showcombatranges]]||0&lt;br /&gt;
|&amp;quot;shows circles that represent the combat ranges of each AI&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showconnections]]||0&lt;br /&gt;
|&amp;quot;turns on pathfinding connection rendering&amp;quot;&amp;lt;br&amp;gt;(result of a call to [[ai2_findconnections]])||OK &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showdynamicgrids]]||0&lt;br /&gt;
|&amp;quot;turns on pathfinding dynamic grid display&amp;quot;&amp;lt;br&amp;gt;(moving obstacles; needs &#039;&#039;&#039;ai2_showgrids&#039;&#039;&#039;)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showfights]]||0&lt;br /&gt;
|&amp;quot;shows fights in progress&amp;quot;||OK? &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showfiringspreads]]||0&lt;br /&gt;
|&amp;quot;shows AI firing spread knowledge&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showgrids]]||0&lt;br /&gt;
|&amp;quot;turns on pathfinding grid rendering&amp;quot;&amp;lt;br&amp;gt;(static grids; see [[OBD:AKVA|AKVA]])||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showhealth]]||0&lt;br /&gt;
|&amp;quot;draws a health bar for every AI above their head&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showintersections]]||0&lt;br /&gt;
|&amp;quot;debug AI&#039;s melee intersections&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showjoblocations]]||0&lt;br /&gt;
|&amp;quot;draws a green cross at each AI&#039;s job location&amp;quot;||OK? &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showlasers]]||0&lt;br /&gt;
|&amp;quot;turns on laser sights for AI2 characters&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showlinetochar]]||0&lt;br /&gt;
|&amp;quot;draws a line from the player to every AI&amp;quot;&amp;lt;br&amp;gt;(to be precise, it draws a line from the player to every spawned AI character, be it via [[ai2_spawn]] or via [[chr_create]])&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; line: AI character is active and drawn&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;span style=&amp;quot;color: Blue&amp;quot;&amp;gt;blue&amp;lt;/span&amp;gt; line: AI character is active, but not drawn&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;red&amp;lt;/span&amp;gt; line: AI character is inactive&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Related BSL functions: [[chr_draw_all_characters]], [[chr_lock_active]], [[chr_unlock_active]]&amp;lt;br&amp;gt;&lt;br /&gt;
Related BSL variables: [[chr_all_active]]&lt;br /&gt;
||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showlocalmelee]]||0&lt;br /&gt;
|&amp;quot;shows local-environment melee awareness&amp;quot;||OK? &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showlos]]||0&lt;br /&gt;
|&amp;quot;shows AI line-of-sight checking&amp;quot;&amp;lt;br&amp;gt;(LOS of all aiming AI leaves a permanent trace)|| OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_shownames]]||0&lt;br /&gt;
|&amp;quot;draws the name of every AI above their head&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showpathfindingerrors]]||0&lt;br /&gt;
|&amp;quot;enables visual display of pathfinding errors&amp;quot;||OK? &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showpaths]]||0&lt;br /&gt;
|&amp;quot;shows the path each AI is following&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showprediction]]||0&lt;br /&gt;
|&amp;quot;shows prediction info for AI2 characters&amp;quot;&amp;lt;br&amp;gt;(player&#039;s &amp;quot;predicted&amp;quot; position is shown etc)||OK &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showprojectiles]]||0&lt;br /&gt;
|&amp;quot;shows AI projectile knowledge&amp;quot;||OK &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showsounds]]||0&lt;br /&gt;
|&amp;quot;shows AI sounds as they are generated&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showtargeting]]||0&lt;br /&gt;
|&amp;quot;shows targeting info for AI2 characters&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_showvision]]||0&lt;br /&gt;
|&amp;quot;shows each AI&#039;s vision cones (central and peripheral)&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[ai2_spacing_cookies]]||2&lt;br /&gt;
|&amp;quot;number of cookies per fight&amp;quot;&amp;lt;br&amp;gt;the more cookies, the more attacks: 0 means nothing but maneuver||OK &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_spacing_enable]]||1&lt;br /&gt;
|&amp;quot;master enable switch for spacing behavior&amp;quot;||OK?&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ai2_spacing_weights]]||1&lt;br /&gt;
|&amp;quot;enables position-sensitive weighting of spacing behaviors&amp;quot;||OK?&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[ai2_stopignoring_count]]||6&lt;br /&gt;
|&amp;quot;set the number of events before the AI will stop ignoring&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[ai2_stopignoring_time]]||240&lt;br /&gt;
|&amp;quot;set the delay timer before the AI forgets about ignored events&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[am_hit_everything]]||0&lt;br /&gt;
|&amp;quot;makes the laser pointer hit all objects&amp;quot;&amp;lt;br&amp;gt;(determines whether the gun&#039;s aiming laser stops at quads marked with non-object-collision)||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[am_invert]]||&#039;&#039;&#039;!?&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;inverts aiming&amp;quot; This is set from [[persist.dat]] at game load (in the absence of &#039;&#039;&#039;persist.dat&#039;&#039;&#039; the default is 0).&lt;br /&gt;
:The value 0 means normal aiming (mouse up to look up). The value 1 means inverted aiming (mouse down to look up).&lt;br /&gt;
|OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[am_show_axes]]||0&lt;br /&gt;
|&amp;quot;shows world axes&amp;quot;&lt;br /&gt;
:This attaches a giant 3D axis to Konoko which claims to show the direction of positive x, y, and z in the world coordinate system, however it is &#039;&#039;&#039;wrong&#039;&#039;&#039;. Oni uses a Y-up coordinate system; do not let the 3D axis model showing Z-up mislead you.&lt;br /&gt;
|bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[am_show_closest]]||0&lt;br /&gt;
|&amp;quot;dumps the closest GQ index to console&amp;quot;&amp;lt;br&amp;gt;(continuously prints to console the nearest gunk quad&#039;s number followed by two other unhelpful pieces of info)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[am_show_filenames]]||0&lt;br /&gt;
|&amp;quot;dumps the closest GQ index file/obj name to console&amp;quot;&amp;lt;br&amp;gt;(displays lots of info on-screen, not in console, about quad you are aiming weapon at, but no file names)||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-bgcolor=#ccccff&lt;br /&gt;
|bool||[[am_show_texturenames]]||0&lt;br /&gt;
|&amp;quot;Shows Texture name&amp;quot;&amp;lt;br&amp;gt;(displays name of texture you are aiming weapon at, as well as coordinates of reticle)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[character_name_distance]]||150.&lt;br /&gt;
|&amp;quot;specifies the distance from the camera that character names no longer draw&amp;quot;&amp;lt;br&amp;gt;(probably needs show_characters)||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_active]]||1&lt;br /&gt;
|&amp;quot;enables character activity&amp;quot;&amp;lt;br&amp;gt;(0 freezes animation etc)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[chr_aim_width]]||70.&lt;br /&gt;
|&amp;quot;number of degress of aiming width&amp;quot;&amp;lt;br&amp;gt;width of the aiming arc, in degrees||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_all_active]]||0&lt;br /&gt;
|&amp;quot;forces all characters to be active&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[chr_auto_aim_arc]]||90.&lt;br /&gt;
|&amp;quot;number of degress of auto aiming arc&amp;quot;&amp;lt;br&amp;gt;width of the auto aiming arc, in degrees||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[chr_auto_aim_dist]]||40.&lt;br /&gt;
|&amp;quot;distance for auto aiming&amp;quot;&amp;lt;br&amp;gt;upper threshold, in world units||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_big_head]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;draws everyone with a big head&amp;quot;&amp;lt;br&amp;gt;(head size set by chr_big_head_amount)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[chr_big_head_amount]]||4.&lt;br /&gt;
|&amp;quot;Controls the size of the big head&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[chr_block_angle]]||20.&lt;br /&gt;
|&amp;quot;controls the angle at which the characters can block&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[chr_buffer_size]]||8&lt;br /&gt;
|&amp;quot;0 = normal buffer, otherwise buffer duration&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_collision_box]]||1&lt;br /&gt;
|&amp;quot;toggles character bounding box / bounding sphere collision&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|float||[[chr_collision_grow]]||0.&lt;br /&gt;
|&amp;quot;sets character bounding box collision grow amount&amp;quot;||?? &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_corpse_fade_offscreen]]||1&lt;br /&gt;
|&amp;quot;makes corpses fade when they are offscreen&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[chr_death_fade_frames]]||180&lt;br /&gt;
|&amp;quot;the number of game ticks until charaters fade over&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[chr_death_fade_start]]||7200&lt;br /&gt;
|&amp;quot;the number of game ticks until charaters begin to fade&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_aiming_screen]]||0&lt;br /&gt;
|&amp;quot;turns on aiming screen debugging&amp;quot;&amp;lt;br&amp;gt;(dumps AS changes to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_characters]]||0&lt;br /&gt;
|&amp;quot;enables debugging information for characters&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_collision]]||0&lt;br /&gt;
|&amp;quot;turns on/off debugging of collision&amp;quot;&amp;lt;br&amp;gt;(melee collision info written to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_fall]]||0&lt;br /&gt;
|&amp;quot;controls debugging falling&amp;quot;&amp;lt;br&amp;gt;(dumps events to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_footsteps]]||0&lt;br /&gt;
|&amp;quot;footstep debugging mode&amp;quot;&amp;lt;br&amp;gt;(dumps events to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_footsteps_verbose]]||0&lt;br /&gt;
|&amp;quot;verbose footstep debugging mode&amp;quot;&amp;lt;br&amp;gt;(dumps anim/type/frame to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_handle]]||0&lt;br /&gt;
|&amp;quot;turns on debugging for the handle code&amp;quot;&amp;lt;br&amp;gt;(dumps events to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_impacts]]||0&lt;br /&gt;
|&amp;quot;prints debugging info about character melee impacts&amp;quot;&amp;lt;br&amp;gt;(to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_overlay]]||0&lt;br /&gt;
|&amp;quot;enables debugging information for overlays&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_pathfinding]]||0&lt;br /&gt;
|&amp;quot;control pathfinding debugging&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_sphere]]||0&lt;br /&gt;
|&amp;quot;enables sphere tree debugging for characters&amp;quot;&amp;lt;br&amp;gt;(draws collision spheres for every character)||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[chr_debug_target]]||0&lt;br /&gt;
|&amp;quot;selects the character debugging target&amp;quot;&amp;lt;br&amp;gt;(used by all debugging routines)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_debug_trigger_quad]]||0&lt;br /&gt;
|&amp;quot;controls trigger quad debugging&amp;quot;&amp;lt;br&amp;gt;(draws characters as vertical lines)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_disable_melee]]||0&lt;br /&gt;
|&amp;quot;turns off all melee damage&amp;quot;&amp;lt;br&amp;gt;(also disables knockdowns; does NOT disable throws)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_disable_visactive]]||0&lt;br /&gt;
|&amp;quot;disables visibility activation&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_draw_aiming_vector]]||0&lt;br /&gt;
|&amp;quot;enables drawing of the aiming vector&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_draw_all_characters]]||0&lt;br /&gt;
|&amp;quot;forces the drawing of all characters&amp;quot;&amp;lt;br&amp;gt;(also keeps them active)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_draw_facing_vector]]||0&lt;br /&gt;
|&amp;quot;enables drawing of the facing vector&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_draw_weapon]]||1&lt;br /&gt;
|&amp;quot;controls drawing of weapons&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_enable_collision]]||1&lt;br /&gt;
|&amp;quot;enables character collision&amp;quot;&amp;lt;br&amp;gt;(does NOT prevent throws if disabled)||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[chr_lod]]||-1&lt;br /&gt;
|&amp;quot;forces a given lod if it is between 0 and 4&amp;quot;&amp;lt;br&amp;gt;(uses automatic LOD otherwise)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_mini_me]]||0&lt;br /&gt;
|&amp;quot;decreases the size of the main character&amp;quot;&amp;lt;br&amp;gt;(custom size can be set by &#039;&#039;&#039;chr_mini_me_amount&#039;&#039;&#039; below)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[chr_mini_me_amount]]||0.5&lt;br /&gt;
|&amp;quot;controls the size of the main character&amp;quot;&amp;lt;br&amp;gt;(effective only if &#039;&#039;&#039;chr_mini_me&#039;&#039;&#039; is enabled)&amp;lt;br&amp;gt;&#039;&#039;The amount can be zero and even negative. If 0, the character becomes invisible. If -1, the character walks on the underside of the floor. With a very low number like -1000, the character will still walk below the floor but will be enormous (they will not be visible, however, as long as the camera remains above the floor); they will also lose collision with other characters, and sounds made by the character will not be heard.&#039;&#039;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_pin_character]]||0&lt;br /&gt;
|&amp;quot;pins a character to the ground&amp;quot;&amp;lt;br&amp;gt;(freezes the coordinates of &#039;&#039;all&#039;&#039; characters)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_print_sound]]||0&lt;br /&gt;
|&amp;quot;turns on printing of the sound effect&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_show_bnv]]||0&lt;br /&gt;
|&amp;quot;shows the bnv of the main character&amp;quot;&amp;lt;br&amp;gt;(pathfinding volume; see [[OBD:AKVA|AKVA]])||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_show_lod]]||0&lt;br /&gt;
|&amp;quot;shows the current lod of the main character&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[chr_show_movement]]||0&lt;br /&gt;
|&amp;quot;enables movement debugging information for characters&amp;quot;&amp;lt;br&amp;gt;(dumps XZ velocity to console every # frames)||OK&lt;br /&gt;
|-bgcolor=#ccccff&lt;br /&gt;
|int32||[[chr_show_weaponid]]||0&lt;br /&gt;
|&amp;quot;Shows weapon ID&amp;quot;||OK&lt;br /&gt;
|-bgcolor=#ccccff&lt;br /&gt;
|bool||[[chr_showextent_globals]]||0&lt;br /&gt;
|&amp;quot;shows the global parts of an attack animation&#039;s extent&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[chr_weapon_auto_aim]]||1&lt;br /&gt;
|&amp;quot;enables auto aiming&amp;quot;&amp;lt;br&amp;gt;(melee auto aiming not affected)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[cinematic_xoffse]]t||20.&lt;br /&gt;
|&amp;quot;offset from the vertical edge of the screen for the cinematic insert&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|float||[[cinematic_yoffset]]||65.&lt;br /&gt;
|&amp;quot;offset from the horizontal edge of the screen for the cinematic insert&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|float||[[cm_canter_unarmed]]||8.&lt;br /&gt;
|&amp;quot;camera canter&amp;quot;&amp;lt;br&amp;gt;(when not aiming; in degrees)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[cm_canter_weapon]]||7.&lt;br /&gt;
|&amp;quot;camera canter&amp;quot;&amp;lt;br&amp;gt;(when aiming, in degrees)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[cm_distance]]||33.&lt;br /&gt;
|&amp;quot;camera distance&amp;quot;&amp;lt;br&amp;gt;(to target, in world units)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[cm_height]]||15.&lt;br /&gt;
|&amp;quot;camera target&amp;quot;&amp;lt;br&amp;gt;(target height to feet of target character, in world units)||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[cm_jello_amt]]||20&lt;br /&gt;
|&amp;quot;sets the transparency of walls&amp;quot;&amp;lt;br&amp;gt;(for [[Jello-cam]] mode, in % )||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[cm_jello_radius]]||12.&lt;br /&gt;
|radius of effect of [[Jello-cam]] mode||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[cm_lookspring_percent]]||0.5&lt;br /&gt;
|&amp;quot;at what percent of lookspring fight mode turns off&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[cm_plane_test]]||1&lt;br /&gt;
|&amp;quot;jello camera plane test&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[co_display]]||1&lt;br /&gt;
|&amp;quot;enables console display&amp;quot;&amp;lt;br&amp;gt;(console output only)||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[co_fade_time]]||600&lt;br /&gt;
|&amp;quot;the fade time of the console&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[co_message_display]]||1&lt;br /&gt;
|&amp;quot;enables text message display&amp;quot;&amp;lt;br&amp;gt;(dmsg and prompts)||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[co_priority]]||0&lt;br /&gt;
|&amp;quot;changes the priority of messages to display on the console&amp;quot;&amp;lt;br&amp;gt;not sure what messages have priority &amp;gt;0||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[debug_consoles]]||0&lt;br /&gt;
|&amp;quot;prints debugging information about console usage&amp;quot;&amp;lt;br&amp;gt;(information about &#039;&#039;in-game&#039;&#039; consoles; prints to &#039;&#039;dev mode&#039;&#039; console ^^)||OK&lt;br /&gt;
|-bgcolor=#ccccff&lt;br /&gt;
|bool||[[debug_font_cache]]||0&lt;br /&gt;
|&amp;quot;displays font cache texture&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[debug_gun_behavior]]||0&lt;br /&gt;
|&amp;quot;enable AI gun behavior debugging&amp;quot;&amp;lt;br&amp;gt;(dumps events to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[debug_impacts]]||0&lt;br /&gt;
|&amp;quot;prints impacts as they occur&amp;quot;&amp;lt;br&amp;gt;(to console; footsteps, melee, projectiles...)||OK &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[debug_scripts]]||0&lt;br /&gt;
|&amp;quot;enable script debugging&amp;quot;&amp;lt;br&amp;gt;(dumps events to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[debug_triggers]]||0&lt;br /&gt;
|&amp;quot;enable trigger volume debugging&amp;quot;&amp;lt;br&amp;gt;(dumps events to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[debug_weapons]]||0&lt;br /&gt;
|&amp;quot;prints debugging info about weapon particle events&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[door_drawframes]]||0&lt;br /&gt;
|&amp;quot;draws doorframes for all unplaced doors&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[door_ignore_locks]]||0&lt;br /&gt;
|&amp;quot;disables all door locks&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[door_pop_lighting]]||0&lt;br /&gt;
|&amp;quot;uses bad door lighting&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[door_show_activation]]||0&lt;br /&gt;
|&amp;quot;draws a circle where door activates&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[door_show_debug]]||0&lt;br /&gt;
|&amp;quot;shows debug geometry&amp;quot;&amp;lt;br&amp;gt;(dumps events to console)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[draw_every_frame]]||0&lt;br /&gt;
|&amp;quot;forces drawing of every frame&amp;quot;&amp;lt;br&amp;gt;(every &#039;&#039;&#039;draw_every_frame_multiple&#039;&#039;&#039;th frame; takes precedence over &#039;&#039;&#039;fast_mode&#039;&#039;&#039;)||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[draw_every_frame_multiple]]||1 &lt;br /&gt;
||&amp;quot;draw every frame multiple&amp;quot;&amp;lt;br&amp;gt;set drawing frequency if &#039;&#039;&#039;draw_every_frame&#039;&#039;&#039; is ON||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_collision]]||1&lt;br /&gt;
|&amp;quot;enables environment collision&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_drawallgqs]]||0&lt;br /&gt;
|&amp;quot;draw all the GQs&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_drawfrustum]]||0&lt;br /&gt;
|&amp;quot;draw the frustum around the environment camera&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_drawvisonly]]||0&lt;br /&gt;
|&amp;quot;draw only the GQs used for visibility&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[env_highlight_gq]]||-1&lt;br /&gt;
|&amp;quot;highlights a particular gq&amp;quot;&amp;lt;br&amp;gt;(-1 means none)||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[env_ray_number]]||20&lt;br /&gt;
|&amp;quot;sets the number of rays to cast&amp;quot; (per frame). Bigger values than 20 may be ineffective (cause the console message &amp;quot;allocated too many akira rays&amp;quot;)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_show_ghostgqs]]||0&lt;br /&gt;
|&amp;quot;when true show ghost GQs&amp;quot; (PC&amp;amp;Mac: Works only for self-made GQs via onisplit v0.9.93.0 -create:level in &#039;&#039;&#039;-debug&#039;&#039;&#039; out/*.xml; )||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_show_leafnodes]]||0&lt;br /&gt;
|&amp;quot;enables display of environment octtree leaf nodes&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_show_octnode_gqs]]||0&lt;br /&gt;
|&amp;quot;when true the environment only renders triangles in the octnode that contains the manual camera&amp;quot;||?? &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_show_octtree]]||0&lt;br /&gt;
|&amp;quot;enables display of environment octtree traversal&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_show_quad_count]]||0&lt;br /&gt;
|&amp;quot;shows the count of visable environment quads&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_show_rays]]||0&lt;br /&gt;
|&amp;quot;draw the rays&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[env_show_stairflagged]]||0&lt;br /&gt;
|&amp;quot;show specially flagged noncollision quads&amp;quot;&amp;lt;br&amp;gt;(not sure what this was supposed to do, but the dev keys for &amp;quot;Character collision&amp;quot; (Ctrl-Shift-T) and &amp;quot;Invisible quads&amp;quot; (Ctrl-Shift-I) will show stair collision ramps)||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[fast_lookup]]||1&lt;br /&gt;
|&amp;quot;enables fast lookup&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[fast_mode]]||0&lt;br /&gt;
|&amp;quot;makes the game run fast&amp;quot; (only if &#039;&#039;&#039;draw_every_frame&#039;&#039;&#039; is disabled)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[flag_name_distance]]||150.0&lt;br /&gt;
|&amp;quot;specifies the distance from the camera that flag names no longer draw&amp;quot;&amp;lt;br&amp;gt;(probably needs show_flags)||??&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[flag_new_id]]||&#039;&#039;&#039;!?&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;specifies the id for a new flag&amp;quot;&amp;lt;br&amp;gt;(equal to the last flag added at level load)||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[footstep_flash]]||0&lt;br /&gt;
|&amp;quot;footstep flash mode&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[fx_laser_width]]||0.2&lt;br /&gt;
|width of lasers (weapons and triggers)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gl_disable_depth_reads]]||0&lt;br /&gt;
|&amp;quot;disable_depth_reads&amp;quot;||??&lt;br /&gt;
|-bgcolor=#ccccff&lt;br /&gt;
|bool||[[gl_disable_dxt1]]||0&lt;br /&gt;
|&amp;quot;lets you disable use of DXT1&amp;quot;||??&lt;br /&gt;
|-bgcolor=#ccccff&lt;br /&gt;
|bool||[[gl_disable_packed_pixels]]||0&lt;br /&gt;
|&amp;quot;lets you disable packed-pixels support&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|float||[[gl_fog_blue]]||&#039;&#039;&#039;0.25 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;fog blue&amp;quot;&amp;lt;br&amp;gt;(amount: 0 to 1)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[gl_fog_end]]||&#039;&#039;&#039;1. !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;fog end&amp;quot; in frustum space||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[gl_fog_green]]||&#039;&#039;&#039;0.25 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;fog green&amp;quot;&amp;lt;br&amp;gt;(amount: 0 to 1)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[gl_fog_red]]||&#039;&#039;&#039;0.25 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;fog red&amp;quot;&amp;lt;br&amp;gt;(amount: 0 to 1)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[gl_fog_start]]||&#039;&#039;&#039;0.975 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;fog start&amp;quot; in frustum space||OK&lt;br /&gt;
|-bgcolor=#ccccff&lt;br /&gt;
|int32||[[gl_mipmap_offset]]||0&lt;br /&gt;
|&amp;quot;lets you disable miplevels (-ve = disable big, +ve = disable small)&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|float||[[gs_input_accel]]||5.0&lt;br /&gt;
|&amp;quot;use this to control the input sensitivity&amp;quot; (affects the camera movement keys for the free-roaming camera in [[Dev Mode]])||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[gs_screen_shot_reduce]]||0&lt;br /&gt;
|&amp;quot;2^n amount of reduction&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_characters]]||1&lt;br /&gt;
|&amp;quot;turns on the drawing of characters&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_corpses]]||1&lt;br /&gt;
|&amp;quot;show corpses&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_environment]]||1&lt;br /&gt;
|&amp;quot;turns on doing the environment&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_object_count]]||0&lt;br /&gt;
|&amp;quot;shows the count of objects&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_objects]]||1&lt;br /&gt;
|&amp;quot;turns on the drawing of objects&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_particles]]||1&lt;br /&gt;
|&amp;quot;turns on the drawing of particles&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_physics_count]]||0&lt;br /&gt;
|&amp;quot;shows the count of physics&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_scripting_count]]||0&lt;br /&gt;
|&amp;quot;shows the count of active scripting contexts&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_shadows]]||1&lt;br /&gt;
|&amp;quot;enables character shadows&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_sky]]||1&lt;br /&gt;
|&amp;quot;turns on the sky&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_show_ui]]||1&lt;br /&gt;
|&amp;quot;turns on the ui&amp;quot; (aka HUD)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_sleep]]||0&lt;br /&gt;
|&amp;quot;turns on a call to sleep to make debugging easier&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[gs_stable_ear]]||1&lt;br /&gt;
|&amp;quot;makes the ear stable&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[invincible]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;makes player invincible&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[laser_alpha]]||0&lt;br /&gt;
|WTF? lasers are always transparent||??&lt;br /&gt;
|-bgcolor=&amp;quot;lime&amp;quot;&lt;br /&gt;
|bool||[[li_center_cursor]]||1&lt;br /&gt;
|&amp;quot;should we center the cursor&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[m3_buffer_clear]]||1&lt;br /&gt;
|&amp;quot;toggles buffer clear&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[m3_clear_color]]||0&lt;br /&gt;
|&amp;quot;color to clear the back buffer to&amp;quot; (color behind skybox)&amp;lt;br&amp;gt;(actually a 32-bit RGB integer; can calculate it with [http://www.shodor.org/stella2java/rgbint.html this site])||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[m3_double_buffer]]||1&lt;br /&gt;
|&amp;quot;toggles double buffer mode&amp;quot; (may interrupt rendering if disabled! use with caution)||OK!&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[m3_fill_solid]]||1&lt;br /&gt;
|&amp;quot;toggles wireframe/solid&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[m3_shade_vertex]]||1&lt;br /&gt;
|&amp;quot;vertex shader on/off&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[m3_texture]]||1&lt;br /&gt;
|0 &amp;gt;&amp;gt; crash ^^||OK!&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[m3_zcompareon]]||1&lt;br /&gt;
|&amp;quot;true if zcompare is on&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[marketing_line_off]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;turns the laser line off&amp;quot;||OK&lt;br /&gt;
|-bgcolor=#ccccff&lt;br /&gt;
|float||[[mouse_acceleration]]||0.75&lt;br /&gt;
|&amp;quot;sets the mouse acceleration value&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ob_show_debug]]||0&lt;br /&gt;
|&amp;quot;enable physics debugging visuals&amp;quot;&amp;lt;br&amp;gt;(shows spheres for doors etc)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[omnipotent]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;makes player omnipotent&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[p3_debug_collision]]||256&lt;br /&gt;
|&amp;quot;enables collision debugging display&amp;quot;&amp;lt;br&amp;gt;(actually a boolean; only the low bit counts)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[p3_everything_breakable]]||0&lt;br /&gt;
|&amp;quot;makes every quad breakable&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[p3_furniture_breakable]]||0&lt;br /&gt;
|&amp;quot;makes all furniture breakable&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[p3_glass_breakable]]||1&lt;br /&gt;
|&amp;quot;enables breakable glass&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[p3_show_env_collision]]||0&lt;br /&gt;
|&amp;quot;draws particle / environment collisions&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[patrolpath_name_distance]]||150.0&lt;br /&gt;
|&amp;quot;specifies the distance from the camera that patrol point names no longer draw&amp;quot;&amp;lt;br&amp;gt;(probably needs show_patrolpaths)||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ph_active]]||1&lt;br /&gt;
|&amp;quot;enable physics&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ph_debug_keyforces]]||0&lt;br /&gt;
|&amp;quot;toggle keyboard applied forces&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ph_show_collisions]]||0&lt;br /&gt;
|&amp;quot;toggle display of colliding quads&amp;quot;&amp;lt;br&amp;gt;(also see show_chr_env_collision)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[recoil_base]]||0.0&lt;br /&gt;
|&amp;quot;base&amp;quot; (for current ONWC; needs recoil_edit)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[recoil_edit]]||0&lt;br /&gt;
|&amp;quot;enables editable recoil&amp;quot;&amp;lt;br&amp;gt;||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[recoil_factor]]||0.0&lt;br /&gt;
|&amp;quot;factor&amp;quot; (for current ONWC; needs recoil_edit)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[recoil_max]]||0.0&lt;br /&gt;
|&amp;quot;factor&amp;quot; (for current ONWC; needs recoil_edit)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[recoil_return_speed]]||0.0&lt;br /&gt;
|&amp;quot;factor&amp;quot; (for current ONWC; needs recoil_edit)||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[save_point]]||&#039;&#039;&#039;!?&#039;&#039;&#039;&lt;br /&gt;
|which save point we are on||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[saved_film_character_offset]]||1&lt;br /&gt;
|&amp;quot;dumps the filmed animation data of the player to file&amp;quot;||OK?&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[saved_film_loop]]||0&lt;br /&gt;
|enables looping when &#039;&#039;&#039;play_record&#039;&#039;&#039;ing||OK&lt;br /&gt;
|-&lt;br /&gt;
|string||[[sc_bind_f2]]||&amp;quot;&amp;quot;&lt;br /&gt;
|name of animation bound to &#039;&#039;&#039;cutscene1&#039;&#039;&#039;||OK&lt;br /&gt;
|-&lt;br /&gt;
|string||[[sc_bind_f3]]||&amp;quot;&amp;quot;&lt;br /&gt;
|name of animation bound to &#039;&#039;&#039;cutscene2&#039;&#039;&#039;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_characters]]||0&lt;br /&gt;
|&amp;quot;enables the display of character starting positions&amp;quot;&amp;lt;br&amp;gt;(see BINA/OBJC/CHAR)||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_chr_env_collision]]||0&lt;br /&gt;
|&amp;quot;draws character / environment collisions&amp;quot;&amp;lt;br&amp;gt;(shows all quads that character touches, unlike ph_show_collisions which only shows quad you are standing on)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_flags]]||0&lt;br /&gt;
|&amp;quot;enables the display of flags&amp;quot;&amp;lt;br&amp;gt;(see BINA/OBJC/FLAG)||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_laser_env_collision]]||0&lt;br /&gt;
|&amp;quot;draws laser / environment collisions&amp;quot;&amp;lt;br&amp;gt;(works with any loaded gun)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_patrolpaths]]||0&lt;br /&gt;
|&amp;quot;enables the display of AI patrol path objects&amp;quot;&amp;lt;br&amp;gt;(see BINA/OBJC/PATR)||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_performance]]||0&lt;br /&gt;
|&amp;quot;enables performance display&amp;quot;&amp;lt;br&amp;gt;(shows FPS counter)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_performance_gsd]]||0&lt;br /&gt;
|??||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_performance_gsu]]||0&lt;br /&gt;
|??||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_sound_all]]||0&lt;br /&gt;
|&amp;quot;sound rings will always be drawn, not just when a sound is selected&amp;quot;&amp;lt;br&amp;gt;(environment sounds, see BINA/OBJC/SNDG)||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_sound_rectangles]]||0&lt;br /&gt;
|&amp;quot;sound rectangles will always be drawn, not just when a sound Rectangle is selected&amp;quot;&amp;lt;br&amp;gt;(environment sounds, see BINA/OBJC/SNDG)||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_sound_spheres]]||0&lt;br /&gt;
|&amp;quot;sound spheres will always be drawn, not just when a sound sphere is selected&amp;quot;&amp;lt;br&amp;gt;(environment sounds, see BINA/OBJC/SNDG)||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_triggers]]||1&lt;br /&gt;
|&amp;quot;enables the display of triggers&amp;quot;&amp;lt;br&amp;gt;(see BINA/OBJC/TRIG)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_triggervolumes]]||0&lt;br /&gt;
|&amp;quot;Display trigger volumes&amp;quot;||OK-D&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[show_turrets]]||1&lt;br /&gt;
|&amp;quot;enables the display of turrets&amp;quot;&amp;lt;br&amp;gt;(see BINA/OBJC/TURR)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[single_step]]||0&lt;br /&gt;
|&amp;quot;puts the game in single step mode&amp;quot; (see [[Developer_Mode#Features]] for single-step control)||OK!&lt;br /&gt;
|-&lt;br /&gt;
|float||[[sky_height]]||&#039;&#039;&#039;0. !!!&#039;&#039;&#039;&lt;br /&gt;
|Y offset of skybox?||?? &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[sky_show_clouds]]||1&lt;br /&gt;
|&amp;quot;toggles display of the clouds&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[sky_show_planet]]||1&lt;br /&gt;
|&amp;quot;toggles display of the planet (sun/moon)&amp;quot;&amp;lt;br&amp;gt;(sun present only in levels 2 and 3)||OK &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[sky_show_sky]]||1&lt;br /&gt;
|&amp;quot;toggles display of the sky&amp;quot; (master switch)||OK &lt;br /&gt;
|-&lt;br /&gt;
|bool||[[sky_show_skybox]]||1&lt;br /&gt;
|&amp;quot;toggles display of the skybox&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[sky_show_stars]]||1&lt;br /&gt;
|&amp;quot;toggles display of the stars&amp;quot;&amp;lt;br&amp;gt;(no stars in any level)||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[sound_show_debug]]||0&lt;br /&gt;
|&amp;quot;displays sound debugging info&amp;quot;&amp;lt;br&amp;gt;(shows a HUD with info on currently playing sounds; on Macs, sound spheres are also displayed)||OK&lt;br /&gt;
|-bgcolor=#ccccff&lt;br /&gt;
|bool||[[sound_show_occlusions]]||0&lt;br /&gt;
|&amp;quot;enables debugging display of sound occlusions&amp;quot;&amp;lt;br&amp;gt;(shows lines from sound sources to listeners)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[spatial_footsteps]]||1&lt;br /&gt;
|&amp;quot;spatial footsteps&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[sync_debug]]||0&lt;br /&gt;
|&amp;quot;enables sync debugging&amp;quot;||??&lt;br /&gt;
|-&lt;br /&gt;
|float||[[target_max_distance]]||75000.&lt;br /&gt;
|&amp;quot;Sets the distance at which the radar will start to change from its minimum&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[turret_show_debug]]||0&lt;br /&gt;
|&amp;quot;enables the display of turret debug lines&amp;quot;||bgcolor=#ccccff|OK-M&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[ui_suppress_prompt]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|&amp;quot;suppresses UI prompting about new objectives or moves&amp;quot;&amp;lt;br&amp;gt;(and saved games and training tips and such)||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[unstoppable]]||&#039;&#039;&#039;0 !!!&#039;&#039;&#039;&lt;br /&gt;
|makes player unstoppable||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[wait_for_key]]||0&lt;br /&gt;
|&amp;quot;makes the game wait for a key before level load&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[wp_disable_fade]]||0&lt;br /&gt;
|&amp;quot;disables weapon fading&amp;quot;||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[wp_fadetime]]||360&lt;br /&gt;
|&amp;quot;sets free time for powerups&amp;quot;||OK-D&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[wp_force_half_scale]]||0&lt;br /&gt;
|crosshairs scale with distance, pow_adjustment redundant||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[wp_force_no_scale]]||0&lt;br /&gt;
|crosshairs don&#039;t scale with distance, pow_adjustment ineffective||OK&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[wp_force_scale]]||0&lt;br /&gt;
|crosshairs scale with distance, pow_adjustment ineffective||OK&lt;br /&gt;
|-&lt;br /&gt;
|int32||[[wp_hypostrength]]||25&lt;br /&gt;
|&amp;quot;sets strength of hypo spray&amp;quot;&amp;lt;br&amp;gt;apparently in % of full health, seems hard-coded||??&lt;br /&gt;
|-&lt;br /&gt;
|bool||[[wp_kickable]]||0&lt;br /&gt;
|&amp;quot;lets the player kick weapons&amp;quot;&amp;lt;br&amp;gt;(actually lets everyone &#039;&#039;but&#039;&#039; the player collide with guns)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[wp_pow_adjustment]]||0.3&lt;br /&gt;
|scales crosshair separately (or not, depending on &amp;quot;force&amp;quot; flags)||OK&lt;br /&gt;
|-&lt;br /&gt;
|float||[[wp_scale_adjustment]]||1.&lt;br /&gt;
|adjusts scales||OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:BSL docs]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Slovak_game_manual&amp;diff=28272</id>
		<title>Slovak game manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Slovak_game_manual&amp;diff=28272"/>
		<updated>2019-04-28T13:56:31Z</updated>

		<summary type="html">&lt;p&gt;Loser: /* Pages 24-25 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Windows (SK) box art - front.jpg|thumb|right|200px]]&lt;br /&gt;
For the Slovak and Czech markets, an edition of Oni was published by [http://kontiki.sk/index.php/en/ Kon Tiki Multimedia]. While the game offers English, French, and German installations, this edition includes a manual written in the Slovak language, collected [[:Category:Manual (SK)|HERE]] but also shown below. The info within the manual is largely based on the standard English manual, however some parts are hilariously mistranslated. Also, the images in the manual are generally low-quality black-and-white scans from the English manual.&lt;br /&gt;
&lt;br /&gt;
Most of the mistranslations stem from the fact that, contrary to the common rule of translation to not translate names unless necessary, in the Slovak manual, most names (of people, organizations, and items) are indeed translated. And of course those translated names sound silly, which is why the &amp;quot;don&#039;t translate names&amp;quot; rule exists. Following are some &amp;quot;highlights&amp;quot; in the translation.&lt;br /&gt;
&lt;br /&gt;
==Pages 2-3==&lt;br /&gt;
[[Image:Oni PC Manual p2-p3 (SK).jpg|256px|right]]&lt;br /&gt;
Page 3, section &amp;quot;Technická Protizločinecká Jednotka (TPJ)&amp;quot; (based on the section &amp;quot;The Technology Crimes Task Force (TCTF)&amp;quot; from the English manual)&amp;lt;br&amp;gt;&lt;br /&gt;
*TCTF unit (&#039;&#039;&#039;T&#039;&#039;&#039;echnology &#039;&#039;&#039;C&#039;&#039;&#039;rimes &#039;&#039;&#039;T&#039;&#039;&#039;ask &#039;&#039;&#039;F&#039;&#039;&#039;orce) is translated as TPJ (&#039;&#039;&#039;T&#039;&#039;&#039;echnická &#039;&#039;&#039;P&#039;&#039;&#039;rotizločinecká &#039;&#039;&#039;J&#039;&#039;&#039;ednotka).&amp;lt;br&amp;gt;That would mean (when translated back to English) something like &amp;quot;Technic Anticrime Unit&amp;quot;.&amp;lt;br&amp;gt;The in-game textures are of course unchanged, so good luck finding this &amp;quot;TPJ&amp;quot; since all of the good guys have &amp;quot;TCTF&amp;quot; written all over their gear.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 4-5==&lt;br /&gt;
[[Image:Oni PC Manual p4-p5 (SK).jpg|256px|right]]&lt;br /&gt;
Nothing funky here.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 6-7==&lt;br /&gt;
[[Image:Oni PC Manual p6-p7 (SK).jpg|256px|right]]&lt;br /&gt;
Page 7, section &amp;quot;Pohyby&amp;quot; (based on the section &amp;quot;Moves&amp;quot; from the English manual):&lt;br /&gt;
*In the lede, it&#039;s stated that Konoko &#039;&#039;&#039;is&#039;&#039;&#039; a one-dimensional coward.&amp;lt;br&amp;gt;(In the English manual the statement is that Konoko &#039;&#039;&#039;is not&#039;&#039;&#039; a one-dimensional coward.)&lt;br /&gt;
*In the &amp;quot;Escape Moves&amp;quot; section it is stated that escape moves are good for avoiding hand-to-hand combat altogether.&amp;lt;br&amp;gt;(In the English manual the statement is that escape moves are good for avoiding hand-to-hand attacks.)&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 8-9==&lt;br /&gt;
[[Image:Oni PC Manual p8-p9 (SK).jpg|256px|right]]&lt;br /&gt;
Page 8, continuation of the section &amp;quot;Pohyby&amp;quot; (&amp;quot;Moves&amp;quot;):&lt;br /&gt;
*The Sledgehammer Heel combo is translated as &amp;quot;Kováčsky mlat&amp;quot;, which means &amp;quot;Smithing hammer&amp;quot;.&amp;lt;br&amp;gt;(IMO, better translation would be &amp;quot;Drviaca päta&amp;quot;, &amp;quot;Crushing heel&amp;quot;)&lt;br /&gt;
*The Backbreaker attack is translated as &amp;quot;Drina&amp;quot;, which means &amp;quot;back-breaking (very hard) labor&amp;quot;.&amp;lt;br&amp;gt;(seriously?)&lt;br /&gt;
&lt;br /&gt;
Page 9, section &amp;quot;Zbrane&amp;quot; (based on the section &amp;quot;Weapons&amp;quot; from the English manual):&lt;br /&gt;
*In the hint for the Campbell Equalizer Mk4, it&#039;s stated that the weapon itself compensates for its high recoil by the fact that it is a semi-automatic weapon.&amp;lt;br&amp;gt;(WTF did I just read ^_^? In the English manual the statement is that the player must compensate for the high recoil of the Campell Equalizer when firing the gun on full auto)&lt;br /&gt;
*The Hughes Black Adder SMG is translated as &amp;quot;Obrovská Čierna Zmija SMG&amp;quot;, which means &amp;quot;&#039;&#039;&#039;Huge&#039;&#039;&#039; Black Adder SMG&amp;quot;.&amp;lt;br&amp;gt;(innuendo? ^_^)&lt;br /&gt;
*In the hint for the SML3 Plasma Rifle, it&#039;s stated that pressure is rapidly rising during the plasma ball&#039;s flight. It is also stated that the player should navigate their targets accordingly.&amp;lt;br&amp;gt;(In the English manual the statement is that plasma bursts accelerate rapidly during flight and that the player should lead their targets, meaningthe  player should aim a bit further in a direction the target is moving.)&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 10-11==&lt;br /&gt;
[[Image:Oni PC Manual p10-p11 (SK).jpg|256px|right]]&lt;br /&gt;
Page 10, continuation of the section &amp;quot;Zbrane&amp;quot; (&amp;quot;Weapons&amp;quot;):&lt;br /&gt;
*The Phase Stream Projector is translated as &amp;quot;Fázový Smerovy Projektor&amp;quot;, which means &amp;quot;Phase Direction Projector&amp;quot;.&lt;br /&gt;
*In the description of the Phase Stream Projector, it&#039;s stated that the bigger mounted version of this weapon was deployed during the &amp;quot;&#039;&#039;&#039;Spontaneous&#039;&#039;&#039; Riots&amp;quot; of 2012.&amp;lt;br&amp;gt;(In the English manual the statement is that the weapon was deployed during the &amp;quot;&#039;&#039;&#039;Freedom&#039;&#039;&#039; Riots&amp;quot; of 2012.)&lt;br /&gt;
&lt;br /&gt;
Page 11, continuation of the section &amp;quot;Zbrane&amp;quot; (&amp;quot;Weapons&amp;quot;):&lt;br /&gt;
*The Scram Cannon is translated as &amp;quot;Škrabákový (bezpečnostný) kanón&amp;quot;, which means &amp;quot;Scraper (Security) Cannon&amp;quot;.&lt;br /&gt;
*In the description of the Scram Cannon, it&#039;s stated that this weapon is the favorite weapon in the Syndicate&#039;s arsenal.&amp;lt;br&amp;gt;(In the English manual, the statement is that the Scram Cannon is the most indiscriminate weapon in the Syndicate&#039;s arsenal.)&lt;br /&gt;
*In the hint for the Scram Cannon, it&#039;s stated that Scram Cannon warheads are interactive at close range.&amp;lt;br&amp;gt;(In the English manual, the statement is that the Scram Cannon warheads are &#039;&#039;&#039;inactive&#039;&#039;&#039; at close range.)&lt;br /&gt;
*The Mercury Bow is translated as &amp;quot;Bystrý luk&amp;quot;, which means &amp;quot;Swift bow&amp;quot;.&lt;br /&gt;
*The Screaming Cannon is translated as &amp;quot;Fantastický kanón&amp;quot;, which means &amp;quot;Fantastic Cannon&amp;quot;.&lt;br /&gt;
*In the hint for the Screaming Cannon it&#039;s stated that the Screaming Cannon transforms its controlling of life by the force of an existence, but any life which comes too close will be dried.&amp;lt;br&amp;gt;(Now what the actual heck, this part does not make sense even in the original Slovak.)&amp;lt;br&amp;gt;(In the English manual, the statement is that the cannon masks the presence of its wielder from the Screaming Cell entity, but any life that comes too close to the Screaming Cell will be drained, regardless of masking.)&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 12-13==&lt;br /&gt;
[[Image:Oni PC Manual p12-p13 (SK).jpg|256px|right]]&lt;br /&gt;
Nothing extra funky here.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 14-15==&lt;br /&gt;
[[Image:Oni PC Manual p14-p15 (SK).jpg|256px|right]]&lt;br /&gt;
Page 15, section &amp;quot;Spojovací vojak&amp;quot; (based on the section &amp;quot;Communications Trooper&amp;quot; from the English manual): &lt;br /&gt;
*The Static Fist attack is translated as &amp;quot;Pokojná päsť&amp;quot;, which means &amp;quot;Peaceful Fist&amp;quot;.&lt;br /&gt;
Page 15, section &amp;quot;Zelený útočníci&amp;quot; (based on the section &amp;quot;Striker Green&amp;quot; from the English manual): &lt;br /&gt;
*The class name (Grunt Class) is translated as &amp;quot;Rachotiaca trieda&amp;quot;, which colloquially means &amp;quot;Worker Class&amp;quot;.&amp;lt;br&amp;gt;(IMO better translation would be &amp;quot;Trieda pešiak&amp;quot;, which means &amp;quot;Foot Soldier Class&amp;quot;)&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 16-17==&lt;br /&gt;
[[Image:Oni PC Manual p16-p17 (SK).jpg|256px|right]]&lt;br /&gt;
Page 16, section &amp;quot;Modrý útočník&amp;quot; (based on the section &amp;quot;Striker Blue&amp;quot; from the English manual): &lt;br /&gt;
*The class name (Hoplite Class) is translated as &amp;quot;Skákajúca trieda&amp;quot;, which means &amp;quot;Hopping Class&amp;quot;.&amp;lt;br&amp;gt;(Well, at least it fits their vanilla melee behaviour ^_^)&lt;br /&gt;
Page 16, section &amp;quot;Červený útočník&amp;quot; (based on the section &amp;quot;Striker Red&amp;quot; from the English manual): &lt;br /&gt;
*The accompanying image is a [[Fury | FURY]]!!! A totally different character class.&lt;br /&gt;
*The Headbutt Dash attack is translated as &amp;quot;Tupý úder hlavou&amp;quot;, which means &amp;quot;Dull Head Strike&amp;quot;.&amp;lt;br&amp;gt;(IMO, better translation would be &amp;quot;Hlavička&amp;quot;, which simply means &amp;quot;Headbutt&amp;quot;.)&lt;br /&gt;
Page 17, section &amp;quot;Zelený nindža&amp;quot; (based on the section &amp;quot;Ninja Green&amp;quot; from the English manual): &lt;br /&gt;
*The class name (Infiltrator Class) is translated as &amp;quot;Infiltrovaná trieda&amp;quot;, which means &amp;quot;Infiltrated Class&amp;quot;.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 18-19==&lt;br /&gt;
[[Image:Oni PC Manual p18-p19 (SK).jpg|256px|right]]&lt;br /&gt;
Page 18, section &amp;quot;Červený nindža&amp;quot; (based on the section &amp;quot;Ninja Red&amp;quot; from the English manual): &lt;br /&gt;
*The Lightning Driver attack is translated as &amp;quot;Bleskový pohon&amp;quot;. It is a fairly accurate word-for-word translation, but it misses the semantic meaning. This is a name of an attack, not a name of some engine.&amp;lt;br&amp;gt;(IMO better translation would be &amp;quot;Bleskový prieraz&amp;quot;, which word-for-word means &amp;quot;Lightning breakthrough&amp;quot;, but it sounds better in Slovak.)&lt;br /&gt;
Page 18, section &amp;quot;Zelený zúrivec&amp;quot; (based on the section &amp;quot;Fury Green&amp;quot; from the English manual): &lt;br /&gt;
*Slovak langauge is an [https://en.wikipedia.org/wiki/Slovak_declension inflected language]. The word &amp;quot;zúrivec&amp;quot; is of male grammatical gender. However, fury class is a female-exclusive character class.&amp;lt;br&amp;gt;(IMO, better translation would be &amp;quot;Zelená fúria&amp;quot;, which means &amp;quot;Green Fury&amp;quot;.)&lt;br /&gt;
*The Foot Stomp attack is translated as &amp;quot;Výkop nohou&amp;quot;, which means &amp;quot;A kick with the leg&amp;quot;.&amp;lt;br&amp;gt;(IMO better translation would be &amp;quot;Dupnutie&amp;quot;, which means &amp;quot;Stomp&amp;quot;.)&lt;br /&gt;
Page 19, sections &amp;quot;Modrý zúrivec&amp;quot; and &amp;quot;Červený zúrivci&amp;quot; (based on the sections &amp;quot;Fury Blue&amp;quot; &amp;quot;Fury Red&amp;quot; from the English manual):&lt;br /&gt;
*These two sections have the same translation issues as the Fury Green section.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 20-21==&lt;br /&gt;
[[Image:Oni PC Manual p20-p21 (SK).jpg|256px|right]]&lt;br /&gt;
Nothing funky here.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 22-23==&lt;br /&gt;
[[Image:Oni PC Manual p22-p23 (SK).jpg|256px|right]]&lt;br /&gt;
Page 22, sections &amp;quot;Modrý tankista&amp;quot; and &amp;quot;Červený tankista&amp;quot; (based on the sections &amp;quot;Tanker Blue&amp;quot; and &amp;quot;Tanker Red&amp;quot; from the English manual): &lt;br /&gt;
*The Blockbuster attack is translated as &amp;quot;Blokovanie&amp;quot;, which means &amp;quot;Blocking&amp;quot; (noun). &amp;lt;br&amp;gt;(IMO better translation would be &amp;quot;Blokodrvič&amp;quot;, which means &amp;quot;Block Shatterer&amp;quot;.)&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 24-25==&lt;br /&gt;
[[Image:Oni PC Manual p24-p25 (SK).jpg|256px|right]]&lt;br /&gt;
Page 25, section &amp;quot;Autori&amp;quot; (based on the sections &amp;quot;Credits&amp;quot; from the English manual): &lt;br /&gt;
*This one page is the whole Credits section. Something is missing, right?&amp;lt;br&amp;gt;&#039;&#039;&#039;Bungie West employees (people who actually created the game) are not mentioned at all!!!&#039;&#039;&#039;&amp;lt;br&amp;gt;(What a disgrace...)&lt;br /&gt;
[[Category:Real World]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Slovak_game_manual&amp;diff=28271</id>
		<title>Slovak game manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Slovak_game_manual&amp;diff=28271"/>
		<updated>2019-04-28T13:44:27Z</updated>

		<summary type="html">&lt;p&gt;Loser: Finished the bulk of the article.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Windows (SK) box art - front.jpg|thumb|right|200px]]&lt;br /&gt;
For the Slovak and Czech markets, an edition of Oni was published by [http://kontiki.sk/index.php/en/ Kon Tiki Multimedia]. While the game offers English, French, and German installations, this edition includes a manual written in the Slovak language, collected [[:Category:Manual (SK)|HERE]] but also shown below. The info within the manual is largely based on the standard English manual, however some parts are hilariously mistranslated. Also, the images in the manual are generally low-quality black-and-white scans from the English manual.&lt;br /&gt;
&lt;br /&gt;
Most of the mistranslations stem from the fact that, contrary to the common rule of translation to not translate names unless necessary, in the Slovak manual, most names (of people, organizations, and items) are indeed translated. And of course those translated names sound silly, which is why the &amp;quot;don&#039;t translate names&amp;quot; rule exists. Following are some &amp;quot;highlights&amp;quot; in the translation.&lt;br /&gt;
&lt;br /&gt;
==Pages 2-3==&lt;br /&gt;
[[Image:Oni PC Manual p2-p3 (SK).jpg|256px|right]]&lt;br /&gt;
Page 3, section &amp;quot;Technická Protizločinecká Jednotka (TPJ)&amp;quot; (based on the section &amp;quot;The Technology Crimes Task Force (TCTF)&amp;quot; from the English manual)&amp;lt;br&amp;gt;&lt;br /&gt;
*TCTF unit (&#039;&#039;&#039;T&#039;&#039;&#039;echnology &#039;&#039;&#039;C&#039;&#039;&#039;rimes &#039;&#039;&#039;T&#039;&#039;&#039;ask &#039;&#039;&#039;F&#039;&#039;&#039;orce) is translated as TPJ (&#039;&#039;&#039;T&#039;&#039;&#039;echnická &#039;&#039;&#039;P&#039;&#039;&#039;rotizločinecká &#039;&#039;&#039;J&#039;&#039;&#039;ednotka).&amp;lt;br&amp;gt;That would mean (when translated back to English) something like &amp;quot;Technic Anticrime Unit&amp;quot;.&amp;lt;br&amp;gt;The in-game textures are of course unchanged, so good luck finding this &amp;quot;TPJ&amp;quot; since all of the good guys have &amp;quot;TCTF&amp;quot; written all over their gear.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 4-5==&lt;br /&gt;
[[Image:Oni PC Manual p4-p5 (SK).jpg|256px|right]]&lt;br /&gt;
Nothing funky here.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 6-7==&lt;br /&gt;
[[Image:Oni PC Manual p6-p7 (SK).jpg|256px|right]]&lt;br /&gt;
Page 7, section &amp;quot;Pohyby&amp;quot; (based on the section &amp;quot;Moves&amp;quot; from the English manual):&lt;br /&gt;
*In the lede, it&#039;s stated that Konoko &#039;&#039;&#039;is&#039;&#039;&#039; a one-dimensional coward.&amp;lt;br&amp;gt;(In the English manual the statement is that Konoko &#039;&#039;&#039;is not&#039;&#039;&#039; a one-dimensional coward.)&lt;br /&gt;
*In the &amp;quot;Escape Moves&amp;quot; section it is stated that escape moves are good for avoiding hand-to-hand combat altogether.&amp;lt;br&amp;gt;(In the English manual the statement is that escape moves are good for avoiding hand-to-hand attacks.)&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 8-9==&lt;br /&gt;
[[Image:Oni PC Manual p8-p9 (SK).jpg|256px|right]]&lt;br /&gt;
Page 8, continuation of the section &amp;quot;Pohyby&amp;quot; (&amp;quot;Moves&amp;quot;):&lt;br /&gt;
*The Sledgehammer Heel combo is translated as &amp;quot;Kováčsky mlat&amp;quot;, which means &amp;quot;Smithing hammer&amp;quot;.&amp;lt;br&amp;gt;(IMO, better translation would be &amp;quot;Drviaca päta&amp;quot;, &amp;quot;Crushing heel&amp;quot;)&lt;br /&gt;
*The Backbreaker attack is translated as &amp;quot;Drina&amp;quot;, which means &amp;quot;back-breaking (very hard) labor&amp;quot;.&amp;lt;br&amp;gt;(seriously?)&lt;br /&gt;
&lt;br /&gt;
Page 9, section &amp;quot;Zbrane&amp;quot; (based on the section &amp;quot;Weapons&amp;quot; from the English manual):&lt;br /&gt;
*In the hint for the Campbell Equalizer Mk4, it&#039;s stated that the weapon itself compensates for its high recoil by the fact that it is a semi-automatic weapon.&amp;lt;br&amp;gt;(WTF did I just read ^_^? In the English manual the statement is that the player must compensate for the high recoil of the Campell Equalizer when firing the gun on full auto)&lt;br /&gt;
*The Hughes Black Adder SMG is translated as &amp;quot;Obrovská Čierna Zmija SMG&amp;quot;, which means &amp;quot;&#039;&#039;&#039;Huge&#039;&#039;&#039; Black Adder SMG&amp;quot;.&amp;lt;br&amp;gt;(innuendo? ^_^)&lt;br /&gt;
*In the hint for the SML3 Plasma Rifle, it&#039;s stated that pressure is rapidly rising during the plasma ball&#039;s flight. It is also stated that the player should navigate their targets accordingly.&amp;lt;br&amp;gt;(In the English manual the statement is that plasma bursts accelerate rapidly during flight and that the player should lead their targets, meaningthe  player should aim a bit further in a direction the target is moving.)&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 10-11==&lt;br /&gt;
[[Image:Oni PC Manual p10-p11 (SK).jpg|256px|right]]&lt;br /&gt;
Page 10, continuation of the section &amp;quot;Zbrane&amp;quot; (&amp;quot;Weapons&amp;quot;):&lt;br /&gt;
*The Phase Stream Projector is translated as &amp;quot;Fázový Smerovy Projektor&amp;quot;, which means &amp;quot;Phase Direction Projector&amp;quot;.&lt;br /&gt;
*In the description of the Phase Stream Projector, it&#039;s stated that the bigger mounted version of this weapon was deployed during the &amp;quot;&#039;&#039;&#039;Spontaneous&#039;&#039;&#039; Riots&amp;quot; of 2012.&amp;lt;br&amp;gt;(In the English manual the statement is that the weapon was deployed during the &amp;quot;&#039;&#039;&#039;Freedom&#039;&#039;&#039; Riots&amp;quot; of 2012.)&lt;br /&gt;
&lt;br /&gt;
Page 11, continuation of the section &amp;quot;Zbrane&amp;quot; (&amp;quot;Weapons&amp;quot;):&lt;br /&gt;
*The Scram Cannon is translated as &amp;quot;Škrabákový (bezpečnostný) kanón&amp;quot;, which means &amp;quot;Scraper (Security) Cannon&amp;quot;.&lt;br /&gt;
*In the description of the Scram Cannon, it&#039;s stated that this weapon is the favorite weapon in the Syndicate&#039;s arsenal.&amp;lt;br&amp;gt;(In the English manual, the statement is that the Scram Cannon is the most indiscriminate weapon in the Syndicate&#039;s arsenal.)&lt;br /&gt;
*In the hint for the Scram Cannon, it&#039;s stated that Scram Cannon warheads are interactive at close range.&amp;lt;br&amp;gt;(In the English manual, the statement is that the Scram Cannon warheads are &#039;&#039;&#039;inactive&#039;&#039;&#039; at close range.)&lt;br /&gt;
*The Mercury Bow is translated as &amp;quot;Bystrý luk&amp;quot;, which means &amp;quot;Swift bow&amp;quot;.&lt;br /&gt;
*The Screaming Cannon is translated as &amp;quot;Fantastický kanón&amp;quot;, which means &amp;quot;Fantastic Cannon&amp;quot;.&lt;br /&gt;
*In the hint for the Screaming Cannon it&#039;s stated that the Screaming Cannon transforms its controlling of life by the force of an existence, but any life which comes too close will be dried.&amp;lt;br&amp;gt;(Now what the actual heck, this part does not make sense even in the original Slovak.)&amp;lt;br&amp;gt;(In the English manual, the statement is that the cannon masks the presence of its wielder from the Screaming Cell entity, but any life that comes too close to the Screaming Cell will be drained, regardless of masking.)&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 12-13==&lt;br /&gt;
[[Image:Oni PC Manual p12-p13 (SK).jpg|256px|right]]&lt;br /&gt;
Nothing extra funky here.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 14-15==&lt;br /&gt;
[[Image:Oni PC Manual p14-p15 (SK).jpg|256px|right]]&lt;br /&gt;
Page 15, section &amp;quot;Spojovací vojak&amp;quot; (based on the section &amp;quot;Communications Trooper&amp;quot; from the English manual): &lt;br /&gt;
*The Static Fist attack is translated as &amp;quot;Pokojná päsť&amp;quot;, which means &amp;quot;Peaceful Fist&amp;quot;.&lt;br /&gt;
Page 15, section &amp;quot;Zelený útočníci&amp;quot; (based on the section &amp;quot;Striker Green&amp;quot; from the English manual): &lt;br /&gt;
*The class name (Grunt Class) is translated as &amp;quot;Rachotiaca trieda&amp;quot;, which colloquially means &amp;quot;Worker Class&amp;quot;.&amp;lt;br&amp;gt;(IMO better translation would be &amp;quot;Trieda pešiak&amp;quot;, which means &amp;quot;Foot Soldier Class&amp;quot;)&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 16-17==&lt;br /&gt;
[[Image:Oni PC Manual p16-p17 (SK).jpg|256px|right]]&lt;br /&gt;
Page 16, section &amp;quot;Modrý útočník&amp;quot; (based on the section &amp;quot;Striker Blue&amp;quot; from the English manual): &lt;br /&gt;
*The class name (Hoplite Class) is translated as &amp;quot;Skákajúca trieda&amp;quot;, which means &amp;quot;Hopping Class&amp;quot;.&amp;lt;br&amp;gt;(Well, at least it fits their vanilla melee behaviour ^_^)&lt;br /&gt;
Page 16, section &amp;quot;Červený útočník&amp;quot; (based on the section &amp;quot;Striker Red&amp;quot; from the English manual): &lt;br /&gt;
*The accompanying image is a [[Fury | FURY]]!!! A totally different character class.&lt;br /&gt;
*The Headbutt Dash attack is translated as &amp;quot;Tupý úder hlavou&amp;quot;, which means &amp;quot;Dull Head Strike&amp;quot;.&amp;lt;br&amp;gt;(IMO, better translation would be &amp;quot;Hlavička&amp;quot;, which simply means &amp;quot;Headbutt&amp;quot;.)&lt;br /&gt;
Page 17, section &amp;quot;Zelený nindža&amp;quot; (based on the section &amp;quot;Ninja Green&amp;quot; from the English manual): &lt;br /&gt;
*The class name (Infiltrator Class) is translated as &amp;quot;Infiltrovaná trieda&amp;quot;, which means &amp;quot;Infiltrated Class&amp;quot;.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 18-19==&lt;br /&gt;
[[Image:Oni PC Manual p18-p19 (SK).jpg|256px|right]]&lt;br /&gt;
Page 18, section &amp;quot;Červený nindža&amp;quot; (based on the section &amp;quot;Ninja Red&amp;quot; from the English manual): &lt;br /&gt;
*The Lightning Driver attack is translated as &amp;quot;Bleskový pohon&amp;quot;. It is a fairly accurate word-for-word translation, but it misses the semantic meaning. This is a name of an attack, not a name of some engine.&amp;lt;br&amp;gt;(IMO better translation would be &amp;quot;Bleskový prieraz&amp;quot;, which word-for-word means &amp;quot;Lightning breakthrough&amp;quot;, but it sounds better in Slovak.)&lt;br /&gt;
Page 18, section &amp;quot;Zelený zúrivec&amp;quot; (based on the section &amp;quot;Fury Green&amp;quot; from the English manual): &lt;br /&gt;
*Slovak langauge is an [https://en.wikipedia.org/wiki/Slovak_declension inflected language]. The word &amp;quot;zúrivec&amp;quot; is of male grammatical gender. However, fury class is a female-exclusive character class.&amp;lt;br&amp;gt;(IMO, better translation would be &amp;quot;Zelená fúria&amp;quot;, which means &amp;quot;Green Fury&amp;quot;.)&lt;br /&gt;
*The Foot Stomp attack is translated as &amp;quot;Výkop nohou&amp;quot;, which means &amp;quot;A kick with the leg&amp;quot;.&amp;lt;br&amp;gt;(IMO better translation would be &amp;quot;Dupnutie&amp;quot;, which means &amp;quot;Stomp&amp;quot;.)&lt;br /&gt;
Page 19, sections &amp;quot;Modrý zúrivec&amp;quot; and &amp;quot;Červený zúrivci&amp;quot; (based on the sections &amp;quot;Fury Blue&amp;quot; &amp;quot;Fury Red&amp;quot; from the English manual):&lt;br /&gt;
*These two sections have the same translation issues as the Fury Green section.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 20-21==&lt;br /&gt;
[[Image:Oni PC Manual p20-p21 (SK).jpg|256px|right]]&lt;br /&gt;
Nothing funky here.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 22-23==&lt;br /&gt;
[[Image:Oni PC Manual p22-p23 (SK).jpg|256px|right]]&lt;br /&gt;
Page 22, sections &amp;quot;Modrý tankista&amp;quot; and &amp;quot;Červený tankista&amp;quot; (based on the sections &amp;quot;Tanker Blue&amp;quot; and &amp;quot;Tanker Red&amp;quot; from the English manual): &lt;br /&gt;
*The Blockbuster attack is translated as &amp;quot;Blokovanie&amp;quot;, which means &amp;quot;Blocking&amp;quot; (noun). &amp;lt;br&amp;gt;(IMO better translation would be &amp;quot;Blokodrvič&amp;quot;, which means &amp;quot;Block Shatterer&amp;quot;.)&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Pages 24-25==&lt;br /&gt;
[[Image:Oni PC Manual p24-p25 (SK).jpg|256px|right]]&lt;br /&gt;
Page 25, section &amp;quot;Autori&amp;quot; (based on the sections &amp;quot;Credits&amp;quot; from the English manual): &lt;br /&gt;
*This one page is the whole Credits section. Something is missing, right?&amp;lt;br&amp;gt;&#039;&#039;&#039;Bungie West and its employees are not mentioned at all!!!&#039;&#039;&#039;&amp;lt;br&amp;gt;(What a disgrace...)&lt;br /&gt;
[[Category:Real World]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Slovak_game_manual&amp;diff=28254</id>
		<title>Slovak game manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Slovak_game_manual&amp;diff=28254"/>
		<updated>2019-04-27T10:37:29Z</updated>

		<summary type="html">&lt;p&gt;Loser: Let&amp;#039;s have some fun :-)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For Slovak and Czech market, one edition of Oni was published by Kon Tiki multimedia ([http://kontiki.sk/index.php/en/ homepage of KonTiki.sk]).&amp;lt;br&amp;gt;&lt;br /&gt;
See [[:Category:Packaging images]], (SK) version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This edition also includes a manual written in Slovak language.&amp;lt;br&amp;gt;&lt;br /&gt;
See [[:Category:Manual (SK)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Info within the manual is largely based on the standard English manual. However, some parts of the Slovak manual are hilariously mistranslated.&amp;lt;br&amp;gt;&lt;br /&gt;
Most of the mistranslations stem from the fact that contrary to the commonly followed rule of translation (do not translate names unless necessary), in case of Slovak Oni game manual, most names (of people, of organizations, of items) are indeed translated.&amp;lt;br&amp;gt;&lt;br /&gt;
And of course those translated names sound silly. That&#039;s why that &amp;quot;don&#039;t translate names&amp;quot; rule exists.&lt;br /&gt;
&lt;br /&gt;
Also, images in the manual are in general low-quality black and white scans from the English manual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pages 2 - 3 ==&lt;br /&gt;
[[Image:Oni PC Manual p2-p3 (SK).jpg|256px|right]]&lt;br /&gt;
Page 3, chapter &amp;quot;Technická Protizločinecká Jednotka (TPJ)&amp;quot; (based on the chapter &amp;quot;The Technology Crimes Task Force (TCTF)&amp;quot; from the English Oni manual)&amp;lt;br&amp;gt;&lt;br /&gt;
*TCTF unit (&#039;&#039;&#039;T&#039;&#039;&#039;echnology &#039;&#039;&#039;C&#039;&#039;&#039;rimes &#039;&#039;&#039;T&#039;&#039;&#039;ask &#039;&#039;&#039;F&#039;&#039;&#039;orce) is translated as TPJ (&#039;&#039;&#039;T&#039;&#039;&#039;echnická &#039;&#039;&#039;P&#039;&#039;&#039;rotizločinecká &#039;&#039;&#039;J&#039;&#039;&#039;ednotka).&amp;lt;br&amp;gt;That would mean (when translated back to English) something like &amp;quot;Technic Anticrime Unit&amp;quot;.&amp;lt;br&amp;gt;Ingame textures are of course not changed, therefore good luck finding this TPJ, since all of the good guys have letters &amp;quot;TCTF&amp;quot; written all over their gear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pages 4 - 5 ==&lt;br /&gt;
[[Image:Oni PC Manual p4-p5 (SK).jpg|256px|right]]&lt;br /&gt;
Nothing funky here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pages 6 - 7 ==&lt;br /&gt;
[[Image:Oni PC Manual p6-p7 (SK).jpg|256px|right]]&lt;br /&gt;
Page 7, chapter &amp;quot;Pohyby&amp;quot; (based on the chapter &amp;quot;Moves&amp;quot; from the English Oni manual)&lt;br /&gt;
*In the lede, there is stated that Konoko &#039;&#039;&#039;is&#039;&#039;&#039; a one-dimensional coward.&amp;lt;br&amp;gt;(In the English manual the statement is that Konoko &#039;&#039;&#039;is not&#039;&#039;&#039; a one-dimensional coward.)&lt;br /&gt;
&lt;br /&gt;
*In the Escape moves section there is stated that escape moves are good for avoiding h2h combat altogether.&amp;lt;br&amp;gt;(In the English manual the statement is that escape moves are good for avoiding h2h attacks.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pages 8 - 9 ==&lt;br /&gt;
[[Image:Oni PC Manual p8-p9 (SK).jpg|256px|right]]&lt;br /&gt;
Page 8, continuation of the chapter &amp;quot;Pohyby&amp;quot; (ENG:&amp;quot;Moves&amp;quot;).&lt;br /&gt;
*Name of the Sledgehammer Heel combo is translated as &amp;quot;Kováčsky mlat&amp;quot;, which means &amp;quot;smithing hammer&amp;quot;.&amp;lt;br&amp;gt;(IMO, better translation would be &amp;quot;Drviaca päta&amp;quot;, &amp;quot;Crushing heel&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
*Name of the Backbreaker attack is translated as &amp;quot;Drina&amp;quot;, which means &amp;quot;backbreaking (very hard) labor&amp;quot;.&amp;lt;br&amp;gt;(seriously?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Page 9, chapter &amp;quot;Zbrane&amp;quot; (based on the chapter &amp;quot;Weapons&amp;quot; from the English Oni manual)&lt;br /&gt;
*In the hint for the Campbell Equalizer Mk4, there is stated that the weapon itself compensates its high recoil by the fact that it is a semi-automatic weapon.&amp;lt;br&amp;gt;(WTF did I just read ^_^? In the English manual the statement is that the player must compensate for the high recoil of Campell Equalizer when firing the gun on full auto)&lt;br /&gt;
&lt;br /&gt;
*Name of the Hughes Black Adder SMG is translated as &amp;quot;Obrovská Čierna Zmija SMG&amp;quot;, which means &amp;quot;&#039;&#039;&#039;Huge&#039;&#039;&#039; Black Adder SMG&amp;quot;.&amp;lt;br&amp;gt;(innuendo? ^_^)&lt;br /&gt;
&lt;br /&gt;
*In the hint for the SML3 Plasma Rifle, there is stated that pressure is rapidly rising during the plasma ball&#039;s flight. It is also stated that the player should navigate their tragets accordingly.&amp;lt;br&amp;gt;(In the English manual the statement is that plasma bursts accelerate rapidly during flight and that player should lead their targets, meaning player should aim a bit further in a direction the target is moving.)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pages 10 - 11 ==&lt;br /&gt;
[[Image:Oni PC Manual p10-p11 (SK).jpg|256px|right]]&lt;br /&gt;
Page 10, continuation of the chapter &amp;quot;Zbrane&amp;quot; (ENG:&amp;quot;Weapons&amp;quot;).&lt;br /&gt;
*Name of the Phase Stream Projector is translated as &amp;quot;Fázový Smerovy Projektor&amp;quot;, which means &amp;quot;Phase Direction Projector&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*In the description of the Phase Stream Projector, there is stated the bigger mounted version of this weapon was deployed during the &amp;quot;&#039;&#039;&#039;Spontaneous&#039;&#039;&#039; Riots&amp;quot; of 2012.&amp;lt;br&amp;gt;(In the English manual the statement is that the weapon was deployed during the &amp;quot;&#039;&#039;&#039;Freedom&#039;&#039;&#039; Riots&amp;quot; of 2012.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Page 11, continuation of the chapter &amp;quot;Zbrane&amp;quot; (ENG:&amp;quot;Weapons&amp;quot;).&lt;br /&gt;
*Name of the Scram Cannon is translated as &amp;quot;Škrabákový (bezpečnostný) kanón&amp;quot;, which means &amp;quot;Scraper (Security) Cannon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*In the description of the Scram Cannon, there is stated that this weapon is the most favourite weapon in the Syndicate&#039;s arsenal.&amp;lt;br&amp;gt;(In the English manual, the statement is that the Scram Cannon is the most indiscriminate weapon in the Syndicate&#039;s arsenal.)&lt;br /&gt;
&lt;br /&gt;
*In the hint for the Scram Cannon, there is stated that Scram Cannon warheads are interactive at close range.&amp;lt;br&amp;gt;(In the English manual, the statement is that the Scram Cannon warheads are &#039;&#039;&#039;inactive&#039;&#039;&#039; at close range.)&lt;br /&gt;
&lt;br /&gt;
*Name of the Mercury Bow is translated as &amp;quot;Bystrý luk&amp;quot;, which means &amp;quot;Swift bow&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*Name of the Screaming Cannon is translated as &amp;quot;Fantastický kanón&amp;quot;, which means &amp;quot;Fantastic Cannon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*In the hint for the Screaming Cannon there is stated that the Screaming Cannon transforms its controlling of life by the force of an existence, but any life which comes too close will be dried.&amp;lt;br&amp;gt;(Now what the actual heck, this part does not make sense even in the original Slovak.)&amp;lt;br&amp;gt;(In the English manual, the statement is that the cannon masks presence of its wielder from the Screaming Cell entity, but any life that comes too close to the Screaming Cell will be drained, regardless of masking.)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pages 12 - 13 ==&lt;br /&gt;
[[Image:Oni PC Manual p12-p13 (SK).jpg|256px|right]]&lt;br /&gt;
TBD...&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_Back_(SK).jpg&amp;diff=28253</id>
		<title>File:Oni PC Manual Back (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_Back_(SK).jpg&amp;diff=28253"/>
		<updated>2019-04-27T08:09:57Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p24-p25_(SK).jpg&amp;diff=28252</id>
		<title>File:Oni PC Manual p24-p25 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p24-p25_(SK).jpg&amp;diff=28252"/>
		<updated>2019-04-27T08:09:30Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p22-p23_(SK).jpg&amp;diff=28251</id>
		<title>File:Oni PC Manual p22-p23 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p22-p23_(SK).jpg&amp;diff=28251"/>
		<updated>2019-04-27T08:09:21Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p20-p21_(SK).jpg&amp;diff=28250</id>
		<title>File:Oni PC Manual p20-p21 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p20-p21_(SK).jpg&amp;diff=28250"/>
		<updated>2019-04-27T08:09:10Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p18-p19_(SK).jpg&amp;diff=28249</id>
		<title>File:Oni PC Manual p18-p19 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p18-p19_(SK).jpg&amp;diff=28249"/>
		<updated>2019-04-27T08:09:01Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p16-p17_(SK).jpg&amp;diff=28248</id>
		<title>File:Oni PC Manual p16-p17 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p16-p17_(SK).jpg&amp;diff=28248"/>
		<updated>2019-04-27T08:08:50Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p14-p15_(SK).jpg&amp;diff=28247</id>
		<title>File:Oni PC Manual p14-p15 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p14-p15_(SK).jpg&amp;diff=28247"/>
		<updated>2019-04-27T08:08:40Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p12-p13_(SK).jpg&amp;diff=28246</id>
		<title>File:Oni PC Manual p12-p13 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p12-p13_(SK).jpg&amp;diff=28246"/>
		<updated>2019-04-27T08:08:31Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p10-p11_(SK).jpg&amp;diff=28245</id>
		<title>File:Oni PC Manual p10-p11 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p10-p11_(SK).jpg&amp;diff=28245"/>
		<updated>2019-04-27T08:08:20Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p08-p09_(SK).jpg&amp;diff=28244</id>
		<title>File:Oni PC Manual p08-p09 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p08-p09_(SK).jpg&amp;diff=28244"/>
		<updated>2019-04-27T08:08:09Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p06-p07_(SK).jpg&amp;diff=28243</id>
		<title>File:Oni PC Manual p06-p07 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p06-p07_(SK).jpg&amp;diff=28243"/>
		<updated>2019-04-27T08:07:57Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p04-p05_(SK).jpg&amp;diff=28242</id>
		<title>File:Oni PC Manual p04-p05 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p04-p05_(SK).jpg&amp;diff=28242"/>
		<updated>2019-04-27T08:07:46Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p02-p03_(SK).jpg&amp;diff=28241</id>
		<title>File:Oni PC Manual p02-p03 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p02-p03_(SK).jpg&amp;diff=28241"/>
		<updated>2019-04-27T08:07:34Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p01_(SK).jpg&amp;diff=28240</id>
		<title>File:Oni PC Manual p01 (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_p01_(SK).jpg&amp;diff=28240"/>
		<updated>2019-04-27T08:07:02Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual (SK)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Category:Manual_(Slovak,_Windows)&amp;diff=28239</id>
		<title>Category:Manual (Slovak, Windows)</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Category:Manual_(Slovak,_Windows)&amp;diff=28239"/>
		<updated>2019-04-27T08:03:21Z</updated>

		<summary type="html">&lt;p&gt;Loser: Created page with &amp;quot;This is a Slovak version of Oni&amp;#039;s game manual for Windows.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a Slovak version of Oni&#039;s game manual for Windows.&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_Front_(SK).jpg&amp;diff=28238</id>
		<title>File:Oni PC Manual Front (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_Front_(SK).jpg&amp;diff=28238"/>
		<updated>2019-04-27T08:02:38Z</updated>

		<summary type="html">&lt;p&gt;Loser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual (SK)]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_Front_(SK).jpg&amp;diff=28237</id>
		<title>File:Oni PC Manual Front (SK).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Oni_PC_Manual_Front_(SK).jpg&amp;diff=28237"/>
		<updated>2019-04-27T08:00:25Z</updated>

		<summary type="html">&lt;p&gt;Loser: Category:Manual_SK&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Manual_SK]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Windows_(SK)_CD-ROM.jpg&amp;diff=28236</id>
		<title>File:Windows (SK) CD-ROM.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Windows_(SK)_CD-ROM.jpg&amp;diff=28236"/>
		<updated>2019-04-26T21:42:23Z</updated>

		<summary type="html">&lt;p&gt;Loser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Oni CD-ROM which is a part of a Slovak edition of Oni. The game installer gives option to install the game in French (standard), English or German.&lt;br /&gt;
&lt;br /&gt;
[[Category:Packaging images‎]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Windows_(SK)_CD-ROM.jpg&amp;diff=28235</id>
		<title>File:Windows (SK) CD-ROM.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Windows_(SK)_CD-ROM.jpg&amp;diff=28235"/>
		<updated>2019-04-26T21:41:55Z</updated>

		<summary type="html">&lt;p&gt;Loser: The Oni CD-ROM which is a part of a Slovak edition of Oni. The game installer gives option to instal the game in French (standard), English or German.

Category:Packaging images‎&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Oni CD-ROM which is a part of a Slovak edition of Oni. The game installer gives option to instal the game in French (standard), English or German.&lt;br /&gt;
&lt;br /&gt;
[[Category:Packaging images‎]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Windows_(SK)_box_art_-_back.jpg&amp;diff=28234</id>
		<title>File:Windows (SK) box art - back.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Windows_(SK)_box_art_-_back.jpg&amp;diff=28234"/>
		<updated>2019-04-26T21:35:24Z</updated>

		<summary type="html">&lt;p&gt;Loser: Back side of a Slovak edition of Oni. It is basically the UK back cover (both the texts and the pictures), just differently arranged and differently framed.
Texts are of course translated into Slovak language.

Category:Packaging images‎&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back side of a Slovak edition of Oni. It is basically the UK back cover (both the texts and the pictures), just differently arranged and differently framed.&lt;br /&gt;
Texts are of course translated into Slovak language.&lt;br /&gt;
&lt;br /&gt;
[[Category:Packaging images‎]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Windows_(SK)_box_art_-_front.jpg&amp;diff=28233</id>
		<title>File:Windows (SK) box art - front.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Windows_(SK)_box_art_-_front.jpg&amp;diff=28233"/>
		<updated>2019-04-26T21:08:00Z</updated>

		<summary type="html">&lt;p&gt;Loser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Front side of a Slovak edition of Oni.&lt;br /&gt;
It is basically the UK front cover framed by some graphic elements.&lt;br /&gt;
Text under the picture can be roughly translated as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Brilliant, stylish and fun PACKED, Konoko and Oni from a WINNING team.&amp;quot;&lt;br /&gt;
-Video Gamer&lt;br /&gt;
&lt;br /&gt;
(Who&#039;s &amp;quot;Video Gamer&amp;quot;?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Packaging images‎]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Windows_(SK)_box_art_-_front.jpg&amp;diff=28232</id>
		<title>File:Windows (SK) box art - front.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Windows_(SK)_box_art_-_front.jpg&amp;diff=28232"/>
		<updated>2019-04-26T21:06:43Z</updated>

		<summary type="html">&lt;p&gt;Loser: Front side of a Slovak edition of Oni.
It is basically the German front cover framed by some graphic elements.
Text under the picture can be roughly translated as:

&amp;quot;Brilliant, stylish and fun PACKED, Konoko and Oni from a WINNING team.&amp;quot;
-Video Gamer...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Front side of a Slovak edition of Oni.&lt;br /&gt;
It is basically the German front cover framed by some graphic elements.&lt;br /&gt;
Text under the picture can be roughly translated as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Brilliant, stylish and fun PACKED, Konoko and Oni from a WINNING team.&amp;quot;&lt;br /&gt;
-Video Gamer&lt;br /&gt;
&lt;br /&gt;
(Who&#039;s &amp;quot;Video Gamer&amp;quot;?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Packaging images‎]]&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:BINA/OBJC/NEUT&amp;diff=22999</id>
		<title>XML:BINA/OBJC/NEUT</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:BINA/OBJC/NEUT&amp;diff=22999"/>
		<updated>2014-01-24T18:38:33Z</updated>

		<summary type="html">&lt;p&gt;Loser: Documenting NEUT fields while fixing Samer&amp;#039;s Jamie ^_^&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_OBJC_Header | type=NEUT | prev=MELE | next=PART | name=Neutral behavior collection }}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===general information===&lt;br /&gt;
* The xml code on this page is based on onisplit &#039;&#039;&#039;v0.9.61.0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;BINACJBONeutral.oni&#039;&#039;&#039; is level specific. (It can be found in AE/AEInstaller/vanilla/level&#039;&#039;&#039;X&#039;&#039;&#039;_Final.dat)&lt;br /&gt;
* Press control to talk with a character (if possible). The interaction depends on what id that character has.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===file structure===&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni&amp;gt;&lt;br /&gt;
    &amp;lt;Objects&amp;gt;&lt;br /&gt;
            &#039;&#039;&#039;&#039;&#039;[...]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;/Objects&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[...]&#039;&#039;&#039;&#039;&#039; means at least one neutral behavior block. Paste all a behavior data into there (this includes &amp;lt;NEUT Id=&amp;quot;...&amp;quot;&amp;gt; and &amp;lt;/NEUT&amp;gt; tag).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;NEUT Id=&amp;quot;1853&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;146.41217 -48.8205528 1027.55249&amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Rotation&amp;gt;0 0 0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;/Header&amp;gt;&lt;br /&gt;
            &amp;lt;OSD&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;Give VDG Pistol (CivFem)&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;NeutralId&amp;gt;2&amp;lt;/NeutralId&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;NoResumeAfterGive&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Ranges&amp;gt;&lt;br /&gt;
                    &amp;lt;Trigger&amp;gt;100&amp;lt;/Trigger&amp;gt;&lt;br /&gt;
                    &amp;lt;Talk&amp;gt;40&amp;lt;/Talk&amp;gt;&lt;br /&gt;
                    &amp;lt;Follow&amp;gt;200&amp;lt;/Follow&amp;gt;&lt;br /&gt;
                    &amp;lt;Enemy&amp;gt;70&amp;lt;/Enemy&amp;gt;&lt;br /&gt;
                &amp;lt;/Ranges&amp;gt;&lt;br /&gt;
                &amp;lt;Speech&amp;gt;&lt;br /&gt;
                    &amp;lt;Trigger&amp;gt;civfem_trigger&amp;lt;/Trigger&amp;gt;&lt;br /&gt;
                    &amp;lt;Abort&amp;gt;civfem_abort&amp;lt;/Abort&amp;gt;&lt;br /&gt;
                    &amp;lt;Enemy&amp;gt;civfem_enemy&amp;lt;/Enemy&amp;gt;&lt;br /&gt;
                &amp;lt;/Speech&amp;gt;&lt;br /&gt;
                &amp;lt;Script&amp;gt;&lt;br /&gt;
                    &amp;lt;AfterTalk&amp;gt;&amp;lt;/AfterTalk&amp;gt;&lt;br /&gt;
                &amp;lt;/Script&amp;gt;&lt;br /&gt;
                &amp;lt;Rewards&amp;gt;&lt;br /&gt;
                    &amp;lt;WeaponClass&amp;gt;w6_vdg&amp;lt;/WeaponClass&amp;gt;&lt;br /&gt;
                    &amp;lt;Ammo&amp;gt;0&amp;lt;/Ammo&amp;gt;&lt;br /&gt;
                    &amp;lt;EnergyCell&amp;gt;0&amp;lt;/EnergyCell&amp;gt;&lt;br /&gt;
                    &amp;lt;Hypo&amp;gt;0&amp;lt;/Hypo&amp;gt;&lt;br /&gt;
                    &amp;lt;Other&amp;gt;&amp;lt;/Other&amp;gt;&lt;br /&gt;
                &amp;lt;/Rewards&amp;gt;&lt;br /&gt;
                &amp;lt;DialogLines&amp;gt;&lt;br /&gt;
                    &amp;lt;DialogLine&amp;gt;&lt;br /&gt;
                        &amp;lt;Flags&amp;gt;&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                        &amp;lt;Anim&amp;gt;0&amp;lt;/Anim&amp;gt;&lt;br /&gt;
                        &amp;lt;OtherAnim&amp;gt;0&amp;lt;/OtherAnim&amp;gt;&lt;br /&gt;
                        &amp;lt;SpeechName&amp;gt;civfem_gift_weapon&amp;lt;/SpeechName&amp;gt;&lt;br /&gt;
                    &amp;lt;/DialogLine&amp;gt;&lt;br /&gt;
                    &amp;lt;DialogLine&amp;gt;&lt;br /&gt;
                        &amp;lt;Flags&amp;gt;GiveItems&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                        &amp;lt;Anim&amp;gt;202&amp;lt;/Anim&amp;gt;&lt;br /&gt;
                        &amp;lt;OtherAnim&amp;gt;0&amp;lt;/OtherAnim&amp;gt;&lt;br /&gt;
                        &amp;lt;SpeechName&amp;gt;&amp;lt;/SpeechName&amp;gt;&lt;br /&gt;
                    &amp;lt;/DialogLine&amp;gt;&lt;br /&gt;
                &amp;lt;/DialogLines&amp;gt;&lt;br /&gt;
            &amp;lt;/OSD&amp;gt;&lt;br /&gt;
        &amp;lt;/NEUT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===tags===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
| flag, float&lt;br /&gt;
| Don&#039;t change this.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Oni&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;ObjectCollection&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;NEUT Id=&amp;quot;1853&amp;quot;&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Id doesn&#039;t matter here.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Header&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
*None&lt;br /&gt;
*Locked&lt;br /&gt;
*PlacedInGame&lt;br /&gt;
*Temporary&lt;br /&gt;
*Gunk&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Position&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
| x y z position, useless here&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rotation&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
| x y z rotation, useless here&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;OSD&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Name&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| A name of the NEUT profile. Used by a [[BSL]] command &#039;&#039;&#039;ai2_neutralbehavior&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;NeutralId&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| used by [[XML:BINA/OBJC/CHAR|BINA/OBJC/CHAR]] and [[XML:BINA/OBJC/MELE|BINA/CJBO/MELE]]&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=top| flag &lt;br /&gt;
|&lt;br /&gt;
*&#039;&#039;&#039;None&#039;&#039;&#039; - no flags utilized&lt;br /&gt;
*&#039;&#039;&#039;NoResume&#039;&#039;&#039; - if the conversation is interrupted, NEUT behavior terminates. Conversation cannot be reinitaitated.&lt;br /&gt;
*&#039;&#039;&#039;NoResumeAfterGive&#039;&#039;&#039; - interrupted conversation can be reinitiated, but only if so far no executed dialog line had the flag &amp;quot;GiveItems&amp;quot;, otherwise NEUT behavior terminates.&amp;lt;BR&amp;gt;Also, if some dialog line is interrupted AFTER the dialog line with &amp;quot;GiveItems&amp;quot; flag, then the sound file of the interrupted dialog line is fully played (is not stopped by the conversation interruption). Maybe a bug?&lt;br /&gt;
*&#039;&#039;&#039;Uninterruptible&#039;&#039;&#039; - probably should disable player&#039;s option to interrupt the conversation by some offensive action (punch, kick), but tests are negative. Maybe defunct?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Ranges&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Trigger&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| A distance between the AI2 character and the player character when the NEUT behavior mechanics kick in.&amp;lt;BR&amp;gt;&lt;br /&gt;
Outside of this distance, NEUT behavior of the given AI2 character does not execute.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Talk&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
A threshold distance for approaching the player character:&lt;br /&gt;
*If &#039;&#039;&#039;&amp;quot;distance to player&amp;quot; &amp;gt; &amp;quot;Talk range&amp;quot;&#039;&#039;&#039; then NEUT driven AI2 character keeps approaching the player character.&lt;br /&gt;
*If  &#039;&#039;&#039;&amp;quot;distance to player&amp;quot; =&amp;lt; &amp;quot;Talk range&amp;quot;&#039;&#039;&#039; then NEUT driven AI2 character stands still, attempts to rotate in order to keep looking at the player character and keeps repeating the TRAM animType=230 (0xE6, Hail) + Speech &amp;quot;Trigger&amp;quot; (see tag below) in a 5 second interval.&lt;br /&gt;
*If  &#039;&#039;&#039;&amp;quot;distance to player&amp;quot; =&amp;lt; &amp;quot;Talk range&amp;quot;&#039;&#039;&#039; AND also &#039;&#039;&#039;&amp;quot;distance to player&amp;quot; =&amp;lt; 35 game world units&#039;&#039;&#039; (empiric obesrvation), then the conversation can be triggered by facing the NEUT driven AI2 character and pressing the action key.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Follow&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &lt;br /&gt;
An allowed &amp;quot;travel distance&amp;quot; for the NEUT driven AI2 character, starting from the moment player entered the &#039;&#039;&#039;Trigger range&#039;&#039;&#039;.&amp;lt;BR&amp;gt;NEUT driven AI2 character is allowed to translocate only this specified distance from its pre-trigger location before it gives up on chasing the player character.&amp;lt;BR&amp;gt;&lt;br /&gt;
When &#039;&#039;&#039;Follow distance&#039;&#039;&#039; is depleted, NEUT behavior for given AI2 character is terminated and control over AI2 character is handed to some other AI2 system (for example the Patrol Path system).&amp;lt;BR&amp;gt;Of course if the player character again enters the &#039;&#039;&#039;Trigger range&#039;&#039;&#039;, then NEUT mechanics kick in again (with fresh Follow distance to deplete).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Enemy&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &lt;br /&gt;
A range in which NEUT driven AI2 character will react on present enemies, even those which are behind its back. Who is considered &amp;quot;enemy&amp;quot; is defined according to Oni team affiliations.&amp;lt;BR&amp;gt;&lt;br /&gt;
*If some enemy is present within the &#039;&#039;&#039;Enemy range&#039;&#039;&#039; prior to the conversation, then conversation cannot be triggered till the enemy is either outside of &#039;&#039;&#039;Enemy range&#039;&#039;&#039; or neutralized.&lt;br /&gt;
*If some enemy gets inside the &#039;&#039;&#039;Enemy range&#039;&#039;&#039; while the conversation is running, then the conversation is stopped and the &#039;&#039;&#039;Speech Enemy&#039;&#039;&#039; (see tag below) is played.&lt;br /&gt;
&lt;br /&gt;
The further reaction of the NEUT driven AI2 character on enemy differs acording to [[CHAR]] setup - it can start cowering in fear (NonCombatant flag is set) or go attack the enemy (default setup).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Speech&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Trigger&amp;gt;&lt;br /&gt;
|valign=top| char[32]&lt;br /&gt;
|valign=top| Speech sound for hailing the player.&lt;br /&gt;
If  &#039;&#039;&#039;&amp;quot;distance to player&amp;quot; =&amp;lt; &amp;quot;Talk range&amp;quot;&#039;&#039;&#039; then NEUT driven AI2 character stands still, attempts to rotate in order to keep looking at the player character and keeps repeating the TRAM animType=230 (0xE6, Hail) + this &#039;&#039;&#039;Speech &amp;quot;Trigger&amp;quot;&#039;&#039;&#039; in a 5 second interval.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font style=&amp;quot;color:#777777&amp;quot;&amp;gt;.amb.oni&amp;lt;/font&amp;gt; (without file pre-/suffix)&lt;br /&gt;
examples of such OSBD amb files:&lt;br /&gt;
: civfem_trigger&lt;br /&gt;
: hey_konoko&lt;br /&gt;
: civmale1_trigger&lt;br /&gt;
: civmale2_trigger&lt;br /&gt;
: civmale3_trigger&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Abort&amp;gt;&lt;br /&gt;
|valign=top| char[32]&lt;br /&gt;
|valign=top| Speech sound for the player interruption of the conversation.&amp;lt;BR&amp;gt;&lt;br /&gt;
This sound is played when the player aborts the conversation by preforming some offensive action (punch, kick) in the middle of the conversation.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font style=&amp;quot;color:#777777&amp;quot;&amp;gt;.amb.oni&amp;lt;/font&amp;gt; (without file pre-/suffix)&lt;br /&gt;
examples of such OSBD amb files:&lt;br /&gt;
: civfem_abort&lt;br /&gt;
: see_you_later&lt;br /&gt;
: civmale1_abort&lt;br /&gt;
: civmale2_abort&lt;br /&gt;
: civmale3_abort&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Enemy&amp;gt;&lt;br /&gt;
|valign=top| char[32]&lt;br /&gt;
|valign=top| Speech sound for conversation interruption because of some enemy is present within the &#039;&#039;&#039;Enemy range&#039;&#039;&#039;.&amp;lt;BR&amp;gt;&lt;br /&gt;
This sound is played if some enemy gets inside the &#039;&#039;&#039;Enemy range&#039;&#039;&#039; in the middle of the conversation.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font style=&amp;quot;color:#777777&amp;quot;&amp;gt;.amb.oni&amp;lt;/font&amp;gt; (without file pre-/suffix)&lt;br /&gt;
examples of such OSBD amb files:&lt;br /&gt;
: civfem_enemy&lt;br /&gt;
: what_the&lt;br /&gt;
: civmale1_enemy&lt;br /&gt;
: civmale2_enemy&lt;br /&gt;
: civmale3_enemy&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Script&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AfterTalk&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| A name of a BSL function. The function will will be executed after the conversation is finished.&amp;lt;BR&amp;gt;&lt;br /&gt;
The function in BSL has an optional parameter (&#039;&#039;&#039;string&#039;&#039;&#039; type) - name of the NEUT driven AI2 character.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rewards&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| You can get rewards for saving people. A reward can be a weapon, ammo, cells, hypos, shield, phase cloak, and LSI.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;WeaponClass&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| Any weapon, filename without prefix ONWC and suffix .oni; for example &amp;quot;w6_vdg&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Ammo&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Number of ammo clips.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;EnergyCell&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Number of energy cells.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Hypo&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Number of hypo sprays.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Other&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|valign=top| Combinations of flags are possible. Flags:&lt;br /&gt;
*Shield&lt;br /&gt;
*Invisibility&lt;br /&gt;
*LSI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DialogLines&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DialogLine&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| There can be multiple dialog lines.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Combinations of flags are possible. Flags:&lt;br /&gt;
*&#039;&#039;&#039;None&#039;&#039;&#039; - no special flags.&lt;br /&gt;
*&#039;&#039;&#039;IsPlayer&#039;&#039;&#039; - reverses roles of Anim and OtherAnim - now Anim is applied on the player character and OtherAnim is applied on the NEUT driven AI2 character.&lt;br /&gt;
*&#039;&#039;&#039;GiveItems&#039;&#039;&#039; - will make conversation participants play respective give and take animations AND will add item(s) to the player character&#039;s inventory. This exchange cannot be interrupted by player&#039;s input.&lt;br /&gt;
*&#039;&#039;&#039;AnimOnce&#039;&#039;&#039; - NEUT driven AI2 character will play its prescribed animType only once during the dialog line.&lt;br /&gt;
*&#039;&#039;&#039;OtherAnimOnce&#039;&#039;&#039; - player character will play its prescribed animType only once during the dialog line.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| [[XML:StNA#animation_types|&amp;lt;Anim&amp;gt;]]&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| AnimType ID of the TRAM applied on NEUT driven AI2 character during this dialog line.&amp;lt;BR&amp;gt;Any TRAM which has animState=&amp;quot;Standing&amp;quot; and is present in a NEUT driven AI2 character&#039;s [[TRAC]] should be valid.&lt;br /&gt;
: 0 (None)&lt;br /&gt;
: 200 (Act_No)&lt;br /&gt;
: 201 (Act_Yes)&lt;br /&gt;
: 202 (Act_Talk)&lt;br /&gt;
: 203 (Act_Shrug)&lt;br /&gt;
: 204 (Act_Shout)&lt;br /&gt;
|-&lt;br /&gt;
| [[XML:StNA#animation_types|&amp;lt;OtherAnim&amp;gt;]]&lt;br /&gt;
| integer&lt;br /&gt;
| AnimType ID of the TRAM applied on the player character during this dialog line.&amp;lt;BR&amp;gt;Any TRAM which has animState=&amp;quot;Standing&amp;quot; and is present in the player character&#039;s [[TRAC]] should be valid.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;SpeechName&amp;gt;&lt;br /&gt;
|valign=top| char[32]&lt;br /&gt;
|The actual sound played during the dialog line. Length of this sound file defines length of the dialog line.&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font style=&amp;quot;color:#777777&amp;quot;&amp;gt;.amb.oni&amp;lt;/font&amp;gt; (without file pre-/suffix)&lt;br /&gt;
for example:&lt;br /&gt;
: talking&lt;br /&gt;
: civfem_gift_weapon&lt;br /&gt;
: civfem_gift_hypo&lt;br /&gt;
: civfem_gift_force_field&lt;br /&gt;
: civmale1_gift_weaponS&lt;br /&gt;
: civmale2_gift_weapon&lt;br /&gt;
: civmale1_gift_ammo&lt;br /&gt;
: civmale2_gift_ammo&lt;br /&gt;
: civmale3_gift_ammo&lt;br /&gt;
: civmale1_gift_hypoS&lt;br /&gt;
: civmale2_gift_hypo&lt;br /&gt;
: civmale3_gift_hypo&lt;br /&gt;
: civmale1_gift_force_field&lt;br /&gt;
: civmale2_gift_force_field&lt;br /&gt;
: civmale3_gift_force_field&lt;br /&gt;
: c03_12_06civ1&lt;br /&gt;
: c03_12_07civ1&lt;br /&gt;
: c03_12_08tctffag1&lt;br /&gt;
: c03_12_09tctffag2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML_talk:BINA/PAR3&amp;diff=22862</id>
		<title>XML talk:BINA/PAR3</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML_talk:BINA/PAR3&amp;diff=22862"/>
		<updated>2013-09-11T23:13:02Z</updated>

		<summary type="html">&lt;p&gt;Loser: OBJECTION!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Discussion on &amp;lt;StopIfBreakable /&amp;gt;===&lt;br /&gt;
&#039;&#039;&#039;Controversial phrase:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;Within the HitWall PAR3 event, &#039;&#039;[&amp;lt;StopIfBreakable /&amp;gt;]&#039;&#039; stops the exection of all PAR3 actions listed BELOW this PAR3 action if the HitWall was called against a breakable material (in vanilla Oni, the only breakable material is glass).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example of &amp;lt;StopIfBreakable /&amp;gt; not stopping a later action:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
modified BINA3RAPw8_mbo_p01&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;StopIfBreakable /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                &amp;lt;ImpactEffect&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactType&amp;gt;w8_mbo&amp;lt;/ImpactType&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactModifier&amp;gt;2&amp;lt;/ImpactModifier&amp;gt;&lt;br /&gt;
                &amp;lt;/ImpactEffect&amp;gt;&lt;br /&gt;
                &amp;lt;Die /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_used.wmv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;ImpactEffect&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactType&amp;gt;w8_mbo&amp;lt;/ImpactType&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactModifier&amp;gt;2&amp;lt;/ImpactModifier&amp;gt;&lt;br /&gt;
                &amp;lt;/ImpactEffect&amp;gt;&lt;br /&gt;
                &amp;lt;Die /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_not_used.wmv&lt;br /&gt;
: Side note: There&#039;s no visible effect (like decal) on the breakable glass because of ONIE.&lt;br /&gt;
&lt;br /&gt;
For better visibility we can also repeat the two tests with a plasma effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;StopIfBreakable /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                &amp;lt;ImpactEffect&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactType&amp;gt;w3_phr&amp;lt;/ImpactType&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactModifier&amp;gt;0&amp;lt;/ImpactModifier&amp;gt;&lt;br /&gt;
                &amp;lt;/ImpactEffect&amp;gt;&lt;br /&gt;
                &amp;lt;Die /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_used_phr3_alt.wmv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;ImpactEffect&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactType&amp;gt;w3_phr&amp;lt;/ImpactType&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactModifier&amp;gt;0&amp;lt;/ImpactModifier&amp;gt;&lt;br /&gt;
                &amp;lt;/ImpactEffect&amp;gt;&lt;br /&gt;
                &amp;lt;Die /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_not_used_phr3_alt.wmv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mercury Bow videos prove exactly what was written, no contradictions.&lt;br /&gt;
*&amp;quot;StopIfBreakable_used.wmw&amp;quot; -&amp;gt; mercury bow pellet encounters breakable material. &#039;&#039;&#039;StopIfBreakable&#039;&#039;&#039; prevents the execution of both &amp;lt;ImpactEffect&amp;gt; action and more importantly the &amp;lt;Die /&amp;gt; action. Thus the pellet goes through glass and &amp;quot;dies&amp;quot; later, after colliding with a non-breakable wall (and leaving an ImpactEffect).&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;StopIfBreakable_not_used.wmv&amp;quot; - if the action &#039;&#039;&#039;StopIfBreakable&#039;&#039;&#039; is NOT used, then any collision of the pellet with any kind of a wall (even with breakable glass) will let the &amp;lt;ImpactEffect&amp;gt; and &amp;lt;Die /&amp;gt; execute. The pellet &amp;quot;dies&amp;quot; upon impact with the breakable glass and does not continue through. Also, since there is no match in ONIE, no Impact Effect is left on the breakable glass.&lt;br /&gt;
--[[User:Loser|Loser]] ([[User talk:Loser|talk]]) 01:13, 12 September 2013 (CEST)&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:BINA/PAR3&amp;diff=22851</id>
		<title>XML:BINA/PAR3</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:BINA/PAR3&amp;diff=22851"/>
		<updated>2013-09-02T12:34:18Z</updated>

		<summary type="html">&lt;p&gt;Loser: StopIfBreakable really does &amp;quot;stop if breakable&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_BINA_Header|prev=ONIE|type=PAR3|next=SABD|name=Particle v3}}&lt;br /&gt;
&lt;br /&gt;
==file structure== &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni&amp;gt;&lt;br /&gt;
    &amp;lt;Particle Name=&amp;quot;&#039;&#039;particle_file_name&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Options&amp;gt;&lt;br /&gt;
            &amp;lt;Lifetime&amp;gt;&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
            &amp;lt;DisableDetailLevel&amp;gt;[... see &#039;&#039;&#039;[[#options|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/DisableDetailLevel&amp;gt;&lt;br /&gt;
            &amp;lt;Decorative&amp;gt;&amp;lt;/Decorative&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Options&amp;gt;&lt;br /&gt;
        &amp;lt;Properties&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Properties&amp;gt;&lt;br /&gt;
        &amp;lt;Appearance&amp;gt;&lt;br /&gt;
            &amp;lt;DisplayType&amp;gt;[... see &#039;&#039;&#039;[[#appearance|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/DisplayType&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Appearance&amp;gt;&lt;br /&gt;
        &amp;lt;Attractor&amp;gt;&lt;br /&gt;
            &amp;lt;Target&amp;gt;[... see &#039;&#039;&#039;[[#attractor|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/Target&amp;gt;&lt;br /&gt;
            &amp;lt;Selector&amp;gt;[... see &#039;&#039;&#039;[[#attractor|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/Selector&amp;gt;&lt;br /&gt;
            &amp;lt;Class /&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Attractor&amp;gt;&lt;br /&gt;
        &#039;&#039;&#039;[[#variable storage types|&amp;lt;Variables&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Variables&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters&amp;gt;&lt;br /&gt;
            &amp;lt;Emitter&amp;gt;&lt;br /&gt;
                [... see &#039;&#039;&#039;[[#emitter|HERE]]&#039;&#039;&#039; for emitter data]&lt;br /&gt;
            &amp;lt;/Emitter&amp;gt;&lt;br /&gt;
        &amp;lt;/Emitters&amp;gt;&lt;br /&gt;
        &amp;lt;Events&amp;gt;&lt;br /&gt;
            [... see &#039;&#039;&#039;[[#event types|HERE]]&#039;&#039;&#039; for &#039;&#039;&#039;&#039;&#039;&amp;lt;event_type_tag&amp;gt;&#039;&#039;&#039;&#039;&#039;]&lt;br /&gt;
 		[... see &#039;&#039;&#039;[[#action types and parameters|HERE]]&#039;&#039;&#039; for &#039;&#039;&#039;&amp;lt;action_type_tag&amp;gt;&#039;&#039;&#039;]&lt;br /&gt;
                    [... see &#039;&#039;&#039;[[#action types and parameters|HERE]]&#039;&#039;&#039; for &#039;&#039;&#039;&#039;&#039;&amp;lt;parameter_tag&amp;gt;[[#parameter value types|value]]&amp;lt;/parameter_tag&amp;gt;&#039;&#039;&#039;&#039;&#039;]&lt;br /&gt;
 		&#039;&#039;&amp;lt;action_type_tag&amp;gt;&#039;&#039;&lt;br /&gt;
            &#039;&#039;&amp;lt;/event_type_tag&amp;gt;&#039;&#039;&lt;br /&gt;
        &amp;lt;/Events&amp;gt;&lt;br /&gt;
    &amp;lt;/Particle&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==options==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Lifetime&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Particle exist for X seconds.&lt;br /&gt;
: X is float value, so you could write 1.5 if 1 second is too less and 2 too many.&lt;br /&gt;
: 0 means an infinite lifetime.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DisableDetailLevel&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Particle is not created if detail level is too low.&lt;br /&gt;
: Never&lt;br /&gt;
: Medium&lt;br /&gt;
: Low&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Decorative&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Might not always be updated by the engine.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;CollideWithWalls&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle uses the HitWall event type.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;CollideWithChars&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle uses the HitCharacter event type.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;InitiallyHidden&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Hides the particle on creation.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DrawAsSky&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Draws the particle before everything else, supposedly.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DontAttractThroughWalls&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Particle will not detect attractors if there is a wall between it and the potential attractor.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;ExpireOnCutscene&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Ends the lifetime of a particle on cutscene start.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DieOnCutscene&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Kills the particle on cutscene start.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LockPositionToLink&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|Locks the position of the particle to its link.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CollisionRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Distance from which HitWall and HitCharacter events are activated.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AIDodgeRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Distance from which AI will avoid this particle.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AIAlertRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Distance from which AI will be aware of the danger of the particle.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FlyBySoundName /&amp;gt; &lt;br /&gt;
|valign=top| link&lt;br /&gt;
| Sound used when the particle passes by you. Check: does the engine apply the Doppler effect or is it in the sound file itself?&lt;br /&gt;
: &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==properties==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasVelocity&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle is to move.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasOrientation&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle is to be able to turn around?&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasPositionOffset&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used with LockPositionToLink???&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasAttachmentMatrix&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used if the particle is to be stuck to a character or wall.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasUnknown&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| ???&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasDecalState&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used if the particle is a Decal.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasTextureStartTick&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used with animated particles. (Documentation Needed).&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasTextureTick&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used with animated particles. (Documentation Needed).&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasDamageOwner&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|Used for particles to either:&lt;br /&gt;
: A. Not damage a character&lt;br /&gt;
: B. Credit a character with damage\kills&lt;br /&gt;
For this to work properly, the parent of the character must have this set, and the parent of said parent, etc, up to the original particle.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==appearance==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DisplayType&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| How the particle is displayed. (Please Document)&lt;br /&gt;
: Sprite&lt;br /&gt;
: RotatedSprite&lt;br /&gt;
: Beam - bullet textures and such&lt;br /&gt;
: Arrow&lt;br /&gt;
: Flat&lt;br /&gt;
: OrientedContrail&lt;br /&gt;
: Discuss&lt;br /&gt;
: Decal - sticks to a wall&lt;br /&gt;
: Geometry - uses an M3GM&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;TexGeom&amp;gt;&lt;br /&gt;
|valign=top| link&lt;br /&gt;
|The texture or model that this particle uses.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TXMP&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt; / &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;M3GM&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Invisible&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Can&#039;t be seen.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;IsContrailEmitter&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Emits a contrail.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;ScaleToVelocity&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Scales the particle based on the speed it is going.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Scale&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|The size of the particle.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;UseSeparateYScale&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Stretches the particle along the Y axis if set.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;YScale&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Needs &amp;lt;UseSeparateYScale&amp;gt;true&amp;lt;/UseSeparateYScale&amp;gt; to be enabled.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Rotation&amp;gt;&lt;br /&gt;
|valign=top| ?&lt;br /&gt;
| The rotation of the particle.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Alpha&amp;gt;&lt;br /&gt;
|valign=top| float / integer&lt;br /&gt;
| Transparency (0 = fully invisible, 1 or 255 = fully visible)&lt;br /&gt;
: float: 0.0 - 1.0 &lt;br /&gt;
: integer: 0 - 255&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;XOffset&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;XShorten&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;UseSpecialTint&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Research note: &amp;quot;true&amp;quot; can be found in BINA3RAPbarab_p02.xml&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Tint&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| Color. R G B A means Red Green Blue Alpha.&lt;br /&gt;
: R G B&lt;br /&gt;
: R G B A&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FadeOutOnEdge&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;OneSidedEdgeFade&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;EdgeFadeMin&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;EdgeFadeMax&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;MaxContrailDistance&amp;gt;&lt;br /&gt;
|valign=top| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlare&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlareDistance&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlareFadeInFrames&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlareFadeOutFrames&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DecalFullBrightness&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;MaxDecals&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| Seems to be a bit broken (someone please test this again).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DecalFadeFrames&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| The number of frames it takes for a decal particle to fade after it reaches the maximum number of decals.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DecalWrapAngle&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Degrees. Decal isn&#039;t cut off when the next plane piece has an angle difference equal or less to this value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==attractor==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Target&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: None&lt;br /&gt;
: Link&lt;br /&gt;
: Class&lt;br /&gt;
: Tag&lt;br /&gt;
: Characters&lt;br /&gt;
: Hostiles&lt;br /&gt;
: EmittedTowards&lt;br /&gt;
: ParentAttractor&lt;br /&gt;
: AllCharacters&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Selector&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: Distance&lt;br /&gt;
: Angle&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Class /&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Name of a paritcle that this particle is attracted to.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;MaxDistance&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Maximum distance the particle will detect an attractor from (if using Distance selection).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;MaxAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Maximum angle the particle will detect an attractor from (if using Angle selection).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;AngleSelectMin&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;AngleSelectMax&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;AngleSelectWeight&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==variable storage types==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!XML tag&lt;br /&gt;
!description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&#039;&#039;float_value&#039;&#039;&amp;lt;/Float&amp;gt;&lt;br /&gt;
|A Float.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&#039;&#039;R G B [A]&#039;&#039;&amp;lt;/Color&amp;gt;&lt;br /&gt;
|A color.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;PingPongState Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&#039;&#039;?&#039;&#039;&amp;lt;/PingPongState&amp;gt;&lt;br /&gt;
|A float from 0.0-1.0, describes where in the ping pong state the event is. (If my memory is correct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==parameter value types==&lt;br /&gt;
Grey is additional for variable section.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
0 - variable; variable name follows&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;variable&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1 - none (action parameters use this to indicate an unused parameter)&lt;br /&gt;
|&lt;br /&gt;
?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
3 - float; constant; 1 float value follows&lt;br /&gt;
&lt;br /&gt;
4 - float; random; 2 float values follow (min, max)&lt;br /&gt;
&lt;br /&gt;
5 - float; bell curve; 2 float values follow (mean, stddev)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;float_value&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;Random Min=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; Max=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;BellCurve [[wikipedia:Expected_value|Mean]]=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; [[wikipedia:Standard_deviation|StdDev]]=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
6 - instance; instance name follows&lt;br /&gt;
|&lt;br /&gt;
?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
7 - color; constant; 1 color follows&lt;br /&gt;
&lt;br /&gt;
8 - color; random; 2 color follow (min, max)&lt;br /&gt;
&lt;br /&gt;
9 - color; bell curve; 2 color follow (mean, stddev)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;R G B&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Color&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;Random Min=&amp;quot;&#039;&#039;R G B&#039;&#039;&amp;quot; Max=&amp;quot;&#039;&#039;R G B&#039;&#039;&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Color&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;BellCurve Mean=&amp;quot;? ? ? ?&amp;quot; StdDev=&amp;quot;? ? ? ?&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Color&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
0A - int32; constant; int32 follows&lt;br /&gt;
|&lt;br /&gt;
?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
0B - time cycle; 2 float values follow (cycle length, scale)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;TimeCycle Length=&amp;quot;...&amp;quot; Scale=&amp;quot;...&amp;quot; /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==emitter==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Class&amp;gt;&lt;br /&gt;
|valign=top| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;BINA3RAP&amp;lt;/font&amp;gt;&#039;&#039;file_name&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt; (without file prefix and suffix)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: InitiallyOn&lt;br /&gt;
: IncreaseParticleCount&lt;br /&gt;
: TurnOffAtTreshold&lt;br /&gt;
: EmitWithParentVelocity&lt;br /&gt;
: Unknown0020&lt;br /&gt;
: OrientToVelocity&lt;br /&gt;
: InheritTint&lt;br /&gt;
: OnePerAttractor&lt;br /&gt;
: AtLeastOne&lt;br /&gt;
: CycleAttractors&lt;br /&gt;
&lt;br /&gt;
recherche notes - files with Unknown0020 flag:&lt;br /&gt;
&lt;br /&gt;
BINA3RAPw8_mbo_p07, BINA3RAPw8_mbo_e03, BINA3RAPw12_ba2_e03, BINA3RAPw10_sni_p01, BINA3RAPpstream_flicker, BINA3RAPheadlight02, BINA3RAPheadlightStart, BINA3RAPheadlight01&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;TurnOffTreshold&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| Tag contains the number (threshold) of particle which must be reached before emitter becomes turned off. Threshold needs two flags to be set: IncreaseParticleCount and TurnOffAtTreshold.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Probability&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
Let&#039;s say threshold was set to 10 and probability to 0.5 then you might get 5 particle emitted, sometimes less, sometime more, it&#039;s an average. (threshold * probability = emitted particle) &lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Copies&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| It&#039;s actually a multiplier, set it to 0 and no particle will be emitted. Copies doesn&#039;t effects the treshold counting. The copies become emitted at the same place as the original particle so you might not see any difference (because they overlay each other) until they have a random movement.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LinkTo&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: this&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
: 5&lt;br /&gt;
: 6&lt;br /&gt;
: 7&lt;br /&gt;
: link&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Rate&amp;gt;&lt;br /&gt;
|valign=top| -&lt;br /&gt;
| Interval in seconds.&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Continous&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Interval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Random&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;MinInterval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;MaxInterval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Instant /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Distance&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Distance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Attractor&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;RechargeTime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;CheckInterval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Position&amp;gt;&lt;br /&gt;
|valign=top| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Point /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Line&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Circle&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;InnerRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OuterRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Sphere&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;InnerRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OuterRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Cylinder&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Height&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;InnerRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OuterRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;BodySurface&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OffsetRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;BodyBones&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OffsetRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Direction&amp;gt;&lt;br /&gt;
|valign=top|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Straight /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Random /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Cone&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;CenterBias&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Ring&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Offset&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Offset&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;X&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Y&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Z&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Inaccurate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;BaseAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Inaccuracy&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;CenterBias&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Attractor /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Speed&amp;gt;&lt;br /&gt;
|valign=top| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Uniform&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Stratified&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Speed1&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Speed2&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Orientation&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: LocalPosX&lt;br /&gt;
: LocalNegX&lt;br /&gt;
: LocalPosY&lt;br /&gt;
: LocalNegY&lt;br /&gt;
: LocalPosZ&lt;br /&gt;
: LocalNegZ&lt;br /&gt;
: WorldPosX&lt;br /&gt;
: WorldNegX&lt;br /&gt;
: WorldPosY&lt;br /&gt;
: WorldNegY&lt;br /&gt;
: WorldPosZ&lt;br /&gt;
: WorldNegZ&lt;br /&gt;
: Velocity&lt;br /&gt;
: ReverseVelocity&lt;br /&gt;
: TowardsEmitter&lt;br /&gt;
: AwayFromEmitter&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;OrientationUp&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| same flags as &amp;lt;OrientationUp&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==event types==&lt;br /&gt;
: Update&lt;br /&gt;
: Pulse&lt;br /&gt;
: Start&lt;br /&gt;
: Stop&lt;br /&gt;
: BackgroundFxStart&lt;br /&gt;
: BackgroundFxStop&lt;br /&gt;
: HitWall&lt;br /&gt;
: HitCharacter&lt;br /&gt;
: Lifetime&lt;br /&gt;
: Explode&lt;br /&gt;
: BrokenLink&lt;br /&gt;
: Create&lt;br /&gt;
: Die&lt;br /&gt;
: NewAttractor&lt;br /&gt;
: DelayStart&lt;br /&gt;
: DelayStop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=50%|&lt;br /&gt;
&#039;&#039;&#039;schemata 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
                &amp;lt;&#039;&#039;action_tag_&#039;&#039;&#039;without_parameter&#039;&#039;&#039;&#039;&#039; /&amp;gt;&lt;br /&gt;
            &amp;lt;/&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
|width=50%|&lt;br /&gt;
&#039;&#039;&#039;example 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;Die /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&lt;br /&gt;
&#039;&#039;&#039;schemata 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
                &amp;lt;&#039;&#039;action_tag_&#039;&#039;&#039;with_parameter&#039;&#039;&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
                    &amp;lt;&#039;&#039;parameter_tag&#039;&#039;&amp;gt;&#039;&#039;value_or_variable&#039;&#039;&amp;lt;/parameter_tag&amp;gt;&lt;br /&gt;
                &amp;lt;/&#039;&#039;action_tag_&#039;&#039;&#039;with_parameter&#039;&#039;&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
            &amp;lt;/&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;example 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;Update&amp;gt;&lt;br /&gt;
                &amp;lt;SuperParticle&amp;gt;&lt;br /&gt;
                    &amp;lt;Variable&amp;gt;emit_rate&amp;lt;/Variable&amp;gt;&lt;br /&gt;
                    &amp;lt;VaseValue&amp;gt;0.25&amp;lt;/VaseValue&amp;gt;&lt;br /&gt;
                    &amp;lt;DeltaValue&amp;gt;-0.1&amp;lt;/DeltaValue&amp;gt;&lt;br /&gt;
                    &amp;lt;MinValue&amp;gt;0.1&amp;lt;/MinValue&amp;gt;&lt;br /&gt;
                    &amp;lt;MaxValue&amp;gt;20&amp;lt;/MaxValue&amp;gt;&lt;br /&gt;
                &amp;lt;/SuperParticle&amp;gt;&lt;br /&gt;
            &amp;lt;/Update&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==action types and parameters==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| A dark gray background marks the start of an action type.&lt;br /&gt;
|-&lt;br /&gt;
| Normal gray background is used for child tags.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=160px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateLinear&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateAccelerated&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Velocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Acceleration&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateRandom&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimatePingPong&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;State&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateLoop&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateToValue&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Value&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ColorInterpolate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Color0&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Color1&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Amount&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;FadeOut&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TimeToDie&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| particle becomes killed after X seconds, it fades out during that time&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableAtTime&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| ??? &#039;&#039;&#039;Update&#039;&#039;&#039; event only ???&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| has action X as target in Update event section&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Lifetime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Lifetime of the particle MINUS the value stored in this field yields the moment from particle&#039;s spawn when the targeted action (action from the &amp;quot;Action&amp;quot; tag) starts operating. Till that moment, the targeted action is held inactive.&amp;lt;BR&amp;gt;&amp;lt;font size=1&amp;gt;Example:&amp;lt;BR&amp;gt;Particle&#039;s lifetime ticks in a decreasing manner. If the lifetime of the particle is set to be 3.0, then it ticks from 3.0 down to 0.0 (at 0.0, Lifetime event is called).&amp;lt;BR&amp;gt;Now, if lifetime of the particle is set to be 3.0 and value here in this tag is 1.0, then from the moment the particle is spawned, this EnableAtTime&#039;s targeted action (the action inside &amp;quot;Action&amp;quot; tag) will be disabled and will activate only after the particle&#039; lifetime crosses value (3.0-1.0) = 2.0 seconds. That means the targeted action will activate 2 seconds after the particle was spawned.&amp;lt;BR&amp;gt;This mechanism is quite counter-intuitive, hence the detailed description.&amp;lt;/font&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DisableAtTime&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| ??? &#039;&#039;&#039;Update&#039;&#039;&#039; event only ???&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| has action X as target in Update event section&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Lifetime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Lifetime of the particle MINUS the value stored in this field yields the moment from particle&#039;s spawn when the targeted action (action from the &amp;quot;Action&amp;quot; tag) stops operating. Till that moment, the targeted action is kept active.&amp;lt;BR&amp;gt;&amp;lt;font size=1&amp;gt;Example:&amp;lt;BR&amp;gt;Particle&#039;s lifetime ticks in a decreasing manner. If the lifetime of the particle is set to be 3.0, then it ticks from 3.0 down to 0.0 (at 0.0, Lifetime event is called).&amp;lt;BR&amp;gt;Now, if lifetime of the particle is set to be 3.0 and value here in this tag is 1.0, then from the moment the particle is spawned, this EnableAtTime&#039;s targeted action (the action inside &amp;quot;Action&amp;quot; tag) will be working and will deactivate only after the particle&#039; lifetime crosses value (3.0-1.0) = 2.0 seconds. That means the targeted action will deactivate 2 seconds after the particle was spawned.&amp;lt;BR&amp;gt;This mechanism is quite counter-intuitive, hence the detailed description.&amp;lt;/font&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Die /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetLifetime&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Time&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| particle becomes killed after X seconds&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EmitActivate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Enables emitter X. Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EmitDeactivate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Disables emitter X. Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EmitParticles&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Starts emitter X. Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Particles&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer recommended. Number of particle to be emitted.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ChangeClass&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;KillLastEmitted&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| ?; Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ExplodeLastEmitted&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| ?; Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AmbientSound&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Sound&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;&#039;&#039;file_name&#039;&#039;&amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;.amb.oni&amp;lt;/font&amp;gt; (file prefix OSBD and suffix .amb.oni not used)&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EndAmbientSound /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ImpulseSound&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Sound&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;&#039;&#039;file_name&#039;&#039;&amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (file prefix OSBD and suffix .imp.oni not used)&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DamageChar&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Damage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer recommended. Negative damage values don&#039;t work.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StunDamage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Adds the value specified here to the StunDamage sum variable.&amp;lt;BR&amp;gt;StunDamage has visible effect only for DamageTypes 1, 2 and 6.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;KnockBack&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Character gets moved from its current position by &amp;quot;knockback value&amp;quot; game world units with 0.1 precision.&amp;lt;BR&amp;gt;&amp;lt;font size=1&amp;gt;(Example: If value here is 100, char gets moved cca 99,9 units)&amp;lt;/font&amp;gt;&lt;br /&gt;
Negative values work as well, they reverse the direction. &amp;lt;font size=1&amp;gt;(Instead of being &amp;quot;knocked back&amp;quot;, the character is &amp;quot;drawn in&amp;quot;)&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageType&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 (&amp;quot;normal&amp;quot;)&lt;br /&gt;
: 1 (&amp;quot;minor stun&amp;quot;)&lt;br /&gt;
: 2 (&amp;quot;major stun&amp;quot;)&lt;br /&gt;
: 3 (&amp;quot;minor knockdown&amp;quot;)&lt;br /&gt;
: 4 (&amp;quot;major knockdown&amp;quot;)&lt;br /&gt;
: 5 (&amp;quot;blownup&amp;quot;)&lt;br /&gt;
: 6 (&amp;quot;pickup&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SelfImmune&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 - DamageOwner of the particle can be hurt by the particle&lt;br /&gt;
: 1 - DamageOwner of the particle can&#039;t be hurt by the particle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CanHitMultiple&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| tag is missing if value is 0&lt;br /&gt;
: 0 - can be applied multiple times on the target character&lt;br /&gt;
: 1 - can be applied only once on the character, then is ignored (hurts the target character strictly only once)&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DamageBlast&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Damage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer recommended. Negative damage values don&#039;t work.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StunDamage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Same as the DamageChar&#039;s StunDamage&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;KnockBack&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Same as the DamageChar&#039;s Knockback&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Radius of the damaging sphere.&amp;lt;BR&amp;gt;&amp;lt;font size=1&amp;gt;(Example: If value here is 100, character gets damaged if its distance from the position of the damaging particle is less then or equal to 100 game world units.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FallOff&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 - DamageBlast deals the same damage, stun damage and knockback regardless of the distance between the particle and the target character&lt;br /&gt;
: 1 - Inflicted Damage, StunDamage and Knockback linearly decrease with distance.&lt;br /&gt;
&amp;lt;font size=1&amp;gt;Example: this flag is set, Radius is 200, Damage is 400, StunDamage is 600 and Knocback is 800.&amp;lt;BR&amp;gt;The target character dwells 150 game world units far from the DamageBlast particle.&amp;lt;BR&amp;gt;&lt;br /&gt;
When hit by the particle&#039;s DamageBlast, PAR3 values of Damage, StunDamage and Knockback will be multiplied by the multiplier:&amp;lt;BR&amp;gt;&lt;br /&gt;
(200-150)/200 = 0.25&amp;lt;BR&amp;gt;&lt;br /&gt;
That means the target character will suffer 0.25*400 = 100 Damage, 150 StunDamage and 200 Knockback&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageType&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
: 0 (&amp;quot;normal&amp;quot;)&lt;br /&gt;
: 1 (&amp;quot;minor stun&amp;quot;)&lt;br /&gt;
: 2 (&amp;quot;major stun&amp;quot;)&lt;br /&gt;
: 3 (&amp;quot;minor knockdown&amp;quot;)&lt;br /&gt;
: 4 (&amp;quot;major knockdown&amp;quot;)&lt;br /&gt;
: 5 (&amp;quot;blownup&amp;quot;)&lt;br /&gt;
: 6 (&amp;quot;pickup&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SelfImmune&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| &lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
Same as the DamageChar&#039;s SelfImmune&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;This tag is not exported if the data field in the oni file is &amp;quot;00&amp;quot;. It is exported when &amp;quot;0A&amp;quot; was set.&amp;lt;/font&amp;gt;&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Explode /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| this action triggers Explode event&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Damage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer used.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;GlassCharge&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BlastVelocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Stop /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| calls Stop event&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RotateX&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateVelocity&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RotateY&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateVelocity&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RotateZ&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateVelocity&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;FindAttractor&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DelayTime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AttractGravity&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Gravity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxG&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HorizontalOnly&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AttractHoming&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TurnSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictPosition&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HorizontalOnly&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AttractSpring&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AccelRate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxAccel&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DesiredDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveLine /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveGravity&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Fraction&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveSpiral&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Theta&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveResistance&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Resistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinimumVelocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveDrift&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Acceleration&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SidewaysDecay&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DirX&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DirY&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DirZ&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetVelocity&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;NoSideways&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SpiralTangent&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Theta&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rotate_speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;KillBeyondPoint&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Direction&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Value&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;CollisionEffect&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Effect&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;WallOffset&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Orientation&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Attach&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SitckToWall /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Bounce&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ElasticDirect&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ElasticGlancing&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Chop /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| [[XML:Impt|&amp;lt;ImpactEffect&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ImpactType&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Name of impact, registered in ONIE. The looked up material is known from collided particle. Impt and Mtrl file must exist&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ImpactModifier&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Show /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| unhide particle&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Hide /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| hide particle, cannot collide with characters anymore, emitters stay active&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetTextureTick&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Tick&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RandomTextureFrame /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetVariable&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Value&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RecalculateAll /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableAbove&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;Var&amp;amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Threshold&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableBelow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;Var&amp;amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Threshold&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableNow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| enables action X in Update event section&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DisableNow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| disables action X in Update event section&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SuperBallTrigger&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FuseTime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;StopIfBreakable /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| ??? &#039;&#039;&#039;HitWall&#039;&#039;&#039; event only ???&amp;lt;BR&amp;gt;Within the HitWall PAR3 event, stops the exection of all PAR3 actions listed BELOW this PAR3 action if the HitWall was called against a breakable material (in vanilla Oni, the only breakable material is glass).&lt;br /&gt;
&amp;lt;font size=1&amp;gt;Example: If inside the HitWall event there are actions in this order:&amp;lt;BR&amp;gt;ImpactEffect, StopIfBreakable, DamageBlast&amp;lt;BR&amp;gt;then if the HitWall is called against solid material (&#039;concrete&#039; for example), both ImpactEffect AND DamageBlast are executed. However if the collision is against glass (breakable material), then only ImpactEffect is executed and then the StopIfBreakable prevents the DamageBlast from being performed.&amp;lt;/font&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AvoidWalls&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AxisX&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AxisY&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AxisZ&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CurrentAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TimeUntilCheck&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SenseDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TurningSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TurningDecay&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RandomSwirl&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlBaseRate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlDeltaRate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;FloatAbovePlayer&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Height&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;StopIfSlow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SuperParticle&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Variable&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;VaseValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeltaValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;StopLink /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;CheckLink /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| Checks if the particle&#039;s attractor link is still valid. If the link is no longer valid, &#039;&#039;&#039;BrokenLink&#039;&#039;&#039; event is called.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;BreakLink /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==glass-piercing bullets==&lt;br /&gt;
In the original game, w1_tap goes through normal glass and loses its dangerousness while a bullet of w8_mbo stays dangerous.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=100%&lt;br /&gt;
! BINA3RAPw1_tap_p01.xml &lt;br /&gt;
! BINA3RAPw8_mbo_p01.xml&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;ImpactEffect&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactType&amp;gt;w1_tap&amp;lt;/ImpactType&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactModifier&amp;gt;3&amp;lt;/ImpactModifier&amp;gt;&lt;br /&gt;
                &amp;lt;/ImpactEffect&amp;gt;&lt;br /&gt;
                &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
                    &amp;lt;Damage&amp;gt;13&amp;lt;/Damage&amp;gt;&lt;br /&gt;
                &amp;lt;/DamageEnvironment&amp;gt;&lt;br /&gt;
                &amp;lt;Chop /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
                    &amp;lt;Damage&amp;gt;50&amp;lt;/Damage&amp;gt;&lt;br /&gt;
                &amp;lt;/DamageEnvironment&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;StopIfBreakable /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                &amp;lt;ImpactEffect&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactType&amp;gt;w8_mbo&amp;lt;/ImpactType&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactModifier&amp;gt;2&amp;lt;/ImpactModifier&amp;gt;&lt;br /&gt;
                &amp;lt;/ImpactEffect&amp;gt;&lt;br /&gt;
                &amp;lt;Die /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It turned out that &amp;lt;StopIfBreakable /&amp;gt; is actually doing the opposite, hence it should be called &amp;lt;DontStopIfBreakable /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that &amp;lt;DamageEnvironment&amp;gt; is the first tag otherwise the glass won&#039;t break.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=notes on locklights=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
        [...]&lt;br /&gt;
            &amp;lt;Tint&amp;gt;color&amp;lt;/Tint&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
        &amp;lt;Variables&amp;gt;&lt;br /&gt;
            &amp;lt;Color Name=&amp;quot;color&amp;quot;&amp;gt;0 0 0&amp;lt;/Color&amp;gt;&lt;br /&gt;
            &amp;lt;Float Name=&amp;quot;blend&amp;quot;&amp;gt;0&amp;lt;/Float&amp;gt;&lt;br /&gt;
        &amp;lt;/Variables&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters /&amp;gt;&lt;br /&gt;
        &amp;lt;Events&amp;gt;&lt;br /&gt;
            &amp;lt;Update&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;u&amp;gt;&amp;lt;ColorInterpolate&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;color&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;Color0&amp;gt;255 0 0&amp;lt;/Color0&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                    &amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;Color1&amp;gt;0 255 0&amp;lt;/Color1&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                    &amp;lt;Amount&amp;gt;blend&amp;lt;/Amount&amp;gt;&lt;br /&gt;
                &amp;lt;/ColorInterpolate&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;u&amp;gt;&amp;lt;SetVariable&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;0&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;u&amp;gt;&amp;lt;SetVariable&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;1&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
            &amp;lt;/Update&amp;gt;&lt;br /&gt;
            &amp;lt;Start&amp;gt;&lt;br /&gt;
                &amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;DisableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;1&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/DisableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                 &amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;EnableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;2&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/EnableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
            &amp;lt;/Start&amp;gt;&lt;br /&gt;
            &amp;lt;Stop&amp;gt;&lt;br /&gt;
                &amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;DisableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;2&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/DisableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                &amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;EnableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;1&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/EnableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
            &amp;lt;/Stop&amp;gt;&lt;br /&gt;
        &amp;lt;/Events&amp;gt;&lt;br /&gt;
|valign=top|&lt;br /&gt;
Locklights are particle which indicate whether a door is locked or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They are presented in [[OBD:ONLV|ONLV]] (ENVP section) with different names but are all called from &amp;quot;BINA3RAPlocklight.xml&amp;quot; and &amp;quot;BINA3RAPlocklight2.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The locklight becomes created on level start.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Update event has three action: &#039;&#039;&#039;&amp;lt;u&amp;gt;first one has ID 0&amp;lt;/u&amp;gt;&#039;&#039;&#039;, second has &#039;&#039;&#039;&amp;lt;u&amp;gt;&amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;ID 1&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;, and third action has &#039;&#039;&#039;&amp;lt;u&amp;gt;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;ID 2&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Target&amp;gt;&amp;lt;/font&amp;gt;color&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Target&amp;gt;&amp;lt;/font&amp;gt; serves as output and is used by the &amp;lt;tint&amp;gt; tag.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The BINA3RAPlocklight.xml original file doesn&#039;t allow new events because of its buggy behavior.&#039;&#039;&#039; Gumby solved the problem by putting the &amp;quot;SetVariable&amp;quot; code into the start and stop event. During a final test additional code showed accidentally that particles identifies doors as characters. A small vid can be seen [http://www.youtube.com/watch?v=kY8uH5vRt3Q here.]&lt;br /&gt;
&lt;br /&gt;
{{divhide|See used code here &amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni Version=&amp;quot;0.9.52.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Particle Name=&amp;quot;locklight&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Options&amp;gt;&lt;br /&gt;
            &amp;lt;Lifetime&amp;gt;0&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
            &amp;lt;DisableDetailLevel&amp;gt;Never&amp;lt;/DisableDetailLevel&amp;gt;&lt;br /&gt;
            &amp;lt;Decorative&amp;gt;true&amp;lt;/Decorative&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithWalls&amp;gt;false&amp;lt;/CollideWithWalls&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithChars&amp;gt;true&amp;lt;/CollideWithChars&amp;gt;&lt;br /&gt;
            &amp;lt;InitiallyHidden&amp;gt;false&amp;lt;/InitiallyHidden&amp;gt;&lt;br /&gt;
            &amp;lt;DrawAsSky&amp;gt;false&amp;lt;/DrawAsSky&amp;gt;&lt;br /&gt;
            &amp;lt;DontAttractThroughWalls&amp;gt;false&amp;lt;/DontAttractThroughWalls&amp;gt;&lt;br /&gt;
            &amp;lt;ExpireOnCutscene&amp;gt;false&amp;lt;/ExpireOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;DieOnCutscene&amp;gt;false&amp;lt;/DieOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;LockPositionToLink&amp;gt;false&amp;lt;/LockPositionToLink&amp;gt;&lt;br /&gt;
            &amp;lt;CollisionRadius&amp;gt;7&amp;lt;/CollisionRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIDodgeRadius&amp;gt;0&amp;lt;/AIDodgeRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIAlertRadius&amp;gt;0&amp;lt;/AIAlertRadius&amp;gt;&lt;br /&gt;
            &amp;lt;FlyBySoundName /&amp;gt;&lt;br /&gt;
        &amp;lt;/Options&amp;gt;&lt;br /&gt;
        &amp;lt;Properties&amp;gt;&lt;br /&gt;
            &amp;lt;HasVelocity&amp;gt;false&amp;lt;/HasVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;HasOrientation&amp;gt;true&amp;lt;/HasOrientation&amp;gt;&lt;br /&gt;
            &amp;lt;HasPositionOffset&amp;gt;false&amp;lt;/HasPositionOffset&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttachmentMatrix&amp;gt;true&amp;lt;/HasAttachmentMatrix&amp;gt;&lt;br /&gt;
            &amp;lt;HasUnknown&amp;gt;false&amp;lt;/HasUnknown&amp;gt;&lt;br /&gt;
            &amp;lt;HasDecalState&amp;gt;false&amp;lt;/HasDecalState&amp;gt;&lt;br /&gt;
            &amp;lt;HasTextureStartTick&amp;gt;false&amp;lt;/HasTextureStartTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasTextureTick&amp;gt;false&amp;lt;/HasTextureTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasDamageOwner&amp;gt;false&amp;lt;/HasDamageOwner&amp;gt;&lt;br /&gt;
            &amp;lt;HasContrailData&amp;gt;false&amp;lt;/HasContrailData&amp;gt;&lt;br /&gt;
            &amp;lt;HasLensFlareState&amp;gt;true&amp;lt;/HasLensFlareState&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttractor&amp;gt;false&amp;lt;/HasAttractor&amp;gt;&lt;br /&gt;
            &amp;lt;HasCollisionCache&amp;gt;true&amp;lt;/HasCollisionCache&amp;gt;&lt;br /&gt;
        &amp;lt;/Properties&amp;gt;&lt;br /&gt;
        &amp;lt;Appearance&amp;gt;&lt;br /&gt;
            &amp;lt;DisplayType&amp;gt;RotatedSprite&amp;lt;/DisplayType&amp;gt;&lt;br /&gt;
            &amp;lt;TexGeom&amp;gt;lensflare11&amp;lt;/TexGeom&amp;gt;&lt;br /&gt;
            &amp;lt;Invisible&amp;gt;false&amp;lt;/Invisible&amp;gt;&lt;br /&gt;
            &amp;lt;IsContrailEmitter&amp;gt;false&amp;lt;/IsContrailEmitter&amp;gt;&lt;br /&gt;
            &amp;lt;ScaleToVelocity&amp;gt;false&amp;lt;/ScaleToVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;Scale&amp;gt;2&amp;lt;/Scale&amp;gt;&lt;br /&gt;
            &amp;lt;UseSeparateYScale&amp;gt;false&amp;lt;/UseSeparateYScale&amp;gt;&lt;br /&gt;
            &amp;lt;YScale&amp;gt;1&amp;lt;/YScale&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation&amp;gt;0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;Alpha&amp;gt;&lt;br /&gt;
                &amp;lt;Random Min=&amp;quot;0.8&amp;quot; Max=&amp;quot;0.9&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;/Alpha&amp;gt;&lt;br /&gt;
            &amp;lt;XOffset&amp;gt;0&amp;lt;/XOffset&amp;gt;&lt;br /&gt;
            &amp;lt;XShorten&amp;gt;0&amp;lt;/XShorten&amp;gt;&lt;br /&gt;
            &amp;lt;UseSpecialTint&amp;gt;false&amp;lt;/UseSpecialTint&amp;gt;&lt;br /&gt;
            &amp;lt;Tint&amp;gt;color&amp;lt;/Tint&amp;gt;&lt;br /&gt;
            &amp;lt;FadeOutOnEdge&amp;gt;false&amp;lt;/FadeOutOnEdge&amp;gt;&lt;br /&gt;
            &amp;lt;OneSidedEdgeFade&amp;gt;false&amp;lt;/OneSidedEdgeFade&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMin&amp;gt;0.2&amp;lt;/EdgeFadeMin&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMax&amp;gt;1&amp;lt;/EdgeFadeMax&amp;gt;&lt;br /&gt;
            &amp;lt;MaxContrailDistance&amp;gt;0&amp;lt;/MaxContrailDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlare&amp;gt;true&amp;lt;/LensFlare&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareDistance&amp;gt;2&amp;lt;/LensFlareDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeInFrames&amp;gt;5&amp;lt;/LensFlareFadeInFrames&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeOutFrames&amp;gt;10&amp;lt;/LensFlareFadeOutFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFullBrightness&amp;gt;false&amp;lt;/DecalFullBrightness&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDecals&amp;gt;100&amp;lt;/MaxDecals&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFadeFrames&amp;gt;60&amp;lt;/DecalFadeFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalWrapAngle&amp;gt;60&amp;lt;/DecalWrapAngle&amp;gt;&lt;br /&gt;
        &amp;lt;/Appearance&amp;gt;&lt;br /&gt;
        &amp;lt;Attractor&amp;gt;&lt;br /&gt;
            &amp;lt;Target&amp;gt;None&amp;lt;/Target&amp;gt;&lt;br /&gt;
            &amp;lt;Selector&amp;gt;Distance&amp;lt;/Selector&amp;gt;&lt;br /&gt;
            &amp;lt;Class /&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDistance&amp;gt;150&amp;lt;/MaxDistance&amp;gt;&lt;br /&gt;
            &amp;lt;MaxAngle&amp;gt;30&amp;lt;/MaxAngle&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMin&amp;gt;3&amp;lt;/AngleSelectMin&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMax&amp;gt;20&amp;lt;/AngleSelectMax&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectWeight&amp;gt;3&amp;lt;/AngleSelectWeight&amp;gt;&lt;br /&gt;
        &amp;lt;/Attractor&amp;gt;&lt;br /&gt;
        &amp;lt;Variables&amp;gt;&lt;br /&gt;
            &amp;lt;Color Name=&amp;quot;color&amp;quot;&amp;gt;0 0 0&amp;lt;/Color&amp;gt;&lt;br /&gt;
            &amp;lt;Float Name=&amp;quot;blend&amp;quot;&amp;gt;0&amp;lt;/Float&amp;gt;&lt;br /&gt;
        &amp;lt;/Variables&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters&amp;gt;&lt;br /&gt;
            &amp;lt;Emitter&amp;gt;&lt;br /&gt;
                &amp;lt;Class&amp;gt;h2h_ninflash_e01&amp;lt;/Class&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;IncreaseParticleCount TurnOffAtTreshold&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;TurnOffTreshold&amp;gt;1&amp;lt;/TurnOffTreshold&amp;gt;&lt;br /&gt;
                &amp;lt;Probability&amp;gt;1&amp;lt;/Probability&amp;gt;&lt;br /&gt;
                &amp;lt;Copies&amp;gt;1&amp;lt;/Copies&amp;gt;&lt;br /&gt;
                &amp;lt;LinkTo /&amp;gt;&lt;br /&gt;
                &amp;lt;Rate&amp;gt;&lt;br /&gt;
                    &amp;lt;Instant /&amp;gt;&lt;br /&gt;
                &amp;lt;/Rate&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;&lt;br /&gt;
                    &amp;lt;Point /&amp;gt;&lt;br /&gt;
                &amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Direction&amp;gt;&lt;br /&gt;
                    &amp;lt;Straight /&amp;gt;&lt;br /&gt;
                &amp;lt;/Direction&amp;gt;&lt;br /&gt;
                &amp;lt;Speed&amp;gt;&lt;br /&gt;
                    &amp;lt;Uniform&amp;gt;&lt;br /&gt;
                        &amp;lt;Speed&amp;gt;0&amp;lt;/Speed&amp;gt;&lt;br /&gt;
                    &amp;lt;/Uniform&amp;gt;&lt;br /&gt;
                &amp;lt;/Speed&amp;gt;&lt;br /&gt;
                &amp;lt;Orientation&amp;gt;LocalPosY&amp;lt;/Orientation&amp;gt;&lt;br /&gt;
                &amp;lt;OrientationUp&amp;gt;LocalPosZ&amp;lt;/OrientationUp&amp;gt;&lt;br /&gt;
            &amp;lt;/Emitter&amp;gt;&lt;br /&gt;
        &amp;lt;/Emitters&amp;gt;&lt;br /&gt;
        &amp;lt;Events&amp;gt;&lt;br /&gt;
            &amp;lt;Update&amp;gt;&lt;br /&gt;
                &amp;lt;ColorInterpolate&amp;gt;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;color&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Color0&amp;gt;255 0 0&amp;lt;/Color0&amp;gt;&lt;br /&gt;
                    &amp;lt;Color1&amp;gt;0 255 0&amp;lt;/Color1&amp;gt;&lt;br /&gt;
                    &amp;lt;Amount&amp;gt;blend&amp;lt;/Amount&amp;gt;&lt;br /&gt;
                &amp;lt;/ColorInterpolate&amp;gt;&lt;br /&gt;
            &amp;lt;/Update&amp;gt;&lt;br /&gt;
            &amp;lt;Start&amp;gt;&lt;br /&gt;
                &amp;lt;SetVariable&amp;gt;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;1&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&lt;br /&gt;
            &amp;lt;/Start&amp;gt;&lt;br /&gt;
            &amp;lt;Stop&amp;gt;&lt;br /&gt;
                &amp;lt;SetVariable&amp;gt;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;0&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&lt;br /&gt;
            &amp;lt;/Stop&amp;gt;&lt;br /&gt;
            &amp;lt;HitCharacter&amp;gt;&lt;br /&gt;
                &amp;lt;EmitActivate&amp;gt;&lt;br /&gt;
                    &amp;lt;Emitter&amp;gt;0&amp;lt;/Emitter&amp;gt;&lt;br /&gt;
                &amp;lt;/EmitActivate&amp;gt;&lt;br /&gt;
            &amp;lt;/HitCharacter&amp;gt;&lt;br /&gt;
        &amp;lt;/Events&amp;gt;&lt;br /&gt;
    &amp;lt;/Particle&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
 &amp;amp;nbsp; &amp;lt;!-- from one bug to another, great... --&amp;gt;&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=how to set up decorative decals=&lt;br /&gt;
What are decals?&lt;br /&gt;
: Decals are images glued onto a wall or ground.&lt;br /&gt;
: They are used for additional level design and to show weapon damage on surroundings.&lt;br /&gt;
: The following steps will show you how to set up a piece of design (poster/warning sign/whatever) into a level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 1 - extending the particle collection==&lt;br /&gt;
* [[XML:BINA/OBJC/PART|Particle collections]] are level specific.&lt;br /&gt;
* &amp;lt;Position&amp;gt; .. Choose a position for your decal.&lt;br /&gt;
: &#039;&#039;&#039;The maximal tolerance distance counts 10 units.&#039;&#039;&#039; Let&#039;s say the ground height (y) is 45 and the particle is spawned at 55 then this is the maximal tolerance; 56 wouldn&#039;t work.&lt;br /&gt;
: &#039;&#039;&#039;&amp;quot;chr_debug_characters = 1&amp;quot;&#039;&#039;&#039; helps you. But note that the y value is not the head&#039;s or pelvis&#039; height, it is at the deepest point of your feet.&lt;br /&gt;
* &amp;lt;Rotation&amp;gt; .. &#039;&#039;&#039;see [[#decal_facing|&amp;quot;decal facing&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;Class&amp;gt; .. this is your [[#step_2_-_creating_BINA3RAP_file|particle file]]&lt;br /&gt;
* &amp;lt;Tag&amp;gt; .. optional; &#039;&#039;&#039;used when you want to activate or deactivate decals or other particle via BSL&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;Flags&amp;gt; .. &amp;quot;not initially created&amp;quot; flag (2) or nothing (1; 4; 8)&lt;br /&gt;
* &amp;lt;XScale&amp;gt; .. Scaling of decal&#039;s X dimension on &#039;&#039;individual level&#039;&#039; (you can use the 3RAP&#039;s own scaling (&amp;lt;Scale&amp;gt;) for accumulative scaling (this would affect all decals in the collection))&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Object Id=&amp;quot;11291&amp;quot; Type=&amp;quot;PART&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;0&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;-988 65 1521&amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Rotation&amp;gt;270 180 0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;/Header&amp;gt;&lt;br /&gt;
            &amp;lt;OSD&amp;gt;&lt;br /&gt;
                [[#step_2_-_creating_BINA3RAP_file|&amp;lt;Class&amp;gt;]]&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;decal_particle_name&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;lt;/Class&amp;gt;&lt;br /&gt;
                [[#step_4_-_show_or_hide_decals_via_BSL|&amp;lt;Tag&amp;gt;]]&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;decal_BSL_name&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;lt;/Tag&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;8&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Decal&amp;gt;&lt;br /&gt;
                    &amp;lt;XScale&amp;gt;20&amp;lt;/XScale&amp;gt;&lt;br /&gt;
                    &amp;lt;YScale&amp;gt;20&amp;lt;/YScale&amp;gt;&lt;br /&gt;
                &amp;lt;/Decal&amp;gt;&lt;br /&gt;
            &amp;lt;/OSD&amp;gt;&lt;br /&gt;
        &amp;lt;/Object&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===decal facing===&lt;br /&gt;
: Place yourself towards the point where you want to have the decal, face it. It&#039;s important that your body stands accurate, not your head. Then type &amp;quot;chr_debug_characters = 1&amp;quot; into the developer console and you will know the facing. Write it down, compare with the right table and chose your xyz rotation.&lt;br /&gt;
: &#039;&#039;&#039;PS:&#039;&#039;&#039; In matter of spawning/displaing, the exact rotation is not needed. Oni has a 66 degree tolerance.&lt;br /&gt;
: &#039;&#039;&#039;PPS:&#039;&#039;&#039; &amp;lt;DecalWrapAngle&amp;gt; (in BINA3RAP file) is usually set to 60. For hard edges you might want to increase the value.&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellspacing=20 cellpadding=0 align=right&lt;br /&gt;
|&lt;br /&gt;
[http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/DecalWrapAngle.jpg http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/DecalWrapAngle_TN.jpg]&lt;br /&gt;
&lt;br /&gt;
Test for a &amp;quot;hard edge&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;wall decals&#039;&#039;&#039;&lt;br /&gt;
                      x     y     z&lt;br /&gt;
 facing   0 degree: 270 |   0 |   0&lt;br /&gt;
 facing  90 degree: 270 |  90 |   0&lt;br /&gt;
 facing 180 degree: 270 | 180 |   0&lt;br /&gt;
 facing 270 degree: 270 | 270 |   0&lt;br /&gt;
&#039;&#039;&#039;ground decals&#039;&#039;&#039;&lt;br /&gt;
                      x     y     z&lt;br /&gt;
 facing   0 degree:   0 |   0 |   0&lt;br /&gt;
 facing  90 degree:   0 |  90 |   0&lt;br /&gt;
 facing 180 degree:   0 | 180 |   0&lt;br /&gt;
 facing 270 degree:   0 | 270 |   0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 2 - creating BINA3RAP file==&lt;br /&gt;
* file name in this example: &amp;quot;&#039;&#039;&#039;BINA3RAP&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;decal_particle_name&amp;lt;/font&amp;gt;.xml&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
* &amp;lt;Version&amp;gt; .. &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;has to be the same version as your own onisplit, change it if necessary&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;CollideWithChars&amp;gt; .. is ignored by decals&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;HasDecalState&amp;gt;true .. is needed&lt;br /&gt;
* &amp;lt;DisplayType&amp;gt;Decal .. is needed&lt;br /&gt;
* &amp;lt;TexGeom&amp;gt; .. links to [[#step_3_-_creating_TXMP_file|TXMP file]]&lt;br /&gt;
* &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Alpha&amp;gt; .. alpha level is ignored when TXMP has adaptiveAlpha flag&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Tint&amp;gt; .. is ignored by decals&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;Version=&amp;quot;0.9.41.0&amp;quot;&amp;lt;/font&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;Particle Name=&amp;quot;&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;decal_particle_name&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Options&amp;gt;&lt;br /&gt;
            &amp;lt;Lifetime&amp;gt;0&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
            &amp;lt;DisableDetailLevel&amp;gt;Never&amp;lt;/DisableDetailLevel&amp;gt;&lt;br /&gt;
            &amp;lt;Decorative&amp;gt;true&amp;lt;/Decorative&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithWalls&amp;gt;false&amp;lt;/CollideWithWalls&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithChars&amp;gt;false&amp;lt;/CollideWithChars&amp;gt;&lt;br /&gt;
            &amp;lt;InitiallyHidden&amp;gt;false&amp;lt;/InitiallyHidden&amp;gt;&lt;br /&gt;
            &amp;lt;DrawAsSky&amp;gt;false&amp;lt;/DrawAsSky&amp;gt;&lt;br /&gt;
            &amp;lt;DontAttractThroughWalls&amp;gt;false&amp;lt;/DontAttractThroughWalls&amp;gt;&lt;br /&gt;
            &amp;lt;ExpireOnCutscene&amp;gt;false&amp;lt;/ExpireOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;DieOnCutscene&amp;gt;false&amp;lt;/DieOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;LockPositionToLink&amp;gt;false&amp;lt;/LockPositionToLink&amp;gt;&lt;br /&gt;
            &amp;lt;CollisionRadius&amp;gt;0&amp;lt;/CollisionRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIDodgeRadius&amp;gt;0&amp;lt;/AIDodgeRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIAlertRadius&amp;gt;0&amp;lt;/AIAlertRadius&amp;gt;&lt;br /&gt;
            &amp;lt;FlyBySoundName /&amp;gt;&lt;br /&gt;
        &amp;lt;/Options&amp;gt;&lt;br /&gt;
        &amp;lt;Properties&amp;gt;&lt;br /&gt;
            &amp;lt;HasVelocity&amp;gt;false&amp;lt;/HasVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;HasOrientation&amp;gt;false&amp;lt;/HasOrientation&amp;gt;&lt;br /&gt;
            &amp;lt;HasPositionOffset&amp;gt;false&amp;lt;/HasPositionOffset&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttachmentMatrix&amp;gt;false&amp;lt;/HasAttachmentMatrix&amp;gt;&lt;br /&gt;
            &amp;lt;HasUnknown&amp;gt;false&amp;lt;/HasUnknown&amp;gt;&lt;br /&gt;
            &#039;&#039;&#039;&amp;lt;HasDecalState&amp;gt;true&amp;lt;/HasDecalState&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
            &amp;lt;HasTextureStartTick&amp;gt;false&amp;lt;/HasTextureStartTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasTextureTick&amp;gt;false&amp;lt;/HasTextureTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasDamageOwner&amp;gt;false&amp;lt;/HasDamageOwner&amp;gt;&lt;br /&gt;
            &amp;lt;HasContrailData&amp;gt;false&amp;lt;/HasContrailData&amp;gt;&lt;br /&gt;
            &amp;lt;HasLensFlareState&amp;gt;false&amp;lt;/HasLensFlareState&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttractor&amp;gt;false&amp;lt;/HasAttractor&amp;gt;&lt;br /&gt;
            &amp;lt;HasCollisionCache&amp;gt;false&amp;lt;/HasCollisionCache&amp;gt;&lt;br /&gt;
        &amp;lt;/Properties&amp;gt;&lt;br /&gt;
        &amp;lt;Appearance&amp;gt;&lt;br /&gt;
            &#039;&#039;&#039;&amp;lt;DisplayType&amp;gt;Decal&amp;lt;/DisplayType&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
            [[#step_3_-_creating_TXMP_file|&amp;lt;TexGeom&amp;gt;]]&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#AA00AA&amp;quot;&amp;gt;animated_texture&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;lt;/TexGeom&amp;gt;&lt;br /&gt;
            &amp;lt;Invisible&amp;gt;false&amp;lt;/Invisible&amp;gt;&lt;br /&gt;
            &amp;lt;IsContrailEmitter&amp;gt;false&amp;lt;/IsContrailEmitter&amp;gt;&lt;br /&gt;
            &amp;lt;ScaleToVelocity&amp;gt;false&amp;lt;/ScaleToVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;Scale&amp;gt;1&amp;lt;/Scale&amp;gt;&lt;br /&gt;
            &amp;lt;UseSeparateYScale&amp;gt;false&amp;lt;/UseSeparateYScale&amp;gt;&lt;br /&gt;
            &amp;lt;YScale&amp;gt;1&amp;lt;/YScale&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation&amp;gt;0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;Alpha&amp;gt;1&amp;lt;/Alpha&amp;gt;&lt;br /&gt;
            &amp;lt;XOffset&amp;gt;0&amp;lt;/XOffset&amp;gt;&lt;br /&gt;
            &amp;lt;XShorten&amp;gt;0&amp;lt;/XShorten&amp;gt;&lt;br /&gt;
            &amp;lt;UseSpecialTint&amp;gt;false&amp;lt;/UseSpecialTint&amp;gt;&lt;br /&gt;
            &amp;lt;Tint&amp;gt;255 255 255&amp;lt;/Tint&amp;gt;&lt;br /&gt;
            &amp;lt;FadeOutOnEdge&amp;gt;false&amp;lt;/FadeOutOnEdge&amp;gt;&lt;br /&gt;
            &amp;lt;OneSidedEdgeFade&amp;gt;false&amp;lt;/OneSidedEdgeFade&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMin&amp;gt;0&amp;lt;/EdgeFadeMin&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMax&amp;gt;0.5&amp;lt;/EdgeFadeMax&amp;gt;&lt;br /&gt;
            &amp;lt;MaxContrailDistance&amp;gt;0&amp;lt;/MaxContrailDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlare&amp;gt;false&amp;lt;/LensFlare&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareDistance&amp;gt;0&amp;lt;/LensFlareDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeInFrames&amp;gt;0&amp;lt;/LensFlareFadeInFrames&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeOutFrames&amp;gt;0&amp;lt;/LensFlareFadeOutFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFullBrightness&amp;gt;false&amp;lt;/DecalFullBrightness&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDecals&amp;gt;100&amp;lt;/MaxDecals&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFadeFrames&amp;gt;60&amp;lt;/DecalFadeFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalWrapAngle&amp;gt;60&amp;lt;/DecalWrapAngle&amp;gt;&lt;br /&gt;
        &amp;lt;/Appearance&amp;gt;&lt;br /&gt;
        &amp;lt;Attractor&amp;gt;&lt;br /&gt;
            &amp;lt;Target&amp;gt;None&amp;lt;/Target&amp;gt;&lt;br /&gt;
            &amp;lt;Selector&amp;gt;Distance&amp;lt;/Selector&amp;gt;&lt;br /&gt;
            &amp;lt;Class /&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDistance&amp;gt;150&amp;lt;/MaxDistance&amp;gt;&lt;br /&gt;
            &amp;lt;MaxAngle&amp;gt;30&amp;lt;/MaxAngle&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMin&amp;gt;3&amp;lt;/AngleSelectMin&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMax&amp;gt;20&amp;lt;/AngleSelectMax&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectWeight&amp;gt;3&amp;lt;/AngleSelectWeight&amp;gt;&lt;br /&gt;
        &amp;lt;/Attractor&amp;gt;&lt;br /&gt;
        &amp;lt;Variables /&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters /&amp;gt;&lt;br /&gt;
        &amp;lt;Events /&amp;gt;&lt;br /&gt;
    &amp;lt;/Particle&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 3 - creating TXMP file==&lt;br /&gt;
* file name in this example: &amp;quot;&#039;&#039;&#039;TXMP&amp;lt;font color=&amp;quot;#AA00AA&amp;quot;&amp;gt;animated_texture&amp;lt;/font&amp;gt;.xml&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
: Of cause the particle file doesn&#039;t has to contain an animated image. It&#039;s just meant to remind you that this possibility exist.&lt;br /&gt;
* &amp;lt;Version&amp;gt; .. &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;has to be the same version as your own onisplit, change it if necessary&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=0 cellspacing=20 cellpadding=0 align=right&lt;br /&gt;
|&lt;br /&gt;
[http://www.youtube.com/watch?v=ifHv5S-npqw&amp;amp;feature=channel_page http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/animated_decal.jpg]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;Version=&amp;quot;0.9.41.0&amp;quot;&amp;lt;/font&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;&lt;br /&gt;
        &amp;lt;Flags&amp;gt;HasMipMaps  AnimUseLocalTime  AnimBackToBack  AdditiveBlend&amp;lt;/Flags&amp;gt;&lt;br /&gt;
        &amp;lt;Format&amp;gt;RGB555&amp;lt;/Format&amp;gt;&lt;br /&gt;
        &amp;lt;Speed&amp;gt;4&amp;lt;/Speed&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_000.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_001.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_002.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_003.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_004.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_005.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_006.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_007.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_008.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_009.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_010.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
    &amp;lt;/Texture&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 4 - show or hide decals via BSL==&lt;br /&gt;
fork respawnable_decals in your main function&lt;br /&gt;
 var bool first = 1;&lt;br /&gt;
 &lt;br /&gt;
 func respawnable_decals&lt;br /&gt;
 {&lt;br /&gt;
 	chr_debug_characters = 1&lt;br /&gt;
 	dmsg &amp;quot;( punch to hide a few decals now )&amp;quot;&lt;br /&gt;
 	### decal is already presented so we begin with stop function&lt;br /&gt;
 	fork kill_decal&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func kill_decal&lt;br /&gt;
 {&lt;br /&gt;
 	sleep 30&lt;br /&gt;
 	chr_wait_animtype 0 punch&lt;br /&gt;
 	dmsg &amp;quot;( punch detected; [r.deactivating decals now] )&amp;quot;&lt;br /&gt;
 	&#039;&#039;&#039;### has effect at all particle with chosen tag&#039;&#039;&#039;&lt;br /&gt;
 	### in the vid, obviously the two decals use the same tag&lt;br /&gt;
 	particle &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;decal_BSL_name&amp;lt;/font&amp;gt;&#039;&#039;&#039; kill&lt;br /&gt;
 	if (first eq 1)&lt;br /&gt;
 	{&lt;br /&gt;
 		dmsg &amp;quot;( kick to show a few decals now )&amp;quot;&lt;br /&gt;
 		first = 0;&lt;br /&gt;
 		sleep 60&lt;br /&gt;
 	}&lt;br /&gt;
 	fork create_decal&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func create_decal&lt;br /&gt;
 {&lt;br /&gt;
 	sleep 30&lt;br /&gt;
 	chr_wait_animtype 0 kick&lt;br /&gt;
 	dmsg &amp;quot;( kick detected; [b.activating decals now] )&amp;quot;&lt;br /&gt;
 	particle &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;decal_BSL_name&amp;lt;/font&amp;gt;&#039;&#039;&#039; create&lt;br /&gt;
 	fork kill_decal&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=how to set up decorative character items=&lt;br /&gt;
Based on geyser&#039;s [http://geyser.oni2.net/edition/levels/colony/sillyworld.zip &amp;quot;silly world&amp;quot;] experiment.&lt;br /&gt;
&lt;br /&gt;
Marks, bags, goggles, decorative LSI, flash lights and other equipment could individualize characters by using a (BSL-triggered) particle workaround.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 1: ONCC modifications==&lt;br /&gt;
First we need to create a connection to the character. For this, we use the Daodan particle system to some degree. &lt;br /&gt;
 &amp;lt;HasDaodanPowers&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/HasDaodanPowers&amp;gt;&lt;br /&gt;
Now it&#039;s enabled for this character. Next we register our item (hold by particle) in the ONCP section.&lt;br /&gt;
 &amp;lt;ONCPParticle&amp;gt;&lt;br /&gt;
   &amp;lt;Name&amp;gt;&#039;&#039;&#039;super&#039;&#039;&#039;_shades&amp;lt;/Name&amp;gt;&lt;br /&gt;
   &amp;lt;Type&amp;gt;silly_shades&amp;lt;/Type&amp;gt;&lt;br /&gt;
   [[OBD:TRIA#Bones|&amp;lt;BodyPart&amp;gt;]]10&amp;lt;/BodyPart&amp;gt;&lt;br /&gt;
 &amp;lt;/ONCPParticle&amp;gt;&lt;br /&gt;
&amp;lt;Name&amp;gt; As long as &#039;&#039;&#039;super&#039;&#039;&#039; stands at beginning, the further naming is unimportant.&amp;lt;br&amp;gt;&amp;lt;Type&amp;gt; This is a link to the particle file.&amp;lt;br&amp;gt;&amp;lt;BodyPart&amp;gt; This is the body part where the particle is attached to. Position fine tuning can be done in M3GM&#039;s PNTA section, &amp;lt;Positions&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 2: creating the item files==&lt;br /&gt;
* BINA3RAPsilly_glasses.xml&lt;br /&gt;
: Needed modifications:&lt;br /&gt;
 &amp;lt;Lifetime&amp;gt;0&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;HasAttachmentMatrix&amp;gt;true&amp;lt;/HasAttachmentMatrix&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;DisplayType&amp;gt;Geometry&amp;lt;/DisplayType&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;TexGeom&amp;gt;&#039;&#039;&#039;silly_shades&#039;&#039;&#039;&amp;lt;/TexGeom&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Events&amp;gt;&lt;br /&gt;
  &amp;lt;Start&amp;gt;&lt;br /&gt;
   &amp;lt;Show /&amp;gt;&lt;br /&gt;
  &amp;lt;/Start&amp;gt;&lt;br /&gt;
  &amp;lt;Stop&amp;gt;&lt;br /&gt;
   &amp;lt;Hide /&amp;gt;&lt;br /&gt;
  &amp;lt;/Stop&amp;gt;&lt;br /&gt;
 &amp;lt;/Events&amp;gt;&lt;br /&gt;
* M3GM&#039;&#039;&#039;silly_shades&#039;&#039;&#039;.xml&lt;br /&gt;
 &amp;lt;Texture&amp;gt;TXMP&#039;&#039;&#039;silly_shades_tex&#039;&#039;&#039;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
* TXMP&#039;&#039;&#039;silly_shades_tex&#039;&#039;&#039;.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 3: preparing the BSL stuff==&lt;br /&gt;
* BINACJBOCharacter.xml&lt;br /&gt;
&amp;lt;Spawn&amp;gt;silly_setup&amp;lt;/Spawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* shpadoinkle.bsl&lt;br /&gt;
 #character spawn function&lt;br /&gt;
 func silly_setup(string name) {&lt;br /&gt;
 	chr_lock_active(name)&lt;br /&gt;
 	chr_super(name, 1)&lt;br /&gt;
 	sleep 2&lt;br /&gt;
 	chr_super(name, 0)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellspacing=20 cellpadding=0 align=right&lt;br /&gt;
|&lt;br /&gt;
[http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/silly_shades.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/silly_shades_TN.png]&amp;lt;br&amp;gt;Karen: &amp;quot;Ready for Matrix. HAR-HAR&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
: silly_setup will be triggered every time a character is spawned with this link in BINACJBOCharacter.xml&lt;br /&gt;
: Only AI would need chr_lock_active.&lt;br /&gt;
: chr_super becomes disabled again to prevent other Daodan effects (in case our character would had a chenille or other visuals). We don&#039;t have to worry about the item, its live time was set to 0 (infinity). (chr_super 0 only hides the particle, it doesn&#039;t kill it.)&lt;br /&gt;
: &lt;br /&gt;
&lt;br /&gt;
 func main {&lt;br /&gt;
 	# [...]&lt;br /&gt;
 	p3_callevent silly_glasses &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
 	# [...]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2&#039;&#039;&#039; corresponds to &amp;lt;Start&amp;gt; tag and &#039;&#039;&#039;3&#039;&#039;&#039; corresponds to &amp;lt;Stop&amp;gt; tag in BINA3RAPsilly_shades.xml&lt;br /&gt;
This can &#039;&#039;switch on and off&#039;&#039; the item. Other effects could be triggered by the free remaining numbers. A collection of events and their numbers can be seen [[XML:BINA/OBJC/PART|HERE]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==extra demo==&lt;br /&gt;
&#039;&#039;For all Gundam Seed fans out there: Phase Shift shades.&#039;&#039; ^_^&lt;br /&gt;
Nah, the texture of such object cannot become replaced by another. But by using three different shades, we can create this illusion. There are blue shades. A &#039;&#039;pair&#039;&#039; that uses an animated texture. And a red pair. The animated pair is only temporary used. [http://www.youtube.com/watch?v=XbOb0i5StDk Here&#039;s a vid.]&lt;br /&gt;
&lt;br /&gt;
 func spawn_karen {&lt;br /&gt;
 	chr_super karen 1&lt;br /&gt;
 	### all three shades particle created&lt;br /&gt;
 	sleep 2&lt;br /&gt;
 	### now but we need to hide them&lt;br /&gt;
 	chr_super karen 0&lt;br /&gt;
 	### show only blue shades for the start&lt;br /&gt;
 	p3_callevent shades_blue 2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func phase_shift_shades {&lt;br /&gt;
 	p3_callevent shades_blue 3&lt;br /&gt;
 	p3_callevent shades_blue_red 2&lt;br /&gt;
 	sleep 20&lt;br /&gt;
 	p3_callevent shades_blue_red 3&lt;br /&gt;
 	p3_callevent shades_red 2&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:BINA/PAR3&amp;diff=22843</id>
		<title>XML:BINA/PAR3</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:BINA/PAR3&amp;diff=22843"/>
		<updated>2013-08-29T12:46:06Z</updated>

		<summary type="html">&lt;p&gt;Loser: EnableAtTime / DisableAtTime - meaning of that bastard &amp;quot;Lifetime&amp;quot; value finally cracked ^_^&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_BINA_Header|prev=ONIE|type=PAR3|next=SABD|name=Particle v3}}&lt;br /&gt;
&lt;br /&gt;
==file structure== &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni&amp;gt;&lt;br /&gt;
    &amp;lt;Particle Name=&amp;quot;&#039;&#039;particle_file_name&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Options&amp;gt;&lt;br /&gt;
            &amp;lt;Lifetime&amp;gt;&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
            &amp;lt;DisableDetailLevel&amp;gt;[... see &#039;&#039;&#039;[[#options|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/DisableDetailLevel&amp;gt;&lt;br /&gt;
            &amp;lt;Decorative&amp;gt;&amp;lt;/Decorative&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Options&amp;gt;&lt;br /&gt;
        &amp;lt;Properties&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Properties&amp;gt;&lt;br /&gt;
        &amp;lt;Appearance&amp;gt;&lt;br /&gt;
            &amp;lt;DisplayType&amp;gt;[... see &#039;&#039;&#039;[[#appearance|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/DisplayType&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Appearance&amp;gt;&lt;br /&gt;
        &amp;lt;Attractor&amp;gt;&lt;br /&gt;
            &amp;lt;Target&amp;gt;[... see &#039;&#039;&#039;[[#attractor|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/Target&amp;gt;&lt;br /&gt;
            &amp;lt;Selector&amp;gt;[... see &#039;&#039;&#039;[[#attractor|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/Selector&amp;gt;&lt;br /&gt;
            &amp;lt;Class /&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Attractor&amp;gt;&lt;br /&gt;
        &#039;&#039;&#039;[[#variable storage types|&amp;lt;Variables&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Variables&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters&amp;gt;&lt;br /&gt;
            &amp;lt;Emitter&amp;gt;&lt;br /&gt;
                [... see &#039;&#039;&#039;[[#emitter|HERE]]&#039;&#039;&#039; for emitter data]&lt;br /&gt;
            &amp;lt;/Emitter&amp;gt;&lt;br /&gt;
        &amp;lt;/Emitters&amp;gt;&lt;br /&gt;
        &amp;lt;Events&amp;gt;&lt;br /&gt;
            [... see &#039;&#039;&#039;[[#event types|HERE]]&#039;&#039;&#039; for &#039;&#039;&#039;&#039;&#039;&amp;lt;event_type_tag&amp;gt;&#039;&#039;&#039;&#039;&#039;]&lt;br /&gt;
 		[... see &#039;&#039;&#039;[[#action types and parameters|HERE]]&#039;&#039;&#039; for &#039;&#039;&#039;&amp;lt;action_type_tag&amp;gt;&#039;&#039;&#039;]&lt;br /&gt;
                    [... see &#039;&#039;&#039;[[#action types and parameters|HERE]]&#039;&#039;&#039; for &#039;&#039;&#039;&#039;&#039;&amp;lt;parameter_tag&amp;gt;[[#parameter value types|value]]&amp;lt;/parameter_tag&amp;gt;&#039;&#039;&#039;&#039;&#039;]&lt;br /&gt;
 		&#039;&#039;&amp;lt;action_type_tag&amp;gt;&#039;&#039;&lt;br /&gt;
            &#039;&#039;&amp;lt;/event_type_tag&amp;gt;&#039;&#039;&lt;br /&gt;
        &amp;lt;/Events&amp;gt;&lt;br /&gt;
    &amp;lt;/Particle&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==options==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Lifetime&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Particle exist for X seconds.&lt;br /&gt;
: X is float value, so you could write 1.5 if 1 second is too less and 2 too many.&lt;br /&gt;
: 0 means an infinite lifetime.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DisableDetailLevel&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Particle is not created if detail level is too low.&lt;br /&gt;
: Never&lt;br /&gt;
: Medium&lt;br /&gt;
: Low&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Decorative&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Might not always be updated by the engine.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;CollideWithWalls&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle uses the HitWall event type.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;CollideWithChars&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle uses the HitCharacter event type.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;InitiallyHidden&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Hides the particle on creation.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DrawAsSky&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Draws the particle before everything else, supposedly.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DontAttractThroughWalls&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Particle will not detect attractors if there is a wall between it and the potential attractor.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;ExpireOnCutscene&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Ends the lifetime of a particle on cutscene start.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DieOnCutscene&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Kills the particle on cutscene start.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LockPositionToLink&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|Locks the position of the particle to its link.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CollisionRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Distance from which HitWall and HitCharacter events are activated.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AIDodgeRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Distance from which AI will avoid this particle.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AIAlertRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Distance from which AI will be aware of the danger of the particle.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FlyBySoundName /&amp;gt; &lt;br /&gt;
|valign=top| link&lt;br /&gt;
| Sound used when the particle passes by you. Check: does the engine apply the Doppler effect or is it in the sound file itself?&lt;br /&gt;
: &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==properties==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasVelocity&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle is to move.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasOrientation&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle is to be able to turn around?&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasPositionOffset&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used with LockPositionToLink???&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasAttachmentMatrix&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used if the particle is to be stuck to a character or wall.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasUnknown&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| ???&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasDecalState&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used if the particle is a Decal.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasTextureStartTick&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used with animated particles. (Documentation Needed).&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasTextureTick&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used with animated particles. (Documentation Needed).&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasDamageOwner&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|Used for particles to either:&lt;br /&gt;
: A. Not damage a character&lt;br /&gt;
: B. Credit a character with damage\kills&lt;br /&gt;
For this to work properly, the parent of the character must have this set, and the parent of said parent, etc, up to the original particle.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==appearance==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DisplayType&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| How the particle is displayed. (Please Document)&lt;br /&gt;
: Sprite&lt;br /&gt;
: RotatedSprite&lt;br /&gt;
: Beam - bullet textures and such&lt;br /&gt;
: Arrow&lt;br /&gt;
: Flat&lt;br /&gt;
: OrientedContrail&lt;br /&gt;
: Discuss&lt;br /&gt;
: Decal - sticks to a wall&lt;br /&gt;
: Geometry - uses an M3GM&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;TexGeom&amp;gt;&lt;br /&gt;
|valign=top| link&lt;br /&gt;
|The texture or model that this particle uses.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TXMP&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt; / &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;M3GM&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Invisible&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Can&#039;t be seen.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;IsContrailEmitter&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Emits a contrail.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;ScaleToVelocity&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Scales the particle based on the speed it is going.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Scale&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|The size of the particle.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;UseSeparateYScale&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Stretches the particle along the Y axis if set.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;YScale&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Needs &amp;lt;UseSeparateYScale&amp;gt;true&amp;lt;/UseSeparateYScale&amp;gt; to be enabled.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Rotation&amp;gt;&lt;br /&gt;
|valign=top| ?&lt;br /&gt;
| The rotation of the particle.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Alpha&amp;gt;&lt;br /&gt;
|valign=top| float / integer&lt;br /&gt;
| Transparency (0 = fully invisible, 1 or 255 = fully visible)&lt;br /&gt;
: float: 0.0 - 1.0 &lt;br /&gt;
: integer: 0 - 255&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;XOffset&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;XShorten&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;UseSpecialTint&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Research note: &amp;quot;true&amp;quot; can be found in BINA3RAPbarab_p02.xml&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Tint&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| Color. R G B A means Red Green Blue Alpha.&lt;br /&gt;
: R G B&lt;br /&gt;
: R G B A&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FadeOutOnEdge&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;OneSidedEdgeFade&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;EdgeFadeMin&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;EdgeFadeMax&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;MaxContrailDistance&amp;gt;&lt;br /&gt;
|valign=top| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlare&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlareDistance&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlareFadeInFrames&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlareFadeOutFrames&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DecalFullBrightness&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;MaxDecals&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| Seems to be a bit broken (someone please test this again).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DecalFadeFrames&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| The number of frames it takes for a decal particle to fade after it reaches the maximum number of decals.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DecalWrapAngle&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Degrees. Decal isn&#039;t cut off when the next plane piece has an angle difference equal or less to this value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==attractor==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Target&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: None&lt;br /&gt;
: Link&lt;br /&gt;
: Class&lt;br /&gt;
: Tag&lt;br /&gt;
: Characters&lt;br /&gt;
: Hostiles&lt;br /&gt;
: EmittedTowards&lt;br /&gt;
: ParentAttractor&lt;br /&gt;
: AllCharacters&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Selector&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: Distance&lt;br /&gt;
: Angle&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Class /&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Name of a paritcle that this particle is attracted to.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;MaxDistance&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Maximum distance the particle will detect an attractor from (if using Distance selection).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;MaxAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Maximum angle the particle will detect an attractor from (if using Angle selection).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;AngleSelectMin&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;AngleSelectMax&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;AngleSelectWeight&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==variable storage types==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!XML tag&lt;br /&gt;
!description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&#039;&#039;float_value&#039;&#039;&amp;lt;/Float&amp;gt;&lt;br /&gt;
|A Float.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&#039;&#039;R G B [A]&#039;&#039;&amp;lt;/Color&amp;gt;&lt;br /&gt;
|A color.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;PingPongState Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&#039;&#039;?&#039;&#039;&amp;lt;/PingPongState&amp;gt;&lt;br /&gt;
|A float from 0.0-1.0, describes where in the ping pong state the event is. (If my memory is correct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==parameter value types==&lt;br /&gt;
Grey is additional for variable section.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
0 - variable; variable name follows&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;variable&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1 - none (action parameters use this to indicate an unused parameter)&lt;br /&gt;
|&lt;br /&gt;
?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
3 - float; constant; 1 float value follows&lt;br /&gt;
&lt;br /&gt;
4 - float; random; 2 float values follow (min, max)&lt;br /&gt;
&lt;br /&gt;
5 - float; bell curve; 2 float values follow (mean, stddev)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;float_value&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;Random Min=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; Max=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;BellCurve [[wikipedia:Expected_value|Mean]]=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; [[wikipedia:Standard_deviation|StdDev]]=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
6 - instance; instance name follows&lt;br /&gt;
|&lt;br /&gt;
?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
7 - color; constant; 1 color follows&lt;br /&gt;
&lt;br /&gt;
8 - color; random; 2 color follow (min, max)&lt;br /&gt;
&lt;br /&gt;
9 - color; bell curve; 2 color follow (mean, stddev)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;R G B&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Color&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;Random Min=&amp;quot;&#039;&#039;R G B&#039;&#039;&amp;quot; Max=&amp;quot;&#039;&#039;R G B&#039;&#039;&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Color&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;BellCurve Mean=&amp;quot;? ? ? ?&amp;quot; StdDev=&amp;quot;? ? ? ?&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Color&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
0A - int32; constant; int32 follows&lt;br /&gt;
|&lt;br /&gt;
?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
0B - time cycle; 2 float values follow (cycle length, scale)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;TimeCycle Length=&amp;quot;...&amp;quot; Scale=&amp;quot;...&amp;quot; /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==emitter==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Class&amp;gt;&lt;br /&gt;
|valign=top| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;BINA3RAP&amp;lt;/font&amp;gt;&#039;&#039;file_name&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt; (without file prefix and suffix)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: InitiallyOn&lt;br /&gt;
: IncreaseParticleCount&lt;br /&gt;
: TurnOffAtTreshold&lt;br /&gt;
: EmitWithParentVelocity&lt;br /&gt;
: Unknown0020&lt;br /&gt;
: OrientToVelocity&lt;br /&gt;
: InheritTint&lt;br /&gt;
: OnePerAttractor&lt;br /&gt;
: AtLeastOne&lt;br /&gt;
: CycleAttractors&lt;br /&gt;
&lt;br /&gt;
recherche notes - files with Unknown0020 flag:&lt;br /&gt;
&lt;br /&gt;
BINA3RAPw8_mbo_p07, BINA3RAPw8_mbo_e03, BINA3RAPw12_ba2_e03, BINA3RAPw10_sni_p01, BINA3RAPpstream_flicker, BINA3RAPheadlight02, BINA3RAPheadlightStart, BINA3RAPheadlight01&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;TurnOffTreshold&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| Tag contains the number (threshold) of particle which must be reached before emitter becomes turned off. Threshold needs two flags to be set: IncreaseParticleCount and TurnOffAtTreshold.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Probability&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
Let&#039;s say threshold was set to 10 and probability to 0.5 then you might get 5 particle emitted, sometimes less, sometime more, it&#039;s an average. (threshold * probability = emitted particle) &lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Copies&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| It&#039;s actually a multiplier, set it to 0 and no particle will be emitted. Copies doesn&#039;t effects the treshold counting. The copies become emitted at the same place as the original particle so you might not see any difference (because they overlay each other) until they have a random movement.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LinkTo&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: this&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
: 5&lt;br /&gt;
: 6&lt;br /&gt;
: 7&lt;br /&gt;
: link&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Rate&amp;gt;&lt;br /&gt;
|valign=top| -&lt;br /&gt;
| Interval in seconds.&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Continous&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Interval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Random&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;MinInterval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;MaxInterval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Instant /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Distance&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Distance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Attractor&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;RechargeTime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;CheckInterval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Position&amp;gt;&lt;br /&gt;
|valign=top| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Point /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Line&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Circle&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;InnerRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OuterRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Sphere&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;InnerRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OuterRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Cylinder&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Height&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;InnerRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OuterRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;BodySurface&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OffsetRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;BodyBones&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OffsetRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Direction&amp;gt;&lt;br /&gt;
|valign=top|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Straight /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Random /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Cone&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;CenterBias&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Ring&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Offset&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Offset&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;X&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Y&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Z&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Inaccurate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;BaseAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Inaccuracy&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;CenterBias&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Attractor /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Speed&amp;gt;&lt;br /&gt;
|valign=top| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Uniform&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Stratified&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Speed1&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Speed2&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Orientation&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: LocalPosX&lt;br /&gt;
: LocalNegX&lt;br /&gt;
: LocalPosY&lt;br /&gt;
: LocalNegY&lt;br /&gt;
: LocalPosZ&lt;br /&gt;
: LocalNegZ&lt;br /&gt;
: WorldPosX&lt;br /&gt;
: WorldNegX&lt;br /&gt;
: WorldPosY&lt;br /&gt;
: WorldNegY&lt;br /&gt;
: WorldPosZ&lt;br /&gt;
: WorldNegZ&lt;br /&gt;
: Velocity&lt;br /&gt;
: ReverseVelocity&lt;br /&gt;
: TowardsEmitter&lt;br /&gt;
: AwayFromEmitter&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;OrientationUp&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| same flags as &amp;lt;OrientationUp&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==event types==&lt;br /&gt;
: Update&lt;br /&gt;
: Pulse&lt;br /&gt;
: Start&lt;br /&gt;
: Stop&lt;br /&gt;
: BackgroundFxStart&lt;br /&gt;
: BackgroundFxStop&lt;br /&gt;
: HitWall&lt;br /&gt;
: HitCharacter&lt;br /&gt;
: Lifetime&lt;br /&gt;
: Explode&lt;br /&gt;
: BrokenLink&lt;br /&gt;
: Create&lt;br /&gt;
: Die&lt;br /&gt;
: NewAttractor&lt;br /&gt;
: DelayStart&lt;br /&gt;
: DelayStop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=50%|&lt;br /&gt;
&#039;&#039;&#039;schemata 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
                &amp;lt;&#039;&#039;action_tag_&#039;&#039;&#039;without_parameter&#039;&#039;&#039;&#039;&#039; /&amp;gt;&lt;br /&gt;
            &amp;lt;/&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
|width=50%|&lt;br /&gt;
&#039;&#039;&#039;example 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;Die /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&lt;br /&gt;
&#039;&#039;&#039;schemata 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
                &amp;lt;&#039;&#039;action_tag_&#039;&#039;&#039;with_parameter&#039;&#039;&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
                    &amp;lt;&#039;&#039;parameter_tag&#039;&#039;&amp;gt;&#039;&#039;value_or_variable&#039;&#039;&amp;lt;/parameter_tag&amp;gt;&lt;br /&gt;
                &amp;lt;/&#039;&#039;action_tag_&#039;&#039;&#039;with_parameter&#039;&#039;&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
            &amp;lt;/&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;example 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;Update&amp;gt;&lt;br /&gt;
                &amp;lt;SuperParticle&amp;gt;&lt;br /&gt;
                    &amp;lt;Variable&amp;gt;emit_rate&amp;lt;/Variable&amp;gt;&lt;br /&gt;
                    &amp;lt;VaseValue&amp;gt;0.25&amp;lt;/VaseValue&amp;gt;&lt;br /&gt;
                    &amp;lt;DeltaValue&amp;gt;-0.1&amp;lt;/DeltaValue&amp;gt;&lt;br /&gt;
                    &amp;lt;MinValue&amp;gt;0.1&amp;lt;/MinValue&amp;gt;&lt;br /&gt;
                    &amp;lt;MaxValue&amp;gt;20&amp;lt;/MaxValue&amp;gt;&lt;br /&gt;
                &amp;lt;/SuperParticle&amp;gt;&lt;br /&gt;
            &amp;lt;/Update&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==action types and parameters==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| A dark gray background marks the start of an action type.&lt;br /&gt;
|-&lt;br /&gt;
| Normal gray background is used for child tags.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=160px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateLinear&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateAccelerated&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Velocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Acceleration&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateRandom&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimatePingPong&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;State&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateLoop&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateToValue&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Value&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ColorInterpolate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Color0&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Color1&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Amount&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;FadeOut&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TimeToDie&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| particle becomes killed after X seconds, it fades out during that time&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableAtTime&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| ??? &#039;&#039;&#039;Update&#039;&#039;&#039; event only ???&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| has action X as target in Update event section&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Lifetime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Lifetime of the particle MINUS the value stored in this field yields the moment from particle&#039;s spawn when the targeted action (action from the &amp;quot;Action&amp;quot; tag) starts operating. Till that moment, the targeted action is held inactive.&amp;lt;BR&amp;gt;&amp;lt;font size=1&amp;gt;Example:&amp;lt;BR&amp;gt;Particle&#039;s lifetime ticks in a decreasing manner. If the lifetime of the particle is set to be 3.0, then it ticks from 3.0 down to 0.0 (at 0.0, Lifetime event is called).&amp;lt;BR&amp;gt;Now, if lifetime of the particle is set to be 3.0 and value here in this tag is 1.0, then from the moment the particle is spawned, this EnableAtTime&#039;s targeted action (the action inside &amp;quot;Action&amp;quot; tag) will be disabled and will activate only after the particle&#039; lifetime crosses value (3.0-1.0) = 2.0 seconds. That means the targeted action will activate 2 seconds after the particle was spawned.&amp;lt;BR&amp;gt;This mechanism is quite counter-intuitive, hence the detailed description.&amp;lt;/font&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DisableAtTime&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| ??? &#039;&#039;&#039;Update&#039;&#039;&#039; event only ???&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| has action X as target in Update event section&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Lifetime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Lifetime of the particle MINUS the value stored in this field yields the moment from particle&#039;s spawn when the targeted action (action from the &amp;quot;Action&amp;quot; tag) stops operating. Till that moment, the targeted action is kept active.&amp;lt;BR&amp;gt;&amp;lt;font size=1&amp;gt;Example:&amp;lt;BR&amp;gt;Particle&#039;s lifetime ticks in a decreasing manner. If the lifetime of the particle is set to be 3.0, then it ticks from 3.0 down to 0.0 (at 0.0, Lifetime event is called).&amp;lt;BR&amp;gt;Now, if lifetime of the particle is set to be 3.0 and value here in this tag is 1.0, then from the moment the particle is spawned, this EnableAtTime&#039;s targeted action (the action inside &amp;quot;Action&amp;quot; tag) will be working and will deactivate only after the particle&#039; lifetime crosses value (3.0-1.0) = 2.0 seconds. That means the targeted action will deactivate 2 seconds after the particle was spawned.&amp;lt;BR&amp;gt;This mechanism is quite counter-intuitive, hence the detailed description.&amp;lt;/font&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Die /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetLifetime&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Time&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| particle becomes killed after X seconds&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EmitActivate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Enables emitter X. Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EmitDeactivate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Disables emitter X. Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EmitParticles&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Starts emitter X. Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Particles&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer recommended. Number of particle to be emitted.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ChangeClass&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;KillLastEmitted&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| ?; Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ExplodeLastEmitted&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| ?; Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AmbientSound&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Sound&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;&#039;&#039;file_name&#039;&#039;&amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;.amb.oni&amp;lt;/font&amp;gt; (file prefix OSBD and suffix .amb.oni not used)&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EndAmbientSound /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ImpulseSound&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Sound&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;&#039;&#039;file_name&#039;&#039;&amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (file prefix OSBD and suffix .imp.oni not used)&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DamageChar&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Damage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer recommended. Negative damage values don&#039;t work.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StunDamage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Adds the value specified here to the StunDamage sum variable.&amp;lt;BR&amp;gt;StunDamage has visible effect only for DamageTypes 1, 2 and 6.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;KnockBack&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Character gets moved from its current position by &amp;quot;knockback value&amp;quot; game world units with 0.1 precision.&amp;lt;BR&amp;gt;&amp;lt;font size=1&amp;gt;(Example: If value here is 100, char gets moved cca 99,9 units)&amp;lt;/font&amp;gt;&lt;br /&gt;
Negative values work as well, they reverse the direction. &amp;lt;font size=1&amp;gt;(Instead of being &amp;quot;knocked back&amp;quot;, the character is &amp;quot;drawn in&amp;quot;)&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageType&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 (&amp;quot;normal&amp;quot;)&lt;br /&gt;
: 1 (&amp;quot;minor stun&amp;quot;)&lt;br /&gt;
: 2 (&amp;quot;major stun&amp;quot;)&lt;br /&gt;
: 3 (&amp;quot;minor knockdown&amp;quot;)&lt;br /&gt;
: 4 (&amp;quot;major knockdown&amp;quot;)&lt;br /&gt;
: 5 (&amp;quot;blownup&amp;quot;)&lt;br /&gt;
: 6 (&amp;quot;pickup&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SelfImmune&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 - DamageOwner of the particle can be hurt by the particle&lt;br /&gt;
: 1 - DamageOwner of the particle can&#039;t be hurt by the particle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CanHitMultiple&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| tag is missing if value is 0&lt;br /&gt;
: 0 - can be applied multiple times on the target character&lt;br /&gt;
: 1 - can be applied only once on the character, then is ignored (hurts the target character strictly only once)&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DamageBlast&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Damage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer recommended. Negative damage values don&#039;t work.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StunDamage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Same as the DamageChar&#039;s StunDamage&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;KnockBack&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Same as the DamageChar&#039;s Knockback&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Radius of the damaging sphere.&amp;lt;BR&amp;gt;&amp;lt;font size=1&amp;gt;(Example: If value here is 100, character gets damaged if its distance from the position of the damaging particle is less then or equal to 100 game world units.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FallOff&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 - DamageBlast deals the same damage, stun damage and knockback regardless of the distance between the particle and the target character&lt;br /&gt;
: 1 - Inflicted Damage, StunDamage and Knockback linearly decrease with distance.&lt;br /&gt;
&amp;lt;font size=1&amp;gt;Example: this flag is set, Radius is 200, Damage is 400, StunDamage is 600 and Knocback is 800.&amp;lt;BR&amp;gt;The target character dwells 150 game world units far from the DamageBlast particle.&amp;lt;BR&amp;gt;&lt;br /&gt;
When hit by the particle&#039;s DamageBlast, PAR3 values of Damage, StunDamage and Knockback will be multiplied by the multiplier:&amp;lt;BR&amp;gt;&lt;br /&gt;
(200-150)/200 = 0.25&amp;lt;BR&amp;gt;&lt;br /&gt;
That means the target character will suffer 0.25*400 = 100 Damage, 150 StunDamage and 200 Knockback&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageType&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
: 0 (&amp;quot;normal&amp;quot;)&lt;br /&gt;
: 1 (&amp;quot;minor stun&amp;quot;)&lt;br /&gt;
: 2 (&amp;quot;major stun&amp;quot;)&lt;br /&gt;
: 3 (&amp;quot;minor knockdown&amp;quot;)&lt;br /&gt;
: 4 (&amp;quot;major knockdown&amp;quot;)&lt;br /&gt;
: 5 (&amp;quot;blownup&amp;quot;)&lt;br /&gt;
: 6 (&amp;quot;pickup&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SelfImmune&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| &lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
Same as the DamageChar&#039;s SelfImmune&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;This tag is not exported if the data field in the oni file is &amp;quot;00&amp;quot;. It is exported when &amp;quot;0A&amp;quot; was set.&amp;lt;/font&amp;gt;&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Explode /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| this action triggers Explode event&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Damage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer used.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;GlassCharge&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BlastVelocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Stop /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| calls Stop event&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RotateX&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateVelocity&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RotateY&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateVelocity&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RotateZ&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateVelocity&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;FindAttractor&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DelayTime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AttractGravity&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Gravity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxG&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HorizontalOnly&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AttractHoming&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TurnSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictPosition&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HorizontalOnly&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AttractSpring&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AccelRate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxAccel&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DesiredDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveLine /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveGravity&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Fraction&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveSpiral&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Theta&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveResistance&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Resistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinimumVelocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveDrift&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Acceleration&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SidewaysDecay&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DirX&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DirY&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DirZ&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetVelocity&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;NoSideways&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SpiralTangent&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Theta&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rotate_speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;KillBeyondPoint&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Direction&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Value&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;CollisionEffect&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Effect&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;WallOffset&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Orientation&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Attach&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SitckToWall /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Bounce&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ElasticDirect&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ElasticGlancing&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Chop /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| [[XML:Impt|&amp;lt;ImpactEffect&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ImpactType&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Name of impact, registered in ONIE. The looked up material is known from collided particle. Impt and Mtrl file must exist&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ImpactModifier&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Show /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| unhide particle&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Hide /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| hide particle, cannot collide with characters anymore, emitters stay active&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetTextureTick&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Tick&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RandomTextureFrame /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetVariable&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Value&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RecalculateAll /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableAbove&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;Var&amp;amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Threshold&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableBelow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;Var&amp;amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Threshold&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableNow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| enables action X in Update event section&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DisableNow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| disables action X in Update event section&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SuperBallTrigger&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FuseTime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;StopIfBreakable /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| It is actually DontStopIfBreakable. See section: glass-piercing bullets.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AvoidWalls&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AxisX&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AxisY&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AxisZ&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CurrentAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TimeUntilCheck&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SenseDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TurningSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TurningDecay&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RandomSwirl&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlBaseRate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlDeltaRate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;FloatAbovePlayer&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Height&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;StopIfSlow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SuperParticle&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Variable&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;VaseValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeltaValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;StopLink /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;CheckLink /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| Checks if the particle&#039;s attractor link is still valid. If link is no longer valid, &#039;&#039;&#039;BrokenLink&#039;&#039;&#039; event is called.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;BreakLink /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==glass-piercing bullets==&lt;br /&gt;
In the original game, w1_tap goes through normal glass and loses its dangerousness while a bullet of w8_mbo stays dangerous.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=100%&lt;br /&gt;
! BINA3RAPw1_tap_p01.xml &lt;br /&gt;
! BINA3RAPw8_mbo_p01.xml&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;ImpactEffect&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactType&amp;gt;w1_tap&amp;lt;/ImpactType&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactModifier&amp;gt;3&amp;lt;/ImpactModifier&amp;gt;&lt;br /&gt;
                &amp;lt;/ImpactEffect&amp;gt;&lt;br /&gt;
                &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
                    &amp;lt;Damage&amp;gt;13&amp;lt;/Damage&amp;gt;&lt;br /&gt;
                &amp;lt;/DamageEnvironment&amp;gt;&lt;br /&gt;
                &amp;lt;Chop /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
                    &amp;lt;Damage&amp;gt;50&amp;lt;/Damage&amp;gt;&lt;br /&gt;
                &amp;lt;/DamageEnvironment&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;StopIfBreakable /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                &amp;lt;ImpactEffect&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactType&amp;gt;w8_mbo&amp;lt;/ImpactType&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactModifier&amp;gt;2&amp;lt;/ImpactModifier&amp;gt;&lt;br /&gt;
                &amp;lt;/ImpactEffect&amp;gt;&lt;br /&gt;
                &amp;lt;Die /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It turned out that &amp;lt;StopIfBreakable /&amp;gt; is actually doing the opposite, hence it should be called &amp;lt;DontStopIfBreakable /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that &amp;lt;DamageEnvironment&amp;gt; is the first tag otherwise the glass won&#039;t break.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=notes on locklights=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
        [...]&lt;br /&gt;
            &amp;lt;Tint&amp;gt;color&amp;lt;/Tint&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
        &amp;lt;Variables&amp;gt;&lt;br /&gt;
            &amp;lt;Color Name=&amp;quot;color&amp;quot;&amp;gt;0 0 0&amp;lt;/Color&amp;gt;&lt;br /&gt;
            &amp;lt;Float Name=&amp;quot;blend&amp;quot;&amp;gt;0&amp;lt;/Float&amp;gt;&lt;br /&gt;
        &amp;lt;/Variables&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters /&amp;gt;&lt;br /&gt;
        &amp;lt;Events&amp;gt;&lt;br /&gt;
            &amp;lt;Update&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;u&amp;gt;&amp;lt;ColorInterpolate&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;color&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;Color0&amp;gt;255 0 0&amp;lt;/Color0&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                    &amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;Color1&amp;gt;0 255 0&amp;lt;/Color1&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                    &amp;lt;Amount&amp;gt;blend&amp;lt;/Amount&amp;gt;&lt;br /&gt;
                &amp;lt;/ColorInterpolate&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;u&amp;gt;&amp;lt;SetVariable&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;0&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;u&amp;gt;&amp;lt;SetVariable&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;1&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
            &amp;lt;/Update&amp;gt;&lt;br /&gt;
            &amp;lt;Start&amp;gt;&lt;br /&gt;
                &amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;DisableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;1&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/DisableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                 &amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;EnableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;2&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/EnableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
            &amp;lt;/Start&amp;gt;&lt;br /&gt;
            &amp;lt;Stop&amp;gt;&lt;br /&gt;
                &amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;DisableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;2&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/DisableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                &amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;EnableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;1&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/EnableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
            &amp;lt;/Stop&amp;gt;&lt;br /&gt;
        &amp;lt;/Events&amp;gt;&lt;br /&gt;
|valign=top|&lt;br /&gt;
Locklights are particle which indicate whether a door is locked or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They are presented in [[OBD:ONLV|ONLV]] (ENVP section) with different names but are all called from &amp;quot;BINA3RAPlocklight.xml&amp;quot; and &amp;quot;BINA3RAPlocklight2.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The locklight becomes created on level start.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Update event has three action: &#039;&#039;&#039;&amp;lt;u&amp;gt;first one has ID 0&amp;lt;/u&amp;gt;&#039;&#039;&#039;, second has &#039;&#039;&#039;&amp;lt;u&amp;gt;&amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;ID 1&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;, and third action has &#039;&#039;&#039;&amp;lt;u&amp;gt;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;ID 2&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Target&amp;gt;&amp;lt;/font&amp;gt;color&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Target&amp;gt;&amp;lt;/font&amp;gt; serves as output and is used by the &amp;lt;tint&amp;gt; tag.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The BINA3RAPlocklight.xml original file doesn&#039;t allow new events because of its buggy behavior.&#039;&#039;&#039; Gumby solved the problem by putting the &amp;quot;SetVariable&amp;quot; code into the start and stop event. During a final test additional code showed accidentally that particles identifies doors as characters. A small vid can be seen [http://www.youtube.com/watch?v=kY8uH5vRt3Q here.]&lt;br /&gt;
&lt;br /&gt;
{{divhide|See used code here &amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni Version=&amp;quot;0.9.52.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Particle Name=&amp;quot;locklight&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Options&amp;gt;&lt;br /&gt;
            &amp;lt;Lifetime&amp;gt;0&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
            &amp;lt;DisableDetailLevel&amp;gt;Never&amp;lt;/DisableDetailLevel&amp;gt;&lt;br /&gt;
            &amp;lt;Decorative&amp;gt;true&amp;lt;/Decorative&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithWalls&amp;gt;false&amp;lt;/CollideWithWalls&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithChars&amp;gt;true&amp;lt;/CollideWithChars&amp;gt;&lt;br /&gt;
            &amp;lt;InitiallyHidden&amp;gt;false&amp;lt;/InitiallyHidden&amp;gt;&lt;br /&gt;
            &amp;lt;DrawAsSky&amp;gt;false&amp;lt;/DrawAsSky&amp;gt;&lt;br /&gt;
            &amp;lt;DontAttractThroughWalls&amp;gt;false&amp;lt;/DontAttractThroughWalls&amp;gt;&lt;br /&gt;
            &amp;lt;ExpireOnCutscene&amp;gt;false&amp;lt;/ExpireOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;DieOnCutscene&amp;gt;false&amp;lt;/DieOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;LockPositionToLink&amp;gt;false&amp;lt;/LockPositionToLink&amp;gt;&lt;br /&gt;
            &amp;lt;CollisionRadius&amp;gt;7&amp;lt;/CollisionRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIDodgeRadius&amp;gt;0&amp;lt;/AIDodgeRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIAlertRadius&amp;gt;0&amp;lt;/AIAlertRadius&amp;gt;&lt;br /&gt;
            &amp;lt;FlyBySoundName /&amp;gt;&lt;br /&gt;
        &amp;lt;/Options&amp;gt;&lt;br /&gt;
        &amp;lt;Properties&amp;gt;&lt;br /&gt;
            &amp;lt;HasVelocity&amp;gt;false&amp;lt;/HasVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;HasOrientation&amp;gt;true&amp;lt;/HasOrientation&amp;gt;&lt;br /&gt;
            &amp;lt;HasPositionOffset&amp;gt;false&amp;lt;/HasPositionOffset&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttachmentMatrix&amp;gt;true&amp;lt;/HasAttachmentMatrix&amp;gt;&lt;br /&gt;
            &amp;lt;HasUnknown&amp;gt;false&amp;lt;/HasUnknown&amp;gt;&lt;br /&gt;
            &amp;lt;HasDecalState&amp;gt;false&amp;lt;/HasDecalState&amp;gt;&lt;br /&gt;
            &amp;lt;HasTextureStartTick&amp;gt;false&amp;lt;/HasTextureStartTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasTextureTick&amp;gt;false&amp;lt;/HasTextureTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasDamageOwner&amp;gt;false&amp;lt;/HasDamageOwner&amp;gt;&lt;br /&gt;
            &amp;lt;HasContrailData&amp;gt;false&amp;lt;/HasContrailData&amp;gt;&lt;br /&gt;
            &amp;lt;HasLensFlareState&amp;gt;true&amp;lt;/HasLensFlareState&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttractor&amp;gt;false&amp;lt;/HasAttractor&amp;gt;&lt;br /&gt;
            &amp;lt;HasCollisionCache&amp;gt;true&amp;lt;/HasCollisionCache&amp;gt;&lt;br /&gt;
        &amp;lt;/Properties&amp;gt;&lt;br /&gt;
        &amp;lt;Appearance&amp;gt;&lt;br /&gt;
            &amp;lt;DisplayType&amp;gt;RotatedSprite&amp;lt;/DisplayType&amp;gt;&lt;br /&gt;
            &amp;lt;TexGeom&amp;gt;lensflare11&amp;lt;/TexGeom&amp;gt;&lt;br /&gt;
            &amp;lt;Invisible&amp;gt;false&amp;lt;/Invisible&amp;gt;&lt;br /&gt;
            &amp;lt;IsContrailEmitter&amp;gt;false&amp;lt;/IsContrailEmitter&amp;gt;&lt;br /&gt;
            &amp;lt;ScaleToVelocity&amp;gt;false&amp;lt;/ScaleToVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;Scale&amp;gt;2&amp;lt;/Scale&amp;gt;&lt;br /&gt;
            &amp;lt;UseSeparateYScale&amp;gt;false&amp;lt;/UseSeparateYScale&amp;gt;&lt;br /&gt;
            &amp;lt;YScale&amp;gt;1&amp;lt;/YScale&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation&amp;gt;0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;Alpha&amp;gt;&lt;br /&gt;
                &amp;lt;Random Min=&amp;quot;0.8&amp;quot; Max=&amp;quot;0.9&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;/Alpha&amp;gt;&lt;br /&gt;
            &amp;lt;XOffset&amp;gt;0&amp;lt;/XOffset&amp;gt;&lt;br /&gt;
            &amp;lt;XShorten&amp;gt;0&amp;lt;/XShorten&amp;gt;&lt;br /&gt;
            &amp;lt;UseSpecialTint&amp;gt;false&amp;lt;/UseSpecialTint&amp;gt;&lt;br /&gt;
            &amp;lt;Tint&amp;gt;color&amp;lt;/Tint&amp;gt;&lt;br /&gt;
            &amp;lt;FadeOutOnEdge&amp;gt;false&amp;lt;/FadeOutOnEdge&amp;gt;&lt;br /&gt;
            &amp;lt;OneSidedEdgeFade&amp;gt;false&amp;lt;/OneSidedEdgeFade&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMin&amp;gt;0.2&amp;lt;/EdgeFadeMin&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMax&amp;gt;1&amp;lt;/EdgeFadeMax&amp;gt;&lt;br /&gt;
            &amp;lt;MaxContrailDistance&amp;gt;0&amp;lt;/MaxContrailDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlare&amp;gt;true&amp;lt;/LensFlare&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareDistance&amp;gt;2&amp;lt;/LensFlareDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeInFrames&amp;gt;5&amp;lt;/LensFlareFadeInFrames&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeOutFrames&amp;gt;10&amp;lt;/LensFlareFadeOutFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFullBrightness&amp;gt;false&amp;lt;/DecalFullBrightness&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDecals&amp;gt;100&amp;lt;/MaxDecals&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFadeFrames&amp;gt;60&amp;lt;/DecalFadeFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalWrapAngle&amp;gt;60&amp;lt;/DecalWrapAngle&amp;gt;&lt;br /&gt;
        &amp;lt;/Appearance&amp;gt;&lt;br /&gt;
        &amp;lt;Attractor&amp;gt;&lt;br /&gt;
            &amp;lt;Target&amp;gt;None&amp;lt;/Target&amp;gt;&lt;br /&gt;
            &amp;lt;Selector&amp;gt;Distance&amp;lt;/Selector&amp;gt;&lt;br /&gt;
            &amp;lt;Class /&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDistance&amp;gt;150&amp;lt;/MaxDistance&amp;gt;&lt;br /&gt;
            &amp;lt;MaxAngle&amp;gt;30&amp;lt;/MaxAngle&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMin&amp;gt;3&amp;lt;/AngleSelectMin&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMax&amp;gt;20&amp;lt;/AngleSelectMax&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectWeight&amp;gt;3&amp;lt;/AngleSelectWeight&amp;gt;&lt;br /&gt;
        &amp;lt;/Attractor&amp;gt;&lt;br /&gt;
        &amp;lt;Variables&amp;gt;&lt;br /&gt;
            &amp;lt;Color Name=&amp;quot;color&amp;quot;&amp;gt;0 0 0&amp;lt;/Color&amp;gt;&lt;br /&gt;
            &amp;lt;Float Name=&amp;quot;blend&amp;quot;&amp;gt;0&amp;lt;/Float&amp;gt;&lt;br /&gt;
        &amp;lt;/Variables&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters&amp;gt;&lt;br /&gt;
            &amp;lt;Emitter&amp;gt;&lt;br /&gt;
                &amp;lt;Class&amp;gt;h2h_ninflash_e01&amp;lt;/Class&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;IncreaseParticleCount TurnOffAtTreshold&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;TurnOffTreshold&amp;gt;1&amp;lt;/TurnOffTreshold&amp;gt;&lt;br /&gt;
                &amp;lt;Probability&amp;gt;1&amp;lt;/Probability&amp;gt;&lt;br /&gt;
                &amp;lt;Copies&amp;gt;1&amp;lt;/Copies&amp;gt;&lt;br /&gt;
                &amp;lt;LinkTo /&amp;gt;&lt;br /&gt;
                &amp;lt;Rate&amp;gt;&lt;br /&gt;
                    &amp;lt;Instant /&amp;gt;&lt;br /&gt;
                &amp;lt;/Rate&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;&lt;br /&gt;
                    &amp;lt;Point /&amp;gt;&lt;br /&gt;
                &amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Direction&amp;gt;&lt;br /&gt;
                    &amp;lt;Straight /&amp;gt;&lt;br /&gt;
                &amp;lt;/Direction&amp;gt;&lt;br /&gt;
                &amp;lt;Speed&amp;gt;&lt;br /&gt;
                    &amp;lt;Uniform&amp;gt;&lt;br /&gt;
                        &amp;lt;Speed&amp;gt;0&amp;lt;/Speed&amp;gt;&lt;br /&gt;
                    &amp;lt;/Uniform&amp;gt;&lt;br /&gt;
                &amp;lt;/Speed&amp;gt;&lt;br /&gt;
                &amp;lt;Orientation&amp;gt;LocalPosY&amp;lt;/Orientation&amp;gt;&lt;br /&gt;
                &amp;lt;OrientationUp&amp;gt;LocalPosZ&amp;lt;/OrientationUp&amp;gt;&lt;br /&gt;
            &amp;lt;/Emitter&amp;gt;&lt;br /&gt;
        &amp;lt;/Emitters&amp;gt;&lt;br /&gt;
        &amp;lt;Events&amp;gt;&lt;br /&gt;
            &amp;lt;Update&amp;gt;&lt;br /&gt;
                &amp;lt;ColorInterpolate&amp;gt;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;color&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Color0&amp;gt;255 0 0&amp;lt;/Color0&amp;gt;&lt;br /&gt;
                    &amp;lt;Color1&amp;gt;0 255 0&amp;lt;/Color1&amp;gt;&lt;br /&gt;
                    &amp;lt;Amount&amp;gt;blend&amp;lt;/Amount&amp;gt;&lt;br /&gt;
                &amp;lt;/ColorInterpolate&amp;gt;&lt;br /&gt;
            &amp;lt;/Update&amp;gt;&lt;br /&gt;
            &amp;lt;Start&amp;gt;&lt;br /&gt;
                &amp;lt;SetVariable&amp;gt;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;1&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&lt;br /&gt;
            &amp;lt;/Start&amp;gt;&lt;br /&gt;
            &amp;lt;Stop&amp;gt;&lt;br /&gt;
                &amp;lt;SetVariable&amp;gt;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;0&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&lt;br /&gt;
            &amp;lt;/Stop&amp;gt;&lt;br /&gt;
            &amp;lt;HitCharacter&amp;gt;&lt;br /&gt;
                &amp;lt;EmitActivate&amp;gt;&lt;br /&gt;
                    &amp;lt;Emitter&amp;gt;0&amp;lt;/Emitter&amp;gt;&lt;br /&gt;
                &amp;lt;/EmitActivate&amp;gt;&lt;br /&gt;
            &amp;lt;/HitCharacter&amp;gt;&lt;br /&gt;
        &amp;lt;/Events&amp;gt;&lt;br /&gt;
    &amp;lt;/Particle&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
 &amp;amp;nbsp; &amp;lt;!-- from one bug to another, great... --&amp;gt;&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=how to set up decorative decals=&lt;br /&gt;
What are decals?&lt;br /&gt;
: Decals are images glued onto a wall or ground.&lt;br /&gt;
: They are used for additional level design and to show weapon damage on surroundings.&lt;br /&gt;
: The following steps will show you how to set up a piece of design (poster/warning sign/whatever) into a level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 1 - extending the particle collection==&lt;br /&gt;
* [[XML:BINA/OBJC/PART|Particle collections]] are level specific.&lt;br /&gt;
* &amp;lt;Position&amp;gt; .. Choose a position for your decal.&lt;br /&gt;
: &#039;&#039;&#039;The maximal tolerance distance counts 10 units.&#039;&#039;&#039; Let&#039;s say the ground height (y) is 45 and the particle is spawned at 55 then this is the maximal tolerance; 56 wouldn&#039;t work.&lt;br /&gt;
: &#039;&#039;&#039;&amp;quot;chr_debug_characters = 1&amp;quot;&#039;&#039;&#039; helps you. But note that the y value is not the head&#039;s or pelvis&#039; height, it is at the deepest point of your feet.&lt;br /&gt;
* &amp;lt;Rotation&amp;gt; .. &#039;&#039;&#039;see [[#decal_facing|&amp;quot;decal facing&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;Class&amp;gt; .. this is your [[#step_2_-_creating_BINA3RAP_file|particle file]]&lt;br /&gt;
* &amp;lt;Tag&amp;gt; .. optional; &#039;&#039;&#039;used when you want to activate or deactivate decals or other particle via BSL&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;Flags&amp;gt; .. &amp;quot;not initially created&amp;quot; flag (2) or nothing (1; 4; 8)&lt;br /&gt;
* &amp;lt;XScale&amp;gt; .. Scaling of decal&#039;s X dimension on &#039;&#039;individual level&#039;&#039; (you can use the 3RAP&#039;s own scaling (&amp;lt;Scale&amp;gt;) for accumulative scaling (this would affect all decals in the collection))&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Object Id=&amp;quot;11291&amp;quot; Type=&amp;quot;PART&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;0&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;-988 65 1521&amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Rotation&amp;gt;270 180 0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;/Header&amp;gt;&lt;br /&gt;
            &amp;lt;OSD&amp;gt;&lt;br /&gt;
                [[#step_2_-_creating_BINA3RAP_file|&amp;lt;Class&amp;gt;]]&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;decal_particle_name&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;lt;/Class&amp;gt;&lt;br /&gt;
                [[#step_4_-_show_or_hide_decals_via_BSL|&amp;lt;Tag&amp;gt;]]&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;decal_BSL_name&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;lt;/Tag&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;8&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Decal&amp;gt;&lt;br /&gt;
                    &amp;lt;XScale&amp;gt;20&amp;lt;/XScale&amp;gt;&lt;br /&gt;
                    &amp;lt;YScale&amp;gt;20&amp;lt;/YScale&amp;gt;&lt;br /&gt;
                &amp;lt;/Decal&amp;gt;&lt;br /&gt;
            &amp;lt;/OSD&amp;gt;&lt;br /&gt;
        &amp;lt;/Object&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===decal facing===&lt;br /&gt;
: Place yourself towards the point where you want to have the decal, face it. It&#039;s important that your body stands accurate, not your head. Then type &amp;quot;chr_debug_characters = 1&amp;quot; into the developer console and you will know the facing. Write it down, compare with the right table and chose your xyz rotation.&lt;br /&gt;
: &#039;&#039;&#039;PS:&#039;&#039;&#039; In matter of spawning/displaing, the exact rotation is not needed. Oni has a 66 degree tolerance.&lt;br /&gt;
: &#039;&#039;&#039;PPS:&#039;&#039;&#039; &amp;lt;DecalWrapAngle&amp;gt; (in BINA3RAP file) is usually set to 60. For hard edges you might want to increase the value.&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellspacing=20 cellpadding=0 align=right&lt;br /&gt;
|&lt;br /&gt;
[http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/DecalWrapAngle.jpg http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/DecalWrapAngle_TN.jpg]&lt;br /&gt;
&lt;br /&gt;
Test for a &amp;quot;hard edge&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;wall decals&#039;&#039;&#039;&lt;br /&gt;
                      x     y     z&lt;br /&gt;
 facing   0 degree: 270 |   0 |   0&lt;br /&gt;
 facing  90 degree: 270 |  90 |   0&lt;br /&gt;
 facing 180 degree: 270 | 180 |   0&lt;br /&gt;
 facing 270 degree: 270 | 270 |   0&lt;br /&gt;
&#039;&#039;&#039;ground decals&#039;&#039;&#039;&lt;br /&gt;
                      x     y     z&lt;br /&gt;
 facing   0 degree:   0 |   0 |   0&lt;br /&gt;
 facing  90 degree:   0 |  90 |   0&lt;br /&gt;
 facing 180 degree:   0 | 180 |   0&lt;br /&gt;
 facing 270 degree:   0 | 270 |   0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 2 - creating BINA3RAP file==&lt;br /&gt;
* file name in this example: &amp;quot;&#039;&#039;&#039;BINA3RAP&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;decal_particle_name&amp;lt;/font&amp;gt;.xml&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
* &amp;lt;Version&amp;gt; .. &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;has to be the same version as your own onisplit, change it if necessary&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;CollideWithChars&amp;gt; .. is ignored by decals&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;HasDecalState&amp;gt;true .. is needed&lt;br /&gt;
* &amp;lt;DisplayType&amp;gt;Decal .. is needed&lt;br /&gt;
* &amp;lt;TexGeom&amp;gt; .. links to [[#step_3_-_creating_TXMP_file|TXMP file]]&lt;br /&gt;
* &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Alpha&amp;gt; .. alpha level is ignored when TXMP has adaptiveAlpha flag&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Tint&amp;gt; .. is ignored by decals&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;Version=&amp;quot;0.9.41.0&amp;quot;&amp;lt;/font&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;Particle Name=&amp;quot;&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;decal_particle_name&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Options&amp;gt;&lt;br /&gt;
            &amp;lt;Lifetime&amp;gt;0&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
            &amp;lt;DisableDetailLevel&amp;gt;Never&amp;lt;/DisableDetailLevel&amp;gt;&lt;br /&gt;
            &amp;lt;Decorative&amp;gt;true&amp;lt;/Decorative&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithWalls&amp;gt;false&amp;lt;/CollideWithWalls&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithChars&amp;gt;false&amp;lt;/CollideWithChars&amp;gt;&lt;br /&gt;
            &amp;lt;InitiallyHidden&amp;gt;false&amp;lt;/InitiallyHidden&amp;gt;&lt;br /&gt;
            &amp;lt;DrawAsSky&amp;gt;false&amp;lt;/DrawAsSky&amp;gt;&lt;br /&gt;
            &amp;lt;DontAttractThroughWalls&amp;gt;false&amp;lt;/DontAttractThroughWalls&amp;gt;&lt;br /&gt;
            &amp;lt;ExpireOnCutscene&amp;gt;false&amp;lt;/ExpireOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;DieOnCutscene&amp;gt;false&amp;lt;/DieOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;LockPositionToLink&amp;gt;false&amp;lt;/LockPositionToLink&amp;gt;&lt;br /&gt;
            &amp;lt;CollisionRadius&amp;gt;0&amp;lt;/CollisionRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIDodgeRadius&amp;gt;0&amp;lt;/AIDodgeRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIAlertRadius&amp;gt;0&amp;lt;/AIAlertRadius&amp;gt;&lt;br /&gt;
            &amp;lt;FlyBySoundName /&amp;gt;&lt;br /&gt;
        &amp;lt;/Options&amp;gt;&lt;br /&gt;
        &amp;lt;Properties&amp;gt;&lt;br /&gt;
            &amp;lt;HasVelocity&amp;gt;false&amp;lt;/HasVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;HasOrientation&amp;gt;false&amp;lt;/HasOrientation&amp;gt;&lt;br /&gt;
            &amp;lt;HasPositionOffset&amp;gt;false&amp;lt;/HasPositionOffset&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttachmentMatrix&amp;gt;false&amp;lt;/HasAttachmentMatrix&amp;gt;&lt;br /&gt;
            &amp;lt;HasUnknown&amp;gt;false&amp;lt;/HasUnknown&amp;gt;&lt;br /&gt;
            &#039;&#039;&#039;&amp;lt;HasDecalState&amp;gt;true&amp;lt;/HasDecalState&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
            &amp;lt;HasTextureStartTick&amp;gt;false&amp;lt;/HasTextureStartTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasTextureTick&amp;gt;false&amp;lt;/HasTextureTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasDamageOwner&amp;gt;false&amp;lt;/HasDamageOwner&amp;gt;&lt;br /&gt;
            &amp;lt;HasContrailData&amp;gt;false&amp;lt;/HasContrailData&amp;gt;&lt;br /&gt;
            &amp;lt;HasLensFlareState&amp;gt;false&amp;lt;/HasLensFlareState&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttractor&amp;gt;false&amp;lt;/HasAttractor&amp;gt;&lt;br /&gt;
            &amp;lt;HasCollisionCache&amp;gt;false&amp;lt;/HasCollisionCache&amp;gt;&lt;br /&gt;
        &amp;lt;/Properties&amp;gt;&lt;br /&gt;
        &amp;lt;Appearance&amp;gt;&lt;br /&gt;
            &#039;&#039;&#039;&amp;lt;DisplayType&amp;gt;Decal&amp;lt;/DisplayType&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
            [[#step_3_-_creating_TXMP_file|&amp;lt;TexGeom&amp;gt;]]&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#AA00AA&amp;quot;&amp;gt;animated_texture&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;lt;/TexGeom&amp;gt;&lt;br /&gt;
            &amp;lt;Invisible&amp;gt;false&amp;lt;/Invisible&amp;gt;&lt;br /&gt;
            &amp;lt;IsContrailEmitter&amp;gt;false&amp;lt;/IsContrailEmitter&amp;gt;&lt;br /&gt;
            &amp;lt;ScaleToVelocity&amp;gt;false&amp;lt;/ScaleToVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;Scale&amp;gt;1&amp;lt;/Scale&amp;gt;&lt;br /&gt;
            &amp;lt;UseSeparateYScale&amp;gt;false&amp;lt;/UseSeparateYScale&amp;gt;&lt;br /&gt;
            &amp;lt;YScale&amp;gt;1&amp;lt;/YScale&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation&amp;gt;0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;Alpha&amp;gt;1&amp;lt;/Alpha&amp;gt;&lt;br /&gt;
            &amp;lt;XOffset&amp;gt;0&amp;lt;/XOffset&amp;gt;&lt;br /&gt;
            &amp;lt;XShorten&amp;gt;0&amp;lt;/XShorten&amp;gt;&lt;br /&gt;
            &amp;lt;UseSpecialTint&amp;gt;false&amp;lt;/UseSpecialTint&amp;gt;&lt;br /&gt;
            &amp;lt;Tint&amp;gt;255 255 255&amp;lt;/Tint&amp;gt;&lt;br /&gt;
            &amp;lt;FadeOutOnEdge&amp;gt;false&amp;lt;/FadeOutOnEdge&amp;gt;&lt;br /&gt;
            &amp;lt;OneSidedEdgeFade&amp;gt;false&amp;lt;/OneSidedEdgeFade&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMin&amp;gt;0&amp;lt;/EdgeFadeMin&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMax&amp;gt;0.5&amp;lt;/EdgeFadeMax&amp;gt;&lt;br /&gt;
            &amp;lt;MaxContrailDistance&amp;gt;0&amp;lt;/MaxContrailDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlare&amp;gt;false&amp;lt;/LensFlare&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareDistance&amp;gt;0&amp;lt;/LensFlareDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeInFrames&amp;gt;0&amp;lt;/LensFlareFadeInFrames&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeOutFrames&amp;gt;0&amp;lt;/LensFlareFadeOutFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFullBrightness&amp;gt;false&amp;lt;/DecalFullBrightness&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDecals&amp;gt;100&amp;lt;/MaxDecals&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFadeFrames&amp;gt;60&amp;lt;/DecalFadeFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalWrapAngle&amp;gt;60&amp;lt;/DecalWrapAngle&amp;gt;&lt;br /&gt;
        &amp;lt;/Appearance&amp;gt;&lt;br /&gt;
        &amp;lt;Attractor&amp;gt;&lt;br /&gt;
            &amp;lt;Target&amp;gt;None&amp;lt;/Target&amp;gt;&lt;br /&gt;
            &amp;lt;Selector&amp;gt;Distance&amp;lt;/Selector&amp;gt;&lt;br /&gt;
            &amp;lt;Class /&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDistance&amp;gt;150&amp;lt;/MaxDistance&amp;gt;&lt;br /&gt;
            &amp;lt;MaxAngle&amp;gt;30&amp;lt;/MaxAngle&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMin&amp;gt;3&amp;lt;/AngleSelectMin&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMax&amp;gt;20&amp;lt;/AngleSelectMax&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectWeight&amp;gt;3&amp;lt;/AngleSelectWeight&amp;gt;&lt;br /&gt;
        &amp;lt;/Attractor&amp;gt;&lt;br /&gt;
        &amp;lt;Variables /&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters /&amp;gt;&lt;br /&gt;
        &amp;lt;Events /&amp;gt;&lt;br /&gt;
    &amp;lt;/Particle&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 3 - creating TXMP file==&lt;br /&gt;
* file name in this example: &amp;quot;&#039;&#039;&#039;TXMP&amp;lt;font color=&amp;quot;#AA00AA&amp;quot;&amp;gt;animated_texture&amp;lt;/font&amp;gt;.xml&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
: Of cause the particle file doesn&#039;t has to contain an animated image. It&#039;s just meant to remind you that this possibility exist.&lt;br /&gt;
* &amp;lt;Version&amp;gt; .. &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;has to be the same version as your own onisplit, change it if necessary&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=0 cellspacing=20 cellpadding=0 align=right&lt;br /&gt;
|&lt;br /&gt;
[http://www.youtube.com/watch?v=ifHv5S-npqw&amp;amp;feature=channel_page http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/animated_decal.jpg]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;Version=&amp;quot;0.9.41.0&amp;quot;&amp;lt;/font&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;&lt;br /&gt;
        &amp;lt;Flags&amp;gt;HasMipMaps  AnimUseLocalTime  AnimBackToBack  AdditiveBlend&amp;lt;/Flags&amp;gt;&lt;br /&gt;
        &amp;lt;Format&amp;gt;RGB555&amp;lt;/Format&amp;gt;&lt;br /&gt;
        &amp;lt;Speed&amp;gt;4&amp;lt;/Speed&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_000.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_001.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_002.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_003.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_004.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_005.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_006.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_007.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_008.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_009.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_010.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
    &amp;lt;/Texture&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 4 - show or hide decals via BSL==&lt;br /&gt;
fork respawnable_decals in your main function&lt;br /&gt;
 var bool first = 1;&lt;br /&gt;
 &lt;br /&gt;
 func respawnable_decals&lt;br /&gt;
 {&lt;br /&gt;
 	chr_debug_characters = 1&lt;br /&gt;
 	dmsg &amp;quot;( punch to hide a few decals now )&amp;quot;&lt;br /&gt;
 	### decal is already presented so we begin with stop function&lt;br /&gt;
 	fork kill_decal&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func kill_decal&lt;br /&gt;
 {&lt;br /&gt;
 	sleep 30&lt;br /&gt;
 	chr_wait_animtype 0 punch&lt;br /&gt;
 	dmsg &amp;quot;( punch detected; [r.deactivating decals now] )&amp;quot;&lt;br /&gt;
 	&#039;&#039;&#039;### has effect at all particle with chosen tag&#039;&#039;&#039;&lt;br /&gt;
 	### in the vid, obviously the two decals use the same tag&lt;br /&gt;
 	particle &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;decal_BSL_name&amp;lt;/font&amp;gt;&#039;&#039;&#039; kill&lt;br /&gt;
 	if (first eq 1)&lt;br /&gt;
 	{&lt;br /&gt;
 		dmsg &amp;quot;( kick to show a few decals now )&amp;quot;&lt;br /&gt;
 		first = 0;&lt;br /&gt;
 		sleep 60&lt;br /&gt;
 	}&lt;br /&gt;
 	fork create_decal&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func create_decal&lt;br /&gt;
 {&lt;br /&gt;
 	sleep 30&lt;br /&gt;
 	chr_wait_animtype 0 kick&lt;br /&gt;
 	dmsg &amp;quot;( kick detected; [b.activating decals now] )&amp;quot;&lt;br /&gt;
 	particle &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;decal_BSL_name&amp;lt;/font&amp;gt;&#039;&#039;&#039; create&lt;br /&gt;
 	fork kill_decal&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=how to set up decorative character items=&lt;br /&gt;
Based on geyser&#039;s [http://geyser.oni2.net/edition/levels/colony/sillyworld.zip &amp;quot;silly world&amp;quot;] experiment.&lt;br /&gt;
&lt;br /&gt;
Marks, bags, goggles, decorative LSI, flash lights and other equipment could individualize characters by using a (BSL-triggered) particle workaround.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 1: ONCC modifications==&lt;br /&gt;
First we need to create a connection to the character. For this, we use the Daodan particle system to some degree. &lt;br /&gt;
 &amp;lt;HasDaodanPowers&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/HasDaodanPowers&amp;gt;&lt;br /&gt;
Now it&#039;s enabled for this character. Next we register our item (hold by particle) in the ONCP section.&lt;br /&gt;
 &amp;lt;ONCPParticle&amp;gt;&lt;br /&gt;
   &amp;lt;Name&amp;gt;&#039;&#039;&#039;super&#039;&#039;&#039;_shades&amp;lt;/Name&amp;gt;&lt;br /&gt;
   &amp;lt;Type&amp;gt;silly_shades&amp;lt;/Type&amp;gt;&lt;br /&gt;
   [[OBD:TRIA#Bones|&amp;lt;BodyPart&amp;gt;]]10&amp;lt;/BodyPart&amp;gt;&lt;br /&gt;
 &amp;lt;/ONCPParticle&amp;gt;&lt;br /&gt;
&amp;lt;Name&amp;gt; As long as &#039;&#039;&#039;super&#039;&#039;&#039; stands at beginning, the further naming is unimportant.&amp;lt;br&amp;gt;&amp;lt;Type&amp;gt; This is a link to the particle file.&amp;lt;br&amp;gt;&amp;lt;BodyPart&amp;gt; This is the body part where the particle is attached to. Position fine tuning can be done in M3GM&#039;s PNTA section, &amp;lt;Positions&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 2: creating the item files==&lt;br /&gt;
* BINA3RAPsilly_glasses.xml&lt;br /&gt;
: Needed modifications:&lt;br /&gt;
 &amp;lt;Lifetime&amp;gt;0&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;HasAttachmentMatrix&amp;gt;true&amp;lt;/HasAttachmentMatrix&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;DisplayType&amp;gt;Geometry&amp;lt;/DisplayType&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;TexGeom&amp;gt;&#039;&#039;&#039;silly_shades&#039;&#039;&#039;&amp;lt;/TexGeom&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Events&amp;gt;&lt;br /&gt;
  &amp;lt;Start&amp;gt;&lt;br /&gt;
   &amp;lt;Show /&amp;gt;&lt;br /&gt;
  &amp;lt;/Start&amp;gt;&lt;br /&gt;
  &amp;lt;Stop&amp;gt;&lt;br /&gt;
   &amp;lt;Hide /&amp;gt;&lt;br /&gt;
  &amp;lt;/Stop&amp;gt;&lt;br /&gt;
 &amp;lt;/Events&amp;gt;&lt;br /&gt;
* M3GM&#039;&#039;&#039;silly_shades&#039;&#039;&#039;.xml&lt;br /&gt;
 &amp;lt;Texture&amp;gt;TXMP&#039;&#039;&#039;silly_shades_tex&#039;&#039;&#039;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
* TXMP&#039;&#039;&#039;silly_shades_tex&#039;&#039;&#039;.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 3: preparing the BSL stuff==&lt;br /&gt;
* BINACJBOCharacter.xml&lt;br /&gt;
&amp;lt;Spawn&amp;gt;silly_setup&amp;lt;/Spawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* shpadoinkle.bsl&lt;br /&gt;
 #character spawn function&lt;br /&gt;
 func silly_setup(string name) {&lt;br /&gt;
 	chr_lock_active(name)&lt;br /&gt;
 	chr_super(name, 1)&lt;br /&gt;
 	sleep 2&lt;br /&gt;
 	chr_super(name, 0)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellspacing=20 cellpadding=0 align=right&lt;br /&gt;
|&lt;br /&gt;
[http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/silly_shades.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/silly_shades_TN.png]&amp;lt;br&amp;gt;Karen: &amp;quot;Ready for Matrix. HAR-HAR&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
: silly_setup will be triggered every time a character is spawned with this link in BINACJBOCharacter.xml&lt;br /&gt;
: Only AI would need chr_lock_active.&lt;br /&gt;
: chr_super becomes disabled again to prevent other Daodan effects (in case our character would had a chenille or other visuals). We don&#039;t have to worry about the item, its live time was set to 0 (infinity). (chr_super 0 only hides the particle, it doesn&#039;t kill it.)&lt;br /&gt;
: &lt;br /&gt;
&lt;br /&gt;
 func main {&lt;br /&gt;
 	# [...]&lt;br /&gt;
 	p3_callevent silly_glasses &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
 	# [...]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2&#039;&#039;&#039; corresponds to &amp;lt;Start&amp;gt; tag and &#039;&#039;&#039;3&#039;&#039;&#039; corresponds to &amp;lt;Stop&amp;gt; tag in BINA3RAPsilly_shades.xml&lt;br /&gt;
This can &#039;&#039;switch on and off&#039;&#039; the item. Other effects could be triggered by the free remaining numbers. A collection of events and their numbers can be seen [[XML:BINA/OBJC/PART|HERE]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==extra demo==&lt;br /&gt;
&#039;&#039;For all Gundam Seed fans out there: Phase Shift shades.&#039;&#039; ^_^&lt;br /&gt;
Nah, the texture of such object cannot become replaced by another. But by using three different shades, we can create this illusion. There are blue shades. A &#039;&#039;pair&#039;&#039; that uses an animated texture. And a red pair. The animated pair is only temporary used. [http://www.youtube.com/watch?v=XbOb0i5StDk Here&#039;s a vid.]&lt;br /&gt;
&lt;br /&gt;
 func spawn_karen {&lt;br /&gt;
 	chr_super karen 1&lt;br /&gt;
 	### all three shades particle created&lt;br /&gt;
 	sleep 2&lt;br /&gt;
 	### now but we need to hide them&lt;br /&gt;
 	chr_super karen 0&lt;br /&gt;
 	### show only blue shades for the start&lt;br /&gt;
 	p3_callevent shades_blue 2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func phase_shift_shades {&lt;br /&gt;
 	p3_callevent shades_blue 3&lt;br /&gt;
 	p3_callevent shades_blue_red 2&lt;br /&gt;
 	sleep 20&lt;br /&gt;
 	p3_callevent shades_blue_red 3&lt;br /&gt;
 	p3_callevent shades_red 2&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:ONCC&amp;diff=22738</id>
		<title>XML:ONCC</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:ONCC&amp;diff=22738"/>
		<updated>2013-06-20T21:43:00Z</updated>

		<summary type="html">&lt;p&gt;Loser: Filling in boss shield info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_File_Header | type=ONCC | prev=OBAN | next=ONCV | name=Oni Character Class }}&lt;br /&gt;
&lt;br /&gt;
==general information==&lt;br /&gt;
* The xml code on this page is compatible with onisplit &#039;&#039;&#039;v0.9.61.0&#039;&#039;&#039;&lt;br /&gt;
* ONCP, ONIA, OBPI and OBPM are part of &#039;&#039;&#039;ONCC*.oni&#039;&#039;&#039; files.&lt;br /&gt;
* ONCC files can be found in AE/AEInstaller/vanilla/level0_Final.dat&lt;br /&gt;
* Things that still need deeper explanation:&lt;br /&gt;
: &#039;&#039;&#039;&amp;lt;DamageFactors&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;CoverConstants&amp;gt;&lt;br /&gt;
: &amp;lt;AutoFreezeConstants&amp;gt;&lt;br /&gt;
: &amp;lt;LODConstants&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;AirConstants&amp;gt;==&lt;br /&gt;
;Units:times are in frames&lt;br /&gt;
:heights are in world units&lt;br /&gt;
:velocities are in world units per frames&lt;br /&gt;
:accelerations are in world units per frames squared&lt;br /&gt;
;Downwards velocity: could correspond to the steady push experienced when neither jumping nor falling&lt;br /&gt;
:would be roughly equivalent to the starting velocity of a fall&lt;br /&gt;
:although the value .55 seems right, the &amp;quot;sinking&amp;quot; seems to be hardcoded now&lt;br /&gt;
;Gravity timer:Seems to be hardcoded now (could be the time until gravity switches on)&lt;br /&gt;
;Jetpack timer:You can press JUMP multiple times during the time window [http://mods.oni2.net/node/83 (quite fun!)]&lt;br /&gt;
;Falling height: let FH1 be &amp;lt;MaxNoDamageFallingHeight&amp;gt;&lt;br /&gt;
:let FH2 be &amp;lt;MaxDamageFallingHeight&amp;gt;&lt;br /&gt;
:let BH be the base health of the character&lt;br /&gt;
:let FH be the actual falling height&lt;br /&gt;
:then, if FH &amp;gt; FH2, the character is killed&lt;br /&gt;
:if FH &amp;lt; FH1, the character takes no damage&lt;br /&gt;
:if FH1 &amp;lt; FH &amp;lt; FH2, the character takes damage (FH - FH1) / (FH2 - FH1) * BH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;FallGravity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| downwards velocity? (always 0.55)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JumpGravity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| downward gravity acceleration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JumpStartVelocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| starting velocity for a simple (tap) JUMP&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxVelocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| limit velocity for jumping and gravity flight&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JetpackAcceleration&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| upward acceleration (jetpack) if you hold JUMP &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FramesFallGravity&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| gravity timer? (always 7)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JetpackTimer&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| time during which you can use the jetpack&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxNoDamageFallingHeight&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| maximal falling height without damage&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxDamageFallingHeight&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| maximal falling height with damage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;ShadowConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Texture&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| TXMPfile&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni (file suffix not used)&amp;lt;/font&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxHeight&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| height where the shadow fades out completely &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FadeHeight&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| height where the diameter of the shadow decreases and the shadow fades out half&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SizeMax&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| height where the diameter of the shadow decreases &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SizeFade&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| height where the diameter of the shadow decreases &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SizeMin&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| height where the diameter of the shadow decreases &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AlphaMax&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| transparency of the shadow for the first part of a jump &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AlphaFade&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| transparency of the shadow for the second part of a jump &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;JumpConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JumpDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (25)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JumpHeight&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| always the same (22)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JumpDistanceSquares&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| always the same (6)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;CoverConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RayIncrement&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (40)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RayMax&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (300)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RayAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (0.017453 = PI/180) &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RayAngleMax&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (1.57 = PI/2) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;AutoFreezeConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DistanceXZ&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (5)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DistanceY&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;InventoryConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HypoRegenerationRate&amp;gt;&lt;br /&gt;
|valign=top| int16&lt;br /&gt;
| (inverse) hypo regeneration rate in frames per health point; overhealth regeneration rate is not affected by this&lt;br /&gt;
&lt;br /&gt;
if rate = 60; if a hypo restores 50HP then we get 60/1 * 50 = 3000 frames (50s)&amp;lt;br&amp;gt; &lt;br /&gt;
if rate = 6; if a hypo restores 50HP then we get 6/1 * 50 = 300 frames (5s)&amp;lt;br&amp;gt;&lt;br /&gt;
if rate = 0 it becomes rate = 1 at runtime, so regeneration will still take 50 frames (&amp;lt; 1s)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;LODConstants&amp;gt;==&lt;br /&gt;
Distances from camera to render certain [[XML:TRBS|LODs]] (level of detail).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (193600); this is 440 squared&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (48400); this is 220 squared&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (12100); this is 110 squared &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (0)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;HurtSoundConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BasePercentage&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_base_percentage; always the same (35)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxPercentage&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_max_percentage; always the same (90)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PercentageThreshold&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_percentage_threshold; always the same (15)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Timer&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_timer; always the same (120)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinTimer&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_min_timer; always the same (35)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxLight&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| always the same (1)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxMedium&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| always the same (2)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeathChance&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| always the same (100)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;VolumeTreshold&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_volume_threshold; always the same (10)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MediumTreshold&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_medium_threshold; always the same (12)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HeavyTreshold&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_heavy_threshold; always the same (22)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinVolume&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| minimal sound volume&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;LightSound&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (only the file name)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MediumSound&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (only the file name)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HeavySound&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (only the file name)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeathSound&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (only the file name)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;AIConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: NoStartleAnim&lt;br /&gt;
: EnableMeleeFireDodge&lt;br /&gt;
: ShootDodge (requires EnableMeleeFireDodge; AI tries to face shooter and shoot back while dodging)&lt;br /&gt;
: RunAwayDodge (requires EnableMeleeFireDodge; overrides ShootDodge; firingspread/projectile dodge enabled for weapons; AI isn&#039;t shooting, it just tends to run away, not facing shooter)&lt;br /&gt;
: NotUsed&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotationSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| AI rotation speed factor. Reference rotation speed is about 1 turn (360°) per second. The setting is only effective if the AI is in control, so it&#039;s a bit like the AI&#039;s mouse sensitivity :)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DazedMinFrames&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| minimal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DazedMaxFrames&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| maximal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DodgeReactFrames&amp;gt;&lt;br /&gt;
| uint32&lt;br /&gt;
| number of frames after which AI realizes that it is in the firing spread and it starts dodging&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DodgeTimeScale&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| minimal firingspread dodge amount; IMO similar to maneouvre variable, it tells AI how long it should perform dodging/hiding in response to some time spent inside firing spread (so setting this very high means that once enemy starts dodging/hiding, he will perform it even after firing spread disappears)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DodgeWeightScale&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| maximal firingspread dodge amount; IMO similar to maneouvre variable&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Targeting&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| see [[#&amp;lt;Targeting&amp;gt;|HERE]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;WeaponSkills&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| see [[#&amp;lt;WeaponSkills&amp;gt;|HERE]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeadMakeSureDelay&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same (90), AI waits at the corpse for some time?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;InvestigateBodyDelay&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same (240), unused ?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;LostContactDelay&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same (180)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeadTauntChance&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| chance of AI doing a taunt when player or AI&#039;s of another team dies&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;GoForGunChance&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| determines possibility that AI will run to some weapon and take it; can be checked in devmode by *debug_gun_behavior* command &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RunPickupChance&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| this value is possibility of AI running weapon pickup (acrobatics, slides) instead of normal &amp;quot;stop-&amp;gt;pickup&amp;quot;; this is calculated AFTER engine decides that AI should run for weapon &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CombatId&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| [[XML:BINA/OBJC/CMBT|combat profile ID]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MeleeId&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| [[XML:BINA/OBJC/MELE|melee profile ID]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SoundConstants&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| see [[XML:SNDD#step_1:_preparing_the_TRAM|HERE]]&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HostileThreatDefiniteTimer&amp;gt;&lt;br /&gt;
|valign=top| int32&lt;br /&gt;
| how long will AI know exactly where its enemy is even if it can&#039;t see him with central vision-field; AI attacks him; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HostileThreatStrongTimer&amp;gt;&lt;br /&gt;
|valign=top| int32&lt;br /&gt;
| how long will AI remain in strong feeling that there is the enemy, but will not attack him but investigate; can be checked by *ai2_report_verbose* command&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HostileThreatWeakTimer&amp;gt;&lt;br /&gt;
|valign=top| int32&lt;br /&gt;
| how long will AI remain in weak feeling of an enemy, just looking around aimlessly (Glance pursue mode); can be checked by *ai2_report_verbose* command&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FriendlyThreatDefiniteTimer&amp;gt;&lt;br /&gt;
|valign=top| int32&lt;br /&gt;
| how long will AI know exactly where its ally (Syndicate saw Syndicate for example) is even if it can&#039;t see him with central vision-field; AI simply knows there is someone else nearby; maybe has further possibilities; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FriendlyThreatStrongTimer&amp;gt;&lt;br /&gt;
|valign=top| int32&lt;br /&gt;
| how long will AI remain in strong feeling that there is someone else, but will not try to find him or look at him; can be checked by *ai2_report_verbose* command &lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FriendlyThreatWeakTimer&amp;gt;&lt;br /&gt;
|valign=top| int32 &lt;br /&gt;
| how long will AI remain in weak feeling of ally, doing its usual job; can be checked by *ai2_report_verbose* command &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;EarshotRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| earshot radius; defines size of the sound-collision sphere around AI&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;Targeting&amp;gt;===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StartleMissAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same for TURR and ONCC (0.5)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StartleMissDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same for TURR and ONCC (25)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictAmount&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same for TURR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictPositionDelayFrames&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same for TURR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictDelayFrames&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same for TURR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictVelocityFrames&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same for TURR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictTrendFrames&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same for TURR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;WeaponSkills&amp;gt;===&lt;br /&gt;
{|class=&amp;quot;wikitable width=100%|&lt;br /&gt;
|valign=top|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot; &lt;br /&gt;
!Weapon       ||recoil||bestangle||error||decay||inaccuracy||delays&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w0_sec&#039;&#039;&#039; || 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w1_tap&#039;&#039;&#039; || 0.0  || 0.000000|| 0.40|| 0.4 || 0.0      || 30 - 45&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w2_sap&#039;&#039;&#039; || 0.3  || 0.013962|| 0.13|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w3_phr&#039;&#039;&#039; || 0.3  || 0.010472|| 0.05|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w4_psm&#039;&#039;&#039; || 0.3  || 0.015707|| 0.03|| 0.2 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w5_sbg&#039;&#039;&#039; || 0.3  || 0.001745|| 0.00|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w6_vdg&#039;&#039;&#039; || 0.3  || 0.001745|| 0.13|| 0.9 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w7_scc&#039;&#039;&#039; || 0.3  || 0.001745|| 0.05|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w8_mbo&#039;&#039;&#039; || 0.3  || 0.005236|| 0.01|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w9_scr&#039;&#039;&#039; || 0.3  || 0.010472|| 0.04|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w10_sni&#039;&#039;&#039;|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w11_ba1&#039;&#039;&#039;|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w12_ba2&#039;&#039;&#039;|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|valign=top|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RecoilCompensation&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| min = 0.0, max = 1.0&lt;br /&gt;
|-      &lt;br /&gt;
| &amp;lt;BestAimingAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| best aiming angle in radians &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ShotGroupError&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| shot grouping error&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ShotGroupDecay&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| shot grouping decay&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ShootingInaccuracyMultiplier&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| shooting inaccuracy multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinShotDelay&amp;gt;&lt;br /&gt;
| uint16&lt;br /&gt;
| minimum delay between shots in frames&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxShotDelay&amp;gt;&lt;br /&gt;
| uint16&lt;br /&gt;
| maximum delay between shots in frames&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;AI Shooting Skills&lt;br /&gt;
These can be reviewed with e.g. &#039;&#039;&#039;ai2_skill_select konoko_generic w1_tap&#039;&#039;&#039; and then either &#039;&#039;&#039;ai2_skill_show&#039;&#039;&#039; (prints to console) or &#039;&#039;&#039;ai2_skill_save&#039;&#039;&#039; (prints to file)&lt;br /&gt;
The first weapon (weapon 0) is not in the game anymore, whatever that was. Muro&#039;s thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade&#039;s ball, except &#039;&#039;&#039;w10_sni&#039;&#039;&#039; is still available) (&#039;&#039;&#039;w12_ba2&#039;&#039;&#039; and &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; are a bit mixed up : the beam is made of &#039;&#039;&#039;w12_ba2&#039;&#039;&#039; particles, and the grenade is a &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; particle...)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;VisionConstants&amp;gt;===&lt;br /&gt;
;Vision Field&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;range&amp;quot; and &amp;quot;max&amp;quot; values are logically angles but the cosine of the angle is stored instead for performace reasons. We have the following angles (in degrees):&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
: &amp;lt;VerticalRange&amp;gt;0.766044438&amp;lt;/VerticalRange&amp;gt;&lt;br /&gt;
: &amp;lt;CentralRange&amp;gt;0.819152057&amp;lt;/CentralRange&amp;gt;&lt;br /&gt;
: &amp;lt;CentralMax&amp;gt;0.57357645 &amp;lt;/CentralMax&amp;gt; &lt;br /&gt;
: &amp;lt;PeripheralRange&amp;gt;0.1736482&amp;lt;/PeripheralRange&amp;gt;&lt;br /&gt;
: &amp;lt;PeripheralMax&amp;gt;-0.42261824&amp;lt;/PeripheralMax&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
: = 40°&lt;br /&gt;
: = 35°&lt;br /&gt;
: = 55°&lt;br /&gt;
: = 80°&lt;br /&gt;
: = 115°&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Within &amp;quot;range&amp;quot; the &amp;quot;distance&amp;quot; field is used to compute visibility (character is visible if the distance between AI and character is &amp;lt; &amp;quot;distance&amp;quot; field). Between &amp;quot;range&amp;quot; and &amp;quot;max&amp;quot; the visibility distance decreases gradually towards 0. The vision field can be made visible with the script command *ai2_showvision =1* but it should be noted that the rendering might not be accurate. In particular the peripheral vision field it&#039;s missing the central segment. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CentralDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| central vision distance&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PeripheralDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| peripheral vision distance&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;VerticalRange&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| vertical vision range&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CentralRange&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| central vision range&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CentralMax&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| central vision max&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PeripheralRange&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| peripheral vision range&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PeripheralMax&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| peripheral vision max&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ONCV, death particle, TRBS, TRMA, TRAC, TRAS, health, daodan, etc.==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Variant&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;ONCV&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;, defines variants and upgrades &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Particles&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| [[#ONCP: Oni Character Particle (Array)|ONCP]] instance number (#N)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Impacts&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| [[#ONIA: Oni Character Impact Array|ONIA]] instance number (#N)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;ImpactModifierName&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| used to choose correct effect from [[XML:BINA/ONIE#list_of_tags.2C_types.2C_and_flags|ONIE]]; impact name -&amp;gt; material name -&amp;gt; modifier (&amp;lt;Component&amp;gt; must be probably &amp;quot;Impact&amp;quot;)&lt;br /&gt;
: Any&lt;br /&gt;
: Light&lt;br /&gt;
: Medium&lt;br /&gt;
: Heavy&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Impacts&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| holds a lot &amp;lt;ONCCImpact&amp;gt;&amp;lt;Name&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;Impt&amp;lt;/font&amp;gt;name&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&amp;lt;/Name&amp;gt;&amp;lt;/ONCCImpact&amp;gt; for character-environment collision; see [[XML:BINA/ONIE#Visual_guides:_weapon.2C_melee.2C_environment|... ONIE in relation to characters]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeathParticle&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| in vanilla Oni only Mad Bomber uses it&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BodySet&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TRBS&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BodyTextures&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TRMA&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BodyMaterials&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| [[#CBPM: Character Body Part Materials|CBPM]] instance number (#N)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BodyImpacts&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| [[#CBPI: Character Body Part Impacts|CBPI]] instance number (#N)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FightModeTimer&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| fight mode timer in 1/60 seconds&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;IdleAnimation1Timer&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| first idle animation timer in 1/60 seconds&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;IdleAnimation2Timer&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| second idle animation timer in 1/60 seconds&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Health&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| basic health of the character model; extra health information for every unique character are stored in the [[XML:BINA/OBJC/CHAR#XML|BINACJBOCharacter.oni]] file&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FeetBones&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: LeftFoot&lt;br /&gt;
: RightFoot&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinBodySizeFactor&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| minimal body size factor&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxBodySizeFactor&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| maximal body size factor &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageFactors&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| see [[#&amp;lt;DamageFactors&amp;gt;|HERE]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BossShieldProtectAmount&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Boss Shield Protect Amount, when boss shield is used by this ONCC (for example via chr_boss_shield(ai_name)), all incoming DamageTypes are multiplied by the value (1 - BossShieldProtectAmount)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Animations&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TRAC&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AimingScreens&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TRAS&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AIRateOfFire&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| AI Rate of Fire&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeathDeleteDelay&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| time between death and deletion, in frames (about 3 seconds for mad bomber)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;WeaponHand&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 (right)&lt;br /&gt;
: 1 (left)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HasDaodanPowers&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| when set to 1 indicates that character has daodan powers (character does more damage in overpower mode)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasSupershield&amp;gt;&lt;br /&gt;
|valign=top| int8&lt;br /&gt;
| when set to 1 indicates that character has supershield&lt;br /&gt;
* is visible as red shield when overpowered&lt;br /&gt;
* needs daodan flag above and 51% overpower to be enabled; chenille cheat works too&lt;br /&gt;
* now it prevents damage from weapon fire and melee (exception are throws)&lt;br /&gt;
* received (melee) hits cause not blue block flashes but orange flares (see [http://paradox.oni2.net/Bilder/blocked_attacks_on_51percent_overpower_plus_daodan-flag_plus_supershield.png HERE])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CantTouchThis&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| when set to 1, generically turns on canttouchthis cheat for this ONCC (used by ONCCMutantMuro)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;DamageFactors&amp;gt;===&lt;br /&gt;
The following 7 float values correspond to damage types. These are ONCC specific multipliers for DamageTypes. See [[DamageTypes]]&lt;br /&gt;
&lt;br /&gt;
These multipliers affect StunDamage and Knockback parameters of DamageBlast and DamageChar PAR3 actions, which utilize these DamageTypes. Damage parameters is not affected by these multipliers.&lt;br /&gt;
&lt;br /&gt;
These multipliers are applied as follows: actual applied StunDamage or Knocback = (PAR3 StunDamage or Knockback)*(1-ONCCvalue)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;Normal&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;MinorStun&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;MajorStun&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;MinorKnockdown&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;MajorKnockdown&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;Blownup&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;Pickup&amp;quot; DamageType multiplier&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==[[OBD:ONCP|ONCP]]: Oni Character Particle (Array)==&lt;br /&gt;
* ONCP is used for giving particle to animations. Search for &amp;quot;Particles&amp;quot; tag in TRAM file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML structure&lt;br /&gt;
    &amp;lt;ONCP id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Particles&amp;gt;&lt;br /&gt;
            &amp;lt;ONCPParticle&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;...&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;Type&amp;gt;...&amp;lt;/Type&amp;gt;&lt;br /&gt;
                &amp;lt;BodyPart&amp;gt;...&amp;lt;/BodyPart&amp;gt;&lt;br /&gt;
            &amp;lt;/ONCPParticle&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Particles&amp;gt;&lt;br /&gt;
    &amp;lt;/ONCP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;Name&amp;gt; is anchor for TRAM link; vanilla names:&lt;br /&gt;
:: &#039;&#039;&#039;acid&#039;&#039;&#039; - for death event in bio lab (level 3)&lt;br /&gt;
:: barabwave - for Baraba&#039;s earthquaker&lt;br /&gt;
:: blanka - for one of MutantMuro&#039;s special attacks&lt;br /&gt;
:: &#039;&#039;&#039;contrail&#039;&#039;&#039; - for colored heavy attacks (character specific &amp;lt;Type&amp;gt;)&lt;br /&gt;
:: daodan - Konoko&#039;s daodan blow&lt;br /&gt;
:: daodan2 - Konoko&#039;s daodan blow (last level)&lt;br /&gt;
:: &#039;&#039;&#039;death&#039;&#039;&#039;&lt;br /&gt;
:: &#039;&#039;&#039;dust&#039;&#039;&#039;&lt;br /&gt;
:: fireball - Mukade&#039;s devil star&lt;br /&gt;
:: flash - attack impact flash&lt;br /&gt;
:: &#039;&#039;&#039;glow&#039;&#039;&#039; - colored glow particle for attacks&lt;br /&gt;
:: murowave - for MutantMuro&#039;s &#039;&#039;ass bomb&#039;&#039;&lt;br /&gt;
:: &#039;&#039;&#039;snap&#039;&#039;&#039; - health indicator particle ?&lt;br /&gt;
:: teleport - for Mukade&#039;s teleport animation&lt;br /&gt;
:: &#039;&#039;&#039;thud&#039;&#039;&#039;&lt;br /&gt;
:: thunderbolt - for one of MutantMuro&#039;s special attacks&lt;br /&gt;
:: &#039;&#039;&#039;trail&#039;&#039;&#039; - white color contrail for standard attacks&lt;br /&gt;
:: rocket - for Baraba&#039;s jetpack&lt;br /&gt;
:: super_attractor - for MutantMuro&lt;br /&gt;
:: super_glow - body daodan glow particle&lt;br /&gt;
:: super_l_hand - left hand daodan glow particle (&amp;lt;BodyPart&amp;gt;LeftFist)&lt;br /&gt;
:: super_r_hand - right hand daodan glow particle (&amp;lt;BodyPart&amp;gt;RightFist)&lt;br /&gt;
: &amp;lt;Type&amp;gt; provide particle (file name without prefix BINA3RAP and without suffix .oni)&lt;br /&gt;
: &amp;lt;BodyPart&amp;gt; means bone Id, see [[OBD:TRIA#Bones|TRIA]]; also allowed: &amp;quot;KillImpact&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OBD:ONIA|ONIA]]: Oni Character Impact Array==&lt;br /&gt;
* ONIA is used for special attacks as kind of extension to [[#OBPI:_character_body_part_impacts|CBPI]] in ONIE.&lt;br /&gt;
* &amp;lt;Name&amp;gt; is anchor for TRAM link, &amp;lt;Type&amp;gt; and &amp;lt;Modifier&amp;gt; are links for ONIE. &amp;quot;Light&amp;quot;, &amp;quot;Medium&amp;quot; and &amp;quot;Heavy&amp;quot; are possible modifier.&lt;br /&gt;
* See [[XML:BINA/ONIE|ONIE]] for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML structure&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;ONIA id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Impacts&amp;gt;&lt;br /&gt;
            &amp;lt;ONIAImpact&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;...&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;Type&amp;gt;Bar_Super_Punch&amp;lt;/Type&amp;gt;&lt;br /&gt;
                &amp;lt;Modifier&amp;gt;Heavy&amp;lt;/Modifier&amp;gt;&lt;br /&gt;
            &amp;lt;/ONIAImpact&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
    &amp;lt;/ONIA&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[XML:ONCC#CBPM|CBPM]]: Character Body Part Materials==&lt;br /&gt;
* CBPM link to [[XML:Mtrl|Mtrl]] files which are used by [[XML:BINA/ONIE|ONIE]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The link Id is equal to bone list in [[OBD:TRIA#Bones|TRIA]]. For example: eleventh material links to character&#039;s head.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;CBPM id=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;Materials&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlCloth&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlCloth&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlCloth&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlCloth&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
         &amp;lt;/Materials&amp;gt;&lt;br /&gt;
    &amp;lt;/CBPM&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OBD:CBPI|CBPI]]: Character Body Part Impacts==&lt;br /&gt;
* They link to [[XML:Impt|Impt]] files which are used by [[XML:BINA/ONIE|ONIE]].&lt;br /&gt;
* Special attacks have there own Impt files. See [[#ONIA:_Oni_character_impact_array|ONIA]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The link Id is equal to bone list in [[OBD:TRIA#Bones|TRIA]]. For example: eleventh material links to character&#039;s head.&lt;br /&gt;
    &amp;lt;CBPI id=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;HitImpacts&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
        &amp;lt;/HitImpacts&amp;gt;&lt;br /&gt;
        &amp;lt;BlockedImpacts&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
        &amp;lt;/BlockedImpacts&amp;gt;&lt;br /&gt;
        &amp;lt;KilledImpacts&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
        &amp;lt;/KilledImpacts&amp;gt;&lt;br /&gt;
    &amp;lt;/CBPI&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:ONCC&amp;diff=22737</id>
		<title>XML:ONCC</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:ONCC&amp;diff=22737"/>
		<updated>2013-06-20T21:40:42Z</updated>

		<summary type="html">&lt;p&gt;Loser: Filling the info to XML part of the wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_File_Header | type=ONCC | prev=OBAN | next=ONCV | name=Oni Character Class }}&lt;br /&gt;
&lt;br /&gt;
==general information==&lt;br /&gt;
* The xml code on this page is compatible with onisplit &#039;&#039;&#039;v0.9.61.0&#039;&#039;&#039;&lt;br /&gt;
* ONCP, ONIA, OBPI and OBPM are part of &#039;&#039;&#039;ONCC*.oni&#039;&#039;&#039; files.&lt;br /&gt;
* ONCC files can be found in AE/AEInstaller/vanilla/level0_Final.dat&lt;br /&gt;
* Things that still need deeper explanation:&lt;br /&gt;
: &#039;&#039;&#039;&amp;lt;DamageFactors&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;CoverConstants&amp;gt;&lt;br /&gt;
: &amp;lt;AutoFreezeConstants&amp;gt;&lt;br /&gt;
: &amp;lt;LODConstants&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;AirConstants&amp;gt;==&lt;br /&gt;
;Units:times are in frames&lt;br /&gt;
:heights are in world units&lt;br /&gt;
:velocities are in world units per frames&lt;br /&gt;
:accelerations are in world units per frames squared&lt;br /&gt;
;Downwards velocity: could correspond to the steady push experienced when neither jumping nor falling&lt;br /&gt;
:would be roughly equivalent to the starting velocity of a fall&lt;br /&gt;
:although the value .55 seems right, the &amp;quot;sinking&amp;quot; seems to be hardcoded now&lt;br /&gt;
;Gravity timer:Seems to be hardcoded now (could be the time until gravity switches on)&lt;br /&gt;
;Jetpack timer:You can press JUMP multiple times during the time window [http://mods.oni2.net/node/83 (quite fun!)]&lt;br /&gt;
;Falling height: let FH1 be &amp;lt;MaxNoDamageFallingHeight&amp;gt;&lt;br /&gt;
:let FH2 be &amp;lt;MaxDamageFallingHeight&amp;gt;&lt;br /&gt;
:let BH be the base health of the character&lt;br /&gt;
:let FH be the actual falling height&lt;br /&gt;
:then, if FH &amp;gt; FH2, the character is killed&lt;br /&gt;
:if FH &amp;lt; FH1, the character takes no damage&lt;br /&gt;
:if FH1 &amp;lt; FH &amp;lt; FH2, the character takes damage (FH - FH1) / (FH2 - FH1) * BH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;FallGravity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| downwards velocity? (always 0.55)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JumpGravity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| downward gravity acceleration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JumpStartVelocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| starting velocity for a simple (tap) JUMP&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxVelocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| limit velocity for jumping and gravity flight&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JetpackAcceleration&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| upward acceleration (jetpack) if you hold JUMP &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FramesFallGravity&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| gravity timer? (always 7)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JetpackTimer&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| time during which you can use the jetpack&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxNoDamageFallingHeight&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| maximal falling height without damage&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxDamageFallingHeight&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| maximal falling height with damage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;ShadowConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Texture&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| TXMPfile&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni (file suffix not used)&amp;lt;/font&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxHeight&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| height where the shadow fades out completely &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FadeHeight&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| height where the diameter of the shadow decreases and the shadow fades out half&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SizeMax&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| height where the diameter of the shadow decreases &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SizeFade&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| height where the diameter of the shadow decreases &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SizeMin&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| height where the diameter of the shadow decreases &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AlphaMax&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| transparency of the shadow for the first part of a jump &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AlphaFade&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| transparency of the shadow for the second part of a jump &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;JumpConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JumpDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (25)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JumpHeight&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| always the same (22)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;JumpDistanceSquares&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| always the same (6)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;CoverConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RayIncrement&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (40)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RayMax&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (300)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RayAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (0.017453 = PI/180) &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RayAngleMax&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (1.57 = PI/2) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;AutoFreezeConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DistanceXZ&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (5)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DistanceY&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;InventoryConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HypoRegenerationRate&amp;gt;&lt;br /&gt;
|valign=top| int16&lt;br /&gt;
| (inverse) hypo regeneration rate in frames per health point; overhealth regeneration rate is not affected by this&lt;br /&gt;
&lt;br /&gt;
if rate = 60; if a hypo restores 50HP then we get 60/1 * 50 = 3000 frames (50s)&amp;lt;br&amp;gt; &lt;br /&gt;
if rate = 6; if a hypo restores 50HP then we get 6/1 * 50 = 300 frames (5s)&amp;lt;br&amp;gt;&lt;br /&gt;
if rate = 0 it becomes rate = 1 at runtime, so regeneration will still take 50 frames (&amp;lt; 1s)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;LODConstants&amp;gt;==&lt;br /&gt;
Distances from camera to render certain [[XML:TRBS|LODs]] (level of detail).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (193600); this is 440 squared&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (48400); this is 220 squared&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (12100); this is 110 squared &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (0)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same (0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;HurtSoundConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BasePercentage&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_base_percentage; always the same (35)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxPercentage&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_max_percentage; always the same (90)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PercentageThreshold&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_percentage_threshold; always the same (15)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Timer&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_timer; always the same (120)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinTimer&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_min_timer; always the same (35)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxLight&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| always the same (1)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxMedium&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| always the same (2)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeathChance&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| always the same (100)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;VolumeTreshold&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_volume_threshold; always the same (10)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MediumTreshold&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_medium_threshold; always the same (12)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HeavyTreshold&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| hurt_heavy_threshold; always the same (22)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinVolume&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| minimal sound volume&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;LightSound&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (only the file name)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MediumSound&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (only the file name)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HeavySound&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (only the file name)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeathSound&amp;gt;&lt;br /&gt;
| char[32]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (only the file name)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;AIConstants&amp;gt;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: NoStartleAnim&lt;br /&gt;
: EnableMeleeFireDodge&lt;br /&gt;
: ShootDodge (requires EnableMeleeFireDodge; AI tries to face shooter and shoot back while dodging)&lt;br /&gt;
: RunAwayDodge (requires EnableMeleeFireDodge; overrides ShootDodge; firingspread/projectile dodge enabled for weapons; AI isn&#039;t shooting, it just tends to run away, not facing shooter)&lt;br /&gt;
: NotUsed&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotationSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| AI rotation speed factor. Reference rotation speed is about 1 turn (360°) per second. The setting is only effective if the AI is in control, so it&#039;s a bit like the AI&#039;s mouse sensitivity :)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DazedMinFrames&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| minimal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DazedMaxFrames&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| maximal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DodgeReactFrames&amp;gt;&lt;br /&gt;
| uint32&lt;br /&gt;
| number of frames after which AI realizes that it is in the firing spread and it starts dodging&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DodgeTimeScale&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| minimal firingspread dodge amount; IMO similar to maneouvre variable, it tells AI how long it should perform dodging/hiding in response to some time spent inside firing spread (so setting this very high means that once enemy starts dodging/hiding, he will perform it even after firing spread disappears)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DodgeWeightScale&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| maximal firingspread dodge amount; IMO similar to maneouvre variable&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Targeting&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| see [[#&amp;lt;Targeting&amp;gt;|HERE]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;WeaponSkills&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| see [[#&amp;lt;WeaponSkills&amp;gt;|HERE]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeadMakeSureDelay&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same (90), AI waits at the corpse for some time?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;InvestigateBodyDelay&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same (240), unused ?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;LostContactDelay&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same (180)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeadTauntChance&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| chance of AI doing a taunt when player or AI&#039;s of another team dies&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;GoForGunChance&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| determines possibility that AI will run to some weapon and take it; can be checked in devmode by *debug_gun_behavior* command &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RunPickupChance&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| this value is possibility of AI running weapon pickup (acrobatics, slides) instead of normal &amp;quot;stop-&amp;gt;pickup&amp;quot;; this is calculated AFTER engine decides that AI should run for weapon &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CombatId&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| [[XML:BINA/OBJC/CMBT|combat profile ID]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MeleeId&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| [[XML:BINA/OBJC/MELE|melee profile ID]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SoundConstants&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| see [[XML:SNDD#step_1:_preparing_the_TRAM|HERE]]&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HostileThreatDefiniteTimer&amp;gt;&lt;br /&gt;
|valign=top| int32&lt;br /&gt;
| how long will AI know exactly where its enemy is even if it can&#039;t see him with central vision-field; AI attacks him; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HostileThreatStrongTimer&amp;gt;&lt;br /&gt;
|valign=top| int32&lt;br /&gt;
| how long will AI remain in strong feeling that there is the enemy, but will not attack him but investigate; can be checked by *ai2_report_verbose* command&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HostileThreatWeakTimer&amp;gt;&lt;br /&gt;
|valign=top| int32&lt;br /&gt;
| how long will AI remain in weak feeling of an enemy, just looking around aimlessly (Glance pursue mode); can be checked by *ai2_report_verbose* command&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FriendlyThreatDefiniteTimer&amp;gt;&lt;br /&gt;
|valign=top| int32&lt;br /&gt;
| how long will AI know exactly where its ally (Syndicate saw Syndicate for example) is even if it can&#039;t see him with central vision-field; AI simply knows there is someone else nearby; maybe has further possibilities; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FriendlyThreatStrongTimer&amp;gt;&lt;br /&gt;
|valign=top| int32&lt;br /&gt;
| how long will AI remain in strong feeling that there is someone else, but will not try to find him or look at him; can be checked by *ai2_report_verbose* command &lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FriendlyThreatWeakTimer&amp;gt;&lt;br /&gt;
|valign=top| int32 &lt;br /&gt;
| how long will AI remain in weak feeling of ally, doing its usual job; can be checked by *ai2_report_verbose* command &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;EarshotRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| earshot radius; defines size of the sound-collision sphere around AI&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;Targeting&amp;gt;===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StartleMissAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same for TURR and ONCC (0.5)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StartleMissDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same for TURR and ONCC (25)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictAmount&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| always the same for TURR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictPositionDelayFrames&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same for TURR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictDelayFrames&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same for TURR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictVelocityFrames&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same for TURR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictTrendFrames&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| always the same for TURR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;WeaponSkills&amp;gt;===&lt;br /&gt;
{|class=&amp;quot;wikitable width=100%|&lt;br /&gt;
|valign=top|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot; &lt;br /&gt;
!Weapon       ||recoil||bestangle||error||decay||inaccuracy||delays&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w0_sec&#039;&#039;&#039; || 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w1_tap&#039;&#039;&#039; || 0.0  || 0.000000|| 0.40|| 0.4 || 0.0      || 30 - 45&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w2_sap&#039;&#039;&#039; || 0.3  || 0.013962|| 0.13|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w3_phr&#039;&#039;&#039; || 0.3  || 0.010472|| 0.05|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w4_psm&#039;&#039;&#039; || 0.3  || 0.015707|| 0.03|| 0.2 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w5_sbg&#039;&#039;&#039; || 0.3  || 0.001745|| 0.00|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w6_vdg&#039;&#039;&#039; || 0.3  || 0.001745|| 0.13|| 0.9 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w7_scc&#039;&#039;&#039; || 0.3  || 0.001745|| 0.05|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w8_mbo&#039;&#039;&#039; || 0.3  || 0.005236|| 0.01|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w9_scr&#039;&#039;&#039; || 0.3  || 0.010472|| 0.04|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w10_sni&#039;&#039;&#039;|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w11_ba1&#039;&#039;&#039;|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w12_ba2&#039;&#039;&#039;|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|valign=top|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RecoilCompensation&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| min = 0.0, max = 1.0&lt;br /&gt;
|-      &lt;br /&gt;
| &amp;lt;BestAimingAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| best aiming angle in radians &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ShotGroupError&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| shot grouping error&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ShotGroupDecay&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| shot grouping decay&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ShootingInaccuracyMultiplier&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| shooting inaccuracy multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinShotDelay&amp;gt;&lt;br /&gt;
| uint16&lt;br /&gt;
| minimum delay between shots in frames&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxShotDelay&amp;gt;&lt;br /&gt;
| uint16&lt;br /&gt;
| maximum delay between shots in frames&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;AI Shooting Skills&lt;br /&gt;
These can be reviewed with e.g. &#039;&#039;&#039;ai2_skill_select konoko_generic w1_tap&#039;&#039;&#039; and then either &#039;&#039;&#039;ai2_skill_show&#039;&#039;&#039; (prints to console) or &#039;&#039;&#039;ai2_skill_save&#039;&#039;&#039; (prints to file)&lt;br /&gt;
The first weapon (weapon 0) is not in the game anymore, whatever that was. Muro&#039;s thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade&#039;s ball, except &#039;&#039;&#039;w10_sni&#039;&#039;&#039; is still available) (&#039;&#039;&#039;w12_ba2&#039;&#039;&#039; and &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; are a bit mixed up : the beam is made of &#039;&#039;&#039;w12_ba2&#039;&#039;&#039; particles, and the grenade is a &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; particle...)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;VisionConstants&amp;gt;===&lt;br /&gt;
;Vision Field&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;range&amp;quot; and &amp;quot;max&amp;quot; values are logically angles but the cosine of the angle is stored instead for performace reasons. We have the following angles (in degrees):&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
: &amp;lt;VerticalRange&amp;gt;0.766044438&amp;lt;/VerticalRange&amp;gt;&lt;br /&gt;
: &amp;lt;CentralRange&amp;gt;0.819152057&amp;lt;/CentralRange&amp;gt;&lt;br /&gt;
: &amp;lt;CentralMax&amp;gt;0.57357645 &amp;lt;/CentralMax&amp;gt; &lt;br /&gt;
: &amp;lt;PeripheralRange&amp;gt;0.1736482&amp;lt;/PeripheralRange&amp;gt;&lt;br /&gt;
: &amp;lt;PeripheralMax&amp;gt;-0.42261824&amp;lt;/PeripheralMax&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
: = 40°&lt;br /&gt;
: = 35°&lt;br /&gt;
: = 55°&lt;br /&gt;
: = 80°&lt;br /&gt;
: = 115°&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Within &amp;quot;range&amp;quot; the &amp;quot;distance&amp;quot; field is used to compute visibility (character is visible if the distance between AI and character is &amp;lt; &amp;quot;distance&amp;quot; field). Between &amp;quot;range&amp;quot; and &amp;quot;max&amp;quot; the visibility distance decreases gradually towards 0. The vision field can be made visible with the script command *ai2_showvision =1* but it should be noted that the rendering might not be accurate. In particular the peripheral vision field it&#039;s missing the central segment. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CentralDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| central vision distance&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PeripheralDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| peripheral vision distance&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;VerticalRange&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| vertical vision range&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CentralRange&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| central vision range&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CentralMax&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| central vision max&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PeripheralRange&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| peripheral vision range&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PeripheralMax&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| peripheral vision max&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ONCV, death particle, TRBS, TRMA, TRAC, TRAS, health, daodan, etc.==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Variant&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;ONCV&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;, defines variants and upgrades &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Particles&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| [[#ONCP: Oni Character Particle (Array)|ONCP]] instance number (#N)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Impacts&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| [[#ONIA: Oni Character Impact Array|ONIA]] instance number (#N)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;ImpactModifierName&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| used to choose correct effect from [[XML:BINA/ONIE#list_of_tags.2C_types.2C_and_flags|ONIE]]; impact name -&amp;gt; material name -&amp;gt; modifier (&amp;lt;Component&amp;gt; must be probably &amp;quot;Impact&amp;quot;)&lt;br /&gt;
: Any&lt;br /&gt;
: Light&lt;br /&gt;
: Medium&lt;br /&gt;
: Heavy&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Impacts&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| holds a lot &amp;lt;ONCCImpact&amp;gt;&amp;lt;Name&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;Impt&amp;lt;/font&amp;gt;name&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&amp;lt;/Name&amp;gt;&amp;lt;/ONCCImpact&amp;gt; for character-environment collision; see [[XML:BINA/ONIE#Visual_guides:_weapon.2C_melee.2C_environment|... ONIE in relation to characters]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeathParticle&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| in vanilla Oni only Mad Bomber uses it&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BodySet&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TRBS&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BodyTextures&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TRMA&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BodyMaterials&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| [[#CBPM: Character Body Part Materials|CBPM]] instance number (#N)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BodyImpacts&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| [[#CBPI: Character Body Part Impacts|CBPI]] instance number (#N)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FightModeTimer&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| fight mode timer in 1/60 seconds&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;IdleAnimation1Timer&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| first idle animation timer in 1/60 seconds&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;IdleAnimation2Timer&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| second idle animation timer in 1/60 seconds&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Health&amp;gt;&lt;br /&gt;
| int32&lt;br /&gt;
| basic health of the character model; extra health information for every unique character are stored in the [[XML:BINA/OBJC/CHAR#XML|BINACJBOCharacter.oni]] file&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FeetBones&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: LeftFoot&lt;br /&gt;
: RightFoot&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinBodySizeFactor&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| minimal body size factor&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxBodySizeFactor&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| maximal body size factor &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageFactors&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| see [[#&amp;lt;DamageFactors&amp;gt;|HERE]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BossShieldProtectAmount&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Boss Shield Protect Amount&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Animations&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TRAC&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AimingScreens&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TRAS&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AIRateOfFire&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| AI Rate of Fire&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeathDeleteDelay&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| time between death and deletion, in frames (about 3 seconds for mad bomber)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;WeaponHand&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 (right)&lt;br /&gt;
: 1 (left)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HasDaodanPowers&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| when set to 1 indicates that character has daodan powers (character does more damage in overpower mode)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasSupershield&amp;gt;&lt;br /&gt;
|valign=top| int8&lt;br /&gt;
| when set to 1 indicates that character has supershield&lt;br /&gt;
* is visible as red shield when overpowered&lt;br /&gt;
* needs daodan flag above and 51% overpower to be enabled; chenille cheat works too&lt;br /&gt;
* now it prevents damage from weapon fire and melee (exception are throws)&lt;br /&gt;
* received (melee) hits cause not blue block flashes but orange flares (see [http://paradox.oni2.net/Bilder/blocked_attacks_on_51percent_overpower_plus_daodan-flag_plus_supershield.png HERE])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CantTouchThis&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| when set to 1, generically turns on canttouchthis cheat for this ONCC (used by ONCCMutantMuro)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;DamageFactors&amp;gt;===&lt;br /&gt;
The following 7 float values correspond to damage types. These are ONCC specific multipliers for DamageTypes. See [[DamageTypes]]&lt;br /&gt;
&lt;br /&gt;
These multipliers affect StunDamage and Knockback parameters of DamageBlast and DamageChar PAR3 actions, which utilize these DamageTypes. Damage parameters is not affected by these multipliers.&lt;br /&gt;
&lt;br /&gt;
These multipliers are applied as follows: actual applied StunDamage or Knocback = (PAR3 StunDamage or Knockback)*(1-ONCCvalue)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=150px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;Normal&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;MinorStun&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;MajorStun&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;MinorKnockdown&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;MajorKnockdown&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;Blownup&amp;quot; DamageType multiplier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Float&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &amp;quot;Pickup&amp;quot; DamageType multiplier&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==[[OBD:ONCP|ONCP]]: Oni Character Particle (Array)==&lt;br /&gt;
* ONCP is used for giving particle to animations. Search for &amp;quot;Particles&amp;quot; tag in TRAM file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML structure&lt;br /&gt;
    &amp;lt;ONCP id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Particles&amp;gt;&lt;br /&gt;
            &amp;lt;ONCPParticle&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;...&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;Type&amp;gt;...&amp;lt;/Type&amp;gt;&lt;br /&gt;
                &amp;lt;BodyPart&amp;gt;...&amp;lt;/BodyPart&amp;gt;&lt;br /&gt;
            &amp;lt;/ONCPParticle&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Particles&amp;gt;&lt;br /&gt;
    &amp;lt;/ONCP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;Name&amp;gt; is anchor for TRAM link; vanilla names:&lt;br /&gt;
:: &#039;&#039;&#039;acid&#039;&#039;&#039; - for death event in bio lab (level 3)&lt;br /&gt;
:: barabwave - for Baraba&#039;s earthquaker&lt;br /&gt;
:: blanka - for one of MutantMuro&#039;s special attacks&lt;br /&gt;
:: &#039;&#039;&#039;contrail&#039;&#039;&#039; - for colored heavy attacks (character specific &amp;lt;Type&amp;gt;)&lt;br /&gt;
:: daodan - Konoko&#039;s daodan blow&lt;br /&gt;
:: daodan2 - Konoko&#039;s daodan blow (last level)&lt;br /&gt;
:: &#039;&#039;&#039;death&#039;&#039;&#039;&lt;br /&gt;
:: &#039;&#039;&#039;dust&#039;&#039;&#039;&lt;br /&gt;
:: fireball - Mukade&#039;s devil star&lt;br /&gt;
:: flash - attack impact flash&lt;br /&gt;
:: &#039;&#039;&#039;glow&#039;&#039;&#039; - colored glow particle for attacks&lt;br /&gt;
:: murowave - for MutantMuro&#039;s &#039;&#039;ass bomb&#039;&#039;&lt;br /&gt;
:: &#039;&#039;&#039;snap&#039;&#039;&#039; - health indicator particle ?&lt;br /&gt;
:: teleport - for Mukade&#039;s teleport animation&lt;br /&gt;
:: &#039;&#039;&#039;thud&#039;&#039;&#039;&lt;br /&gt;
:: thunderbolt - for one of MutantMuro&#039;s special attacks&lt;br /&gt;
:: &#039;&#039;&#039;trail&#039;&#039;&#039; - white color contrail for standard attacks&lt;br /&gt;
:: rocket - for Baraba&#039;s jetpack&lt;br /&gt;
:: super_attractor - for MutantMuro&lt;br /&gt;
:: super_glow - body daodan glow particle&lt;br /&gt;
:: super_l_hand - left hand daodan glow particle (&amp;lt;BodyPart&amp;gt;LeftFist)&lt;br /&gt;
:: super_r_hand - right hand daodan glow particle (&amp;lt;BodyPart&amp;gt;RightFist)&lt;br /&gt;
: &amp;lt;Type&amp;gt; provide particle (file name without prefix BINA3RAP and without suffix .oni)&lt;br /&gt;
: &amp;lt;BodyPart&amp;gt; means bone Id, see [[OBD:TRIA#Bones|TRIA]]; also allowed: &amp;quot;KillImpact&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OBD:ONIA|ONIA]]: Oni Character Impact Array==&lt;br /&gt;
* ONIA is used for special attacks as kind of extension to [[#OBPI:_character_body_part_impacts|CBPI]] in ONIE.&lt;br /&gt;
* &amp;lt;Name&amp;gt; is anchor for TRAM link, &amp;lt;Type&amp;gt; and &amp;lt;Modifier&amp;gt; are links for ONIE. &amp;quot;Light&amp;quot;, &amp;quot;Medium&amp;quot; and &amp;quot;Heavy&amp;quot; are possible modifier.&lt;br /&gt;
* See [[XML:BINA/ONIE|ONIE]] for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML structure&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;ONIA id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Impacts&amp;gt;&lt;br /&gt;
            &amp;lt;ONIAImpact&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;...&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;Type&amp;gt;Bar_Super_Punch&amp;lt;/Type&amp;gt;&lt;br /&gt;
                &amp;lt;Modifier&amp;gt;Heavy&amp;lt;/Modifier&amp;gt;&lt;br /&gt;
            &amp;lt;/ONIAImpact&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
    &amp;lt;/ONIA&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[XML:ONCC#CBPM|CBPM]]: Character Body Part Materials==&lt;br /&gt;
* CBPM link to [[XML:Mtrl|Mtrl]] files which are used by [[XML:BINA/ONIE|ONIE]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The link Id is equal to bone list in [[OBD:TRIA#Bones|TRIA]]. For example: eleventh material links to character&#039;s head.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;CBPM id=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;Materials&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlCloth&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlCloth&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlCloth&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlCloth&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
             &amp;lt;Link&amp;gt;MtrlArmor&amp;lt;/Link&amp;gt;&lt;br /&gt;
         &amp;lt;/Materials&amp;gt;&lt;br /&gt;
    &amp;lt;/CBPM&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OBD:CBPI|CBPI]]: Character Body Part Impacts==&lt;br /&gt;
* They link to [[XML:Impt|Impt]] files which are used by [[XML:BINA/ONIE|ONIE]].&lt;br /&gt;
* Special attacks have there own Impt files. See [[#ONIA:_Oni_character_impact_array|ONIA]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The link Id is equal to bone list in [[OBD:TRIA#Bones|TRIA]]. For example: eleventh material links to character&#039;s head.&lt;br /&gt;
    &amp;lt;CBPI id=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;HitImpacts&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Hit&amp;lt;/Link&amp;gt;&lt;br /&gt;
        &amp;lt;/HitImpacts&amp;gt;&lt;br /&gt;
        &amp;lt;BlockedImpacts&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Blocked&amp;lt;/Link&amp;gt;&lt;br /&gt;
        &amp;lt;/BlockedImpacts&amp;gt;&lt;br /&gt;
        &amp;lt;KilledImpacts&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptKick_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptHead_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
            &amp;lt;Link&amp;gt;ImptPunch_Killed&amp;lt;/Link&amp;gt;&lt;br /&gt;
        &amp;lt;/KilledImpacts&amp;gt;&lt;br /&gt;
    &amp;lt;/CBPI&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OBD:ONCC&amp;diff=22736</id>
		<title>OBD:ONCC</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OBD:ONCC&amp;diff=22736"/>
		<updated>2013-06-20T21:33:08Z</updated>

		<summary type="html">&lt;p&gt;Loser: Another (hopefully final) edit of the PAR3 multipliers section.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OBD_File_Header | type=ONCC | prev=OFGA | next=ONCP | name=Oni Character Class | family=Character | align=center}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_a.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x000 | res_id   |FF0000| 01 DF 03 00 | 991         | 00991-konoko_generic.ONCC }}&lt;br /&gt;
{{OBDtr| 0x004 | lev_id   |FFFF00| 01 00 00 06 | 0           | level 3 }}&lt;br /&gt;
{{OBDtr| 0x008 | float    |00FF00| CD CC 0C 3F | 0.550000    | downwards velocity? (unknown, always 0.55) }}&lt;br /&gt;
{{OBDtr| 0x00C | float    |00FF00| 8F C2 75 3D | 0.060000    | downward gravity acceleration }}&lt;br /&gt;
{{OBDtr| 0x010 | float    |00FF00| CD CC 8C 3F | 1.100000    | starting velocity for a simple (tap) JUMP }}&lt;br /&gt;
{{OBDtr| 0x014 | float    |00FF00| 00 00 80 C0 | -4.000000   | limit velocity for jumping and gravity flight }}&lt;br /&gt;
{{OBDtr| 0x018 | float    |00FF00| 8F C2 F5 3C | 0.030000    | upward acceleration (jetpack) if you hold JUMP }}&lt;br /&gt;
{{OBDtr| 0x01C | int16    |00FFFF| 07 00       | 7           | gravity timer? (unknown, always 7) }}&lt;br /&gt;
{{OBDtr| 0x01E | int16    |00FFFF| 14 00       | 20          | jetpack timer; time during which you can use the jetpack }}&lt;br /&gt;
{{OBDtr| 0x020 | float    |FF00FF| 00 00 34 42 | 45.000000   | maximal falling height without damage }}&lt;br /&gt;
{{OBDtr| 0x024 | float    |FF00FF| 00 00 07 43 | 135.000000  | maximal falling height with damage }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Units:times are in frames&lt;br /&gt;
:heights are in world units&lt;br /&gt;
:velocities are in world units per frames&lt;br /&gt;
:accelerations are in world units per frames squared&lt;br /&gt;
;Downwards velocity: could correspond to the steady push experienced when neither jumping nor falling&lt;br /&gt;
:would be roughly equivalent to the starting velocity of a fall&lt;br /&gt;
:although the value .55 seems right, the &amp;quot;sinking&amp;quot; seems to be hardcoded now&lt;br /&gt;
;Gravity timer:Seems to be hardcoded now (could be the time until gravity switches on)&lt;br /&gt;
;Jetpack timer:You can press JUMP multiple times during the time window (quite fun!)&lt;br /&gt;
;Falling height: let FH1 be the height at 0x20&lt;br /&gt;
:let FH2 be the height at 0x24&lt;br /&gt;
:let BH be the base health of the character&lt;br /&gt;
:let FH be the actual falling height&lt;br /&gt;
:then, if FH &amp;gt; FH2, the character is killed&lt;br /&gt;
:if FH &amp;lt; FH1, the character takes no damage&lt;br /&gt;
:if FH1 &amp;lt; FH &amp;lt; FH2, the character takes damage (FH - FH1) / (FH2 - FH1) * BH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x028 | link     |FF8000| 01 F8 03 00 | 1016        | link to 01016-shadow1.[[OBD:TXMP|TXMP]] }}&lt;br /&gt;
{{OBDtr| 0x02C | float    |FF8000| 00 00 40 41 | 12.000000   | height where the shadow fades out completely }}&lt;br /&gt;
{{OBDtr| 0x030 | float    |FF8000| 00 00 00 41 | 8.000000    | height where the diameter of the shadow decreases and the shadow fades out half }}&lt;br /&gt;
{{OBDtr| 0x034 | float    |FF8000| 00 00 C0 40 | 6.000000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x038 | float    |FF8000| 00 00 90 40 | 4.500000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x03C | float    |FF8000| 00 00 40 40 | 3.000000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x040 | int16    |FF8000| 30 00       | 48          | transparency of the shadow for the first part of a jump }}&lt;br /&gt;
{{OBDtr| 0x042 | int16    |FF8000| 30 00       | 48          | transparency of the shadow for the second part of a jump }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Jump Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x044 | float    |FF0080| 00 00 C8 41 | 25.000000   | jumpDistance? ; always the same }}&lt;br /&gt;
{{OBDtr| 0x048 | int8     |FFC8C8| 16          |  22         | jumpHeight? ; always the same }}&lt;br /&gt;
{{OBDtr| 0x049 | int8     |FFC8C8| 06          |  6          | jumpDistanceSquares?!?! ; always the same }}&lt;br /&gt;
{{OBDtr| 0x04A | char[2]  |FFC8C8| AD DE       | dead        | pad }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Cover Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x04C | float    |FFFFC8| 00 00 20 42 | 40.000000   | rayIncrement; always the same }}&lt;br /&gt;
{{OBDtr| 0x050 | float    |FFFFC8| 00 00 96 43 | 300.000000  | rayMax; always the same }}&lt;br /&gt;
{{OBDtr| 0x054 | float    |FFFFC8| 35 FA 8E 3C | 0.017453    | rayAngle; always the same (0.017453 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; PI/180) }}&lt;br /&gt;
{{OBDtr| 0x058 | float    |FFFFC8| DB 0F C9 3F | 1.570796    | rayAngleMax; always the same (1.57 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; PI/2) }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Autofreeze Constants (unused)&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDtr| 0x05C | float    |FFFFC8| 00 00 A0 40 | 5.000000    | distance_xz; always the same }}&lt;br /&gt;
{{OBDtr| 0x060 | float    |FFFFC8| 00 00 80 3F | 1.000000    | distance_y; always the same }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Inventory Constants (unused?)&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDtr| 0x064 | int16    |C8FFC8| 06 00       | 6           | (inverse) hypo regeneration rate in frames per hitpoint }}&lt;br /&gt;
{{OBDtr| 0x066 | char[2]  |C8FFC8| AD DE       | dead        | ignored }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;LOD Constants&lt;br /&gt;
Distances from Camera to render certain LODs&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x068 | float    |C8FFFF| 00 10 3D 48 |193600.000000| always the same; this is 440 squared }}&lt;br /&gt;
{{OBDtr| 0x06C | float    |C8FFFF| 00 10 3D 47 | 48400.000000| always the same; this is 220 squared }}&lt;br /&gt;
{{OBDtr| 0x070 | float    |C8FFFF| 00 10 3D 46 | 12100.000000| always the same; this is 110 squared }}&lt;br /&gt;
{{OBDtr| 0x074 | float    |C8FFFF| 00 00 00 00 | 0.000000    | always the same }}&lt;br /&gt;
{{OBDtr| 0x078 | float    |C8FFFF| 00 00 00 00 | 0.000000    | always the same }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Hurt Sound Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x07C | int16    |FFC8FF| 23 00       | 35          | hurt_base_percentage; always the same }}&lt;br /&gt;
{{OBDtr| 0x07E | int16    |FFC8FF| 5A 00       | 90          | hurt_max_percentage; always the same }}&lt;br /&gt;
{{OBDtr| 0x080 | int16    |FFC8FF| 0F 00       | 15          | hurt_percentage_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x082 | int16    |FFC8FF| 78 00       | 120         | hurt_timer; always the same }}&lt;br /&gt;
{{OBDtr| 0x084 | int16    |FFC8FF| 23 00       | 35          | hurt_min_timer; always the same }}&lt;br /&gt;
{{OBDtr| 0x086 | int16    |FFC8FF| 01 00       | 1           | hurt_max_light; always the same }}&lt;br /&gt;
{{OBDtr| 0x088 | int16    |FFC8FF| 02 00       | 2           | hurt_max_medium; always the same }}&lt;br /&gt;
{{OBDtr| 0x08A | int16    |FFC8FF| 64 00       | 100         | hurt_death_chance; always the same }}&lt;br /&gt;
{{OBDtr| 0x08C | int16    |FFC8FF| 0A 00       | 10          | hurt_volume_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x08E | int16    |FFC8FF| 0C 00       | 12          | hurt_medium_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x090 | int16    |FFC8FF| 16 00       | 22          | hurt_heavy_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x092 | int8     |FFC800| 00          | 0           | runtime only: if 1 sound pointers have been set }}&lt;br /&gt;
{{OBDtr| 0x093 | char[1]  |C800C8| DE          | dead        | ignored }}&lt;br /&gt;
{{OBDtr| 0x094 | float    |C87C64| 00 00 00 3F | 0.500000    | sound volume }}&lt;br /&gt;
{{OBDtr2|0x098 | char[32] |B0C3D4| konoko_hurt_light         | hurt light sound (reference to 08121-konoko_hurt_light.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0B8 | char[32] |B0C3D4| konoko_hurt_medium        | hurt medium sound (reference to 08123-konoko_hurt_medium.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0D8 | char[32] |B0C3D4| konoko_hurt_heavy         | hurt heavy sound (reference to 08119-konoko_hurt_heavy.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0F8 | char[32] |B0C3D4| konoko_death              | death sound (reference to 08115-konoko_death.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr| 0x118 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt light sound }}&lt;br /&gt;
{{OBDtr| 0x11C | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt medium sound }}&lt;br /&gt;
{{OBDtr| 0x120 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt heavy sound }}&lt;br /&gt;
{{OBDtr| 0x124 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to death sound }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;AI Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x128 | bitsets  |E7CEA5| 17 00 00 00 | 23          | AI options bitset; see below }}&lt;br /&gt;
{{OBDtr| 0x12C | float    |FFDDDD| 00 00 80 3F | 1.000000    | AI rotation speed factor }}&lt;br /&gt;
{{OBDtr| 0x130 | int16    |64AAAA| 06 00       | 6           | minimal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned }}&lt;br /&gt;
{{OBDtr| 0x132 | int16    |64AAAA| 18 00       | 24          | maximal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned }}&lt;br /&gt;
{{OBDtr| 0x134 | uint32    |EBEBEB| 0F 00 00 00 | 15          | number of frames after which AI realizes that it is in the firing spread and it starts dodging }}&lt;br /&gt;
{{OBDtr| 0x138 | float    |8C8CCC| 00 00 80 3F | 1.000000    | minimal firingspread dodge amount; IMO similar to maneouvre variable, it tells AI how long it should perform dodging/hiding in response to some time spent inside firing spread (so setting this very high means that once enemy starts dodging/hiding, he will perform it even after firing spread disappears) }}&lt;br /&gt;
{{OBDtr| 0x13C | float    |8C8CCC| 00 00 80 3F | 1.000000    | maximal firingspread dodge amount; IMO similar to maneouvre variable }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;AI options bitset&lt;br /&gt;
:allows or disables some parts of the AI behavior&lt;br /&gt;
*NONE - startle anim is enabled, rest is disabled&lt;br /&gt;
*0x01 - startle anim disabled&lt;br /&gt;
*0x02 - firingspread/projectile dodge enabled for melee&lt;br /&gt;
*0x04 - requires 0x02; firingspread/projectile dodge enabled for weapons; AI tries to face shooter and shoot back while dodging&lt;br /&gt;
*0x08 - requires 0x02, overrides 0x04 if both are set; firingspread/projectile dodge enabled for weapons; AI isn&#039;t shooting, it just tends to run away, not facing shooter&lt;br /&gt;
*0x10 - bit not used&lt;br /&gt;
&lt;br /&gt;
;AI rotation speed factor&lt;br /&gt;
:reference rotation speed is about 1 turn (360&amp;amp;#65533;) per second&lt;br /&gt;
:the setting is only effective if the AI is in control&lt;br /&gt;
:so it&#039;s a bit like the AI&#039;s mouse sensitivity :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;AI Targeting Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x140 | float    |8C8CCC| 00 00 00 3F | 0.500000    | unknown; something with AI targeting prediction; always the same for TURR and ONCC  }}&lt;br /&gt;
{{OBDtr| 0x144 | float    |8C8CCC| 00 00 C8 41 | 25.000000   | unknown; something with AI targeting prediction; always the same for TURR and ONCC  }}&lt;br /&gt;
{{OBDtr| 0x148 | float    |8C8CCC| 00 00 80 3F | 1.000000    | unknown; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x14C | int32    |FF00C8| 00 00 00 00 | 0           | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x150 | int32    |FF00C8| 05 00 00 00 | 5           | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x154 | int32    |FF00C8| 0F 00 00 00 | 15          | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x158 | int32    |FF00C8| 3C 00 00 00 | 60          | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtrBK|1=First of 13 shooting skills (grey outline) }}&lt;br /&gt;
{{OBDtr| 0x15C | float    |F0F096| 00 00 00 00 | 0.000000    | recoil compensation amount (0.0 &amp;lt;nowiki&amp;gt;= min, 1.0 =&amp;lt;/nowiki&amp;gt; max) }}&lt;br /&gt;
{{OBDtr| 0x160 | float    |F0F096| 00 00 00 00 | 0.000000    | best aiming angle in radians }}&lt;br /&gt;
{{OBDtr| 0x164 | float    |F0F096| 00 00 00 00 | 0.000000    | shot grouping error }}&lt;br /&gt;
{{OBDtr| 0x168 | float    |F0F096| 00 00 80 3F | 1.000000    | shot grouping decay }}&lt;br /&gt;
{{OBDtr| 0x16C | float    |F0F096| 00 00 80 3F | 1.000000    | shooting inaccuracy multiplier }}&lt;br /&gt;
{{OBDtr| 0x170 | uint16    |00C864| 00 00       | 0           | minimum delay between shots in frames }}&lt;br /&gt;
{{OBDtr| 0x172 | uint16    |00C864| 00 00       | 0           | maximum delay between shots in frames }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;AI Shooting Skills&lt;br /&gt;
These can be reviewed with e.g. &#039;&#039;&#039;ai2_skill_select konoko_generic w1_tap&#039;&#039;&#039; and then either &#039;&#039;&#039;ai2_skill_show&#039;&#039;&#039; (prints to console) or &#039;&#039;&#039;ai2_skill_save&#039;&#039;&#039; (prints to file)&lt;br /&gt;
The first weapon (weapon 0) is not in the game anymore, whatever that was. Muro&#039;s thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade&#039;s ball, except &#039;&#039;&#039;w10_sni&#039;&#039;&#039; is still available) (&#039;&#039;&#039;w12_ba2&#039;&#039;&#039; and &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; are a bit mixed up : the beam is made of &#039;&#039;&#039;w12_ba2&#039;&#039;&#039; particles, and the grenade is a &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; particle...)&lt;br /&gt;
&lt;br /&gt;
{{Table|width=&amp;quot;&amp;quot;|align=&amp;quot;left&amp;quot;}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot; ALIGN=CENTER&lt;br /&gt;
!Weapon       ||Offset     ||recoil||bestangle||error||decay||inaccuracy||delays&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w0_sec&#039;&#039;&#039; ||0x15C/0x173|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w1_tap&#039;&#039;&#039; ||0x174/0x18B|| 0.0  || 0.000000|| 0.40|| 0.4 || 0.0      || 30 - 45&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w2_sap&#039;&#039;&#039; ||0x18C/0x193|| 0.3  || 0.013962|| 0.13|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w3_phr&#039;&#039;&#039; ||0x194/0x20B|| 0.3  || 0.010472|| 0.05|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w4_psm&#039;&#039;&#039; ||0x20C/0x213|| 0.3  || 0.015707|| 0.03|| 0.2 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w5_sbg&#039;&#039;&#039; ||0x214/0x22B|| 0.3  || 0.001745|| 0.00|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w6_vdg&#039;&#039;&#039; ||0x22C/0x233|| 0.3  || 0.001745|| 0.13|| 0.9 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w7_scc&#039;&#039;&#039; ||0x234/0x24B|| 0.3  || 0.001745|| 0.05|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w8_mbo&#039;&#039;&#039; ||0x24C/0x253|| 0.3  || 0.005236|| 0.01|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w9_scr&#039;&#039;&#039; ||0x254/0x26B|| 0.3  || 0.010472|| 0.04|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w10_sni&#039;&#039;&#039;||0x26C/0x273|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w11_ba1&#039;&#039;&#039;||0x274/0x28B|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w12_ba2&#039;&#039;&#039;||0x28B/0x293|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_m.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x294 | int32    |00C8FF| 5A 00 00 00 | 90          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x298 | int32    |00C8FF| F0 00 00 00 | 240         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x29C | int32    |00C8FF| B4 00 00 00 | 180         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x2A0 | int32    |00C8FF| 28 00 00 00 | 40          | taunt chance (40%) }}&lt;br /&gt;
{{OBDtr| 0x2A4 | int32    |00C8FF| 37 00 00 00 | 55          | go for gun chance (55%); determines possibility that AI will run to some weapon and take it; can be checked in devmode by *debug_gun_behavior* command }}&lt;br /&gt;
{{OBDtr| 0x2A8 | int32    |00C8FF| 3C 00 00 00 | 60          | running pickup chance (60%); this value is possibility of AI running weapon pickup (acrobatics, slides) instead of normal &amp;quot;stop-&amp;gt;pickup&amp;quot;;this is calculated AFTER engine decides that AI should run for weapon }}&lt;br /&gt;
{{OBDtr| 0x2AC | int16    |C80040| 00 00       | 0           | combat profile ID; for example *0D* is for Mutant Muro }}&lt;br /&gt;
{{OBDtr| 0x2AE | int16    |C80040| 16 00       | 22          | melee profile ID }}&lt;br /&gt;
{{OBDtr| 0x2B0 | int8     |FFCD96| 64          | 100         | &amp;quot;taunt&amp;quot; sound probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B1 | int8     |FFCD96| 00          | 0           | &amp;quot;alert&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B2 | int8     |FFCD96| 00          | 0           | &amp;quot;startle&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B3 | int8     |FFCD96| 00          | 0           | &amp;quot;checkbody&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B4 | int8     |FFCD96| 00          | 0           | &amp;quot;pursue&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B5 | int8     |FFCD96| 00          | 0           | &amp;quot;cower&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B6 | int8     |FFCD96| 64          | 100         | &amp;quot;superpunch&amp;quot; probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B7 | int8     |FFCD96| 64          | 100         | &amp;quot;superkick&amp;quot; probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B8 | int8     |FFCD96| 00          | 0           | &amp;quot;super3&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B9 | int8     |FFCD96| 00          | 0           | &amp;quot;super4&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2BA | int16    |C8C864| 00 00       | 0           | probably a blank filler (always the same) }}&lt;br /&gt;
{{OBDtr2|0x2BC | char[32] |0096C8| c17_99_28konoko           | &amp;quot;taunt&amp;quot; sound (reference to 08108-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x2DC | char[32] |0096C8| unused                    | &amp;quot;alert&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x2FC | char[32] |0096C8| unused                    | &amp;quot;startle&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x31C | char[32] |0096C8| unused                    | &amp;quot;checkbody&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x33C | char[32] |0096C8| unused                    | &amp;quot;pursue&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x35C | char[32] |0096C8| unused                    | &amp;quot;cower&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x37C | char[32] |0096C8| c18_79_14konoko           | &amp;quot;superpunch&amp;quot; sound (reference to 08110-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x39C | char[32] |0096C8| c18_79_15konoko           | &amp;quot;superkick&amp;quot; sound (reference to 08112-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x3BC | char[32] |0096C8| unused                    | &amp;quot;super3&amp;quot; sound (only the superninja uses this slot) }}&lt;br /&gt;
{{OBDtr2|0x3DC | char[32] |0096C8| unused                    | &amp;quot;super4&amp;quot; sound (never used in Oni) }}&lt;br /&gt;
{{OBDtrBK| the following 7 vision fields are used to detect if a character can be seen by AI; see Vision Field below for explanation }}&lt;br /&gt;
{{OBDtr| 0x3FC | float    |FF80C0| 00 80 ED 43 | 475.000000  | central vision distance }}&lt;br /&gt;
{{OBDtr| 0x400 | float    |FF80C0| 00 00 16 43 | 150.000000  | peripheral vision distance }}&lt;br /&gt;
{{OBDtr| 0x404 | float    |FF80C0| 7D 1B 44 3F | 0.766044    | vertical vision range }}&lt;br /&gt;
{{OBDtr| 0x408 | float    |FF80C0| F3 B3 51 3F | 0.819152    | central vision range }}&lt;br /&gt;
{{OBDtr| 0x40C | float    |FF80C0| E8 D5 12 3F | 0.573576    | central vision max }}&lt;br /&gt;
{{OBDtr| 0x410 | float    |FF80C0| D5 D0 31 3E | 0.173648    | peripheral vision range }}&lt;br /&gt;
{{OBDtr| 0x414 | float    |FF80C0| 6B 61 D8 BE | 0.422618    | peripheral vision max }}&lt;br /&gt;
{{OBDtr| 0x418 | int32    |D0C0AF| B4 00 00 00 | 180         | hostilethreat definite timer; how long will AI know exactly where its enemy is even if it can&#039;t see him with central vision-field; AI attacks him; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware) }}&lt;br /&gt;
{{OBDtr| 0x41C | int32    |D0C0AF| 84 03 00 00 | 900         | hostilethreat strong timer; how long will AI remain in strong feeling that there is the enemy, but will not attack him but investigate; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x420 | int32    |D0C0AF| 10 0E 00 00 | 3600        | hostilethreat weak timer; how long will AI remain in weak feeling of an enemy, just looking around aimlessly (Glance pursue mode); can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x424 | int32    |D0C0AF| 10 0E 00 00 | 3600        | friendlythreat definite timer; how long will AI know exactly where its ally (Syndicate saw Syndicate for example) is even if it can&#039;t see him with central vision-field; AI simply knows there is someone else nearby; maybe has further possibilities; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware) }}&lt;br /&gt;
{{OBDtr| 0x428 | int32    |D0C0AF| 50 46 00 00 | 18000       | friendlythreat strong timer; how long will AI remain in strong feeling that there is someone else, but will not try to find him or look at him; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x42C | int32    |D0C0AF| A0 8C 00 00 | 36000       | friendlythreat weak timer; how long will AI remain in weak feeling of ally, doing its usual job; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x430 | float    |EEDDFF| 00 00 80 3F | 1.000000    | earshot radius; defines size of the sound-collision sphere around AI }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;Vision Field&lt;br /&gt;
The &amp;quot;range&amp;quot; and &amp;quot;max&amp;quot; values are logically angles but the cosine of the angle is stored instead for performace reasons. We have the following angles (in degrees):&lt;br /&gt;
:vertical range - 40&lt;br /&gt;
:horizontal central range - 35&lt;br /&gt;
:horizontal central max - 55&lt;br /&gt;
:horizontal peripheral range - 80&lt;br /&gt;
:horizontal peripheral max - 115&lt;br /&gt;
Within &amp;quot;range&amp;quot; the &amp;quot;distance&amp;quot; field is used to compute visibility (character is visible if the distance between AI and character is &amp;lt; &amp;quot;distance&amp;quot; field). Between &amp;quot;range&amp;quot; and &amp;quot;max&amp;quot; the visibility distance decreases gradually towards 0.&lt;br /&gt;
The vision field can be made visible with the script command *ai2_showvision &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;1* but it should be noted that the rendering might not be accurate. In particular the peripheral vision field it&#039;s missing the central segment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Character Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x434 | link     |C5FF8A| 01 FB 03 00 | 1019        | link to 01019-konoko.[[OBD:ONCV|ONCV]]; defines variants and upgrades }}&lt;br /&gt;
{{OBDtr| 0x438 | link     |C5FF8A| 01 F9 03 00 | 1017        | link to [[OBD:ONCP|01017-.ONCP]]; lists the particles available for this character (trails, flashes, etc) }}&lt;br /&gt;
{{OBDtr| 0x43C | link     |C5FF8A| 01 FA 03 00 | 1018        | link to [[OBD:ONIA|01018-.ONIA]]; lists the special impact sounds (used for special combat moves) }}&lt;br /&gt;
{{OBDtr| 0x440 | int8     |C5FF8A| 00          | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0x441 | int8     |C5FF8A| 00          | unused      | padding }}&lt;br /&gt;
{{OBDtr| 0x442 | int16    |C5FF8A| 00 00       | unused      | runtime only }}&lt;br /&gt;
{{OBDtr2|0x444 | char[16] |C0C0C0| Light                     | modifier; either hardcoded or defunct (only visible in pm_mod_type.WMM_, level 0)&lt;br /&gt;
edit: WMDD says: Effects found for Impact x on Material y with Modifier: pm_mod_types }}&lt;br /&gt;
{{OBDtrBK|1=First of 15 impact elements. }}&lt;br /&gt;
{{OBDtr2|0x454 | char[128] |FF0080| Footstep_Walk             | walk impact (reference to 04124-Footstep_Walk.[[OBD:Impt|Impt]] of level 0); always the same; without the impacts you can&#039;t hear the steps of a character }}&lt;br /&gt;
{{OBDtr| 0x4D4 | int16    |FF0080| FF FF | -1 | set at runtime to the value stored at 0x08 in [[OBD:Impt|Impt]] }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_e.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0xBF2 | int16    |FFFFA6| 00 00       | 0           | unknown; always the same; maybe only a filler }} &lt;br /&gt;
{{OBDtr2|0xBF4 | char[64] |71FFB8| unused                    | special death particle; only the mad bomber use it }} &lt;br /&gt;
{{OBDtr| 0xC34 | link     |0000BF| 00 00 00 00 | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0xC38 | link     |0000BF| 00 00 00 00 | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0xC3C | link     |0000BF| 01 E6 03 00 | 998         | link to [[OBD:TRBS|00998-konoko_body_high.TRBS]] }}&lt;br /&gt;
{{OBDtr| 0xC40 | link     |0000BF| 01 E7 03 00 | 999         | link to [[OBD:TRMA|00999-konoko002_high_texture_generic.TRMA]] }}&lt;br /&gt;
{{OBDtr| 0xC44 | link     |0000BF| 01 E8 03 00 | 1000        | link to [[OBD:CBPM|01000-.CBPM]] }}&lt;br /&gt;
{{OBDtr| 0xC48 | link     |0000BF| 01 EC 03 00 | 1004        | link to [[OBD:CBPI|01004-.CBPI]] }}&lt;br /&gt;
{{OBDtr| 0xC4C | int32    |804040| 2C 01 00 00 | 300         | fight mode timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC50 | int32    |804040| 30 75 00 00 | 30000       | first idle animation timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC54 | int32    |804040| 30 75 00 00 | 30000       | second idle animation timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC58 | int32    |804040| C8 00 00 00 | 200         | basic health of the character model; extra health information for every unique character are stored in the [[OBD:BINA/OBJC/CHAR|Character.BINA]] file}} &lt;br /&gt;
{{OBDtr| 0xC5C | int32    |804040| 48 00 00 00 | 72          | feetBits (these bits mark the characters feet)&lt;br /&gt;
 }} &lt;br /&gt;
{{OBDtr| 0xC60 | float    |FF22FF| 00 00 80 3F | 1.000000    | minimal body size factor }} &lt;br /&gt;
{{OBDtr| 0xC64 | float    |FF22FF| 00 00 80 3F | 1.000000    | maximal body size factor }} &lt;br /&gt;
{{OBDtrBK| The following 7 float values are ONCC specific multipliers for 7 PAR3 DamageTypes. See the [[DamageTypes]] page for DamageTypes description.&amp;lt;BR&amp;gt;&lt;br /&gt;
These multipliers affect only StunDamage and Knockback, not the Damage.&lt;br /&gt;
These multipliers are applied as follows: (StunDamage or Knockback)*(1 - the ONCC value) }}&lt;br /&gt;
{{OBDtr| 0xC68 | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;Normal&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC6C | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;MinorStun&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC70 | float    |FF22FF| 00 00 00 3F | 0.500000    | &amp;quot;MajorStun&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC74 | float    |FF22FF| 00 00 80 3E | 0.250000    | &amp;quot;MinorKnockdown&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC78 | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;MajorKnockdown&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC7C | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;Blownup&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC80 | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;Pickup&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC84 | float    |FF22FF| 00 00 00 3F | 0.500000    | Boss Shield multiplier, employed when the character has a boss shield.&amp;lt;BR&amp;gt;For example via BSL command chr_boss_shield(ai_name).&lt;br /&gt;
Incoming Damage, StunDamage and Knockback from any DamageType are all multiplied by (1-this value). }}&lt;br /&gt;
{{OBDtr| 0xC88 | link     |808080| 01 F6 03 00 | 1014        | link to 01014-konoko_animations.[[OBD:TRAC|TRAC]] }} &lt;br /&gt;
{{OBDtr| 0xC8C | link     |808080| 01 F6 03 00 | 1015        | link to 01015-konoko_screens.[[OBD:TRSC|TRSC]] }} &lt;br /&gt;
{{OBDtr| 0xC90 | int16    |FFAA82| 1E 00       | 30          | AI Rate of Fire (testme) }} &lt;br /&gt;
{{OBDtr| 0xC92 | int16    |FFAA82| 00 00       | 0           | time between death and deletion, in frames (about 3 seconds for mad bomber) }} &lt;br /&gt;
{{OBDtr| 0xC94 | bitset   |00D900| 00          | 0           | TRSC bitset; see below }} &lt;br /&gt;
{{OBDtr| 0xC95 | int8     |00D900| 01          | 1           | when set to 1 indicates that character has daodan powers (character does more damage in overpower mode)}} &lt;br /&gt;
{{OBDtr| 0xC96 | int8     |00D900| 00          | 0           | when set to 1 indicates that character has supershield&lt;br /&gt;
* is visible as red shield when overpowered&lt;br /&gt;
* needs daodan flag above and 51% overpower to be enabled; chenille cheat works too&lt;br /&gt;
* now it prevents damage from weapon fire and melee (exception are throws)&lt;br /&gt;
* received (melee) hits cause not blue block flashes but orange flares (see [http://paradox.oni2.net/Bilder/blocked_attacks_on_51percent_overpower_plus_daodan-flag_plus_supershield.png HERE])&lt;br /&gt;
 }} &lt;br /&gt;
{{OBDtr| 0xC97 | int8     |00D900| 00          | 0           | when set to 1, generically turns on &#039;&#039;&#039;canttouchthis&#039;&#039;&#039; cheat for this ONCC (used by MutantMuro.ONCC }} &lt;br /&gt;
{{OBDtr| 0xC98 | char[8]  |CACAFF| AD DE       | dead        | unused }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|[[File:ONCC_body_size_factor-original.jpg|120px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:ONCC_body_size_factor-spawn_order_change.jpg|120px]]&lt;br /&gt;
|}&lt;br /&gt;
;Body size factor&lt;br /&gt;
:The geometry specified in a character&#039;s [[TRBS]] (Totoro body set) can be multiplied by a scale factor. For example, the &#039;&#039;&#039;minime&#039;&#039;&#039; and &#039;&#039;&#039;behemoth&#039;&#039;&#039; [[cheats]] set that factor to 0.25 or 1.8, and back to 1. The size can be used for specific purposes (mini-Strikers, Mutant Muro, giant Shinatama), or it can be used to add generic variety to Oni&#039;s characters, as a complement to &amp;quot;character variants&amp;quot; ([[ONCV]]).&lt;br /&gt;
:The floats at 0xC60 and 0xC64 define a range in which Oni can pick a random body size factor (if the two values are identical, then the body size factor is effectively fixed instead of random). [[Konoko]], [[Shinatama]] (both regular and zombified), [[Griffin]] (both variants) and [[Muro]] all have a fixed body size of 1. Mini-Strikers have 0.5 and giant Shinatama has 7 (yes, [[seven]]).&lt;br /&gt;
:Everybody else (including [[Barabas]], [[Mukade]] and [[Kerr]]) has a random body size within 5% of 1 (i.e., the floats at 0xC60 and 0xC64 are 0.95 and 1.05). Mutant Muro is a bit odd because his &amp;quot;minimum&amp;quot; body size 1.75 and the &amp;quot;maximum&amp;quot; is 1.74 (the difference is barely noticeable anyway). In the [[Anniversary Edition]], some characters have altered factors (e.g., [[Shinatama Too]]).&lt;br /&gt;
:The random value is different every time the [[ONCC]] is looked up (e.g., when a character is spawned or shapeshifted) and is not reproducible. Here is a simple script for {{C|6}} a.k.a. [[IGMD/tctf]] (remove all [[BSL]] files and leave only the one below):&lt;br /&gt;
 func main {&lt;br /&gt;
   ai2_allpassive 1&lt;br /&gt;
   ai2_spawn a_v3&lt;br /&gt;
   ai2_spawn Lv_40&lt;br /&gt;
   ai2_spawn lobby_victim05&lt;br /&gt;
   chr_location 1 -1255 -1.5 50&lt;br /&gt;
   chr_location 2 -1255 -1.5 60&lt;br /&gt;
   chr_location 3 -1255 -1.5 70&lt;br /&gt;
   chr_location 4 -1255 -1.5 80&lt;br /&gt;
   ai2_lookatme&lt;br /&gt;
 }&lt;br /&gt;
:This script lines up four &amp;quot;usual suspects&amp;quot; against a wall in the parking lot of the [[TCTF]] HQ. Load the level repeatedly and note how their heights vary. &lt;br /&gt;
&lt;br /&gt;
;TRSC bitset&lt;br /&gt;
:determines whether character is left-hander or right-hander (weapon is attached to left or right fist bone) Must be consistent with [[TRSC]] or glitches appear. Possibilities are:&lt;br /&gt;
:NONE - Character is right-hander with both pistols and rifles&lt;br /&gt;
:0x01 - Character is left-hander with both pistols and rifles&lt;br /&gt;
:0x02 - Character is left-hander with pistols but &amp;quot;right-hander&amp;quot; with rifles (however, animations for rifles are treated as left-handed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{OBD_File_Footer | type=ONCC | prev=OFGA | next=ONCP | name=Oni Character Class | family=Character}}&lt;br /&gt;
&lt;br /&gt;
{{OBD}}&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Particle_damage_types&amp;diff=22735</id>
		<title>Particle damage types</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Particle_damage_types&amp;diff=22735"/>
		<updated>2013-06-20T21:16:58Z</updated>

		<summary type="html">&lt;p&gt;Loser: Some spacing and missing articles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Introduction====&lt;br /&gt;
DamageType (&amp;quot;damage type&amp;quot; in .exe) is a member of a preset collection of seven interaction modifiers for [[OBD:BINA/PAR3/Actions|PAR3 actions]] actions &amp;quot;DamageChar&amp;quot; (&amp;quot;Damage Char&amp;quot; in .exe) and &amp;quot;DamageBlast&amp;quot; (&amp;quot;Blast Damage&amp;quot; in .exe).&lt;br /&gt;
&lt;br /&gt;
These modifiers affect the way target character reacts when interacting with [[OBD:BINA/PAR3|PAR3]] particle, which utilizes DamageBlast or DamageChar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ONCC multipliers====&lt;br /&gt;
In the [[OBD:ONCC|ONCC]] profile, each DamageType is assigned its own multiplier (float value).&lt;br /&gt;
* These multipliers have allowed range 0.0 ~ 1.0&lt;br /&gt;
* These multipliers cannot be set negative.&lt;br /&gt;
* These multipliers cap at 1.0&lt;br /&gt;
* These multipliers affect only &amp;quot;StunDamage&amp;quot; and &amp;quot;Knockback&amp;quot; parameters of DamageBlast and DamageChar. &amp;quot;Damage&amp;quot; parameter is left intact.&lt;br /&gt;
When the PAR3 with DamageBlast or DamageChar interacts with the character, initial values of StunDamage and Knockback are multiplied by:&lt;br /&gt;
:multiplier = (1 - &amp;quot;respective DamageType ONCC multiplier&amp;quot;)&lt;br /&gt;
This means leaving the multiplier at 0.0 equals not using the multiplier at all.&amp;lt;BR&amp;gt;&lt;br /&gt;
These multipliers can be used to differentiate reactions of characters (for example, heavy characters can suffer from less knockback than lighter ones).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Knockback====&lt;br /&gt;
The Knockback parameter basically sets a distance for which character relocates.&amp;lt;BR&amp;gt;&lt;br /&gt;
When the knockback is set 100, character repositions so far that the distance between original and new location is almost 100 game world units.&amp;lt;BR&amp;gt;&lt;br /&gt;
The accuracy of the distance calculation is 0.1&amp;lt;BR&amp;gt;&lt;br /&gt;
If no multipliers are in effect (ONCC DamageType, Boss shield, DamageBlast falloff etc.), then the actual travelled distance from the moment when being hit till the moment the travelled distance is closer to Knockback value than 0.1 complies with the closed-form expression:&lt;br /&gt;
:distance = Knockback_value*(1-0.93^frame_count)&lt;br /&gt;
&amp;lt;font size=1&amp;gt;&lt;br /&gt;
Example: if the Knockback value in PAR3 is 100 and no multipliers are in effect, then:&lt;br /&gt;
*0th frame (the moment when being hit) -&amp;gt; distance from original location is 0 units&lt;br /&gt;
*1st frame -&amp;gt; the distance from the original location is 7,000 units&lt;br /&gt;
*2nd frame -&amp;gt; the distance from the original location is 13,510 units&lt;br /&gt;
*...&lt;br /&gt;
*96th frame -&amp;gt; the distance from the original location is 99,906 units, which is closer to Knockback value than 0.1, so the mechanism ends here.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actual calculation in Oni is most probably some sort of recurrence relation, because it has to deal effectively with multiple knockbacks as well. Multiple knockbacks can be taken as a sum of all applied displacements at the given frame.&lt;br /&gt;
&lt;br /&gt;
Question is whether the Knockback is really calculated as some sort of exponential fade-out or if there actually are some kinematics involved. Bungie West were targeting for high fidelity, for example with velocities in the TRAM xz part. So far I have tried to apply uniform deceleration formula, but it does not comply.&lt;br /&gt;
&lt;br /&gt;
This also leads to question about velocities in Oni. If we assume the &amp;quot;game world unit&amp;quot; is decimeter, then in PAR3 files, speed value of &amp;quot;1.0&amp;quot; means 0.1 m/s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 0 - &amp;quot;Normal&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C68&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || no visible effect&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || HitOverlay (hex 0x39;dec 57)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nothing special. Just deals damage, applies knockback on the target character and makes him play HitOverlay.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 1 - &amp;quot;MinorStun&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C6C&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || length of target character&#039;s stun status (if frames). Decreases over time with rate -1.0/frame&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || Stun (hex 0xD4; dec 212)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Makes the target character play Stun animation till the StunDamage variable decreases back to zero.&amp;lt;BR&amp;gt;&lt;br /&gt;
When hit again by the MinorStun while MinorStunned, the StunDamage variable is filled with the newly dealt StunDamage value and the character restarts the Stun animation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 2 - &amp;quot;MajorStun&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C70&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || length of target character&#039;s stun status (if frames). Decreases over time with rate -1.0/frame&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || first Stagger (hex 0xC6; dec 198) or StaggerBehind (hex 0xD5; dec 213)&lt;br /&gt;
|-&lt;br /&gt;
| || then Stun(hex 0xD4; dec 212)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Makes the target character play the first 30 frames of the Stagger/StaggerBehind animation (already decreasing the StunDamage variable), followed by looped Stun animation till the StunDamage variable decreases to zero.&lt;br /&gt;
&lt;br /&gt;
If the inflicted StunDamage is below 30, target character still plays at least the first 30 frames of Stagger/StaggerBehind.&lt;br /&gt;
If the target character is hit repeatedly with MajorStun, which StunDamage is less than 30, then the target character only keeps staggering, but will not enter the Stun loop.&lt;br /&gt;
&lt;br /&gt;
If the target character is hit with MajorStun while already in the Stun loop, then the StunDamage variable is filled with the newest dealt StunDamage value but the target character fluently continues the Stun loop till the StunDamage variable decreases to zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 3 - &amp;quot;MinorKnockdown&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C74&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || no visible effect&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || not only repositions the target character, but also serves as a threshold for triggering a Stagger or a Knockdown&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || no AnimType forced on target character&lt;br /&gt;
|-&lt;br /&gt;
| || Stagger (hex 0xC6; dec 198) or StaggerBehind (hex 0xD5; dec 213)&lt;br /&gt;
|-&lt;br /&gt;
| || KnockdownHead (hex 0x4F; dec 79) or KnockdownHeadBehind (hex 0x58; dec 88)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This poor DamageType was neglected even by Bungie developers, being fully used only for w4_psm weapon. But it looks pretty useful, especially when combined with DamageBlast&#039;s falloff feature.&lt;br /&gt;
&lt;br /&gt;
When the target character suffers some knockback (be it from PAR3 interaction or even from [[OBD:TRAM/raw0x14|TRAM attacks]]), the value of Knockback serves not only to make the target character reposition, but the value is also added to some sort of the knockback sum variable. This Knockback sum variable sums all incoming knockback values. This Knocback sum variable also decreases over time, but the exact decrease mechanism is not fully reasearched yet as it looks to be non-linear.&lt;br /&gt;
&lt;br /&gt;
When hit by the PAR3 with MinorKnockdown, the engine decided what to do based on the value stored in the Knockback sum variable at the moment of the impact (after the knockback of the impacting MinorKnockdown is counted in):&lt;br /&gt;
* if the value is below 2.2, the target character does not play any special animation.&lt;br /&gt;
* if the value is equal or higher than 2.2 BUT lower than 4.1, then the target character plays the first 22 frames of the Stagger/StaggerBehind. This Stagger status can stack if the target character is hit again by MinorKnockdown while still staggering and the Knockback sum variable is still within Stagger limits.&lt;br /&gt;
* if the value is equal to or higher than 4.1, the target character gets knockdowned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 4 - &amp;quot;MajorKnockdown&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C78&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || no visible effect&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || KnockdownHead (hex 0x4F; dec 79) or KnockdownHeadBehind (hex 0x58; dec 88)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nothing interesting here. Simply applies Damage, Knockback and knocks down the target character.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 5 - &amp;quot;Blownup&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C7C&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || no visible effect&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || Blownup (hex 0xD6; dec 214) or BlownupBehind (hex 0xD7; dec 215)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nothing interesting here. Simply applies Damage, Knockback and &amp;quot;blownup&amp;quot; animation on the target character.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 6 - &amp;quot;Pickup&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C80&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || allows the pickup mechanism to work; minimal 1.5 required for stable pickup mechanism&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || first frame its Fly (hex 0x19; dec25), but then it keeps looping FallingFlail (hex 0xDC, dec 220)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Designed especially for MutantMuro&#039;s tractor particle attack.&lt;br /&gt;
&lt;br /&gt;
This DamageType utilizes the &#039;&#039;&#039;Damage&#039;&#039;&#039; parameter of DamageBlast/DamageChar PAR3 actions in a bit different way than all the others. While it still drains the blue shield as all other DamageTypes&#039; Damage parameter does, it does not subtract hitpoints of the target character when it hits him.&lt;br /&gt;
&lt;br /&gt;
Instead, all dealth Pickup damage is added to some sort of Total Pickup Damage variable. The value of total Pickup Damage variable decreases over time, rate is roughly -1.0/frame (however, maybe it is nonlinear).&lt;br /&gt;
&lt;br /&gt;
If the value in the Total Pickup Damage exceeds 100 AND if the target character has at least 0.5 StunDamage (however, 1.5 is required minimum for stable pickup mechanism), the pickup mechanism can start. Please note that the DamageType Pickup only accepts StunDamage induced by the DamageType Pickup. It cannot be combined with StunDamages from other DamageTypes.&lt;br /&gt;
&lt;br /&gt;
If the pickup mechanism start and the horizontal distance between the Pickupper and the pickupped target character is less than 35 game world units, then the Pickupped target character enters the pickup state and that&#039;s that.&lt;br /&gt;
&lt;br /&gt;
If the pickup mechanism start and the horizontal distance between the Pickupper and the pickupped target character is more than 35 game world units, then the Pickupped target enter the pickup state and simultaneously:&lt;br /&gt;
* Starts ascending vertically so high that the angle between the line &amp;quot;Pickupper&#039;s position - Pickuped target character&#039;s position&amp;quot; and the horizontal plane is equal to 45° (tan = 1).&lt;br /&gt;
* Starts moving horizontally towards the Pickupper. From the beginning of the movement, the velocity first rises from 0 to 2.4 m/s within the first 30 frames of the Pickup mechanism, then the horizontal velocity of 2.4 m/s is kept during the whole Pickuped target character&#039;s dragging. Near the end of the dragging, when the Pickuped target character gets near the distance &amp;quot;35 units afar from the Pickupper&amp;quot;, the horizontal velocity decreases again within 30 frames from 2.4 m/s to 0 m/s.&lt;br /&gt;
&lt;br /&gt;
Warning: Even when all the criteria is met, the DamageType 6 - Pickup does not overwrite animations but always waits till the end of the target character&#039;s curent animation before it (the pickup) kicks in. So the effect of the DamageType 6 - Pickup can appear to be &amp;quot;delayed&amp;quot; if the target character plays some long animations, for example 60 frames idle animations.&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Particle_damage_types&amp;diff=22734</id>
		<title>Particle damage types</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Particle_damage_types&amp;diff=22734"/>
		<updated>2013-06-20T21:12:33Z</updated>

		<summary type="html">&lt;p&gt;Loser: Great Wall of Text strikes back&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Introduction====&lt;br /&gt;
DamageType (&amp;quot;damage type&amp;quot; in .exe) is a member of a preset collection of seven interaction modifiers for [[OBD:BINA/PAR3/Actions|PAR3 actions]] actions &amp;quot;DamageChar&amp;quot; (&amp;quot;Damage Char&amp;quot; in .exe) and &amp;quot;DamageBlast&amp;quot; (&amp;quot;Blast Damage&amp;quot; in .exe).&lt;br /&gt;
&lt;br /&gt;
These modifiers affect the way target character reacts when interacting with [[OBD:BINA/PAR3|PAR3]] particle, which utilizes DamageBlast or DamageChar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ONCC multipliers====&lt;br /&gt;
In the [[OBD:ONCC|ONCC]] profile, each DamageType is assigned its own multiplier (float value).&lt;br /&gt;
* These multipliers have allowed range 0.0 ~ 1.0&lt;br /&gt;
* These multipliers cannot be set negative.&lt;br /&gt;
* These multipliers cap at 1.0&lt;br /&gt;
* These multipliers affect only &amp;quot;StunDamage&amp;quot; and &amp;quot;Knockback&amp;quot; parameters of DamageBlast and DamageChar. &amp;quot;Damage&amp;quot; parameter is left intact.&lt;br /&gt;
When the PAR3 with DamageBlast or DamageChar interacts with the character, initial values of StunDamage and Knockback are multiplied by:&lt;br /&gt;
:multiplier = (1 - &amp;quot;respective DamageType ONCC multiplier&amp;quot;)&lt;br /&gt;
This means leaving multiplier at 0.0 equals not using the multiplier at all.&amp;lt;BR&amp;gt;&lt;br /&gt;
These multipliers can be used to differentiate reactions of characters (for example, heavy characters can suffer from less knockback than lighter ones).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Knockback====&lt;br /&gt;
The Knockback parameter basically sets a distance for which character relocates.&amp;lt;BR&amp;gt;&lt;br /&gt;
When the knockback is set 100, character repositions so far that the distance between original and new location is almost 100 game world units.&amp;lt;BR&amp;gt;&lt;br /&gt;
The accuracy of the distance calculation is 0.1&amp;lt;BR&amp;gt;&lt;br /&gt;
If no multipliers are in effect (ONCC DamageType, Boss shield, DamageBlast falloff etc.), then the actual travelled distance from the moment when being hit till the moment the travelled distance is closer to Knockback value than 0.1 complies with the closed-form expression:&lt;br /&gt;
:distance = Knockback_value*(1-0.93^frame_count)&lt;br /&gt;
&amp;lt;font size=1&amp;gt;&lt;br /&gt;
Example: if the Knockback value in PAR3 is 100 and no multipliers are in effect, then:&lt;br /&gt;
*0th frame (the moment when being hit) -&amp;gt; distance from original location is 0 units&lt;br /&gt;
*1st frame -&amp;gt; the distance from the original location is 7,000 units&lt;br /&gt;
*2nd frame -&amp;gt; the distance from the original location is 13,510 units&lt;br /&gt;
*...&lt;br /&gt;
*96th frame -&amp;gt; the distance from the original location is 99,906 units, which is closer to Knockback value than 0.1, so the mechanism ends here.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actual calculation in Oni is most probably some sort of recurrence relation, because it has to deal effectively with multiple knockbacks as well. Multiple knockbacks can be taken as a sum of all applied displacements at the given frame.&lt;br /&gt;
&lt;br /&gt;
Question is whether the Knockback is really calculated as some sort of exponential fade-out or if there actually are some kinematics involved. Bungie West were targeting for high fidelity, for example with velocities in the TRAM xz part. So far I have tried to apply uniform deceleration formula, but it does not comply.&lt;br /&gt;
&lt;br /&gt;
This also leads to question about velocities in Oni. If we assume the &amp;quot;game world unit&amp;quot; is decimeter, then in PAR3 files, speed value of &amp;quot;1.0&amp;quot; means 0.1 m/s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 0 - &amp;quot;Normal&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C68&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || no visible effect&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || HitOverlay (hex 0x39;dec 57)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Nothing special. Just deals damage, applies knockback on the target character and makes him play HitOverlay.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 1 - &amp;quot;MinorStun&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C6C&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || length of target character&#039;s stun status (if frames). Decreases over time with rate -1.0/frame&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || Stun (hex 0xD4; dec 212)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Makes the target character play Stun animation till the StunDamage variable decreases back to zero.&amp;lt;BR&amp;gt;&lt;br /&gt;
When hit again by the MinorStun while MinorStunned, the StunDamage variable is filled with the newly dealt StunDamage value and the character restarts the Stun animation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 2 - &amp;quot;MajorStun&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C70&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || length of target character&#039;s stun status (if frames). Decreases over time with rate -1.0/frame&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || first Stagger (hex 0xC6; dec 198) or StaggerBehind (hex 0xD5; dec 213)&lt;br /&gt;
|-&lt;br /&gt;
| || then Stun(hex 0xD4; dec 212)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Makes the target character play the first 30 frames of the Stagger/StaggerBehind animation (already decreasing the StunDamage variable), followed by looped Stun animation till the StunDamage variable decreases to zero.&lt;br /&gt;
&lt;br /&gt;
If the inflicted StunDamage is below 30, target character still plays at least the first 30 frames of Stagger/StaggerBehind.&lt;br /&gt;
If the target character is hit repeatedly with MajorStun, which StunDamage is less than 30, then the target character only keeps staggering, but will not enter the Stun loop.&lt;br /&gt;
&lt;br /&gt;
If the target character is hit with MajorStun while already in the Stun loop, then the StunDamage variable is filled with the newest dealt StunDamage value but the target character fluently continues the Stun loop till the StunDamage variable decreases to zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 3 - &amp;quot;MinorKnockdown&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C74&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || no visible effect&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || not only repositions the target character, but also serves as a threshold for triggering a Stagger or a Knockdown&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || no AnimType forced on target character&lt;br /&gt;
|-&lt;br /&gt;
| || Stagger (hex 0xC6; dec 198) or StaggerBehind (hex 0xD5; dec 213)&lt;br /&gt;
|-&lt;br /&gt;
| || KnockdownHead (hex 0x4F; dec 79) or KnockdownHeadBehind (hex 0x58; dec 88)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This poor DamageType was neglected even by Bungie developers, being fully used only for w4_psm weapon. But it looks pretty useful, especially when combined with DamageBlast&#039;s falloff feature.&lt;br /&gt;
&lt;br /&gt;
When the target character suffers some knockback (be it from PAR3 interaction or even from [[OBD:TRAM/raw0x14|TRAM attacks]]), the value of Knockback serves not only to make the target character reposition, but the value is also added to some sort of the knockback sum variable. This Knockback sum variable sums all incoming knockback values. This Knocback sum variable also decreases over time, but the exact decrease mechanism is not fully reasearched yet as it looks to be non-linear.&lt;br /&gt;
&lt;br /&gt;
When hit by the PAR3 with MinorKnockdown, the engine decided what to do based on the value stored in the Knockback sum variable at the moment of the impact (after the knockback of the impacting MinorKnockdown is counted in):&lt;br /&gt;
* if the value is below 2.2, target character does not play any special animation.&lt;br /&gt;
* if the value is equal or higher than 2.2 BUT lower than 4.1, then target character plays the first 22 frames of the Stagger/StaggerBehind. This Stagger status can stack if the target character is hit again by MinorKnockdown while still staggering and the Knockback sum variable is still within Stagger limits.&lt;br /&gt;
* if the value is equal to or higher than 4.1, target character gets knockdowned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 4 - &amp;quot;MajorKnockdown&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C78&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || no visible effect&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || KnockdownHead (hex 0x4F; dec 79) or KnockdownHeadBehind (hex 0x58; dec 88)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Nothing interesting here. Simply applies Damage, Knockback and knocks down the target character.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 5 - &amp;quot;Blownup&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C7C&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || no visible effect&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || Blownup (hex 0xD6; dec 214) or BlownupBehind (hex 0xD7; dec 215)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Nothing interesting here. Simply applies Damage, Knockback and &amp;quot;blownup&amp;quot; animation on the target character.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====DamageType 6 - &amp;quot;Pickup&amp;quot;====&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[OBD:ONCC|ONCC]] multiplier offset: || 0x0C80&lt;br /&gt;
|-&lt;br /&gt;
| StunDamage: || allows the pickup mechanism to work; minimal 1.5 required for stable pickup mechanism&lt;br /&gt;
|-&lt;br /&gt;
| Knockback: || no special effect, simply repositions the target character&lt;br /&gt;
|-&lt;br /&gt;
| Target character AnimType: || first frame its Fly (hex 0x19; dec25), but then it keeps looping FallingFlail (hex 0xDC, dec 220)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Designed especially for MutantMuro&#039;s tractor particle attack.&lt;br /&gt;
&lt;br /&gt;
This DamageType utilizes the &#039;&#039;&#039;Damage&#039;&#039;&#039; parameter of DamageBlast/DamageChar PAR3 actions in a bit different way than all the others. While it still drains the blue shield as all other DamageTypes&#039; Damage parameter does, it does not subtract hitpoints of the target character when it hits him.&lt;br /&gt;
&lt;br /&gt;
Instead, all dealth Pickup damage is added to some sort of Total Pickup Damage variable. The value of total Pickup Damage variable decreases over time, rate is roughly -1.0/frame (however, maybe it is nonlinear).&lt;br /&gt;
&lt;br /&gt;
If the value in the Total Pickup Damage exceeds 100 AND if the target character has at least 0.5 StunDamage (however, 1.5 is required minimum for stable pickup mechanism), the pickup mechanism can start. Please note that the DamageType Pickup only accepts StunDamage induced by the DamageType Pickup. It cannot be combined with StunDamages from other DamageTypes.&lt;br /&gt;
&lt;br /&gt;
If the pickup mechanism start and the horizontal distance between the Pickupper and the pickupped target character is less than 35 game world units, then the Pickupped target character enters the pickup state and that&#039;s that.&lt;br /&gt;
&lt;br /&gt;
If the pickup mechanism start and the horizontal distance between the Pickupper and the pickupped target character is more than 35 game world units, then the Pickupped target enter the pickup state and simultaneously:&lt;br /&gt;
* Starts ascending vertically so high that the angle between the line &amp;quot;Pickupper&#039;s position - Pickuped target character&#039;s position&amp;quot; and the horizontal plane is equal to 45° (tan = 1).&lt;br /&gt;
* Starts moving horizontally towards the Pickupper. From the beginning of the movement, the velocity first rises from 0 to 2.4 m/s within the first 30 frames of the Pickup mechanism, then the horizontal velocity of 2.4 m/s is kept during the whole Pickuped target character&#039;s dragging. Near the end of the dragging, when the Pickuped target character gets near the distance &amp;quot;35 units afar from the Pickupper&amp;quot;, the horizontal velocity decreases again within 30 frames from 2.4 m/s to 0 m/s.&lt;br /&gt;
&lt;br /&gt;
Warning: Even when all the criteria is met, the DamageType 6 - Pickup does not overwrite animations but always waits till the end of the target character&#039;s curent animation before it (the pickup) kicks in. So the effect of the DamageType 6 - Pickup can appear to be &amp;quot;delayed&amp;quot; if the target character plays some long animations, for example 60 frames idle animations.&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OBD:ONCC&amp;diff=22733</id>
		<title>OBD:ONCC</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OBD:ONCC&amp;diff=22733"/>
		<updated>2013-06-20T16:08:21Z</updated>

		<summary type="html">&lt;p&gt;Loser: Clarified the effect of DamageType multipliers.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OBD_File_Header | type=ONCC | prev=OFGA | next=ONCP | name=Oni Character Class | family=Character | align=center}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_a.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x000 | res_id   |FF0000| 01 DF 03 00 | 991         | 00991-konoko_generic.ONCC }}&lt;br /&gt;
{{OBDtr| 0x004 | lev_id   |FFFF00| 01 00 00 06 | 0           | level 3 }}&lt;br /&gt;
{{OBDtr| 0x008 | float    |00FF00| CD CC 0C 3F | 0.550000    | downwards velocity? (unknown, always 0.55) }}&lt;br /&gt;
{{OBDtr| 0x00C | float    |00FF00| 8F C2 75 3D | 0.060000    | downward gravity acceleration }}&lt;br /&gt;
{{OBDtr| 0x010 | float    |00FF00| CD CC 8C 3F | 1.100000    | starting velocity for a simple (tap) JUMP }}&lt;br /&gt;
{{OBDtr| 0x014 | float    |00FF00| 00 00 80 C0 | -4.000000   | limit velocity for jumping and gravity flight }}&lt;br /&gt;
{{OBDtr| 0x018 | float    |00FF00| 8F C2 F5 3C | 0.030000    | upward acceleration (jetpack) if you hold JUMP }}&lt;br /&gt;
{{OBDtr| 0x01C | int16    |00FFFF| 07 00       | 7           | gravity timer? (unknown, always 7) }}&lt;br /&gt;
{{OBDtr| 0x01E | int16    |00FFFF| 14 00       | 20          | jetpack timer; time during which you can use the jetpack }}&lt;br /&gt;
{{OBDtr| 0x020 | float    |FF00FF| 00 00 34 42 | 45.000000   | maximal falling height without damage }}&lt;br /&gt;
{{OBDtr| 0x024 | float    |FF00FF| 00 00 07 43 | 135.000000  | maximal falling height with damage }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Units:times are in frames&lt;br /&gt;
:heights are in world units&lt;br /&gt;
:velocities are in world units per frames&lt;br /&gt;
:accelerations are in world units per frames squared&lt;br /&gt;
;Downwards velocity: could correspond to the steady push experienced when neither jumping nor falling&lt;br /&gt;
:would be roughly equivalent to the starting velocity of a fall&lt;br /&gt;
:although the value .55 seems right, the &amp;quot;sinking&amp;quot; seems to be hardcoded now&lt;br /&gt;
;Gravity timer:Seems to be hardcoded now (could be the time until gravity switches on)&lt;br /&gt;
;Jetpack timer:You can press JUMP multiple times during the time window (quite fun!)&lt;br /&gt;
;Falling height: let FH1 be the height at 0x20&lt;br /&gt;
:let FH2 be the height at 0x24&lt;br /&gt;
:let BH be the base health of the character&lt;br /&gt;
:let FH be the actual falling height&lt;br /&gt;
:then, if FH &amp;gt; FH2, the character is killed&lt;br /&gt;
:if FH &amp;lt; FH1, the character takes no damage&lt;br /&gt;
:if FH1 &amp;lt; FH &amp;lt; FH2, the character takes damage (FH - FH1) / (FH2 - FH1) * BH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x028 | link     |FF8000| 01 F8 03 00 | 1016        | link to 01016-shadow1.[[OBD:TXMP|TXMP]] }}&lt;br /&gt;
{{OBDtr| 0x02C | float    |FF8000| 00 00 40 41 | 12.000000   | height where the shadow fades out completely }}&lt;br /&gt;
{{OBDtr| 0x030 | float    |FF8000| 00 00 00 41 | 8.000000    | height where the diameter of the shadow decreases and the shadow fades out half }}&lt;br /&gt;
{{OBDtr| 0x034 | float    |FF8000| 00 00 C0 40 | 6.000000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x038 | float    |FF8000| 00 00 90 40 | 4.500000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x03C | float    |FF8000| 00 00 40 40 | 3.000000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x040 | int16    |FF8000| 30 00       | 48          | transparency of the shadow for the first part of a jump }}&lt;br /&gt;
{{OBDtr| 0x042 | int16    |FF8000| 30 00       | 48          | transparency of the shadow for the second part of a jump }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Jump Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x044 | float    |FF0080| 00 00 C8 41 | 25.000000   | jumpDistance? ; always the same }}&lt;br /&gt;
{{OBDtr| 0x048 | int8     |FFC8C8| 16          |  22         | jumpHeight? ; always the same }}&lt;br /&gt;
{{OBDtr| 0x049 | int8     |FFC8C8| 06          |  6          | jumpDistanceSquares?!?! ; always the same }}&lt;br /&gt;
{{OBDtr| 0x04A | char[2]  |FFC8C8| AD DE       | dead        | pad }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Cover Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x04C | float    |FFFFC8| 00 00 20 42 | 40.000000   | rayIncrement; always the same }}&lt;br /&gt;
{{OBDtr| 0x050 | float    |FFFFC8| 00 00 96 43 | 300.000000  | rayMax; always the same }}&lt;br /&gt;
{{OBDtr| 0x054 | float    |FFFFC8| 35 FA 8E 3C | 0.017453    | rayAngle; always the same (0.017453 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; PI/180) }}&lt;br /&gt;
{{OBDtr| 0x058 | float    |FFFFC8| DB 0F C9 3F | 1.570796    | rayAngleMax; always the same (1.57 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; PI/2) }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Autofreeze Constants (unused)&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDtr| 0x05C | float    |FFFFC8| 00 00 A0 40 | 5.000000    | distance_xz; always the same }}&lt;br /&gt;
{{OBDtr| 0x060 | float    |FFFFC8| 00 00 80 3F | 1.000000    | distance_y; always the same }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Inventory Constants (unused?)&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDtr| 0x064 | int16    |C8FFC8| 06 00       | 6           | (inverse) hypo regeneration rate in frames per hitpoint }}&lt;br /&gt;
{{OBDtr| 0x066 | char[2]  |C8FFC8| AD DE       | dead        | ignored }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;LOD Constants&lt;br /&gt;
Distances from Camera to render certain LODs&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x068 | float    |C8FFFF| 00 10 3D 48 |193600.000000| always the same; this is 440 squared }}&lt;br /&gt;
{{OBDtr| 0x06C | float    |C8FFFF| 00 10 3D 47 | 48400.000000| always the same; this is 220 squared }}&lt;br /&gt;
{{OBDtr| 0x070 | float    |C8FFFF| 00 10 3D 46 | 12100.000000| always the same; this is 110 squared }}&lt;br /&gt;
{{OBDtr| 0x074 | float    |C8FFFF| 00 00 00 00 | 0.000000    | always the same }}&lt;br /&gt;
{{OBDtr| 0x078 | float    |C8FFFF| 00 00 00 00 | 0.000000    | always the same }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Hurt Sound Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x07C | int16    |FFC8FF| 23 00       | 35          | hurt_base_percentage; always the same }}&lt;br /&gt;
{{OBDtr| 0x07E | int16    |FFC8FF| 5A 00       | 90          | hurt_max_percentage; always the same }}&lt;br /&gt;
{{OBDtr| 0x080 | int16    |FFC8FF| 0F 00       | 15          | hurt_percentage_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x082 | int16    |FFC8FF| 78 00       | 120         | hurt_timer; always the same }}&lt;br /&gt;
{{OBDtr| 0x084 | int16    |FFC8FF| 23 00       | 35          | hurt_min_timer; always the same }}&lt;br /&gt;
{{OBDtr| 0x086 | int16    |FFC8FF| 01 00       | 1           | hurt_max_light; always the same }}&lt;br /&gt;
{{OBDtr| 0x088 | int16    |FFC8FF| 02 00       | 2           | hurt_max_medium; always the same }}&lt;br /&gt;
{{OBDtr| 0x08A | int16    |FFC8FF| 64 00       | 100         | hurt_death_chance; always the same }}&lt;br /&gt;
{{OBDtr| 0x08C | int16    |FFC8FF| 0A 00       | 10          | hurt_volume_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x08E | int16    |FFC8FF| 0C 00       | 12          | hurt_medium_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x090 | int16    |FFC8FF| 16 00       | 22          | hurt_heavy_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x092 | int8     |FFC800| 00          | 0           | runtime only: if 1 sound pointers have been set }}&lt;br /&gt;
{{OBDtr| 0x093 | char[1]  |C800C8| DE          | dead        | ignored }}&lt;br /&gt;
{{OBDtr| 0x094 | float    |C87C64| 00 00 00 3F | 0.500000    | sound volume }}&lt;br /&gt;
{{OBDtr2|0x098 | char[32] |B0C3D4| konoko_hurt_light         | hurt light sound (reference to 08121-konoko_hurt_light.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0B8 | char[32] |B0C3D4| konoko_hurt_medium        | hurt medium sound (reference to 08123-konoko_hurt_medium.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0D8 | char[32] |B0C3D4| konoko_hurt_heavy         | hurt heavy sound (reference to 08119-konoko_hurt_heavy.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0F8 | char[32] |B0C3D4| konoko_death              | death sound (reference to 08115-konoko_death.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr| 0x118 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt light sound }}&lt;br /&gt;
{{OBDtr| 0x11C | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt medium sound }}&lt;br /&gt;
{{OBDtr| 0x120 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt heavy sound }}&lt;br /&gt;
{{OBDtr| 0x124 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to death sound }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;AI Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x128 | bitsets  |E7CEA5| 17 00 00 00 | 23          | AI options bitset; see below }}&lt;br /&gt;
{{OBDtr| 0x12C | float    |FFDDDD| 00 00 80 3F | 1.000000    | AI rotation speed factor }}&lt;br /&gt;
{{OBDtr| 0x130 | int16    |64AAAA| 06 00       | 6           | minimal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned }}&lt;br /&gt;
{{OBDtr| 0x132 | int16    |64AAAA| 18 00       | 24          | maximal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned }}&lt;br /&gt;
{{OBDtr| 0x134 | uint32    |EBEBEB| 0F 00 00 00 | 15          | number of frames after which AI realizes that it is in the firing spread and it starts dodging }}&lt;br /&gt;
{{OBDtr| 0x138 | float    |8C8CCC| 00 00 80 3F | 1.000000    | minimal firingspread dodge amount; IMO similar to maneouvre variable, it tells AI how long it should perform dodging/hiding in response to some time spent inside firing spread (so setting this very high means that once enemy starts dodging/hiding, he will perform it even after firing spread disappears) }}&lt;br /&gt;
{{OBDtr| 0x13C | float    |8C8CCC| 00 00 80 3F | 1.000000    | maximal firingspread dodge amount; IMO similar to maneouvre variable }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;AI options bitset&lt;br /&gt;
:allows or disables some parts of the AI behavior&lt;br /&gt;
*NONE - startle anim is enabled, rest is disabled&lt;br /&gt;
*0x01 - startle anim disabled&lt;br /&gt;
*0x02 - firingspread/projectile dodge enabled for melee&lt;br /&gt;
*0x04 - requires 0x02; firingspread/projectile dodge enabled for weapons; AI tries to face shooter and shoot back while dodging&lt;br /&gt;
*0x08 - requires 0x02, overrides 0x04 if both are set; firingspread/projectile dodge enabled for weapons; AI isn&#039;t shooting, it just tends to run away, not facing shooter&lt;br /&gt;
*0x10 - bit not used&lt;br /&gt;
&lt;br /&gt;
;AI rotation speed factor&lt;br /&gt;
:reference rotation speed is about 1 turn (360&amp;amp;#65533;) per second&lt;br /&gt;
:the setting is only effective if the AI is in control&lt;br /&gt;
:so it&#039;s a bit like the AI&#039;s mouse sensitivity :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;AI Targeting Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x140 | float    |8C8CCC| 00 00 00 3F | 0.500000    | unknown; something with AI targeting prediction; always the same for TURR and ONCC  }}&lt;br /&gt;
{{OBDtr| 0x144 | float    |8C8CCC| 00 00 C8 41 | 25.000000   | unknown; something with AI targeting prediction; always the same for TURR and ONCC  }}&lt;br /&gt;
{{OBDtr| 0x148 | float    |8C8CCC| 00 00 80 3F | 1.000000    | unknown; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x14C | int32    |FF00C8| 00 00 00 00 | 0           | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x150 | int32    |FF00C8| 05 00 00 00 | 5           | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x154 | int32    |FF00C8| 0F 00 00 00 | 15          | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x158 | int32    |FF00C8| 3C 00 00 00 | 60          | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtrBK|1=First of 13 shooting skills (grey outline) }}&lt;br /&gt;
{{OBDtr| 0x15C | float    |F0F096| 00 00 00 00 | 0.000000    | recoil compensation amount (0.0 &amp;lt;nowiki&amp;gt;= min, 1.0 =&amp;lt;/nowiki&amp;gt; max) }}&lt;br /&gt;
{{OBDtr| 0x160 | float    |F0F096| 00 00 00 00 | 0.000000    | best aiming angle in radians }}&lt;br /&gt;
{{OBDtr| 0x164 | float    |F0F096| 00 00 00 00 | 0.000000    | shot grouping error }}&lt;br /&gt;
{{OBDtr| 0x168 | float    |F0F096| 00 00 80 3F | 1.000000    | shot grouping decay }}&lt;br /&gt;
{{OBDtr| 0x16C | float    |F0F096| 00 00 80 3F | 1.000000    | shooting inaccuracy multiplier }}&lt;br /&gt;
{{OBDtr| 0x170 | uint16    |00C864| 00 00       | 0           | minimum delay between shots in frames }}&lt;br /&gt;
{{OBDtr| 0x172 | uint16    |00C864| 00 00       | 0           | maximum delay between shots in frames }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;AI Shooting Skills&lt;br /&gt;
These can be reviewed with e.g. &#039;&#039;&#039;ai2_skill_select konoko_generic w1_tap&#039;&#039;&#039; and then either &#039;&#039;&#039;ai2_skill_show&#039;&#039;&#039; (prints to console) or &#039;&#039;&#039;ai2_skill_save&#039;&#039;&#039; (prints to file)&lt;br /&gt;
The first weapon (weapon 0) is not in the game anymore, whatever that was. Muro&#039;s thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade&#039;s ball, except &#039;&#039;&#039;w10_sni&#039;&#039;&#039; is still available) (&#039;&#039;&#039;w12_ba2&#039;&#039;&#039; and &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; are a bit mixed up : the beam is made of &#039;&#039;&#039;w12_ba2&#039;&#039;&#039; particles, and the grenade is a &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; particle...)&lt;br /&gt;
&lt;br /&gt;
{{Table|width=&amp;quot;&amp;quot;|align=&amp;quot;left&amp;quot;}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot; ALIGN=CENTER&lt;br /&gt;
!Weapon       ||Offset     ||recoil||bestangle||error||decay||inaccuracy||delays&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w0_sec&#039;&#039;&#039; ||0x15C/0x173|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w1_tap&#039;&#039;&#039; ||0x174/0x18B|| 0.0  || 0.000000|| 0.40|| 0.4 || 0.0      || 30 - 45&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w2_sap&#039;&#039;&#039; ||0x18C/0x193|| 0.3  || 0.013962|| 0.13|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w3_phr&#039;&#039;&#039; ||0x194/0x20B|| 0.3  || 0.010472|| 0.05|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w4_psm&#039;&#039;&#039; ||0x20C/0x213|| 0.3  || 0.015707|| 0.03|| 0.2 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w5_sbg&#039;&#039;&#039; ||0x214/0x22B|| 0.3  || 0.001745|| 0.00|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w6_vdg&#039;&#039;&#039; ||0x22C/0x233|| 0.3  || 0.001745|| 0.13|| 0.9 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w7_scc&#039;&#039;&#039; ||0x234/0x24B|| 0.3  || 0.001745|| 0.05|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w8_mbo&#039;&#039;&#039; ||0x24C/0x253|| 0.3  || 0.005236|| 0.01|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w9_scr&#039;&#039;&#039; ||0x254/0x26B|| 0.3  || 0.010472|| 0.04|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w10_sni&#039;&#039;&#039;||0x26C/0x273|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w11_ba1&#039;&#039;&#039;||0x274/0x28B|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w12_ba2&#039;&#039;&#039;||0x28B/0x293|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_m.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x294 | int32    |00C8FF| 5A 00 00 00 | 90          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x298 | int32    |00C8FF| F0 00 00 00 | 240         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x29C | int32    |00C8FF| B4 00 00 00 | 180         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x2A0 | int32    |00C8FF| 28 00 00 00 | 40          | taunt chance (40%) }}&lt;br /&gt;
{{OBDtr| 0x2A4 | int32    |00C8FF| 37 00 00 00 | 55          | go for gun chance (55%); determines possibility that AI will run to some weapon and take it; can be checked in devmode by *debug_gun_behavior* command }}&lt;br /&gt;
{{OBDtr| 0x2A8 | int32    |00C8FF| 3C 00 00 00 | 60          | running pickup chance (60%); this value is possibility of AI running weapon pickup (acrobatics, slides) instead of normal &amp;quot;stop-&amp;gt;pickup&amp;quot;;this is calculated AFTER engine decides that AI should run for weapon }}&lt;br /&gt;
{{OBDtr| 0x2AC | int16    |C80040| 00 00       | 0           | combat profile ID; for example *0D* is for Mutant Muro }}&lt;br /&gt;
{{OBDtr| 0x2AE | int16    |C80040| 16 00       | 22          | melee profile ID }}&lt;br /&gt;
{{OBDtr| 0x2B0 | int8     |FFCD96| 64          | 100         | &amp;quot;taunt&amp;quot; sound probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B1 | int8     |FFCD96| 00          | 0           | &amp;quot;alert&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B2 | int8     |FFCD96| 00          | 0           | &amp;quot;startle&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B3 | int8     |FFCD96| 00          | 0           | &amp;quot;checkbody&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B4 | int8     |FFCD96| 00          | 0           | &amp;quot;pursue&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B5 | int8     |FFCD96| 00          | 0           | &amp;quot;cower&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B6 | int8     |FFCD96| 64          | 100         | &amp;quot;superpunch&amp;quot; probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B7 | int8     |FFCD96| 64          | 100         | &amp;quot;superkick&amp;quot; probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B8 | int8     |FFCD96| 00          | 0           | &amp;quot;super3&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B9 | int8     |FFCD96| 00          | 0           | &amp;quot;super4&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2BA | int16    |C8C864| 00 00       | 0           | probably a blank filler (always the same) }}&lt;br /&gt;
{{OBDtr2|0x2BC | char[32] |0096C8| c17_99_28konoko           | &amp;quot;taunt&amp;quot; sound (reference to 08108-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x2DC | char[32] |0096C8| unused                    | &amp;quot;alert&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x2FC | char[32] |0096C8| unused                    | &amp;quot;startle&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x31C | char[32] |0096C8| unused                    | &amp;quot;checkbody&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x33C | char[32] |0096C8| unused                    | &amp;quot;pursue&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x35C | char[32] |0096C8| unused                    | &amp;quot;cower&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x37C | char[32] |0096C8| c18_79_14konoko           | &amp;quot;superpunch&amp;quot; sound (reference to 08110-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x39C | char[32] |0096C8| c18_79_15konoko           | &amp;quot;superkick&amp;quot; sound (reference to 08112-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x3BC | char[32] |0096C8| unused                    | &amp;quot;super3&amp;quot; sound (only the superninja uses this slot) }}&lt;br /&gt;
{{OBDtr2|0x3DC | char[32] |0096C8| unused                    | &amp;quot;super4&amp;quot; sound (never used in Oni) }}&lt;br /&gt;
{{OBDtrBK| the following 7 vision fields are used to detect if a character can be seen by AI; see Vision Field below for explanation }}&lt;br /&gt;
{{OBDtr| 0x3FC | float    |FF80C0| 00 80 ED 43 | 475.000000  | central vision distance }}&lt;br /&gt;
{{OBDtr| 0x400 | float    |FF80C0| 00 00 16 43 | 150.000000  | peripheral vision distance }}&lt;br /&gt;
{{OBDtr| 0x404 | float    |FF80C0| 7D 1B 44 3F | 0.766044    | vertical vision range }}&lt;br /&gt;
{{OBDtr| 0x408 | float    |FF80C0| F3 B3 51 3F | 0.819152    | central vision range }}&lt;br /&gt;
{{OBDtr| 0x40C | float    |FF80C0| E8 D5 12 3F | 0.573576    | central vision max }}&lt;br /&gt;
{{OBDtr| 0x410 | float    |FF80C0| D5 D0 31 3E | 0.173648    | peripheral vision range }}&lt;br /&gt;
{{OBDtr| 0x414 | float    |FF80C0| 6B 61 D8 BE | 0.422618    | peripheral vision max }}&lt;br /&gt;
{{OBDtr| 0x418 | int32    |D0C0AF| B4 00 00 00 | 180         | hostilethreat definite timer; how long will AI know exactly where its enemy is even if it can&#039;t see him with central vision-field; AI attacks him; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware) }}&lt;br /&gt;
{{OBDtr| 0x41C | int32    |D0C0AF| 84 03 00 00 | 900         | hostilethreat strong timer; how long will AI remain in strong feeling that there is the enemy, but will not attack him but investigate; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x420 | int32    |D0C0AF| 10 0E 00 00 | 3600        | hostilethreat weak timer; how long will AI remain in weak feeling of an enemy, just looking around aimlessly (Glance pursue mode); can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x424 | int32    |D0C0AF| 10 0E 00 00 | 3600        | friendlythreat definite timer; how long will AI know exactly where its ally (Syndicate saw Syndicate for example) is even if it can&#039;t see him with central vision-field; AI simply knows there is someone else nearby; maybe has further possibilities; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware) }}&lt;br /&gt;
{{OBDtr| 0x428 | int32    |D0C0AF| 50 46 00 00 | 18000       | friendlythreat strong timer; how long will AI remain in strong feeling that there is someone else, but will not try to find him or look at him; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x42C | int32    |D0C0AF| A0 8C 00 00 | 36000       | friendlythreat weak timer; how long will AI remain in weak feeling of ally, doing its usual job; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x430 | float    |EEDDFF| 00 00 80 3F | 1.000000    | earshot radius; defines size of the sound-collision sphere around AI }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;Vision Field&lt;br /&gt;
The &amp;quot;range&amp;quot; and &amp;quot;max&amp;quot; values are logically angles but the cosine of the angle is stored instead for performace reasons. We have the following angles (in degrees):&lt;br /&gt;
:vertical range - 40&lt;br /&gt;
:horizontal central range - 35&lt;br /&gt;
:horizontal central max - 55&lt;br /&gt;
:horizontal peripheral range - 80&lt;br /&gt;
:horizontal peripheral max - 115&lt;br /&gt;
Within &amp;quot;range&amp;quot; the &amp;quot;distance&amp;quot; field is used to compute visibility (character is visible if the distance between AI and character is &amp;lt; &amp;quot;distance&amp;quot; field). Between &amp;quot;range&amp;quot; and &amp;quot;max&amp;quot; the visibility distance decreases gradually towards 0.&lt;br /&gt;
The vision field can be made visible with the script command *ai2_showvision &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;1* but it should be noted that the rendering might not be accurate. In particular the peripheral vision field it&#039;s missing the central segment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Character Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x434 | link     |C5FF8A| 01 FB 03 00 | 1019        | link to 01019-konoko.[[OBD:ONCV|ONCV]]; defines variants and upgrades }}&lt;br /&gt;
{{OBDtr| 0x438 | link     |C5FF8A| 01 F9 03 00 | 1017        | link to [[OBD:ONCP|01017-.ONCP]]; lists the particles available for this character (trails, flashes, etc) }}&lt;br /&gt;
{{OBDtr| 0x43C | link     |C5FF8A| 01 FA 03 00 | 1018        | link to [[OBD:ONIA|01018-.ONIA]]; lists the special impact sounds (used for special combat moves) }}&lt;br /&gt;
{{OBDtr| 0x440 | int8     |C5FF8A| 00          | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0x441 | int8     |C5FF8A| 00          | unused      | padding }}&lt;br /&gt;
{{OBDtr| 0x442 | int16    |C5FF8A| 00 00       | unused      | runtime only }}&lt;br /&gt;
{{OBDtr2|0x444 | char[16] |C0C0C0| Light                     | modifier; either hardcoded or defunct (only visible in pm_mod_type.WMM_, level 0)&lt;br /&gt;
edit: WMDD says: Effects found for Impact x on Material y with Modifier: pm_mod_types }}&lt;br /&gt;
{{OBDtrBK|1=First of 15 impact elements. }}&lt;br /&gt;
{{OBDtr2|0x454 | char[128] |FF0080| Footstep_Walk             | walk impact (reference to 04124-Footstep_Walk.[[OBD:Impt|Impt]] of level 0); always the same; without the impacts you can&#039;t hear the steps of a character }}&lt;br /&gt;
{{OBDtr| 0x4D4 | int16    |FF0080| FF FF | -1 | set at runtime to the value stored at 0x08 in [[OBD:Impt|Impt]] }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_e.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0xBF2 | int16    |FFFFA6| 00 00       | 0           | unknown; always the same; maybe only a filler }} &lt;br /&gt;
{{OBDtr2|0xBF4 | char[64] |71FFB8| unused                    | special death particle; only the mad bomber use it }} &lt;br /&gt;
{{OBDtr| 0xC34 | link     |0000BF| 00 00 00 00 | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0xC38 | link     |0000BF| 00 00 00 00 | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0xC3C | link     |0000BF| 01 E6 03 00 | 998         | link to [[OBD:TRBS|00998-konoko_body_high.TRBS]] }}&lt;br /&gt;
{{OBDtr| 0xC40 | link     |0000BF| 01 E7 03 00 | 999         | link to [[OBD:TRMA|00999-konoko002_high_texture_generic.TRMA]] }}&lt;br /&gt;
{{OBDtr| 0xC44 | link     |0000BF| 01 E8 03 00 | 1000        | link to [[OBD:CBPM|01000-.CBPM]] }}&lt;br /&gt;
{{OBDtr| 0xC48 | link     |0000BF| 01 EC 03 00 | 1004        | link to [[OBD:CBPI|01004-.CBPI]] }}&lt;br /&gt;
{{OBDtr| 0xC4C | int32    |804040| 2C 01 00 00 | 300         | fight mode timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC50 | int32    |804040| 30 75 00 00 | 30000       | first idle animation timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC54 | int32    |804040| 30 75 00 00 | 30000       | second idle animation timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC58 | int32    |804040| C8 00 00 00 | 200         | basic health of the character model; extra health information for every unique character are stored in the [[OBD:BINA/OBJC/CHAR|Character.BINA]] file}} &lt;br /&gt;
{{OBDtr| 0xC5C | int32    |804040| 48 00 00 00 | 72          | feetBits (these bits mark the characters feet)&lt;br /&gt;
 }} &lt;br /&gt;
{{OBDtr| 0xC60 | float    |FF22FF| 00 00 80 3F | 1.000000    | minimal body size factor }} &lt;br /&gt;
{{OBDtr| 0xC64 | float    |FF22FF| 00 00 80 3F | 1.000000    | maximal body size factor }} &lt;br /&gt;
{{OBDtrBK| The following 7 float values are ONCC specific multipliers for 7 PAR3 DamageTypes (see the [[OBD:BINA/PAR3|PAR3]] page for DamageTypes).&lt;br /&gt;
These values multiply StunDamage and Knockback parameters of PAR3 actions &amp;quot;DamageChar&amp;quot; and &amp;quot;DamageBlast&amp;quot;, when those PAR3 actions utilize the respective DamageType. &amp;quot;Damage&amp;quot; parameter of said PAR3 actions is not affected by these multipliers. }}&lt;br /&gt;
{{OBDtr| 0xC68 | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;Normal&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC6C | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;MinorStun&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC70 | float    |FF22FF| 00 00 00 3F | 0.500000    | &amp;quot;MajorStun&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC74 | float    |FF22FF| 00 00 80 3E | 0.250000    | &amp;quot;MinorKnockdown&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC78 | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;MajorKnockdown&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC7C | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;Blownup&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC80 | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;Pickup&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC84 | float    |FF22FF| 00 00 00 3F | 0.500000    | Boss Shield multiplier, employed when the character has a boss shield,&amp;lt;BR&amp;gt;for example via BSL command chr_boss_shield(ai_name).&lt;br /&gt;
Incoming Damage, StunDamage and Knockback from any DamageType is then multiplied by this value. }}&lt;br /&gt;
{{OBDtr| 0xC88 | link     |808080| 01 F6 03 00 | 1014        | link to 01014-konoko_animations.[[OBD:TRAC|TRAC]] }} &lt;br /&gt;
{{OBDtr| 0xC8C | link     |808080| 01 F6 03 00 | 1015        | link to 01015-konoko_screens.[[OBD:TRSC|TRSC]] }} &lt;br /&gt;
{{OBDtr| 0xC90 | int16    |FFAA82| 1E 00       | 30          | AI Rate of Fire (testme) }} &lt;br /&gt;
{{OBDtr| 0xC92 | int16    |FFAA82| 00 00       | 0           | time between death and deletion, in frames (about 3 seconds for mad bomber) }} &lt;br /&gt;
{{OBDtr| 0xC94 | bitset   |00D900| 00          | 0           | TRSC bitset; see below }} &lt;br /&gt;
{{OBDtr| 0xC95 | int8     |00D900| 01          | 1           | when set to 1 indicates that character has daodan powers (character does more damage in overpower mode)}} &lt;br /&gt;
{{OBDtr| 0xC96 | int8     |00D900| 00          | 0           | when set to 1 indicates that character has supershield&lt;br /&gt;
* is visible as red shield when overpowered&lt;br /&gt;
* needs daodan flag above and 51% overpower to be enabled; chenille cheat works too&lt;br /&gt;
* now it prevents damage from weapon fire and melee (exception are throws)&lt;br /&gt;
* received (melee) hits cause not blue block flashes but orange flares (see [http://paradox.oni2.net/Bilder/blocked_attacks_on_51percent_overpower_plus_daodan-flag_plus_supershield.png HERE])&lt;br /&gt;
 }} &lt;br /&gt;
{{OBDtr| 0xC97 | int8     |00D900| 00          | 0           | when set to 1, generically turns on &#039;&#039;&#039;canttouchthis&#039;&#039;&#039; cheat for this ONCC (used by MutantMuro.ONCC }} &lt;br /&gt;
{{OBDtr| 0xC98 | char[8]  |CACAFF| AD DE       | dead        | unused }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|[[File:ONCC_body_size_factor-original.jpg|120px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:ONCC_body_size_factor-spawn_order_change.jpg|120px]]&lt;br /&gt;
|}&lt;br /&gt;
;Body size factor&lt;br /&gt;
:The geometry specified in a character&#039;s [[TRBS]] (Totoro body set) can be multiplied by a scale factor. For example, the &#039;&#039;&#039;minime&#039;&#039;&#039; and &#039;&#039;&#039;behemoth&#039;&#039;&#039; [[cheats]] set that factor to 0.25 or 1.8, and back to 1. The size can be used for specific purposes (mini-Strikers, Mutant Muro, giant Shinatama), or it can be used to add generic variety to Oni&#039;s characters, as a complement to &amp;quot;character variants&amp;quot; ([[ONCV]]).&lt;br /&gt;
:The floats at 0xC60 and 0xC64 define a range in which Oni can pick a random body size factor (if the two values are identical, then the body size factor is effectively fixed instead of random). [[Konoko]], [[Shinatama]] (both regular and zombified), [[Griffin]] (both variants) and [[Muro]] all have a fixed body size of 1. Mini-Strikers have 0.5 and giant Shinatama has 7 (yes, [[seven]]).&lt;br /&gt;
:Everybody else (including [[Barabas]], [[Mukade]] and [[Kerr]]) has a random body size within 5% of 1 (i.e., the floats at 0xC60 and 0xC64 are 0.95 and 1.05). Mutant Muro is a bit odd because his &amp;quot;minimum&amp;quot; body size 1.75 and the &amp;quot;maximum&amp;quot; is 1.74 (the difference is barely noticeable anyway). In the [[Anniversary Edition]], some characters have altered factors (e.g., [[Shinatama Too]]).&lt;br /&gt;
:The random value is different every time the [[ONCC]] is looked up (e.g., when a character is spawned or shapeshifted) and is not reproducible. Here is a simple script for {{C|6}} a.k.a. [[IGMD/tctf]] (remove all [[BSL]] files and leave only the one below):&lt;br /&gt;
 func main {&lt;br /&gt;
   ai2_allpassive 1&lt;br /&gt;
   ai2_spawn a_v3&lt;br /&gt;
   ai2_spawn Lv_40&lt;br /&gt;
   ai2_spawn lobby_victim05&lt;br /&gt;
   chr_location 1 -1255 -1.5 50&lt;br /&gt;
   chr_location 2 -1255 -1.5 60&lt;br /&gt;
   chr_location 3 -1255 -1.5 70&lt;br /&gt;
   chr_location 4 -1255 -1.5 80&lt;br /&gt;
   ai2_lookatme&lt;br /&gt;
 }&lt;br /&gt;
:This script lines up four &amp;quot;usual suspects&amp;quot; against a wall in the parking lot of the [[TCTF]] HQ. Load the level repeatedly and note how their heights vary. &lt;br /&gt;
&lt;br /&gt;
;TRSC bitset&lt;br /&gt;
:determines whether character is left-hander or right-hander (weapon is attached to left or right fist bone) Must be consistent with [[TRSC]] or glitches appear. Possibilities are:&lt;br /&gt;
:NONE - Character is right-hander with both pistols and rifles&lt;br /&gt;
:0x01 - Character is left-hander with both pistols and rifles&lt;br /&gt;
:0x02 - Character is left-hander with pistols but &amp;quot;right-hander&amp;quot; with rifles (however, animations for rifles are treated as left-handed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{OBD_File_Footer | type=ONCC | prev=OFGA | next=ONCP | name=Oni Character Class | family=Character}}&lt;br /&gt;
&lt;br /&gt;
{{OBD}}&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OBD:ONCC&amp;diff=22732</id>
		<title>OBD:ONCC</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OBD:ONCC&amp;diff=22732"/>
		<updated>2013-06-19T20:43:24Z</updated>

		<summary type="html">&lt;p&gt;Loser: Filling in another part of the recent reasearch. Will setup extra page about DamageTypes and link the multiplier section to it.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OBD_File_Header | type=ONCC | prev=OFGA | next=ONCP | name=Oni Character Class | family=Character | align=center}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_a.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x000 | res_id   |FF0000| 01 DF 03 00 | 991         | 00991-konoko_generic.ONCC }}&lt;br /&gt;
{{OBDtr| 0x004 | lev_id   |FFFF00| 01 00 00 06 | 0           | level 3 }}&lt;br /&gt;
{{OBDtr| 0x008 | float    |00FF00| CD CC 0C 3F | 0.550000    | downwards velocity? (unknown, always 0.55) }}&lt;br /&gt;
{{OBDtr| 0x00C | float    |00FF00| 8F C2 75 3D | 0.060000    | downward gravity acceleration }}&lt;br /&gt;
{{OBDtr| 0x010 | float    |00FF00| CD CC 8C 3F | 1.100000    | starting velocity for a simple (tap) JUMP }}&lt;br /&gt;
{{OBDtr| 0x014 | float    |00FF00| 00 00 80 C0 | -4.000000   | limit velocity for jumping and gravity flight }}&lt;br /&gt;
{{OBDtr| 0x018 | float    |00FF00| 8F C2 F5 3C | 0.030000    | upward acceleration (jetpack) if you hold JUMP }}&lt;br /&gt;
{{OBDtr| 0x01C | int16    |00FFFF| 07 00       | 7           | gravity timer? (unknown, always 7) }}&lt;br /&gt;
{{OBDtr| 0x01E | int16    |00FFFF| 14 00       | 20          | jetpack timer; time during which you can use the jetpack }}&lt;br /&gt;
{{OBDtr| 0x020 | float    |FF00FF| 00 00 34 42 | 45.000000   | maximal falling height without damage }}&lt;br /&gt;
{{OBDtr| 0x024 | float    |FF00FF| 00 00 07 43 | 135.000000  | maximal falling height with damage }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Units:times are in frames&lt;br /&gt;
:heights are in world units&lt;br /&gt;
:velocities are in world units per frames&lt;br /&gt;
:accelerations are in world units per frames squared&lt;br /&gt;
;Downwards velocity: could correspond to the steady push experienced when neither jumping nor falling&lt;br /&gt;
:would be roughly equivalent to the starting velocity of a fall&lt;br /&gt;
:although the value .55 seems right, the &amp;quot;sinking&amp;quot; seems to be hardcoded now&lt;br /&gt;
;Gravity timer:Seems to be hardcoded now (could be the time until gravity switches on)&lt;br /&gt;
;Jetpack timer:You can press JUMP multiple times during the time window (quite fun!)&lt;br /&gt;
;Falling height: let FH1 be the height at 0x20&lt;br /&gt;
:let FH2 be the height at 0x24&lt;br /&gt;
:let BH be the base health of the character&lt;br /&gt;
:let FH be the actual falling height&lt;br /&gt;
:then, if FH &amp;gt; FH2, the character is killed&lt;br /&gt;
:if FH &amp;lt; FH1, the character takes no damage&lt;br /&gt;
:if FH1 &amp;lt; FH &amp;lt; FH2, the character takes damage (FH - FH1) / (FH2 - FH1) * BH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x028 | link     |FF8000| 01 F8 03 00 | 1016        | link to 01016-shadow1.[[OBD:TXMP|TXMP]] }}&lt;br /&gt;
{{OBDtr| 0x02C | float    |FF8000| 00 00 40 41 | 12.000000   | height where the shadow fades out completely }}&lt;br /&gt;
{{OBDtr| 0x030 | float    |FF8000| 00 00 00 41 | 8.000000    | height where the diameter of the shadow decreases and the shadow fades out half }}&lt;br /&gt;
{{OBDtr| 0x034 | float    |FF8000| 00 00 C0 40 | 6.000000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x038 | float    |FF8000| 00 00 90 40 | 4.500000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x03C | float    |FF8000| 00 00 40 40 | 3.000000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x040 | int16    |FF8000| 30 00       | 48          | transparency of the shadow for the first part of a jump }}&lt;br /&gt;
{{OBDtr| 0x042 | int16    |FF8000| 30 00       | 48          | transparency of the shadow for the second part of a jump }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Jump Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x044 | float    |FF0080| 00 00 C8 41 | 25.000000   | jumpDistance? ; always the same }}&lt;br /&gt;
{{OBDtr| 0x048 | int8     |FFC8C8| 16          |  22         | jumpHeight? ; always the same }}&lt;br /&gt;
{{OBDtr| 0x049 | int8     |FFC8C8| 06          |  6          | jumpDistanceSquares?!?! ; always the same }}&lt;br /&gt;
{{OBDtr| 0x04A | char[2]  |FFC8C8| AD DE       | dead        | pad }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Cover Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x04C | float    |FFFFC8| 00 00 20 42 | 40.000000   | rayIncrement; always the same }}&lt;br /&gt;
{{OBDtr| 0x050 | float    |FFFFC8| 00 00 96 43 | 300.000000  | rayMax; always the same }}&lt;br /&gt;
{{OBDtr| 0x054 | float    |FFFFC8| 35 FA 8E 3C | 0.017453    | rayAngle; always the same (0.017453 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; PI/180) }}&lt;br /&gt;
{{OBDtr| 0x058 | float    |FFFFC8| DB 0F C9 3F | 1.570796    | rayAngleMax; always the same (1.57 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; PI/2) }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Autofreeze Constants (unused)&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDtr| 0x05C | float    |FFFFC8| 00 00 A0 40 | 5.000000    | distance_xz; always the same }}&lt;br /&gt;
{{OBDtr| 0x060 | float    |FFFFC8| 00 00 80 3F | 1.000000    | distance_y; always the same }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Inventory Constants (unused?)&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDtr| 0x064 | int16    |C8FFC8| 06 00       | 6           | (inverse) hypo regeneration rate in frames per hitpoint }}&lt;br /&gt;
{{OBDtr| 0x066 | char[2]  |C8FFC8| AD DE       | dead        | ignored }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;LOD Constants&lt;br /&gt;
Distances from Camera to render certain LODs&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x068 | float    |C8FFFF| 00 10 3D 48 |193600.000000| always the same; this is 440 squared }}&lt;br /&gt;
{{OBDtr| 0x06C | float    |C8FFFF| 00 10 3D 47 | 48400.000000| always the same; this is 220 squared }}&lt;br /&gt;
{{OBDtr| 0x070 | float    |C8FFFF| 00 10 3D 46 | 12100.000000| always the same; this is 110 squared }}&lt;br /&gt;
{{OBDtr| 0x074 | float    |C8FFFF| 00 00 00 00 | 0.000000    | always the same }}&lt;br /&gt;
{{OBDtr| 0x078 | float    |C8FFFF| 00 00 00 00 | 0.000000    | always the same }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Hurt Sound Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x07C | int16    |FFC8FF| 23 00       | 35          | hurt_base_percentage; always the same }}&lt;br /&gt;
{{OBDtr| 0x07E | int16    |FFC8FF| 5A 00       | 90          | hurt_max_percentage; always the same }}&lt;br /&gt;
{{OBDtr| 0x080 | int16    |FFC8FF| 0F 00       | 15          | hurt_percentage_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x082 | int16    |FFC8FF| 78 00       | 120         | hurt_timer; always the same }}&lt;br /&gt;
{{OBDtr| 0x084 | int16    |FFC8FF| 23 00       | 35          | hurt_min_timer; always the same }}&lt;br /&gt;
{{OBDtr| 0x086 | int16    |FFC8FF| 01 00       | 1           | hurt_max_light; always the same }}&lt;br /&gt;
{{OBDtr| 0x088 | int16    |FFC8FF| 02 00       | 2           | hurt_max_medium; always the same }}&lt;br /&gt;
{{OBDtr| 0x08A | int16    |FFC8FF| 64 00       | 100         | hurt_death_chance; always the same }}&lt;br /&gt;
{{OBDtr| 0x08C | int16    |FFC8FF| 0A 00       | 10          | hurt_volume_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x08E | int16    |FFC8FF| 0C 00       | 12          | hurt_medium_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x090 | int16    |FFC8FF| 16 00       | 22          | hurt_heavy_threshold; always the same }}&lt;br /&gt;
{{OBDtr| 0x092 | int8     |FFC800| 00          | 0           | runtime only: if 1 sound pointers have been set }}&lt;br /&gt;
{{OBDtr| 0x093 | char[1]  |C800C8| DE          | dead        | ignored }}&lt;br /&gt;
{{OBDtr| 0x094 | float    |C87C64| 00 00 00 3F | 0.500000    | sound volume }}&lt;br /&gt;
{{OBDtr2|0x098 | char[32] |B0C3D4| konoko_hurt_light         | hurt light sound (reference to 08121-konoko_hurt_light.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0B8 | char[32] |B0C3D4| konoko_hurt_medium        | hurt medium sound (reference to 08123-konoko_hurt_medium.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0D8 | char[32] |B0C3D4| konoko_hurt_heavy         | hurt heavy sound (reference to 08119-konoko_hurt_heavy.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0F8 | char[32] |B0C3D4| konoko_death              | death sound (reference to 08115-konoko_death.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr| 0x118 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt light sound }}&lt;br /&gt;
{{OBDtr| 0x11C | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt medium sound }}&lt;br /&gt;
{{OBDtr| 0x120 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt heavy sound }}&lt;br /&gt;
{{OBDtr| 0x124 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to death sound }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;AI Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x128 | bitsets  |E7CEA5| 17 00 00 00 | 23          | AI options bitset; see below }}&lt;br /&gt;
{{OBDtr| 0x12C | float    |FFDDDD| 00 00 80 3F | 1.000000    | AI rotation speed factor }}&lt;br /&gt;
{{OBDtr| 0x130 | int16    |64AAAA| 06 00       | 6           | minimal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned }}&lt;br /&gt;
{{OBDtr| 0x132 | int16    |64AAAA| 18 00       | 24          | maximal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned }}&lt;br /&gt;
{{OBDtr| 0x134 | uint32    |EBEBEB| 0F 00 00 00 | 15          | number of frames after which AI realizes that it is in the firing spread and it starts dodging }}&lt;br /&gt;
{{OBDtr| 0x138 | float    |8C8CCC| 00 00 80 3F | 1.000000    | minimal firingspread dodge amount; IMO similar to maneouvre variable, it tells AI how long it should perform dodging/hiding in response to some time spent inside firing spread (so setting this very high means that once enemy starts dodging/hiding, he will perform it even after firing spread disappears) }}&lt;br /&gt;
{{OBDtr| 0x13C | float    |8C8CCC| 00 00 80 3F | 1.000000    | maximal firingspread dodge amount; IMO similar to maneouvre variable }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;AI options bitset&lt;br /&gt;
:allows or disables some parts of the AI behavior&lt;br /&gt;
*NONE - startle anim is enabled, rest is disabled&lt;br /&gt;
*0x01 - startle anim disabled&lt;br /&gt;
*0x02 - firingspread/projectile dodge enabled for melee&lt;br /&gt;
*0x04 - requires 0x02; firingspread/projectile dodge enabled for weapons; AI tries to face shooter and shoot back while dodging&lt;br /&gt;
*0x08 - requires 0x02, overrides 0x04 if both are set; firingspread/projectile dodge enabled for weapons; AI isn&#039;t shooting, it just tends to run away, not facing shooter&lt;br /&gt;
*0x10 - bit not used&lt;br /&gt;
&lt;br /&gt;
;AI rotation speed factor&lt;br /&gt;
:reference rotation speed is about 1 turn (360&amp;amp;#65533;) per second&lt;br /&gt;
:the setting is only effective if the AI is in control&lt;br /&gt;
:so it&#039;s a bit like the AI&#039;s mouse sensitivity :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;AI Targeting Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x140 | float    |8C8CCC| 00 00 00 3F | 0.500000    | unknown; something with AI targeting prediction; always the same for TURR and ONCC  }}&lt;br /&gt;
{{OBDtr| 0x144 | float    |8C8CCC| 00 00 C8 41 | 25.000000   | unknown; something with AI targeting prediction; always the same for TURR and ONCC  }}&lt;br /&gt;
{{OBDtr| 0x148 | float    |8C8CCC| 00 00 80 3F | 1.000000    | unknown; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x14C | int32    |FF00C8| 00 00 00 00 | 0           | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x150 | int32    |FF00C8| 05 00 00 00 | 5           | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x154 | int32    |FF00C8| 0F 00 00 00 | 15          | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtr| 0x158 | int32    |FF00C8| 3C 00 00 00 | 60          | unknown frame count; something with AI targeting prediction; always the same for TURR }}&lt;br /&gt;
{{OBDtrBK|1=First of 13 shooting skills (grey outline) }}&lt;br /&gt;
{{OBDtr| 0x15C | float    |F0F096| 00 00 00 00 | 0.000000    | recoil compensation amount (0.0 &amp;lt;nowiki&amp;gt;= min, 1.0 =&amp;lt;/nowiki&amp;gt; max) }}&lt;br /&gt;
{{OBDtr| 0x160 | float    |F0F096| 00 00 00 00 | 0.000000    | best aiming angle in radians }}&lt;br /&gt;
{{OBDtr| 0x164 | float    |F0F096| 00 00 00 00 | 0.000000    | shot grouping error }}&lt;br /&gt;
{{OBDtr| 0x168 | float    |F0F096| 00 00 80 3F | 1.000000    | shot grouping decay }}&lt;br /&gt;
{{OBDtr| 0x16C | float    |F0F096| 00 00 80 3F | 1.000000    | shooting inaccuracy multiplier }}&lt;br /&gt;
{{OBDtr| 0x170 | uint16    |00C864| 00 00       | 0           | minimum delay between shots in frames }}&lt;br /&gt;
{{OBDtr| 0x172 | uint16    |00C864| 00 00       | 0           | maximum delay between shots in frames }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;AI Shooting Skills&lt;br /&gt;
These can be reviewed with e.g. &#039;&#039;&#039;ai2_skill_select konoko_generic w1_tap&#039;&#039;&#039; and then either &#039;&#039;&#039;ai2_skill_show&#039;&#039;&#039; (prints to console) or &#039;&#039;&#039;ai2_skill_save&#039;&#039;&#039; (prints to file)&lt;br /&gt;
The first weapon (weapon 0) is not in the game anymore, whatever that was. Muro&#039;s thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade&#039;s ball, except &#039;&#039;&#039;w10_sni&#039;&#039;&#039; is still available) (&#039;&#039;&#039;w12_ba2&#039;&#039;&#039; and &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; are a bit mixed up : the beam is made of &#039;&#039;&#039;w12_ba2&#039;&#039;&#039; particles, and the grenade is a &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; particle...)&lt;br /&gt;
&lt;br /&gt;
{{Table|width=&amp;quot;&amp;quot;|align=&amp;quot;left&amp;quot;}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot; ALIGN=CENTER&lt;br /&gt;
!Weapon       ||Offset     ||recoil||bestangle||error||decay||inaccuracy||delays&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w0_sec&#039;&#039;&#039; ||0x15C/0x173|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w1_tap&#039;&#039;&#039; ||0x174/0x18B|| 0.0  || 0.000000|| 0.40|| 0.4 || 0.0      || 30 - 45&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w2_sap&#039;&#039;&#039; ||0x18C/0x193|| 0.3  || 0.013962|| 0.13|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w3_phr&#039;&#039;&#039; ||0x194/0x20B|| 0.3  || 0.010472|| 0.05|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w4_psm&#039;&#039;&#039; ||0x20C/0x213|| 0.3  || 0.015707|| 0.03|| 0.2 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w5_sbg&#039;&#039;&#039; ||0x214/0x22B|| 0.3  || 0.001745|| 0.00|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w6_vdg&#039;&#039;&#039; ||0x22C/0x233|| 0.3  || 0.001745|| 0.13|| 0.9 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w7_scc&#039;&#039;&#039; ||0x234/0x24B|| 0.3  || 0.001745|| 0.05|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w8_mbo&#039;&#039;&#039; ||0x24C/0x253|| 0.3  || 0.005236|| 0.01|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w9_scr&#039;&#039;&#039; ||0x254/0x26B|| 0.3  || 0.010472|| 0.04|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w10_sni&#039;&#039;&#039;||0x26C/0x273|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w11_ba1&#039;&#039;&#039;||0x274/0x28B|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w12_ba2&#039;&#039;&#039;||0x28B/0x293|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_m.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x294 | int32    |00C8FF| 5A 00 00 00 | 90          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x298 | int32    |00C8FF| F0 00 00 00 | 240         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x29C | int32    |00C8FF| B4 00 00 00 | 180         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x2A0 | int32    |00C8FF| 28 00 00 00 | 40          | taunt chance (40%) }}&lt;br /&gt;
{{OBDtr| 0x2A4 | int32    |00C8FF| 37 00 00 00 | 55          | go for gun chance (55%); determines possibility that AI will run to some weapon and take it; can be checked in devmode by *debug_gun_behavior* command }}&lt;br /&gt;
{{OBDtr| 0x2A8 | int32    |00C8FF| 3C 00 00 00 | 60          | running pickup chance (60%); this value is possibility of AI running weapon pickup (acrobatics, slides) instead of normal &amp;quot;stop-&amp;gt;pickup&amp;quot;;this is calculated AFTER engine decides that AI should run for weapon }}&lt;br /&gt;
{{OBDtr| 0x2AC | int16    |C80040| 00 00       | 0           | combat profile ID; for example *0D* is for Mutant Muro }}&lt;br /&gt;
{{OBDtr| 0x2AE | int16    |C80040| 16 00       | 22          | melee profile ID }}&lt;br /&gt;
{{OBDtr| 0x2B0 | int8     |FFCD96| 64          | 100         | &amp;quot;taunt&amp;quot; sound probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B1 | int8     |FFCD96| 00          | 0           | &amp;quot;alert&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B2 | int8     |FFCD96| 00          | 0           | &amp;quot;startle&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B3 | int8     |FFCD96| 00          | 0           | &amp;quot;checkbody&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B4 | int8     |FFCD96| 00          | 0           | &amp;quot;pursue&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B5 | int8     |FFCD96| 00          | 0           | &amp;quot;cower&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B6 | int8     |FFCD96| 64          | 100         | &amp;quot;superpunch&amp;quot; probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B7 | int8     |FFCD96| 64          | 100         | &amp;quot;superkick&amp;quot; probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B8 | int8     |FFCD96| 00          | 0           | &amp;quot;super3&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B9 | int8     |FFCD96| 00          | 0           | &amp;quot;super4&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2BA | int16    |C8C864| 00 00       | 0           | probably a blank filler (always the same) }}&lt;br /&gt;
{{OBDtr2|0x2BC | char[32] |0096C8| c17_99_28konoko           | &amp;quot;taunt&amp;quot; sound (reference to 08108-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x2DC | char[32] |0096C8| unused                    | &amp;quot;alert&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x2FC | char[32] |0096C8| unused                    | &amp;quot;startle&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x31C | char[32] |0096C8| unused                    | &amp;quot;checkbody&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x33C | char[32] |0096C8| unused                    | &amp;quot;pursue&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x35C | char[32] |0096C8| unused                    | &amp;quot;cower&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x37C | char[32] |0096C8| c18_79_14konoko           | &amp;quot;superpunch&amp;quot; sound (reference to 08110-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x39C | char[32] |0096C8| c18_79_15konoko           | &amp;quot;superkick&amp;quot; sound (reference to 08112-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x3BC | char[32] |0096C8| unused                    | &amp;quot;super3&amp;quot; sound (only the superninja uses this slot) }}&lt;br /&gt;
{{OBDtr2|0x3DC | char[32] |0096C8| unused                    | &amp;quot;super4&amp;quot; sound (never used in Oni) }}&lt;br /&gt;
{{OBDtrBK| the following 7 vision fields are used to detect if a character can be seen by AI; see Vision Field below for explanation }}&lt;br /&gt;
{{OBDtr| 0x3FC | float    |FF80C0| 00 80 ED 43 | 475.000000  | central vision distance }}&lt;br /&gt;
{{OBDtr| 0x400 | float    |FF80C0| 00 00 16 43 | 150.000000  | peripheral vision distance }}&lt;br /&gt;
{{OBDtr| 0x404 | float    |FF80C0| 7D 1B 44 3F | 0.766044    | vertical vision range }}&lt;br /&gt;
{{OBDtr| 0x408 | float    |FF80C0| F3 B3 51 3F | 0.819152    | central vision range }}&lt;br /&gt;
{{OBDtr| 0x40C | float    |FF80C0| E8 D5 12 3F | 0.573576    | central vision max }}&lt;br /&gt;
{{OBDtr| 0x410 | float    |FF80C0| D5 D0 31 3E | 0.173648    | peripheral vision range }}&lt;br /&gt;
{{OBDtr| 0x414 | float    |FF80C0| 6B 61 D8 BE | 0.422618    | peripheral vision max }}&lt;br /&gt;
{{OBDtr| 0x418 | int32    |D0C0AF| B4 00 00 00 | 180         | hostilethreat definite timer; how long will AI know exactly where its enemy is even if it can&#039;t see him with central vision-field; AI attacks him; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware) }}&lt;br /&gt;
{{OBDtr| 0x41C | int32    |D0C0AF| 84 03 00 00 | 900         | hostilethreat strong timer; how long will AI remain in strong feeling that there is the enemy, but will not attack him but investigate; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x420 | int32    |D0C0AF| 10 0E 00 00 | 3600        | hostilethreat weak timer; how long will AI remain in weak feeling of an enemy, just looking around aimlessly (Glance pursue mode); can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x424 | int32    |D0C0AF| 10 0E 00 00 | 3600        | friendlythreat definite timer; how long will AI know exactly where its ally (Syndicate saw Syndicate for example) is even if it can&#039;t see him with central vision-field; AI simply knows there is someone else nearby; maybe has further possibilities; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware) }}&lt;br /&gt;
{{OBDtr| 0x428 | int32    |D0C0AF| 50 46 00 00 | 18000       | friendlythreat strong timer; how long will AI remain in strong feeling that there is someone else, but will not try to find him or look at him; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x42C | int32    |D0C0AF| A0 8C 00 00 | 36000       | friendlythreat weak timer; how long will AI remain in weak feeling of ally, doing its usual job; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x430 | float    |EEDDFF| 00 00 80 3F | 1.000000    | earshot radius; defines size of the sound-collision sphere around AI }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;Vision Field&lt;br /&gt;
The &amp;quot;range&amp;quot; and &amp;quot;max&amp;quot; values are logically angles but the cosine of the angle is stored instead for performace reasons. We have the following angles (in degrees):&lt;br /&gt;
:vertical range - 40&lt;br /&gt;
:horizontal central range - 35&lt;br /&gt;
:horizontal central max - 55&lt;br /&gt;
:horizontal peripheral range - 80&lt;br /&gt;
:horizontal peripheral max - 115&lt;br /&gt;
Within &amp;quot;range&amp;quot; the &amp;quot;distance&amp;quot; field is used to compute visibility (character is visible if the distance between AI and character is &amp;lt; &amp;quot;distance&amp;quot; field). Between &amp;quot;range&amp;quot; and &amp;quot;max&amp;quot; the visibility distance decreases gradually towards 0.&lt;br /&gt;
The vision field can be made visible with the script command *ai2_showvision &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;1* but it should be noted that the rendering might not be accurate. In particular the peripheral vision field it&#039;s missing the central segment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Character Constants&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x434 | link     |C5FF8A| 01 FB 03 00 | 1019        | link to 01019-konoko.[[OBD:ONCV|ONCV]]; defines variants and upgrades }}&lt;br /&gt;
{{OBDtr| 0x438 | link     |C5FF8A| 01 F9 03 00 | 1017        | link to [[OBD:ONCP|01017-.ONCP]]; lists the particles available for this character (trails, flashes, etc) }}&lt;br /&gt;
{{OBDtr| 0x43C | link     |C5FF8A| 01 FA 03 00 | 1018        | link to [[OBD:ONIA|01018-.ONIA]]; lists the special impact sounds (used for special combat moves) }}&lt;br /&gt;
{{OBDtr| 0x440 | int8     |C5FF8A| 00          | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0x441 | int8     |C5FF8A| 00          | unused      | padding }}&lt;br /&gt;
{{OBDtr| 0x442 | int16    |C5FF8A| 00 00       | unused      | runtime only }}&lt;br /&gt;
{{OBDtr2|0x444 | char[16] |C0C0C0| Light                     | modifier; either hardcoded or defunct (only visible in pm_mod_type.WMM_, level 0)&lt;br /&gt;
edit: WMDD says: Effects found for Impact x on Material y with Modifier: pm_mod_types }}&lt;br /&gt;
{{OBDtrBK|1=First of 15 impact elements. }}&lt;br /&gt;
{{OBDtr2|0x454 | char[128] |FF0080| Footstep_Walk             | walk impact (reference to 04124-Footstep_Walk.[[OBD:Impt|Impt]] of level 0); always the same; without the impacts you can&#039;t hear the steps of a character }}&lt;br /&gt;
{{OBDtr| 0x4D4 | int16    |FF0080| FF FF | -1 | set at runtime to the value stored at 0x08 in [[OBD:Impt|Impt]] }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_e.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0xBF2 | int16    |FFFFA6| 00 00       | 0           | unknown; always the same; maybe only a filler }} &lt;br /&gt;
{{OBDtr2|0xBF4 | char[64] |71FFB8| unused                    | special death particle; only the mad bomber use it }} &lt;br /&gt;
{{OBDtr| 0xC34 | link     |0000BF| 00 00 00 00 | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0xC38 | link     |0000BF| 00 00 00 00 | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0xC3C | link     |0000BF| 01 E6 03 00 | 998         | link to [[OBD:TRBS|00998-konoko_body_high.TRBS]] }}&lt;br /&gt;
{{OBDtr| 0xC40 | link     |0000BF| 01 E7 03 00 | 999         | link to [[OBD:TRMA|00999-konoko002_high_texture_generic.TRMA]] }}&lt;br /&gt;
{{OBDtr| 0xC44 | link     |0000BF| 01 E8 03 00 | 1000        | link to [[OBD:CBPM|01000-.CBPM]] }}&lt;br /&gt;
{{OBDtr| 0xC48 | link     |0000BF| 01 EC 03 00 | 1004        | link to [[OBD:CBPI|01004-.CBPI]] }}&lt;br /&gt;
{{OBDtr| 0xC4C | int32    |804040| 2C 01 00 00 | 300         | fight mode timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC50 | int32    |804040| 30 75 00 00 | 30000       | first idle animation timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC54 | int32    |804040| 30 75 00 00 | 30000       | second idle animation timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC58 | int32    |804040| C8 00 00 00 | 200         | basic health of the character model; extra health information for every unique character are stored in the [[OBD:BINA/OBJC/CHAR|Character.BINA]] file}} &lt;br /&gt;
{{OBDtr| 0xC5C | int32    |804040| 48 00 00 00 | 72          | feetBits (these bits mark the characters feet)&lt;br /&gt;
 }} &lt;br /&gt;
{{OBDtr| 0xC60 | float    |FF22FF| 00 00 80 3F | 1.000000    | minimal body size factor }} &lt;br /&gt;
{{OBDtr| 0xC64 | float    |FF22FF| 00 00 80 3F | 1.000000    | maximal body size factor }} &lt;br /&gt;
{{OBDtrBK| The following 7 float values are ONCC specific multipliers for 7 PAR3 DamageTypes (see the [[OBD:BINA/PAR3|PAR3]] page for DamageTypes).&lt;br /&gt;
These values multiply StunDamage and Knockback of respective DamageTypes. Dealt Damage is not affected by these. }}&lt;br /&gt;
{{OBDtr| 0xC68 | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;Normal&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC6C | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;MinorStun&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC70 | float    |FF22FF| 00 00 00 3F | 0.500000    | &amp;quot;MajorStun&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC74 | float    |FF22FF| 00 00 80 3E | 0.250000    | &amp;quot;MinorKnockdown&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC78 | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;MajorKnockdown&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC7C | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;Blownup&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC80 | float    |FF22FF| 00 00 00 00 | 0.000000    | &amp;quot;Pickup&amp;quot; DamageType multiplier }} &lt;br /&gt;
{{OBDtr| 0xC84 | float    |FF22FF| 00 00 00 3F | 0.500000    | Boss Shield multiplier, employed when the character has a boss shield,&amp;lt;BR&amp;gt;for example via BSL command chr_boss_shield(ai_name).&lt;br /&gt;
Incoming Damage, StunDamage and Knockback from any DamageType is then multiplied by this value. }}&lt;br /&gt;
{{OBDtr| 0xC88 | link     |808080| 01 F6 03 00 | 1014        | link to 01014-konoko_animations.[[OBD:TRAC|TRAC]] }} &lt;br /&gt;
{{OBDtr| 0xC8C | link     |808080| 01 F6 03 00 | 1015        | link to 01015-konoko_screens.[[OBD:TRSC|TRSC]] }} &lt;br /&gt;
{{OBDtr| 0xC90 | int16    |FFAA82| 1E 00       | 30          | AI Rate of Fire (testme) }} &lt;br /&gt;
{{OBDtr| 0xC92 | int16    |FFAA82| 00 00       | 0           | time between death and deletion, in frames (about 3 seconds for mad bomber) }} &lt;br /&gt;
{{OBDtr| 0xC94 | bitset   |00D900| 00          | 0           | TRSC bitset; see below }} &lt;br /&gt;
{{OBDtr| 0xC95 | int8     |00D900| 01          | 1           | when set to 1 indicates that character has daodan powers (character does more damage in overpower mode)}} &lt;br /&gt;
{{OBDtr| 0xC96 | int8     |00D900| 00          | 0           | when set to 1 indicates that character has supershield&lt;br /&gt;
* is visible as red shield when overpowered&lt;br /&gt;
* needs daodan flag above and 51% overpower to be enabled; chenille cheat works too&lt;br /&gt;
* now it prevents damage from weapon fire and melee (exception are throws)&lt;br /&gt;
* received (melee) hits cause not blue block flashes but orange flares (see [http://paradox.oni2.net/Bilder/blocked_attacks_on_51percent_overpower_plus_daodan-flag_plus_supershield.png HERE])&lt;br /&gt;
 }} &lt;br /&gt;
{{OBDtr| 0xC97 | int8     |00D900| 00          | 0           | when set to 1, generically turns on &#039;&#039;&#039;canttouchthis&#039;&#039;&#039; cheat for this ONCC (used by MutantMuro.ONCC }} &lt;br /&gt;
{{OBDtr| 0xC98 | char[8]  |CACAFF| AD DE       | dead        | unused }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|[[File:ONCC_body_size_factor-original.jpg|120px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:ONCC_body_size_factor-spawn_order_change.jpg|120px]]&lt;br /&gt;
|}&lt;br /&gt;
;Body size factor&lt;br /&gt;
:The geometry specified in a character&#039;s [[TRBS]] (Totoro body set) can be multiplied by a scale factor. For example, the &#039;&#039;&#039;minime&#039;&#039;&#039; and &#039;&#039;&#039;behemoth&#039;&#039;&#039; [[cheats]] set that factor to 0.25 or 1.8, and back to 1. The size can be used for specific purposes (mini-Strikers, Mutant Muro, giant Shinatama), or it can be used to add generic variety to Oni&#039;s characters, as a complement to &amp;quot;character variants&amp;quot; ([[ONCV]]).&lt;br /&gt;
:The floats at 0xC60 and 0xC64 define a range in which Oni can pick a random body size factor (if the two values are identical, then the body size factor is effectively fixed instead of random). [[Konoko]], [[Shinatama]] (both regular and zombified), [[Griffin]] (both variants) and [[Muro]] all have a fixed body size of 1. Mini-Strikers have 0.5 and giant Shinatama has 7 (yes, [[seven]]).&lt;br /&gt;
:Everybody else (including [[Barabas]], [[Mukade]] and [[Kerr]]) has a random body size within 5% of 1 (i.e., the floats at 0xC60 and 0xC64 are 0.95 and 1.05). Mutant Muro is a bit odd because his &amp;quot;minimum&amp;quot; body size 1.75 and the &amp;quot;maximum&amp;quot; is 1.74 (the difference is barely noticeable anyway). In the [[Anniversary Edition]], some characters have altered factors (e.g., [[Shinatama Too]]).&lt;br /&gt;
:The random value is different every time the [[ONCC]] is looked up (e.g., when a character is spawned or shapeshifted) and is not reproducible. Here is a simple script for {{C|6}} a.k.a. [[IGMD/tctf]] (remove all [[BSL]] files and leave only the one below):&lt;br /&gt;
 func main {&lt;br /&gt;
   ai2_allpassive 1&lt;br /&gt;
   ai2_spawn a_v3&lt;br /&gt;
   ai2_spawn Lv_40&lt;br /&gt;
   ai2_spawn lobby_victim05&lt;br /&gt;
   chr_location 1 -1255 -1.5 50&lt;br /&gt;
   chr_location 2 -1255 -1.5 60&lt;br /&gt;
   chr_location 3 -1255 -1.5 70&lt;br /&gt;
   chr_location 4 -1255 -1.5 80&lt;br /&gt;
   ai2_lookatme&lt;br /&gt;
 }&lt;br /&gt;
:This script lines up four &amp;quot;usual suspects&amp;quot; against a wall in the parking lot of the [[TCTF]] HQ. Load the level repeatedly and note how their heights vary. &lt;br /&gt;
&lt;br /&gt;
;TRSC bitset&lt;br /&gt;
:determines whether character is left-hander or right-hander (weapon is attached to left or right fist bone) Must be consistent with [[TRSC]] or glitches appear. Possibilities are:&lt;br /&gt;
:NONE - Character is right-hander with both pistols and rifles&lt;br /&gt;
:0x01 - Character is left-hander with both pistols and rifles&lt;br /&gt;
:0x02 - Character is left-hander with pistols but &amp;quot;right-hander&amp;quot; with rifles (however, animations for rifles are treated as left-handed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{OBD_File_Footer | type=ONCC | prev=OFGA | next=ONCP | name=Oni Character Class | family=Character}}&lt;br /&gt;
&lt;br /&gt;
{{OBD}}&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:BINA/PAR3&amp;diff=22731</id>
		<title>XML:BINA/PAR3</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:BINA/PAR3&amp;diff=22731"/>
		<updated>2013-06-19T06:09:00Z</updated>

		<summary type="html">&lt;p&gt;Loser: Added some research about DamageChar and DamageBlast. There is more to come, but first a job, then some  leisure ^_^&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_BINA_Header|prev=ONIE|type=PAR3|next=SABD|name=Particle v3}}&lt;br /&gt;
&lt;br /&gt;
==file structure== &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni&amp;gt;&lt;br /&gt;
    &amp;lt;Particle Name=&amp;quot;&#039;&#039;particle_file_name&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Options&amp;gt;&lt;br /&gt;
            &amp;lt;Lifetime&amp;gt;&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
            &amp;lt;DisableDetailLevel&amp;gt;[... see &#039;&#039;&#039;[[#options|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/DisableDetailLevel&amp;gt;&lt;br /&gt;
            &amp;lt;Decorative&amp;gt;&amp;lt;/Decorative&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Options&amp;gt;&lt;br /&gt;
        &amp;lt;Properties&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Properties&amp;gt;&lt;br /&gt;
        &amp;lt;Appearance&amp;gt;&lt;br /&gt;
            &amp;lt;DisplayType&amp;gt;[... see &#039;&#039;&#039;[[#appearance|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/DisplayType&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Appearance&amp;gt;&lt;br /&gt;
        &amp;lt;Attractor&amp;gt;&lt;br /&gt;
            &amp;lt;Target&amp;gt;[... see &#039;&#039;&#039;[[#attractor|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/Target&amp;gt;&lt;br /&gt;
            &amp;lt;Selector&amp;gt;[... see &#039;&#039;&#039;[[#attractor|HERE]]&#039;&#039;&#039; for a possible flag]&amp;lt;/Selector&amp;gt;&lt;br /&gt;
            &amp;lt;Class /&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Attractor&amp;gt;&lt;br /&gt;
        &#039;&#039;&#039;[[#variable storage types|&amp;lt;Variables&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
            [...]&lt;br /&gt;
        &amp;lt;/Variables&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters&amp;gt;&lt;br /&gt;
            &amp;lt;Emitter&amp;gt;&lt;br /&gt;
                [... see &#039;&#039;&#039;[[#emitter|HERE]]&#039;&#039;&#039; for emitter data]&lt;br /&gt;
            &amp;lt;/Emitter&amp;gt;&lt;br /&gt;
        &amp;lt;/Emitters&amp;gt;&lt;br /&gt;
        &amp;lt;Events&amp;gt;&lt;br /&gt;
            [... see &#039;&#039;&#039;[[#event types|HERE]]&#039;&#039;&#039; for &#039;&#039;&#039;&#039;&#039;&amp;lt;event_type_tag&amp;gt;&#039;&#039;&#039;&#039;&#039;]&lt;br /&gt;
 		[... see &#039;&#039;&#039;[[#action types and parameters|HERE]]&#039;&#039;&#039; for &#039;&#039;&#039;&amp;lt;action_type_tag&amp;gt;&#039;&#039;&#039;]&lt;br /&gt;
                    [... see &#039;&#039;&#039;[[#action types and parameters|HERE]]&#039;&#039;&#039; for &#039;&#039;&#039;&#039;&#039;&amp;lt;parameter_tag&amp;gt;[[#parameter value types|value]]&amp;lt;/parameter_tag&amp;gt;&#039;&#039;&#039;&#039;&#039;]&lt;br /&gt;
 		&#039;&#039;&amp;lt;action_type_tag&amp;gt;&#039;&#039;&lt;br /&gt;
            &#039;&#039;&amp;lt;/event_type_tag&amp;gt;&#039;&#039;&lt;br /&gt;
        &amp;lt;/Events&amp;gt;&lt;br /&gt;
    &amp;lt;/Particle&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==options==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Lifetime&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Particle exist for X seconds.&lt;br /&gt;
: X is float value, so you could write 1.5 if 1 second is too less and 2 too many.&lt;br /&gt;
: 0 means an infinite lifetime.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DisableDetailLevel&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Particle is not created if detail level is too low.&lt;br /&gt;
: Never&lt;br /&gt;
: Medium&lt;br /&gt;
: Low&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Decorative&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Might not always be updated by the engine.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;CollideWithWalls&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle uses the HitWall event type.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;CollideWithChars&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle uses the HitCharacter event type.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;InitiallyHidden&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Hides the particle on creation.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DrawAsSky&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Draws the particle before everything else, supposedly.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DontAttractThroughWalls&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Particle will not detect attractors if there is a wall between it and the potential attractor.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;ExpireOnCutscene&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Ends the lifetime of a particle on cutscene start.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DieOnCutscene&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Kills the particle on cutscene start.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LockPositionToLink&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|Locks the position of the particle to its link.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CollisionRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Distance from which HitWall and HitCharacter events are activated.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AIDodgeRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Distance from which AI will avoid this particle.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AIAlertRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Distance from which AI will be aware of the danger of the particle.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FlyBySoundName /&amp;gt; &lt;br /&gt;
|valign=top| link&lt;br /&gt;
| Sound used when the particle passes by you. Check: does the engine apply the Doppler effect or is it in the sound file itself?&lt;br /&gt;
: &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==properties==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasVelocity&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle is to move.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasOrientation&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Needed if the particle is to be able to turn around?&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasPositionOffset&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used with LockPositionToLink???&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasAttachmentMatrix&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used if the particle is to be stuck to a character or wall.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasUnknown&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| ???&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasDecalState&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used if the particle is a Decal.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasTextureStartTick&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used with animated particles. (Documentation Needed).&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasTextureTick&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Used with animated particles. (Documentation Needed).&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;HasDamageOwner&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|Used for particles to either:&lt;br /&gt;
: A. Not damage a character&lt;br /&gt;
: B. Credit a character with damage\kills&lt;br /&gt;
For this to work properly, the parent of the character must have this set, and the parent of said parent, etc, up to the original particle.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==appearance==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DisplayType&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| How the particle is displayed. (Please Document)&lt;br /&gt;
: Sprite&lt;br /&gt;
: RotatedSprite&lt;br /&gt;
: Beam - bullet textures and such&lt;br /&gt;
: Arrow&lt;br /&gt;
: Flat&lt;br /&gt;
: OrientedContrail&lt;br /&gt;
: Discuss&lt;br /&gt;
: Decal - sticks to a wall&lt;br /&gt;
: Geometry - uses an M3GM&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;TexGeom&amp;gt;&lt;br /&gt;
|valign=top| link&lt;br /&gt;
|The texture or model that this particle uses.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;TXMP&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt; / &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;M3GM&amp;lt;/font&amp;gt;file&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Invisible&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Can&#039;t be seen.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;IsContrailEmitter&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Emits a contrail.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;ScaleToVelocity&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Scales the particle based on the speed it is going.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Scale&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|The size of the particle.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;UseSeparateYScale&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Stretches the particle along the Y axis if set.&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;YScale&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Needs &amp;lt;UseSeparateYScale&amp;gt;true&amp;lt;/UseSeparateYScale&amp;gt; to be enabled.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Rotation&amp;gt;&lt;br /&gt;
|valign=top| ?&lt;br /&gt;
| The rotation of the particle.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Alpha&amp;gt;&lt;br /&gt;
|valign=top| float / integer&lt;br /&gt;
| Transparency (0 = fully invisible, 1 or 255 = fully visible)&lt;br /&gt;
: float: 0.0 - 1.0 &lt;br /&gt;
: integer: 0 - 255&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;XOffset&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;XShorten&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;UseSpecialTint&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| Research note: &amp;quot;true&amp;quot; can be found in BINA3RAPbarab_p02.xml&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Tint&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| Color. R G B A means Red Green Blue Alpha.&lt;br /&gt;
: R G B&lt;br /&gt;
: R G B A&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;FadeOutOnEdge&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;OneSidedEdgeFade&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;EdgeFadeMin&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;EdgeFadeMax&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;MaxContrailDistance&amp;gt;&lt;br /&gt;
|valign=top| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlare&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlareDistance&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlareFadeInFrames&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LensFlareFadeOutFrames&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DecalFullBrightness&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: true&lt;br /&gt;
: false&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;MaxDecals&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| Seems to be a bit broken (someone please test this again).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DecalFadeFrames&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| The number of frames it takes for a decal particle to fade after it reaches the maximum number of decals.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;DecalWrapAngle&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Degrees. Decal isn&#039;t cut off when the next plane piece has an angle difference equal or less to this value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==attractor==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Target&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: None&lt;br /&gt;
: Link&lt;br /&gt;
: Class&lt;br /&gt;
: Tag&lt;br /&gt;
: Characters&lt;br /&gt;
: Hostiles&lt;br /&gt;
: EmittedTowards&lt;br /&gt;
: ParentAttractor&lt;br /&gt;
: AllCharacters&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Selector&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: Distance&lt;br /&gt;
: Angle&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Class /&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Name of a paritcle that this particle is attracted to.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;MaxDistance&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
| Maximum distance the particle will detect an attractor from (if using Distance selection).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;MaxAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Maximum angle the particle will detect an attractor from (if using Angle selection).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;AngleSelectMin&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;AngleSelectMax&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;AngleSelectWeight&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==variable storage types==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!XML tag&lt;br /&gt;
!description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&#039;&#039;float_value&#039;&#039;&amp;lt;/Float&amp;gt;&lt;br /&gt;
|A Float.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&#039;&#039;R G B [A]&#039;&#039;&amp;lt;/Color&amp;gt;&lt;br /&gt;
|A color.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;PingPongState Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&#039;&#039;?&#039;&#039;&amp;lt;/PingPongState&amp;gt;&lt;br /&gt;
|A float from 0.0-1.0, describes where in the ping pong state the event is. (If my memory is correct)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==parameter value types==&lt;br /&gt;
Grey is additional for variable section.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
0 - variable; variable name follows&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;variable&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1 - none (action parameters use this to indicate an unused parameter)&lt;br /&gt;
|&lt;br /&gt;
?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
3 - float; constant; 1 float value follows&lt;br /&gt;
&lt;br /&gt;
4 - float; random; 2 float values follow (min, max)&lt;br /&gt;
&lt;br /&gt;
5 - float; bell curve; 2 float values follow (mean, stddev)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;float_value&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;Random Min=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; Max=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Float Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;BellCurve [[wikipedia:Expected_value|Mean]]=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; [[wikipedia:Standard_deviation|StdDev]]=&amp;quot;&#039;&#039;float_value&#039;&#039;&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Float&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
6 - instance; instance name follows&lt;br /&gt;
|&lt;br /&gt;
?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
7 - color; constant; 1 color follows&lt;br /&gt;
&lt;br /&gt;
8 - color; random; 2 color follow (min, max)&lt;br /&gt;
&lt;br /&gt;
9 - color; bell curve; 2 color follow (mean, stddev)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;R G B&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Color&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;Random Min=&amp;quot;&#039;&#039;R G B&#039;&#039;&amp;quot; Max=&amp;quot;&#039;&#039;R G B&#039;&#039;&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Color&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Color Name=&amp;quot;&#039;&#039;variable&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;BellCurve Mean=&amp;quot;? ? ? ?&amp;quot; StdDev=&amp;quot;? ? ? ?&amp;quot; /&amp;gt;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Color&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
0A - int32; constant; int32 follows&lt;br /&gt;
|&lt;br /&gt;
?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
0B - time cycle; 2 float values follow (cycle length, scale)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;TimeCycle Length=&amp;quot;...&amp;quot; Scale=&amp;quot;...&amp;quot; /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==emitter==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=200px| XML tag&lt;br /&gt;
!width=100px| content type&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Class&amp;gt;&lt;br /&gt;
|valign=top| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;BINA3RAP&amp;lt;/font&amp;gt;&#039;&#039;file_name&#039;&#039;&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;.oni&amp;lt;/font&amp;gt; (without file prefix and suffix)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: InitiallyOn&lt;br /&gt;
: IncreaseParticleCount&lt;br /&gt;
: TurnOffAtTreshold&lt;br /&gt;
: EmitWithParentVelocity&lt;br /&gt;
: Unknown0020&lt;br /&gt;
: OrientToVelocity&lt;br /&gt;
: InheritTint&lt;br /&gt;
: OnePerAttractor&lt;br /&gt;
: AtLeastOne&lt;br /&gt;
: CycleAttractors&lt;br /&gt;
&lt;br /&gt;
recherche notes - files with Unknown0020 flag:&lt;br /&gt;
&lt;br /&gt;
BINA3RAPw8_mbo_p07, BINA3RAPw8_mbo_e03, BINA3RAPw12_ba2_e03, BINA3RAPw10_sni_p01, BINA3RAPpstream_flicker, BINA3RAPheadlight02, BINA3RAPheadlightStart, BINA3RAPheadlight01&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;TurnOffTreshold&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| Tag contains the number (threshold) of particle which must be reached before emitter becomes turned off. Threshold needs two flags to be set: IncreaseParticleCount and TurnOffAtTreshold.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Probability&amp;gt;&lt;br /&gt;
|valign=top| float&lt;br /&gt;
|&lt;br /&gt;
Let&#039;s say threshold was set to 10 and probability to 0.5 then you might get 5 particle emitted, sometimes less, sometime more, it&#039;s an average. (threshold * probability = emitted particle) &lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Copies&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| It&#039;s actually a multiplier, set it to 0 and no particle will be emitted. Copies doesn&#039;t effects the treshold counting. The copies become emitted at the same place as the original particle so you might not see any difference (because they overlay each other) until they have a random movement.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;LinkTo&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: this&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
: 5&lt;br /&gt;
: 6&lt;br /&gt;
: 7&lt;br /&gt;
: link&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Rate&amp;gt;&lt;br /&gt;
|valign=top| -&lt;br /&gt;
| Interval in seconds.&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Continous&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Interval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Random&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;MinInterval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;MaxInterval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Instant /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Distance&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Distance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Attractor&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;RechargeTime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;CheckInterval&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Position&amp;gt;&lt;br /&gt;
|valign=top| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Point /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Line&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Circle&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;InnerRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OuterRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Sphere&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;InnerRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OuterRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Cylinder&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Height&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;InnerRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OuterRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;BodySurface&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OffsetRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;BodyBones&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;OffsetRadius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Direction&amp;gt;&lt;br /&gt;
|valign=top|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Straight /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Random /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Cone&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;CenterBias&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Ring&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Offset&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Offset&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;X&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Y&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Z&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Inaccurate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;BaseAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Inaccuracy&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;CenterBias&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Attractor /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCCC&amp;quot;&lt;br /&gt;
|valign=top| &amp;lt;Speed&amp;gt;&lt;br /&gt;
|valign=top| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Uniform&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#AAAAFF&amp;quot;&lt;br /&gt;
| &amp;lt;Stratified&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Speed1&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#CCCCFF&amp;quot;&lt;br /&gt;
| &amp;lt;Speed2&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Orientation&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
|&lt;br /&gt;
: LocalPosX&lt;br /&gt;
: LocalNegX&lt;br /&gt;
: LocalPosY&lt;br /&gt;
: LocalNegY&lt;br /&gt;
: LocalPosZ&lt;br /&gt;
: LocalNegZ&lt;br /&gt;
: WorldPosX&lt;br /&gt;
: WorldNegX&lt;br /&gt;
: WorldPosY&lt;br /&gt;
: WorldNegY&lt;br /&gt;
: WorldPosZ&lt;br /&gt;
: WorldNegZ&lt;br /&gt;
: Velocity&lt;br /&gt;
: ReverseVelocity&lt;br /&gt;
: TowardsEmitter&lt;br /&gt;
: AwayFromEmitter&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;OrientationUp&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| same flags as &amp;lt;OrientationUp&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==event types==&lt;br /&gt;
: Update&lt;br /&gt;
: Pulse&lt;br /&gt;
: Start&lt;br /&gt;
: Stop&lt;br /&gt;
: BackgroundFxStart&lt;br /&gt;
: BackgroundFxStop&lt;br /&gt;
: HitWall&lt;br /&gt;
: HitCharacter&lt;br /&gt;
: Lifetime&lt;br /&gt;
: Explode&lt;br /&gt;
: BrokenLink&lt;br /&gt;
: Create&lt;br /&gt;
: Die&lt;br /&gt;
: NewAttractor&lt;br /&gt;
: DelayStart&lt;br /&gt;
: DelayStop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=50%|&lt;br /&gt;
&#039;&#039;&#039;schemata 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
                &amp;lt;&#039;&#039;action_tag_&#039;&#039;&#039;without_parameter&#039;&#039;&#039;&#039;&#039; /&amp;gt;&lt;br /&gt;
            &amp;lt;/&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
|width=50%|&lt;br /&gt;
&#039;&#039;&#039;example 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;Die /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&lt;br /&gt;
&#039;&#039;&#039;schemata 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
                &amp;lt;&#039;&#039;action_tag_&#039;&#039;&#039;with_parameter&#039;&#039;&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
                    &amp;lt;&#039;&#039;parameter_tag&#039;&#039;&amp;gt;&#039;&#039;value_or_variable&#039;&#039;&amp;lt;/parameter_tag&amp;gt;&lt;br /&gt;
                &amp;lt;/&#039;&#039;action_tag_&#039;&#039;&#039;with_parameter&#039;&#039;&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
            &amp;lt;/&#039;&#039;Event&#039;&#039;&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;example 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;Update&amp;gt;&lt;br /&gt;
                &amp;lt;SuperParticle&amp;gt;&lt;br /&gt;
                    &amp;lt;Variable&amp;gt;emit_rate&amp;lt;/Variable&amp;gt;&lt;br /&gt;
                    &amp;lt;VaseValue&amp;gt;0.25&amp;lt;/VaseValue&amp;gt;&lt;br /&gt;
                    &amp;lt;DeltaValue&amp;gt;-0.1&amp;lt;/DeltaValue&amp;gt;&lt;br /&gt;
                    &amp;lt;MinValue&amp;gt;0.1&amp;lt;/MinValue&amp;gt;&lt;br /&gt;
                    &amp;lt;MaxValue&amp;gt;20&amp;lt;/MaxValue&amp;gt;&lt;br /&gt;
                &amp;lt;/SuperParticle&amp;gt;&lt;br /&gt;
            &amp;lt;/Update&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==action types and parameters==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| A dark gray background marks the start of an action type.&lt;br /&gt;
|-&lt;br /&gt;
| Normal gray background is used for child tags.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!width=160px| XML tag&lt;br /&gt;
!width=120px| content type&lt;br /&gt;
! description&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateLinear&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateAccelerated&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Velocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Acceleration&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateRandom&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimatePingPong&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;State&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateLoop&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AnimateToValue&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Value&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ColorInterpolate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Color0&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Color1&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Amount&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;FadeOut&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TimeToDie&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| particle becomes killed after X seconds, it fades out during that time&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableAtTime&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| has action X as target in Update event section&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Lifetime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DisableAtTime&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| has action X as target in Update event section&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Lifetime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Die /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetLifetime&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Time&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| particle becomes killed after X seconds&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EmitActivate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Enables emitter X. Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EmitDeactivate&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Disables emitter X. Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EmitParticles&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Starts emitter X. Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Particles&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer recommended. Number of particle to be emitted.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ChangeClass&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;KillLastEmitted&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| ?; Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ExplodeLastEmitted&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| ?; Note that first emitter is 0, second is 1, third is 2, and so on.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AmbientSound&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Sound&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;&#039;&#039;file_name&#039;&#039;&amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;.amb.oni&amp;lt;/font&amp;gt; (file prefix OSBD and suffix .amb.oni not used)&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EndAmbientSound /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;ImpulseSound&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Sound&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;OSBD&amp;lt;/font&amp;gt;&#039;&#039;file_name&#039;&#039;&amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;.imp.oni&amp;lt;/font&amp;gt; (file prefix OSBD and suffix .imp.oni not used)&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DamageChar&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Damage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer recommended. Negative damage values don&#039;t work.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StunDamage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Adds the value specified here to the StunDamage sum variable.&amp;lt;BR&amp;gt;StunDamage has visible effect only for DamageTypes 1, 2 and 6.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;KnockBack&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Character gets moved from its current position by &amp;quot;knockback value&amp;quot; game world units with 0.1 precision.&amp;lt;BR&amp;gt;&amp;lt;font size=1&amp;gt;(Example: If value here is 100, char gets moved cca 99,9 units)&amp;lt;/font&amp;gt;&lt;br /&gt;
Negative values work as well, they reverse the direction. &amp;lt;font size=1&amp;gt;(Instead of being &amp;quot;knocked back&amp;quot;, the character is &amp;quot;drawn in&amp;quot;)&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageType&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 (&amp;quot;normal&amp;quot;)&lt;br /&gt;
: 1 (&amp;quot;minor stun&amp;quot;)&lt;br /&gt;
: 2 (&amp;quot;major stun&amp;quot;)&lt;br /&gt;
: 3 (&amp;quot;minor knockdown&amp;quot;)&lt;br /&gt;
: 4 (&amp;quot;major knockdown&amp;quot;)&lt;br /&gt;
: 5 (&amp;quot;blownup&amp;quot;)&lt;br /&gt;
: 6 (&amp;quot;pickup&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SelfImmune&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 - DamageOwner of the particle can be hurt by the particle&lt;br /&gt;
: 1 - DamageOwner of the particle can&#039;t be hurt by the particle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CanHitMultiple&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| tag is missing if value is 0&lt;br /&gt;
: 0 - can be applied multiple times on the target character&lt;br /&gt;
: 1 - can be applied only once on the character, then is ignored (hurts the target character strictly only once)&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DamageBlast&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Damage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer recommended. Negative damage values don&#039;t work.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StunDamage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Same as the DamageChar&#039;s StunDamage&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;KnockBack&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Same as the DamageChar&#039;s Knockback&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Radius of the damaging sphere.&amp;lt;BR&amp;gt;&amp;lt;font size=1&amp;gt;(Example: If value here is 100, character gets damaged if its distance from the position of the damaging particle is less then or equal to 100 game world units.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FallOff&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0 - DamageBlast deals the same damage, stun damage and knockback regardless of the distance between the particle and the target character&lt;br /&gt;
: 1 - Inflicted Damage, StunDamage and Knockback linearly decrease with distance.&lt;br /&gt;
&amp;lt;font size=1&amp;gt;Example: this flag is set, Radius is 200, Damage is 400, StunDamage is 600 and Knocback is 800.&amp;lt;BR&amp;gt;The target character dwells 150 game world units far from the DamageBlast particle.&amp;lt;BR&amp;gt;&lt;br /&gt;
When hit by the particle&#039;s DamageBlast, PAR3 values of Damage, StunDamage and Knockback will be multiplied by the multiplier:&amp;lt;BR&amp;gt;&lt;br /&gt;
(200-150)/200 = 0.25&amp;lt;BR&amp;gt;&lt;br /&gt;
That means the target character will suffer 0.25*400 = 100 Damage, 150 StunDamage and 200 Knockback&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageType&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
: 0 (&amp;quot;normal&amp;quot;)&lt;br /&gt;
: 1 (&amp;quot;minor stun&amp;quot;)&lt;br /&gt;
: 2 (&amp;quot;major stun&amp;quot;)&lt;br /&gt;
: 3 (&amp;quot;minor knockdown&amp;quot;)&lt;br /&gt;
: 4 (&amp;quot;major knockdown&amp;quot;)&lt;br /&gt;
: 5 (&amp;quot;blownup&amp;quot;)&lt;br /&gt;
: 6 (&amp;quot;pickup&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SelfImmune&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| &lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
Same as the DamageChar&#039;s SelfImmune&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;This tag is not exported if the data field in the oni file is &amp;quot;00&amp;quot;. It is exported when &amp;quot;0A&amp;quot; was set.&amp;lt;/font&amp;gt;&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Explode /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| this action triggers Explode event&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Damage&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Integer used.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;GlassCharge&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BlastVelocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Stop /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| calls Stop event&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RotateX&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateVelocity&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RotateY&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateVelocity&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RotateZ&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateVelocity&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;FindAttractor&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DelayTime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AttractGravity&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Gravity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxG&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HorizontalOnly&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AttractHoming&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TurnSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PredictPosition&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HorizontalOnly&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AttractSpring&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AccelRate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxAccel&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DesiredDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveLine /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveGravity&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Fraction&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveSpiral&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Theta&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;RotateSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveResistance&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Resistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinimumVelocity&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;MoveDrift&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Acceleration&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SidewaysDecay&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DirX&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DirY&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DirZ&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetVelocity&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Space&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;NoSideways&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SpiralTangent&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Theta&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Radius&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rotate_speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;KillBeyondPoint&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Direction&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Value&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;CollisionEffect&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Effect&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;WallOffset&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Orientation&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Attach&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SitckToWall /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Bounce&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ElasticDirect&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ElasticGlancing&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Chop /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| [[XML:Impt|&amp;lt;ImpactEffect&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ImpactType&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Name of impact, registered in ONIE. The looked up material is known from collided particle. Impt and Mtrl file must exist&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ImpactModifier&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Show /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| unhide particle&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;Hide /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| hide particle, cannot collide with characters anymore, emitters stay active&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetTextureTick&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Tick&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RandomTextureFrame /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SetVariable&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Target&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Value&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RecalculateAll /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableAbove&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;Var&amp;amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Threshold&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableBelow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;Var&amp;amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Threshold&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;EnableNow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| enables action X in Update event section&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;DisableNow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Action&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| disables action X in Update event section&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SuperBallTrigger&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Emitter&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FuseTime&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;StopIfBreakable /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| It is actually DontStopIfBreakable. See section: glass-piercing bullets.&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;AvoidWalls&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AxisX&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AxisY&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AxisZ&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CurrentAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TimeUntilCheck&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SenseDistance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TurningSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TurningDecay&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;RandomSwirl&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlAngle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlBaseRate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlDeltaRate&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SwirlSpeed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;FloatAbovePlayer&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Height&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;StopIfSlow&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Speed&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;SuperParticle&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Variable&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;VaseValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DeltaValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxValue&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;StopLink /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;CheckLink /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:#DDDDDD&amp;quot;&lt;br /&gt;
| &amp;lt;BreakLink /&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==glass-piercing bullets==&lt;br /&gt;
In the original game, w1_tap goes through normal glass and loses its dangerousness while a bullet of w8_mbo stays dangerous.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=100%&lt;br /&gt;
! BINA3RAPw1_tap_p01.xml &lt;br /&gt;
! BINA3RAPw8_mbo_p01.xml&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;ImpactEffect&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactType&amp;gt;w1_tap&amp;lt;/ImpactType&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactModifier&amp;gt;3&amp;lt;/ImpactModifier&amp;gt;&lt;br /&gt;
                &amp;lt;/ImpactEffect&amp;gt;&lt;br /&gt;
                &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
                    &amp;lt;Damage&amp;gt;13&amp;lt;/Damage&amp;gt;&lt;br /&gt;
                &amp;lt;/DamageEnvironment&amp;gt;&lt;br /&gt;
                &amp;lt;Chop /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
            &amp;lt;HitWall&amp;gt;&lt;br /&gt;
                &amp;lt;DamageEnvironment&amp;gt;&lt;br /&gt;
                    &amp;lt;Damage&amp;gt;50&amp;lt;/Damage&amp;gt;&lt;br /&gt;
                &amp;lt;/DamageEnvironment&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;StopIfBreakable /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                &amp;lt;ImpactEffect&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactType&amp;gt;w8_mbo&amp;lt;/ImpactType&amp;gt;&lt;br /&gt;
                    &amp;lt;ImpactModifier&amp;gt;2&amp;lt;/ImpactModifier&amp;gt;&lt;br /&gt;
                &amp;lt;/ImpactEffect&amp;gt;&lt;br /&gt;
                &amp;lt;Die /&amp;gt;&lt;br /&gt;
            &amp;lt;/HitWall&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It turned out that &amp;lt;StopIfBreakable /&amp;gt; is actually doing the opposite, hence it should be called &amp;lt;DontStopIfBreakable /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also important that &amp;lt;DamageEnvironment&amp;gt; is the first tag otherwise the glass won&#039;t break.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=notes on locklights=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
        [...]&lt;br /&gt;
            &amp;lt;Tint&amp;gt;color&amp;lt;/Tint&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
        &amp;lt;Variables&amp;gt;&lt;br /&gt;
            &amp;lt;Color Name=&amp;quot;color&amp;quot;&amp;gt;0 0 0&amp;lt;/Color&amp;gt;&lt;br /&gt;
            &amp;lt;Float Name=&amp;quot;blend&amp;quot;&amp;gt;0&amp;lt;/Float&amp;gt;&lt;br /&gt;
        &amp;lt;/Variables&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters /&amp;gt;&lt;br /&gt;
        &amp;lt;Events&amp;gt;&lt;br /&gt;
            &amp;lt;Update&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;u&amp;gt;&amp;lt;ColorInterpolate&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;color&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;Color0&amp;gt;255 0 0&amp;lt;/Color0&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                    &amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;Color1&amp;gt;0 255 0&amp;lt;/Color1&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                    &amp;lt;Amount&amp;gt;blend&amp;lt;/Amount&amp;gt;&lt;br /&gt;
                &amp;lt;/ColorInterpolate&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;u&amp;gt;&amp;lt;SetVariable&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;0&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;u&amp;gt;&amp;lt;SetVariable&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;1&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
            &amp;lt;/Update&amp;gt;&lt;br /&gt;
            &amp;lt;Start&amp;gt;&lt;br /&gt;
                &amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;DisableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;1&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/DisableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                 &amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;EnableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;2&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/EnableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
            &amp;lt;/Start&amp;gt;&lt;br /&gt;
            &amp;lt;Stop&amp;gt;&lt;br /&gt;
                &amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;&amp;lt;DisableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;2&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/DisableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
                &amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;&amp;lt;EnableNow&amp;gt;&lt;br /&gt;
                    &amp;lt;Action&amp;gt;1&amp;lt;/Action&amp;gt;&lt;br /&gt;
                &amp;lt;/EnableNow&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
            &amp;lt;/Stop&amp;gt;&lt;br /&gt;
        &amp;lt;/Events&amp;gt;&lt;br /&gt;
|valign=top|&lt;br /&gt;
Locklights are particle which indicate whether a door is locked or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They are presented in [[OBD:ONLV|ONLV]] (ENVP section) with different names but are all called from &amp;quot;BINA3RAPlocklight.xml&amp;quot; and &amp;quot;BINA3RAPlocklight2.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The locklight becomes created on level start.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Update event has three action: &#039;&#039;&#039;&amp;lt;u&amp;gt;first one has ID 0&amp;lt;/u&amp;gt;&#039;&#039;&#039;, second has &#039;&#039;&#039;&amp;lt;u&amp;gt;&amp;lt;font color=&amp;quot;#AA0000&amp;quot;&amp;gt;ID 1&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;, and third action has &#039;&#039;&#039;&amp;lt;u&amp;gt;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;ID 2&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Target&amp;gt;&amp;lt;/font&amp;gt;color&amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;/Target&amp;gt;&amp;lt;/font&amp;gt; serves as output and is used by the &amp;lt;tint&amp;gt; tag.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The BINA3RAPlocklight.xml original file doesn&#039;t allow new events because of its buggy behavior.&#039;&#039;&#039; Gumby solved the problem by putting the &amp;quot;SetVariable&amp;quot; code into the start and stop event. During a final test additional code showed accidentally that particles identifies doors as characters. A small vid can be seen [http://www.youtube.com/watch?v=kY8uH5vRt3Q here.]&lt;br /&gt;
&lt;br /&gt;
{{divhide|See used code here &amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni Version=&amp;quot;0.9.52.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Particle Name=&amp;quot;locklight&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Options&amp;gt;&lt;br /&gt;
            &amp;lt;Lifetime&amp;gt;0&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
            &amp;lt;DisableDetailLevel&amp;gt;Never&amp;lt;/DisableDetailLevel&amp;gt;&lt;br /&gt;
            &amp;lt;Decorative&amp;gt;true&amp;lt;/Decorative&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithWalls&amp;gt;false&amp;lt;/CollideWithWalls&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithChars&amp;gt;true&amp;lt;/CollideWithChars&amp;gt;&lt;br /&gt;
            &amp;lt;InitiallyHidden&amp;gt;false&amp;lt;/InitiallyHidden&amp;gt;&lt;br /&gt;
            &amp;lt;DrawAsSky&amp;gt;false&amp;lt;/DrawAsSky&amp;gt;&lt;br /&gt;
            &amp;lt;DontAttractThroughWalls&amp;gt;false&amp;lt;/DontAttractThroughWalls&amp;gt;&lt;br /&gt;
            &amp;lt;ExpireOnCutscene&amp;gt;false&amp;lt;/ExpireOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;DieOnCutscene&amp;gt;false&amp;lt;/DieOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;LockPositionToLink&amp;gt;false&amp;lt;/LockPositionToLink&amp;gt;&lt;br /&gt;
            &amp;lt;CollisionRadius&amp;gt;7&amp;lt;/CollisionRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIDodgeRadius&amp;gt;0&amp;lt;/AIDodgeRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIAlertRadius&amp;gt;0&amp;lt;/AIAlertRadius&amp;gt;&lt;br /&gt;
            &amp;lt;FlyBySoundName /&amp;gt;&lt;br /&gt;
        &amp;lt;/Options&amp;gt;&lt;br /&gt;
        &amp;lt;Properties&amp;gt;&lt;br /&gt;
            &amp;lt;HasVelocity&amp;gt;false&amp;lt;/HasVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;HasOrientation&amp;gt;true&amp;lt;/HasOrientation&amp;gt;&lt;br /&gt;
            &amp;lt;HasPositionOffset&amp;gt;false&amp;lt;/HasPositionOffset&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttachmentMatrix&amp;gt;true&amp;lt;/HasAttachmentMatrix&amp;gt;&lt;br /&gt;
            &amp;lt;HasUnknown&amp;gt;false&amp;lt;/HasUnknown&amp;gt;&lt;br /&gt;
            &amp;lt;HasDecalState&amp;gt;false&amp;lt;/HasDecalState&amp;gt;&lt;br /&gt;
            &amp;lt;HasTextureStartTick&amp;gt;false&amp;lt;/HasTextureStartTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasTextureTick&amp;gt;false&amp;lt;/HasTextureTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasDamageOwner&amp;gt;false&amp;lt;/HasDamageOwner&amp;gt;&lt;br /&gt;
            &amp;lt;HasContrailData&amp;gt;false&amp;lt;/HasContrailData&amp;gt;&lt;br /&gt;
            &amp;lt;HasLensFlareState&amp;gt;true&amp;lt;/HasLensFlareState&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttractor&amp;gt;false&amp;lt;/HasAttractor&amp;gt;&lt;br /&gt;
            &amp;lt;HasCollisionCache&amp;gt;true&amp;lt;/HasCollisionCache&amp;gt;&lt;br /&gt;
        &amp;lt;/Properties&amp;gt;&lt;br /&gt;
        &amp;lt;Appearance&amp;gt;&lt;br /&gt;
            &amp;lt;DisplayType&amp;gt;RotatedSprite&amp;lt;/DisplayType&amp;gt;&lt;br /&gt;
            &amp;lt;TexGeom&amp;gt;lensflare11&amp;lt;/TexGeom&amp;gt;&lt;br /&gt;
            &amp;lt;Invisible&amp;gt;false&amp;lt;/Invisible&amp;gt;&lt;br /&gt;
            &amp;lt;IsContrailEmitter&amp;gt;false&amp;lt;/IsContrailEmitter&amp;gt;&lt;br /&gt;
            &amp;lt;ScaleToVelocity&amp;gt;false&amp;lt;/ScaleToVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;Scale&amp;gt;2&amp;lt;/Scale&amp;gt;&lt;br /&gt;
            &amp;lt;UseSeparateYScale&amp;gt;false&amp;lt;/UseSeparateYScale&amp;gt;&lt;br /&gt;
            &amp;lt;YScale&amp;gt;1&amp;lt;/YScale&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation&amp;gt;0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;Alpha&amp;gt;&lt;br /&gt;
                &amp;lt;Random Min=&amp;quot;0.8&amp;quot; Max=&amp;quot;0.9&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;/Alpha&amp;gt;&lt;br /&gt;
            &amp;lt;XOffset&amp;gt;0&amp;lt;/XOffset&amp;gt;&lt;br /&gt;
            &amp;lt;XShorten&amp;gt;0&amp;lt;/XShorten&amp;gt;&lt;br /&gt;
            &amp;lt;UseSpecialTint&amp;gt;false&amp;lt;/UseSpecialTint&amp;gt;&lt;br /&gt;
            &amp;lt;Tint&amp;gt;color&amp;lt;/Tint&amp;gt;&lt;br /&gt;
            &amp;lt;FadeOutOnEdge&amp;gt;false&amp;lt;/FadeOutOnEdge&amp;gt;&lt;br /&gt;
            &amp;lt;OneSidedEdgeFade&amp;gt;false&amp;lt;/OneSidedEdgeFade&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMin&amp;gt;0.2&amp;lt;/EdgeFadeMin&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMax&amp;gt;1&amp;lt;/EdgeFadeMax&amp;gt;&lt;br /&gt;
            &amp;lt;MaxContrailDistance&amp;gt;0&amp;lt;/MaxContrailDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlare&amp;gt;true&amp;lt;/LensFlare&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareDistance&amp;gt;2&amp;lt;/LensFlareDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeInFrames&amp;gt;5&amp;lt;/LensFlareFadeInFrames&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeOutFrames&amp;gt;10&amp;lt;/LensFlareFadeOutFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFullBrightness&amp;gt;false&amp;lt;/DecalFullBrightness&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDecals&amp;gt;100&amp;lt;/MaxDecals&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFadeFrames&amp;gt;60&amp;lt;/DecalFadeFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalWrapAngle&amp;gt;60&amp;lt;/DecalWrapAngle&amp;gt;&lt;br /&gt;
        &amp;lt;/Appearance&amp;gt;&lt;br /&gt;
        &amp;lt;Attractor&amp;gt;&lt;br /&gt;
            &amp;lt;Target&amp;gt;None&amp;lt;/Target&amp;gt;&lt;br /&gt;
            &amp;lt;Selector&amp;gt;Distance&amp;lt;/Selector&amp;gt;&lt;br /&gt;
            &amp;lt;Class /&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDistance&amp;gt;150&amp;lt;/MaxDistance&amp;gt;&lt;br /&gt;
            &amp;lt;MaxAngle&amp;gt;30&amp;lt;/MaxAngle&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMin&amp;gt;3&amp;lt;/AngleSelectMin&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMax&amp;gt;20&amp;lt;/AngleSelectMax&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectWeight&amp;gt;3&amp;lt;/AngleSelectWeight&amp;gt;&lt;br /&gt;
        &amp;lt;/Attractor&amp;gt;&lt;br /&gt;
        &amp;lt;Variables&amp;gt;&lt;br /&gt;
            &amp;lt;Color Name=&amp;quot;color&amp;quot;&amp;gt;0 0 0&amp;lt;/Color&amp;gt;&lt;br /&gt;
            &amp;lt;Float Name=&amp;quot;blend&amp;quot;&amp;gt;0&amp;lt;/Float&amp;gt;&lt;br /&gt;
        &amp;lt;/Variables&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters&amp;gt;&lt;br /&gt;
            &amp;lt;Emitter&amp;gt;&lt;br /&gt;
                &amp;lt;Class&amp;gt;h2h_ninflash_e01&amp;lt;/Class&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;IncreaseParticleCount TurnOffAtTreshold&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;TurnOffTreshold&amp;gt;1&amp;lt;/TurnOffTreshold&amp;gt;&lt;br /&gt;
                &amp;lt;Probability&amp;gt;1&amp;lt;/Probability&amp;gt;&lt;br /&gt;
                &amp;lt;Copies&amp;gt;1&amp;lt;/Copies&amp;gt;&lt;br /&gt;
                &amp;lt;LinkTo /&amp;gt;&lt;br /&gt;
                &amp;lt;Rate&amp;gt;&lt;br /&gt;
                    &amp;lt;Instant /&amp;gt;&lt;br /&gt;
                &amp;lt;/Rate&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;&lt;br /&gt;
                    &amp;lt;Point /&amp;gt;&lt;br /&gt;
                &amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Direction&amp;gt;&lt;br /&gt;
                    &amp;lt;Straight /&amp;gt;&lt;br /&gt;
                &amp;lt;/Direction&amp;gt;&lt;br /&gt;
                &amp;lt;Speed&amp;gt;&lt;br /&gt;
                    &amp;lt;Uniform&amp;gt;&lt;br /&gt;
                        &amp;lt;Speed&amp;gt;0&amp;lt;/Speed&amp;gt;&lt;br /&gt;
                    &amp;lt;/Uniform&amp;gt;&lt;br /&gt;
                &amp;lt;/Speed&amp;gt;&lt;br /&gt;
                &amp;lt;Orientation&amp;gt;LocalPosY&amp;lt;/Orientation&amp;gt;&lt;br /&gt;
                &amp;lt;OrientationUp&amp;gt;LocalPosZ&amp;lt;/OrientationUp&amp;gt;&lt;br /&gt;
            &amp;lt;/Emitter&amp;gt;&lt;br /&gt;
        &amp;lt;/Emitters&amp;gt;&lt;br /&gt;
        &amp;lt;Events&amp;gt;&lt;br /&gt;
            &amp;lt;Update&amp;gt;&lt;br /&gt;
                &amp;lt;ColorInterpolate&amp;gt;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;color&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Color0&amp;gt;255 0 0&amp;lt;/Color0&amp;gt;&lt;br /&gt;
                    &amp;lt;Color1&amp;gt;0 255 0&amp;lt;/Color1&amp;gt;&lt;br /&gt;
                    &amp;lt;Amount&amp;gt;blend&amp;lt;/Amount&amp;gt;&lt;br /&gt;
                &amp;lt;/ColorInterpolate&amp;gt;&lt;br /&gt;
            &amp;lt;/Update&amp;gt;&lt;br /&gt;
            &amp;lt;Start&amp;gt;&lt;br /&gt;
                &amp;lt;SetVariable&amp;gt;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;1&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&lt;br /&gt;
            &amp;lt;/Start&amp;gt;&lt;br /&gt;
            &amp;lt;Stop&amp;gt;&lt;br /&gt;
                &amp;lt;SetVariable&amp;gt;&lt;br /&gt;
                    &amp;lt;Target&amp;gt;blend&amp;lt;/Target&amp;gt;&lt;br /&gt;
                    &amp;lt;Value&amp;gt;0&amp;lt;/Value&amp;gt;&lt;br /&gt;
                &amp;lt;/SetVariable&amp;gt;&lt;br /&gt;
            &amp;lt;/Stop&amp;gt;&lt;br /&gt;
            &amp;lt;HitCharacter&amp;gt;&lt;br /&gt;
                &amp;lt;EmitActivate&amp;gt;&lt;br /&gt;
                    &amp;lt;Emitter&amp;gt;0&amp;lt;/Emitter&amp;gt;&lt;br /&gt;
                &amp;lt;/EmitActivate&amp;gt;&lt;br /&gt;
            &amp;lt;/HitCharacter&amp;gt;&lt;br /&gt;
        &amp;lt;/Events&amp;gt;&lt;br /&gt;
    &amp;lt;/Particle&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
 &amp;amp;nbsp; &amp;lt;!-- from one bug to another, great... --&amp;gt;&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=how to set up decorative decals=&lt;br /&gt;
What are decals?&lt;br /&gt;
: Decals are images glued onto a wall or ground.&lt;br /&gt;
: They are used for additional level design and to show weapon damage on surroundings.&lt;br /&gt;
: The following steps will show you how to set up a piece of design (poster/warning sign/whatever) into a level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 1 - extending the particle collection==&lt;br /&gt;
* [[XML:BINA/OBJC/PART|Particle collections]] are level specific.&lt;br /&gt;
* &amp;lt;Position&amp;gt; .. Choose a position for your decal.&lt;br /&gt;
: &#039;&#039;&#039;The maximal tolerance distance counts 10 units.&#039;&#039;&#039; Let&#039;s say the ground height (y) is 45 and the particle is spawned at 55 then this is the maximal tolerance; 56 wouldn&#039;t work.&lt;br /&gt;
: &#039;&#039;&#039;&amp;quot;chr_debug_characters = 1&amp;quot;&#039;&#039;&#039; helps you. But note that the y value is not the head&#039;s or pelvis&#039; height, it is at the deepest point of your feet.&lt;br /&gt;
* &amp;lt;Rotation&amp;gt; .. &#039;&#039;&#039;see [[#decal_facing|&amp;quot;decal facing&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;Class&amp;gt; .. this is your [[#step_2_-_creating_BINA3RAP_file|particle file]]&lt;br /&gt;
* &amp;lt;Tag&amp;gt; .. optional; &#039;&#039;&#039;used when you want to activate or deactivate decals or other particle via BSL&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;Flags&amp;gt; .. &amp;quot;not initially created&amp;quot; flag (2) or nothing (1; 4; 8)&lt;br /&gt;
* &amp;lt;XScale&amp;gt; .. Scaling of decal&#039;s X dimension on &#039;&#039;individual level&#039;&#039; (you can use the 3RAP&#039;s own scaling (&amp;lt;Scale&amp;gt;) for accumulative scaling (this would affect all decals in the collection))&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Object Id=&amp;quot;11291&amp;quot; Type=&amp;quot;PART&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;0&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;-988 65 1521&amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Rotation&amp;gt;270 180 0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;/Header&amp;gt;&lt;br /&gt;
            &amp;lt;OSD&amp;gt;&lt;br /&gt;
                [[#step_2_-_creating_BINA3RAP_file|&amp;lt;Class&amp;gt;]]&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;decal_particle_name&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;lt;/Class&amp;gt;&lt;br /&gt;
                [[#step_4_-_show_or_hide_decals_via_BSL|&amp;lt;Tag&amp;gt;]]&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;decal_BSL_name&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;lt;/Tag&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;8&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Decal&amp;gt;&lt;br /&gt;
                    &amp;lt;XScale&amp;gt;20&amp;lt;/XScale&amp;gt;&lt;br /&gt;
                    &amp;lt;YScale&amp;gt;20&amp;lt;/YScale&amp;gt;&lt;br /&gt;
                &amp;lt;/Decal&amp;gt;&lt;br /&gt;
            &amp;lt;/OSD&amp;gt;&lt;br /&gt;
        &amp;lt;/Object&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===decal facing===&lt;br /&gt;
: Place yourself towards the point where you want to have the decal, face it. It&#039;s important that your body stands accurate, not your head. Then type &amp;quot;chr_debug_characters = 1&amp;quot; into the developer console and you will know the facing. Write it down, compare with the right table and chose your xyz rotation.&lt;br /&gt;
: &#039;&#039;&#039;PS:&#039;&#039;&#039; In matter of spawning/displaing, the exact rotation is not needed. Oni has a 66 degree tolerance.&lt;br /&gt;
: &#039;&#039;&#039;PPS:&#039;&#039;&#039; &amp;lt;DecalWrapAngle&amp;gt; (in BINA3RAP file) is usually set to 60. For hard edges you might want to increase the value.&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellspacing=20 cellpadding=0 align=right&lt;br /&gt;
|&lt;br /&gt;
[http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/DecalWrapAngle.jpg http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/DecalWrapAngle_TN.jpg]&lt;br /&gt;
&lt;br /&gt;
Test for a &amp;quot;hard edge&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;wall decals&#039;&#039;&#039;&lt;br /&gt;
                      x     y     z&lt;br /&gt;
 facing   0 degree: 270 |   0 |   0&lt;br /&gt;
 facing  90 degree: 270 |  90 |   0&lt;br /&gt;
 facing 180 degree: 270 | 180 |   0&lt;br /&gt;
 facing 270 degree: 270 | 270 |   0&lt;br /&gt;
&#039;&#039;&#039;ground decals&#039;&#039;&#039;&lt;br /&gt;
                      x     y     z&lt;br /&gt;
 facing   0 degree:   0 |   0 |   0&lt;br /&gt;
 facing  90 degree:   0 |  90 |   0&lt;br /&gt;
 facing 180 degree:   0 | 180 |   0&lt;br /&gt;
 facing 270 degree:   0 | 270 |   0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 2 - creating BINA3RAP file==&lt;br /&gt;
* file name in this example: &amp;quot;&#039;&#039;&#039;BINA3RAP&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;decal_particle_name&amp;lt;/font&amp;gt;.xml&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
* &amp;lt;Version&amp;gt; .. &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;has to be the same version as your own onisplit, change it if necessary&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;CollideWithChars&amp;gt; .. is ignored by decals&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;HasDecalState&amp;gt;true .. is needed&lt;br /&gt;
* &amp;lt;DisplayType&amp;gt;Decal .. is needed&lt;br /&gt;
* &amp;lt;TexGeom&amp;gt; .. links to [[#step_3_-_creating_TXMP_file|TXMP file]]&lt;br /&gt;
* &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Alpha&amp;gt; .. alpha level is ignored when TXMP has adaptiveAlpha flag&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Tint&amp;gt; .. is ignored by decals&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;Version=&amp;quot;0.9.41.0&amp;quot;&amp;lt;/font&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;Particle Name=&amp;quot;&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#00AA00&amp;quot;&amp;gt;decal_particle_name&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Options&amp;gt;&lt;br /&gt;
            &amp;lt;Lifetime&amp;gt;0&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
            &amp;lt;DisableDetailLevel&amp;gt;Never&amp;lt;/DisableDetailLevel&amp;gt;&lt;br /&gt;
            &amp;lt;Decorative&amp;gt;true&amp;lt;/Decorative&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithWalls&amp;gt;false&amp;lt;/CollideWithWalls&amp;gt;&lt;br /&gt;
            &amp;lt;CollideWithChars&amp;gt;false&amp;lt;/CollideWithChars&amp;gt;&lt;br /&gt;
            &amp;lt;InitiallyHidden&amp;gt;false&amp;lt;/InitiallyHidden&amp;gt;&lt;br /&gt;
            &amp;lt;DrawAsSky&amp;gt;false&amp;lt;/DrawAsSky&amp;gt;&lt;br /&gt;
            &amp;lt;DontAttractThroughWalls&amp;gt;false&amp;lt;/DontAttractThroughWalls&amp;gt;&lt;br /&gt;
            &amp;lt;ExpireOnCutscene&amp;gt;false&amp;lt;/ExpireOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;DieOnCutscene&amp;gt;false&amp;lt;/DieOnCutscene&amp;gt;&lt;br /&gt;
            &amp;lt;LockPositionToLink&amp;gt;false&amp;lt;/LockPositionToLink&amp;gt;&lt;br /&gt;
            &amp;lt;CollisionRadius&amp;gt;0&amp;lt;/CollisionRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIDodgeRadius&amp;gt;0&amp;lt;/AIDodgeRadius&amp;gt;&lt;br /&gt;
            &amp;lt;AIAlertRadius&amp;gt;0&amp;lt;/AIAlertRadius&amp;gt;&lt;br /&gt;
            &amp;lt;FlyBySoundName /&amp;gt;&lt;br /&gt;
        &amp;lt;/Options&amp;gt;&lt;br /&gt;
        &amp;lt;Properties&amp;gt;&lt;br /&gt;
            &amp;lt;HasVelocity&amp;gt;false&amp;lt;/HasVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;HasOrientation&amp;gt;false&amp;lt;/HasOrientation&amp;gt;&lt;br /&gt;
            &amp;lt;HasPositionOffset&amp;gt;false&amp;lt;/HasPositionOffset&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttachmentMatrix&amp;gt;false&amp;lt;/HasAttachmentMatrix&amp;gt;&lt;br /&gt;
            &amp;lt;HasUnknown&amp;gt;false&amp;lt;/HasUnknown&amp;gt;&lt;br /&gt;
            &#039;&#039;&#039;&amp;lt;HasDecalState&amp;gt;true&amp;lt;/HasDecalState&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
            &amp;lt;HasTextureStartTick&amp;gt;false&amp;lt;/HasTextureStartTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasTextureTick&amp;gt;false&amp;lt;/HasTextureTick&amp;gt;&lt;br /&gt;
            &amp;lt;HasDamageOwner&amp;gt;false&amp;lt;/HasDamageOwner&amp;gt;&lt;br /&gt;
            &amp;lt;HasContrailData&amp;gt;false&amp;lt;/HasContrailData&amp;gt;&lt;br /&gt;
            &amp;lt;HasLensFlareState&amp;gt;false&amp;lt;/HasLensFlareState&amp;gt;&lt;br /&gt;
            &amp;lt;HasAttractor&amp;gt;false&amp;lt;/HasAttractor&amp;gt;&lt;br /&gt;
            &amp;lt;HasCollisionCache&amp;gt;false&amp;lt;/HasCollisionCache&amp;gt;&lt;br /&gt;
        &amp;lt;/Properties&amp;gt;&lt;br /&gt;
        &amp;lt;Appearance&amp;gt;&lt;br /&gt;
            &#039;&#039;&#039;&amp;lt;DisplayType&amp;gt;Decal&amp;lt;/DisplayType&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
            [[#step_3_-_creating_TXMP_file|&amp;lt;TexGeom&amp;gt;]]&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#AA00AA&amp;quot;&amp;gt;animated_texture&amp;lt;/font&amp;gt;&#039;&#039;&#039;&amp;lt;/TexGeom&amp;gt;&lt;br /&gt;
            &amp;lt;Invisible&amp;gt;false&amp;lt;/Invisible&amp;gt;&lt;br /&gt;
            &amp;lt;IsContrailEmitter&amp;gt;false&amp;lt;/IsContrailEmitter&amp;gt;&lt;br /&gt;
            &amp;lt;ScaleToVelocity&amp;gt;false&amp;lt;/ScaleToVelocity&amp;gt;&lt;br /&gt;
            &amp;lt;Scale&amp;gt;1&amp;lt;/Scale&amp;gt;&lt;br /&gt;
            &amp;lt;UseSeparateYScale&amp;gt;false&amp;lt;/UseSeparateYScale&amp;gt;&lt;br /&gt;
            &amp;lt;YScale&amp;gt;1&amp;lt;/YScale&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation&amp;gt;0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;Alpha&amp;gt;1&amp;lt;/Alpha&amp;gt;&lt;br /&gt;
            &amp;lt;XOffset&amp;gt;0&amp;lt;/XOffset&amp;gt;&lt;br /&gt;
            &amp;lt;XShorten&amp;gt;0&amp;lt;/XShorten&amp;gt;&lt;br /&gt;
            &amp;lt;UseSpecialTint&amp;gt;false&amp;lt;/UseSpecialTint&amp;gt;&lt;br /&gt;
            &amp;lt;Tint&amp;gt;255 255 255&amp;lt;/Tint&amp;gt;&lt;br /&gt;
            &amp;lt;FadeOutOnEdge&amp;gt;false&amp;lt;/FadeOutOnEdge&amp;gt;&lt;br /&gt;
            &amp;lt;OneSidedEdgeFade&amp;gt;false&amp;lt;/OneSidedEdgeFade&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMin&amp;gt;0&amp;lt;/EdgeFadeMin&amp;gt;&lt;br /&gt;
            &amp;lt;EdgeFadeMax&amp;gt;0.5&amp;lt;/EdgeFadeMax&amp;gt;&lt;br /&gt;
            &amp;lt;MaxContrailDistance&amp;gt;0&amp;lt;/MaxContrailDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlare&amp;gt;false&amp;lt;/LensFlare&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareDistance&amp;gt;0&amp;lt;/LensFlareDistance&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeInFrames&amp;gt;0&amp;lt;/LensFlareFadeInFrames&amp;gt;&lt;br /&gt;
            &amp;lt;LensFlareFadeOutFrames&amp;gt;0&amp;lt;/LensFlareFadeOutFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFullBrightness&amp;gt;false&amp;lt;/DecalFullBrightness&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDecals&amp;gt;100&amp;lt;/MaxDecals&amp;gt;&lt;br /&gt;
            &amp;lt;DecalFadeFrames&amp;gt;60&amp;lt;/DecalFadeFrames&amp;gt;&lt;br /&gt;
            &amp;lt;DecalWrapAngle&amp;gt;60&amp;lt;/DecalWrapAngle&amp;gt;&lt;br /&gt;
        &amp;lt;/Appearance&amp;gt;&lt;br /&gt;
        &amp;lt;Attractor&amp;gt;&lt;br /&gt;
            &amp;lt;Target&amp;gt;None&amp;lt;/Target&amp;gt;&lt;br /&gt;
            &amp;lt;Selector&amp;gt;Distance&amp;lt;/Selector&amp;gt;&lt;br /&gt;
            &amp;lt;Class /&amp;gt;&lt;br /&gt;
            &amp;lt;MaxDistance&amp;gt;150&amp;lt;/MaxDistance&amp;gt;&lt;br /&gt;
            &amp;lt;MaxAngle&amp;gt;30&amp;lt;/MaxAngle&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMin&amp;gt;3&amp;lt;/AngleSelectMin&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectMax&amp;gt;20&amp;lt;/AngleSelectMax&amp;gt;&lt;br /&gt;
            &amp;lt;AngleSelectWeight&amp;gt;3&amp;lt;/AngleSelectWeight&amp;gt;&lt;br /&gt;
        &amp;lt;/Attractor&amp;gt;&lt;br /&gt;
        &amp;lt;Variables /&amp;gt;&lt;br /&gt;
        &amp;lt;Emitters /&amp;gt;&lt;br /&gt;
        &amp;lt;Events /&amp;gt;&lt;br /&gt;
    &amp;lt;/Particle&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 3 - creating TXMP file==&lt;br /&gt;
* file name in this example: &amp;quot;&#039;&#039;&#039;TXMP&amp;lt;font color=&amp;quot;#AA00AA&amp;quot;&amp;gt;animated_texture&amp;lt;/font&amp;gt;.xml&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
: Of cause the particle file doesn&#039;t has to contain an animated image. It&#039;s just meant to remind you that this possibility exist.&lt;br /&gt;
* &amp;lt;Version&amp;gt; .. &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;has to be the same version as your own onisplit, change it if necessary&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=0 cellspacing=20 cellpadding=0 align=right&lt;br /&gt;
|&lt;br /&gt;
[http://www.youtube.com/watch?v=ifHv5S-npqw&amp;amp;feature=channel_page http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/animated_decal.jpg]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;Version=&amp;quot;0.9.41.0&amp;quot;&amp;lt;/font&amp;gt;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;&lt;br /&gt;
        &amp;lt;Flags&amp;gt;HasMipMaps  AnimUseLocalTime  AnimBackToBack  AdditiveBlend&amp;lt;/Flags&amp;gt;&lt;br /&gt;
        &amp;lt;Format&amp;gt;RGB555&amp;lt;/Format&amp;gt;&lt;br /&gt;
        &amp;lt;Speed&amp;gt;4&amp;lt;/Speed&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_000.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_001.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_002.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_003.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_004.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_005.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_006.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_007.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_008.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_009.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;TXMPanimated_tex_part_010.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
    &amp;lt;/Texture&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 4 - show or hide decals via BSL==&lt;br /&gt;
fork respawnable_decals in your main function&lt;br /&gt;
 var bool first = 1;&lt;br /&gt;
 &lt;br /&gt;
 func respawnable_decals&lt;br /&gt;
 {&lt;br /&gt;
 	chr_debug_characters = 1&lt;br /&gt;
 	dmsg &amp;quot;( punch to hide a few decals now )&amp;quot;&lt;br /&gt;
 	### decal is already presented so we begin with stop function&lt;br /&gt;
 	fork kill_decal&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func kill_decal&lt;br /&gt;
 {&lt;br /&gt;
 	sleep 30&lt;br /&gt;
 	chr_wait_animtype 0 punch&lt;br /&gt;
 	dmsg &amp;quot;( punch detected; [r.deactivating decals now] )&amp;quot;&lt;br /&gt;
 	&#039;&#039;&#039;### has effect at all particle with chosen tag&#039;&#039;&#039;&lt;br /&gt;
 	### in the vid, obviously the two decals use the same tag&lt;br /&gt;
 	particle &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;decal_BSL_name&amp;lt;/font&amp;gt;&#039;&#039;&#039; kill&lt;br /&gt;
 	if (first eq 1)&lt;br /&gt;
 	{&lt;br /&gt;
 		dmsg &amp;quot;( kick to show a few decals now )&amp;quot;&lt;br /&gt;
 		first = 0;&lt;br /&gt;
 		sleep 60&lt;br /&gt;
 	}&lt;br /&gt;
 	fork create_decal&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func create_decal&lt;br /&gt;
 {&lt;br /&gt;
 	sleep 30&lt;br /&gt;
 	chr_wait_animtype 0 kick&lt;br /&gt;
 	dmsg &amp;quot;( kick detected; [b.activating decals now] )&amp;quot;&lt;br /&gt;
 	particle &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;decal_BSL_name&amp;lt;/font&amp;gt;&#039;&#039;&#039; create&lt;br /&gt;
 	fork kill_decal&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=how to set up decorative character items=&lt;br /&gt;
Based on geyser&#039;s [http://geyser.oni2.net/edition/levels/colony/sillyworld.zip &amp;quot;silly world&amp;quot;] experiment.&lt;br /&gt;
&lt;br /&gt;
Marks, bags, goggles, decorative LSI, flash lights and other equipment could individualize characters by using a (BSL-triggered) particle workaround.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 1: ONCC modifications==&lt;br /&gt;
First we need to create a connection to the character. For this, we use the Daodan particle system to some degree. &lt;br /&gt;
 &amp;lt;HasDaodanPowers&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/HasDaodanPowers&amp;gt;&lt;br /&gt;
Now it&#039;s enabled for this character. Next we register our item (hold by particle) in the ONCP section.&lt;br /&gt;
 &amp;lt;ONCPParticle&amp;gt;&lt;br /&gt;
   &amp;lt;Name&amp;gt;&#039;&#039;&#039;super&#039;&#039;&#039;_shades&amp;lt;/Name&amp;gt;&lt;br /&gt;
   &amp;lt;Type&amp;gt;silly_shades&amp;lt;/Type&amp;gt;&lt;br /&gt;
   [[OBD:TRIA#Bones|&amp;lt;BodyPart&amp;gt;]]10&amp;lt;/BodyPart&amp;gt;&lt;br /&gt;
 &amp;lt;/ONCPParticle&amp;gt;&lt;br /&gt;
&amp;lt;Name&amp;gt; As long as &#039;&#039;&#039;super&#039;&#039;&#039; stands at beginning, the further naming is unimportant.&amp;lt;br&amp;gt;&amp;lt;Type&amp;gt; This is a link to the particle file.&amp;lt;br&amp;gt;&amp;lt;BodyPart&amp;gt; This is the body part where the particle is attached to. Position fine tuning can be done in M3GM&#039;s PNTA section, &amp;lt;Positions&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 2: creating the item files==&lt;br /&gt;
* BINA3RAPsilly_glasses.xml&lt;br /&gt;
: Needed modifications:&lt;br /&gt;
 &amp;lt;Lifetime&amp;gt;0&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;HasAttachmentMatrix&amp;gt;true&amp;lt;/HasAttachmentMatrix&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;DisplayType&amp;gt;Geometry&amp;lt;/DisplayType&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;TexGeom&amp;gt;&#039;&#039;&#039;silly_shades&#039;&#039;&#039;&amp;lt;/TexGeom&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Events&amp;gt;&lt;br /&gt;
  &amp;lt;Start&amp;gt;&lt;br /&gt;
   &amp;lt;Show /&amp;gt;&lt;br /&gt;
  &amp;lt;/Start&amp;gt;&lt;br /&gt;
  &amp;lt;Stop&amp;gt;&lt;br /&gt;
   &amp;lt;Hide /&amp;gt;&lt;br /&gt;
  &amp;lt;/Stop&amp;gt;&lt;br /&gt;
 &amp;lt;/Events&amp;gt;&lt;br /&gt;
* M3GM&#039;&#039;&#039;silly_shades&#039;&#039;&#039;.xml&lt;br /&gt;
 &amp;lt;Texture&amp;gt;TXMP&#039;&#039;&#039;silly_shades_tex&#039;&#039;&#039;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
* TXMP&#039;&#039;&#039;silly_shades_tex&#039;&#039;&#039;.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==step 3: preparing the BSL stuff==&lt;br /&gt;
* BINACJBOCharacter.xml&lt;br /&gt;
&amp;lt;Spawn&amp;gt;silly_setup&amp;lt;/Spawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* shpadoinkle.bsl&lt;br /&gt;
 #character spawn function&lt;br /&gt;
 func silly_setup(string name) {&lt;br /&gt;
 	chr_lock_active(name)&lt;br /&gt;
 	chr_super(name, 1)&lt;br /&gt;
 	sleep 2&lt;br /&gt;
 	chr_super(name, 0)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellspacing=20 cellpadding=0 align=right&lt;br /&gt;
|&lt;br /&gt;
[http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/silly_shades.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/silly_shades_TN.png]&amp;lt;br&amp;gt;Karen: &amp;quot;Ready for Matrix. HAR-HAR&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
: silly_setup will be triggered every time a character is spawned with this link in BINACJBOCharacter.xml&lt;br /&gt;
: Only AI would need chr_lock_active.&lt;br /&gt;
: chr_super becomes disabled again to prevent other Daodan effects (in case our character would had a chenille or other visuals). We don&#039;t have to worry about the item, its live time was set to 0 (infinity). (chr_super 0 only hides the particle, it doesn&#039;t kill it.)&lt;br /&gt;
: &lt;br /&gt;
&lt;br /&gt;
 func main {&lt;br /&gt;
 	# [...]&lt;br /&gt;
 	p3_callevent silly_glasses &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
 	# [...]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2&#039;&#039;&#039; corresponds to &amp;lt;Start&amp;gt; tag and &#039;&#039;&#039;3&#039;&#039;&#039; corresponds to &amp;lt;Stop&amp;gt; tag in BINA3RAPsilly_shades.xml&lt;br /&gt;
This can &#039;&#039;switch on and off&#039;&#039; the item. Other effects could be triggered by the free remaining numbers. A collection of events and their numbers can be seen [[XML:BINA/OBJC/PART|HERE]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==extra demo==&lt;br /&gt;
&#039;&#039;For all Gundam Seed fans out there: Phase Shift shades.&#039;&#039; ^_^&lt;br /&gt;
Nah, the texture of such object cannot become replaced by another. But by using three different shades, we can create this illusion. There are blue shades. A &#039;&#039;pair&#039;&#039; that uses an animated texture. And a red pair. The animated pair is only temporary used. [http://www.youtube.com/watch?v=XbOb0i5StDk Here&#039;s a vid.]&lt;br /&gt;
&lt;br /&gt;
 func spawn_karen {&lt;br /&gt;
 	chr_super karen 1&lt;br /&gt;
 	### all three shades particle created&lt;br /&gt;
 	sleep 2&lt;br /&gt;
 	### now but we need to hide them&lt;br /&gt;
 	chr_super karen 0&lt;br /&gt;
 	### show only blue shades for the start&lt;br /&gt;
 	p3_callevent shades_blue 2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func phase_shift_shades {&lt;br /&gt;
 	p3_callevent shades_blue 3&lt;br /&gt;
 	p3_callevent shades_blue_red 2&lt;br /&gt;
 	sleep 20&lt;br /&gt;
 	p3_callevent shades_blue_red 3&lt;br /&gt;
 	p3_callevent shades_red 2&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>Loser</name></author>
	</entry>
</feed>