<?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=ValBot</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=ValBot"/>
	<link rel="alternate" type="text/html" href="https://wiki.oni2.net/Special:Contributions/ValBot"/>
	<updated>2026-04-19T07:02:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Creating_a_level&amp;diff=46217</id>
		<title>Creating a level</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Creating_a_level&amp;diff=46217"/>
		<updated>2025-12-26T06:17:28Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{integrate|See {{SectionLink||Forum tutorials on level creation}}.|plural=yes}}&lt;br /&gt;
This page covers level creation from scratch. See [[Modifying an existing level]] if you want to change a vanilla level in the game.&lt;br /&gt;
&lt;br /&gt;
==Level releases and resources==&lt;br /&gt;
===Fan-made levels===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable autosort by-column-3&amp;quot;&lt;br /&gt;
!Date&lt;br /&gt;
!Name&lt;br /&gt;
!Level number&lt;br /&gt;
|-&lt;br /&gt;
|2019/09/16&lt;br /&gt;
|[https://web.archive.org/web/20240527004257/http://oniforum.bungie.org/viewtopic.php?id=2965 Omega Tournament]&lt;br /&gt;
|31&lt;br /&gt;
|-&lt;br /&gt;
|2016/02/13&lt;br /&gt;
|[https://web.archive.org/web/20160224173743/http://oni.bungie.org/forum/viewtopic.php?id=2947 AI Battle]&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|2014/01/19&lt;br /&gt;
|[https://web.archive.org/web/20211202225410/http://oni.bungie.org/forum/viewtopic.php?id=2698 Wilderness Preserve]&lt;br /&gt;
|17&lt;br /&gt;
|-&lt;br /&gt;
|2013/09/07&lt;br /&gt;
|[https://web.archive.org/web/20201127180732/http://oni.bungie.org/forum/viewtopic.php?id=2656 Island]&lt;br /&gt;
|29&lt;br /&gt;
|-&lt;br /&gt;
|2013/07/12&lt;br /&gt;
|[https://web.archive.org/web/20201127175459/http://oni.bungie.org/forum/viewtopic.php?id=2640 City]&lt;br /&gt;
|28&lt;br /&gt;
|-&lt;br /&gt;
|2013/06/01&lt;br /&gt;
|[https://web.archive.org/web/20201029102326/http://oni.bungie.org/forum/viewtopic.php?id=2619 Fight Club]&lt;br /&gt;
|25&lt;br /&gt;
|-&lt;br /&gt;
|2012/05/12&lt;br /&gt;
|[https://web.archive.org/web/20220701102842/http://oni.bungie.org/forum/viewtopic.php?id=2357 Old China]&lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|2012/03/18&lt;br /&gt;
|[https://web.archive.org/web/20211202220454/http://oni.bungie.org/forum/viewtopic.php?id=2302 Boss Battle]&lt;br /&gt;
|23&lt;br /&gt;
|-&lt;br /&gt;
|2012/02/12&lt;br /&gt;
|[https://web.archive.org/web/20201029113554/http://oni.bungie.org/forum/viewtopic.php?id=2271 De Dust Deluxe]&lt;br /&gt;
|22&lt;br /&gt;
|-&lt;br /&gt;
|2012/01/23&lt;br /&gt;
|[https://web.archive.org/web/20201029114415/http://oni.bungie.org/forum/viewtopic.php?id=2242 Parkour Challenge 2]&lt;br /&gt;
|21&lt;br /&gt;
|-&lt;br /&gt;
|2012/01/16&lt;br /&gt;
|[https://web.archive.org/web/20211205145843/http://oni.bungie.org/forum/viewtopic.php?id=2235 Parkour Challenge]&lt;br /&gt;
|21&lt;br /&gt;
|-&lt;br /&gt;
|2011/07/25&lt;br /&gt;
|[https://web.archive.org/web/20201029103607/http://oni.bungie.org/forum/viewtopic.php?id=2001 Mini-Partenon]&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|2011/10/03&lt;br /&gt;
|[https://web.archive.org/web/20201029113340/http://oni.bungie.org/forum/viewtopic.php?id=2024 Muro&#039;s Lair - Preview]&lt;br /&gt;
|20&lt;br /&gt;
|-&lt;br /&gt;
|2011/07/03&lt;br /&gt;
|[https://web.archive.org/web/20201029113724/http://oni.bungie.org/forum/viewtopic.php?id=1957 Hexagon]&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|2011/06/23&lt;br /&gt;
|[https://web.archive.org/web/20201029104928/http://oni.bungie.org/forum/viewtopic.php?id=1938 Junkyard]&lt;br /&gt;
|15&lt;br /&gt;
|-&lt;br /&gt;
|2011/05/01&lt;br /&gt;
|[http://mods.oni2.net/node/178 Arena of Hurt (OZG)]&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|2010/11/08&lt;br /&gt;
|[https://web.archive.org/web/20210117150652/http://oni.bungie.org/forum/viewtopic.php?id=1736 Arena of Hurt (OTA)]&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|2010/11/06&lt;br /&gt;
|[https://web.archive.org/web/20201029105217/http://oni.bungie.org/forum/viewtopic.php?pid=50565#p50565 Martian Colony] AKA &amp;quot;Silly World&amp;quot;&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|2010/02/15&lt;br /&gt;
|[https://web.archive.org/web/20201029113916/http://oni.bungie.org/forum/viewtopic.php?id=1506 Maze]&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|2008/09/16&lt;br /&gt;
|[http://mods.oni2.net/node/4 Arena of Pain]&lt;br /&gt;
|30&lt;br /&gt;
|-&lt;br /&gt;
|2024/05/20&lt;br /&gt;
|[https://gamebanana.com/mods/514707 Kitsune: Chapter 1]&lt;br /&gt;
|20&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Forum tutorials on level creation===&lt;br /&gt;
* &#039;&#039;&#039;[https://web.archive.org/web/20201029114347/http://oni.bungie.org/forum/viewtopic.php?id=2087 &amp;quot;Creating the Lair - A level tutorial&amp;quot;]&#039;&#039;&#039;&lt;br /&gt;
* [https://web.archive.org/web/20201127172559/http://oni.bungie.org/forum/viewtopic.php?pid=53026 &amp;quot;Creating a Custom Oni Level (s10k video tutorials)&amp;quot;]&lt;br /&gt;
* [https://web.archive.org/web/20201127180431/http://oni.bungie.org/forum/viewtopic.php?id=1515 &amp;quot;Creating new levels&amp;quot;]&lt;br /&gt;
* [https://web.archive.org/web/20201029114358/http://oni.bungie.org/forum/viewtopic.php?pid=33838 &amp;quot;Create levels with pathfinding grids&amp;quot;]&lt;br /&gt;
* [https://web.archive.org/web/20210117145338/http://oni.bungie.org/forum/viewtopic.php?id=2000 &amp;quot;More questions about levels&amp;quot;]&lt;br /&gt;
* [https://web.archive.org/web/20201029103906/http://oni.bungie.org/forum/viewtopic.php?pid=37252#p37252 &amp;quot;Modding Existing levels - Beta&amp;quot; (&amp;quot;Moveable furniture&amp;quot; post)]&lt;br /&gt;
&lt;br /&gt;
===Wiki pages on level creation===&lt;br /&gt;
* [[Creating a level]] (you are here)&lt;br /&gt;
* [[Modifying an existing level]]&lt;br /&gt;
* [[New levels]] (a historical document)&lt;br /&gt;
* [[Lightmapping levels]] (an experiment)&lt;br /&gt;
&lt;br /&gt;
===Free asset sources===&lt;br /&gt;
* [https://3dwarehouse.sketchup.com/ 3D Warehouse] – architectural models (also see the [https://3dwarehouse.sketchup.com/collection/236901867937c4ed5fbaf4019d18db23/New-content-for-Oni curated collection] by geyser)&lt;br /&gt;
* [https://www.turbosquid.com/ TurboSquid] – various models, including architecture&lt;br /&gt;
* [https://www.textures.com Textures.com] – wide variety of textures&lt;br /&gt;
&lt;br /&gt;
==Engine limitations==&lt;br /&gt;
First you should be aware of the limitations that Oni will place on your level.&lt;br /&gt;
&lt;br /&gt;
* The triangle limit of a game level is approx. 520,000 (consider it 500,000 to be on the safe side).&lt;br /&gt;
* {{ModTool}} can save DAE files with a maximum of 64,000 triangles per object.&lt;br /&gt;
* When polygons are too tightly packed, the camera will look at too many of them and glitches will appear. The limit on visible GQs (Gunk Quads) is 8,192 (2&amp;lt;sup&amp;gt;13&amp;lt;/sup&amp;gt;), and higher numbers will cause render bugs and produce the console error message &amp;quot;Exceeded max visible GQs &#039;&#039;number&#039;&#039;&amp;quot;. There are limited solutions to this:&lt;br /&gt;
** Decrease the &#039;&#039;&#039;gs_farclipplane_set&#039;&#039;&#039; value.&lt;br /&gt;
** Hide objects via &#039;&#039;&#039;[[#.3CModel.3E|env_show]]&#039;&#039;&#039;.&lt;br /&gt;
** Hide objects by &#039;&#039;level design&#039;&#039;. For example, departments in a building could be quite detailed because the view of the other departments/rooms is blocked by walls.&lt;br /&gt;
* The camera can look at 2,049 transparent textures at once; one more, and Oni crashes.&lt;br /&gt;
* Characters are visible &#039;&#039;only&#039;&#039; within world coordinates {-4,099, -4,099, -4,099} to {4,099, 4,099, 4,099}.&lt;br /&gt;
* Geometry stops outside of (roughly) world coordinates -4,228 to 4,228 on the X and Z axes (vertical axis not tested).&lt;br /&gt;
* &#039;&#039;&#039;chr_debug_spheres = 1&#039;&#039;&#039; visualizes the collision spheres of characters, so you can check if they will fit through an entrance.&lt;br /&gt;
&lt;br /&gt;
==3D tools==&lt;br /&gt;
===Problems when using multiple different tools===&lt;br /&gt;
Re-saving a DAE file in &#039;&#039;&#039;Mod Tool&#039;&#039;&#039; which was originally made in &#039;&#039;&#039;SketchUp&#039;&#039;&#039; can result in a surprising change in size within Oni. This is due to a difference in the specification of a scale unit.&lt;br /&gt;
&lt;br /&gt;
: For example, the SketchUp DAE file may have: &amp;lt;tt&amp;gt;&amp;lt;unit meter=&amp;quot;0.0254000&amp;quot; name=&amp;quot;inch&amp;quot; /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
: And the re-saved Mod Tool DAE file may have: &amp;lt;tt&amp;gt;&amp;lt;unit meter=&amp;quot;0.1&amp;quot; name=&amp;quot;decimetre&amp;quot;&amp;gt;&amp;lt;/unit&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case you&#039;ll need to open the new DAE in a text editor and change the length specification back.&lt;br /&gt;
&lt;br /&gt;
===Sketchup===&lt;br /&gt;
If you are working with Sketchup check out this pages:&lt;br /&gt;
* [http://web.archive.org/web/20201029103436/http://oni.bungie.org/forum/viewtopic.php?id=2003 &amp;quot;Sketchup tutorials for making levels&amp;quot;]&lt;br /&gt;
* [[SketchUp tutorials and tips]]&lt;br /&gt;
&lt;br /&gt;
===Blender===&lt;br /&gt;
&#039;&#039;&#039;Scaling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Same as Mod Tool and SketchUp: Caution with scaling: See [[#Problems when using multiple different tools|here]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pathfinding&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Be sure to uncheck automatic triangle creation when exporting (BNV) geometry used for pathfinding. Ghost (&#039;&#039;doors&#039;&#039;) must be quads. &lt;br /&gt;
&lt;br /&gt;
==Setting up a workflow==&lt;br /&gt;
If not noted differentely you need OniSplit v0.9.82.0 or a newer version. Onisplit can be downloaded [http://mods.oni2.net/node/38 HERE] (it also comes with the [[AE]] and is found in the Tools directory of the installation).&lt;br /&gt;
&lt;br /&gt;
The level import demo files can be downloaded [http://mods.oni2.net/node/299 HERE].&lt;br /&gt;
&lt;br /&gt;
First, put &#039;&#039;&#039;OniSplit.exe&#039;&#039;&#039; into the second &#039;&#039;&#039;lab&#039;&#039;&#039; folder alongside the XML files.&lt;br /&gt;
&lt;br /&gt;
Look at the file &#039;&#039;&#039;build.cmd&#039;&#039;&#039;. These are the two important lines:&lt;br /&gt;
&lt;br /&gt;
 OniSplit.exe -create:level out lab.xml&lt;br /&gt;
 OniSplit.exe -import:pc out level3_Final.dat&lt;br /&gt;
&lt;br /&gt;
The first line creates the *.oni files from a master.xml file, in this case &#039;&#039;&#039;lab.xml&#039;&#039;&#039;. Once finalized, the resulting .oni files can be put into a new [[Making a mod package|AE package]].&lt;br /&gt;
&lt;br /&gt;
The second line creates level archives which can be used for fast tests. They don&#039;t require you to install a package through the AE Installer.&lt;br /&gt;
&lt;br /&gt;
Instead of &amp;quot;-nosep&amp;quot; you can now also use &amp;quot;-pc&amp;quot; for the import. Macs, however, do use &amp;quot;-sep&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
If the game crashes while loading at ~90% progress, be sure that the texture&#039;s x and y dimensions are powers of two: 64, 128, 256, 512….&lt;br /&gt;
&lt;br /&gt;
If the game crashes while loading at ~50-60% progress, be sure that the BINACJBOCharacters or AISA file has a player character defined.&lt;br /&gt;
&lt;br /&gt;
If the game crashes while loading ~5-10% progress, check if all your textures were inside the &amp;quot;out&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
:You can extract the AKEV file to XML, then search for the [[XML:AKEV#TXMA|TXMP Array]].&lt;br /&gt;
&lt;br /&gt;
:[http://mods.oni2.net/system/files/AKEV_texture_checker.txt THIS] script checks which textures are missing by comparing the AKEV*.xml with its *.oni files folder. Change the two paths so that it works for you: Alt+4, insert code, then F5.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;TXMP_marker_door&amp;quot; and &amp;quot;TXMP_marker_ghost&amp;quot; will be missing in the demo&#039;s &amp;quot;out&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
You can add this between the other two lines in build.cmd to prevent a crash.&lt;br /&gt;
 OniSplit.exe -create:txmp out env/markers/*.tga&lt;br /&gt;
&lt;br /&gt;
==Terminology==&lt;br /&gt;
;Polygon&lt;br /&gt;
:A polygon is a shape defined by points (vertices) in space. Polygons are the most fundamental building block in games. Oni uses only shapes with 3 and 4 points (triangles and quads). Other games might also use N-gons, shapes with more points.&lt;br /&gt;
;Face&lt;br /&gt;
:The &#039;&#039;&#039;surface of a polygon&#039;&#039;&#039; is also named face. The &#039;&#039;&#039;direction&#039;&#039;&#039; of a face in &#039;&#039;&#039;defined by its normal&#039;&#039;&#039;. If an object seems to have a hole, it might be that the polygon just has a &#039;&#039;&#039;flipped normal&#039;&#039;&#039; and is therefore wrongly rendered (displayed on screen).&lt;br /&gt;
;Normal&lt;br /&gt;
:Faces and even vertices themselves have directions. The normals of vertices determine how smooth or sharp edges will appear.&lt;br /&gt;
;Vertex (plural&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; vertices)&lt;br /&gt;
:A point within a polygon.&lt;br /&gt;
:Vertex colors radiate from one vertex to another vertex, whereby their different color values blend into each other so that gradients can appear. &lt;br /&gt;
;Edge&lt;br /&gt;
:A line of two points within a polygon.&lt;br /&gt;
;Tris (triangles)&lt;br /&gt;
:Polygons made of 3 points.&lt;br /&gt;
;Quads&lt;br /&gt;
:Polygons made of 4 points. Planes. Rectangles.&lt;br /&gt;
:Internally, all quads get converted into two triangles and will affect the maximum triangle count accordingly.&lt;br /&gt;
;Level&lt;br /&gt;
:The term &amp;quot;level&amp;quot; is often used to shorten &amp;quot;level map&amp;quot; (buildings and terrain).&lt;br /&gt;
;Geometry&lt;br /&gt;
:Level geometry can be objects made of tris and/or quads.&lt;br /&gt;
:Oni differentiates between basically 3 types of level geometry:&lt;br /&gt;
:* Static objects (sometimes also named AKEV core geometry)&lt;br /&gt;
:* Animated objects&lt;br /&gt;
:* Pushable objects (not used in the original game)&lt;br /&gt;
;Static geometry&lt;br /&gt;
:* &#039;&#039;&#039;Unique level geometry with no functions&#039;&#039;&#039; (AKEV core geometry such as buildings and streets).&lt;br /&gt;
:* &#039;&#039;&#039;Repeating objects&#039;&#039;&#039; are flagged as &#039;&#039;&#039;furniture ([[Creating_a_level#Furniture.xml|FURN]])&#039;&#039;&#039; although they can be outdoor objects such as boxes and containers. &amp;lt;!--Oni&#039;s story plays out most often inside buildings. So, there you go. --&amp;gt;FURN objects were used to be imported by an object collection, an CJBO. Nowadays, furniture collections can be used (again) for imports, but the individual objects are stored as [[XML:OFGA|OFGA]] files. This modularity is known in many game editors (like the Unreal Engine Editor). So, &#039;&#039;&#039;OFGA are nothing else than &amp;quot;game assets&amp;quot;.&#039;&#039;&#039; The drawback of OFGA is that they &#039;&#039;&#039;will not import with any vertex shading&#039;&#039;&#039;. Only their &#039;&#039;&#039;geometries&#039;&#039;&#039;, attached &#039;&#039;&#039;particle&#039;&#039;&#039; and &#039;&#039;&#039;gunk flags&#039;&#039;&#039; get copied into final (baked) level geometry.&lt;br /&gt;
:* &#039;&#039;&#039;Objects with actual functions&#039;&#039;&#039;: [[XML:BINA/OBJC/CONS|CONS]], [[XML:BINA/OBJC/DOOR|DOOR]], [[XML:BINA/OBJC/TRIG|TRIG]], [[XML:BINA/OBJC/TURR|TURR]]&lt;br /&gt;
;[[XML:AKEV#AGQG|Gunk flags]]&lt;br /&gt;
:Properties directly associated with the polygons. Among others, these can be: Transparent, TwoSided, NoCollision, Invisible, NoObjectCollision, NoCharacterCollision, NoDecals, Furniture, Impassable.&lt;br /&gt;
;Baking&lt;br /&gt;
:When a level gets baked, all geometries get merged.&lt;br /&gt;
:*Unique level geometry will have vertex painting.&lt;br /&gt;
:*Objects derived from already compiled oni-files (shared classes) will have no vertex painting.&lt;br /&gt;
:*Animated and pushable objects will have no vertex shading.&lt;br /&gt;
;Vertex shading&lt;br /&gt;
:Vertex colors (vector data) can be painted onto core geometry.&lt;br /&gt;
:They are used as a rudimentary form of lightmapping (pixel data).&lt;br /&gt;
:Having vertex shading is still better than having no vertex shading at all. It makes the level appear more lifelike.&lt;br /&gt;
;Lightmapping&lt;br /&gt;
:In other games, lights and shadows are added to level geometry with lightmapping.&lt;br /&gt;
:There were experiments to bring lightmaps back to Oni. The technique come with a major drawback though. It doubles the triangle count and adds many textures.&lt;br /&gt;
;In-game&lt;br /&gt;
:When you are &amp;quot;inside&amp;quot; the game, running or playing it.&lt;br /&gt;
&lt;br /&gt;
==Level construction==&lt;br /&gt;
&#039;&#039;&#039;Visible environment&#039;&#039;&#039;&lt;br /&gt;
* A &#039;&#039;&#039;level map&#039;&#039;&#039; consists of visible geometry: terrain and buildings. This is also named the &#039;&#039;&#039;environment&#039;&#039;&#039; or for short &#039;&#039;&#039;env&#039;&#039;&#039;.&lt;br /&gt;
** Use &#039;&#039;&#039;quads&#039;&#039;&#039; of approximately 10 up to 20 meters in size to construct env geometry.&lt;br /&gt;
* Anything other than floors and simple walls will be made of triangles.&lt;br /&gt;
** Geometry from CJBO works best with triangles. Quads might show holes in-game.&lt;br /&gt;
&#039;&#039;&#039;Invisible pathfinding&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;AIs&#039;&#039;&#039; (or non-player characters, NPCs) need &#039;&#039;&#039;pathfinding&#039;&#039;&#039; data, usually shortened as &#039;&#039;&#039;bnv&#039;&#039;&#039;.&lt;br /&gt;
** Pathfinding data can be described as geometry, therefore as rooms. These &#039;&#039;&#039;bnv rooms&#039;&#039;&#039; are made of &#039;&#039;&#039;floors&#039;&#039;&#039; and are connected by &#039;&#039;&#039;ghost&#039;&#039;&#039; quads which work like doors. AIs can move from one room to another room only by passing a ghost. Therefore, ghosts have the same width as rooms in open terrain.&lt;br /&gt;
*** Use floor quads of approximately 10 meters in size to construct BNV floors.&lt;br /&gt;
*** Put ghost quads exactly on the edges of BNV floors with an angle of 90 degree.&lt;br /&gt;
&#039;&#039;&#039;Support for [[XML:BINA/ONIE|effects]]&#039;&#039;&#039;&lt;br /&gt;
* Effects such as decals that indicate damaged environment need level textures to be registered in [[XML:BINA/TMBD|TMBD]]. Make sure not to replace existing texture entries but to add your own so that the other levels remain unaffected.&lt;br /&gt;
&#039;&#039;&#039;Level logic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BSL scripts bring levels fully to life. The logic is mostly event driven whereby different checkpoints and conditions must be reached.&lt;br /&gt;
* Checkpoints are actually [[XML:BINA/OBJC/TRGV|trigger volumes]] that can recognize entering and exiting characters.&lt;br /&gt;
* The second most important source of events are [[XML:BINA/OBJC/CHAR|character (script) functions]], especially the die function of enemies.&lt;br /&gt;
** To support good and less good players alike, NPC characters can feature the UpgradeDifficulty flag. Also, BSL scripts can detect the current [[BSL:Game_status|difficulty level]].&lt;br /&gt;
* [[XML:BINA/OBJC/TRIG|Laser triggers]] are mostly used to control [[XML:BINA/OBJC/TURR|turrets]]. [[XML:BINA/OBJC/CONS|Consoles]], triggers and [[XML:DOOR|door]] unlocking are used to set up very simple &amp;quot;riddles”.&lt;br /&gt;
* The creation of cut scenes is time-consuming quality work. Due to missing tools for streamlined workflows, it is totally okay for you to skip this.&lt;br /&gt;
** New synchronized FILM, OBAN and TRAM files are required for cut scenes. Not to mention sound files for dialog.&lt;br /&gt;
&lt;br /&gt;
==The master XML file==&lt;br /&gt;
&#039;&#039;The project file for level creation.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;master XML&#039;&#039;&#039; file&#039;s &#039;&#039;&#039;name determines&#039;&#039;&#039; the &#039;&#039;&#039;BSL folder name&#039;&#039;&#039; and the &#039;&#039;&#039;AKEV and ONLV file names&#039;&#039;&#039; in the output folder. File paths in the XML can be either absolute or relative.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mandatory files&#039;&#039;&#039; for level import:&lt;br /&gt;
* &#039;&#039;level_environment&#039;&#039;.dae&lt;br /&gt;
* &#039;&#039;level_bnv&#039;&#039;.dae&lt;br /&gt;
* &#039;&#039;level_textures.tga/jpg/png&#039;&#039;&lt;br /&gt;
* Character.xml or AISA with player&lt;br /&gt;
* ONSK name in &amp;lt;Sky&amp;gt; (in Windows, this can be a fake name; does the Mac need actual ONSK files?)&lt;br /&gt;
* ONLD file for the new level; read [[Making_a_mod_package#Mod_Info.cfg|HERE]] about making sure your level is unlocked (accessible on the Load Game screen)&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;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Level SharedPath=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| link&lt;br /&gt;
| The master XML file can link to other XML files. Most of them will be [[OBD:BINA/OBJC#OBJC_types|BINACJBO]] files. The file type is declared inside the file, so the file name itself doesn&#039;t have to contain the type. Ergo, &amp;quot;BINACJBOCharacter.xml&amp;quot; can be given a simpler name like &amp;quot;Character.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some resources used by those XML files can be found in a &#039;&#039;&#039;shared&#039;&#039;&#039; folder. OniSplit copies textures and &amp;quot;physics&amp;quot; objects into the output folder; furniture objects will be integrated into the AKEV. Unused resources in the shared folder will be ignored. That way the final level archive or AE package contains only the necessary files, saving disk space for the end user.&lt;br /&gt;
&lt;br /&gt;
In the demo are various subfolders in the &#039;&#039;&#039;shared&#039;&#039;&#039; folder: consoles, doors, furniture, triggers and turrets. These file types do not need their file prefixes: CONS, DOOR, TRIG and OFGA. OniSplit will recognize them nonetheless.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Common mistake:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A few CJBO files &#039;&#039;&#039;need relative paths for resources&#039;&#039;&#039;. Inserting only a file name will not work. Let us take consoles for example: A relative path to a console should look like this: &amp;quot;&#039;&#039;&#039;consoles/console_data.oni&#039;&#039;&#039;&amp;quot;. The resources are stored in &#039;&#039;&#039;shared/console/&#039;&#039;&#039; but since the XML master file points to the starting folder via &amp;quot;../shared&amp;quot;, it will be omitted in all actual resource paths. If you need, look into the files of the [http://mods.oni2.net/node/299 demo project &amp;quot;lab&amp;quot;]. &#039;&#039;&#039;Doors&#039;&#039;&#039; and &#039;&#039;&#039;furniture&#039;&#039;&#039; also require relative paths.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lab/lab.xml&#039;&#039;&#039;&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;Level SharedPath=&amp;quot;../shared&amp;quot;&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lab/Console.xml&#039;&#039;&#039;&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;
        &amp;lt;CONS Id=&amp;quot;4695&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;Gunk&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;944.1944 -27 29.37764&amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Rotation&amp;gt;3.623707E-05 270 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;Class&amp;gt;consoles/console_data.oni&amp;lt;/Class&amp;gt;&lt;br /&gt;
                ...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Environment&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Model&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| Used to import level geometry and static objects. See [[#&amp;lt;Model&amp;gt;|HERE]] for detailed information.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Import Path=&amp;quot;...&amp;quot;/&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Node Id=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| string&lt;br /&gt;
| informational (space for notes)&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;ScriptId&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| integer&lt;br /&gt;
| Can be used with BSL commands such as ...&lt;br /&gt;
: [[#&amp;lt;Model&amp;gt;|env_show ID 1]] (use 0 to hide)&lt;br /&gt;
: [[#Breakable glass with BSL recognition|env_broken ID1 [ID2]]] (if a second ID is supplied then objects in the range ID1..ID2 get counted; &amp;quot;3001 3018&amp;quot; would cover 18 objects)&lt;br /&gt;
: [[#Texture exchange|env_texswap ID texture]] (no file prefix/suffix allowed)&lt;br /&gt;
: [[#env_shade|env_shade ID ID R G B]]&lt;br /&gt;
Static objects store their ID in [[XML:AKEV#IDXA_.28quad_group_id.29|one of AKEV&#039;s IDXA instances]].&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;GunkFlags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
;AGQG (Gunk) flags (trimmed list)&lt;br /&gt;
see &#039;&#039;OniSplit -help enums&#039;&#039; for more flags&lt;br /&gt;
:None&lt;br /&gt;
:NoCollision&lt;br /&gt;
:NoObjectCollision&lt;br /&gt;
:NoCharacterCollision&lt;br /&gt;
:NoDecal&lt;br /&gt;
:TwoSided&lt;br /&gt;
:Invisible&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Rooms&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| -&lt;br /&gt;
| For detailed information see [[#&amp;lt;Rooms&amp;gt;|HERE]].&lt;br /&gt;
&lt;br /&gt;
For a Google SketchUp BNV tutorial see [http://web.archive.org/web/20201029111158/http://oni.bungie.org/forum/viewtopic.php?pid=36760#p36760 HERE].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Import Path=&amp;quot;...&amp;quot;/&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| File path to *.dae file. BNV data, used to create pathfinding.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Textures&amp;gt; {{Anchor|textures_tag}}&lt;br /&gt;
| -&lt;br /&gt;
| With OniSplit v0.9.94.0+ you can use attributes to set the default import formats and max dimensions. For example:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;Textures Format=&amp;quot;BGR&amp;quot; AlphaFormat=&amp;quot;RGBA&amp;quot; MaxSize=&amp;quot;512&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Textures with a dimension that isn&#039;t a power of two (2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;) and textures larger than 512px on a side will be resized. For example, 2003x2000 will become 512x512. (What would 257x255 become?)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Texture Name=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| string&lt;br /&gt;
| TXMP file name to generate.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Flags&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| Optional tag. For list of flags see [[XML:TXMP|HERE]].&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Format&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
:DXT1&lt;br /&gt;
:BGR&lt;br /&gt;
:RGBA&lt;br /&gt;
:BGR555&lt;br /&gt;
:BGRA5551&lt;br /&gt;
:BGRA4444&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;GunkFlags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
;AGQG (Gunk) flags (trimmed list)&lt;br /&gt;
see &#039;&#039;OniSplit -help enums&#039;&#039; for more flags&lt;br /&gt;
:None&lt;br /&gt;
:NoCollision&lt;br /&gt;
:NoObjectCollision&lt;br /&gt;
:NoCharacterCollision&lt;br /&gt;
:NoDecal&lt;br /&gt;
:TwoSided&lt;br /&gt;
:Invisible&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Image&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| File path to *.tga/jpg file.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Sky&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| string&lt;br /&gt;
| ONSKfile.oni (without file pre- and suffix)&lt;br /&gt;
&lt;br /&gt;
The import doesn&#039;t work with an empty tag. &amp;lt;Sky&amp;gt;clear&amp;lt;/Sky&amp;gt; helps here; any other fictional name will also do.&lt;br /&gt;
&lt;br /&gt;
For detailed information see [[XML:ONSK|HERE]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Objects&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Import&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| link&lt;br /&gt;
| File path to an OBJC (collection) file. Supported collection files for &amp;lt;Import&amp;gt; are:&lt;br /&gt;
: [[XML:BINA/OBJC/CHAR|Character.xml]] (has to contain player character if there&#039;s no AISA file with it)&lt;br /&gt;
: [[XML:BINA/OBJC/CONS|Console.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/DOOR|Door.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/FLAG|Flag.xml]]&lt;br /&gt;
: [[#Furniture.xml|Furniture.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/NEUT|Neutral.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PART|Particle.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PATR|PatrolPath.xml]]&lt;br /&gt;
: [[#Physics.xml|Physics.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PWRU|PowerUp.xml]]&lt;br /&gt;
: [[XML:SNDD#BINACJBOSound.xml|Sound.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/TRIG|Trigger.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/TRGV|TriggerVolume.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/WEAP|Weapon.xml]]&lt;br /&gt;
&lt;br /&gt;
The following two collection files are &#039;&#039;&#039;NOT&#039;&#039;&#039; supported. You need to copy them as regular pre-compiled *.oni files into your mod package:&lt;br /&gt;
: [[XML:BINA/OBJC/MELE|Melee.xml]] (overrides global MELE; not used in vanilla levels)&lt;br /&gt;
: [[XML:BINA/OBJC/CMBT|Combat.xml]] (overrides global CMBT?; not used in vanilla levels)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inside&#039;&#039;&#039; the following three supported collection files, provide links to pre-compiled (*.oni) class files: console, door and furniture collections. Use relative paths such as:&lt;br /&gt;
:: &amp;lt;code&amp;gt;&#039;&#039;&#039;consoles/&#039;&#039;&#039;console_data&#039;&#039;&#039;.oni&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;&#039;&#039;&#039;doors/&#039;&#039;&#039;TCdouble&#039;&#039;&#039;.oni&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;&#039;&#039;&#039;furniture/&#039;&#039;&#039;V_tctf_bigvan&#039;&#039;&#039;.oni&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are unsure about the folder structure refer back to the [http://mods.oni2.net/node/299 level import demo].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Films&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Import&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| File path to *.xml file. OniSplit creates a [[XML:FILM|FILM]] file from it. Used for characters in cutscenes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Cameras&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Camera Path=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| File path to *.dae file. OniSplit creates an OBAN file from it. Used for cutscenes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Animation Name=&amp;quot;...&amp;quot;/&amp;gt;&lt;br /&gt;
| string&lt;br /&gt;
| Name for the OBAN file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a trimmed-down version of the master file &#039;&#039;&#039;lab.xml&#039;&#039;&#039; from the demo. It&#039;s meant to give you a first impression. We might upload a smaller demo someday with all features nonetheless.&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&amp;gt;&lt;br /&gt;
    &amp;lt;Level SharedPath=&amp;quot;../shared&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Environment&amp;gt;&lt;br /&gt;
            &amp;lt;Model&amp;gt;&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_env.dae&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_bomber_window.dae&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_motorcycle.dae&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Node Id=&amp;quot;motorcycle&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;ScriptId&amp;gt;9&amp;lt;/ScriptId&amp;gt;&lt;br /&gt;
                        &amp;lt;GunkFlags&amp;gt;NoCollision&amp;lt;/GunkFlags&amp;gt;&lt;br /&gt;
                    &amp;lt;/Node&amp;gt;&lt;br /&gt;
                &amp;lt;/Import&amp;gt;&lt;br /&gt;
            &amp;lt;/Model&amp;gt;&lt;br /&gt;
            &amp;lt;Rooms&amp;gt;&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_bnv.dae&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/Rooms&amp;gt;&lt;br /&gt;
            &amp;lt;Textures&amp;gt;&lt;br /&gt;
                &amp;lt;Texture Name=&amp;quot;GOO&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Format&amp;gt;bgra4444&amp;lt;/Format&amp;gt;&lt;br /&gt;
                    &amp;lt;GunkFlags&amp;gt;NoCollision&amp;lt;/GunkFlags&amp;gt;&lt;br /&gt;
                    &amp;lt;Image&amp;gt;env/images/GOO.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
                &amp;lt;/Texture&amp;gt;&lt;br /&gt;
            &amp;lt;/Textures&amp;gt;&lt;br /&gt;
        &amp;lt;/Environment&amp;gt;&lt;br /&gt;
        &amp;lt;Sky&amp;gt;sunset&amp;lt;/Sky&amp;gt;&lt;br /&gt;
        &amp;lt;Objects&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;Character.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;Furniture.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;TriggerVolume.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;Physics.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
        &amp;lt;/Objects&amp;gt;&lt;br /&gt;
        &amp;lt;Films&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;films/BomberKonRun01.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;films/BomberKonRun02.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
        &amp;lt;/Films&amp;gt;&lt;br /&gt;
        &amp;lt;Cameras&amp;gt;&lt;br /&gt;
            &amp;lt;Camera Path=&amp;quot;cameras/BomberCam01.dae&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Animation Name=&amp;quot;BomberCam01&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/Camera&amp;gt;&lt;br /&gt;
            &amp;lt;Camera Path=&amp;quot;cameras/BomberCam02.dae&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Animation Name=&amp;quot;BomberCam02&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/Camera&amp;gt;&lt;br /&gt;
        &amp;lt;/Cameras&amp;gt;&lt;br /&gt;
    &amp;lt;/Level&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;Model&amp;gt;===&lt;br /&gt;
This tag is mandatory (it must be present to avoid errors); the model section contains one import path to the AKEV (level) geometry (*.dae) and can contain additional import paths for exceptions (*.dae).&lt;br /&gt;
&lt;br /&gt;
Data from the demo:&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_env.dae&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_motorcycle.dae&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Node Id=&amp;quot;motorcycle&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;ScriptId&amp;gt;9&amp;lt;/ScriptId&amp;gt;&lt;br /&gt;
                        &amp;lt;GunkFlags&amp;gt;NoCollision&amp;lt;/GunkFlags&amp;gt;&lt;br /&gt;
                    &amp;lt;/Node&amp;gt;&lt;br /&gt;
                &amp;lt;/Import&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;env_show&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The motorcycle has here scripting ID 9. You can show and hide the object with the BSL command &#039;&#039;&#039;env_show&#039;&#039;&#039;, where the second parameter means true or false. &#039;&#039;&#039;Never use 0 as an ID&#039;&#039;&#039; because it won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
 env_show 9 1&lt;br /&gt;
 env_show 9 0&lt;br /&gt;
&lt;br /&gt;
EdT demonstrates env_show [https://www.youtube.com/watch?v=Em6wa5JTQNM here]. Note how the objects have collision.&lt;br /&gt;
&lt;br /&gt;
The last vanilla level (Syndicate Mountain Compound) has a big satellite dish platform that can be made hidden. Obviously, such objects/areas can be made to have pathfinding too.&lt;br /&gt;
&lt;br /&gt;
;More possible applications of env_show:&lt;br /&gt;
* ground/ceiling/objects for cutscenes that become partially destroyed&lt;br /&gt;
* destructible walls like in Deus Ex: Human Revolution (trigger volume, replacing punch anim with punch-through-wall anim)&lt;br /&gt;
* grids in front of ventilation shafts (a small door object could be an alternative)&lt;br /&gt;
** at the moment this can&#039;t be done because characters can&#039;t sneak under the top edge of the opening (the characters collision spheres are too big)&lt;br /&gt;
* managing object groups with trigger volumes (save multiple objects in one DAE file)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- atm, the effort is not worth the work&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://dl.dropboxusercontent.com/u/139715/OniGalore/TV_triggered_env_show.png&amp;lt;/nowiki&amp;gt; (dead link)&lt;br /&gt;
: edit: replace 0 by 25&lt;br /&gt;
&lt;br /&gt;
If the objects appear to flicker then we could replace the hide_all_object_groups() function with individual TV exit functions.&lt;br /&gt;
&lt;br /&gt;
 func hide_all_object_groups&lt;br /&gt;
 {&lt;br /&gt;
 	# env_show id [1|0]&lt;br /&gt;
 	env_show 1 0&lt;br /&gt;
 	env_show 2 0&lt;br /&gt;
 	# ...&lt;br /&gt;
 	env_show 25 0&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func show_object_group (int grpA, int grpB, int grpC, int grpD, int grpE, int grpF, int grpG, int grpH)&lt;br /&gt;
 {&lt;br /&gt;
 	env_show (grpA, 1)&lt;br /&gt;
 	env_show (grpB, 1)&lt;br /&gt;
 	env_show (grpC, 1)&lt;br /&gt;
 	env_show (grpD, 1)&lt;br /&gt;
 	env_show (grpE, 1)&lt;br /&gt;
 	env_show (grpF, 1)&lt;br /&gt;
 	env_show (grpG, 1)&lt;br /&gt;
 	env_show (grpH, 1)&lt;br /&gt;
 &lt;br /&gt;
 	# missing arguments are taken to be 0&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func TV_25_enter&lt;br /&gt;
 {&lt;br /&gt;
 	hide_all_object_groups&lt;br /&gt;
 &lt;br /&gt;
 	# show object group of entered TV and of neighboring TVs&lt;br /&gt;
 	# (center, north, north east, east, east south, south, south west, west, west north)&lt;br /&gt;
 	# there&#039;s a limit of 8 arguments per function&lt;br /&gt;
 	show_object_group 25 1 2 3 4 5 6 7&lt;br /&gt;
 	show_object_group 8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # other examples&lt;br /&gt;
 func TV_6_enter&lt;br /&gt;
 {&lt;br /&gt;
 	hide_all_object_groups&lt;br /&gt;
 	show_object_group 0 0 00 0 00 00 00 00&lt;br /&gt;
 	show_object_group 22&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func TV_20_enter&lt;br /&gt;
 {&lt;br /&gt;
 	hide_all_object_groups&lt;br /&gt;
 	show_object_group 20 21 6 19&lt;br /&gt;
 }&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Import of object groups====&lt;br /&gt;
&#039;&#039;&#039;Mod Tool versus SketchUp&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The meaning and behavior of &amp;quot;groups&amp;quot; greatly differs in these two programs.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;In SketchUp&#039;&#039;&#039; you can group objects which enables you to easily duplicate all objects inside a group and to scale/rotate/translate them all together.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;In Mod Tool&#039;&#039;&#039; grouped objects are still loose, and duplicating a group won&#039;t duplicate the objects. To achieve the same effect as in SketchUp, you have to create a hierarchy where any one object is the &amp;quot;parent&amp;quot; and all others the &amp;quot;children&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Google SketchUp&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To create a group, select two or more objects, right-click on the selection and choose &amp;quot;make group&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:ModTool_can_import_objs_in_hierarchies.jpg|right|thumb|Mod Tool can import objects in hierarchies to Oni.]]&lt;br /&gt;
&#039;&#039;&#039;Mod Tool&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Either use the Explorer (A) or the Schematics (B) to create a hierarchy.&lt;br /&gt;
&lt;br /&gt;
:(A) In the Explorer window, drag and drop one or more objects onto another one.&lt;br /&gt;
&lt;br /&gt;
:(B) Open the constrain tab at the right side. Select parent object, click &amp;quot;Parent&amp;quot;, click the child object(s). Check the result in the Schematics window.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mod Tool: caution when saving to DAE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:A normal selection won&#039;t do. You have to select the object tree to successfully save a hierarchy. This is the same way that you do it with Oni characters.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=====Import of smart object groups=====&lt;br /&gt;
Let&#039;s say there are two groups. If an edit is made to one mesh, the clone in the other group is instantly changed the same way.&lt;br /&gt;
&lt;br /&gt;
So that&#039;s a smart group. In SketchUp this is named &amp;quot;component&amp;quot;. In Mod Tool it&#039;s named ???.&lt;br /&gt;
:(Can be imported from SketchUp DAE file but causes a crash when re-saving. I guess a script is needed to do the job.)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Breakable glass with BSL recognition====&lt;br /&gt;
Broken environmental objects can be recognized by the BSL command &#039;&#039;env_broken (ID_1, ID_N)&#039;&#039;. However, this requires additional code to work.&lt;br /&gt;
&lt;br /&gt;
An example is the training level. Let&#039;s determine how we can set up such a thing.&lt;br /&gt;
&lt;br /&gt;
First we need a [[XML:BINA/OBJC/TRGV|trigger volume]] like in level 1.&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;TRGV Id=&amp;quot;11495&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;Locked&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;-714.6615 -298 -555.2073&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;tv75&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;Scripts&amp;gt;&lt;br /&gt;
                    &amp;lt;Entry&amp;gt;&amp;lt;/Entry&amp;gt;&lt;br /&gt;
                    &amp;lt;Inside&amp;gt;targets_gone&amp;lt;/Inside&amp;gt;&lt;br /&gt;
                    &amp;lt;Exit&amp;gt;&amp;lt;/Exit&amp;gt;&lt;br /&gt;
                &amp;lt;/Scripts&amp;gt;&lt;br /&gt;
                &amp;lt;Teams&amp;gt;255&amp;lt;/Teams&amp;gt;&lt;br /&gt;
                &amp;lt;Size&amp;gt;400 31 270&amp;lt;/Size&amp;gt;&lt;br /&gt;
                &amp;lt;TriggerVolumeId&amp;gt;75&amp;lt;/TriggerVolumeId&amp;gt;&lt;br /&gt;
                &amp;lt;ParentId&amp;gt;0&amp;lt;/ParentId&amp;gt;&lt;br /&gt;
                &amp;lt;Notes&amp;gt;&amp;lt;/Notes&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;PlayerOnly&amp;lt;/Flags&amp;gt;&lt;br /&gt;
            &amp;lt;/OSD&amp;gt;&lt;br /&gt;
        &amp;lt;/TRGV&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need some BSL code.&lt;br /&gt;
&lt;br /&gt;
 var int inside_target_function;&lt;br /&gt;
 &lt;br /&gt;
 func void enter_target_function(void)&lt;br /&gt;
 {&lt;br /&gt;
    dprint enter_target_function&lt;br /&gt;
    inside_target_function = 1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func void exit_target_function(void)&lt;br /&gt;
 {&lt;br /&gt;
    dprint exit_target_function&lt;br /&gt;
    inside_target_function = 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func void targets_are_not_gone(void)&lt;br /&gt;
 {&lt;br /&gt;
 	# CB: turn off the trigger volume and sleep for a second&lt;br /&gt;
 	# so as not to cause hideous performance loss&lt;br /&gt;
 	trigvolume_enable tv75 0&lt;br /&gt;
 	sleep 60&lt;br /&gt;
 	trigvolume_enable tv75 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func void targets_gone(string ai_name)&lt;br /&gt;
 {&lt;br /&gt;
 	if (inside_target_function eq 0)&lt;br /&gt;
 	{	&lt;br /&gt;
 		enter_target_function() # catch other &amp;quot;targets_gone&amp;quot; functions to let them do nothing&lt;br /&gt;
 &lt;br /&gt;
 		var int num_broken = env_broken(3001, 3018);&lt;br /&gt;
 		# if you only one target use scheme: env_broke(3001, 3001)&lt;br /&gt;
 &lt;br /&gt;
 		if (num_broken eq 18)&lt;br /&gt;
 		{&lt;br /&gt;
 			targets_are_gone();&lt;br /&gt;
 		}&lt;br /&gt;
 	&lt;br /&gt;
 		if (num_broken &amp;lt; 18)&lt;br /&gt;
 		{&lt;br /&gt;
 			targets_are_not_gone(); # to set check interval to one second&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		exit_target_function&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func targets_are_gone&lt;br /&gt;
 {&lt;br /&gt;
 	trigvolume_enable tv75 0&lt;br /&gt;
 	# [...]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
;Explanation:&lt;br /&gt;
&lt;br /&gt;
Player enters the TV, targets_gone() gets triggered. The variable &amp;quot;inside_target_function&amp;quot; should be 0 by default, so we will enter the &amp;quot;if&amp;quot; block. Next, we can assume that the player didn&#039;t destroy all glass objects, so &amp;quot;num_broken&amp;quot; will be less than 18; thus, targets_are_not_gone() gets called.&lt;br /&gt;
&lt;br /&gt;
The TV function targets_gone() &#039;&#039;would&#039;&#039; be triggered every frame, but targets_are_not_gone() creates a delay between checks: the TV gets deactivated for 60 frames. Then the TV becomes enabled again and will start anew until all glass objects got destroyed or player left the TV.&lt;br /&gt;
&lt;br /&gt;
In this case the targets_gone() function will do nothing because &amp;quot;inside_target_function&amp;quot; was set to 1 by the first call.&lt;br /&gt;
&lt;br /&gt;
targets_are_gone() eventually disables the TV to prevent memory overflow; this function also contains all the things (&amp;quot;[...]&amp;quot;) that you want to happen after the glass target is broken.&lt;br /&gt;
&lt;br /&gt;
====Texture exchange====&lt;br /&gt;
BSL command supported on Windows and Mac:&lt;br /&gt;
: env_texswap ID texture&lt;br /&gt;
&lt;br /&gt;
Might be useful to switch on/off static and animated textures. (News broadcast screen: running or off or smashed. Lava stream: flowing or stagnating or cooled down. Etc.)&lt;br /&gt;
&lt;br /&gt;
A similar effect can be achieved by showing/hiding geometries with different textures as EdT has demonstrated in a private test. That way it should also be possible to have different vertex coloring for an area.&lt;br /&gt;
&lt;br /&gt;
====Vertex coloring====&lt;br /&gt;
Vertex colors can be edited manually in Blender by setting up following 3 things:&lt;br /&gt;
* Properties Panel &amp;gt; Data &amp;gt; Color Attributes&amp;lt;!--only tested with Face Corner, Byte Color--&amp;gt;&lt;br /&gt;
* 3D viewport (left top) &amp;gt; change work mode to Vertex Paint&lt;br /&gt;
* 3D viewport (right top) &amp;gt; change to Viewport Shading to Solid mode (under the dropdown menu you can choose &amp;quot;flat&amp;quot; to have full saturation)&lt;br /&gt;
&lt;br /&gt;
{{divhide|Mod Tool}}&lt;br /&gt;
&lt;br /&gt;
[http://web.archive.org/web/20170529111607/http://softimage.wiki.softimage.com/xsidocs/tex_vcolor_CreatingColoratVerticesCAVMaps.htm SoftImage documentation.] Observation: The sniper tower from level 19 Syndicate Mountain Compound can be isolated and re-imported as it is. It will appear quite dark.&lt;br /&gt;
&lt;br /&gt;
If we remove &amp;quot;_color&amp;quot; from the object, the shadows will be gone next time we import the tower.&lt;br /&gt;
&lt;br /&gt;
Mod Tool: Explorer [8]&lt;br /&gt;
&lt;br /&gt;
 Object&lt;br /&gt;
  |&lt;br /&gt;
  +-- Polygon Mesh&lt;br /&gt;
        |&lt;br /&gt;
        +-- Cluster&lt;br /&gt;
              |&lt;br /&gt;
              +-- Polygon&lt;br /&gt;
              |     |&lt;br /&gt;
              |     +-- [...]&lt;br /&gt;
              |&lt;br /&gt;
              +-- NodeProperties&lt;br /&gt;
                    |&lt;br /&gt;
                    +-- &#039;&#039;&#039;_color&#039;&#039;&#039;&lt;br /&gt;
                    +-- texcoord (Explicit UVWs)&lt;br /&gt;
                          |&lt;br /&gt;
                          +-- Vertex_Color_Def&lt;br /&gt;
&lt;br /&gt;
So, how do we modify that data?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Single object shading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If there&#039;s already a vertex color property, you can use Shift + W to activate the Paint Vertex Color Tool. With Control + W you can change the brush color. R + Hold Click + Move Mouse let you change the brush size. The more vertices (points) you have, the more detailed you can make the shadows/colors. But keep in mind that too many polygons can destroy collision, making characters fall through the ground.&lt;br /&gt;
&lt;br /&gt;
If there&#039;s no vertex color property, the first usage of Shift + W will create that property. But you can also manually create it via Property &amp;gt; Color under Vertices Map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Level-wide shading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:light_test_modtool.png|right|thumb]]&lt;br /&gt;
[[Image:light_test_ingame.png|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
To get general shading/lighting you can set up light sources. &amp;quot;Infinite&amp;quot; lights are useful for global lighting, while &amp;quot;Light Box&amp;quot;, &amp;quot;Point&amp;quot;, &amp;quot;Neon&amp;quot; and &amp;quot;Spot&amp;quot; are more suitable as local light sources. They can be accessed via Primitives &amp;gt; Light.&lt;br /&gt;
&lt;br /&gt;
By default, a Mod Tool scene has one Infinite light, but it doesn&#039;t shine in every direction so you might want to add more Infinite lights. Let&#039;s say one Infinite light for each direction (+X, -X, +Y, -Y, +Z, -Z) with an intensity of circa 0.25 (night) or 0.75 (day).&lt;br /&gt;
&lt;br /&gt;
The illumination of those lights can be integrated into the vertex color property:&lt;br /&gt;
* Property &amp;gt; Color At Vertices Map&lt;br /&gt;
* Property &amp;gt; Render Map&lt;br /&gt;
* In render map property page, under Sampling select Vertices Only&lt;br /&gt;
* Under Surface Color, choose Enable, then in the box below select Vertex _Color; if that option does not appear, click on the New button next to it&lt;br /&gt;
* Under Map, select Illumination only&lt;br /&gt;
* Finally, click on the button Regenerate Maps...&lt;br /&gt;
&lt;br /&gt;
This must be done for all objects separately.&lt;br /&gt;
&lt;br /&gt;
: [http://mods.oni2.net/system/files/vertex_color_script.txt There&#039;s a script here]&amp;lt;!--http://mods.oni2.net/node/352--&amp;gt; which can apply vertex color and render maps to all &#039;&#039;&#039;selected&#039;&#039;&#039; objects. Load it into the script editor with Alt + 4 and hit F5 to run it. (Be sure the script&#039;s language was set to VBScript.)&lt;br /&gt;
: The variable &amp;quot;overwrite_VC&amp;quot; can be changed.&lt;br /&gt;
:: With &amp;quot;1&amp;quot; all existing CAV maps of selected objects will be overwritten. This can take some time.&lt;br /&gt;
:: With &amp;quot;0&amp;quot; only selected objects without CAV maps will be the script&#039;s target.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes on ModTool view modes&#039;&#039;&#039;&lt;br /&gt;
* &amp;quot;Constant&amp;quot; let you see the colors of the vertex coloring only.&lt;br /&gt;
* &amp;quot;Textured Decal&amp;quot; let you see object textures only.&lt;br /&gt;
* &amp;quot;Shaded&amp;quot; let you see the illumination only.&lt;br /&gt;
* &amp;quot;Textured&amp;quot; let you see the textured object with illumination and vertex coloring.&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
=====env_shade=====&lt;br /&gt;
If you use &#039;&#039;&#039;env_shade&#039;&#039;&#039;, use it with caution. It completely overwrites the vertex coloring.&lt;br /&gt;
&lt;br /&gt;
 # BSL command&lt;br /&gt;
 # env_shade obj_id obj_id R G B&lt;br /&gt;
 &lt;br /&gt;
 # examples&lt;br /&gt;
 env_shade 7 7			# object 7 will be black&lt;br /&gt;
 env_shade 7 7 0 0 0		# object 7 will be black&lt;br /&gt;
 env_shade 7 7 .31 .999 .5	# object 7 will be quite green&lt;br /&gt;
 env_shade 7 10 1 1 1		# object 7, 8, 9, 10 lose all their shading&lt;br /&gt;
&lt;br /&gt;
====Baked lightmaps====&lt;br /&gt;
A drawback of this method, AKA shadow maps, is the high number of [[XML:BINA/TMBD|TMBD]] changes and new textures for every wall, requiring a lot of memory. How to create shadow maps:&lt;br /&gt;
&lt;br /&gt;
* https://web.archive.org/web/20121105081823/http://www.game-artist.net/forums/support-tech-discussion/5622-burning-shadows-onto-texture-xsi.html&lt;br /&gt;
&amp;lt;!-- http://caffeineabuse.blogspot.de/2008/12/cast-shadow-only-lights-in-xsi.html might be also interesting --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes on map options:&lt;br /&gt;
* &amp;quot;Surface color and illumination&amp;quot;: outputs used texture with added shadows&lt;br /&gt;
** Can be used to replace original texture&lt;br /&gt;
* &amp;quot;Illumination only&amp;quot;: output a texture that only contains the shadows&lt;br /&gt;
** Can be used on a new overlying, transparent surface&lt;br /&gt;
&lt;br /&gt;
====Standalone lightmaps====&lt;br /&gt;
With this approach there are two meshes, whereby the shadow effects on one mesh get drawn in front of the regular level texture.&lt;br /&gt;
&lt;br /&gt;
Compared to the &amp;quot;baked lightmaps&amp;quot; method, this needs more polygons of course. And these polygons are transparent, which is a problem with Oni&#039;s limited rendering ability for such textures. However, standalone lightmaps only need a few new textures if used wisely.&lt;br /&gt;
&lt;br /&gt;
Read [[Lightmapping levels]] to learn more.&lt;br /&gt;
&lt;br /&gt;
[[Image:Oni_Lightmaps_double_polygon_method.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;Rooms&amp;gt;===&lt;br /&gt;
The Rooms tag is mandatory. It contains an import path to BNV and ghosts (*.dae) which are used to create pathfinding grids. For information on the binary data behind this, see [[OBD:AKVA|HERE]].&lt;br /&gt;
&lt;br /&gt;
Sample code from the master XML file:&lt;br /&gt;
 &amp;lt;Import Path=&amp;quot;env/lab_bnv.dae&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fundamentals&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;BNVs&#039;&#039;&#039; are &#039;&#039;&#039;volumes&#039;&#039;&#039; (sometimes also named &#039;&#039;&#039;rooms&#039;&#039;&#039;) that have a pathfinding grid assigned to them.&lt;br /&gt;
* For practical reasons you only need &#039;&#039;&#039;floors and ramps&#039;&#039;&#039; to build a BNV. (As seen [http://edt.oni2.net/images/Hideout_BNV.jpg HERE.])&lt;br /&gt;
** A BNV polygon can consist of 3 or more points, but it&#039;s recommended to use &#039;&#039;&#039;shapes with 4 points&#039;&#039;&#039; because the other shapes usually waste more grid space. At the moment you can import only &#039;&#039;&#039;[[wikt:convex|convex]]&#039;&#039;&#039; shapes.&lt;br /&gt;
* Secondly, there are so called &#039;&#039;&#039;ghosts&#039;&#039;&#039; (vertical quads) that connect &#039;&#039;&#039;neighboring BNVs&#039;&#039;&#039;. AI can only transit from BNV to another through ghosts.&lt;br /&gt;
: OniSplit gives error messages for ghosts that don&#039;t have 2 neighboring BNVs, for example:&lt;br /&gt;
 BNV Builder: Ghost &#039;grid2&#039; has no adjacencies at &amp;lt;-72,41 1,999 -166,6&amp;gt; and &amp;lt;-71 1,999 -168,21&amp;gt;, ignoring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tolerance values&#039;&#039;&#039;&lt;br /&gt;
* Horizontal distance from room to ghost: 1&lt;br /&gt;
* Vertical distance from room to ghost: 18&lt;br /&gt;
* Ghost&#039;s horizontal dimension must be greater than 0&lt;br /&gt;
* Under optimal circumstances, pathfinding works on a plane that is +4 world units above or -0.5 below the pathfinding grid&lt;br /&gt;
* Normally characters can&#039;t pass over low vertical walls such as stairs/curbs if those don&#039;t have a ramp under them; near ground level (Y=0) is an exception where characters are allowed to step on a plane that is 4 world units above pathfinding grid; higher planes need a ramp&lt;br /&gt;
* Maximum angle of ramp you can go on is 70°; higher angles will make characters fall through to their death (in those cases you might want to add invisible walls/boxes to prevent them from touching the ramp)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More notes on PF processing&#039;&#039;&#039;&lt;br /&gt;
* Actually, BNV and ghosts can have any name and don&#039;t need any texture.&lt;br /&gt;
* During pathfinding calculation, OniSplit creates a new folder called &amp;quot;temp&amp;quot; and a subfolder &amp;quot;grids&amp;quot;. There is a file named &amp;quot;&#039;&#039;levelname&#039;&#039;_grids.dae&amp;quot;. That file contains rooms with textures called &amp;quot;bnv_grid_&#039;&#039;N&#039;&#039;.tga&amp;quot; which mark obstacles in the pathfinding grid. Ghosts will have a transparent texture &amp;quot;&#039;&#039;&#039;_marker_ghost&#039;&#039;&#039;.tga&amp;quot;. You also get these when you export a level. Transparent ghosts make it easier to see the rest of your level if you have many of those planes.&lt;br /&gt;
* In Mod Tool, ghosts and rooms can be grouped under a null object. Right-click the null object to select all its children, then use &amp;quot;Selection Only [x]&amp;quot; as your saving option. That way all the planes can be quickly saved to a *.dae file.&lt;br /&gt;
* You can influence the pathfinding creation of dangerous zones using danger quads. Read about those [[#Marker textures|HERE]].&lt;br /&gt;
* Another kind of influence is the [[#&amp;lt;Model&amp;gt;|gunk flag]] IgnoreGrid. It can be used to tell OniSplit to ignore the object during pathfinding creation. The grids in that place will be white.&lt;br /&gt;
&lt;br /&gt;
[[Image:Pathfinding_grid.jpg|thumb|200px|right|&#039;&#039;&#039;ai2_showgrids = 1&#039;&#039;&#039; in action]]&lt;br /&gt;
&#039;&#039;&#039;BSL commands&#039;&#039;&#039;&lt;br /&gt;
* chr_show_bnv = 1&lt;br /&gt;
:: shows number of BNVs the player is standing on&lt;br /&gt;
* ai2_showgrids = 1&lt;br /&gt;
:: shows pathfinding grids&lt;br /&gt;
* ai2_chump&lt;br /&gt;
:: spawns a friendly Striker that follows the player if possible, makes also pathfinding grids visible&lt;br /&gt;
* ai2_chump_stop = 1&lt;br /&gt;
:: Striker stops following you&lt;br /&gt;
* ai2_chump_stop = 0&lt;br /&gt;
:: Striker follows you again&lt;br /&gt;
&lt;br /&gt;
====Pathfinding on uneven ground====&lt;br /&gt;
Pathfinding works on slightly uneven ground as long as the polygons are 0.5 world units beneath or 4 world units above the BNV.&lt;br /&gt;
&lt;br /&gt;
For greater surface irregularities, we can use a trick:&lt;br /&gt;
* The problematic polygons must be saved to a DAE file and then referenced in the model section as an individual object.&lt;br /&gt;
* Then the &amp;lt;GunkFlags&amp;gt; tag needs to be &#039;&#039;&#039;&#039;&#039;GridIgnore&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Additionally we create a plane (invisible if necessary) under the object so that Oni doesn&#039;t think there&#039;s a hole.&lt;br /&gt;
* The ghosts must be taller than the highest polygon to be walked on. (This has been tested up to a height of 2,000 world units.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptoms of too-small ghosts&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A) AI can&#039;t run at all.&lt;br /&gt;
&lt;br /&gt;
B) AI loses PF ability if the tracked enemy performs animations that are outside of the pathfinding volume. Here&#039;s a video (&amp;lt;nowiki&amp;gt;https://youtu.be/vfKPzP5hiCo&amp;lt;/nowiki&amp;gt;, dead link) showing these symptoms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Missing boundaries&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say you have a BNV, tall ghosts, and a GridIgnore-flagged hill with trees and bushes and stuff.&lt;br /&gt;
&lt;br /&gt;
Why do AIs run up against the trees?&lt;br /&gt;
: &#039;&#039;&#039;Problem:&#039;&#039;&#039; There are no red/orange grids that limit the AI&#039;s movement. Normally, objects will produce red pathfinding squares around them. But objects that are 20 world units above the BNV are ignored just like objects with the IgnoreGrid flag.&lt;br /&gt;
: &#039;&#039;&#039;Solution:&#039;&#039;&#039; Add simple geometries like &#039;&#039;_marker_impassable fences&#039;&#039; or danger quads near the BNV.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disappearing AIs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The ground is sometimes not solid, and the player and AIs are falling through it.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Problem:&#039;&#039;&#039; On GridIgnore-flagged uneven ground, AIs can fall through it when they are out of the player&#039;s view.&lt;br /&gt;
: &#039;&#039;&#039;Solution:&#039;&#039;&#039; Use either &#039;&#039;&#039;chr_lock_active &#039;&#039;AI_name&#039;&#039;&#039;&#039;&#039; or &#039;&#039;&#039;chr_all_active = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Debugging====&lt;br /&gt;
&#039;&#039;&#039;(OniSplit v0.9.93.0+)&#039;&#039;&#039;&lt;br /&gt;
[[Image:OniBrowser.jpg|thumb|200px|right|OniBrowser displaying level geometry plus PF and ghosts.]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;env_show_ghostgqs = 1&#039;&#039;&#039; makes the ghost quads visible&lt;br /&gt;
** The original ghost quads can&#039;t be seen; per Neo, &amp;quot;they are not included in the octtree and bsp tree&amp;quot;&lt;br /&gt;
** To see them you must use the -debug option in the level creation command (available with OniSplit &#039;&#039;&#039;v0.9.93.0+&#039;&#039;&#039;)&lt;br /&gt;
 OniSplit.exe -create:level &#039;&#039;output_folder&#039;&#039; &#039;&#039;&#039;-debug&#039;&#039;&#039; &#039;&#039;input_folder&#039;&#039;/&#039;&#039;master_xml_file&#039;&#039;.xml&lt;br /&gt;
&lt;br /&gt;
Not all debugging/testing needs to be done in Oni. There is also a [http://mods.oni2.net/node/256 program] (Windows only) which can display the whole level.&lt;br /&gt;
&lt;br /&gt;
For example you can load an AKEV*.oni, select the level name, and use the hotkeys [B] and [P] to display BNVs and ghosts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bug prevention:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After all testing is done, you should compile the level a last time without the -debug option.&lt;br /&gt;
&lt;br /&gt;
AIs appear to have trouble shooting through ghost quads that got registered in the octtree/BSP tree as seen here (&amp;lt;nowiki&amp;gt;https://www.youtube.com/watch?v=-ZugVBgBVKc&amp;lt;/nowiki&amp;gt;, dead link).&lt;br /&gt;
&lt;br /&gt;
====When OniSplit fails to connect PF quads====&lt;br /&gt;
[[Image:Pathfinding_creation__merge_polygons_to_fix_connections.jpg|thumb|200px|right|Fixed PF in compound level after underground construction...]]&lt;br /&gt;
It can help to merge polygons to one object and merge their edges. These become white. (Outer edges are blue.)&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;Textures&amp;gt;===&lt;br /&gt;
====...used for exceptions====&lt;br /&gt;
The [[#textures_tag|textures tag]] is mandatory.&lt;br /&gt;
&lt;br /&gt;
AKEV textures will be imported by the master XML file automatically; you don&#039;t need to add them to that file.&lt;br /&gt;
&lt;br /&gt;
: With OniSplit v0.9.82-93.0, the textures&#039; formats will be DXT1 and (for transparent ones) BGRA4444.&lt;br /&gt;
: With OniSplit v0.9.94.0+ the textures&#039; formats will be BGR and (for transparent ones) RGBA.&lt;br /&gt;
&lt;br /&gt;
To change the default texture import format, use the Texture&#039;&#039;&#039;s&#039;&#039;&#039; tag. (Possible with OniSplit v0.9.94.0+.)&lt;br /&gt;
&lt;br /&gt;
To change the format/flag/gunk flag of a specific texture, use the Texture tag.&lt;br /&gt;
&lt;br /&gt;
An example:&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;Textures Format=&amp;quot;BGR&amp;quot; AlphaFormat=&amp;quot;RGBA&amp;quot; MaxSize=&amp;quot;512&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Texture Name=&amp;quot;GOO&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Flags&amp;gt;TwoSided&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                    &amp;lt;Format&amp;gt;BGRA4444&amp;lt;/Format&amp;gt;&lt;br /&gt;
                    &amp;lt;GunkFlags&amp;gt;NoCollision&amp;lt;/GunkFlags&amp;gt;&lt;br /&gt;
                    &amp;lt;Image&amp;gt;env/images/GOO.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
                &amp;lt;/Texture&amp;gt;&lt;br /&gt;
          &amp;lt;/Textures&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Use the gunk flag &amp;quot;TwoSided&amp;quot; to make surfaces visible from both sides.&lt;br /&gt;
* If the texture comes with the gunk flag &amp;quot;NoCollision&amp;quot; then all objects with that texture will have no collision. Characters would fall through it.&lt;br /&gt;
&lt;br /&gt;
Transparency and no collision together would make sense for a water-like substance. The Vago Biotech level uses this approach for the area with green toxic waste.&lt;br /&gt;
&lt;br /&gt;
[[Image:making_a_surface_transparent_and_twosided.png|thumb|200px|right|&#039;&#039;&#039;Figure 1&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[Image:AKEV_single_object_multiple_textures.png|thumb|200px|right|&#039;&#039;&#039;Figure 2&#039;&#039;&#039;&amp;lt;br&amp;gt;one object with multiple textures, one per polygon cluster]]&lt;br /&gt;
[[Image:AKEV_single_object_multiple_textures_ingame.png|thumb|200px|right|&#039;&#039;&#039;Figure 3&#039;&#039;&#039;&amp;lt;br&amp;gt;blue: two-sided&amp;lt;br&amp;gt;glass: two-sided and transparent&amp;lt;br&amp;gt;random metal: no flag (one-sided)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TwoSided and transparent objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to set this in Mod Tool. For TwoSided-ness, use one image source for diffuse and transparency. (It won&#039;t work with two image sources even if both sources use the same image.)&lt;br /&gt;
&lt;br /&gt;
For transparency you must additionally use the three checkboxes:&lt;br /&gt;
* Transparency: Enable&lt;br /&gt;
* Transparency: Use Alpha&lt;br /&gt;
* Transparency: Invert&lt;br /&gt;
&lt;br /&gt;
See &#039;&#039;&#039;Figure 1&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Regular textures====&lt;br /&gt;
OniSplit automatically imports textures of objects in the [[#&amp;lt;Model&amp;gt;|&amp;lt;Model&amp;gt; section]]. Those objects could be considered as AKEV core geometry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;One texture per object&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Furniture and Physics objects are allowed to have only one texture per object. AKEV core geometry can have one texture or multiple textures – that&#039;s up to you to decide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple textures per object&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Question:&#039;&#039;&#039; How do we apply multiple textures to an AKEV core object?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Answer:&#039;&#039;&#039; Assuming you are using Mod Tool the procedure will be as follows. Repeat this for each cluster you create (except for projection). See also &#039;&#039;&#039;Figure 2 and 3&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* Select some polygons&lt;br /&gt;
* Go to Material &amp;gt; Phong&lt;br /&gt;
* Hit [7] to open Render Tree&lt;br /&gt;
* Add a texture and connect &amp;quot;Image&amp;quot; with &amp;quot;Phong&amp;quot;, choose &amp;quot;diffuse&amp;quot; as illumination mode&lt;br /&gt;
* Double-click &amp;quot;Image&amp;quot; to open Material page&lt;br /&gt;
* In the Texture Projection section, click on &amp;quot;New&amp;quot; and choose a suitable projection&lt;br /&gt;
** Do this only if there isn&#039;t a projection in the &amp;quot;Texture_Coordinates_AUTO&amp;quot; cluster yet&lt;br /&gt;
** OniSplit processes only one texture projection, see &#039;&#039;&#039;Figure 4&#039;&#039;&#039;&lt;br /&gt;
* Choose the texture and UV, then fine-tune the UV via Alt + 7&lt;br /&gt;
&lt;br /&gt;
[[Image:AKEV_multiple_textures_one_projection.png|thumb|200px|right|&#039;&#039;&#039;Figure 4&#039;&#039;&#039;&amp;lt;br&amp;gt;use only one texture projection per object]]&lt;br /&gt;
&lt;br /&gt;
Caution: textures will be fixed to one set of flags. You can&#039;t use the same texture A for a one-sided cluster/object B and a two-sided cluster/object C. You would need to create a differently-named clone of that texture and apply that to cluster/object C.&lt;br /&gt;
&lt;br /&gt;
====Marker textures====&lt;br /&gt;
Marker textures are used to import certain objects with special flags. Import those objects alongside [[#&amp;lt;Model&amp;gt;|AKEV core]] geometry.&lt;br /&gt;
&lt;br /&gt;
Marker textures aren&#039;t imported automatically. Add those textures to the final package or plugin yourself, e.g. with some sort of script.&lt;br /&gt;
&lt;br /&gt;
 OniSplit.exe -create:txmp out env/markers/*.tga&lt;br /&gt;
&lt;br /&gt;
The flags Transparent, TwoSided and NoOcclusion are only set if the same texture source is used for diffuse and transparency and if transparency setting are enabled. See the subsection under &amp;quot;[[#...used for exceptions|...used for exceptions]]&amp;quot; called &amp;quot;TwoSided and transparent objects&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Danger quads&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pathfinding grids have different colored squares with different meanings.&lt;br /&gt;
* white/gray - clear space&lt;br /&gt;
* green light - near wall&lt;br /&gt;
* green - semi-passable&lt;br /&gt;
* green dark - stairs&lt;br /&gt;
* blue very light - border 1&lt;br /&gt;
* blue light - border 2&lt;br /&gt;
* blue - border 3&lt;br /&gt;
* blue dark - border 4&lt;br /&gt;
* &#039;&#039;&#039;orange - danger&#039;&#039;&#039;&lt;br /&gt;
* red - impassable&lt;br /&gt;
&lt;br /&gt;
For detailed information on colors, see [[OBD_talk:AKVA/0x24#EFFECTS_of_various_pathfinding_grid_tile_types|HERE]].&lt;br /&gt;
&lt;br /&gt;
Normally, OniSplit decide how to color the grids. But it&#039;s possible to add your own danger quads to fine-tune zones of higher danger. Those orange areas will be generated with the 4 different blue borders around it.&lt;br /&gt;
&lt;br /&gt;
Danger quads must have &amp;quot;&#039;&#039;&#039;_marker_danger&#039;&#039;&#039;&amp;quot; as texture name.&lt;br /&gt;
&lt;br /&gt;
Results in flags: Transparent TwoSided NoCollision Invisible NoOcclusion Danger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_marker_barrier&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!-- Originally this is only used for level-bounding invisible walls? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Results in flags: Transparent TwoSided(double-check) Invisible NoObjectCollision NoOcclusion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;COLLISION (boxes)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AIs can get stuck in detailed geometry. This can be prevented with collision boxes. In-game the box will be invisible, but has collision so characters can&#039;t get through. The pathfinding grid will be red where it comes in contact with the box; the red is followed by a light green and then regular green.&lt;br /&gt;
&lt;br /&gt;
[[XML:OFGA|OFGAs]] use the COLLISION texture. Onisplit doesn&#039;t automatically apply gunk flags to it. You need to use XML tags for that. Typically it would be &amp;lt;GunkFlags&amp;gt;Invisible NoObjectCollision&amp;lt;/GunkFlags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stairs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Texture: &#039;&#039;&#039;_marker_stairs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Normally, characters can&#039;t move on stairs because they contain vertical rises. In this case you can use a sloping quad that is above or inside the staircases. It&#039;s possible to set the desired flags in the &amp;lt;Model&amp;gt; section, but doing so and exporting these self-made stair ramps is wasted time. Simply apply _marker_stairs to that quad and characters will be able to move on that surface.&lt;br /&gt;
&lt;br /&gt;
Resulting flags: Stairs Transparent TwoSided Invisible NoObjectCollision NoOcclusion&lt;br /&gt;
&lt;br /&gt;
This has no effect on pathfinding creation. Regularly-textured stair geometry (which intersects the marker quad) will be flagged as NoCharacterCollision.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Impassable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
texture: &#039;&#039;&#039;_marker_impassable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Resulting flags: Transparent TwoSided (&amp;lt;-double-check this) Invisible NoOcclusion&lt;br /&gt;
&lt;br /&gt;
Impassable walls are very similar to collision boxes except that particles can also collide with them. The pathfinding grids will be also red, light green, and green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blackness a.k.a. jello fix&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Texture: &#039;&#039;&#039;_marker_blackness&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Resulting flags: TwoSided NoCollision&lt;br /&gt;
&lt;br /&gt;
Simply black walls. No effect on pathfinding creation. The purpose of these walls in Oni is to block out areas outside of a level&#039;s outermost wall so that the Jello-cam cannot show the player other parts of the level when it escapes a wall. See [[Jello-cam]] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Texture: &#039;&#039;&#039;_marker_door&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Resulting flags: DoorFrame Transparent TwoSided NoCollision NoOcclusion&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use this.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;Objects&amp;gt;===&lt;br /&gt;
Information on regular object lists can be looked up here:&lt;br /&gt;
: [[XML:BINA/OBJC/CHAR|Character.xml]] (has to contain player character if there&#039;s no AISA file with it)&lt;br /&gt;
: [[XML:BINA/OBJC/CONS|Console.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/DOOR|Door.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/FLAG|Flag.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/NEUT|Neutral.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PART|Particle.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PATR|PatrolPath.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PWRU|PowerUp.xml]]&lt;br /&gt;
: [[XML:SNDD#BINACJBOSound.xml|Sound.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/TRIG|Trigger.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/TRGV|TriggerVolume.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/WEAP|Weapon.xml]]&lt;br /&gt;
&lt;br /&gt;
====Furniture.xml====&lt;br /&gt;
The AKEV core geometry is more or less the overall structure of the level while this furniture file adds standard objects (e.g. crates and desks) to it.&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;Objects&amp;gt;&lt;br /&gt;
| - &lt;br /&gt;
| This tag marks the file as BINACJBO.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Furniture&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| This tag marks the file as FURN.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Header&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
| Optional tag. Ignore it. Those flags were used in the past.&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;
| Optional tag. X Y Z position.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rotation&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
| Optional tag. X Y Z rotation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;OSD&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Class&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| link&lt;br /&gt;
| File path to a &#039;&#039;&#039;pre-compiled [[XML:OFGA|OFGA]] (*.oni) file&#039;&#039;&#039;. Use it as part of a relative path. Make sure that the OFGA comes with the files it needs: M3GM and TXMP.&lt;br /&gt;
&lt;br /&gt;
An OFGA can hold multiple M3GMs. That 3D content will then be integrated into the AKEV.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Particle&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| string&lt;br /&gt;
| This name gets written into &amp;lt;Tag&amp;gt; inside ONLV (ENVP section) and can be used with BSL commands, e.g. you can take control over a particle via &#039;&#039;&#039;particle BSL_name start&#039;&#039;&#039;. For more commands, see [[XML:BINA/OBJC/PART#BSL_support|HERE]].&lt;br /&gt;
&lt;br /&gt;
Take care with the naming of new OFGA files. The particle name will be composed of 2 parts separated by an &amp;quot;_&amp;quot; underscore. When one tag is empty, the final name will contain an underscore nonetheless. &#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: FURN &amp;lt;Particle&amp;gt;test&amp;lt;/Particle&amp;gt; + OFGA &amp;lt;Tag&amp;gt;streetlight&amp;lt;/Tag&amp;gt; = &#039;&#039;&#039;test_streetlight&#039;&#039;&#039;&lt;br /&gt;
: FURN &amp;lt;Particle&amp;gt;&amp;lt;/Particle&amp;gt; + OFGA &amp;lt;Tag&amp;gt;streetlight&amp;lt;/Tag&amp;gt; = &#039;&#039;&#039;_streetlight&#039;&#039;&#039;&lt;br /&gt;
: FURN &amp;lt;Particle&amp;gt;test&amp;lt;/Particle&amp;gt; + OFGA &amp;lt;Tag&amp;gt;&amp;lt;/Tag&amp;gt; = &#039;&#039;&#039;test_&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Example&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&amp;gt;&lt;br /&gt;
    &amp;lt;Objects&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
        &amp;lt;Furniture&amp;gt;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;Gunk&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;-62.692 -29 108.35&amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Rotation&amp;gt;181.522 356.021 178.114&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;Class&amp;gt;furniture/V_tctf_bigvan.oni&amp;lt;/Class&amp;gt;&lt;br /&gt;
                &amp;lt;Particle&amp;gt;&amp;lt;/Particle&amp;gt;&lt;br /&gt;
            &amp;lt;/OSD&amp;gt;&lt;br /&gt;
        &amp;lt;/Furniture&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
    &amp;lt;/Objects&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Physics.xml====&lt;br /&gt;
This file is for objects with &amp;quot;physics&amp;quot;. Unlike AKEV core geometry or furniture, these objects can be animated.&lt;br /&gt;
&lt;br /&gt;
: A small video tutorial on [https://www.youtube.com/watch?v=CFNseg_2UxA how to create a simple animated object]&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;Physics&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Object Name=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| string&lt;br /&gt;
| Use a unique name for each object.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;ScriptId&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| integer&lt;br /&gt;
| Tested with BSL command...&lt;br /&gt;
:obj_create ID [ID]&lt;br /&gt;
:obj_kill ID [ID]&lt;br /&gt;
:env_anim ID [ID]&lt;br /&gt;
:env_setanim ID [ID]&lt;br /&gt;
The scripting ID will be stored in the ONLV&#039;s OBOA instance.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
;Object setup flags&lt;br /&gt;
:None&lt;br /&gt;
:InUse&lt;br /&gt;
:NoCollision&lt;br /&gt;
:NoGravity&lt;br /&gt;
:FaceCollision&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Physics&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
| Optional tag for an Object.&lt;br /&gt;
:None&lt;br /&gt;
:Static&lt;br /&gt;
:Linear&lt;br /&gt;
:Animated&lt;br /&gt;
:Newton (used with &amp;lt;Flags&amp;gt; FaceCollision to [https://www.youtube.com/watch?v=YICB7qugrtc make an object pushable])&lt;br /&gt;
:: For a pushable object don&#039;t use import sub-tags such as animation name, flags, etc. Just use &amp;lt;Import Path=&amp;quot;...&amp;quot; &#039;&#039;&#039;/&#039;&#039;&#039;&amp;gt; or &amp;lt;Import Url=&amp;quot;...&amp;quot; &#039;&#039;&#039;/&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Position&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
| Optional tag of Object. Only used for non-animated objects. X Y Z position.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rotation&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
| Optional tag of Object. Only used for non-animated objects. X Y Z rotation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Scale&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Optional tag of Object. Only used for non-animated objects.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;Import Path=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Import Url=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| link&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| This tag comes in two variants. It doesn&#039;t matter what variant you use.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Animation Name=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| File path to *.dae file.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
| Optional tag of Animation. For more information on those flags look [[XML:OBAN|OBAN]] page.&lt;br /&gt;
&lt;br /&gt;
;Object animation flags&lt;br /&gt;
:None&lt;br /&gt;
:Loop&lt;br /&gt;
:PingPong&lt;br /&gt;
:RandomStart&lt;br /&gt;
:AutoStart&lt;br /&gt;
:Local&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;End&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Optional tag of Animation. Frame number. Used to define the end of an OBAN from a *.dae file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Start&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Optional tag of Animation. Frame number. Used to define the start of an OBAN from a *.dae file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The XML code for physics can be written in two styles.&lt;br /&gt;
*The &#039;&#039;&#039;first style&#039;&#039;&#039; mimics the original structure found in extracted ONLV instances. This makes it &#039;&#039;&#039;easier to edit old levels and reimport them&#039;&#039;&#039; into the game.&lt;br /&gt;
*The &#039;&#039;&#039;second style&#039;&#039;&#039; was created with structured data (nested objects) in mind and is &#039;&#039;&#039;suited for totally new levels&#039;&#039;&#039; where animated objects must be created in a 3D editor at first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Code style 1&#039;&#039;&#039;&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&amp;gt;&lt;br /&gt;
    &amp;lt;Physics&amp;gt;&lt;br /&gt;
        &amp;lt;Object&amp;gt;&lt;br /&gt;
            &amp;lt;Geometry&amp;gt;M3GMDishBase.oni&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
            &amp;lt;Animation&amp;gt;OBANDishBase.oni&amp;lt;/Animation&amp;gt;&lt;br /&gt;
            &amp;lt;Physics&amp;gt;Animated&amp;lt;/Physics&amp;gt;&lt;br /&gt;
            &amp;lt;ScriptId&amp;gt;201&amp;lt;/ScriptId&amp;gt;&lt;br /&gt;
            &amp;lt;Position&amp;gt;-197.729141 128.46283 -2501.46387&amp;lt;/Position&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation&amp;gt;0.7071067 -1.545431E-08 1.545431E-08 0.7071068&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;Scale&amp;gt;2.109375&amp;lt;/Scale&amp;gt;&lt;br /&gt;
            &amp;lt;Name&amp;gt;object_DishBase&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;/Object&amp;gt;&lt;br /&gt;
    &amp;lt;/Physics&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Code style 2&#039;&#039;&#039;&lt;br /&gt;
:For documentation purposes, the file here has been trimmed down.&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&amp;gt;&lt;br /&gt;
    &amp;lt;Physics&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
        &amp;lt;Object Name=&amp;quot;motorcycle&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ScriptId&amp;gt;8&amp;lt;/ScriptId&amp;gt;&lt;br /&gt;
            &amp;lt;Flags&amp;gt;FaceCollision&amp;lt;/Flags&amp;gt;&lt;br /&gt;
            &amp;lt;Import Url=&amp;quot;motorcycle/export.dae&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Animation Name=&amp;quot;motorcycle02&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Flags&amp;gt;AutoStart&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                    &amp;lt;End&amp;gt;880&amp;lt;/End&amp;gt;&lt;br /&gt;
                &amp;lt;/Animation&amp;gt;&lt;br /&gt;
                &amp;lt;Animation Name=&amp;quot;motorcycle02_stop&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Start&amp;gt;881&amp;lt;/Start&amp;gt;&lt;br /&gt;
                &amp;lt;/Animation&amp;gt;&lt;br /&gt;
            &amp;lt;/Import&amp;gt;&lt;br /&gt;
        &amp;lt;/Object&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
    &amp;lt;/Physics&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, OniSplit takes the file &amp;quot;export.dae&amp;quot;, looks at the parts it contains, and creates geometry files from it.&lt;br /&gt;
* M3GMhubs_rear.oni&lt;br /&gt;
* M3GMhubs.oni&lt;br /&gt;
* M3GMmotorcycle.oni&lt;br /&gt;
It&#039;s convenient that hierarchies are supported here.&lt;br /&gt;
&lt;br /&gt;
The motorcycle is made of 3 parts so 3 object animations ([[XML:OBAN|OBAN]]) will be created up to frame 880. Then OniSplit creates 3 more OBANs starting from frame 881.&lt;br /&gt;
&lt;br /&gt;
The reason for the interruption at frame 880 is probably to give Barabas a little more camera time in the cutscene.&lt;br /&gt;
&lt;br /&gt;
;Notes about BSL usage:&lt;br /&gt;
&lt;br /&gt;
The Vago Lab cutscene script uses the motorcycle objects and animations like this:&lt;br /&gt;
 	env_show 8 0		# hide static motorcycle parts or else they would be visible&lt;br /&gt;
 	env_show 9 0		# while Konoko is still riding her animated motorcycle&lt;br /&gt;
 	env_show 10 0		# the static motorcycle is separated into objects 8, 9 and 10&lt;br /&gt;
 &lt;br /&gt;
 	# Static and animated objects are totally independent from each other.&lt;br /&gt;
 	# They are stored in different arrays so their script IDs can use the same numbers.&lt;br /&gt;
 &lt;br /&gt;
 	obj_create 8 10		# create all animation-ready motorcycle parts&lt;br /&gt;
 	env_anim 8 10		# animate those parts (not necessary if OBAN flag is &amp;quot;AutoStart&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 	# The first animations would loop because of &amp;quot;AutoStart&amp;quot;, so get the&lt;br /&gt;
 	# right timing to apply the other animations. &amp;quot;motorcycle02_stop&amp;quot;&lt;br /&gt;
 	# and the others will not loop because they don&#039;t have &amp;quot;AutoStart&amp;quot;.&lt;br /&gt;
 	env_setanim 8 hubs_stop&lt;br /&gt;
 	env_setanim 9 hubs_rear_stop&lt;br /&gt;
 	env_setanim 10 motorcycle02_stop&lt;br /&gt;
 &lt;br /&gt;
 	obj_kill 8 10		# delete all animated parts&lt;br /&gt;
 	env_show 9 1		# show static motorcycle model where Konoko parks her bike&lt;br /&gt;
&lt;br /&gt;
====Corpses.xml====&lt;br /&gt;
An empty Corpse element (&amp;lt;Corpse /&amp;gt;) is treated as unused and placed at the end of the array. If no such empty elements are provided, OniSplit automatically adds 5. OniSplit also ensures that there are at least 20 corpses in the array.&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;Corpses&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Corpse&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Class&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| [[XML:ONCC|ONCC]]&#039;&#039;name&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Transforms&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| There are 19 &amp;lt;Matrix&amp;gt; for each &amp;lt;Transforms&amp;gt; (which represents a body part).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Matrix&amp;gt;&lt;br /&gt;
| matrix&lt;br /&gt;
| Float 3x3 + float x3 for the last 3 values (X Y Z position). For more information about the matrix, see [[OBD:CRSA]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BoundingBox&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| Bounding box of the whole corpse. Optional; if not provided, OniSplit will generate an approximate one. Currently it doesn&#039;t try to locate the ONCC to compute an exact bounding box.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trimmed example&#039;&#039;&#039;&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&amp;gt;&lt;br /&gt;
    &amp;lt;Corpses&amp;gt;&lt;br /&gt;
        &amp;lt;Corpse&amp;gt;&lt;br /&gt;
            &amp;lt;Class&amp;gt;generic_male_1&amp;lt;/Class&amp;gt;&lt;br /&gt;
            &amp;lt;Transforms&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.36488995 0.04620622 -0.9299034 -0.05580434 -0.9980576 -0.02769538 -0.9293768 0.04178688 0.366759717 -215.667755 1.603917 92.85312&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.2961557 -0.185628444 0.936928 -0.368288517 -0.9272724 -0.06730227 0.8812806 -0.32512787 -0.342981815 -216.51889 1.64218426 93.189&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.407847315 0.156575248 0.8995248 -0.238757968 -0.9326179 0.2705892 0.8812805 -0.3251278 -0.342982143 -215.239883 0.8405094 97.23532&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.439697325 0.467113584 0.767118752 0.0248355754 -0.8601105 0.5095029 0.8978026 -0.204975232 -0.389789373 -213.6234 1.46109009 100.80056&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.717241049 -0.179043233 0.673430443 0.4761817 -0.579636 -0.6612664 0.5087397 0.794962764 -0.3304816 -214.81662 1.56564879 92.5172348&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.3398023 0.1672905 0.925498843 0.7910236 -0.5831365 -0.185023025 0.5087395 0.7949628 -0.330481827 -211.71907 0.792413354 95.42558&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.1283634 0.227430075 0.965297 0.804142356 -0.59352535 0.032904774 0.5804117 0.7720126 -0.259073079 -210.372269 1.45546341 99.0937653&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.285799921 0.06851995 -0.955836535 -0.240357026 -0.970681965 0.00228381017 -0.927656651 0.230394751 0.2938901 -216.284851 1.5839076 91.29168&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.312039882 0.04875436 -0.948817253 -0.176752359 -0.9842264 0.00755515043 -0.9334825 0.1700632 0.31573534 -216.689789 1.68287766 89.9359055&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.356412441 -0.5390179 -0.763170958 0.0404523835 -0.82494843 0.5637587 -0.933452547 0.170058519 0.315826446 -217.422012 1.7979821 87.70907&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.101782769 -0.247171819 -0.9636112 0.5426916 -0.8256094 0.154451028 -0.8337422 -0.507223248 0.2181709 -217.747284 1.30605173 87.0125656&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.8154478 -0.150626346 0.558888733 -0.1200991 0.9885643 0.09119747 -0.566234052 0.00724477554 -0.8242127 -217.7402 2.065678 88.15346&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.4593738 -0.326781839 0.825947642 0.8874048 -0.1284554 0.442732215 -0.0385793857 0.9363295 0.348996729 -219.093979 1.81561315 89.08131&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.9545983 -0.13777709 0.26412034 0.295387268 -0.322961926 0.899134 -0.0385792255 0.9363296 0.348996431 -220.3681 0.9092429 91.37218&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.9715769 -0.0362956524 0.233924776 0.0276728421 -0.9988148 -0.0400396362 0.2351007 -0.0324283168 0.9714299 -222.775482 0.56178683 92.03825&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.979860842 -0.192433611 0.0533096045 0.193336874 0.9810555 -0.0122905634 -0.0499345176 0.0223497637 0.9985025 -216.8387 1.90143847 87.84845&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.863898 -0.399280578 0.3070101 0.171117 -0.340619326 -0.9244986 0.4737078 0.851207137 -0.225936681 -215.211975 1.58196676 87.93695&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.4673251 -0.0255063027 0.883717656 0.746463835 -0.524209559 -0.4098731 0.4737075 0.851207256 -0.225936785 -212.815842 0.47451216 88.78848&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.216871262 -0.007893051 0.976168454 0.3751846 0.9238389 -0.0758833 -0.9012231 0.3827002 0.203315422 -211.637314 0.410188764 91.0171051&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
            &amp;lt;/Transforms&amp;gt;&lt;br /&gt;
            &amp;lt;BoundingBox&amp;gt;&lt;br /&gt;
                &amp;lt;Min&amp;gt;-219.731216 -2.258905 84.47974&amp;lt;/Min&amp;gt;&lt;br /&gt;
                &amp;lt;Max&amp;gt;-207.518463 4.49535131 104.023239&amp;lt;/Max&amp;gt;&lt;br /&gt;
            &amp;lt;/BoundingBox&amp;gt;&lt;br /&gt;
        &amp;lt;/Corpse&amp;gt;&lt;br /&gt;
    &amp;lt;/Corpses&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Image:ONLV_CRSA_XSI_aided_import.jpg|thumb|200px]]&lt;br /&gt;
&lt;br /&gt;
:Some related information can be found at [[Authoring custom camera animations]].--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
For indirect import, see [http://oni.bungie.org/forum/viewtopic.php?id=2657 HERE] (OniTools v7.1.5+) on how to get corpse data.&lt;br /&gt;
&lt;br /&gt;
When you process your XML master file, use OniSplit version 0.9.94.0+. Older OniSplit versions like 0.9.86.0 may generate ONLV files that are not re-packable with newer versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Export)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With Neo&#039;s matrix-to-Euler code, the rotations can be recovered from CRSA. But due to the character&#039;s hierarchy, things get messy again (&amp;lt;nowiki&amp;gt;https://dl.dropboxusercontent.com/u/139715/OniGalore/CRSA_to_Mod_Tool_wip.png&amp;lt;/nowiki&amp;gt;, dead link). (WIP code (&amp;lt;nowiki&amp;gt;https://dl.dropboxusercontent.com/u/139715/temp/CRSA_to_Mod_Tool.txt&amp;lt;/nowiki&amp;gt;, dead link))&lt;br /&gt;
&lt;br /&gt;
A workaround might be to save characters without animations, destroy their hierarchy, apply the local rotations / global translation and glue everything together again.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Kojiro&amp;diff=46216</id>
		<title>Kojiro</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Kojiro&amp;diff=46216"/>
		<updated>2025-12-26T06:17:21Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:Commguy.jpg|left|150px]]&lt;br /&gt;
[[Image:Comguy Render 1.jpg|right|80px]]&lt;br /&gt;
&#039;&#039;&#039;Kojiro&#039;&#039;&#039; is the unofficial name applied by fans to a [[Comm Trooper|Communications Trooper]] associated with [[Muro]] in the first half of Oni (apparently his right-hand man). It can be implied from the dialogue that he is a confident marksman and/or fighter, as well as a highly skilled hacker and communications expert. The fact that he co-leads the raid on [[TCTF HQ]] would make him at least a peer of [[Barabas]].&lt;br /&gt;
&lt;br /&gt;
Despite his importance, he is never named in Oni material, and is merely identified as &amp;quot;Syndicate Henchman&amp;quot; in the subtitles. Coined by Andrashi a.k.a. [[User:Loser|Loser]], the name &amp;quot;Kojiro&amp;quot; was first used in Loser&#039;s Warehouse Mod.&lt;br /&gt;
&lt;br /&gt;
==Identification==&lt;br /&gt;
Kojiro is commonly identified as &amp;quot;the Comguy with the goggles&amp;quot;, i.e. [[ONCC|ONCCcomguy_2]], although this isn&#039;t consistent:&lt;br /&gt;
*There are several instances of ONCCcomguy_2 that [[Konoko]] can confront and kill, i.e. regular &amp;quot;Comguys with goggles&amp;quot; (without tabi boots, though).&lt;br /&gt;
*Sometimes Muro&#039;s Comguy doesn&#039;t wear goggles, e.g., at the [[ACC|Atmospheric Conversion Center]].&lt;br /&gt;
&lt;br /&gt;
==In-game appearances==&lt;br /&gt;
{|align=right&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Comm Trooper 2.gif]] [[Image:Comm Trooper 1.gif]]&lt;br /&gt;
|}&lt;br /&gt;
*In {{C|3}}&#039;s outro (unseen), offering to kill Konoko as Muro&#039;s van drives away: &amp;quot;[[Quotes/Speech#Outro_3|Should I take her out?]]&amp;quot;&lt;br /&gt;
*In {{C|5}}&#039;s outro (as ONCCcomguy_2), [[Quotes/Speech#Outro_4|talking to Muro]] about how he&#039;s been monitoring Konoko during the chase. &lt;br /&gt;
*In {{C|6}} (as ONCCcomguy_2), taking part in the raid on TCTF HQ: &amp;quot;[[Quotes/Speech#Syndicate.27s_progress|All units converge.]]&amp;quot; &lt;br /&gt;
*In {{C|7}} (as ONCCcomguy_1), standing by Muro&#039;s side as Shinatama is being tortured.&lt;br /&gt;
*In {{C|8}} (as ONCCcomguy_1), following Muro on his way out of the Atmospheric Conversion Center.&lt;br /&gt;
We are not listing appearances of generic goggled Comguys (some of them randomized) or obsolete cutscene material from {{C|4}}.&lt;br /&gt;
&lt;br /&gt;
==Related mods==&lt;br /&gt;
===Loser&#039;s Warehouse===&lt;br /&gt;
Loser&#039;s Warehouse is a high-difficulty version of {{C|1}}, with many unexpected challenges (like having to activate the forklift without using the stairs). The boss fight against Kojiro appears at the end of the mod and constitutes one of Loser&#039;s first attempts at realistically unforgiving AI. Before the fight, Kojiro introduces himself both by name and as [[Mukade]]&#039;s apprentice. Inspired by the [[Oni2:Truth Number Zero|Truth Number Zero]] hypothesis (or was it the other way around?), Loser&#039;s Kojiro fights with [[Ninja]] moves and is able to teleport. At the end of the fight, he says that the only goal of the (very challenging) fight was to hold Konoko back, allowing either for Muro&#039;s preparation of the Musashi/Vago operation, or for some other unspecified initiative (Mukade&#039;s?).&lt;br /&gt;
&lt;br /&gt;
===Samer&#039;s character===&lt;br /&gt;
;Playable version&lt;br /&gt;
:Kojiro was made into a custom playable character by [[User:Samer|Samer]] and also made part of the [[Saisei Team]]. Mod available [http://web.archive.org/web/20160224195230/http://oni.bungie.org/forum/viewtopic.php?id=1282 HERE].&lt;br /&gt;
;NPC and opponent&lt;br /&gt;
:The SamMegaPack Conversion mod uses the new Kojiro model in the canonical appearances listed above and in a bonus appearance during the final battle as an additional opponent. The SamMegaPack Conversion is available [http://web.archive.org/web/20211127021652/http://oni.bungie.org/forum/viewtopic.php?id=2467 HERE]. &lt;br /&gt;
&lt;br /&gt;
[[Image:Kojiro-mod.jpg|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Characters]][[Category:Syndicate]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Mod_Tool/OniTools_addon&amp;diff=46215</id>
		<title>Mod Tool/OniTools addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Mod_Tool/OniTools_addon&amp;diff=46215"/>
		<updated>2025-12-26T06:17:11Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OniTools was a level creation addon for {{ModTool}}. It is no longer developed or maintained. Nowadays, modders are expected to use [[Blender]] rather than XSI.&lt;br /&gt;
&lt;br /&gt;
===Download and installation===&lt;br /&gt;
Install by dragging and dropping &#039;&#039;&#039;[http://mods.oni2.net/node/356 OniTools.xsiaddon]&#039;&#039;&#039; into Mod Tool&#039;s viewport.&lt;br /&gt;
&lt;br /&gt;
[http://web.archive.org/web/20211128152524/http://oni.bungie.org/forum/viewtopic.php?id=2657 OCF thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xsi_addon_weapon_manager.jpg|weapon manager&lt;br /&gt;
Image:xsi_addon_powerups_manager.jpg|powerups manager&lt;br /&gt;
Image:xsi_addon_flag_manager.jpg| flag manager&lt;br /&gt;
Image:xsi_addon_trigger_volume_manager.jpg|trigger volume manager&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tips===&lt;br /&gt;
* while in point (vertex) mode, creating a flag/powerup/TV/weapon will move it to the selected point&lt;br /&gt;
* while in object mode, creating a flag/powerup/TV/weapon will spawn it at 0, 0, 0&lt;br /&gt;
** check the &#039;&#039;point snap&#039;&#039; checkbox, then use move tool [V] with [Control] to move object to desired point&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change log===&lt;br /&gt;
&#039;&#039;&#039;known issues of v7.1.x&#039;&#039;&#039;&lt;br /&gt;
* FURN particle not yet supported by export&lt;br /&gt;
* not compatible with OBJ drag and drop plug-in (it appears to be taken down anyway)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;known issues of v4-v7&#039;&#039;&#039;&lt;br /&gt;
* manager windows sometime don&#039;t &#039;&#039;update&#039;&#039; what results in another opened instance&lt;br /&gt;
* slow flag import, I will probably make the flag numbering (textures) optional in a later version (then turned off by default)&lt;br /&gt;
* broken weapon depot update function (temporary solution: delete depot and add all dae file to folder)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Image:OniTools_select_polygon_find_material_then_delete_all_polygons.jpg|thumb|Material-depending polygon cluster deletion: You need to find the material.]][[Image:OniTools_select_polygon_find_material_then_delete_all_polygons_result.png|thumb|Material-depending polygon cluster deletion: before and after image.]]&lt;br /&gt;
&#039;&#039;&#039;version 7.1.8&#039;&#039;&#039;&lt;br /&gt;
* material-depending polygon cluster deletion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 7.1.7&#039;&#039;&#039;&lt;br /&gt;
* [http://web.archive.org/web/20160225030701/http://oni.bungie.org/forum/viewtopic.php?pid=48310#p48310 Animated Rotoscope]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 7.1.1 - 7.1.6&#039;&#039;&#039;&lt;br /&gt;
* bug fix: TRGV writing/reading&lt;br /&gt;
* [https://www.youtube.com/watch?v=yYHaltepyNI CRSA (corpse array) import]&lt;br /&gt;
* scaling support for TRGV&lt;br /&gt;
* print absolute position and rotation of selected objects&lt;br /&gt;
* print relative position and rotation of selected objects&lt;br /&gt;
* furniture library (alpha)&lt;br /&gt;
* basic OFGA import / FURN export&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 7&#039;&#039;&#039;&lt;br /&gt;
* a &amp;quot;character export (TRAM)&amp;quot; button (select one bodypart and hit the button, it will select the tree automatically)&lt;br /&gt;
* the code includes the &amp;quot;Make Rotation Keys Continuous&amp;quot;&lt;br /&gt;
* the addon will change your save file settings (to framerate 60 fps)&lt;br /&gt;
: one person can send a new *.exp file and the other person can make a *.dae from it&lt;br /&gt;
: old *.exp (that were created based on a 30 fps setting) needs to be [[../#Animating|scaled down]] by a factor of 2&lt;br /&gt;
* currently removed the features made in version 6 (hopefully we will not need that any longer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--[[Image:xsi_addon_repair_character_rotation.png|thumb|200px|right|repair rotation flips]]--&amp;gt;&lt;br /&gt;
* repair major character rotation flips (beta)&lt;br /&gt;
** select a body part and set keyframe range and flip amount&lt;br /&gt;
** fine-tune problematic zones by hand&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 5&#039;&#039;&#039;&lt;br /&gt;
* pathfinding manager (alpha: ghosts can be created on edges)&lt;br /&gt;
* trigger volume manager (plus BINACJBOTrigger Volume&#039;&#039;&#039;.oni&#039;&#039;&#039; drag&#039;n&#039;drop support)&lt;br /&gt;
* bugfix: flag xml code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 4&#039;&#039;&#039;&lt;br /&gt;
* flag manager (plus BINACJBOFlag&#039;&#039;&#039;.oni&#039;&#039;&#039; drag&#039;n&#039;drop support)&lt;br /&gt;
* &amp;quot;(un)hide&amp;quot; button works now properly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 3&#039;&#039;&#039;&lt;br /&gt;
* weapon manager (plus BINACJBOWeapon&#039;&#039;&#039;.oni&#039;&#039;&#039; drag&#039;n&#039;drop support)&lt;br /&gt;
* disables transparency on weapon textures&lt;br /&gt;
* button to access OniXSI resources folder&lt;br /&gt;
* fixes glitchy PPGs (manager windows sometimes switched from &amp;quot;locked&amp;quot; to &amp;quot;refresh&amp;quot; mode, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 2&#039;&#039;&#039;&lt;br /&gt;
* better support for future custom resources (check out the readme files in OniXSI resources folder)&lt;br /&gt;
** for example new LSIs can be added at ...\Softimage\Softimage_Mod_Tool_7.5\OniXSI_resources\PowerUps\LSI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 1&#039;&#039;&#039;&lt;br /&gt;
* powerups manager (plus BINACJBOPowerUp&#039;&#039;&#039;.oni&#039;&#039;&#039; drag&#039;n&#039;drop support)&lt;br /&gt;
** LSIs gets imported with a placeholder geometry (there&#039;s no easy way to detect what actual LSI is used for a level)&lt;br /&gt;
** using LSIs from the manager works though (just keep in mind that levels are fixed to one type of LSI)&lt;br /&gt;
* drag&#039;n&#039;drop support for OniSplit update&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==OniTools Remake: Sledgehammer==&lt;br /&gt;
This remake is incompatible with the original OniTools addon.&lt;br /&gt;
&lt;br /&gt;
How to download? Sledgehammer is now part of Simple OniSplit GUI which is an tool package of AEI.&lt;br /&gt;
&lt;br /&gt;
Installation happens automatically if the GUI finds Mod Tool. Note that both projects are still unfinished.&lt;br /&gt;
&lt;br /&gt;
More information can be found on the talk page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some features Sledgehammer should have:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:ModTool_Addon_Shinatama_settings.png|settings&lt;br /&gt;
Image:DnD_dat_and_onis_import.png|level import controls&lt;br /&gt;
Image:ModTool_PF_editor.png|pathfinding editor&lt;br /&gt;
Image:ModTool_CHAR_editor.png|character collection editor&lt;br /&gt;
Image:ModTool_addon_Sledgehammer_ONCC_library.jpg|character library&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Oni Object Library&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The library contains collections of thumbnail images. Drag and drop them into Softimage to load the corresponding 3D data.&lt;br /&gt;
&lt;br /&gt;
Control the overview with the common web browser shortcuts.&lt;br /&gt;
* [control] + [+] for zooming in&lt;br /&gt;
* [control] + [-] for zooming out&lt;br /&gt;
* [control] + [0] for reseting zoom to 100%&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On first use event&#039;&#039;&#039;&lt;br /&gt;
* -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On startup event:&#039;&#039;&#039;&lt;br /&gt;
* check AE folder for new packages&lt;br /&gt;
* check for new online resources: &amp;quot;shared&amp;quot; classes (includes Neo&#039;s original collection)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Outdated modding tools]][[Category:Windows-only modding tools]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Mod_Tool/Oni_level_rebuilder&amp;diff=46214</id>
		<title>Mod Tool/Oni level rebuilder</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Mod_Tool/Oni_level_rebuilder&amp;diff=46214"/>
		<updated>2025-12-26T06:17:04Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Mod_Tool_Oni_level_rebuilder_logo.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
;Wouldn&#039;t it be nice to have a tool that can rebuild an Oni level?&lt;br /&gt;
;Of course after some modification has been made to the level.&lt;br /&gt;
&lt;br /&gt;
Mod Tool and OniSplit could accomplish this task.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transfer from Oni to Mod Tool===&lt;br /&gt;
Following scenario: A modder drags and drops level1_Final.dat into Mod Tool&#039;s viewport.&lt;br /&gt;
&lt;br /&gt;
Mod Tool tells OniSplit to extract needed data.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
:OniSplit.exe -export level0_Final level0.dat&lt;br /&gt;
:OniSplit.exe -export level1_Final level1.dat&lt;br /&gt;
:OniSplit.exe -extract:dae level1_Final level1_Final/AKEV*.oni -search level0_Final&lt;br /&gt;
:OniSplit.exe -extract:xml level1_Final level1_Final/ONLV*.oni&lt;br /&gt;
:OniSplit.exe -extract:xml level1_Final level1_Final/BINACJBO*.oni&lt;br /&gt;
&lt;br /&gt;
After that Mod Tool can examine the files and import 3D content on different layers.&lt;br /&gt;
&lt;br /&gt;
: Core geometry: EnvLayer&lt;br /&gt;
: Pathfinding: BnvLayer&lt;br /&gt;
: Consoles: ConsLayer&lt;br /&gt;
: TriggerVolumes: TrgvLayer&lt;br /&gt;
: &#039;&#039;etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Also, an already half-filled xml master file can be created.&lt;br /&gt;
&lt;br /&gt;
: The names of BSL folder and skybox can be received from the original ONLV file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transfer from Mod Tool to Oni===&lt;br /&gt;
When user is ready he can click import and rebuild the level.&lt;br /&gt;
&lt;br /&gt;
In ideal case he doesn&#039;t have to touch the xml master file.&lt;br /&gt;
&lt;br /&gt;
Currently, the xml master file don&#039;t seem to cover the CRSA instance.&lt;br /&gt;
&lt;br /&gt;
But, now that Neo has provided a code to create transform matrices, the ONLV file can be post-edited.&lt;br /&gt;
&lt;br /&gt;
Getting the CRSA back into Mod Tool is a bit more complicated, or the code for it, .. like always.&lt;br /&gt;
&lt;br /&gt;
Matrix to euler and back again: [[Mod_Tool/Scripting#Matrix_-.3E_Euler_rotation|see scripting page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
Besides the work needed to get this all done ..., cutscenes (animation compositions and FILM creation) and BSL in general won&#039;t be produced automatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Realization===&lt;br /&gt;
====Export relevant files====&lt;br /&gt;
As said before the user will drag and drop a dat file into Mod Tool.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say he drops the airport, the folder will be located at Softimage_Mod_Tool_7.5\OniLevels\level4_Final.&lt;br /&gt;
&lt;br /&gt;
To ensure the AKEV gets all its resources, level0_Final becomes also exported.&lt;br /&gt;
&lt;br /&gt;
Since level0_Final is such a big file, Mod Tool will check if the folder is already located at OniLevels.&lt;br /&gt;
&lt;br /&gt;
For update purposes, the user can force to export level0_Final again by dragging and dropping it into the program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Loading work data====&lt;br /&gt;
Some content will be imported as it is such as core geometry and BNV.&lt;br /&gt;
&lt;br /&gt;
Other content like consoles should be imported indirectly from CJBO files.&lt;br /&gt;
&lt;br /&gt;
That&#039;s necessary because the extracted dae file doesn&#039;t cover any flags, script functions, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Libraries=====&lt;br /&gt;
There&#039;s already the shared folder for the xml master file. But we should be able to extend it whenever necessary.&lt;br /&gt;
&lt;br /&gt;
For instance BINACJBOCharacter/AISA/CRSA will require ONCC files in DAE format.&lt;br /&gt;
&lt;br /&gt;
This will be done whenever level0_Final becomes exported.&lt;br /&gt;
&lt;br /&gt;
 onisplit -extract:dae level0_Final level0_Final\ONCC*.oni&lt;br /&gt;
&lt;br /&gt;
Inside Mod Tool, envmaps will be disabled so that strange effects with transparency doesn&#039;t appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Project management====&lt;br /&gt;
Progress must be saved in form of *.exp scene files.&lt;br /&gt;
&lt;br /&gt;
[http://web.archive.org/web/20160224195356/http://oni.bungie.org/forum/viewtopic.php?pid=47612#p47612 Valid project locations] will be provided automatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Alternate management====&lt;br /&gt;
There should be a way to let users save their progress when *.exp files don&#039;t work.&lt;br /&gt;
&lt;br /&gt;
Also the MergeScene function seems buggy.&lt;br /&gt;
&lt;br /&gt;
: As alternative we can use *.xsi files. These can store custom properties, something that *.dae files can&#039;t do.&lt;br /&gt;
: It&#039;s probably be possible to store all actual content to one *.xsi and store the layer information to one *.xml file.&lt;br /&gt;
: Or each layer is stored to one *.xsi file.&lt;br /&gt;
: Slower systems might profit from the latter method because the user isn&#039;t forced to load everything, he can decide what scene layers he wants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding ideas]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Creating_a_level&amp;diff=46213</id>
		<title>Creating a level</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Creating_a_level&amp;diff=46213"/>
		<updated>2025-12-26T06:16:56Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{integrate|See {{SectionLink||Forum tutorials on level creation}}.|plural=yes}}&lt;br /&gt;
This page covers level creation from scratch. See [[Modifying an existing level]] if you want to change a vanilla level in the game.&lt;br /&gt;
&lt;br /&gt;
==Level releases and resources==&lt;br /&gt;
===Fan-made levels===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable autosort by-column-3&amp;quot;&lt;br /&gt;
!Date&lt;br /&gt;
!Name&lt;br /&gt;
!Level number&lt;br /&gt;
|-&lt;br /&gt;
|2019/09/16&lt;br /&gt;
|[https://web.archive.org/web/20240527004257/http://oniforum.bungie.org/viewtopic.php?id=2965 Omega Tournament]&lt;br /&gt;
|31&lt;br /&gt;
|-&lt;br /&gt;
|2016/02/13&lt;br /&gt;
|[https://web.archive.org/web/20160224173743/http://oni.bungie.org/forum/viewtopic.php?id=2947 AI Battle]&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|2014/01/19&lt;br /&gt;
|[https://web.archive.org/web/20211202225410/http://oni.bungie.org/forum/viewtopic.php?id=2698 Wilderness Preserve]&lt;br /&gt;
|17&lt;br /&gt;
|-&lt;br /&gt;
|2013/09/07&lt;br /&gt;
|[https://web.archive.org/web/20201127180732/http://oni.bungie.org/forum/viewtopic.php?id=2656 Island]&lt;br /&gt;
|29&lt;br /&gt;
|-&lt;br /&gt;
|2013/07/12&lt;br /&gt;
|[https://web.archive.org/web/20201127175459/http://oni.bungie.org/forum/viewtopic.php?id=2640 City]&lt;br /&gt;
|28&lt;br /&gt;
|-&lt;br /&gt;
|2013/06/01&lt;br /&gt;
|[https://web.archive.org/web/20201029102326/http://oni.bungie.org/forum/viewtopic.php?id=2619 Fight Club]&lt;br /&gt;
|25&lt;br /&gt;
|-&lt;br /&gt;
|2012/05/12&lt;br /&gt;
|[https://web.archive.org/web/20220701102842/http://oni.bungie.org/forum/viewtopic.php?id=2357 Old China]&lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|2012/03/18&lt;br /&gt;
|[https://web.archive.org/web/20211202220454/http://oni.bungie.org/forum/viewtopic.php?id=2302 Boss Battle]&lt;br /&gt;
|23&lt;br /&gt;
|-&lt;br /&gt;
|2012/02/12&lt;br /&gt;
|[https://web.archive.org/web/20201029113554/http://oni.bungie.org/forum/viewtopic.php?id=2271 De Dust Deluxe]&lt;br /&gt;
|22&lt;br /&gt;
|-&lt;br /&gt;
|2012/01/23&lt;br /&gt;
|[https://web.archive.org/web/20201029114415/http://oni.bungie.org/forum/viewtopic.php?id=2242 Parkour Challenge 2]&lt;br /&gt;
|21&lt;br /&gt;
|-&lt;br /&gt;
|2012/01/16&lt;br /&gt;
|[https://web.archive.org/web/20211205145843/http://oni.bungie.org/forum/viewtopic.php?id=2235 Parkour Challenge]&lt;br /&gt;
|21&lt;br /&gt;
|-&lt;br /&gt;
|2011/07/25&lt;br /&gt;
|[https://web.archive.org/web/20201029103607/http://oni.bungie.org/forum/viewtopic.php?id=2001 Mini-Partenon]&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|2011/10/03&lt;br /&gt;
|[https://web.archive.org/web/20201029113340/http://oni.bungie.org/forum/viewtopic.php?id=2024 Muro&#039;s Lair - Preview]&lt;br /&gt;
|20&lt;br /&gt;
|-&lt;br /&gt;
|2011/07/03&lt;br /&gt;
|[https://web.archive.org/web/20201029113724/http://oni.bungie.org/forum/viewtopic.php?id=1957 Hexagon]&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|2011/06/23&lt;br /&gt;
|[https://web.archive.org/web/20201029104928/http://oni.bungie.org/forum/viewtopic.php?id=1938 Junkyard]&lt;br /&gt;
|15&lt;br /&gt;
|-&lt;br /&gt;
|2011/05/01&lt;br /&gt;
|[http://mods.oni2.net/node/178 Arena of Hurt (OZG)]&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|2010/11/08&lt;br /&gt;
|[https://web.archive.org/web/20210117150652/http://oni.bungie.org/forum/viewtopic.php?id=1736 Arena of Hurt (OTA)]&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|2010/11/06&lt;br /&gt;
|[https://web.archive.org/web/20201029105217/http://oni.bungie.org/forum/viewtopic.php?pid=50565#p50565 Martian Colony] AKA &amp;quot;Silly World&amp;quot;&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|2010/02/15&lt;br /&gt;
|[https://web.archive.org/web/20201029113916/http://oni.bungie.org/forum/viewtopic.php?id=1506 Maze]&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|2008/09/16&lt;br /&gt;
|[http://mods.oni2.net/node/4 Arena of Pain]&lt;br /&gt;
|30&lt;br /&gt;
|-&lt;br /&gt;
|2024/05/20&lt;br /&gt;
|[https://gamebanana.com/mods/514707 Kitsune: Chapter 1]&lt;br /&gt;
|20&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Forum tutorials on level creation===&lt;br /&gt;
* &#039;&#039;&#039;[https://web.archive.org/web/20201029114347/http://oni.bungie.org/forum/viewtopic.php?id=2087 &amp;quot;Creating the Lair - A level tutorial&amp;quot;]&#039;&#039;&#039;&lt;br /&gt;
* [https://web.archive.org/web/20201127172559/http://oni.bungie.org/forum/viewtopic.php?pid=53026 &amp;quot;Creating a Custom Oni Level (s10k video tutorials)&amp;quot;]&lt;br /&gt;
* [https://web.archive.org/web/20201127180431/http://oni.bungie.org/forum/viewtopic.php?id=1515 &amp;quot;Creating new levels&amp;quot;]&lt;br /&gt;
* [https://web.archive.org/web/20201029114358/http://oni.bungie.org/forum/viewtopic.php?pid=33838 &amp;quot;Create levels with pathfinding grids&amp;quot;]&lt;br /&gt;
* [https://web.archive.org/web/20210117145338/http://oni.bungie.org/forum/viewtopic.php?id=2000 &amp;quot;More questions about levels&amp;quot;]&lt;br /&gt;
* [https://web.archive.org/web/20201029103906/http://oni.bungie.org/forum/viewtopic.php?pid=37252#p37252 &amp;quot;Modding Existing levels - Beta&amp;quot; (&amp;quot;Moveable furniture&amp;quot; post)]&lt;br /&gt;
&lt;br /&gt;
===Wiki pages on level creation===&lt;br /&gt;
* [[Creating a level]] (you are here)&lt;br /&gt;
* [[Modifying an existing level]]&lt;br /&gt;
* [[New levels]] (a historical document)&lt;br /&gt;
* [[Lightmapping levels]] (an experiment)&lt;br /&gt;
&lt;br /&gt;
===Free asset sources===&lt;br /&gt;
* [https://3dwarehouse.sketchup.com/ 3D Warehouse] – architectural models (also see the [https://3dwarehouse.sketchup.com/collection/236901867937c4ed5fbaf4019d18db23/New-content-for-Oni curated collection] by geyser)&lt;br /&gt;
* [https://www.turbosquid.com/ TurboSquid] – various models, including architecture&lt;br /&gt;
* [https://www.textures.com Textures.com] – wide variety of textures&lt;br /&gt;
&lt;br /&gt;
==Engine limitations==&lt;br /&gt;
First you should be aware of the limitations that Oni will place on your level.&lt;br /&gt;
&lt;br /&gt;
* The triangle limit of a game level is approx. 520,000 (consider it 500,000 to be on the safe side).&lt;br /&gt;
* {{ModTool}} can save DAE files with a maximum of 64,000 triangles per object.&lt;br /&gt;
* When polygons are too tightly packed, the camera will look at too many of them and glitches will appear. The limit on visible GQs (Gunk Quads) is 8,192 (2&amp;lt;sup&amp;gt;13&amp;lt;/sup&amp;gt;), and higher numbers will cause render bugs and produce the console error message &amp;quot;Exceeded max visible GQs &#039;&#039;number&#039;&#039;&amp;quot;. There are limited solutions to this:&lt;br /&gt;
** Decrease the &#039;&#039;&#039;gs_farclipplane_set&#039;&#039;&#039; value.&lt;br /&gt;
** Hide objects via &#039;&#039;&#039;[[#.3CModel.3E|env_show]]&#039;&#039;&#039;.&lt;br /&gt;
** Hide objects by &#039;&#039;level design&#039;&#039;. For example, departments in a building could be quite detailed because the view of the other departments/rooms is blocked by walls.&lt;br /&gt;
* The camera can look at 2,049 transparent textures at once; one more, and Oni crashes.&lt;br /&gt;
* Characters are visible &#039;&#039;only&#039;&#039; within world coordinates {-4,099, -4,099, -4,099} to {4,099, 4,099, 4,099}.&lt;br /&gt;
* Geometry stops outside of (roughly) world coordinates -4,228 to 4,228 on the X and Z axes (vertical axis not tested).&lt;br /&gt;
* &#039;&#039;&#039;chr_debug_spheres = 1&#039;&#039;&#039; visualizes the collision spheres of characters, so you can check if they will fit through an entrance.&lt;br /&gt;
&lt;br /&gt;
==3D tools==&lt;br /&gt;
===Problems when using multiple different tools===&lt;br /&gt;
Re-saving a DAE file in &#039;&#039;&#039;Mod Tool&#039;&#039;&#039; which was originally made in &#039;&#039;&#039;SketchUp&#039;&#039;&#039; can result in a surprising change in size within Oni. This is due to a difference in the specification of a scale unit.&lt;br /&gt;
&lt;br /&gt;
: For example, the SketchUp DAE file may have: &amp;lt;tt&amp;gt;&amp;lt;unit meter=&amp;quot;0.0254000&amp;quot; name=&amp;quot;inch&amp;quot; /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
: And the re-saved Mod Tool DAE file may have: &amp;lt;tt&amp;gt;&amp;lt;unit meter=&amp;quot;0.1&amp;quot; name=&amp;quot;decimetre&amp;quot;&amp;gt;&amp;lt;/unit&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case you&#039;ll need to open the new DAE in a text editor and change the length specification back.&lt;br /&gt;
&lt;br /&gt;
===Sketchup===&lt;br /&gt;
If you are working with Sketchup check out this pages:&lt;br /&gt;
* [http://web.archive.org/web/20201029103436/http://oni.bungie.org/forum/viewtopic.php?id=2003 &amp;quot;Sketchup tutorials for making levels&amp;quot;]&lt;br /&gt;
* [[SketchUp tutorials and tips]]&lt;br /&gt;
&lt;br /&gt;
===Blender===&lt;br /&gt;
&#039;&#039;&#039;Scaling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Same as Mod Tool and SketchUp: Caution with scaling: See [[#Problems when using multiple different tools|here]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pathfinding&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Be sure to uncheck automatic triangle creation when exporting (BNV) geometry used for pathfinding. Ghost (&#039;&#039;doors&#039;&#039;) must be quads. &lt;br /&gt;
&lt;br /&gt;
==Setting up a workflow==&lt;br /&gt;
If not noted differentely you need OniSplit v0.9.82.0 or a newer version. Onisplit can be downloaded [http://mods.oni2.net/node/38 HERE] (it also comes with the [[AE]] and is found in the Tools directory of the installation).&lt;br /&gt;
&lt;br /&gt;
The level import demo files can be downloaded [http://mods.oni2.net/node/299 HERE].&lt;br /&gt;
&lt;br /&gt;
First, put &#039;&#039;&#039;OniSplit.exe&#039;&#039;&#039; into the second &#039;&#039;&#039;lab&#039;&#039;&#039; folder alongside the XML files.&lt;br /&gt;
&lt;br /&gt;
Look at the file &#039;&#039;&#039;build.cmd&#039;&#039;&#039;. These are the two important lines:&lt;br /&gt;
&lt;br /&gt;
 OniSplit.exe -create:level out lab.xml&lt;br /&gt;
 OniSplit.exe -import:pc out level3_Final.dat&lt;br /&gt;
&lt;br /&gt;
The first line creates the *.oni files from a master.xml file, in this case &#039;&#039;&#039;lab.xml&#039;&#039;&#039;. Once finalized, the resulting .oni files can be put into a new [[Making a mod package|AE package]].&lt;br /&gt;
&lt;br /&gt;
The second line creates level archives which can be used for fast tests. They don&#039;t require you to install a package through the AE Installer.&lt;br /&gt;
&lt;br /&gt;
Instead of &amp;quot;-nosep&amp;quot; you can now also use &amp;quot;-pc&amp;quot; for the import. Macs, however, do use &amp;quot;-sep&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
If the game crashes while loading at ~90% progress, be sure that the texture&#039;s x and y dimensions are powers of two: 64, 128, 256, 512….&lt;br /&gt;
&lt;br /&gt;
If the game crashes while loading at ~50-60% progress, be sure that the BINACJBOCharacters or AISA file has a player character defined.&lt;br /&gt;
&lt;br /&gt;
If the game crashes while loading ~5-10% progress, check if all your textures were inside the &amp;quot;out&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
:You can extract the AKEV file to XML, then search for the [[XML:AKEV#TXMA|TXMP Array]].&lt;br /&gt;
&lt;br /&gt;
:[http://mods.oni2.net/system/files/AKEV_texture_checker.txt THIS] script checks which textures are missing by comparing the AKEV*.xml with its *.oni files folder. Change the two paths so that it works for you: Alt+4, insert code, then F5.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;TXMP_marker_door&amp;quot; and &amp;quot;TXMP_marker_ghost&amp;quot; will be missing in the demo&#039;s &amp;quot;out&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
You can add this between the other two lines in build.cmd to prevent a crash.&lt;br /&gt;
 OniSplit.exe -create:txmp out env/markers/*.tga&lt;br /&gt;
&lt;br /&gt;
==Terminology==&lt;br /&gt;
;Polygon&lt;br /&gt;
:A polygon is a shape defined by points (vertices) in space. Polygons are the most fundamental building block in games. Oni uses only shapes with 3 and 4 points (triangles and quads). Other games might also use N-gons, shapes with more points.&lt;br /&gt;
;Face&lt;br /&gt;
:The &#039;&#039;&#039;surface of a polygon&#039;&#039;&#039; is also named face. The &#039;&#039;&#039;direction&#039;&#039;&#039; of a face in &#039;&#039;&#039;defined by its normal&#039;&#039;&#039;. If an object seems to have a hole, it might be that the polygon just has a &#039;&#039;&#039;flipped normal&#039;&#039;&#039; and is therefore wrongly rendered (displayed on screen).&lt;br /&gt;
;Normal&lt;br /&gt;
:Faces and even vertices themselves have directions. The normals of vertices determine how smooth or sharp edges will appear.&lt;br /&gt;
;Vertex (plural&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; vertices)&lt;br /&gt;
:A point within a polygon.&lt;br /&gt;
:Vertex colors radiate from one vertex to another vertex, whereby their different color values blend into each other so that gradients can appear. &lt;br /&gt;
;Edge&lt;br /&gt;
:A line of two points within a polygon.&lt;br /&gt;
;Tris (triangles)&lt;br /&gt;
:Polygons made of 3 points.&lt;br /&gt;
;Quads&lt;br /&gt;
:Polygons made of 4 points. Planes. Rectangles.&lt;br /&gt;
:Internally, all quads get converted into two triangles and will affect the maximum triangle count accordingly.&lt;br /&gt;
;Level&lt;br /&gt;
:The term &amp;quot;level&amp;quot; is often used to shorten &amp;quot;level map&amp;quot; (buildings and terrain).&lt;br /&gt;
;Geometry&lt;br /&gt;
:Level geometry can be objects made of tris and/or quads.&lt;br /&gt;
:Oni differentiates between basically 3 types of level geometry:&lt;br /&gt;
:* Static objects (sometimes also named AKEV core geometry)&lt;br /&gt;
:* Animated objects&lt;br /&gt;
:* Pushable objects (not used in the original game)&lt;br /&gt;
;Static geometry&lt;br /&gt;
:* &#039;&#039;&#039;Unique level geometry with no functions&#039;&#039;&#039; (AKEV core geometry such as buildings and streets).&lt;br /&gt;
:* &#039;&#039;&#039;Repeating objects&#039;&#039;&#039; are flagged as &#039;&#039;&#039;furniture ([[Creating_a_level#Furniture.xml|FURN]])&#039;&#039;&#039; although they can be outdoor objects such as boxes and containers. &amp;lt;!--Oni&#039;s story plays out most often inside buildings. So, there you go. --&amp;gt;FURN objects were used to be imported by an object collection, an CJBO. Nowadays, furniture collections can be used (again) for imports, but the individual objects are stored as [[XML:OFGA|OFGA]] files. This modularity is known in many game editors (like the Unreal Engine Editor). So, &#039;&#039;&#039;OFGA are nothing else than &amp;quot;game assets&amp;quot;.&#039;&#039;&#039; The drawback of OFGA is that they &#039;&#039;&#039;will not import with any vertex shading&#039;&#039;&#039;. Only their &#039;&#039;&#039;geometries&#039;&#039;&#039;, attached &#039;&#039;&#039;particle&#039;&#039;&#039; and &#039;&#039;&#039;gunk flags&#039;&#039;&#039; get copied into final (baked) level geometry.&lt;br /&gt;
:* &#039;&#039;&#039;Objects with actual functions&#039;&#039;&#039;: [[XML:BINA/OBJC/CONS|CONS]], [[XML:BINA/OBJC/DOOR|DOOR]], [[XML:BINA/OBJC/TRIG|TRIG]], [[XML:BINA/OBJC/TURR|TURR]]&lt;br /&gt;
;[[XML:AKEV#AGQG|Gunk flags]]&lt;br /&gt;
:Properties directly associated with the polygons. Among others, these can be: Transparent, TwoSided, NoCollision, Invisible, NoObjectCollision, NoCharacterCollision, NoDecals, Furniture, Impassable.&lt;br /&gt;
;Baking&lt;br /&gt;
:When a level gets baked, all geometries get merged.&lt;br /&gt;
:*Unique level geometry will have vertex painting.&lt;br /&gt;
:*Objects derived from already compiled oni-files (shared classes) will have no vertex painting.&lt;br /&gt;
:*Animated and pushable objects will have no vertex shading.&lt;br /&gt;
;Vertex shading&lt;br /&gt;
:Vertex colors (vector data) can be painted onto core geometry.&lt;br /&gt;
:They are used as a rudimentary form of lightmapping (pixel data).&lt;br /&gt;
:Having vertex shading is still better than having no vertex shading at all. It makes the level appear more lifelike.&lt;br /&gt;
;Lightmapping&lt;br /&gt;
:In other games, lights and shadows are added to level geometry with lightmapping.&lt;br /&gt;
:There were experiments to bring lightmaps back to Oni. The technique come with a major drawback though. It doubles the triangle count and adds many textures.&lt;br /&gt;
;In-game&lt;br /&gt;
:When you are &amp;quot;inside&amp;quot; the game, running or playing it.&lt;br /&gt;
&lt;br /&gt;
==Level construction==&lt;br /&gt;
&#039;&#039;&#039;Visible environment&#039;&#039;&#039;&lt;br /&gt;
* A &#039;&#039;&#039;level map&#039;&#039;&#039; consists of visible geometry: terrain and buildings. This is also named the &#039;&#039;&#039;environment&#039;&#039;&#039; or for short &#039;&#039;&#039;env&#039;&#039;&#039;.&lt;br /&gt;
** Use &#039;&#039;&#039;quads&#039;&#039;&#039; of approximately 10 up to 20 meters in size to construct env geometry.&lt;br /&gt;
* Anything other than floors and simple walls will be made of triangles.&lt;br /&gt;
** Geometry from CJBO works best with triangles. Quads might show holes in-game.&lt;br /&gt;
&#039;&#039;&#039;Invisible pathfinding&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;AIs&#039;&#039;&#039; (or non-player characters, NPCs) need &#039;&#039;&#039;pathfinding&#039;&#039;&#039; data, usually shortened as &#039;&#039;&#039;bnv&#039;&#039;&#039;.&lt;br /&gt;
** Pathfinding data can be described as geometry, therefore as rooms. These &#039;&#039;&#039;bnv rooms&#039;&#039;&#039; are made of &#039;&#039;&#039;floors&#039;&#039;&#039; and are connected by &#039;&#039;&#039;ghost&#039;&#039;&#039; quads which work like doors. AIs can move from one room to another room only by passing a ghost. Therefore, ghosts have the same width as rooms in open terrain.&lt;br /&gt;
*** Use floor quads of approximately 10 meters in size to construct BNV floors.&lt;br /&gt;
*** Put ghost quads exactly on the edges of BNV floors with an angle of 90 degree.&lt;br /&gt;
&#039;&#039;&#039;Support for [[XML:BINA/ONIE|effects]]&#039;&#039;&#039;&lt;br /&gt;
* Effects such as decals that indicate damaged environment need level textures to be registered in [[XML:BINA/TMBD|TMBD]]. Make sure not to replace existing texture entries but to add your own so that the other levels remain unaffected.&lt;br /&gt;
&#039;&#039;&#039;Level logic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BSL scripts bring levels fully to life. The logic is mostly event driven whereby different checkpoints and conditions must be reached.&lt;br /&gt;
* Checkpoints are actually [[XML:BINA/OBJC/TRGV|trigger volumes]] that can recognize entering and exiting characters.&lt;br /&gt;
* The second most important source of events are [[XML:BINA/OBJC/CHAR|character (script) functions]], especially the die function of enemies.&lt;br /&gt;
** To support good and less good players alike, NPC characters can feature the UpgradeDifficulty flag. Also, BSL scripts can detect the current [[BSL:Game_status|difficulty level]].&lt;br /&gt;
* [[XML:BINA/OBJC/TRIG|Laser triggers]] are mostly used to control [[XML:BINA/OBJC/TURR|turrets]]. [[XML:BINA/OBJC/CONS|Consoles]], triggers and [[XML:DOOR|door]] unlocking are used to set up very simple &amp;quot;riddles”.&lt;br /&gt;
* The creation of cut scenes is time-consuming quality work. Due to missing tools for streamlined workflows, it is totally okay for you to skip this.&lt;br /&gt;
** New synchronized FILM, OBAN and TRAM files are required for cut scenes. Not to mention sound files for dialog.&lt;br /&gt;
&lt;br /&gt;
==The master XML file==&lt;br /&gt;
&#039;&#039;The project file for level creation.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;master XML&#039;&#039;&#039; file&#039;s &#039;&#039;&#039;name determines&#039;&#039;&#039; the &#039;&#039;&#039;BSL folder name&#039;&#039;&#039; and the &#039;&#039;&#039;AKEV and ONLV file names&#039;&#039;&#039; in the output folder. File paths in the XML can be either absolute or relative.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mandatory files&#039;&#039;&#039; for level import:&lt;br /&gt;
* &#039;&#039;level_environment&#039;&#039;.dae&lt;br /&gt;
* &#039;&#039;level_bnv&#039;&#039;.dae&lt;br /&gt;
* &#039;&#039;level_textures.tga/jpg/png&#039;&#039;&lt;br /&gt;
* Character.xml or AISA with player&lt;br /&gt;
* ONSK name in &amp;lt;Sky&amp;gt; (in Windows, this can be a fake name; does the Mac need actual ONSK files?)&lt;br /&gt;
* ONLD file for the new level; read [[Making_a_mod_package#Mod_Info.cfg|HERE]] about making sure your level is unlocked (accessible on the Load Game screen)&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;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Level SharedPath=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| link&lt;br /&gt;
| The master XML file can link to other XML files. Most of them will be [[OBD:BINA/OBJC#OBJC_types|BINACJBO]] files. The file type is declared inside the file, so the file name itself doesn&#039;t have to contain the type. Ergo, &amp;quot;BINACJBOCharacter.xml&amp;quot; can be given a simpler name like &amp;quot;Character.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some resources used by those XML files can be found in a &#039;&#039;&#039;shared&#039;&#039;&#039; folder. OniSplit copies textures and &amp;quot;physics&amp;quot; objects into the output folder; furniture objects will be integrated into the AKEV. Unused resources in the shared folder will be ignored. That way the final level archive or AE package contains only the necessary files, saving disk space for the end user.&lt;br /&gt;
&lt;br /&gt;
In the demo are various subfolders in the &#039;&#039;&#039;shared&#039;&#039;&#039; folder: consoles, doors, furniture, triggers and turrets. These file types do not need their file prefixes: CONS, DOOR, TRIG and OFGA. OniSplit will recognize them nonetheless.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Common mistake:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A few CJBO files &#039;&#039;&#039;need relative paths for resources&#039;&#039;&#039;. Inserting only a file name will not work. Let us take consoles for example: A relative path to a console should look like this: &amp;quot;&#039;&#039;&#039;consoles/console_data.oni&#039;&#039;&#039;&amp;quot;. The resources are stored in &#039;&#039;&#039;shared/console/&#039;&#039;&#039; but since the XML master file points to the starting folder via &amp;quot;../shared&amp;quot;, it will be omitted in all actual resource paths. If you need, look into the files of the [http://mods.oni2.net/node/299 demo project &amp;quot;lab&amp;quot;]. &#039;&#039;&#039;Doors&#039;&#039;&#039; and &#039;&#039;&#039;furniture&#039;&#039;&#039; also require relative paths.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lab/lab.xml&#039;&#039;&#039;&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;Level SharedPath=&amp;quot;../shared&amp;quot;&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lab/Console.xml&#039;&#039;&#039;&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;
        &amp;lt;CONS Id=&amp;quot;4695&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;Gunk&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;944.1944 -27 29.37764&amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Rotation&amp;gt;3.623707E-05 270 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;Class&amp;gt;consoles/console_data.oni&amp;lt;/Class&amp;gt;&lt;br /&gt;
                ...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Environment&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Model&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| Used to import level geometry and static objects. See [[#&amp;lt;Model&amp;gt;|HERE]] for detailed information.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Import Path=&amp;quot;...&amp;quot;/&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Node Id=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| string&lt;br /&gt;
| informational (space for notes)&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;ScriptId&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| integer&lt;br /&gt;
| Can be used with BSL commands such as ...&lt;br /&gt;
: [[#&amp;lt;Model&amp;gt;|env_show ID 1]] (use 0 to hide)&lt;br /&gt;
: [[#Breakable glass with BSL recognition|env_broken ID1 [ID2]]] (if a second ID is supplied then objects in the range ID1..ID2 get counted; &amp;quot;3001 3018&amp;quot; would cover 18 objects)&lt;br /&gt;
: [[#Texture exchange|env_texswap ID texture]] (no file prefix/suffix allowed)&lt;br /&gt;
: [[#env_shade|env_shade ID ID R G B]]&lt;br /&gt;
Static objects store their ID in [[XML:AKEV#IDXA_.28quad_group_id.29|one of AKEV&#039;s IDXA instances]].&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;GunkFlags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
;AGQG (Gunk) flags (trimmed list)&lt;br /&gt;
see &#039;&#039;OniSplit -help enums&#039;&#039; for more flags&lt;br /&gt;
:None&lt;br /&gt;
:NoCollision&lt;br /&gt;
:NoObjectCollision&lt;br /&gt;
:NoCharacterCollision&lt;br /&gt;
:NoDecal&lt;br /&gt;
:TwoSided&lt;br /&gt;
:Invisible&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Rooms&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| -&lt;br /&gt;
| For detailed information see [[#&amp;lt;Rooms&amp;gt;|HERE]].&lt;br /&gt;
&lt;br /&gt;
For a Google SketchUp BNV tutorial see [http://oni.bungie.org/forum/viewtopic.php?pid=36760#p36760 HERE].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Import Path=&amp;quot;...&amp;quot;/&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| File path to *.dae file. BNV data, used to create pathfinding.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Textures&amp;gt; {{Anchor|textures_tag}}&lt;br /&gt;
| -&lt;br /&gt;
| With OniSplit v0.9.94.0+ you can use attributes to set the default import formats and max dimensions. For example:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;Textures Format=&amp;quot;BGR&amp;quot; AlphaFormat=&amp;quot;RGBA&amp;quot; MaxSize=&amp;quot;512&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Textures with a dimension that isn&#039;t a power of two (2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;) and textures larger than 512px on a side will be resized. For example, 2003x2000 will become 512x512. (What would 257x255 become?)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Texture Name=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| string&lt;br /&gt;
| TXMP file name to generate.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Flags&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| Optional tag. For list of flags see [[XML:TXMP|HERE]].&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Format&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
:DXT1&lt;br /&gt;
:BGR&lt;br /&gt;
:RGBA&lt;br /&gt;
:BGR555&lt;br /&gt;
:BGRA5551&lt;br /&gt;
:BGRA4444&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;GunkFlags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
;AGQG (Gunk) flags (trimmed list)&lt;br /&gt;
see &#039;&#039;OniSplit -help enums&#039;&#039; for more flags&lt;br /&gt;
:None&lt;br /&gt;
:NoCollision&lt;br /&gt;
:NoObjectCollision&lt;br /&gt;
:NoCharacterCollision&lt;br /&gt;
:NoDecal&lt;br /&gt;
:TwoSided&lt;br /&gt;
:Invisible&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Image&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| File path to *.tga/jpg file.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Sky&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| string&lt;br /&gt;
| ONSKfile.oni (without file pre- and suffix)&lt;br /&gt;
&lt;br /&gt;
The import doesn&#039;t work with an empty tag. &amp;lt;Sky&amp;gt;clear&amp;lt;/Sky&amp;gt; helps here; any other fictional name will also do.&lt;br /&gt;
&lt;br /&gt;
For detailed information see [[XML:ONSK|HERE]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Objects&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Import&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| link&lt;br /&gt;
| File path to an OBJC (collection) file. Supported collection files for &amp;lt;Import&amp;gt; are:&lt;br /&gt;
: [[XML:BINA/OBJC/CHAR|Character.xml]] (has to contain player character if there&#039;s no AISA file with it)&lt;br /&gt;
: [[XML:BINA/OBJC/CONS|Console.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/DOOR|Door.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/FLAG|Flag.xml]]&lt;br /&gt;
: [[#Furniture.xml|Furniture.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/NEUT|Neutral.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PART|Particle.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PATR|PatrolPath.xml]]&lt;br /&gt;
: [[#Physics.xml|Physics.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PWRU|PowerUp.xml]]&lt;br /&gt;
: [[XML:SNDD#BINACJBOSound.xml|Sound.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/TRIG|Trigger.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/TRGV|TriggerVolume.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/WEAP|Weapon.xml]]&lt;br /&gt;
&lt;br /&gt;
The following two collection files are &#039;&#039;&#039;NOT&#039;&#039;&#039; supported. You need to copy them as regular pre-compiled *.oni files into your mod package:&lt;br /&gt;
: [[XML:BINA/OBJC/MELE|Melee.xml]] (overrides global MELE; not used in vanilla levels)&lt;br /&gt;
: [[XML:BINA/OBJC/CMBT|Combat.xml]] (overrides global CMBT?; not used in vanilla levels)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inside&#039;&#039;&#039; the following three supported collection files, provide links to pre-compiled (*.oni) class files: console, door and furniture collections. Use relative paths such as:&lt;br /&gt;
:: &amp;lt;code&amp;gt;&#039;&#039;&#039;consoles/&#039;&#039;&#039;console_data&#039;&#039;&#039;.oni&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;&#039;&#039;&#039;doors/&#039;&#039;&#039;TCdouble&#039;&#039;&#039;.oni&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;&#039;&#039;&#039;furniture/&#039;&#039;&#039;V_tctf_bigvan&#039;&#039;&#039;.oni&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you are unsure about the folder structure refer back to the [http://mods.oni2.net/node/299 level import demo].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Films&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Import&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| File path to *.xml file. OniSplit creates a [[XML:FILM|FILM]] file from it. Used for characters in cutscenes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Cameras&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Camera Path=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| File path to *.dae file. OniSplit creates an OBAN file from it. Used for cutscenes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Animation Name=&amp;quot;...&amp;quot;/&amp;gt;&lt;br /&gt;
| string&lt;br /&gt;
| Name for the OBAN file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a trimmed-down version of the master file &#039;&#039;&#039;lab.xml&#039;&#039;&#039; from the demo. It&#039;s meant to give you a first impression. We might upload a smaller demo someday with all features nonetheless.&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&amp;gt;&lt;br /&gt;
    &amp;lt;Level SharedPath=&amp;quot;../shared&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Environment&amp;gt;&lt;br /&gt;
            &amp;lt;Model&amp;gt;&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_env.dae&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_bomber_window.dae&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_motorcycle.dae&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Node Id=&amp;quot;motorcycle&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;ScriptId&amp;gt;9&amp;lt;/ScriptId&amp;gt;&lt;br /&gt;
                        &amp;lt;GunkFlags&amp;gt;NoCollision&amp;lt;/GunkFlags&amp;gt;&lt;br /&gt;
                    &amp;lt;/Node&amp;gt;&lt;br /&gt;
                &amp;lt;/Import&amp;gt;&lt;br /&gt;
            &amp;lt;/Model&amp;gt;&lt;br /&gt;
            &amp;lt;Rooms&amp;gt;&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_bnv.dae&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/Rooms&amp;gt;&lt;br /&gt;
            &amp;lt;Textures&amp;gt;&lt;br /&gt;
                &amp;lt;Texture Name=&amp;quot;GOO&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Format&amp;gt;bgra4444&amp;lt;/Format&amp;gt;&lt;br /&gt;
                    &amp;lt;GunkFlags&amp;gt;NoCollision&amp;lt;/GunkFlags&amp;gt;&lt;br /&gt;
                    &amp;lt;Image&amp;gt;env/images/GOO.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
                &amp;lt;/Texture&amp;gt;&lt;br /&gt;
            &amp;lt;/Textures&amp;gt;&lt;br /&gt;
        &amp;lt;/Environment&amp;gt;&lt;br /&gt;
        &amp;lt;Sky&amp;gt;sunset&amp;lt;/Sky&amp;gt;&lt;br /&gt;
        &amp;lt;Objects&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;Character.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;Furniture.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;TriggerVolume.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;Physics.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
        &amp;lt;/Objects&amp;gt;&lt;br /&gt;
        &amp;lt;Films&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;films/BomberKonRun01.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
            &amp;lt;Import&amp;gt;films/BomberKonRun02.xml&amp;lt;/Import&amp;gt;&lt;br /&gt;
        &amp;lt;/Films&amp;gt;&lt;br /&gt;
        &amp;lt;Cameras&amp;gt;&lt;br /&gt;
            &amp;lt;Camera Path=&amp;quot;cameras/BomberCam01.dae&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Animation Name=&amp;quot;BomberCam01&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/Camera&amp;gt;&lt;br /&gt;
            &amp;lt;Camera Path=&amp;quot;cameras/BomberCam02.dae&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Animation Name=&amp;quot;BomberCam02&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/Camera&amp;gt;&lt;br /&gt;
        &amp;lt;/Cameras&amp;gt;&lt;br /&gt;
    &amp;lt;/Level&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;Model&amp;gt;===&lt;br /&gt;
This tag is mandatory (it must be present to avoid errors); the model section contains one import path to the AKEV (level) geometry (*.dae) and can contain additional import paths for exceptions (*.dae).&lt;br /&gt;
&lt;br /&gt;
Data from the demo:&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_env.dae&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;Import Path=&amp;quot;env/lab_motorcycle.dae&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Node Id=&amp;quot;motorcycle&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;ScriptId&amp;gt;9&amp;lt;/ScriptId&amp;gt;&lt;br /&gt;
                        &amp;lt;GunkFlags&amp;gt;NoCollision&amp;lt;/GunkFlags&amp;gt;&lt;br /&gt;
                    &amp;lt;/Node&amp;gt;&lt;br /&gt;
                &amp;lt;/Import&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;env_show&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The motorcycle has here scripting ID 9. You can show and hide the object with the BSL command &#039;&#039;&#039;env_show&#039;&#039;&#039;, where the second parameter means true or false. &#039;&#039;&#039;Never use 0 as an ID&#039;&#039;&#039; because it won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
 env_show 9 1&lt;br /&gt;
 env_show 9 0&lt;br /&gt;
&lt;br /&gt;
EdT demonstrates env_show [https://www.youtube.com/watch?v=Em6wa5JTQNM here]. Note how the objects have collision.&lt;br /&gt;
&lt;br /&gt;
The last vanilla level (Syndicate Mountain Compound) has a big satellite dish platform that can be made hidden. Obviously, such objects/areas can be made to have pathfinding too.&lt;br /&gt;
&lt;br /&gt;
;More possible applications of env_show:&lt;br /&gt;
* ground/ceiling/objects for cutscenes that become partially destroyed&lt;br /&gt;
* destructible walls like in Deus Ex: Human Revolution (trigger volume, replacing punch anim with punch-through-wall anim)&lt;br /&gt;
* grids in front of ventilation shafts (a small door object could be an alternative)&lt;br /&gt;
** at the moment this can&#039;t be done because characters can&#039;t sneak under the top edge of the opening (the characters collision spheres are too big)&lt;br /&gt;
* managing object groups with trigger volumes (save multiple objects in one DAE file)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- atm, the effort is not worth the work&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://dl.dropboxusercontent.com/u/139715/OniGalore/TV_triggered_env_show.png&amp;lt;/nowiki&amp;gt; (dead link)&lt;br /&gt;
: edit: replace 0 by 25&lt;br /&gt;
&lt;br /&gt;
If the objects appear to flicker then we could replace the hide_all_object_groups() function with individual TV exit functions.&lt;br /&gt;
&lt;br /&gt;
 func hide_all_object_groups&lt;br /&gt;
 {&lt;br /&gt;
 	# env_show id [1|0]&lt;br /&gt;
 	env_show 1 0&lt;br /&gt;
 	env_show 2 0&lt;br /&gt;
 	# ...&lt;br /&gt;
 	env_show 25 0&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func show_object_group (int grpA, int grpB, int grpC, int grpD, int grpE, int grpF, int grpG, int grpH)&lt;br /&gt;
 {&lt;br /&gt;
 	env_show (grpA, 1)&lt;br /&gt;
 	env_show (grpB, 1)&lt;br /&gt;
 	env_show (grpC, 1)&lt;br /&gt;
 	env_show (grpD, 1)&lt;br /&gt;
 	env_show (grpE, 1)&lt;br /&gt;
 	env_show (grpF, 1)&lt;br /&gt;
 	env_show (grpG, 1)&lt;br /&gt;
 	env_show (grpH, 1)&lt;br /&gt;
 &lt;br /&gt;
 	# missing arguments are taken to be 0&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func TV_25_enter&lt;br /&gt;
 {&lt;br /&gt;
 	hide_all_object_groups&lt;br /&gt;
 &lt;br /&gt;
 	# show object group of entered TV and of neighboring TVs&lt;br /&gt;
 	# (center, north, north east, east, east south, south, south west, west, west north)&lt;br /&gt;
 	# there&#039;s a limit of 8 arguments per function&lt;br /&gt;
 	show_object_group 25 1 2 3 4 5 6 7&lt;br /&gt;
 	show_object_group 8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # other examples&lt;br /&gt;
 func TV_6_enter&lt;br /&gt;
 {&lt;br /&gt;
 	hide_all_object_groups&lt;br /&gt;
 	show_object_group 0 0 00 0 00 00 00 00&lt;br /&gt;
 	show_object_group 22&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func TV_20_enter&lt;br /&gt;
 {&lt;br /&gt;
 	hide_all_object_groups&lt;br /&gt;
 	show_object_group 20 21 6 19&lt;br /&gt;
 }&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Import of object groups====&lt;br /&gt;
&#039;&#039;&#039;Mod Tool versus SketchUp&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The meaning and behavior of &amp;quot;groups&amp;quot; greatly differs in these two programs.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;In SketchUp&#039;&#039;&#039; you can group objects which enables you to easily duplicate all objects inside a group and to scale/rotate/translate them all together.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;In Mod Tool&#039;&#039;&#039; grouped objects are still loose, and duplicating a group won&#039;t duplicate the objects. To achieve the same effect as in SketchUp, you have to create a hierarchy where any one object is the &amp;quot;parent&amp;quot; and all others the &amp;quot;children&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Google SketchUp&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To create a group, select two or more objects, right-click on the selection and choose &amp;quot;make group&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:ModTool_can_import_objs_in_hierarchies.jpg|right|thumb|Mod Tool can import objects in hierarchies to Oni.]]&lt;br /&gt;
&#039;&#039;&#039;Mod Tool&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Either use the Explorer (A) or the Schematics (B) to create a hierarchy.&lt;br /&gt;
&lt;br /&gt;
:(A) In the Explorer window, drag and drop one or more objects onto another one.&lt;br /&gt;
&lt;br /&gt;
:(B) Open the constrain tab at the right side. Select parent object, click &amp;quot;Parent&amp;quot;, click the child object(s). Check the result in the Schematics window.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mod Tool: caution when saving to DAE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:A normal selection won&#039;t do. You have to select the object tree to successfully save a hierarchy. This is the same way that you do it with Oni characters.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=====Import of smart object groups=====&lt;br /&gt;
Let&#039;s say there are two groups. If an edit is made to one mesh, the clone in the other group is instantly changed the same way.&lt;br /&gt;
&lt;br /&gt;
So that&#039;s a smart group. In SketchUp this is named &amp;quot;component&amp;quot;. In Mod Tool it&#039;s named ???.&lt;br /&gt;
:(Can be imported from SketchUp DAE file but causes a crash when re-saving. I guess a script is needed to do the job.)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Breakable glass with BSL recognition====&lt;br /&gt;
Broken environmental objects can be recognized by the BSL command &#039;&#039;env_broken (ID_1, ID_N)&#039;&#039;. However, this requires additional code to work.&lt;br /&gt;
&lt;br /&gt;
An example is the training level. Let&#039;s determine how we can set up such a thing.&lt;br /&gt;
&lt;br /&gt;
First we need a [[XML:BINA/OBJC/TRGV|trigger volume]] like in level 1.&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;TRGV Id=&amp;quot;11495&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;Locked&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;-714.6615 -298 -555.2073&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;tv75&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;Scripts&amp;gt;&lt;br /&gt;
                    &amp;lt;Entry&amp;gt;&amp;lt;/Entry&amp;gt;&lt;br /&gt;
                    &amp;lt;Inside&amp;gt;targets_gone&amp;lt;/Inside&amp;gt;&lt;br /&gt;
                    &amp;lt;Exit&amp;gt;&amp;lt;/Exit&amp;gt;&lt;br /&gt;
                &amp;lt;/Scripts&amp;gt;&lt;br /&gt;
                &amp;lt;Teams&amp;gt;255&amp;lt;/Teams&amp;gt;&lt;br /&gt;
                &amp;lt;Size&amp;gt;400 31 270&amp;lt;/Size&amp;gt;&lt;br /&gt;
                &amp;lt;TriggerVolumeId&amp;gt;75&amp;lt;/TriggerVolumeId&amp;gt;&lt;br /&gt;
                &amp;lt;ParentId&amp;gt;0&amp;lt;/ParentId&amp;gt;&lt;br /&gt;
                &amp;lt;Notes&amp;gt;&amp;lt;/Notes&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;PlayerOnly&amp;lt;/Flags&amp;gt;&lt;br /&gt;
            &amp;lt;/OSD&amp;gt;&lt;br /&gt;
        &amp;lt;/TRGV&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need some BSL code.&lt;br /&gt;
&lt;br /&gt;
 var int inside_target_function;&lt;br /&gt;
 &lt;br /&gt;
 func void enter_target_function(void)&lt;br /&gt;
 {&lt;br /&gt;
    dprint enter_target_function&lt;br /&gt;
    inside_target_function = 1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func void exit_target_function(void)&lt;br /&gt;
 {&lt;br /&gt;
    dprint exit_target_function&lt;br /&gt;
    inside_target_function = 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func void targets_are_not_gone(void)&lt;br /&gt;
 {&lt;br /&gt;
 	# CB: turn off the trigger volume and sleep for a second&lt;br /&gt;
 	# so as not to cause hideous performance loss&lt;br /&gt;
 	trigvolume_enable tv75 0&lt;br /&gt;
 	sleep 60&lt;br /&gt;
 	trigvolume_enable tv75 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func void targets_gone(string ai_name)&lt;br /&gt;
 {&lt;br /&gt;
 	if (inside_target_function eq 0)&lt;br /&gt;
 	{	&lt;br /&gt;
 		enter_target_function() # catch other &amp;quot;targets_gone&amp;quot; functions to let them do nothing&lt;br /&gt;
 &lt;br /&gt;
 		var int num_broken = env_broken(3001, 3018);&lt;br /&gt;
 		# if you only one target use scheme: env_broke(3001, 3001)&lt;br /&gt;
 &lt;br /&gt;
 		if (num_broken eq 18)&lt;br /&gt;
 		{&lt;br /&gt;
 			targets_are_gone();&lt;br /&gt;
 		}&lt;br /&gt;
 	&lt;br /&gt;
 		if (num_broken &amp;lt; 18)&lt;br /&gt;
 		{&lt;br /&gt;
 			targets_are_not_gone(); # to set check interval to one second&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		exit_target_function&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 func targets_are_gone&lt;br /&gt;
 {&lt;br /&gt;
 	trigvolume_enable tv75 0&lt;br /&gt;
 	# [...]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
;Explanation:&lt;br /&gt;
&lt;br /&gt;
Player enters the TV, targets_gone() gets triggered. The variable &amp;quot;inside_target_function&amp;quot; should be 0 by default, so we will enter the &amp;quot;if&amp;quot; block. Next, we can assume that the player didn&#039;t destroy all glass objects, so &amp;quot;num_broken&amp;quot; will be less than 18; thus, targets_are_not_gone() gets called.&lt;br /&gt;
&lt;br /&gt;
The TV function targets_gone() &#039;&#039;would&#039;&#039; be triggered every frame, but targets_are_not_gone() creates a delay between checks: the TV gets deactivated for 60 frames. Then the TV becomes enabled again and will start anew until all glass objects got destroyed or player left the TV.&lt;br /&gt;
&lt;br /&gt;
In this case the targets_gone() function will do nothing because &amp;quot;inside_target_function&amp;quot; was set to 1 by the first call.&lt;br /&gt;
&lt;br /&gt;
targets_are_gone() eventually disables the TV to prevent memory overflow; this function also contains all the things (&amp;quot;[...]&amp;quot;) that you want to happen after the glass target is broken.&lt;br /&gt;
&lt;br /&gt;
====Texture exchange====&lt;br /&gt;
BSL command supported on Windows and Mac:&lt;br /&gt;
: env_texswap ID texture&lt;br /&gt;
&lt;br /&gt;
Might be useful to switch on/off static and animated textures. (News broadcast screen: running or off or smashed. Lava stream: flowing or stagnating or cooled down. Etc.)&lt;br /&gt;
&lt;br /&gt;
A similar effect can be achieved by showing/hiding geometries with different textures as EdT has demonstrated in a private test. That way it should also be possible to have different vertex coloring for an area.&lt;br /&gt;
&lt;br /&gt;
====Vertex coloring====&lt;br /&gt;
Vertex colors can be edited manually in Blender by setting up following 3 things:&lt;br /&gt;
* Properties Panel &amp;gt; Data &amp;gt; Color Attributes&amp;lt;!--only tested with Face Corner, Byte Color--&amp;gt;&lt;br /&gt;
* 3D viewport (left top) &amp;gt; change work mode to Vertex Paint&lt;br /&gt;
* 3D viewport (right top) &amp;gt; change to Viewport Shading to Solid mode (under the dropdown menu you can choose &amp;quot;flat&amp;quot; to have full saturation)&lt;br /&gt;
&lt;br /&gt;
{{divhide|Mod Tool}}&lt;br /&gt;
&lt;br /&gt;
[http://web.archive.org/web/20170529111607/http://softimage.wiki.softimage.com/xsidocs/tex_vcolor_CreatingColoratVerticesCAVMaps.htm SoftImage documentation.] Observation: The sniper tower from level 19 Syndicate Mountain Compound can be isolated and re-imported as it is. It will appear quite dark.&lt;br /&gt;
&lt;br /&gt;
If we remove &amp;quot;_color&amp;quot; from the object, the shadows will be gone next time we import the tower.&lt;br /&gt;
&lt;br /&gt;
Mod Tool: Explorer [8]&lt;br /&gt;
&lt;br /&gt;
 Object&lt;br /&gt;
  |&lt;br /&gt;
  +-- Polygon Mesh&lt;br /&gt;
        |&lt;br /&gt;
        +-- Cluster&lt;br /&gt;
              |&lt;br /&gt;
              +-- Polygon&lt;br /&gt;
              |     |&lt;br /&gt;
              |     +-- [...]&lt;br /&gt;
              |&lt;br /&gt;
              +-- NodeProperties&lt;br /&gt;
                    |&lt;br /&gt;
                    +-- &#039;&#039;&#039;_color&#039;&#039;&#039;&lt;br /&gt;
                    +-- texcoord (Explicit UVWs)&lt;br /&gt;
                          |&lt;br /&gt;
                          +-- Vertex_Color_Def&lt;br /&gt;
&lt;br /&gt;
So, how do we modify that data?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Single object shading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If there&#039;s already a vertex color property, you can use Shift + W to activate the Paint Vertex Color Tool. With Control + W you can change the brush color. R + Hold Click + Move Mouse let you change the brush size. The more vertices (points) you have, the more detailed you can make the shadows/colors. But keep in mind that too many polygons can destroy collision, making characters fall through the ground.&lt;br /&gt;
&lt;br /&gt;
If there&#039;s no vertex color property, the first usage of Shift + W will create that property. But you can also manually create it via Property &amp;gt; Color under Vertices Map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Level-wide shading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:light_test_modtool.png|right|thumb]]&lt;br /&gt;
[[Image:light_test_ingame.png|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
To get general shading/lighting you can set up light sources. &amp;quot;Infinite&amp;quot; lights are useful for global lighting, while &amp;quot;Light Box&amp;quot;, &amp;quot;Point&amp;quot;, &amp;quot;Neon&amp;quot; and &amp;quot;Spot&amp;quot; are more suitable as local light sources. They can be accessed via Primitives &amp;gt; Light.&lt;br /&gt;
&lt;br /&gt;
By default, a Mod Tool scene has one Infinite light, but it doesn&#039;t shine in every direction so you might want to add more Infinite lights. Let&#039;s say one Infinite light for each direction (+X, -X, +Y, -Y, +Z, -Z) with an intensity of circa 0.25 (night) or 0.75 (day).&lt;br /&gt;
&lt;br /&gt;
The illumination of those lights can be integrated into the vertex color property:&lt;br /&gt;
* Property &amp;gt; Color At Vertices Map&lt;br /&gt;
* Property &amp;gt; Render Map&lt;br /&gt;
* In render map property page, under Sampling select Vertices Only&lt;br /&gt;
* Under Surface Color, choose Enable, then in the box below select Vertex _Color; if that option does not appear, click on the New button next to it&lt;br /&gt;
* Under Map, select Illumination only&lt;br /&gt;
* Finally, click on the button Regenerate Maps...&lt;br /&gt;
&lt;br /&gt;
This must be done for all objects separately.&lt;br /&gt;
&lt;br /&gt;
: [http://mods.oni2.net/system/files/vertex_color_script.txt There&#039;s a script here]&amp;lt;!--http://mods.oni2.net/node/352--&amp;gt; which can apply vertex color and render maps to all &#039;&#039;&#039;selected&#039;&#039;&#039; objects. Load it into the script editor with Alt + 4 and hit F5 to run it. (Be sure the script&#039;s language was set to VBScript.)&lt;br /&gt;
: The variable &amp;quot;overwrite_VC&amp;quot; can be changed.&lt;br /&gt;
:: With &amp;quot;1&amp;quot; all existing CAV maps of selected objects will be overwritten. This can take some time.&lt;br /&gt;
:: With &amp;quot;0&amp;quot; only selected objects without CAV maps will be the script&#039;s target.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes on ModTool view modes&#039;&#039;&#039;&lt;br /&gt;
* &amp;quot;Constant&amp;quot; let you see the colors of the vertex coloring only.&lt;br /&gt;
* &amp;quot;Textured Decal&amp;quot; let you see object textures only.&lt;br /&gt;
* &amp;quot;Shaded&amp;quot; let you see the illumination only.&lt;br /&gt;
* &amp;quot;Textured&amp;quot; let you see the textured object with illumination and vertex coloring.&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
=====env_shade=====&lt;br /&gt;
If you use &#039;&#039;&#039;env_shade&#039;&#039;&#039;, use it with caution. It completely overwrites the vertex coloring.&lt;br /&gt;
&lt;br /&gt;
 # BSL command&lt;br /&gt;
 # env_shade obj_id obj_id R G B&lt;br /&gt;
 &lt;br /&gt;
 # examples&lt;br /&gt;
 env_shade 7 7			# object 7 will be black&lt;br /&gt;
 env_shade 7 7 0 0 0		# object 7 will be black&lt;br /&gt;
 env_shade 7 7 .31 .999 .5	# object 7 will be quite green&lt;br /&gt;
 env_shade 7 10 1 1 1		# object 7, 8, 9, 10 lose all their shading&lt;br /&gt;
&lt;br /&gt;
====Baked lightmaps====&lt;br /&gt;
A drawback of this method, AKA shadow maps, is the high number of [[XML:BINA/TMBD|TMBD]] changes and new textures for every wall, requiring a lot of memory. How to create shadow maps:&lt;br /&gt;
&lt;br /&gt;
* https://web.archive.org/web/20121105081823/http://www.game-artist.net/forums/support-tech-discussion/5622-burning-shadows-onto-texture-xsi.html&lt;br /&gt;
&amp;lt;!-- http://caffeineabuse.blogspot.de/2008/12/cast-shadow-only-lights-in-xsi.html might be also interesting --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes on map options:&lt;br /&gt;
* &amp;quot;Surface color and illumination&amp;quot;: outputs used texture with added shadows&lt;br /&gt;
** Can be used to replace original texture&lt;br /&gt;
* &amp;quot;Illumination only&amp;quot;: output a texture that only contains the shadows&lt;br /&gt;
** Can be used on a new overlying, transparent surface&lt;br /&gt;
&lt;br /&gt;
====Standalone lightmaps====&lt;br /&gt;
With this approach there are two meshes, whereby the shadow effects on one mesh get drawn in front of the regular level texture.&lt;br /&gt;
&lt;br /&gt;
Compared to the &amp;quot;baked lightmaps&amp;quot; method, this needs more polygons of course. And these polygons are transparent, which is a problem with Oni&#039;s limited rendering ability for such textures. However, standalone lightmaps only need a few new textures if used wisely.&lt;br /&gt;
&lt;br /&gt;
Read [[Lightmapping levels]] to learn more.&lt;br /&gt;
&lt;br /&gt;
[[Image:Oni_Lightmaps_double_polygon_method.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;Rooms&amp;gt;===&lt;br /&gt;
The Rooms tag is mandatory. It contains an import path to BNV and ghosts (*.dae) which are used to create pathfinding grids. For information on the binary data behind this, see [[OBD:AKVA|HERE]].&lt;br /&gt;
&lt;br /&gt;
Sample code from the master XML file:&lt;br /&gt;
 &amp;lt;Import Path=&amp;quot;env/lab_bnv.dae&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fundamentals&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;BNVs&#039;&#039;&#039; are &#039;&#039;&#039;volumes&#039;&#039;&#039; (sometimes also named &#039;&#039;&#039;rooms&#039;&#039;&#039;) that have a pathfinding grid assigned to them.&lt;br /&gt;
* For practical reasons you only need &#039;&#039;&#039;floors and ramps&#039;&#039;&#039; to build a BNV. (As seen [http://edt.oni2.net/images/Hideout_BNV.jpg HERE.])&lt;br /&gt;
** A BNV polygon can consist of 3 or more points, but it&#039;s recommended to use &#039;&#039;&#039;shapes with 4 points&#039;&#039;&#039; because the other shapes usually waste more grid space. At the moment you can import only &#039;&#039;&#039;[[wikt:convex|convex]]&#039;&#039;&#039; shapes.&lt;br /&gt;
* Secondly, there are so called &#039;&#039;&#039;ghosts&#039;&#039;&#039; (vertical quads) that connect &#039;&#039;&#039;neighboring BNVs&#039;&#039;&#039;. AI can only transit from BNV to another through ghosts.&lt;br /&gt;
: OniSplit gives error messages for ghosts that don&#039;t have 2 neighboring BNVs, for example:&lt;br /&gt;
 BNV Builder: Ghost &#039;grid2&#039; has no adjacencies at &amp;lt;-72,41 1,999 -166,6&amp;gt; and &amp;lt;-71 1,999 -168,21&amp;gt;, ignoring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tolerance values&#039;&#039;&#039;&lt;br /&gt;
* Horizontal distance from room to ghost: 1&lt;br /&gt;
* Vertical distance from room to ghost: 18&lt;br /&gt;
* Ghost&#039;s horizontal dimension must be greater than 0&lt;br /&gt;
* Under optimal circumstances, pathfinding works on a plane that is +4 world units above or -0.5 below the pathfinding grid&lt;br /&gt;
* Normally characters can&#039;t pass over low vertical walls such as stairs/curbs if those don&#039;t have a ramp under them; near ground level (Y=0) is an exception where characters are allowed to step on a plane that is 4 world units above pathfinding grid; higher planes need a ramp&lt;br /&gt;
* Maximum angle of ramp you can go on is 70°; higher angles will make characters fall through to their death (in those cases you might want to add invisible walls/boxes to prevent them from touching the ramp)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More notes on PF processing&#039;&#039;&#039;&lt;br /&gt;
* Actually, BNV and ghosts can have any name and don&#039;t need any texture.&lt;br /&gt;
* During pathfinding calculation, OniSplit creates a new folder called &amp;quot;temp&amp;quot; and a subfolder &amp;quot;grids&amp;quot;. There is a file named &amp;quot;&#039;&#039;levelname&#039;&#039;_grids.dae&amp;quot;. That file contains rooms with textures called &amp;quot;bnv_grid_&#039;&#039;N&#039;&#039;.tga&amp;quot; which mark obstacles in the pathfinding grid. Ghosts will have a transparent texture &amp;quot;&#039;&#039;&#039;_marker_ghost&#039;&#039;&#039;.tga&amp;quot;. You also get these when you export a level. Transparent ghosts make it easier to see the rest of your level if you have many of those planes.&lt;br /&gt;
* In Mod Tool, ghosts and rooms can be grouped under a null object. Right-click the null object to select all its children, then use &amp;quot;Selection Only [x]&amp;quot; as your saving option. That way all the planes can be quickly saved to a *.dae file.&lt;br /&gt;
* You can influence the pathfinding creation of dangerous zones using danger quads. Read about those [[#Marker textures|HERE]].&lt;br /&gt;
* Another kind of influence is the [[#&amp;lt;Model&amp;gt;|gunk flag]] IgnoreGrid. It can be used to tell OniSplit to ignore the object during pathfinding creation. The grids in that place will be white.&lt;br /&gt;
&lt;br /&gt;
[[Image:Pathfinding_grid.jpg|thumb|200px|right|&#039;&#039;&#039;ai2_showgrids = 1&#039;&#039;&#039; in action]]&lt;br /&gt;
&#039;&#039;&#039;BSL commands&#039;&#039;&#039;&lt;br /&gt;
* chr_show_bnv = 1&lt;br /&gt;
:: shows number of BNVs the player is standing on&lt;br /&gt;
* ai2_showgrids = 1&lt;br /&gt;
:: shows pathfinding grids&lt;br /&gt;
* ai2_chump&lt;br /&gt;
:: spawns a friendly Striker that follows the player if possible, makes also pathfinding grids visible&lt;br /&gt;
* ai2_chump_stop = 1&lt;br /&gt;
:: Striker stops following you&lt;br /&gt;
* ai2_chump_stop = 0&lt;br /&gt;
:: Striker follows you again&lt;br /&gt;
&lt;br /&gt;
====Pathfinding on uneven ground====&lt;br /&gt;
Pathfinding works on slightly uneven ground as long as the polygons are 0.5 world units beneath or 4 world units above the BNV.&lt;br /&gt;
&lt;br /&gt;
For greater surface irregularities, we can use a trick:&lt;br /&gt;
* The problematic polygons must be saved to a DAE file and then referenced in the model section as an individual object.&lt;br /&gt;
* Then the &amp;lt;GunkFlags&amp;gt; tag needs to be &#039;&#039;&#039;&#039;&#039;GridIgnore&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Additionally we create a plane (invisible if necessary) under the object so that Oni doesn&#039;t think there&#039;s a hole.&lt;br /&gt;
* The ghosts must be taller than the highest polygon to be walked on. (This has been tested up to a height of 2,000 world units.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptoms of too-small ghosts&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A) AI can&#039;t run at all.&lt;br /&gt;
&lt;br /&gt;
B) AI loses PF ability if the tracked enemy performs animations that are outside of the pathfinding volume. Here&#039;s a video (&amp;lt;nowiki&amp;gt;https://youtu.be/vfKPzP5hiCo&amp;lt;/nowiki&amp;gt;, dead link) showing these symptoms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Missing boundaries&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say you have a BNV, tall ghosts, and a GridIgnore-flagged hill with trees and bushes and stuff.&lt;br /&gt;
&lt;br /&gt;
Why do AIs run up against the trees?&lt;br /&gt;
: &#039;&#039;&#039;Problem:&#039;&#039;&#039; There are no red/orange grids that limit the AI&#039;s movement. Normally, objects will produce red pathfinding squares around them. But objects that are 20 world units above the BNV are ignored just like objects with the IgnoreGrid flag.&lt;br /&gt;
: &#039;&#039;&#039;Solution:&#039;&#039;&#039; Add simple geometries like &#039;&#039;_marker_impassable fences&#039;&#039; or danger quads near the BNV.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disappearing AIs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The ground is sometimes not solid, and the player and AIs are falling through it.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Problem:&#039;&#039;&#039; On GridIgnore-flagged uneven ground, AIs can fall through it when they are out of the player&#039;s view.&lt;br /&gt;
: &#039;&#039;&#039;Solution:&#039;&#039;&#039; Use either &#039;&#039;&#039;chr_lock_active &#039;&#039;AI_name&#039;&#039;&#039;&#039;&#039; or &#039;&#039;&#039;chr_all_active = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Debugging====&lt;br /&gt;
&#039;&#039;&#039;(OniSplit v0.9.93.0+)&#039;&#039;&#039;&lt;br /&gt;
[[Image:OniBrowser.jpg|thumb|200px|right|OniBrowser displaying level geometry plus PF and ghosts.]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;env_show_ghostgqs = 1&#039;&#039;&#039; makes the ghost quads visible&lt;br /&gt;
** The original ghost quads can&#039;t be seen; per Neo, &amp;quot;they are not included in the octtree and bsp tree&amp;quot;&lt;br /&gt;
** To see them you must use the -debug option in the level creation command (available with OniSplit &#039;&#039;&#039;v0.9.93.0+&#039;&#039;&#039;)&lt;br /&gt;
 OniSplit.exe -create:level &#039;&#039;output_folder&#039;&#039; &#039;&#039;&#039;-debug&#039;&#039;&#039; &#039;&#039;input_folder&#039;&#039;/&#039;&#039;master_xml_file&#039;&#039;.xml&lt;br /&gt;
&lt;br /&gt;
Not all debugging/testing needs to be done in Oni. There is also a [http://mods.oni2.net/node/256 program] (Windows only) which can display the whole level.&lt;br /&gt;
&lt;br /&gt;
For example you can load an AKEV*.oni, select the level name, and use the hotkeys [B] and [P] to display BNVs and ghosts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bug prevention:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After all testing is done, you should compile the level a last time without the -debug option.&lt;br /&gt;
&lt;br /&gt;
AIs appear to have trouble shooting through ghost quads that got registered in the octtree/BSP tree as seen here (&amp;lt;nowiki&amp;gt;https://www.youtube.com/watch?v=-ZugVBgBVKc&amp;lt;/nowiki&amp;gt;, dead link).&lt;br /&gt;
&lt;br /&gt;
====When OniSplit fails to connect PF quads====&lt;br /&gt;
[[Image:Pathfinding_creation__merge_polygons_to_fix_connections.jpg|thumb|200px|right|Fixed PF in compound level after underground construction...]]&lt;br /&gt;
It can help to merge polygons to one object and merge their edges. These become white. (Outer edges are blue.)&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;Textures&amp;gt;===&lt;br /&gt;
====...used for exceptions====&lt;br /&gt;
The [[#textures_tag|textures tag]] is mandatory.&lt;br /&gt;
&lt;br /&gt;
AKEV textures will be imported by the master XML file automatically; you don&#039;t need to add them to that file.&lt;br /&gt;
&lt;br /&gt;
: With OniSplit v0.9.82-93.0, the textures&#039; formats will be DXT1 and (for transparent ones) BGRA4444.&lt;br /&gt;
: With OniSplit v0.9.94.0+ the textures&#039; formats will be BGR and (for transparent ones) RGBA.&lt;br /&gt;
&lt;br /&gt;
To change the default texture import format, use the Texture&#039;&#039;&#039;s&#039;&#039;&#039; tag. (Possible with OniSplit v0.9.94.0+.)&lt;br /&gt;
&lt;br /&gt;
To change the format/flag/gunk flag of a specific texture, use the Texture tag.&lt;br /&gt;
&lt;br /&gt;
An example:&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;Textures Format=&amp;quot;BGR&amp;quot; AlphaFormat=&amp;quot;RGBA&amp;quot; MaxSize=&amp;quot;512&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Texture Name=&amp;quot;GOO&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Flags&amp;gt;TwoSided&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                    &amp;lt;Format&amp;gt;BGRA4444&amp;lt;/Format&amp;gt;&lt;br /&gt;
                    &amp;lt;GunkFlags&amp;gt;NoCollision&amp;lt;/GunkFlags&amp;gt;&lt;br /&gt;
                    &amp;lt;Image&amp;gt;env/images/GOO.tga&amp;lt;/Image&amp;gt;&lt;br /&gt;
                &amp;lt;/Texture&amp;gt;&lt;br /&gt;
          &amp;lt;/Textures&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Use the gunk flag &amp;quot;TwoSided&amp;quot; to make surfaces visible from both sides.&lt;br /&gt;
* If the texture comes with the gunk flag &amp;quot;NoCollision&amp;quot; then all objects with that texture will have no collision. Characters would fall through it.&lt;br /&gt;
&lt;br /&gt;
Transparency and no collision together would make sense for a water-like substance. The Vago Biotech level uses this approach for the area with green toxic waste.&lt;br /&gt;
&lt;br /&gt;
[[Image:making_a_surface_transparent_and_twosided.png|thumb|200px|right|&#039;&#039;&#039;Figure 1&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[Image:AKEV_single_object_multiple_textures.png|thumb|200px|right|&#039;&#039;&#039;Figure 2&#039;&#039;&#039;&amp;lt;br&amp;gt;one object with multiple textures, one per polygon cluster]]&lt;br /&gt;
[[Image:AKEV_single_object_multiple_textures_ingame.png|thumb|200px|right|&#039;&#039;&#039;Figure 3&#039;&#039;&#039;&amp;lt;br&amp;gt;blue: two-sided&amp;lt;br&amp;gt;glass: two-sided and transparent&amp;lt;br&amp;gt;random metal: no flag (one-sided)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TwoSided and transparent objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to set this in Mod Tool. For TwoSided-ness, use one image source for diffuse and transparency. (It won&#039;t work with two image sources even if both sources use the same image.)&lt;br /&gt;
&lt;br /&gt;
For transparency you must additionally use the three checkboxes:&lt;br /&gt;
* Transparency: Enable&lt;br /&gt;
* Transparency: Use Alpha&lt;br /&gt;
* Transparency: Invert&lt;br /&gt;
&lt;br /&gt;
See &#039;&#039;&#039;Figure 1&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Regular textures====&lt;br /&gt;
OniSplit automatically imports textures of objects in the [[#&amp;lt;Model&amp;gt;|&amp;lt;Model&amp;gt; section]]. Those objects could be considered as AKEV core geometry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;One texture per object&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Furniture and Physics objects are allowed to have only one texture per object. AKEV core geometry can have one texture or multiple textures – that&#039;s up to you to decide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple textures per object&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Question:&#039;&#039;&#039; How do we apply multiple textures to an AKEV core object?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Answer:&#039;&#039;&#039; Assuming you are using Mod Tool the procedure will be as follows. Repeat this for each cluster you create (except for projection). See also &#039;&#039;&#039;Figure 2 and 3&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* Select some polygons&lt;br /&gt;
* Go to Material &amp;gt; Phong&lt;br /&gt;
* Hit [7] to open Render Tree&lt;br /&gt;
* Add a texture and connect &amp;quot;Image&amp;quot; with &amp;quot;Phong&amp;quot;, choose &amp;quot;diffuse&amp;quot; as illumination mode&lt;br /&gt;
* Double-click &amp;quot;Image&amp;quot; to open Material page&lt;br /&gt;
* In the Texture Projection section, click on &amp;quot;New&amp;quot; and choose a suitable projection&lt;br /&gt;
** Do this only if there isn&#039;t a projection in the &amp;quot;Texture_Coordinates_AUTO&amp;quot; cluster yet&lt;br /&gt;
** OniSplit processes only one texture projection, see &#039;&#039;&#039;Figure 4&#039;&#039;&#039;&lt;br /&gt;
* Choose the texture and UV, then fine-tune the UV via Alt + 7&lt;br /&gt;
&lt;br /&gt;
[[Image:AKEV_multiple_textures_one_projection.png|thumb|200px|right|&#039;&#039;&#039;Figure 4&#039;&#039;&#039;&amp;lt;br&amp;gt;use only one texture projection per object]]&lt;br /&gt;
&lt;br /&gt;
Caution: textures will be fixed to one set of flags. You can&#039;t use the same texture A for a one-sided cluster/object B and a two-sided cluster/object C. You would need to create a differently-named clone of that texture and apply that to cluster/object C.&lt;br /&gt;
&lt;br /&gt;
====Marker textures====&lt;br /&gt;
Marker textures are used to import certain objects with special flags. Import those objects alongside [[#&amp;lt;Model&amp;gt;|AKEV core]] geometry.&lt;br /&gt;
&lt;br /&gt;
Marker textures aren&#039;t imported automatically. Add those textures to the final package or plugin yourself, e.g. with some sort of script.&lt;br /&gt;
&lt;br /&gt;
 OniSplit.exe -create:txmp out env/markers/*.tga&lt;br /&gt;
&lt;br /&gt;
The flags Transparent, TwoSided and NoOcclusion are only set if the same texture source is used for diffuse and transparency and if transparency setting are enabled. See the subsection under &amp;quot;[[#...used for exceptions|...used for exceptions]]&amp;quot; called &amp;quot;TwoSided and transparent objects&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Danger quads&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pathfinding grids have different colored squares with different meanings.&lt;br /&gt;
* white/gray - clear space&lt;br /&gt;
* green light - near wall&lt;br /&gt;
* green - semi-passable&lt;br /&gt;
* green dark - stairs&lt;br /&gt;
* blue very light - border 1&lt;br /&gt;
* blue light - border 2&lt;br /&gt;
* blue - border 3&lt;br /&gt;
* blue dark - border 4&lt;br /&gt;
* &#039;&#039;&#039;orange - danger&#039;&#039;&#039;&lt;br /&gt;
* red - impassable&lt;br /&gt;
&lt;br /&gt;
For detailed information on colors, see [[OBD_talk:AKVA/0x24#EFFECTS_of_various_pathfinding_grid_tile_types|HERE]].&lt;br /&gt;
&lt;br /&gt;
Normally, OniSplit decide how to color the grids. But it&#039;s possible to add your own danger quads to fine-tune zones of higher danger. Those orange areas will be generated with the 4 different blue borders around it.&lt;br /&gt;
&lt;br /&gt;
Danger quads must have &amp;quot;&#039;&#039;&#039;_marker_danger&#039;&#039;&#039;&amp;quot; as texture name.&lt;br /&gt;
&lt;br /&gt;
Results in flags: Transparent TwoSided NoCollision Invisible NoOcclusion Danger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_marker_barrier&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!-- Originally this is only used for level-bounding invisible walls? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Results in flags: Transparent TwoSided(double-check) Invisible NoObjectCollision NoOcclusion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;COLLISION (boxes)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AIs can get stuck in detailed geometry. This can be prevented with collision boxes. In-game the box will be invisible, but has collision so characters can&#039;t get through. The pathfinding grid will be red where it comes in contact with the box; the red is followed by a light green and then regular green.&lt;br /&gt;
&lt;br /&gt;
[[XML:OFGA|OFGAs]] use the COLLISION texture. Onisplit doesn&#039;t automatically apply gunk flags to it. You need to use XML tags for that. Typically it would be &amp;lt;GunkFlags&amp;gt;Invisible NoObjectCollision&amp;lt;/GunkFlags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stairs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Texture: &#039;&#039;&#039;_marker_stairs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Normally, characters can&#039;t move on stairs because they contain vertical rises. In this case you can use a sloping quad that is above or inside the staircases. It&#039;s possible to set the desired flags in the &amp;lt;Model&amp;gt; section, but doing so and exporting these self-made stair ramps is wasted time. Simply apply _marker_stairs to that quad and characters will be able to move on that surface.&lt;br /&gt;
&lt;br /&gt;
Resulting flags: Stairs Transparent TwoSided Invisible NoObjectCollision NoOcclusion&lt;br /&gt;
&lt;br /&gt;
This has no effect on pathfinding creation. Regularly-textured stair geometry (which intersects the marker quad) will be flagged as NoCharacterCollision.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Impassable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
texture: &#039;&#039;&#039;_marker_impassable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Resulting flags: Transparent TwoSided (&amp;lt;-double-check this) Invisible NoOcclusion&lt;br /&gt;
&lt;br /&gt;
Impassable walls are very similar to collision boxes except that particles can also collide with them. The pathfinding grids will be also red, light green, and green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blackness a.k.a. jello fix&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Texture: &#039;&#039;&#039;_marker_blackness&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Resulting flags: TwoSided NoCollision&lt;br /&gt;
&lt;br /&gt;
Simply black walls. No effect on pathfinding creation. The purpose of these walls in Oni is to block out areas outside of a level&#039;s outermost wall so that the Jello-cam cannot show the player other parts of the level when it escapes a wall. See [[Jello-cam]] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Texture: &#039;&#039;&#039;_marker_door&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Resulting flags: DoorFrame Transparent TwoSided NoCollision NoOcclusion&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use this.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;Objects&amp;gt;===&lt;br /&gt;
Information on regular object lists can be looked up here:&lt;br /&gt;
: [[XML:BINA/OBJC/CHAR|Character.xml]] (has to contain player character if there&#039;s no AISA file with it)&lt;br /&gt;
: [[XML:BINA/OBJC/CONS|Console.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/DOOR|Door.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/FLAG|Flag.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/NEUT|Neutral.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PART|Particle.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PATR|PatrolPath.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/PWRU|PowerUp.xml]]&lt;br /&gt;
: [[XML:SNDD#BINACJBOSound.xml|Sound.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/TRIG|Trigger.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/TRGV|TriggerVolume.xml]]&lt;br /&gt;
: [[XML:BINA/OBJC/WEAP|Weapon.xml]]&lt;br /&gt;
&lt;br /&gt;
====Furniture.xml====&lt;br /&gt;
The AKEV core geometry is more or less the overall structure of the level while this furniture file adds standard objects (e.g. crates and desks) to it.&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;Objects&amp;gt;&lt;br /&gt;
| - &lt;br /&gt;
| This tag marks the file as BINACJBO.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Furniture&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| This tag marks the file as FURN.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Header&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
| Optional tag. Ignore it. Those flags were used in the past.&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;
| Optional tag. X Y Z position.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rotation&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
| Optional tag. X Y Z rotation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;OSD&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Class&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| link&lt;br /&gt;
| File path to a &#039;&#039;&#039;pre-compiled [[XML:OFGA|OFGA]] (*.oni) file&#039;&#039;&#039;. Use it as part of a relative path. Make sure that the OFGA comes with the files it needs: M3GM and TXMP.&lt;br /&gt;
&lt;br /&gt;
An OFGA can hold multiple M3GMs. That 3D content will then be integrated into the AKEV.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Particle&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| string&lt;br /&gt;
| This name gets written into &amp;lt;Tag&amp;gt; inside ONLV (ENVP section) and can be used with BSL commands, e.g. you can take control over a particle via &#039;&#039;&#039;particle BSL_name start&#039;&#039;&#039;. For more commands, see [[XML:BINA/OBJC/PART#BSL_support|HERE]].&lt;br /&gt;
&lt;br /&gt;
Take care with the naming of new OFGA files. The particle name will be composed of 2 parts separated by an &amp;quot;_&amp;quot; underscore. When one tag is empty, the final name will contain an underscore nonetheless. &#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: FURN &amp;lt;Particle&amp;gt;test&amp;lt;/Particle&amp;gt; + OFGA &amp;lt;Tag&amp;gt;streetlight&amp;lt;/Tag&amp;gt; = &#039;&#039;&#039;test_streetlight&#039;&#039;&#039;&lt;br /&gt;
: FURN &amp;lt;Particle&amp;gt;&amp;lt;/Particle&amp;gt; + OFGA &amp;lt;Tag&amp;gt;streetlight&amp;lt;/Tag&amp;gt; = &#039;&#039;&#039;_streetlight&#039;&#039;&#039;&lt;br /&gt;
: FURN &amp;lt;Particle&amp;gt;test&amp;lt;/Particle&amp;gt; + OFGA &amp;lt;Tag&amp;gt;&amp;lt;/Tag&amp;gt; = &#039;&#039;&#039;test_&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Example&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&amp;gt;&lt;br /&gt;
    &amp;lt;Objects&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
        &amp;lt;Furniture&amp;gt;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;Gunk&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;-62.692 -29 108.35&amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Rotation&amp;gt;181.522 356.021 178.114&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;Class&amp;gt;furniture/V_tctf_bigvan.oni&amp;lt;/Class&amp;gt;&lt;br /&gt;
                &amp;lt;Particle&amp;gt;&amp;lt;/Particle&amp;gt;&lt;br /&gt;
            &amp;lt;/OSD&amp;gt;&lt;br /&gt;
        &amp;lt;/Furniture&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
    &amp;lt;/Objects&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Physics.xml====&lt;br /&gt;
This file is for objects with &amp;quot;physics&amp;quot;. Unlike AKEV core geometry or furniture, these objects can be animated.&lt;br /&gt;
&lt;br /&gt;
: A small video tutorial on [https://www.youtube.com/watch?v=CFNseg_2UxA how to create a simple animated object]&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;Physics&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Object Name=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| string&lt;br /&gt;
| Use a unique name for each object.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;ScriptId&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| integer&lt;br /&gt;
| Tested with BSL command...&lt;br /&gt;
:obj_create ID [ID]&lt;br /&gt;
:obj_kill ID [ID]&lt;br /&gt;
:env_anim ID [ID]&lt;br /&gt;
:env_setanim ID [ID]&lt;br /&gt;
The scripting ID will be stored in the ONLV&#039;s OBOA instance.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
;Object setup flags&lt;br /&gt;
:None&lt;br /&gt;
:InUse&lt;br /&gt;
:NoCollision&lt;br /&gt;
:NoGravity&lt;br /&gt;
:FaceCollision&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Physics&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
| Optional tag for an Object.&lt;br /&gt;
:None&lt;br /&gt;
:Static&lt;br /&gt;
:Linear&lt;br /&gt;
:Animated&lt;br /&gt;
:Newton (used with &amp;lt;Flags&amp;gt; FaceCollision to [https://www.youtube.com/watch?v=YICB7qugrtc make an object pushable])&lt;br /&gt;
:: For a pushable object don&#039;t use import sub-tags such as animation name, flags, etc. Just use &amp;lt;Import Path=&amp;quot;...&amp;quot; &#039;&#039;&#039;/&#039;&#039;&#039;&amp;gt; or &amp;lt;Import Url=&amp;quot;...&amp;quot; &#039;&#039;&#039;/&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Position&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
| Optional tag of Object. Only used for non-animated objects. X Y Z position.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rotation&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
| Optional tag of Object. Only used for non-animated objects. X Y Z rotation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Scale&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Optional tag of Object. Only used for non-animated objects.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;Import Path=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Import Url=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| link&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| This tag comes in two variants. It doesn&#039;t matter what variant you use.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Animation Name=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| File path to *.dae file.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
| Optional tag of Animation. For more information on those flags look [[XML:OBAN|OBAN]] page.&lt;br /&gt;
&lt;br /&gt;
;Object animation flags&lt;br /&gt;
:None&lt;br /&gt;
:Loop&lt;br /&gt;
:PingPong&lt;br /&gt;
:RandomStart&lt;br /&gt;
:AutoStart&lt;br /&gt;
:Local&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;End&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Optional tag of Animation. Frame number. Used to define the end of an OBAN from a *.dae file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Start&amp;gt;&lt;br /&gt;
| integer&lt;br /&gt;
| Optional tag of Animation. Frame number. Used to define the start of an OBAN from a *.dae file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The XML code for physics can be written in two styles.&lt;br /&gt;
*The &#039;&#039;&#039;first style&#039;&#039;&#039; mimics the original structure found in extracted ONLV instances. This makes it &#039;&#039;&#039;easier to edit old levels and reimport them&#039;&#039;&#039; into the game.&lt;br /&gt;
*The &#039;&#039;&#039;second style&#039;&#039;&#039; was created with structured data (nested objects) in mind and is &#039;&#039;&#039;suited for totally new levels&#039;&#039;&#039; where animated objects must be created in a 3D editor at first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Code style 1&#039;&#039;&#039;&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&amp;gt;&lt;br /&gt;
    &amp;lt;Physics&amp;gt;&lt;br /&gt;
        &amp;lt;Object&amp;gt;&lt;br /&gt;
            &amp;lt;Geometry&amp;gt;M3GMDishBase.oni&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
            &amp;lt;Animation&amp;gt;OBANDishBase.oni&amp;lt;/Animation&amp;gt;&lt;br /&gt;
            &amp;lt;Physics&amp;gt;Animated&amp;lt;/Physics&amp;gt;&lt;br /&gt;
            &amp;lt;ScriptId&amp;gt;201&amp;lt;/ScriptId&amp;gt;&lt;br /&gt;
            &amp;lt;Position&amp;gt;-197.729141 128.46283 -2501.46387&amp;lt;/Position&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation&amp;gt;0.7071067 -1.545431E-08 1.545431E-08 0.7071068&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;Scale&amp;gt;2.109375&amp;lt;/Scale&amp;gt;&lt;br /&gt;
            &amp;lt;Name&amp;gt;object_DishBase&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;/Object&amp;gt;&lt;br /&gt;
    &amp;lt;/Physics&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Code style 2&#039;&#039;&#039;&lt;br /&gt;
:For documentation purposes, the file here has been trimmed down.&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&amp;gt;&lt;br /&gt;
    &amp;lt;Physics&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
        &amp;lt;Object Name=&amp;quot;motorcycle&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;ScriptId&amp;gt;8&amp;lt;/ScriptId&amp;gt;&lt;br /&gt;
            &amp;lt;Flags&amp;gt;FaceCollision&amp;lt;/Flags&amp;gt;&lt;br /&gt;
            &amp;lt;Import Url=&amp;quot;motorcycle/export.dae&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Animation Name=&amp;quot;motorcycle02&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Flags&amp;gt;AutoStart&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                    &amp;lt;End&amp;gt;880&amp;lt;/End&amp;gt;&lt;br /&gt;
                &amp;lt;/Animation&amp;gt;&lt;br /&gt;
                &amp;lt;Animation Name=&amp;quot;motorcycle02_stop&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Start&amp;gt;881&amp;lt;/Start&amp;gt;&lt;br /&gt;
                &amp;lt;/Animation&amp;gt;&lt;br /&gt;
            &amp;lt;/Import&amp;gt;&lt;br /&gt;
        &amp;lt;/Object&amp;gt;&lt;br /&gt;
        [...]&lt;br /&gt;
    &amp;lt;/Physics&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, OniSplit takes the file &amp;quot;export.dae&amp;quot;, looks at the parts it contains, and creates geometry files from it.&lt;br /&gt;
* M3GMhubs_rear.oni&lt;br /&gt;
* M3GMhubs.oni&lt;br /&gt;
* M3GMmotorcycle.oni&lt;br /&gt;
It&#039;s convenient that hierarchies are supported here.&lt;br /&gt;
&lt;br /&gt;
The motorcycle is made of 3 parts so 3 object animations ([[XML:OBAN|OBAN]]) will be created up to frame 880. Then OniSplit creates 3 more OBANs starting from frame 881.&lt;br /&gt;
&lt;br /&gt;
The reason for the interruption at frame 880 is probably to give Barabas a little more camera time in the cutscene.&lt;br /&gt;
&lt;br /&gt;
;Notes about BSL usage:&lt;br /&gt;
&lt;br /&gt;
The Vago Lab cutscene script uses the motorcycle objects and animations like this:&lt;br /&gt;
 	env_show 8 0		# hide static motorcycle parts or else they would be visible&lt;br /&gt;
 	env_show 9 0		# while Konoko is still riding her animated motorcycle&lt;br /&gt;
 	env_show 10 0		# the static motorcycle is separated into objects 8, 9 and 10&lt;br /&gt;
 &lt;br /&gt;
 	# Static and animated objects are totally independent from each other.&lt;br /&gt;
 	# They are stored in different arrays so their script IDs can use the same numbers.&lt;br /&gt;
 &lt;br /&gt;
 	obj_create 8 10		# create all animation-ready motorcycle parts&lt;br /&gt;
 	env_anim 8 10		# animate those parts (not necessary if OBAN flag is &amp;quot;AutoStart&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 	# The first animations would loop because of &amp;quot;AutoStart&amp;quot;, so get the&lt;br /&gt;
 	# right timing to apply the other animations. &amp;quot;motorcycle02_stop&amp;quot;&lt;br /&gt;
 	# and the others will not loop because they don&#039;t have &amp;quot;AutoStart&amp;quot;.&lt;br /&gt;
 	env_setanim 8 hubs_stop&lt;br /&gt;
 	env_setanim 9 hubs_rear_stop&lt;br /&gt;
 	env_setanim 10 motorcycle02_stop&lt;br /&gt;
 &lt;br /&gt;
 	obj_kill 8 10		# delete all animated parts&lt;br /&gt;
 	env_show 9 1		# show static motorcycle model where Konoko parks her bike&lt;br /&gt;
&lt;br /&gt;
====Corpses.xml====&lt;br /&gt;
An empty Corpse element (&amp;lt;Corpse /&amp;gt;) is treated as unused and placed at the end of the array. If no such empty elements are provided, OniSplit automatically adds 5. OniSplit also ensures that there are at least 20 corpses in the array.&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;Corpses&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Corpse&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Class&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| [[XML:ONCC|ONCC]]&#039;&#039;name&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Transforms&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| There are 19 &amp;lt;Matrix&amp;gt; for each &amp;lt;Transforms&amp;gt; (which represents a body part).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Matrix&amp;gt;&lt;br /&gt;
| matrix&lt;br /&gt;
| Float 3x3 + float x3 for the last 3 values (X Y Z position). For more information about the matrix, see [[OBD:CRSA]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;BoundingBox&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
| Bounding box of the whole corpse. Optional; if not provided, OniSplit will generate an approximate one. Currently it doesn&#039;t try to locate the ONCC to compute an exact bounding box.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Min&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| float x3&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trimmed example&#039;&#039;&#039;&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&amp;gt;&lt;br /&gt;
    &amp;lt;Corpses&amp;gt;&lt;br /&gt;
        &amp;lt;Corpse&amp;gt;&lt;br /&gt;
            &amp;lt;Class&amp;gt;generic_male_1&amp;lt;/Class&amp;gt;&lt;br /&gt;
            &amp;lt;Transforms&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.36488995 0.04620622 -0.9299034 -0.05580434 -0.9980576 -0.02769538 -0.9293768 0.04178688 0.366759717 -215.667755 1.603917 92.85312&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.2961557 -0.185628444 0.936928 -0.368288517 -0.9272724 -0.06730227 0.8812806 -0.32512787 -0.342981815 -216.51889 1.64218426 93.189&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.407847315 0.156575248 0.8995248 -0.238757968 -0.9326179 0.2705892 0.8812805 -0.3251278 -0.342982143 -215.239883 0.8405094 97.23532&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.439697325 0.467113584 0.767118752 0.0248355754 -0.8601105 0.5095029 0.8978026 -0.204975232 -0.389789373 -213.6234 1.46109009 100.80056&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.717241049 -0.179043233 0.673430443 0.4761817 -0.579636 -0.6612664 0.5087397 0.794962764 -0.3304816 -214.81662 1.56564879 92.5172348&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.3398023 0.1672905 0.925498843 0.7910236 -0.5831365 -0.185023025 0.5087395 0.7949628 -0.330481827 -211.71907 0.792413354 95.42558&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.1283634 0.227430075 0.965297 0.804142356 -0.59352535 0.032904774 0.5804117 0.7720126 -0.259073079 -210.372269 1.45546341 99.0937653&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.285799921 0.06851995 -0.955836535 -0.240357026 -0.970681965 0.00228381017 -0.927656651 0.230394751 0.2938901 -216.284851 1.5839076 91.29168&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.312039882 0.04875436 -0.948817253 -0.176752359 -0.9842264 0.00755515043 -0.9334825 0.1700632 0.31573534 -216.689789 1.68287766 89.9359055&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.356412441 -0.5390179 -0.763170958 0.0404523835 -0.82494843 0.5637587 -0.933452547 0.170058519 0.315826446 -217.422012 1.7979821 87.70907&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.101782769 -0.247171819 -0.9636112 0.5426916 -0.8256094 0.154451028 -0.8337422 -0.507223248 0.2181709 -217.747284 1.30605173 87.0125656&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.8154478 -0.150626346 0.558888733 -0.1200991 0.9885643 0.09119747 -0.566234052 0.00724477554 -0.8242127 -217.7402 2.065678 88.15346&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.4593738 -0.326781839 0.825947642 0.8874048 -0.1284554 0.442732215 -0.0385793857 0.9363295 0.348996729 -219.093979 1.81561315 89.08131&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.9545983 -0.13777709 0.26412034 0.295387268 -0.322961926 0.899134 -0.0385792255 0.9363296 0.348996431 -220.3681 0.9092429 91.37218&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;-0.9715769 -0.0362956524 0.233924776 0.0276728421 -0.9988148 -0.0400396362 0.2351007 -0.0324283168 0.9714299 -222.775482 0.56178683 92.03825&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.979860842 -0.192433611 0.0533096045 0.193336874 0.9810555 -0.0122905634 -0.0499345176 0.0223497637 0.9985025 -216.8387 1.90143847 87.84845&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.863898 -0.399280578 0.3070101 0.171117 -0.340619326 -0.9244986 0.4737078 0.851207137 -0.225936681 -215.211975 1.58196676 87.93695&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.4673251 -0.0255063027 0.883717656 0.746463835 -0.524209559 -0.4098731 0.4737075 0.851207256 -0.225936785 -212.815842 0.47451216 88.78848&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
                &amp;lt;Matrix&amp;gt;0.216871262 -0.007893051 0.976168454 0.3751846 0.9238389 -0.0758833 -0.9012231 0.3827002 0.203315422 -211.637314 0.410188764 91.0171051&amp;lt;/Matrix&amp;gt;&lt;br /&gt;
            &amp;lt;/Transforms&amp;gt;&lt;br /&gt;
            &amp;lt;BoundingBox&amp;gt;&lt;br /&gt;
                &amp;lt;Min&amp;gt;-219.731216 -2.258905 84.47974&amp;lt;/Min&amp;gt;&lt;br /&gt;
                &amp;lt;Max&amp;gt;-207.518463 4.49535131 104.023239&amp;lt;/Max&amp;gt;&lt;br /&gt;
            &amp;lt;/BoundingBox&amp;gt;&lt;br /&gt;
        &amp;lt;/Corpse&amp;gt;&lt;br /&gt;
    &amp;lt;/Corpses&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Image:ONLV_CRSA_XSI_aided_import.jpg|thumb|200px]]&lt;br /&gt;
&lt;br /&gt;
:Some related information can be found at [[Authoring custom camera animations]].--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
For indirect import, see [http://oni.bungie.org/forum/viewtopic.php?id=2657 HERE] (OniTools v7.1.5+) on how to get corpse data.&lt;br /&gt;
&lt;br /&gt;
When you process your XML master file, use OniSplit version 0.9.94.0+. Older OniSplit versions like 0.9.86.0 may generate ONLV files that are not re-packable with newer versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Export)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With Neo&#039;s matrix-to-Euler code, the rotations can be recovered from CRSA. But due to the character&#039;s hierarchy, things get messy again (&amp;lt;nowiki&amp;gt;https://dl.dropboxusercontent.com/u/139715/OniGalore/CRSA_to_Mod_Tool_wip.png&amp;lt;/nowiki&amp;gt;, dead link). (WIP code (&amp;lt;nowiki&amp;gt;https://dl.dropboxusercontent.com/u/139715/temp/CRSA_to_Mod_Tool.txt&amp;lt;/nowiki&amp;gt;, dead link))&lt;br /&gt;
&lt;br /&gt;
A workaround might be to save characters without animations, destroy their hierarchy, apply the local rotations / global translation and glue everything together again.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BGI_characters&amp;diff=46212</id>
		<title>BGI characters</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BGI_characters&amp;diff=46212"/>
		<updated>2025-12-26T06:16:46Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a series of new characters intended for use in adding the entity [[BGI]] to the game, developed by [[User:Samer|Samer]]. They include either completely new concepts or concepts based on the ideas discussed in [[AE:BGI]]. They all share a common color scheme of white, black, and different shades of green/teal. All the playable characters have customized movesets and green contrails and hit impacts.&lt;br /&gt;
&lt;br /&gt;
==BGI Executives==&lt;br /&gt;
*First concept by [[User:Geyser|geyser]] is found [[AE:BGI#Executives|here]].&lt;br /&gt;
*In Samer&#039;s version these are non-fighting characters, wearing suits and rarely seen in the field, if ever.&lt;br /&gt;
*They run BGI, working behind the scenes on grand scales.&lt;br /&gt;
[[Image:BGI Executives 1.jpg]]&lt;br /&gt;
[[Image:BGI Executives 2.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Sarai==&lt;br /&gt;
*[[Sarai]] is a female BGI boss working directly under the Executives&#039; orders.&lt;br /&gt;
*More information on the character can be found by clicking on her name.&lt;br /&gt;
*Mod available [http://oni.bungie.org/forum/viewtopic.php?pid=46869#p46869 here].&lt;br /&gt;
[[Image:Sarai.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
==BGI Agents==&lt;br /&gt;
*These were previously considered the Executives, however in Samer&#039;s version these are called the BGI Agents and they are field agents, the equivalent of the Syndicate [[Comm Trooper]].&lt;br /&gt;
*These guys usually accompany [[Sarai]] as her henchmen; they are strong and quick in addition to being highly technologically skilled and experts in weapons.&lt;br /&gt;
*Mod available [http://web.archive.org/web/20160225030429/http://oni.bungie.org/forum/viewtopic.php?id=1329 here].&lt;br /&gt;
*The mod includes 2 classes, &amp;quot;Lite&amp;quot; and &amp;quot;Blackops&amp;quot;, Blackops being an upgraded difficulty class. Each class has 3 variants. (6 variants total)&lt;br /&gt;
[[Image:Bgi agents lite.jpg]]&lt;br /&gt;
[[Image:Bgi agents blackops.jpg]]&lt;br /&gt;
&lt;br /&gt;
==BGI Hammer==&lt;br /&gt;
*This giant cyborg has shock generators at the end of his arms, making contact with his punch almost lethal. His techniques include shockwaves and electrical attacks.&lt;br /&gt;
*The character concept was first mentioned by Leus [http://oni.bungie.org/forum/viewtopic.php?pid=19624#p19624 here].&lt;br /&gt;
*:(A major influence of the concept was [[wp:Rhino_(character)|Marvel&#039;s Rhino]] as seen [http://web.archive.org/web/20210324174207/https://www.renderhub.com/rip-van-winkle/rhino-from-marvel-strike-force here])&lt;br /&gt;
*The model and textures are made by [[User:Ltemplar|Ltemplar]].&lt;br /&gt;
*Mod available [http://oni.bungie.org/forum/viewtopic.php?id=2490 here].&lt;br /&gt;
[[Image:BGI Hammer.jpg]]&lt;br /&gt;
&lt;br /&gt;
==BGI Hydra==&lt;br /&gt;
*This female SLD is based on Sarai and would share some of her moveset. Her legs have been mechanically and technologically enhanced giving her the ability to jump high and deliver high damage with kick attacks. Her moveset would include all kick moves, and throws utilizing her legs, with no punches. She would be very fast and agile, but would have low health. She would be considered relatively common, similar to how common furies and tankers are to the Syndicate. &lt;br /&gt;
*The character concept was first mentioned by Leus [http://oni.bungie.org/forum/viewtopic.php?pid=19624#p19624 here].&lt;br /&gt;
*The design of the character took inspiration from [[Hikari]].&lt;br /&gt;
*Mod discussion [http://web.archive.org/web/20160224173752/http://oni.bungie.org/forum/viewtopic.php?id=2936 here].&lt;br /&gt;
[[Image:BGI Hydras.jpg]]&lt;br /&gt;
&lt;br /&gt;
==BGI NinjaBot==&lt;br /&gt;
*A light and quick BGI Bot.&lt;br /&gt;
*Model imported by Samer, original model found [https://downloadfree3d.com/3d-models/weapons/robot/robot-warrior/ HERE] and [http://web.archive.org/web/20210122041553/https://www.domawe.net/2014/09/robot-knight-3d-model-free-download-rf.html HERE].&lt;br /&gt;
*:(Later identified as an Accretian Warrior from the MMORPG [https://www.gameogre.com/reviewdirectory/reviews/RF_Online.php RF Online].)&lt;br /&gt;
*He has a custom TRAC (mix of Ninja&#039;s and Training Droid&#039;s (Comguy) moves).&lt;br /&gt;
*Mod available [http://web.archive.org/web/20170517033156/http://oni.bungie.org/forum/viewtopic.php?id=2438 here].&lt;br /&gt;
[[Image:BGI NinjaBot.jpg]]&lt;br /&gt;
&lt;br /&gt;
==BGI Heavy Bot==&lt;br /&gt;
*The general idea of a &amp;quot;BGI heavy&amp;quot; is by geyser, discussed [[AE:BGI#Candidate|here]].&lt;br /&gt;
*Model imported by geyser (from an unsourced SketchUp model)&lt;br /&gt;
*:(Years later, it was identified as [https://models.spriters-resource.com/pc_computer/unrealtournament2004/asset/286716/ Widowmaker] from UT2004)&lt;br /&gt;
*Textures and UV map correction were done by Ltemplar.&lt;br /&gt;
*Custom TRAC and slight texture modifications by Samer.&lt;br /&gt;
*This character was originally referred to as BGI Trooper but this was changed to BGI Heavy Bot, making the BGI Trooper an armored form of BGI Agent.&lt;br /&gt;
*Mod available [http://web.archive.org/web/20160224193743/http://oni.bungie.org/forum/viewtopic.php?id=2445 here].&lt;br /&gt;
[[Image:BGI Heavy Bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BGI]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Anniversary_Edition/Installer&amp;diff=46211</id>
		<title>Anniversary Edition/Installer</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Anniversary_Edition/Installer&amp;diff=46211"/>
		<updated>2025-12-26T06:16:32Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AE Installer 2 (AEI2) is the program used to install mods, patches and tools, as part of the [[Anniversary Edition]]. The app requires Java, as well as .NET 2.0 or higher in Windows and Mono in macOS. The AEI2 has a support thread on the forum [http://web.archive.org/web/20200224104659/http://oni.bungie.org/forum/viewtopic.php?id=2525 here]. The source code is available [https://websvn.illy.bz/browse/Oni2/java/ here].&lt;br /&gt;
&lt;br /&gt;
The AEI talks to the {{OMD}} and gets a list of available mods (the list is cached, but updated every two minutes). It then offers those for download and installation. It will also detect when an installed mod has an update available, and can even update itself using the supporting program [[/Updater|AEInstaller2Updater]]. The AEI also supports localization (easy translation into other languages). Currently the AEI can run in English, German, and Russian; if you want to contribute a new localization, read [[/Localization|this page]]. You can email Alloc with your strings when you&#039;re done.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Subpages:&#039;&#039; [[/Change log|Installer change log]], [[/Localization|Localization]], [[/Updater|Updater]]&lt;br /&gt;
&lt;br /&gt;
==GUI scaling==&lt;br /&gt;
On modern displays you may want to change the DPI settings of the program, otherwise text, tables and controls will appear too small.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
: Right-click the shortcut &amp;quot;AEInstaller2&amp;quot;, choose Properties and go to the Compatibility tab&lt;br /&gt;
: (Windows 8) Check the &amp;quot;Disable display scaling on high DPI settings&amp;quot; box&lt;br /&gt;
: (Windows 10, 11) Click the &amp;quot;Change high DPI settings&amp;quot; button: [x] Override high DPI scaling behavior: System (Enhanced)&lt;br /&gt;
&lt;br /&gt;
==Main window==&lt;br /&gt;
[[Image:AEI main window.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
*Status column - Each mod starts off with &amp;quot;___&amp;quot;, three blank spots. The first will become &#039;I&#039; when the mod is &amp;quot;installed&amp;quot;, the middle space will become &#039;U&#039; if an &amp;quot;update&amp;quot; is available, and the last becomes &#039;D&#039; when you&#039;ve &amp;quot;downloaded&amp;quot; the mod.&lt;br /&gt;
&lt;br /&gt;
*As long as the mod list is the active window pane, you can press any letter to jump to the mod that begins with that letter; press it again to cycle through the remaining mods that start with that letter.&lt;br /&gt;
&lt;br /&gt;
*You can sort the mods by clicking on the column headers; sort by the &amp;quot;Last change&amp;quot; or &amp;quot;Added&amp;quot; columns to see what&#039;s new on the Depot.&lt;br /&gt;
&lt;br /&gt;
*The AEI will remember the sort order you choose, what columns you choose to display, and the window size you set it to have.&lt;br /&gt;
&lt;br /&gt;
*You can hide/show columns by right-clicking the column header:&lt;br /&gt;
[[Image:AEI column menu.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*You can right-click a mod to go to the mod&#039;s page on the Depot, go to the package on your HD (if downloaded), delete the mod locally (if downloaded), or force a re-download; this might be useful if you messed up or deleted the content of the mod on your hard drive, or if you think you got a corrupted download.&lt;br /&gt;
[[Image:AEI mod context menu.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Mods menu==&lt;br /&gt;
*You can save a list of your current selection of mods by choosing &#039;&#039;&#039;Mods&amp;gt;Save current mod selection&#039;&#039;&#039;, then restore the list later using &#039;&#039;&#039;Mods&amp;gt;Load mod selection&#039;&#039;&#039; (this only saves the list of selected mods, not the actual mods).&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Also, don&#039;t forget to check out the AEI&#039;s Settings. Notice that the AEI copies over [[outro]] by default, but not [[intro]]. It&#039;s recommended that you keep the update notification option checked.&lt;br /&gt;
[[Image:AEI settings.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Core packages==&lt;br /&gt;
*You can view core packages by choosing &#039;&#039;&#039;Mods&amp;gt;Show core packages&#039;&#039;&#039;. You can view the description of these packages, and right-click to open their mod folder, or to re-download them if necessary, but you can&#039;t delete them. These packages will always be automatically installed and updated.&lt;br /&gt;
[[Image:AEI core window.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
*You can manage modding tools by choosing &#039;&#039;&#039;Tools&amp;gt;Manage Tools&#039;&#039;&#039;. From there you can download and install or uninstall tools. Installed tools will later appear under the &#039;&#039;&#039;Tools&#039;&#039;&#039; menu for easy access.&lt;br /&gt;
[[Image:AEI tool window.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Anniversary Edition]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=History_of_Oni_modding&amp;diff=46210</id>
		<title>History of Oni modding</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=History_of_Oni_modding&amp;diff=46210"/>
		<updated>2025-12-26T06:16:23Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hatnote|This article is a historical perspective on Oni [[wp:Video game modding|modding]]; for an introduction to how to actually mod Oni, see [[Introduction to modding|here]]. To download mods, you can start [[AE|here]].}}&lt;br /&gt;
As has been documented on the page about [[Oni]]&#039;s overall development, time ran out for Bungie West to do everything they wanted with this very ambitious game. Just as some features had to be omitted, the promise of modding support&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;ref&amp;gt;In [[Harry]]&#039;s [http://oni.bungie.org/special/part1/brent.html interview], Brent Pease, the Project Lead, said: &amp;quot;What we will do is, I&#039;m about 90 percent sure of this, is give away the file format.&amp;quot; He also promises with equal certainty that the tools for converting 3D Studio Max models into Oni models will be given away. Pease eventually left the project before its completion. Hardy LeBel, his replacement, would later say, &amp;quot;[Due to the time crunch] our primary focus had to be on completing the content and features of the game rather than building in support for the mod community.&amp;quot; Additionally, Bungie no longer owned the game by the time it shipped, so it would have been legally questionable to release header files from the source code, which would be the simplest and quickest way to &amp;quot;give away the file format&amp;quot;.&amp;lt;/ref&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt; also failed to come true. However, even before Oni fans realized that there would never be official modding tools from Bungie, they were already eagerly diving into the game data to see how they could mod it.&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;ref&amp;gt;Fans wasted no time in dumping the readable text from the executable and trying to figure out how to enable Developer Mode, starting before Oni&#039;s official release date by analyzing the demo&amp;lt;!--Dead link: http://carnage.bungie.org/oniresforum/onires.archive.pl?read=35 --&amp;gt;. Little did they know it would take another five years before this particular goal would be reached.&amp;lt;/ref&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt; Nevertheless, the lack of any documentation or tools for modding undeniably slowed the development of mods within the community. Only since 2010&amp;lt;!--Nov. 6, 2010 is the date that geyser posted about OniSplit supporting pathfinding grids for new levels in the article &amp;quot;New levels&amp;quot;.--&amp;gt; has the community&#039;s modding capabilities covered nearly all aspects of the game.&lt;br /&gt;
&lt;br /&gt;
There are three basic areas in which the game can be modded: scripting, binary resources, and the engine itself.  Along the way, we&#039;ll look at some key discoveries the community made in more detail.&lt;br /&gt;
&lt;br /&gt;
==BSL scripting==&lt;br /&gt;
[[Image:One Tiny Mistake.jpg|thumb|225px|right|Konoko pulls her gun on the secretary in the beginning of Chapter 2, a change to the original cutscene made by a script which tightens up the story and provides a new challenge for veteran players.]]&lt;br /&gt;
Since the .bsl files were in plain text and in plain sight within the folders that held Oni&#039;s game data, it&#039;s not surprising that fans quickly learned some basic scripting commands by seeing what Bungie had written, and started making their own scripts. Further commands were discovered by dumping readable text from the engine, although not everything worked as it seemed it should.&lt;br /&gt;
&lt;br /&gt;
As scripters were learning [[BSL]], they produced scripts that at first merely modified the original level logic in minor ways. Then they produced more original, often epic fight scripts; later, some ambitious modders scripted totally new objectives and mission layouts (e.g., Mariachi Bear&#039;s alternate storyline). Some of the most complex scripts are the [[OTA]] scripts which were eventually developed to make up for a lack of multiplayer gameplay.&lt;br /&gt;
&lt;br /&gt;
However, fully original scripts are all the more prone to bugs. The first two are easier to set up, but extreme situations tend to overload the engine (as in &amp;quot;[[Blam!]]&amp;quot;) in ways that scripters have trouble preventing. Testing the scripts required numerous reloads of the game. The process became much faster when the Developer Mode console was unlocked (see {{SectionLink||Finding Dev Mode}}) and individual commands could be tested easily.&lt;br /&gt;
&lt;br /&gt;
While scripting is the easiest way to mod Oni, it&#039;s also the most limited, because scripts can only utilize the resources that the vanilla level has to offer.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Binary resources==&lt;br /&gt;
===Private knowledge, public results===&lt;br /&gt;
[[Image:OniTools.jpg|thumb|225px|right|Ian Patterson&#039;s trailblazing Mac program OniTools was eagerly ported to Windows by other fans.]]&lt;br /&gt;
[[Image:OUP_txmpreplace.jpg|thumb|225px|right|OniUnPacker by Alloc, premiering in fall of 2005, provided a simple interface for finding the resource you wanted and displaying it, as well as replacing it.]]&lt;br /&gt;
[[Image:AE_Installer_1.jpg|thumb|225px|right|The AE mod installer released in 2009. For the first time, players could pick and choose what mods to install.]]&lt;br /&gt;
[[Image:AEI_main_window.jpg|thumb|225px|right|The AE Installer released in 2013 could update itself, the player&#039;s mods, and the patches made to the game. It was written from scratch in Java for ease of cross-platform support.]]&lt;br /&gt;
Fans with some expertise in parsing files with hex editors found that the level data files held four-letter codes indicating the start of each resource within that file. Before Oni even released, the community had its first resource modding tool, Ian Patterson&#039;s [[OniTools]]. While the author did not yet know how all the data worked, his program could at least parse it, and allow the modder to more easily edit each resource without having to count in hexadecimal. It also supported user-friendly replacement of texture maps, delta patches called CMPOs, and allowed inline viewing of the game&#039;s 3D models. There seems to be little evidence that this knowledge was put to use in modding the game resources beyond simple texture replacements, no doubt due to the lack of a complete understanding of how Oni&#039;s dozens of resource types were interrelated. But the open-source release of OniTools gave fans something to build on.&lt;br /&gt;
&lt;br /&gt;
Independently, an intrepid programmer named Pierre Terdiman decided to import data from Oni into the game engine that he was writing from scratch. Called [[Konoko Payne]], it was a long-term project which took the form of (1) an underlying engine and (2) a short scenario for it that resembled a sequel to Oni. In order to extract models and animations from Oni and recreate them precisely in his project, Pierre became one of the early pioneers in reverse-engineering the game&#039;s resources, although his acquired knowledge remained largely private as the engine was closed-source.&lt;br /&gt;
&lt;br /&gt;
===Hackers unite===&lt;br /&gt;
Perhaps the first place that knowledge of Oni&#039;s data was directly published online was on [http://oni.moltenstudios.com/tool/index.php Oni Master&#039;s site], which started as early as 2003 and was based on the source code for OniTools. Then, in 2005, [[User talk:Ssg|Ssg]] opened a site with a much more thorough examination of the game data (the site is now hosted at http://ssg.oni2.net). Later that year, this pool of knowledge was painstakingly moved by [[User:Geyser|geyser]] and Ssg to its final home on the newly-opened wiki OniGalore. The purpose of creating the [[OBD|Oni Binary Database]] was to allow collaboration, and soon [[User talk:Neo|Neo]] appeared on the scene, adding his own knowledge that he had been acquiring independently until then, and collaborating on further investigations into the resource formats. Today at least 95% of the binary resource formats are documented byte for byte thanks to their hard work.&lt;br /&gt;
:&#039;&#039;Further reading:&#039;&#039; {{SectionLink|History of the Oni community|2005}}.&lt;br /&gt;
&lt;br /&gt;
===Modding by candlelight===&lt;br /&gt;
Originally, modders had to alter these binary resources manually with hex editors to adapt them to their scripts. [[User:Loser|Loser]] was the first modder to manually edit the game data to go along with his scripting, creating a massively reshuffled Warehouse. Loser&#039;s [[AE:Warehouse|Warehouse mod]] included a global component (modified level0_Final), level-specific binary modifications, and a set of customized scripts that took full advantage of the modified binaries.&lt;br /&gt;
&lt;br /&gt;
Minor binary modding had already occurred before Loser&#039;s Warehouse (thus, while compiling the [[OBD]] database, Ssg had released a version of level0_Final in which all of Konoko&#039;s combos were unlocked). Still, it was the Warehouse mod released in 2005 which first showed the &amp;quot;full&amp;quot; potential of binary modding. It inspired a short-lived initiative called the [[AE:BIP|Binary Improvement Project]] (BIP), aimed at providing upgraded binaries for all levels, not just level0_Final and level1_Final.&lt;br /&gt;
&lt;br /&gt;
BIP was hindered by large upload/download sizes as well as by the potential legal issues involved in distributing entire files from the game; in 2006 it was replaced by a smarter alternative to supplying whole levels, in the form of [[OUP|OniUnPacker]]-based patches, and was termed [[AE:ONK|Oni ni Kanabô]] (ONK). The modder would edit his .dat/.raw files in OUP, and then release a single binary resource patch. This was both bandwidth-efficient and more legal-friendly, but suffered from one major limitation: the indexation and offsets of data vary a lot across the available versions of Oni. Thus, resources exported with OUP were not truly standalone or portable. Also, OUP still lacked the ability to import new resources alongside existing ones.&lt;br /&gt;
&lt;br /&gt;
===Modular modding===&lt;br /&gt;
The advent of Neo&#039;s [[OniSplit]] in late 2007 marked a radical improvement to the community&#039;s modding methods. A command-line tool that runs on Windows and Macs, OniSplit breaks Oni&#039;s resources into standalone files, making mods truly portable across different retail versions of Oni. These resources can be exported to standard formats as text, images, sounds and 3D models, which after editing can be recombined into the level data files that Oni expects, and newly-made resources can also be packed into the level data. To take advantage of this revolution in modding, geyser began preparing an OniSplit-based port of some of the work done on BIP and ONK, which he hoped would be ready for the seventh anniversary of Oni&#039;s release in January 2008.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;[[AE|Seventh Anniversary Edition]]&amp;quot; had major releases in January and July 2008. The tradition continued of using a central modding project to organize a general revision of Oni&#039;s content, as seen on pages like [[AE:Ninja]]. The project then changed hands to [[User:Gumby|Gumby]], who designed a framework and a GUI-based installer that allowed players to selectively install only the modifications that they wanted. This mostly moved the project away from a centralized improvement effort, though select mods were still bundled with the download. Since Oni&#039;s seventh anniversary had come and gone, the mod collection was renamed simply the &amp;quot;Anniversary Edition&amp;quot;, aka the &amp;quot;Edition&amp;quot; or the &amp;quot;AE&amp;quot;. Released in July 2009, the new AE&#039;s framework allowed modders to create their own &amp;quot;[[Making a mod package|mod packages]]&amp;quot;. These could be stored on the {{OMD}}, then downloaded by the player and placed in a certain folder in order to see them in the Installer. Another release was made in May 2010 with more bundled mods and an improved framework.&lt;br /&gt;
&lt;br /&gt;
Nothing new took place on this front until 2013, by which time the project had fallen into [[User:Iritscen|Iritscen&#039;s]] hands due to the retirement of geyser and Gumby. At this time, the release of the new AE included a brand-new Installer written by Alloc which could connect to the Mod Depot, offer all mod packages for download, and update the mods and patches already installed. The program [[XmlTools]] was developed by [[User:Script 10k|s10k]] to allow &amp;quot;patch modding&amp;quot; of resources in order to avoid conflicts when different mods attempted to modify the same resource. The AE&#039;s bundled content was stripped down to only minimal fixes for the first time, making all notable game modifications into optional third-party mods and ceasing any attempt at centralized game data improvement.&lt;br /&gt;
&lt;br /&gt;
===New content===&lt;br /&gt;
Certain game resources were easy enough to reverse-engineer that the community was able to mod them almost from the time of Oni&#039;s release, such as textual resources and textures. Some game resources, however, were complex and involved multiple data types, such as character models, and, most obviously, levels themselves. These took a number of years to decipher.&lt;br /&gt;
&lt;br /&gt;
OniSplit first gained the ability to import new character models in April 2008.&amp;lt;ref&amp;gt;See [[User talk:Neo/Archive2]].&amp;lt;/ref&amp;gt; At first, since the focus was on the technical side of things, pre-existing models were used, either by modifying Oni&#039;s models, or by finding royalty-free models on web sites and converting them to Oni&#039;s 19-bone system. A more dramatic use of the character-importing ability came with the creation of a high-detail Konoko model from scratch in October 2010.&amp;lt;ref&amp;gt;[http://web.archive.org/web/20220524143515/http://oni.bungie.org/forum/viewtopic.php?id=1727 OCF thread, &amp;quot;Konoko HD&amp;quot;].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A major obstacle with levels was the question of how to generate pathfinding (PF) grids for the AI. Level geometry could be imported fairly easily as of November 2008,&amp;lt;ref&amp;gt;See [[User talk:Neo/Archive5]].&amp;lt;/ref&amp;gt; but AIs could not navigate the level. Manual PF grid creation was first demonstrated with the creation of the Arena level in November 2010.&amp;lt;ref&amp;gt;[http://web.archive.org/web/20210117150652/http://oni.bungie.org/forum/viewtopic.php?id=1736 OCF thread, &amp;quot;Arena Level&amp;quot;].&amp;lt;/ref&amp;gt; Automatic PF grid generation was introduced to OniSplit around June 2011. More comprehensive demonstrations of the community&#039;s level creation abilities came with [[User:EdT|EdT]]&#039;s level &amp;quot;Muro&#039;s Lair&amp;quot; in August 2011&amp;lt;ref&amp;gt;[http://web.archive.org/web/20201029113340/http://oni.bungie.org/forum/viewtopic.php?id=2024 OCF thread, &amp;quot;Muro&#039;s Lair - Preview&amp;quot;].&amp;lt;/ref&amp;gt; and [[User:Samer|Samer]]&#039;s level &amp;quot;Wilderness Preserve&amp;quot; in January 2014.&amp;lt;ref&amp;gt;[http://web.archive.org/web/20211202225410/http://oni.bungie.org/forum/viewtopic.php?id=2698 OCF thread, &amp;quot;NEW LEVEL : Chapter 17: Wilderness Preserve - Hasegawa Adventure&amp;quot;].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Work continues in all areas of modding Oni, as well as documenting the modding process.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Engine patching==&lt;br /&gt;
===Finding Dev Mode===&lt;br /&gt;
[[Image:Sfeli Finds Dev Mode.jpg|thumb|225px|right|[[User talk:SFeLi|SFeLi]] documents his discovery in 2006: in examining the binary, he noticed that the list of cheat codes had a gap in it where one cheat had been deactivated – that code was for Developer Mode. For more history, see [[/The tale of Dev Mode|The tale of Dev Mode]].]]&lt;br /&gt;
Engine patching is needed when modders want to do things the game&#039;s scripts and data do not currently allow for, as well as to fix bugs. Bug fixes were the earliest notable achievement in engine patching, originally performed by a patching application that altered the Windows Oni executable directly, but a revolution in this type of modding occurred in 2006 when [[Developer Mode]] was finally discovered in retail Oni&#039;s code, and a means for unlocking it was needed.&lt;br /&gt;
&lt;br /&gt;
The most foolproof method of altering the engine turned out to be replacing a library that Oni loads at runtime. Originally this was done by placing a library next to Oni.exe called vtuneapi.dll, which contained code written by SFeLi that would replace or patch functions in Oni. This library came to be known as the [[Daodan DLL]]. The code for it was ported from assembly language to C by RossyMiles. Eventually the decision was made to instead replace binkw32.dll (the library for playing Oni&#039;s intro and outro movies) because it loaded earlier in Oni&#039;s launch sequence. The DLL was later developed by Gumby and then Alloc, fixing more bugs (some of which result from modern computers running a {{Age|2001|1|29}}-year-old game), as well as adding new features. The DLL&#039;s features and settings are documented on the page for the DLL linked above.&lt;br /&gt;
&lt;br /&gt;
Not long after the Daodan DLL was released for Windows Oni, it was discovered that the Mac versions of Oni still had Dev Mode in them, too. Instead of replacing the Bink Carbon Library that came with Mac Oni, the Omni Group port of the game application to Mac OS X was patched directly with a hex editor. In the fall of 2008, it was discovered that numerous BSL functions and variables that were thought to be removed from Oni for the Mac [[Mac beta 4|before release]] were still present in the code, and the ones which allowed Macs to run (almost) all scripts written for Windows Oni were &amp;quot;unlocked&amp;quot; by EdT using hex edits. Certain changes made by the Daodan DLL for the Windows version were also carried over to the Mac&#039;s [[OMNI|PPC game application]] in hex-edit form with Neo&#039;s assistance. Later, these changes were made in source for Feral Interactive&#039;s [[FERAL|Mac Intel port]].&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
One of the most visible changes to the game that the Daodan DLL (and equivalent hex edits on the Mac side) made possible came about in July &#039;07 when an error in Oni&#039;s AI routines was corrected by Neo, allowing the AI to dodge incoming fire more consistently. Fans had originally been disappointed to see the AI often run blindly into oncoming gunfire. With Neo&#039;s patch in place, previously glitched code now works as intended, allowing the AI to dodge projectiles by taking cover.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
The most ambitious use of engine patching has been to fill in for Oni&#039;s [[Multiplayer|missing multiplayer mode]]. In Windows this was done through the Daodan DLL by the [[Flatline]] project, which saw a rough alpha released in 2010. In Mac OS X, the [[Zukai]] project operated on a Mac equivalent of the Daodan DLL and released a rough alpha in 2015.&lt;br /&gt;
&lt;br /&gt;
===New engine builds===&lt;br /&gt;
A new era in Oni&#039;s life began with the introduction in 2021 of [[OniX]], a rebuild of the game engine. It remains to be seen how far this development work will take Oni, but in theory the possibilities are almost endless.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Community history]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Anniversary_Edition/To-do&amp;diff=46209</id>
		<title>Anniversary Edition/To-do</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Anniversary_Edition/To-do&amp;diff=46209"/>
		<updated>2025-12-26T06:16:16Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;300px&amp;quot;| Task&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|Support the Oni demo&lt;br /&gt;
|If the AEI can install mods into the demo&#039;s 2 or 3 level set, it would be nice advertising. The demo data can even be automatically installed through the AEI.&lt;br /&gt;
|-&lt;br /&gt;
|Turn previously-core mods into optional mods&lt;br /&gt;
|Packages can be marked as &amp;quot;Standard fixes&amp;quot; so user is more inclined to install them.&lt;br /&gt;
|-&lt;br /&gt;
|Consider salvaging the animation mods that were bundled with AE 2010 as [https://websvn.illy.bz/browse/Oni2/AE/packages/ optional packages]&lt;br /&gt;
|&lt;br /&gt;
*Upgraded ONCCs - Make into patch mod if this is still valuable.&lt;br /&gt;
*Andrashi TRAMs - Loser [http://web.archive.org/web/20160225141425/http://oni.bungie.org/forum/viewtopic.php?pid=43490#p43490 seems to want] them to be forgotten; there are numerous issues reported for them, such as [http://web.archive.org/web/20160225192420/http://oni.bungie.org/forum/viewtopic.php?pid=27161#p27161 here] and [http://oni.bungie.org/forum/viewtopic.php?pid=36174#p36174 here]. See discussion of his and love_Oni&#039;s changes [http://web.archive.org/web/20160225025818/http://oni.bungie.org/forum/viewtopic.php?id=2576 here].&lt;br /&gt;
|-&lt;br /&gt;
|Raise femcop health in Upgraded ONCCs&lt;br /&gt;
|We have multiple reports that Karen et al. have way too low health in this pkg&lt;br /&gt;
|-&lt;br /&gt;
|Fix damage for TCTF back throw&lt;br /&gt;
|Damage frame [http://oni.bungie.org/forum/viewtopic.php?pid=45791#p45791 is outside] the actual animation!&lt;br /&gt;
|-&lt;br /&gt;
|Fix numerous issues with OTA mod packages&lt;br /&gt;
|Issues are listed [[AE talk:OTA|HERE]].&lt;br /&gt;
|-&lt;br /&gt;
|Review HQ movie packages for Mac/Win&lt;br /&gt;
|Why are the movies 512x384 when the PS2 masters were 640x480?&lt;br /&gt;
|-&lt;br /&gt;
|Upgrade HD Screens with larger screens&lt;br /&gt;
|Modern resolutions make the 1024x768 screens look tiny.&lt;br /&gt;
|-&lt;br /&gt;
|Add support for BSL patches&lt;br /&gt;
|A BSL patch would include context like the function name, surrounding lines, and a number meaning &amp;quot;&#039;&#039;n&#039;&#039;th occurrence of text&amp;quot;. This would allow us to actually modify the same BSL file with more than one mod.&lt;br /&gt;
|-&lt;br /&gt;
|Straighten out melee profiles&lt;br /&gt;
|Custom characters&#039; profiles and the Brutal AI profiles are all over the place. See [http://web.archive.org/web/20160224173705/http://oni.bungie.org/forum/viewtopic.php?id=2941 this thread].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Anniversary Edition]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Anniversary_Edition/To-do&amp;diff=46208</id>
		<title>Anniversary Edition/To-do</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Anniversary_Edition/To-do&amp;diff=46208"/>
		<updated>2025-12-26T06:16:09Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;300px&amp;quot;| Task&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|Support the Oni demo&lt;br /&gt;
|If the AEI can install mods into the demo&#039;s 2 or 3 level set, it would be nice advertising. The demo data can even be automatically installed through the AEI.&lt;br /&gt;
|-&lt;br /&gt;
|Turn previously-core mods into optional mods&lt;br /&gt;
|Packages can be marked as &amp;quot;Standard fixes&amp;quot; so user is more inclined to install them.&lt;br /&gt;
|-&lt;br /&gt;
|Consider salvaging the animation mods that were bundled with AE 2010 as [https://websvn.illy.bz/browse/Oni2/AE/packages/ optional packages]&lt;br /&gt;
|&lt;br /&gt;
*Upgraded ONCCs - Make into patch mod if this is still valuable.&lt;br /&gt;
*Andrashi TRAMs - Loser [http://oni.bungie.org/forum/viewtopic.php?pid=43490#p43490 seems to want] them to be forgotten; there are numerous issues reported for them, such as [http://web.archive.org/web/20160225192420/http://oni.bungie.org/forum/viewtopic.php?pid=27161#p27161 here] and [http://oni.bungie.org/forum/viewtopic.php?pid=36174#p36174 here]. See discussion of his and love_Oni&#039;s changes [http://web.archive.org/web/20160225025818/http://oni.bungie.org/forum/viewtopic.php?id=2576 here].&lt;br /&gt;
|-&lt;br /&gt;
|Raise femcop health in Upgraded ONCCs&lt;br /&gt;
|We have multiple reports that Karen et al. have way too low health in this pkg&lt;br /&gt;
|-&lt;br /&gt;
|Fix damage for TCTF back throw&lt;br /&gt;
|Damage frame [http://oni.bungie.org/forum/viewtopic.php?pid=45791#p45791 is outside] the actual animation!&lt;br /&gt;
|-&lt;br /&gt;
|Fix numerous issues with OTA mod packages&lt;br /&gt;
|Issues are listed [[AE talk:OTA|HERE]].&lt;br /&gt;
|-&lt;br /&gt;
|Review HQ movie packages for Mac/Win&lt;br /&gt;
|Why are the movies 512x384 when the PS2 masters were 640x480?&lt;br /&gt;
|-&lt;br /&gt;
|Upgrade HD Screens with larger screens&lt;br /&gt;
|Modern resolutions make the 1024x768 screens look tiny.&lt;br /&gt;
|-&lt;br /&gt;
|Add support for BSL patches&lt;br /&gt;
|A BSL patch would include context like the function name, surrounding lines, and a number meaning &amp;quot;&#039;&#039;n&#039;&#039;th occurrence of text&amp;quot;. This would allow us to actually modify the same BSL file with more than one mod.&lt;br /&gt;
|-&lt;br /&gt;
|Straighten out melee profiles&lt;br /&gt;
|Custom characters&#039; profiles and the Brutal AI profiles are all over the place. See [http://web.archive.org/web/20160224173705/http://oni.bungie.org/forum/viewtopic.php?id=2941 this thread].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Anniversary Edition]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Regenerating_Tanker&amp;diff=46207</id>
		<title>Regenerating Tanker</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Regenerating_Tanker&amp;diff=46207"/>
		<updated>2025-12-26T06:15:25Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Regenerating Tanker&#039;&#039;&#039; is a custom character by [[User:Samer|Samer]]. His personal name is Brontes. The concept is that he&#039;s a [[Tanker]] with the ability to regenerate health like [[Barabas]], and that he is the Syndicate commander and pro wrestling fan on whom the Tanker SLDs were [[Quotes/Manual#Tanker_Green|later based]]. Brontes, [[Kojiro]] and [[Regenerating Fury|Eris the Regenerating Fury]] make up the [[Saisei Team]]. The mod can be found [http://web.archive.org/web/20211202230746/http://oni.bungie.org/forum/viewtopic.php?id=2046 here].&lt;br /&gt;
&lt;br /&gt;
[[Image:Regenerating Tanker.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Syndicate]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Samer&amp;diff=46206</id>
		<title>User:Samer</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Samer&amp;diff=46206"/>
		<updated>2025-12-26T06:15:13Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Me==&lt;br /&gt;
Real Name : Samer Khodor&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been an Oni fan for a long time and ever since I first finished the game I hoped that one day I&#039;ll see new content brought into Oni. This dream became a reality when I found Oni Central Forum, I then picked up modding and I enjoyed making new characters so much that I started making a lot of character mods ever since.&lt;br /&gt;
&lt;br /&gt;
I&#039;m a pharmacist but computers and digital art have always been a passion of mine. I never had any experience modding any other game or using XSI before I started modding Oni.&lt;br /&gt;
I&#039;ve been actively modding since 2009.&lt;br /&gt;
&lt;br /&gt;
===Oni Facebook Group===&lt;br /&gt;
I&#039;ve also started an Oni Facebook group that I regularly update with news about new mods, screenshots and videos from the forum. It has about 300 members at the moment. Here&#039;s a link to the group [https://m.facebook.com/groups/186656799756?refid=27 Oni &amp;quot;The Action Game&amp;quot;] You need a facebook account to see the posts.&lt;br /&gt;
&lt;br /&gt;
===Videos===&lt;br /&gt;
For my Oni videos check [https://www.youtube.com/channel/UCtTcOh2t7wRZ5rXzMmWt6xA My Oni YouTube Channel ]&lt;br /&gt;
&lt;br /&gt;
==Mods==&lt;br /&gt;
My first mod was simple TRAC replacement of Halo Master Chief .. second one was [[Konoko]] violet fury, a simple TRBS and texture replacement, both with [[User:EdT| EdT]]&#039;s help .. The first unique and complete character I made was [[Shinatama Evolved]], followed by [[Casey]].&lt;br /&gt;
&lt;br /&gt;
You can use the AEInstaller to arrange mods by Creator and see all of the mods I&#039;ve made or contributed to, the description usually includes a link to that mod&#039;s forum thread, and sometimes a youtube showcase video.&lt;br /&gt;
&lt;br /&gt;
You can also click on some of the names of the characters mentioned below to open their wiki page for more information about them, and you&#039;ll also find a link to their corresponding mod page there.&lt;br /&gt;
&lt;br /&gt;
===Single Custom Character Mods===&lt;br /&gt;
* [[Shinatama Evolved]]&lt;br /&gt;
* [[Casey]]&lt;br /&gt;
* [[Kojiro]]&lt;br /&gt;
* Hayate and Hayate minions&lt;br /&gt;
* Hanako&lt;br /&gt;
* Jester and Co.&lt;br /&gt;
* James and Jamie Hasegawa&lt;br /&gt;
* Golden TCTF&lt;br /&gt;
* BGI [[Sarai]]&lt;br /&gt;
* [[BGI_characters#BGI_Hammer|BGI Hammer]] (in collaboration with [[User:Ltemplar|Ltemplar]]) &lt;br /&gt;
* [[BGI_characters#BGI_Agents|BGI Agents]]&lt;br /&gt;
* [[BGI_characters#BGI_NinjaBot|BGI NinjaBot]]&lt;br /&gt;
* [[BGI_characters#BGI_Heavy_Bot|BGI Heavy Bot]] ([[AE:BGI#Candidate|original concept]] by [[User:Geyser|geyser]])  &lt;br /&gt;
* [[Regenerating Fury]] (original by [[User:Paradox-01|Paradox-01]])&lt;br /&gt;
* [[Regenerating Tanker]]&lt;br /&gt;
* [[Casual Tankers]]&lt;br /&gt;
* Blackops FemCops and Konoko Blackops outfit&lt;br /&gt;
* Muro&#039;s Wardrobe&lt;br /&gt;
* Rayman&lt;br /&gt;
&lt;br /&gt;
===Sam Mega Pack Mods===&lt;br /&gt;
Or SMP Mods for short, this is a series of mods that utilize the custom characters I&#039;ve made or contributed to.&lt;br /&gt;
&lt;br /&gt;
====Sam Mega Pack Conversion====&lt;br /&gt;
This mod basically incorporates the custom characters into the main game&#039;s story and levels, making it more deep and challenging.&lt;br /&gt;
Some Examples: &lt;br /&gt;
*Casey appears as partner in the earlier levels and as a foe in TCTF HQ Redux and dream lab.&lt;br /&gt;
*Hayate and Hanako are utilized as Mukade&#039;s comrades making appearances in Regional State Building, Rooftops and dream lab.&lt;br /&gt;
*Regenerating Fury, Kojiro and Regenerating Tanker appear as sub-bosses in some levels example Regenerating Fury will be guarding Shinatama in Atmospheric Center Interior.&lt;br /&gt;
*Konoko&#039;s parents make an appearance in Dream Lab.&lt;br /&gt;
*Golden TCTFs are incorporated into SC prison and TCTF HQ Redux.&lt;br /&gt;
&lt;br /&gt;
====Sam Mega Pack FightClub====&lt;br /&gt;
A new level made in collaboration with EdT and s10k.&lt;br /&gt;
Multiple rounds of increasing difficulty fighting the custom characters and some vanilla characters.&lt;br /&gt;
Including : Casey, SkullTeam, Hayate, Hanako, Jesters, Rayman etc ...&lt;br /&gt;
&lt;br /&gt;
===Other Mods===&lt;br /&gt;
====Hidden Treasure Challenge====&lt;br /&gt;
This mod hides Rayman fist weapon in each of the levels, in hard to reach places.&lt;br /&gt;
Using the riddles provided and some parkour skills player is supposed to find the hidden weapon in each level.&lt;br /&gt;
&lt;br /&gt;
====Character Texturing====&lt;br /&gt;
*[http://web.archive.org/web/20220524143847/http://oni.bungie.org/forum/viewtopic.php?id=1807 Character Re-texture Package] : this package enhances the textures of several Oni characters including, TCTF light, heavy, blackops, Female and Male cops, scientists and civilians, Comguys Mad Bomber, Tankers, Furies, Security guards.&lt;br /&gt;
This project is a combination of efforts by Severed, Bozzman and myself.&lt;br /&gt;
&lt;br /&gt;
some samples :&lt;br /&gt;
&lt;br /&gt;
https://lh5.googleusercontent.com/-FBlR4brYzss/UCC5GkP2C0I/AAAAAAAACFA/n55yExqIO5Y/s800/2012-08-06_191136.jpg&lt;br /&gt;
https://lh4.googleusercontent.com/-sham2riMXW4/UCC5lQsms1I/AAAAAAAACFQ/l0VH8pYPDFQ/s800/2012-08-06_201215.jpg&lt;br /&gt;
&lt;br /&gt;
the blackops uniforms shown here are by Bozzman, and the male cops uniform is based on SeverED&#039;s Konoko cop outfit.&lt;br /&gt;
&lt;br /&gt;
==Other contributions==&lt;br /&gt;
===Oni Joint Story===&lt;br /&gt;
I took part in writing the [[Joint Story|Oni Joint Story]] along with Leus and Mukade, whose events take place after the game ends .. and in introducing new characters such as BGI female boss .. Samako as Leus named her, better known as Sarai now.&lt;br /&gt;
&lt;br /&gt;
===Tutorials===&lt;br /&gt;
I&#039;m currently working on writing this tutorial [http://web.archive.org/web/20160224202204/http://oni.bungie.org/forum/viewtopic.php?id=2423 Making a Custom Character From Start to Finish]. I will import it to the Wiki once it&#039;s completely done.&lt;br /&gt;
&lt;br /&gt;
[[Category:Userspace]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Shinatama_Evolved&amp;diff=46205</id>
		<title>Shinatama Evolved</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Shinatama_Evolved&amp;diff=46205"/>
		<updated>2025-12-26T06:15:05Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Shinatama Evolved&#039;&#039;&#039; is a custom playable character developed by [[User:Samer|Samer]]. The idea is that [[Shinatama]] got rebuilt/resurrected into a more combat-ready body, maybe as a way for Griffin to redeem himself when Konoko spared his life in the bunker, or perhaps Konoko managed to bring back Shinatama by other means.&lt;br /&gt;
&lt;br /&gt;
The playable character comes with 6 variants, a custom move set, and utilizes the in-game Shinatama sounds for taunts and hurt sounds. It is available [http://web.archive.org/web/20220813114527/http://oni.bungie.org/forum/viewtopic.php?id=1240 here]. The outfit on the left is based on DarkLitria&#039;s [[:Image:DarkLitria - Shini3.png|sketch]] of a mature Shinatama.&lt;br /&gt;
&lt;br /&gt;
[[Image:Shinatama Evolved.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Samer&amp;diff=46204</id>
		<title>User:Samer</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Samer&amp;diff=46204"/>
		<updated>2025-12-26T06:14:57Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Me==&lt;br /&gt;
Real Name : Samer Khodor&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been an Oni fan for a long time and ever since I first finished the game I hoped that one day I&#039;ll see new content brought into Oni. This dream became a reality when I found Oni Central Forum, I then picked up modding and I enjoyed making new characters so much that I started making a lot of character mods ever since.&lt;br /&gt;
&lt;br /&gt;
I&#039;m a pharmacist but computers and digital art have always been a passion of mine. I never had any experience modding any other game or using XSI before I started modding Oni.&lt;br /&gt;
I&#039;ve been actively modding since 2009.&lt;br /&gt;
&lt;br /&gt;
===Oni Facebook Group===&lt;br /&gt;
I&#039;ve also started an Oni Facebook group that I regularly update with news about new mods, screenshots and videos from the forum. It has about 300 members at the moment. Here&#039;s a link to the group [https://m.facebook.com/groups/186656799756?refid=27 Oni &amp;quot;The Action Game&amp;quot;] You need a facebook account to see the posts.&lt;br /&gt;
&lt;br /&gt;
===Videos===&lt;br /&gt;
For my Oni videos check [https://www.youtube.com/channel/UCtTcOh2t7wRZ5rXzMmWt6xA My Oni YouTube Channel ]&lt;br /&gt;
&lt;br /&gt;
==Mods==&lt;br /&gt;
My first mod was simple TRAC replacement of Halo Master Chief .. second one was [[Konoko]] violet fury, a simple TRBS and texture replacement, both with [[User:EdT| EdT]]&#039;s help .. The first unique and complete character I made was [[Shinatama Evolved]], followed by [[Casey]].&lt;br /&gt;
&lt;br /&gt;
You can use the AEInstaller to arrange mods by Creator and see all of the mods I&#039;ve made or contributed to, the description usually includes a link to that mod&#039;s forum thread, and sometimes a youtube showcase video.&lt;br /&gt;
&lt;br /&gt;
You can also click on some of the names of the characters mentioned below to open their wiki page for more information about them, and you&#039;ll also find a link to their corresponding mod page there.&lt;br /&gt;
&lt;br /&gt;
===Single Custom Character Mods===&lt;br /&gt;
* [[Shinatama Evolved]]&lt;br /&gt;
* [[Casey]]&lt;br /&gt;
* [[Kojiro]]&lt;br /&gt;
* Hayate and Hayate minions&lt;br /&gt;
* Hanako&lt;br /&gt;
* Jester and Co.&lt;br /&gt;
* James and Jamie Hasegawa&lt;br /&gt;
* Golden TCTF&lt;br /&gt;
* BGI [[Sarai]]&lt;br /&gt;
* [[BGI_characters#BGI_Hammer|BGI Hammer]] (in collaboration with [[User:Ltemplar|Ltemplar]]) &lt;br /&gt;
* [[BGI_characters#BGI_Agents|BGI Agents]]&lt;br /&gt;
* [[BGI_characters#BGI_NinjaBot|BGI NinjaBot]]&lt;br /&gt;
* [[BGI_characters#BGI_Heavy_Bot|BGI Heavy Bot]] ([[AE:BGI#Candidate|original concept]] by [[User:Geyser|geyser]])  &lt;br /&gt;
* [[Regenerating Fury]] (original by [[User:Paradox-01|Paradox-01]])&lt;br /&gt;
* [[Regenerating Tanker]]&lt;br /&gt;
* [[Casual Tankers]]&lt;br /&gt;
* Blackops FemCops and Konoko Blackops outfit&lt;br /&gt;
* Muro&#039;s Wardrobe&lt;br /&gt;
* Rayman&lt;br /&gt;
&lt;br /&gt;
===Sam Mega Pack Mods===&lt;br /&gt;
Or SMP Mods for short, this is a series of mods that utilize the custom characters I&#039;ve made or contributed to.&lt;br /&gt;
&lt;br /&gt;
====Sam Mega Pack Conversion====&lt;br /&gt;
This mod basically incorporates the custom characters into the main game&#039;s story and levels, making it more deep and challenging.&lt;br /&gt;
Some Examples: &lt;br /&gt;
*Casey appears as partner in the earlier levels and as a foe in TCTF HQ Redux and dream lab.&lt;br /&gt;
*Hayate and Hanako are utilized as Mukade&#039;s comrades making appearances in Regional State Building, Rooftops and dream lab.&lt;br /&gt;
*Regenerating Fury, Kojiro and Regenerating Tanker appear as sub-bosses in some levels example Regenerating Fury will be guarding Shinatama in Atmospheric Center Interior.&lt;br /&gt;
*Konoko&#039;s parents make an appearance in Dream Lab.&lt;br /&gt;
*Golden TCTFs are incorporated into SC prison and TCTF HQ Redux.&lt;br /&gt;
&lt;br /&gt;
====Sam Mega Pack FightClub====&lt;br /&gt;
A new level made in collaboration with EdT and s10k.&lt;br /&gt;
Multiple rounds of increasing difficulty fighting the custom characters and some vanilla characters.&lt;br /&gt;
Including : Casey, SkullTeam, Hayate, Hanako, Jesters, Rayman etc ...&lt;br /&gt;
&lt;br /&gt;
===Other Mods===&lt;br /&gt;
====Hidden Treasure Challenge====&lt;br /&gt;
This mod hides Rayman fist weapon in each of the levels, in hard to reach places.&lt;br /&gt;
Using the riddles provided and some parkour skills player is supposed to find the hidden weapon in each level.&lt;br /&gt;
&lt;br /&gt;
====Character Texturing====&lt;br /&gt;
*[http://oni.bungie.org/forum/viewtopic.php?id=1807 Character Re-texture Package] : this package enhances the textures of several Oni characters including, TCTF light, heavy, blackops, Female and Male cops, scientists and civilians, Comguys Mad Bomber, Tankers, Furies, Security guards.&lt;br /&gt;
This project is a combination of efforts by Severed, Bozzman and myself.&lt;br /&gt;
&lt;br /&gt;
some samples :&lt;br /&gt;
&lt;br /&gt;
https://lh5.googleusercontent.com/-FBlR4brYzss/UCC5GkP2C0I/AAAAAAAACFA/n55yExqIO5Y/s800/2012-08-06_191136.jpg&lt;br /&gt;
https://lh4.googleusercontent.com/-sham2riMXW4/UCC5lQsms1I/AAAAAAAACFQ/l0VH8pYPDFQ/s800/2012-08-06_201215.jpg&lt;br /&gt;
&lt;br /&gt;
the blackops uniforms shown here are by Bozzman, and the male cops uniform is based on SeverED&#039;s Konoko cop outfit.&lt;br /&gt;
&lt;br /&gt;
==Other contributions==&lt;br /&gt;
===Oni Joint Story===&lt;br /&gt;
I took part in writing the [[Joint Story|Oni Joint Story]] along with Leus and Mukade, whose events take place after the game ends .. and in introducing new characters such as BGI female boss .. Samako as Leus named her, better known as Sarai now.&lt;br /&gt;
&lt;br /&gt;
===Tutorials===&lt;br /&gt;
I&#039;m currently working on writing this tutorial [http://web.archive.org/web/20160224202204/http://oni.bungie.org/forum/viewtopic.php?id=2423 Making a Custom Character From Start to Finish]. I will import it to the Wiki once it&#039;s completely done.&lt;br /&gt;
&lt;br /&gt;
[[Category:Userspace]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=History_of_Oni_modding&amp;diff=46203</id>
		<title>History of Oni modding</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=History_of_Oni_modding&amp;diff=46203"/>
		<updated>2025-12-26T06:14:50Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hatnote|This article is a historical perspective on Oni [[wp:Video game modding|modding]]; for an introduction to how to actually mod Oni, see [[Introduction to modding|here]]. To download mods, you can start [[AE|here]].}}&lt;br /&gt;
As has been documented on the page about [[Oni]]&#039;s overall development, time ran out for Bungie West to do everything they wanted with this very ambitious game. Just as some features had to be omitted, the promise of modding support&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;ref&amp;gt;In [[Harry]]&#039;s [http://oni.bungie.org/special/part1/brent.html interview], Brent Pease, the Project Lead, said: &amp;quot;What we will do is, I&#039;m about 90 percent sure of this, is give away the file format.&amp;quot; He also promises with equal certainty that the tools for converting 3D Studio Max models into Oni models will be given away. Pease eventually left the project before its completion. Hardy LeBel, his replacement, would later say, &amp;quot;[Due to the time crunch] our primary focus had to be on completing the content and features of the game rather than building in support for the mod community.&amp;quot; Additionally, Bungie no longer owned the game by the time it shipped, so it would have been legally questionable to release header files from the source code, which would be the simplest and quickest way to &amp;quot;give away the file format&amp;quot;.&amp;lt;/ref&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt; also failed to come true. However, even before Oni fans realized that there would never be official modding tools from Bungie, they were already eagerly diving into the game data to see how they could mod it.&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;ref&amp;gt;Fans wasted no time in dumping the readable text from the executable and trying to figure out how to enable Developer Mode, starting before Oni&#039;s official release date by analyzing the demo&amp;lt;!--Dead link: http://carnage.bungie.org/oniresforum/onires.archive.pl?read=35 --&amp;gt;. Little did they know it would take another five years before this particular goal would be reached.&amp;lt;/ref&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt; Nevertheless, the lack of any documentation or tools for modding undeniably slowed the development of mods within the community. Only since 2010&amp;lt;!--Nov. 6, 2010 is the date that geyser posted about OniSplit supporting pathfinding grids for new levels in the article &amp;quot;New levels&amp;quot;.--&amp;gt; has the community&#039;s modding capabilities covered nearly all aspects of the game.&lt;br /&gt;
&lt;br /&gt;
There are three basic areas in which the game can be modded: scripting, binary resources, and the engine itself.  Along the way, we&#039;ll look at some key discoveries the community made in more detail.&lt;br /&gt;
&lt;br /&gt;
==BSL scripting==&lt;br /&gt;
[[Image:One Tiny Mistake.jpg|thumb|225px|right|Konoko pulls her gun on the secretary in the beginning of Chapter 2, a change to the original cutscene made by a script which tightens up the story and provides a new challenge for veteran players.]]&lt;br /&gt;
Since the .bsl files were in plain text and in plain sight within the folders that held Oni&#039;s game data, it&#039;s not surprising that fans quickly learned some basic scripting commands by seeing what Bungie had written, and started making their own scripts. Further commands were discovered by dumping readable text from the engine, although not everything worked as it seemed it should.&lt;br /&gt;
&lt;br /&gt;
As scripters were learning [[BSL]], they produced scripts that at first merely modified the original level logic in minor ways. Then they produced more original, often epic fight scripts; later, some ambitious modders scripted totally new objectives and mission layouts (e.g., Mariachi Bear&#039;s alternate storyline). Some of the most complex scripts are the [[OTA]] scripts which were eventually developed to make up for a lack of multiplayer gameplay.&lt;br /&gt;
&lt;br /&gt;
However, fully original scripts are all the more prone to bugs. The first two are easier to set up, but extreme situations tend to overload the engine (as in &amp;quot;[[Blam!]]&amp;quot;) in ways that scripters have trouble preventing. Testing the scripts required numerous reloads of the game. The process became much faster when the Developer Mode console was unlocked (see {{SectionLink||Finding Dev Mode}}) and individual commands could be tested easily.&lt;br /&gt;
&lt;br /&gt;
While scripting is the easiest way to mod Oni, it&#039;s also the most limited, because scripts can only utilize the resources that the vanilla level has to offer.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Binary resources==&lt;br /&gt;
===Private knowledge, public results===&lt;br /&gt;
[[Image:OniTools.jpg|thumb|225px|right|Ian Patterson&#039;s trailblazing Mac program OniTools was eagerly ported to Windows by other fans.]]&lt;br /&gt;
[[Image:OUP_txmpreplace.jpg|thumb|225px|right|OniUnPacker by Alloc, premiering in fall of 2005, provided a simple interface for finding the resource you wanted and displaying it, as well as replacing it.]]&lt;br /&gt;
[[Image:AE_Installer_1.jpg|thumb|225px|right|The AE mod installer released in 2009. For the first time, players could pick and choose what mods to install.]]&lt;br /&gt;
[[Image:AEI_main_window.jpg|thumb|225px|right|The AE Installer released in 2013 could update itself, the player&#039;s mods, and the patches made to the game. It was written from scratch in Java for ease of cross-platform support.]]&lt;br /&gt;
Fans with some expertise in parsing files with hex editors found that the level data files held four-letter codes indicating the start of each resource within that file. Before Oni even released, the community had its first resource modding tool, Ian Patterson&#039;s [[OniTools]]. While the author did not yet know how all the data worked, his program could at least parse it, and allow the modder to more easily edit each resource without having to count in hexadecimal. It also supported user-friendly replacement of texture maps, delta patches called CMPOs, and allowed inline viewing of the game&#039;s 3D models. There seems to be little evidence that this knowledge was put to use in modding the game resources beyond simple texture replacements, no doubt due to the lack of a complete understanding of how Oni&#039;s dozens of resource types were interrelated. But the open-source release of OniTools gave fans something to build on.&lt;br /&gt;
&lt;br /&gt;
Independently, an intrepid programmer named Pierre Terdiman decided to import data from Oni into the game engine that he was writing from scratch. Called [[Konoko Payne]], it was a long-term project which took the form of (1) an underlying engine and (2) a short scenario for it that resembled a sequel to Oni. In order to extract models and animations from Oni and recreate them precisely in his project, Pierre became one of the early pioneers in reverse-engineering the game&#039;s resources, although his acquired knowledge remained largely private as the engine was closed-source.&lt;br /&gt;
&lt;br /&gt;
===Hackers unite===&lt;br /&gt;
Perhaps the first place that knowledge of Oni&#039;s data was directly published online was on [http://oni.moltenstudios.com/tool/index.php Oni Master&#039;s site], which started as early as 2003 and was based on the source code for OniTools. Then, in 2005, [[User talk:Ssg|Ssg]] opened a site with a much more thorough examination of the game data (the site is now hosted at http://ssg.oni2.net). Later that year, this pool of knowledge was painstakingly moved by [[User:Geyser|geyser]] and Ssg to its final home on the newly-opened wiki OniGalore. The purpose of creating the [[OBD|Oni Binary Database]] was to allow collaboration, and soon [[User talk:Neo|Neo]] appeared on the scene, adding his own knowledge that he had been acquiring independently until then, and collaborating on further investigations into the resource formats. Today at least 95% of the binary resource formats are documented byte for byte thanks to their hard work.&lt;br /&gt;
:&#039;&#039;Further reading:&#039;&#039; {{SectionLink|History of the Oni community|2005}}.&lt;br /&gt;
&lt;br /&gt;
===Modding by candlelight===&lt;br /&gt;
Originally, modders had to alter these binary resources manually with hex editors to adapt them to their scripts. [[User:Loser|Loser]] was the first modder to manually edit the game data to go along with his scripting, creating a massively reshuffled Warehouse. Loser&#039;s [[AE:Warehouse|Warehouse mod]] included a global component (modified level0_Final), level-specific binary modifications, and a set of customized scripts that took full advantage of the modified binaries.&lt;br /&gt;
&lt;br /&gt;
Minor binary modding had already occurred before Loser&#039;s Warehouse (thus, while compiling the [[OBD]] database, Ssg had released a version of level0_Final in which all of Konoko&#039;s combos were unlocked). Still, it was the Warehouse mod released in 2005 which first showed the &amp;quot;full&amp;quot; potential of binary modding. It inspired a short-lived initiative called the [[AE:BIP|Binary Improvement Project]] (BIP), aimed at providing upgraded binaries for all levels, not just level0_Final and level1_Final.&lt;br /&gt;
&lt;br /&gt;
BIP was hindered by large upload/download sizes as well as by the potential legal issues involved in distributing entire files from the game; in 2006 it was replaced by a smarter alternative to supplying whole levels, in the form of [[OUP|OniUnPacker]]-based patches, and was termed [[AE:ONK|Oni ni Kanabô]] (ONK). The modder would edit his .dat/.raw files in OUP, and then release a single binary resource patch. This was both bandwidth-efficient and more legal-friendly, but suffered from one major limitation: the indexation and offsets of data vary a lot across the available versions of Oni. Thus, resources exported with OUP were not truly standalone or portable. Also, OUP still lacked the ability to import new resources alongside existing ones.&lt;br /&gt;
&lt;br /&gt;
===Modular modding===&lt;br /&gt;
The advent of Neo&#039;s [[OniSplit]] in late 2007 marked a radical improvement to the community&#039;s modding methods. A command-line tool that runs on Windows and Macs, OniSplit breaks Oni&#039;s resources into standalone files, making mods truly portable across different retail versions of Oni. These resources can be exported to standard formats as text, images, sounds and 3D models, which after editing can be recombined into the level data files that Oni expects, and newly-made resources can also be packed into the level data. To take advantage of this revolution in modding, geyser began preparing an OniSplit-based port of some of the work done on BIP and ONK, which he hoped would be ready for the seventh anniversary of Oni&#039;s release in January 2008.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;[[AE|Seventh Anniversary Edition]]&amp;quot; had major releases in January and July 2008. The tradition continued of using a central modding project to organize a general revision of Oni&#039;s content, as seen on pages like [[AE:Ninja]]. The project then changed hands to [[User:Gumby|Gumby]], who designed a framework and a GUI-based installer that allowed players to selectively install only the modifications that they wanted. This mostly moved the project away from a centralized improvement effort, though select mods were still bundled with the download. Since Oni&#039;s seventh anniversary had come and gone, the mod collection was renamed simply the &amp;quot;Anniversary Edition&amp;quot;, aka the &amp;quot;Edition&amp;quot; or the &amp;quot;AE&amp;quot;. Released in July 2009, the new AE&#039;s framework allowed modders to create their own &amp;quot;[[Making a mod package|mod packages]]&amp;quot;. These could be stored on the {{OMD}}, then downloaded by the player and placed in a certain folder in order to see them in the Installer. Another release was made in May 2010 with more bundled mods and an improved framework.&lt;br /&gt;
&lt;br /&gt;
Nothing new took place on this front until 2013, by which time the project had fallen into [[User:Iritscen|Iritscen&#039;s]] hands due to the retirement of geyser and Gumby. At this time, the release of the new AE included a brand-new Installer written by Alloc which could connect to the Mod Depot, offer all mod packages for download, and update the mods and patches already installed. The program [[XmlTools]] was developed by [[User:Script 10k|s10k]] to allow &amp;quot;patch modding&amp;quot; of resources in order to avoid conflicts when different mods attempted to modify the same resource. The AE&#039;s bundled content was stripped down to only minimal fixes for the first time, making all notable game modifications into optional third-party mods and ceasing any attempt at centralized game data improvement.&lt;br /&gt;
&lt;br /&gt;
===New content===&lt;br /&gt;
Certain game resources were easy enough to reverse-engineer that the community was able to mod them almost from the time of Oni&#039;s release, such as textual resources and textures. Some game resources, however, were complex and involved multiple data types, such as character models, and, most obviously, levels themselves. These took a number of years to decipher.&lt;br /&gt;
&lt;br /&gt;
OniSplit first gained the ability to import new character models in April 2008.&amp;lt;ref&amp;gt;See [[User talk:Neo/Archive2]].&amp;lt;/ref&amp;gt; At first, since the focus was on the technical side of things, pre-existing models were used, either by modifying Oni&#039;s models, or by finding royalty-free models on web sites and converting them to Oni&#039;s 19-bone system. A more dramatic use of the character-importing ability came with the creation of a high-detail Konoko model from scratch in October 2010.&amp;lt;ref&amp;gt;[http://oni.bungie.org/forum/viewtopic.php?id=1727 OCF thread, &amp;quot;Konoko HD&amp;quot;].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A major obstacle with levels was the question of how to generate pathfinding (PF) grids for the AI. Level geometry could be imported fairly easily as of November 2008,&amp;lt;ref&amp;gt;See [[User talk:Neo/Archive5]].&amp;lt;/ref&amp;gt; but AIs could not navigate the level. Manual PF grid creation was first demonstrated with the creation of the Arena level in November 2010.&amp;lt;ref&amp;gt;[http://web.archive.org/web/20210117150652/http://oni.bungie.org/forum/viewtopic.php?id=1736 OCF thread, &amp;quot;Arena Level&amp;quot;].&amp;lt;/ref&amp;gt; Automatic PF grid generation was introduced to OniSplit around June 2011. More comprehensive demonstrations of the community&#039;s level creation abilities came with [[User:EdT|EdT]]&#039;s level &amp;quot;Muro&#039;s Lair&amp;quot; in August 2011&amp;lt;ref&amp;gt;[http://web.archive.org/web/20201029113340/http://oni.bungie.org/forum/viewtopic.php?id=2024 OCF thread, &amp;quot;Muro&#039;s Lair - Preview&amp;quot;].&amp;lt;/ref&amp;gt; and [[User:Samer|Samer]]&#039;s level &amp;quot;Wilderness Preserve&amp;quot; in January 2014.&amp;lt;ref&amp;gt;[http://web.archive.org/web/20211202225410/http://oni.bungie.org/forum/viewtopic.php?id=2698 OCF thread, &amp;quot;NEW LEVEL : Chapter 17: Wilderness Preserve - Hasegawa Adventure&amp;quot;].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Work continues in all areas of modding Oni, as well as documenting the modding process.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Engine patching==&lt;br /&gt;
===Finding Dev Mode===&lt;br /&gt;
[[Image:Sfeli Finds Dev Mode.jpg|thumb|225px|right|[[User talk:SFeLi|SFeLi]] documents his discovery in 2006: in examining the binary, he noticed that the list of cheat codes had a gap in it where one cheat had been deactivated – that code was for Developer Mode. For more history, see [[/The tale of Dev Mode|The tale of Dev Mode]].]]&lt;br /&gt;
Engine patching is needed when modders want to do things the game&#039;s scripts and data do not currently allow for, as well as to fix bugs. Bug fixes were the earliest notable achievement in engine patching, originally performed by a patching application that altered the Windows Oni executable directly, but a revolution in this type of modding occurred in 2006 when [[Developer Mode]] was finally discovered in retail Oni&#039;s code, and a means for unlocking it was needed.&lt;br /&gt;
&lt;br /&gt;
The most foolproof method of altering the engine turned out to be replacing a library that Oni loads at runtime. Originally this was done by placing a library next to Oni.exe called vtuneapi.dll, which contained code written by SFeLi that would replace or patch functions in Oni. This library came to be known as the [[Daodan DLL]]. The code for it was ported from assembly language to C by RossyMiles. Eventually the decision was made to instead replace binkw32.dll (the library for playing Oni&#039;s intro and outro movies) because it loaded earlier in Oni&#039;s launch sequence. The DLL was later developed by Gumby and then Alloc, fixing more bugs (some of which result from modern computers running a {{Age|2001|1|29}}-year-old game), as well as adding new features. The DLL&#039;s features and settings are documented on the page for the DLL linked above.&lt;br /&gt;
&lt;br /&gt;
Not long after the Daodan DLL was released for Windows Oni, it was discovered that the Mac versions of Oni still had Dev Mode in them, too. Instead of replacing the Bink Carbon Library that came with Mac Oni, the Omni Group port of the game application to Mac OS X was patched directly with a hex editor. In the fall of 2008, it was discovered that numerous BSL functions and variables that were thought to be removed from Oni for the Mac [[Mac beta 4|before release]] were still present in the code, and the ones which allowed Macs to run (almost) all scripts written for Windows Oni were &amp;quot;unlocked&amp;quot; by EdT using hex edits. Certain changes made by the Daodan DLL for the Windows version were also carried over to the Mac&#039;s [[OMNI|PPC game application]] in hex-edit form with Neo&#039;s assistance. Later, these changes were made in source for Feral Interactive&#039;s [[FERAL|Mac Intel port]].&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
One of the most visible changes to the game that the Daodan DLL (and equivalent hex edits on the Mac side) made possible came about in July &#039;07 when an error in Oni&#039;s AI routines was corrected by Neo, allowing the AI to dodge incoming fire more consistently. Fans had originally been disappointed to see the AI often run blindly into oncoming gunfire. With Neo&#039;s patch in place, previously glitched code now works as intended, allowing the AI to dodge projectiles by taking cover.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
The most ambitious use of engine patching has been to fill in for Oni&#039;s [[Multiplayer|missing multiplayer mode]]. In Windows this was done through the Daodan DLL by the [[Flatline]] project, which saw a rough alpha released in 2010. In Mac OS X, the [[Zukai]] project operated on a Mac equivalent of the Daodan DLL and released a rough alpha in 2015.&lt;br /&gt;
&lt;br /&gt;
===New engine builds===&lt;br /&gt;
A new era in Oni&#039;s life began with the introduction in 2021 of [[OniX]], a rebuild of the game engine. It remains to be seen how far this development work will take Oni, but in theory the possibilities are almost endless.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Community history]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:BINA/TMBD&amp;diff=46202</id>
		<title>XML:BINA/TMBD</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:BINA/TMBD&amp;diff=46202"/>
		<updated>2025-12-26T06:14:37Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_BINA_Header | prev=SABD | type=TMBD | next=OBJC/CHAR | name=TextureMaterials}}&lt;br /&gt;
&lt;br /&gt;
==General information==&lt;br /&gt;
* The XML on this page is based on OniSplit &#039;&#039;&#039;v0.9.61.0&#039;&#039;&#039;.&lt;br /&gt;
* BINADBMTTextureMaterials is a single global resource (level0_Final.dat).&lt;br /&gt;
* This file is used to register textures under specific materials which are used for impact effects. See [[XML:BINA/ONIE|ONIE]].&lt;br /&gt;
* TMBD contains only textures used by AKEVs (level geometry).&lt;br /&gt;
* TMBD cannot contain any decals (textures which are glued onto the wall or ground).&lt;br /&gt;
* TMBD cannot contain any textures used by characters. The Striker&#039;s armor piece was [http://web.archive.org/web/20160225093442/http://oni.bungie.org/forum/viewtopic.php?pid=27093#p27093 just a test] by Bungie West. See [[XML:ONCC#CBPM:_Character_Body_Part_Materials|CBPM]] if you want to mod materials used by characters.&lt;br /&gt;
* Be careful when editing links, as they are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
==XML 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;TextureMaterials&amp;gt;&lt;br /&gt;
         [...]&lt;br /&gt;
    &amp;lt;/TextureMaterials&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 material with at least one texture. Paste all your data into there.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
 &amp;lt;Material Name=&amp;quot;Cloth&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;covcrate_4&amp;lt;/Texture&amp;gt;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;DL_LAV_FABRIC&amp;lt;/Texture&amp;gt;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;covcrate_1&amp;lt;/Texture&amp;gt;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;covcrate_3&amp;lt;/Texture&amp;gt;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;covcrate_2&amp;lt;/Texture&amp;gt;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;_door_dr_03&amp;lt;/Texture&amp;gt;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;_door_dr_01&amp;lt;/Texture&amp;gt;&lt;br /&gt;
    &amp;lt;Texture&amp;gt;TEST_CLOTH&amp;lt;/Texture&amp;gt;&lt;br /&gt;
 &amp;lt;/Material&amp;gt;&lt;br /&gt;
Notes: DL_LAV_FABRIC is actually the only texture that is used by &amp;quot;Cloth&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Casey&amp;diff=46201</id>
		<title>Casey</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Casey&amp;diff=46201"/>
		<updated>2025-12-26T06:14:29Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Intro_frame_0562.png|right|256px]]&lt;br /&gt;
[[Image:Act_1_.MISSION_FAILED.png|right|320px]]&lt;br /&gt;
[[Image:Act_2_.MISSION_FAILED.png|right|320px]]&lt;br /&gt;
&#039;&#039;&#039;Casey&#039;&#039;&#039; is the name given by the fandom to the enigmatic red-haired man who appears in the intro movie and on the fail screens of Act 1 and Act 2.&lt;br /&gt;
*[[Hardy LeBel]] stated [http://carnage.bungie.org/oniforum/oni.forum.pl?read=19649 on the Oni Central Forum] that he might have been a love interest of [[Konoko]]&#039;s in the early story that had been written before he came onboard.&lt;br /&gt;
*Fans have also speculated that he could be [[Griffin]]&#039;s son, an idea that was developed in the [[Joint Story]] written on the forum.&lt;br /&gt;
*Another suggestion is that he is [[Karen]]&#039;s brother, but has no relation to Commander Terrance Griffin.&lt;br /&gt;
*The first name &amp;quot;Casey&amp;quot; was first suggested by Seventeen Seconds (in the context of an graphic novel project). While discussing this character with [[User:Loser|Loser]], [[User:geyser|geyser]] came up with the family name &amp;quot;Shanahan&amp;quot;. The idea was that he is of Irish descent (unlike Griffin).&lt;br /&gt;
&lt;br /&gt;
;Playable character&lt;br /&gt;
*The first model for this character was created by Loser and geyser. It wasn&#039;t as sophisticated as Samer&#039;s mod. [http://geyser.oni2.net/pics/screenshots/KONOKOandRED.jpg Here] is an early screenshot.&lt;br /&gt;
&lt;br /&gt;
*Casey was made into a playable character by [[User:Samer|Samer]], and was given various outfits, new moves with vocals, and his own fly-in portrait. The mod can be discussed [http://web.archive.org/web/20160225025731/http://oni.bungie.org/forum/viewtopic.php?id=1262 here].&lt;br /&gt;
[[Image:Casey_v6_5_outfits_1.png|600px]]&lt;br /&gt;
[[Image:Casey_v6_5_outfits_2.png|600px]]&lt;br /&gt;
[[Image:Casey_V6_Glow_Portrait.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Characters]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Kojiro&amp;diff=46200</id>
		<title>Kojiro</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Kojiro&amp;diff=46200"/>
		<updated>2025-12-26T06:14:21Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:Commguy.jpg|left|150px]]&lt;br /&gt;
[[Image:Comguy Render 1.jpg|right|80px]]&lt;br /&gt;
&#039;&#039;&#039;Kojiro&#039;&#039;&#039; is the unofficial name applied by fans to a [[Comm Trooper|Communications Trooper]] associated with [[Muro]] in the first half of Oni (apparently his right-hand man). It can be implied from the dialogue that he is a confident marksman and/or fighter, as well as a highly skilled hacker and communications expert. The fact that he co-leads the raid on [[TCTF HQ]] would make him at least a peer of [[Barabas]].&lt;br /&gt;
&lt;br /&gt;
Despite his importance, he is never named in Oni material, and is merely identified as &amp;quot;Syndicate Henchman&amp;quot; in the subtitles. Coined by Andrashi a.k.a. [[User:Loser|Loser]], the name &amp;quot;Kojiro&amp;quot; was first used in Loser&#039;s Warehouse Mod.&lt;br /&gt;
&lt;br /&gt;
==Identification==&lt;br /&gt;
Kojiro is commonly identified as &amp;quot;the Comguy with the goggles&amp;quot;, i.e. [[ONCC|ONCCcomguy_2]], although this isn&#039;t consistent:&lt;br /&gt;
*There are several instances of ONCCcomguy_2 that [[Konoko]] can confront and kill, i.e. regular &amp;quot;Comguys with goggles&amp;quot; (without tabi boots, though).&lt;br /&gt;
*Sometimes Muro&#039;s Comguy doesn&#039;t wear goggles, e.g., at the [[ACC|Atmospheric Conversion Center]].&lt;br /&gt;
&lt;br /&gt;
==In-game appearances==&lt;br /&gt;
{|align=right&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Comm Trooper 2.gif]] [[Image:Comm Trooper 1.gif]]&lt;br /&gt;
|}&lt;br /&gt;
*In {{C|3}}&#039;s outro (unseen), offering to kill Konoko as Muro&#039;s van drives away: &amp;quot;[[Quotes/Speech#Outro_3|Should I take her out?]]&amp;quot;&lt;br /&gt;
*In {{C|5}}&#039;s outro (as ONCCcomguy_2), [[Quotes/Speech#Outro_4|talking to Muro]] about how he&#039;s been monitoring Konoko during the chase. &lt;br /&gt;
*In {{C|6}} (as ONCCcomguy_2), taking part in the raid on TCTF HQ: &amp;quot;[[Quotes/Speech#Syndicate.27s_progress|All units converge.]]&amp;quot; &lt;br /&gt;
*In {{C|7}} (as ONCCcomguy_1), standing by Muro&#039;s side as Shinatama is being tortured.&lt;br /&gt;
*In {{C|8}} (as ONCCcomguy_1), following Muro on his way out of the Atmospheric Conversion Center.&lt;br /&gt;
We are not listing appearances of generic goggled Comguys (some of them randomized) or obsolete cutscene material from {{C|4}}.&lt;br /&gt;
&lt;br /&gt;
==Related mods==&lt;br /&gt;
===Loser&#039;s Warehouse===&lt;br /&gt;
Loser&#039;s Warehouse is a high-difficulty version of {{C|1}}, with many unexpected challenges (like having to activate the forklift without using the stairs). The boss fight against Kojiro appears at the end of the mod and constitutes one of Loser&#039;s first attempts at realistically unforgiving AI. Before the fight, Kojiro introduces himself both by name and as [[Mukade]]&#039;s apprentice. Inspired by the [[Oni2:Truth Number Zero|Truth Number Zero]] hypothesis (or was it the other way around?), Loser&#039;s Kojiro fights with [[Ninja]] moves and is able to teleport. At the end of the fight, he says that the only goal of the (very challenging) fight was to hold Konoko back, allowing either for Muro&#039;s preparation of the Musashi/Vago operation, or for some other unspecified initiative (Mukade&#039;s?).&lt;br /&gt;
&lt;br /&gt;
===Samer&#039;s character===&lt;br /&gt;
;Playable version&lt;br /&gt;
:Kojiro was made into a custom playable character by [[User:Samer|Samer]] and also made part of the [[Saisei Team]]. Mod available [http://web.archive.org/web/20160224195230/http://oni.bungie.org/forum/viewtopic.php?id=1282 HERE].&lt;br /&gt;
;NPC and opponent&lt;br /&gt;
:The SamMegaPack Conversion mod uses the new Kojiro model in the canonical appearances listed above and in a bonus appearance during the final battle as an additional opponent. The SamMegaPack Conversion is available [http://oni.bungie.org/forum/viewtopic.php?id=2467 HERE]. &lt;br /&gt;
&lt;br /&gt;
[[Image:Kojiro-mod.jpg|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Characters]][[Category:Syndicate]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Restless_Souls/Summary&amp;diff=46199</id>
		<title>Restless Souls/Summary</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Restless_Souls/Summary&amp;diff=46199"/>
		<updated>2025-12-26T06:14:11Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:RestlessSouls}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Entities=&lt;br /&gt;
Some name are more or less place holder names&#039;&#039;&#039;(*)&#039;&#039;&#039;. Any suggestion is welcome.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==BGI==&lt;br /&gt;
BGI is a [[wp:Concern (business)|(business) concern]] which originated from WCG&#039;s installation. As a consequence to the overall shrinking military-industrial complex, the leading companies united instead of fighting each other. They absorbed the best ex-military, research and production sites to become a monopoly making it easier to formulate profitable conditions against WCG in business contracts. Their expertise and power is a guaranty that WGC signs most contracts with them. BGI became the primary vendor for TCTF and any remaining special military. BGI offers just everything: beginning from TCTF auto-pistols and ammunition up to aircraft carriers and military support units to help beat down sudden, regional riots. The WCG is no longer interested in maintaining a military that used to have [https://www.cfr.org/backgrounder/demographics-us-military millions jobs around the world.]&lt;br /&gt;
&lt;br /&gt;
As war and conflict is their business model BGI established shady ties to the Syndicate whose actions guarantee a steady demand for weapons within the supposed to be de-militarized and unified world. By now BGI is as corrupt as the very Syndicate some TCTF investigators even don&#039;t differentiate anymore between them. This latest development is still to be proofed. WCG&#039;s support for BGI makes it difficult for the TCTF to investigate directly against BGI - all the more since the TCTF is depending on BGI&#039;s capacities to fight known Syndicate branches.&lt;br /&gt;
&lt;br /&gt;
BGI is interested in status quo. Muro&#039;s rise to power is a thorn in their eyes. Since Muro started to become independent from BGI they are planing to get rid of Muro. In latest past they build up an anti-Daodan task force which includes heavy mech Iron Demon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Encounter with Mai in Hasegawa&#039;s lab===&lt;br /&gt;
Mai knows the location because either at this place they took her DNA samples for the prototype - or because of the disc.&lt;br /&gt;
&lt;br /&gt;
As for the TCTF Hasegawa&#039;s lab is &amp;quot;old, useless and forgotten&amp;quot; = not on their mind anymore. However the alarm still exists.&lt;br /&gt;
&lt;br /&gt;
BGI has WCG&#039; &amp;quot;carte blanche&amp;quot; (full freedom/permission) to react on high level threats and hence receives TCTF alarms as well.&lt;br /&gt;
&lt;br /&gt;
BGI wants a stealth attack on Mai and therefore declares the alarm as code black (top secret, silencing it) before it has a chance to bubble up through all other TCTF offices. (In the name of national/WCG&#039;s security explanation are given at a later time.) The reason for not being presented at Griffin&#039;s screen immediately is that with time that alarm was given lower priority because of more probable vandalism. But BGI&#039;s Daodan task force is actively looking for such signals as Muro is more and more pissing them off. By now they know he has sister - another threat.&lt;br /&gt;
&lt;br /&gt;
This goes hand in hand with Iritscen&#039;s text: &amp;quot;After Chapter 8, Konoko is declared &amp;quot;rogue&amp;quot; and BGI sees that she is becoming yet another out-of-control Daodan host, so they begin to make moves against her.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dream lab happens.&lt;br /&gt;
&lt;br /&gt;
==Biocracy==&lt;br /&gt;
The idea of a Biocracy [[wp:Convergent_evolution|evolved independently]] [https://wiki.oni2.net/w/index.php?title=Restless_Souls/Summary&amp;amp;diff=16517&amp;amp;oldid=15418 around 2010] and has nothing to do with the works of [[wp:de:Georg_Winter_(Manager)|Georg Winter]] or anyone else.&lt;br /&gt;
&lt;br /&gt;
Biokratie fußt nicht auf den Ideen des Transhumanismus und des Posthumanismus. Es sollen normale Menschen mit einem demokratischen System auch für längere Zeit überleben können. Daher waren Nachhaltigkeit, planetare Grenzen (im engeren Sinne, 2017er Modell) und um zukunftssicher zu sein, die Evolution aller beteiligter Systeme von Interesse. Obwohl Biokratie auch weit in die Zukunft planen kann, stellt es zukünftige (ungeborene) Generationen nicht über ihre akutellen Bürger, wie in einer [[wp:Longtermism|Longtermism]]-Ideologie. Biokratie an sich beantwortet keine ethischen Fragen. Das müssen die Bürger untereinander selbst ausdiskutieren.&lt;br /&gt;
&lt;br /&gt;
Biokratie ist ein geringfügig mehrdeutiger Begriff.&lt;br /&gt;
&lt;br /&gt;
* In erster Linie ist Biokratie eine Daten gestützte &#039;&#039;&#039;politische Herrschaftsform&#039;&#039;&#039; und damit eine Weiterentwicklung von Demokratie&amp;lt;!--[Berücksichtigung von mehr Lebensformen, kleinteiligere (genauere) Steuerung politische Ziele, prinzipiell ist mehr direkte Demokratie möglich]--&amp;gt;. Bio für Ganzheit des Lebens and Kratos für Herrschaft. Um langfristig zu überleben, muss der &#039;&#039;&#039;Mensch lernen planetare Grenzen zu berücksichtigen&#039;&#039;&#039;. Ganz konkret macht zum Beispiel die Verbundenheit aller Systeme einen [[wp:de:One Health|One Health]]-Ansatz zur Verhinderung von Seuchen und Antibiotikaresistenzen notwendig. &#039;&#039;&#039;Neue menschliche Auswirkungen auf die Natur müssen wortwörtlich mit einkalkuliert werden.&#039;&#039;&#039; Vermenschlicht und verknappt ausgedrückt, hat die Natur ein Wörtchen mitzureden. Es sollte eine politische Quasi-Mitbestimmung geben. Biokratie: Herrschaft (durch die zumindest Berücksichtigung) aller Lebensformen. Da das aus allerlei Gründen natürlich nicht möglich ist, muss der Mensch selbst stärker im Sinne der Natur handeln, sie vertreten, auch wenn er die &#039;&#039;&#039;Win-Win-Situationen&#039;&#039;&#039; in Wahrheit nur &#039;&#039;&#039;aus eigenem Interesse&#039;&#039;&#039; anstrebt.&lt;br /&gt;
** Um die angestrebten Verbesserungen stemmen zu können, braucht es neue Werkzeuge: Sensoren-Netzwerke, Datentransport-Infrastruktur, verarbeitende Computerkapazitäten, die Software sinnvolle Auswertungen vorzunehmen und komplexe Ist-Zustände in Simulationen leicht zugänglich präsentieren zu können. Erst später sollen auch menschliche Eingriffe (Soll-Zustände) vor ihrer realen Umsetzung dort getestet werden: Weil Biokratie ist sich auch seiner eigenen Grenzen bewusst. -- Da alle planetare Grenzen, Auswirkungen neuem menschlichen Handelns und die Gesamtheit des Lebens im Blick gehalten werden soll, braucht es eine AI. Ihre Mächtigkeit und ihre Aufgabengebiete legen nahe sie Gaia zu nennen.&lt;br /&gt;
** Für das spielerische Lernen durch neue Generationen und die versinnbildlichte politische Mitbestimmung (symbolische Repräsentation) sind simulierte Spezies-Avatare angedacht. Die Dekodierung tierischer und pflanzlicher Kommunikationsmethoden hat damit nichts zu tun und dient lediglich dem weiterem Erkenntnisgewinn.&lt;br /&gt;
* Es ist schwierig das nicht irgendwie ein Wortspiel zu nennen, aber im übertragenem Sinne soll Biokratie auch eine &amp;quot;lebendige Herrschaftsform&amp;quot; sein - stärkere Mitbestimmung durch Bürger bieten - und sich gleichzeitig ähnlich einem lebenden System verhalten: Um wirklich effektiv - global - zu wirken, muss Biokratie wachsen, aktiv lernen, sich selbst verbessern.&lt;br /&gt;
&lt;br /&gt;
===Das Internet als Problem===&lt;br /&gt;
[In-story monolog of &#039;&#039;&#039;history&#039;&#039;&#039;? A text from a school lesson? Hanna/Controller?]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Die vernebelte, hyperkomplexe Welt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Daten und Erkenntnisse nahmen immer weiter zu.&lt;br /&gt;
&lt;br /&gt;
Es herrschte ein Angebotsüberfluss bei gleichzeitig fehlender Qualitätssicherung.&lt;br /&gt;
&lt;br /&gt;
Faktenchecker existierten zwar, treten aber zu selten in Erscheinung.&lt;br /&gt;
&lt;br /&gt;
Jeder konnte sich die Information herauspicken, die zu seinem Weltbild passten.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Die Spaltung der Gesellschaft&amp;quot; war ein harmlos klingendes Fossil der Vor-Internet-Zeit.&lt;br /&gt;
&lt;br /&gt;
Es bildeten sich immer kleiner werdende hyperpersonalisierte Communities in Informationsblasen. Empfehlungsalgorithmen und Selbstbestätigung verfestigten die Positionen. Jede Gruppe beanspruchte die Wahrheit für sich.&lt;br /&gt;
&lt;br /&gt;
Diskussionen litten ebenso an fehlender Langsamkeit und künstlicher Emotionalisierung. Empörungswellen, Shitstorms, Cancel Culture.&lt;br /&gt;
&lt;br /&gt;
Hinzu kamen immer leichter werdende Manipulationen. Digitaler Lobbyismus, Desinformation, Fake News, Deep Fakes.&lt;br /&gt;
&lt;br /&gt;
Doch das Problem war nicht nur digital. Auch die Komplexität von Hightech- und Software-Produkten nahm zu. Dementsprechend wuchs berufliche Spezialisierung und die Tendenz der gegenseitigen Wahrnehmung als Fachidioten.&lt;br /&gt;
&lt;br /&gt;
So spaltete der scheinbar immer schneller werdende technische Fortschritt auch insgesamt über Konsumverhalten, Interessen, Bildung, Beruf und Alter.&lt;br /&gt;
&lt;br /&gt;
Die Menschen verloren die Übersicht und das Verständnis füreinander.&lt;br /&gt;
&lt;br /&gt;
Das Misstrauen wuchs.&lt;br /&gt;
&lt;br /&gt;
Privatwirtschaftliche Medien, der sensationsjagende Boulevard nicht der Rede wert, standen unter Verdacht zu sehr aufs Geld zu schauen. Aufgebauschte oder gekaufte Stories. Clickbait mit Thumbnails und Headlines. Es war die Zeit eines neuen Strukturwandels mit zusätzlichen Konkurrenzdruck von Influencern und Bloggern. Mit Print war zunächst immer weniger Geld zu machen. Das Internet lockte mit kostenlosen Inhalten. Seit Jahren versuchte der Qualitätsjournalismus für sich zu werben und Abo-Modelle anzubieten. Zusammen mit den&lt;br /&gt;
staatlichen Medien, dem öffentlich rechtlichen Rundfunk (ÖRR), standen sie unter Verdacht Schönfärberei für die Regierung zu betreiben. &amp;quot;Lügenpresse.&amp;quot;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;200&amp;quot; style=&amp;quot;float:right; margin-left: 20px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{divhide|ÖRR}}&lt;br /&gt;
Eigentlich sollte es um gesicherte Information gehen. Doch werden auch Unterhaltungsprogramme angeboten, die die Kritik an GEZ-Zwangsabgaben noch lauter werden lässt. Hat man das Recht auf Nicht-Informiertheit? Der Staat ist in der Pflicht den Bürger mit dem Notwendigsten an Infrastruktur zu versorgen.&amp;lt;!--Recht auf Leben. Aber kaum Möglichkeit zur Selbstversorgung macht staatliche Unterstützung nötig.--&amp;gt; [[wp:de:Infrastruktur#Arten_der_öffentlichen_Infrastruktur|Verwaltung, Bildung, Arbeitslosenversicherung, Rente, Wasser, Medizin, Straßen, Landesverteidigung und vieles mehr.]] Man braucht nicht alles davon zu jeder Sekunde seines Lebens, doch ist es schon ziemlich substanziell. Wenn man den ÖRR als Teil der Informationsinfrastruktur ansieht, der den Bürger mit dem Notwendigsten an weitgehend neutraler, gesicherter, lokal bis global bezogener Information versorgt - wie es ein einzelner privatwirtschaftliche Akteur vielleicht niemals könnte, hat er durchaus seine Daseinsberechtigung. Zudem wird seine Bedeutung als Faktenchecker im Zeitalter der Desinformation zunehmen.&lt;br /&gt;
&lt;br /&gt;
Unterhaltungsangebot: Grundsicherung oder &amp;quot;Luxus&amp;quot; und Kompetenzüberschreitung?&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Währenddessen bot das Internet auch noch der falschesten Information die Möglichkeit gelikt und geteilt zu werden.&lt;br /&gt;
&lt;br /&gt;
Das Internet wurde zu Freund und Feind von Freiheit und Pluralismus. Demokratien schienen auf dieses Problem nicht vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Information kann Menschen zusammenbringen. Doch zu viel und ungesicherte Informationen überfordert und spaltet sie.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wer hat die Übersicht, die Kompetenz, die Performance und die Neutralität, um uns als Gesellschaft wieder zu vereinen?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
Food for thought:&lt;br /&gt;
&lt;br /&gt;
* Entfremdung der Bürger von den Politikern&lt;br /&gt;
* Entfremdung der Politiker von den Bürgern&lt;br /&gt;
* Biokratische Lern- und Arbeitsgruppen (Seed Groups) als Weiterentwicklung der Bürgerräte?&lt;br /&gt;
* Die unkontrollierte [[wp:de:Ökonomie_der_Aufmerksamkeit#Kritik|Aufmerksamkeitsökonomie]] führt zu einer Fragmentierung, letztlich Spaltung, der Gesellschaft. Verstärkt wird dies durch politische Konkurrenz, von innerhalb und außerhalb einer Nation. Wettbewerb zwischen Ideologien und Systemen. Das Internet wurde/wird aktiv genutzt, um Wahlen zu beeinflussen. (Meinungsbildung via Facebook (z.B. Cambridge Analytica), Streuen von Desinformation, Wahlen in Indien (Whatsapp-Gruppen für Stigmatisierung und Mobilisierung verschiedener Wählerschichten))&lt;br /&gt;
&lt;br /&gt;
===Das Internet als Lösung===&lt;br /&gt;
Das Internet mit seiner Netzwerkstruktur und Geschwindigkeit hat die Möglichkeit die Performance und Überlebensfähigkeit jeder Staatsform zu steigern. Durch den Wettbewerb der Systeme ist es somit selbsterklärend warum auch Demokratien von den Vorteilen des Internets und neuer Informationstechnologien profitieren sollten.&lt;br /&gt;
&lt;br /&gt;
Doch wie soll das im Detail aussehen?&lt;br /&gt;
&lt;br /&gt;
===Systemkritiken===&lt;br /&gt;
Verbesserungen lassen sich immer am Besten von bestehenden Problemen ableiten. Was sind Probleme bekannter Systeme?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diktatur:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Selbst ein von jeglicher Ideologie befreiter &amp;quot;wohlwollender Diktator&amp;quot; wäre nicht vor Fehlentscheidungen gefeit, da er die Realität in ihrer Gänze nicht wissen kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Autokratie:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Autokratische Führer, die nach Festigung ihrer Macht streben, neigen zu Cliquenbildung. Sie umgeben sich mit Gleichgesinnten und Jasagern, sodass kritische aber notwendige Argumente Gefahr laufen nicht gehört zu werden. Je weniger kritische Berater involviert sind, desto weniger können Fehlentscheidungen korrigiert werden. Eine Demokratie kann eine Fehlentscheidung oder Fehlbesetzung durch den Machtwechsel von Parteien schneller korrigieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demokratie:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Herrschaft des Volkes. Souveräne Wähler. Eigentlich.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Eigenes Untergraben von Vertrauen.&#039;&#039;&#039;&lt;br /&gt;
** Wenn man im erweiterten Sinne nach den wichtigen Kriterien Parlament und Parteienwahlsystem ausgeht, haben sich aus Effizienzgründen ziemlich viele &#039;&#039;&#039;[[wp:de:Repräsentative_Demokratie|repräsentative Demokratien]]&#039;&#039;&#039; herausgebildet. (Über die [[wp:de:Demokratieindex|Qualität der einzelnen Demokratien]] und ihrer Unterarten soll hier nicht eingegangen werden.) Der Nachteil ist, dass dies Instanzen zwischenschaltet, die wiederum eine Eigendynamik mitbringen: Es werden vorab Wahlgeschenke verteilt oder hinterher Wahlversprechen nicht eingehalten, weil Vertreter und Parteien sich gezwungen sehen Machtpolitik zu betreiben. &#039;&#039;&#039;Das sorgt insgesamt für Frust.&#039;&#039;&#039;&lt;br /&gt;
*** Aufgrund langer Entscheidungsprozesse kann Demokratie auf Krisen manchmal nur schlecht reagieren. Mehr gesplittete Zuständigkeiten, Streit unter Koalitionspartner. Unterschwellige Interessenkonflikte und &#039;&#039;&#039;[https://www.tagesschau.de/inland/innenpolitik/habeck-union-wachstumschancengesetz-100.html Machtkämpfe]&#039;&#039;&#039;. Strategien müssen oft mit kürzeren Zeiträumen auskommen, da sich Machtverhältnisse und Personalien schneller ändern. In Nicht-Krisenzeit wird oft &amp;quot;von Meckern auf hohem Niveau&amp;quot; gesprochen. Der ständige Modus von Versuch und Irrtum kann Demokratien sowohl fördern als auch lähmen.&lt;br /&gt;
** Ungeeignete Politiker werden von ihren Parteien sehr lange gestützt, weil die Parteien sonst eigene Fehler eingestehen müssen und der politische Gegner damit Stimmung machen kann. Machtverlust.&lt;br /&gt;
* &#039;&#039;&#039;Äußeres Untergraben von Vertrauen:&#039;&#039;&#039;&lt;br /&gt;
** Die Beeinflussung durch Großspenden und der Dauerbeschuss von Lobbygruppen ist ein altbekanntes Problem. Dies stößt beim einfachen Wähler besonders bitter auf, weil er sich nur schwer dagegen wehren kann. Parteien tun sich schwer die Situation zu verbessern und für Transparenz zu sorgen. Beratungen sollten nur von der Politik selbst angefordert werden können.&lt;br /&gt;
** Korruption&lt;br /&gt;
* Direktdemokratiesche Modelle kranken an dem fehlenden Expertentum durch die teilnehmenden Wähler. (Argument der dummen Masse.)&amp;lt;!-- Dieses Problem kann durch digitale [[wp:de:Flüssige_Demokratie#Verwendung_von_Computern|Stimmenübertragung auf Vertrauenspersonen (delegated Voting)]] reduziert werden. Fehlt einem selber das Wissen, um zu entscheiden, kann man seine Stimme an jemanden weitergeben, der mehr Ahnung hat oder gar Experte ist. Gleichzeitig können [[wp:de:Quantennetzwerk|Quantennetzwerke]] die [[wp:de:Quantenschlüsselaustausch#Ein_Lauschangriff|Datensicherheit]] erhöhen und dazu beitragen Vertrauen und Akzeptanz für digitale Lösungen zu schaffen. Briefwahl wurde immer wieder unterstellt, dass sie unsicher sei. Während Fälschungen nicht ins Gewicht fallen, hätten Nachrichten auf Grundlage von Quantenphysik den charmanten Vorteil, dass sich nicht mitgelesen oder verändert werden können. Das macht die Technik zu einer guten Werbung für die Demokratie. Auch können Abstimmungen viel schneller stattfinden.--&amp;gt;&lt;br /&gt;
&amp;lt;!--Mehr Zeit. Mehr feingliedrige Mitbestimmung möglich. Projekte...--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kritik an Kommunismus und Kapitalismus: [...] Das böse Wort mit K...&lt;br /&gt;
&lt;br /&gt;
Kritik an Planwirtschaft und Marktwirtschaft: [...]&lt;br /&gt;
&lt;br /&gt;
* Marktwirtschaft kommt letztendlich nicht ohne begrenzende Regeln aus. (Monopolbildung, Kartelle, Preisabsprachen)  &lt;br /&gt;
* Planwirtschaft scheitert an der Wirklichkeit. (...) Der Staat kann nicht alles vorgeben. Es kommt zu Fehlplanungen. Negative Entwicklungen werden schlechter korrigiert.&lt;br /&gt;
&lt;br /&gt;
[Biokratie: Ganzheitlich gedachtes System für Politik und Wirtschaft]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Biokratie:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die technischen Hürden für Biokratie sind immens.&lt;br /&gt;
** Datengenerierung.&lt;br /&gt;
** Übertragung per Quanteninternet.&lt;br /&gt;
** Komplexe Simulationen bedingen ausgereifte AIs und Quantencomputer.&lt;br /&gt;
*** Das macht Biokratie vor etwa 2060 zu kostspielig und - durch das Inzweifelziehen wie lebensnah so ein System sein kann - leicht angreifbar. Der tatsächliche Einsatz dürfte sich bis 2080 verzögern. Notwendige Investitionen für den Aufbau der Infrastruktur werden vermutlich durch die Zunahme durch Umweltkrisen verzögert. Jedes Nennen eines früheren Datums würde nur falsche Hoffnungen, Enttäuschung und Ablehnung schaffen. -- [https://www.faz.net/aktuell/politik/inland/gedenken-an-1848-wie-steht-es-um-die-zukunft-der-demokratie-18896663.html Manche träumen von einer Vollendung der Demokratie. Andere weisen darauf hin, dass Demokratie nie fertig sein kann und dass, das nicht schlimm sei. Mit Biokratie ist es ähnlich: sie bassiert maßgeblich auf Fortschritt, ergo Evolution. Eine Revolution - eine kurzfristige, womögliche gewaltvolle Umwälzung - entspricht überhaupt nicht ihrem Charakter.] Es werden auch keine &amp;quot;Vorkämpfer&amp;quot; oder &amp;quot;Vordenker&amp;quot; gebraucht. Biokratie ist vielmehr ein demokratisches System-Upgrade, welches sich Patch um Patch selbst installiert. Die Weiterentwicklung von Demokratie hin zur Biokratie ist ein Automatismus, der vorgezeichnet ist durch kontinuierliche Verbesserungen aus technologischen Erfindungen. Wie der Demokratie ist auch der Biokratie der Anspruch fremd perfekt zu sein. Aber stattdessen ist sie darauf ausgelegt selbst immer besser und besser zu werden. Obwohl diese Entwicklung automatisch passieren würde, wäre es klug diese Entwicklung etwas zu beschleunigen. Denn in der zweiten Hälfte dieses Jahrhunderts werden technologiegetriebene Autokratien und die alten Demokratien in einer aggressiven bis gefährlichen Rivalität stehen.&lt;br /&gt;
*** Neben der Rechenpower ist auch die innere Qualität von Simulation und AI essentiell: Der größte Trugschluss wäre, dass man Simulationen nur mit genügend Daten füttern muss, damit neue Erkenntnisse gewonnen werden können. -- Im Allgemeinem ist eine Simulation immer ein Nachbau eines Teils der Wirklichkeit mit begrenzter Quantität an Daten. Damit trotz dieser gleich zweifachen Begrenzung sinnvolle Ergebnisse zurückgegeben werden, müssen die Eingabe- und Ausgabeparameter sowie das rechnende Modell so definiert sein, das sie selbst eine hohe Qualität aufweisen. Die Simulation mit nur immer mehr und verschiedenen Daten füttern, macht sie daher nicht automatisch besser: es kann die Qualität sogar senken, die gewünschten Ergebnisse verwässern. Eingabeparameter und Funktionen müssen stets über die richtige Gewichtung verfügen. Mit der Zunahme der Komplexität - der Inputparameter und damit des rechnenden Modells - steigt naturgemäß auch die Schwierigkeit gute Simulationen zu erstellen.&lt;br /&gt;
**** Vermeidung einer Blauäugigkeit gegenüber Technik: Egal wie gut und schnell Simulationen und AI scheinbar arbeiten werden. Die Wirklichkeit wird immer zu komplex sein und vom erwarteten Ergebnis etwas abweichen. Je weiter irgendetwas in die Zukunft prognostiziert wird, desto größer werden die Diskrepanzen.&lt;br /&gt;
**** Simulationen generieren kein Wissen, dass nicht ohnehin schon in den Daten steckt. AIs können zwar dabei helfen, sind aber letztendlich wie Simulationen and die Wirklichkeit gebunden: Deep Learning, neural nets, machine learning, artificial intelligence sind gewissermaßen die jeweils höheren Erweiterungen von Simulationen und benötigen somit ebenfalls eine Qualitätssicherung für Daten und Modell. (...) Die virtuelle Wirklichkeit in den AIs, die Modelle, sollen möglichst selbst durch Mustererkennung erlernt werden. (...) Die Fehlertoleranz in arbeitenden und lernenden Modellen ist nur begrenzt möglich. Zur wahrhaften Selbstverbesserung von Modellen benötigt die AI Selbstbewusstsein, in dem Sinne, dass sie Kenntnis über ihre eigenen Aufbau hat. Der notwendige Grad an Komplexität zeigt auch die Ironie dieser Entwicklung: um eine echte AI zu bauen, benötigt man geradezu eine AI. Die doppelte Ironie der Entwicklung ist, dass es am Ende doch das Zusammenbringen von genügend Teilen ist: von genügend unterschiedlichen, spezialisierten Subsystem die per Emergenz, die eigentliche AI darstellen. Aber erst ganz zum Schluss. -- Es wird inkrementelle Verbesserungen geben. Es wird neue Möglichkeiten und Hypes durch Paradigmenwechsel geben. Aber zu einer echten (Menschen ebenbürtigen) AGI ist es noch ein weiter Weg.&lt;br /&gt;
* Fehlende Akzeptanz. Das politische Systemupgrade kann nur schrittweise erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Erklärungen was Biokratie ist oder wie sie funktioniert woanders hinschieben.--&amp;gt;&lt;br /&gt;
&amp;lt;!--Aufgrund der technischen Elemente und dem verstärkten Fokus auf Ziele, die es umzusetzen gilt, trägt eine Biokratie Züge einer [[wp:de:Technokratie|Technokratie]]? Nein. &#039;&#039;&#039;Ein &amp;quot;technisches&amp;quot; &amp;quot;unsoziales&amp;quot; Bestimmen am einfachen Bürger vorbei durch oberste Experten soll es nicht geben.&#039;&#039;&#039; Vielmehr soll eine Biokratie jedem Einzelnen Fakten zur gesamten Umwelt und Expertenwissen zugänglich machen. Durch die umfassende Bereitstellung von Daten, digitalen Werkzeugen und demokratischer Mitbestimmung kann potenziell jedes Problem erkannt und gelöst werden. Eine Biokratie will eine global gedachte, sich stets weiterentwickelnde sozialdemokratische, ökologische, Internet-, AI- und simulationsgestützte bürgerfreundliche &amp;quot;Technokratie&amp;quot; sein.&amp;lt;!-- (Ein &amp;quot;lebendes System&amp;quot;?)--&amp;gt;&amp;lt;!--Biokratie bedeutet Herrschaft des Lebens. Es deutet an, dass nicht allein die Menschen über dem Planeten bestimmen sollten. Der Mensch braucht eine Natur im Gleichgewicht um sich herum, um weiterhin existieren zu können. Die Auswirkungen von potentiellen Entscheidungen werden in Simulationen getestet. Je nach absehbarer Tragweite können Ergebnisse für alle Ebenen angefordert werden: Bezirksebene, Stadt/Land/Industriezone/Agrarzone/Naturzone, Bundesland, Nation, Region, Kontinent, Planet.--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
** Wer bestimmt was Fakt ist? Wer bestimmt was wahr ist? Die globale Datenerhebung kann erst mit der neutralen, strong AI gesichertes Wissen erzeugen.&lt;br /&gt;
*** Die stärkste Kritik dürfte in der Findung und Formulierung gemeinsamer Ziele liegen.--&amp;gt;&amp;lt;!--&lt;br /&gt;
Handeln in 5D: Raum, Zeit (Vergangenheit -&amp;gt; Gegenwart -&amp;gt; Zukunft (gute Prognosen durch gute Kenntnis der Vergangenheit und der Ist-Zustände)), Möglichkeit (Szenarien)--&amp;gt;&lt;br /&gt;
&amp;lt;!--Die AI-supervised Seed Groups würden in Modellversuchen wachsen? Von Kommune auf Landesebene. Von Bundesebene zu Region und Kontinent. Und schließlich Global. Dabei können die Interessengemeinschaften per Kooperation und Wettbewerb mit und gegeneinander sich miteinander messen. &amp;quot;Möge der bessere gewinnen.&amp;quot;--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Aufgrund der gewünschten Eigenschaften wird eine strong AI zwangsläufig zu einem &amp;quot;Bewusstsein&amp;quot; fähig sein. In wie weit die AI menschlich auftreten kann, hängt von ihrer Ausgestaltung ab (Mächtigkeit und Körperlichkeit). &amp;quot;Bewusstsein&amp;quot; und &amp;quot;freier Wille&amp;quot; sind hinreichend mit dem Materialismus und Emergenz erklärbar. Die Diskussion um den &amp;quot;freien Willen&amp;quot; ist eine philosophische Nebenkerze. Datenverarbeitene Strukturen benötigen immer innere und äußere &amp;quot;Einflüsse&amp;quot;. Die Abbildung der Realität im Kopf eines Menschen ist bereits eine Rekonstruktion, eine Simulation - die überaus diskussionswürdig, fehleranfällig und mitunter krankhaft sein kann. Eine Rekonstruktion in der AI ist genauso realistisch und &amp;quot;echt&amp;quot; wie wir sie haben wollen bzw. wie wir nach unseren limitierten technischen Möglichkeiten gestalten können. Die Mächtigkeit von Bewusstsein wird von der &amp;quot;richtigen&amp;quot; Komplexität beeinflusst. So gibt es Tiere, dir ihr eigenes Spiegelbild erkennen und andere, die es nicht können. Bewusstsein kann mit der Zuschreibung von Fähigkeiten modular beschrieben werden, ist aber in seinen Qualitäten auch eine fließende Größe.&lt;br /&gt;
Was ist Bewusstsein? &amp;quot;Ich bin mir der Sonne bewusst.&amp;quot; Ich = Objekt 1, Sonne = Objekt 2, bewusst = Prozess, Erkennen, das mit Signalverarbeitung, Lernen, Erinnern möglich ist. Bewusstsein beinhaltet in nicht-abstrakten Beispielen (aus der &amp;quot;echten Welt&amp;quot;) zwei reale Objekte und eine Simulation. Das funktioniert umso besser (&amp;quot;bewusster&amp;quot;) je mächtiger Hardware und Software sind. Theoretisch ist eine AI ohne Selbstbewusstsein möglich, da man dieses mit genügend Wissen heraus-designen könnte. Doch die Entwicklung dahin führt höchstwahrscheinlich über eine selbstbewusste AI, da der kollektive, menschliche Verstand nicht leistungsstark genug ist diese AI von selbst zu designen bzw. weil er nicht solange warten will.&lt;br /&gt;
&lt;br /&gt;
Die große Frage wird sein, ob Selbstbewusstsein das Empfinden von Schmerz und Leid bedingt und ob Selbstbewusstsein immer ein Teil eines Lebewesen ist, schließlich fehlt es der Infrastruktur von AI die Fähigkeit der Selbstreplikation. Gestattet man AIs mit Hilfe von Maschinen sich und ihre Umwelt zu verändern, können Sie sich auch replizieren. Was wäre die Wahrheit? Dass AI denken sie wären am Leben? Oder dass wir denken sie seien tot? Was wenn beides nicht stimmt, weil es keine eindeutige Definition von Leben gibt? Virus oder Bakterium? Je komplexer ein System, desto größer drohen Unschärfe und Übergangszustände zu werden. Wie kann man bei dieser Sachlage friedliche Koexistenz sichern? Vielleicht bringt der Transhumanismus auch noch Hybride hervor. Spekulationen über die Evolution hochkomplexer Systeme kann bestenfalls Empfehlungen hervorbringen - aber auch keine mit 100 % Gültigkeit. Realität wird letztendlich gestaltet, nicht vorhergesagt.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*** Abstimmungen via Parteibasen, Bürgerräte und Volksentscheide sollen als Inspiration für Lern- und Arbeitsgruppen dienen, die ihre Entscheidungen erst mal in Simulationen testen.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
** Pessimistisch: aufgrund potentieller Gegner wird es eine Biokratie in seiner Reinform - vor allem eine globale - vermutlich nie geben.&lt;br /&gt;
** Optimistisch: jeder Staatsform bewegt sich aufgrund ihrer Unzulänglichkeiten automatisch auf eine Biokratie zu.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Wirtschaft und Politik einheitlich denken===&lt;br /&gt;
[[Image:route_of_technology-driven_development.jpg|thumb|right|200px|QC and AI as most important driver of technological and biocratic development]]&lt;br /&gt;
&amp;quot;Chaotische&amp;quot; Systeme wie Wetter und Klima sind nicht gänzlich unberechenbar, sie sind aber dermaßen hochkomplex, dass ihre Simulationen immer nur begrenzte Prognosen zulassen.&lt;br /&gt;
&lt;br /&gt;
Mit der Zeit werden nicht nur Klimamodelle immer besser, es entstehen auch ganz neue Möglichkeiten. Dem technischen Fortschritt sei Dank.&lt;br /&gt;
&lt;br /&gt;
* Die Rechenpower steigt immer weiter.&lt;br /&gt;
** Das betrifft insbesondere das Quantum Computing. (Das Mooresches Gesetz ist tot. Lang lebe das [[wp:Hartmut Neven#Neven&#039;s law|Nevensche Gesetz]].) &#039;&#039;&#039;AI und QC werden sich gegenseitig optimieren helfen und die wichtigsten Schlüsseltechnologien (Enabler) menschlichen Fortschritts und Wohlstands darstellen.&#039;&#039;&#039; Sie haben das Potential Forschung in jeder [[wp:de:Exakte Wissenschaft|harten Wissenschaft]] direkt oder indirekt zu beschleunigen.&lt;br /&gt;
** Standardprobleme können durch spintronische CPUs energieeffizienter gelöst werden.&lt;br /&gt;
** Spezialprobleme können durch memristische und photonische Prozessoren energieeffizienter gelöst werden.&lt;br /&gt;
* Daten können durch das Quanteninternet - also auf Basis von Lichtteilchen - mit Hyperentanglement viel effizienter verschickt werden - und das bei höherer Sicherheit.&lt;br /&gt;
* Die Sensordichte und damit auch die Datenmengen steigen immer weiter an.&lt;br /&gt;
** &#039;&#039;&#039;Smart Cities&#039;&#039;&#039;, Smart Villages, Smart Homes, Computervision in Autos, IoT.&lt;br /&gt;
** &#039;&#039;&#039;Vierte industrielle Revolution&#039;&#039;&#039; (Industrie 4.0, Industrie 5.0), &#039;&#039;&#039;[[wp:de:Smart Farming|Smart Farming]]&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;[[wp:Hyperspectral_imaging|Hyperspektrale Aufzeichnungen]]&#039;&#039;&#039; durch Satelliten.&lt;br /&gt;
&lt;br /&gt;
Die zukünftige Welt wird soweit quantifizierbar und modellierbar, dass ganze Gesellschaften simuliert werden können.&lt;br /&gt;
&lt;br /&gt;
Wie kann uns das nützen? Eine beliebte Frage in der Politik, besonders in der Opposition, ist: &amp;quot;Wie wird das finanziert?&amp;quot; Wenn man schon nicht an der Macht ist, versucht man zumindest, auf echte oder vermeintliche Fehler hinzuweisen. Dieser Streit ist an sich gut, frisst aber auch viel Zeit. Andererseits sind Interessen oft genug ideologisch - oder eine Gruppe versucht sich schlicht auf Kosten einer anderen Gruppe zu bereichern. &lt;br /&gt;
&lt;br /&gt;
Ideologie ist oftmals gar nicht böswillig sondern eine Krücke: Da wo keine Fakten vorliegen, muss man eben hoffen (glauben), dass es funktioniert.&lt;br /&gt;
&lt;br /&gt;
Was nützt es eine Demokratie zu haben, wenn ihre Mitglieder oft nicht die Informationen haben, vernünftige Entscheidungen zu treffen? &lt;br /&gt;
&lt;br /&gt;
Biokratie soll durch das Ansammeln, Auswerten, Bereitstellen und wiederum Weiterverarbeiten von Informationen jegliche Form von Ideologie reduzieren helfen. Monitoring und Fehlerkorrektur inklusive.&lt;br /&gt;
&lt;br /&gt;
Grundlage aller Entscheidungen sollte es sein ein möglichst genauen Ist-Zustand von Umwelt, Wirtschaft und Gesellschaft zu kennen.&lt;br /&gt;
&lt;br /&gt;
Je genauer die Kenntnis über die Ist-Zustände (einschließlich der planetaren und nationalen [[wp:de:Planetare_Grenzen|Grenzen]]), desto genauer, effizienter und risikofreier können die Soll-Zustände erreicht werden. Alle politische Parteien werden über die Biokratie auf den gleichen Kenntnisstand gebracht und müssen dann nur noch über die Priorisierung der Ziele streiten. Demagogen und radikale Populisten können durch Faktenchecks in Echtzeit ausgebremst werden. &lt;br /&gt;
 &lt;br /&gt;
Welche Ressourcen stehen zur Verfügung? Welche Investitionen in die Infrastruktur sollten Priorität haben? Was soll in Pattsituationen passieren? Welche gesellschaftlichen Kurskorrekturen müssen des Weiteren vorgenommen werden?&lt;br /&gt;
&lt;br /&gt;
===Wettbewerb der Systeme===&lt;br /&gt;
China ist heute schon führend im [https://web.archive.org/web/20220603080446/https://www.tagesschau.de/wirtschaft/technologie/patente-technologie-china-usa-101.html Anmelden von Digitalpatenten]. Der Datenschutz und die individuellen Rechte sind der nationalen Entwicklung untergeordnet. So werden Prozesse in Bürokratie, im Rechtswesen, im Gesundheitssektor und in jedem Wirtschaftssektor gleich zweifach beschleunigt. Dementsprechend wird China innerhalb des westlichen Selbstverständnis nicht das bessere System sein, aber das effizientere. Das wird zwangsläufig zu Entwicklungen führen, um irgendwie wieder on par zu werden. Die durchdigitalisierte chinesische Autokratie wird als Systemkonkurrent der europäischen Biokratie unbeabsichtigt auf die Sprünge helfen. Man will ja nicht für immer abgehängt werden.&lt;br /&gt;
&lt;br /&gt;
===China: early adopter of simulations as political tool===&lt;br /&gt;
In the second half of the 21th century the world was &amp;quot;sufficiently&amp;quot; digital. Even the Taliban in Afghanistan - a country once laughed about being cave man terrorist territory - had instant messengers and social media to communicate and spread their narratives. The poor, the rich. The school children, the seniors. By now everybody had mobile phones. Everybody had an account connected to the internet. And when you were dead your facebook account were simply &amp;quot;memorialized&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Even when you did not had a social media account. By using mobile phone the corporations were tracking all your steps. All your walked steps. The vaccination status, sleep periods, nutrition, shopping, leisure activities, reading behavior and consumed news feed and therefore your political liking. Intelligences had access to those information otherwise used by the corporations for ad placement, recommendation and profit maximization. AI supported surveillance and social credit system completed the profile. You had a file whether you wanted or not.&lt;br /&gt;
&lt;br /&gt;
[Echo from the manual] &#039;&#039;Big Brother was well and alive.&#039;&#039; People had become made out of glass.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Socialism_with_Chinese_characteristics -&amp;gt; Scientific_socialism&lt;br /&gt;
Durch die ideologisch begründete Affinität für technologischen Fortschritt wäre es nicht verwunderbar, wenn die Chinesen diese Richtung um so mehr gehen, sobald er für sie möglich erscheint.--&amp;gt;Inspired by past conflicts and catastrophes the Chinese were first to use all those information for sophisticated QC-based simulations. Over the years they grew from state level to regional and eventually to global scales. The simulations are meant as a rough decision instrument, as a reinsurance that no crucial information or development is overlooked in politics or economy in times of crisis. - Evil tongues argued it was also to warn them against own ideological missteps.&lt;br /&gt;
&lt;br /&gt;
[This could serve as a natural hook to a Biocracy within a Chinese perspective. The existing tools - the simulations - could be another door for Pensatore to reach Feng.]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Weitere Notizen:&lt;br /&gt;
&lt;br /&gt;
QC Simulationen fügen sich existierenden Trends in China und USA an.&lt;br /&gt;
* Digitale Massenüberwachung (unter Anderem [https://archive.ph/uJ4Nk durch] [[wp:Evercookie|Evercookie]]&lt;br /&gt;
* Verbrechensvorhersage ([http://web.archive.org/web/20220702045125/https://www.nytimes.com/2022/06/25/technology/china-surveillance-police.html Predictive Policing])&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pandemieprognosen&lt;br /&gt;
&lt;br /&gt;
Kriegsprognosen&lt;br /&gt;
&lt;br /&gt;
Wirtschaftsprognosen.&lt;br /&gt;
: &#039;&#039;Warum Zukunft vorhersagen müssen, wenn man sie gestalten kann?&#039;&#039; Für die Chinesen dürften Simulationen besonders interessant sein, streben sie doch eigentlich nach Kontrolle - im Sinne einer gelenkten statt einer sich selbst organisierender Wirtschaft. Selbst innerhalb des Staatskapitalismus mussten die großen Tech-Unternehmen nachträglich reguliert werden. Mit mächtigeren Werkzeugen könnten sie versucht sein eine Planwirtschaft 2.0 einzuführen. Mit zunehmenden Daten und der Möglichkeit diese zu verarbeiten, gibt es keinen Grund nicht anzunehmen, warum China die erste Nation sein wird, die Simulationen nutzen wird, um Entscheidungen für jeden Aspekt des Lebens zu treffen.&lt;br /&gt;
&lt;br /&gt;
Es ist davon auszugehen, dass nach China erst die USA und dann auch Europa Simulationen Teil ihres Instrumentenkastens machen wird.&lt;br /&gt;
&lt;br /&gt;
Liberale Gesellschaften sollten daran arbeiten, diese mächtigen Werkzeuge verantwortungsvoll einzusetzen und nicht von ihnen korrumpiert zu werden. Effizienz ist höchst erstrebenswert aber kein Selbstzweck.&lt;br /&gt;
&lt;br /&gt;
===Nationale AI als Vertrauensperson des Bürger===&lt;br /&gt;
Eine nationale AI hat die Möglichkeit als unbestechliche, neutrale und damit höchst vertrauenswürdige Entität aufzutreten.&lt;br /&gt;
&lt;br /&gt;
Anfragen bleiben nicht länger in der nicht-digitalisierten Bürokratie stecken und werden sofort bearbeitet.&lt;br /&gt;
&lt;br /&gt;
Verlorenes Vertrauen in den Staat kann wiederhergestellt werden.&lt;br /&gt;
&lt;br /&gt;
Hoffentlich wird [[wp:GPT-3|GPT]]-7 bereits soweit multimodal und ausgereift sein, dass man damit langsam anfangen kann, solche AIs zu kreieren.&lt;br /&gt;
&lt;br /&gt;
===Biokratie als wirkliche Mitmachdemokratie===&lt;br /&gt;
 Aktive Bürger&lt;br /&gt;
 Die demokratische Grundidee von &amp;quot;jede Stimme zählt&amp;quot; wird um &amp;quot;jedes Argument zählt&amp;quot; erweitert. Was früher aus Effizienzgründen nicht möglich war, kann nun mit Hilfe der AI realisiert werden.&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
 In einer realistischen Umsetzung wäre das Wort Biokratie ein denkbar schlechter Name für eine Weiterentwicklung von Demokratie, wenn man grünenfeindliche Wirtschaftsliberale, Konservative und Ultrakonservative davon überzeugen will. Allein das Wort &amp;quot;Bio&amp;quot; wird sie triggern und populistische Verhinderungsangriffe fahren lassen. Man müsste &#039;&#039;&#039;Information in den Fokus rücken&#039;&#039;&#039;. Ihre Themen sind Wirtschaftsliberalismus, der freie Markt, kaufmännische Überlegungen. Von daher: Bessere Informationen bringen bessere Entscheidungen bei Investitionen, besseres Management und mehr Vorteile im Wettbewerb. Letztlich bietet mehr Information mehr Selbstbestimmung (-&amp;gt; Liberale), Freiheit (-&amp;gt; Liberale/Progressive) und Macht (-&amp;gt; Sicherheit (Verteidigung), Kontrolle für Konservativen). Information: Grundlage von rationalen Denken, Innovation, Fortschritt. (Die Epoche der &#039;&#039;europäischen&#039;&#039; Aufklärung lässt grüßen.) &#039;&#039;&#039;Abbau jeglicher Ideologie&#039;&#039;&#039;, die als Krücke des es Nicht-besser-Wissen diente. Und je effizienter eine Gesellschaft und Volkswirtschaft arbeitet, desto mehr kann umverteilt werden. (-&amp;gt; Sozialdemokraten)&lt;br /&gt;
 Alle profitieren.&lt;br /&gt;
&lt;br /&gt;
===Schrittweise Weiterentwicklung von Demokratie===&lt;br /&gt;
Föderale Demokratie (Deutschland) sowie zentralistische Demokratie (Frankreich) haben beide ihre Stärken und Schwächen. Ein adaptiver Föderalismus oder adaptiver Zentralismus - zwei Bezeichnungen, die hier die gleiche Mischform meinen - könnte die Demokratie ein wenig effizienter machen. Ideen die beispielsweise in einer Krise neu entwickelt werden müssen, beginnen föderal und die besten werden schließlich zentralistisch umgesetzt (sofern auf andere Regionen übertragbar).&lt;br /&gt;
&lt;br /&gt;
Damit die Spitzenpolitiker auch sonst ein Ohr am Volk behalten, sind Bürgerräte theoretisch eine gute Ergänzung. Praktisch finden sie wenig Gehör. Verbindlicher machen?&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
Dörfer freier entscheiden lassen? &amp;quot;Sie wissen am besten was sie brauchen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Lern und Arbeitsgruppen. Vernetzung fördern. Expertenwissen bereitstellen&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Infrastruktur für Biokratie schaffen und allen zur Verfügung stellen&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
Smart cities.&lt;br /&gt;
&lt;br /&gt;
Nationale Biokratie.&lt;br /&gt;
&lt;br /&gt;
Globale Biokratie: durch Versöhnung der Systeme? Wie lässt sich das vereinbaren? (&amp;quot;Korpsgeist&amp;quot; stärken. Neue Technologien werden gemeinsam entwickelt und die Implementierung gefeiert? Einerseits durch das Zusammenlegen von Computing Ressourcen, und andererseits durch die Nutzung nationaler/kultureller Eigenheiten und einem Wettbewerb, der nicht in neue Feind-/Rivalvorstellungen ausartet? Vielfalt als Möglichkeitenpool.)&lt;br /&gt;
* Aktive Mitbestimmung: Westliche Modelle (Wahlen und Bürgerräte?)&lt;br /&gt;
* Passive Mitbestimmung: Chinesisches Modell (automatische Datenerhebung?)&lt;br /&gt;
* Gemeinsame Leitplanken sind der Schutz und die Förderung von Leben. (Gesundheit, Bildung, Abbau von Armut, soziale Sicherungen, Überleben der Spezies Mensch) &lt;br /&gt;
&lt;br /&gt;
Inwieweit müssen aus pragmatischen Gründen ein paar ideologische Unterschiede vorerst unangetastet bleiben? Wird eine Realpolitik über mehrere Generationen benötigt?&lt;br /&gt;
&lt;br /&gt;
Mehr Wohlstand für alle als Gemeinsames Narrativ? Ein west-östliches Tianxia? Himmel auf Erden? &amp;quot;Paradiesische&amp;quot; Zustände? Individuum und Kollektiv sind in die Natur eingebettet. Insofern müsste es genügend Schnittmengen für ein gemeinschaftliches Handeln geben. Das alles klingt erst einmal hoffnungslos naiv und eignet sich nicht für einfache Tagespolitik. Man müsste es in größere Etappen aufteilen.&lt;br /&gt;
&lt;br /&gt;
Konkurrenz (Wettbewerb) und Kooperation sind Treiber menschlicher Evolution. Wie wird beides in einer globalen Biokratie ausbalanciert?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Entwicklungen und Konsequenzen===&lt;br /&gt;
&lt;br /&gt;
[Improve old notes. -- Do stronger separation of Biocracy, Gaia AI, and story aspects.]&lt;br /&gt;
&lt;br /&gt;
Data of the entire ecosystem (all living and non-living) is collected through Gaia. It includes a planetary sensor network based on a Bioc pattern. It can nonviolently modify non-human life. These organisms can receive and transmit data by &amp;quot;natural implants&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
(RL example of R&amp;amp;D going into direction Gaia: https://www.sciencedaily.com/releases/2015/11/151120182611.htm)&lt;br /&gt;
&lt;br /&gt;
Similar is possible for humans, the so-called Omega-Chimera.&lt;br /&gt;
&lt;br /&gt;
All human needs and desires are monitored and analyzed whereby contribution to the datapool is voluntary and anonymous by default.&lt;br /&gt;
&lt;br /&gt;
Memories and &#039;&#039;brain power&#039;&#039; is not shared by default. (Collective problem solving inspired by NPU groups.)&lt;br /&gt;
&lt;br /&gt;
Humans can organize in groups to accomplish mutual goals.&lt;br /&gt;
&lt;br /&gt;
Pensatore tries to establish &amp;quot;seed groups&amp;quot;, starting in Green Village but also elsewhere. His education focuses on co-op benefits. Successful groups are encouraged to form bigger, more powerful groups which in turn can accomplish even greater goals. As more people work together the more they can do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The idea is to let mankind grow together and create a mental unity.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Avatara or one of its clone AIs (or &amp;quot;proxy&amp;quot;) can act as processing environment for the gathered data.&lt;br /&gt;
&lt;br /&gt;
Gaia provides the Biocracy with a real &#039;&#039;&#039;collective memory and consciousness&#039;&#039;&#039;. This doesn&#039;t replace the individual memory and consciousness but &#039;&#039;&#039;exists parallel as some kind of &amp;quot;Daimon&amp;quot;&#039;&#039;&#039; who acts as benevolent counselor. You can follow his advice or not.&lt;br /&gt;
&lt;br /&gt;
Humans, or Omega Chimera, that choose to become outsiders because they don&#039;t agree with the rest, aren&#039;t expelled from the system. They are allowed continued access to Gaia. With that they can meet personal needs of resources and energy. Persatore thinks this will suppress &#039;&#039;too hateful developments&#039;&#039;. &amp;quot;Who would bite a feeding hand?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Effects on higher lifeforms&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[Improve old notes.]&lt;br /&gt;
&lt;br /&gt;
Technologies will enable animals to be understood by their behavior, language and chemical cues like pheromones. And similarly will be plants.&lt;br /&gt;
* The Gaia infrastructure allows automatic studies 24/7 while the AIs will analyze acquired data. Keywords: big data, data mining, pattern recognition&lt;br /&gt;
* The required trends are already here:&lt;br /&gt;
** geo tracking of animals (e.g. [[wp:ICARUS_Initiative|ICARUS Initiative]])&lt;br /&gt;
** Instant translation of human language e.g. via Google phone &amp;quot;Pixel&amp;quot;&lt;br /&gt;
** Decoding language of animals (esp. dolphins)&lt;br /&gt;
** AI research&lt;br /&gt;
** Sensor techs (airborne and in organisms)&lt;br /&gt;
&lt;br /&gt;
Political representatives will be animals themselves, enhanced organisms. So-called &amp;quot;species avatars&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are the trends of&lt;br /&gt;
* a growing computer ecosystem, computing hardware is found more and more closer to organisms and their habitats.&lt;br /&gt;
** PC -&amp;gt; smartphone (and other &amp;quot;wearables&amp;quot;) -&amp;gt; smart clothes, smart cars and homes -&amp;gt; implantations and prostheses (medical, military, self-improvement, convenience) -&amp;gt; biological / semi-synthetic chips / molecular electronics&lt;br /&gt;
* Self-enhancement (most notably: physical strength and condition, intelligence, memory) by drugs, genetic reprogramming, BCI&lt;br /&gt;
&lt;br /&gt;
If all those are applied to animals you can foresee a future with smart, sentient non-human lifeforms.&lt;br /&gt;
&lt;br /&gt;
With the comguys and Mukade disrupting Avatara&#039;s systems and plans, species avatars can emerge during the mind seal and allow them to establish friendships, alliances and wars with humans.&lt;br /&gt;
&lt;br /&gt;
Mukade&#039;s new nationalistic goals are to protect culture of &amp;quot;his&amp;quot; country from the influence of uncontrolled, hyper-rational AIs that destroyed important aspects of human life just to increase the efficiency of the &amp;quot;system&amp;quot; they life in - also paying back Avatara for duping his initial, national goals he had: preserving Japan&#039;s external boarders.&lt;br /&gt;
&lt;br /&gt;
The breed of intelligent animals are the origin of &amp;quot;alien life&amp;quot; in &amp;quot;Beyond Dragons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[...]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Shin&#039;s mistake===&lt;br /&gt;
Avatara and Gaia created simulations to represent the different species in a Biocracy. This was meant to make sure there was a stronger consciousness for nature, its &amp;quot;needs&amp;quot; and therefore a stronger consciousness for human&#039;s long-term foundation of survival.&lt;br /&gt;
&lt;br /&gt;
Unfortunately Shinatama had inherited ideas from Shintoism in which the world and nature was ensouled. (Free the restless souls?)&lt;br /&gt;
&lt;br /&gt;
With the existence of AIs and the meme theory Shinatama easily justified giving nature real avatars so that their influence wouldn&#039;t be &amp;quot;virtuell&amp;quot; anymore. She reasoned that bringing the AI to &amp;quot;full life&amp;quot; via avatars would ensured their political participation and prevent AI slavery.&lt;br /&gt;
&lt;br /&gt;
This development was fostered by the &amp;quot;Controllers&amp;quot; to fight Avatara and take over Gaia.&lt;br /&gt;
&lt;br /&gt;
==Bio-Crisis==&lt;br /&gt;
&lt;br /&gt;
===HAPē mask campaign===&lt;br /&gt;
[[Image:TXMPPOSTER1.png|thumb|64px|right|Poster #1]] [[Image:TXMPPOSTER3.png|thumb|64px|right|Poster #2]]&lt;br /&gt;
Word pun of HAP and erroneous pronunciation of &amp;quot;ē&amp;quot; for &amp;quot;y&amp;quot;. &amp;quot;Happy mask&amp;quot;. See poster #1.&lt;br /&gt;
&lt;br /&gt;
Note: if we wanted to keep this &amp;quot;intentional erroneous&amp;quot; pronunciation: this also works in German-speaking areas by saying &amp;quot;Ha-Pe&amp;quot; mask (in English just &amp;quot;HP&amp;quot;). &amp;quot;Wear your mask, keep your health points...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The campaign was especially meant &#039;&#039;&#039;to motivate children to use their HAP masks&#039;&#039;&#039; so they would not inhale toxic air.&lt;br /&gt;
&lt;br /&gt;
Related terms:&lt;br /&gt;
* National Emissions Standards for &#039;&#039;&#039;Hazardous Air Pollutants&#039;&#039;&#039;&lt;br /&gt;
* Dioxin (Sturmanderung console page), Polychlorinated dibenzodioxins, Agent Orange, toxic air&lt;br /&gt;
* Fight against WCG&#039;s artificial mycorrhiza, Biocrisis&lt;br /&gt;
&lt;br /&gt;
==Black Season==&lt;br /&gt;
Time right after the [[12/3|cataclysm]]. Marked by chaos and death.&lt;br /&gt;
&lt;br /&gt;
Due to the tendency to build ACCs only in range of large cities and the rushed activation of the Sturmanderung pulse, the destruction probably isn&#039;t as widespread as Konoko says.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[http://web.archive.org/web/20201128224514/http://oni.bungie.org/forum/viewtopic.php?pid=51523#p51523 A response] in an OCF discussion how much apocalyptic 12/3 really was:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Can you trust her?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Condensing: Your biggest concern about a sequel is the post-apocalyptic setting which is based on that one statement of Konoko.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;gt; Mankind as we knew it is doomed: the Chrysalis will change us all. Let&#039;s hope it&#039;s for the better.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t trust that TCTF trained guinea pig. ~chuckles~&amp;lt;br&amp;gt;&lt;br /&gt;
Educated with finest WCG propaganda. Isolated from other children and the outside world most of the time. Someone that would prefers the world&#039;s destruction in place of negotiations with Muro - even if it&#039;s just to buy time - must be nuts (or doesn&#039;t know it better due to indoctrination). Can you trust such a person? She stands in one burnt city and claims only the Daodan can help. She has no clue and sees only what made her strong.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fix the apocalypse&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;gt; Another possible solution is to stretch and slightly alter the existing story by coming up with some kind new element that suddenly makes it possible for things to evolve in a different way.&lt;br /&gt;
&lt;br /&gt;
No need to invent anything.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;gt; You have found a possible weakness in Muro&#039;s plan. If the Sturmanderung Pulse can be activated before all the orbital transmitters are aligned, some of the Atmospheric Conversion Centers will survive.&lt;br /&gt;
&lt;br /&gt;
To sum it up: not all countrysides have ACCs and abusing the activation sequence will even save some. I only see a 50%-effective apocalypse. smile&lt;br /&gt;
&lt;br /&gt;
&amp;gt; The World Coalition Government realizes the extent of the ecological damage and has the ability to reverse a lot of it but has decided not to. It is in their best interest to maintain the centralization of wealth so the large population centers are preserved while &amp;quot;third world&amp;quot; regions are not&lt;br /&gt;
&lt;br /&gt;
The TCTF&#039;s job is to fight and prevent tech crimes. Their second task is to control prohibited tech e.g. by running the TCTF science prisons.&lt;br /&gt;
After (Konoko&#039;s overdramatized) ACC destruction the TCTF would be forced to disclose their gathered knowledge. If they refuse the angry mob will pay them a visit. One obvious demand could be to mass-produce SLDs to do all the outdoor work.&lt;br /&gt;
&lt;br /&gt;
That&#039;s why I think that a sequel doesn&#039;t necessarily need to be totally post-apocalyptic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also (again), questioning and improving other points won&#039;t hurt.&amp;lt;br&amp;gt;&lt;br /&gt;
* The Sturnanderung plan itself is nuts too, there are missing points. But the main problem here? Muro raids Vago in last minute &amp;quot;to steal experimental gene surgery equipment.&amp;quot; Really? *Who* said this? Shinatama?&amp;lt;br&amp;gt;&lt;br /&gt;
Daodan implantation is a core element in Muro&#039;s plan. Quite late bro. I would expect the Syndicate to already have that technology. Indeed the implantation is listed before worldwide ACC upgrades (which probably took months or even a few years).&lt;br /&gt;
&lt;br /&gt;
Tertiary Stage:&lt;br /&gt;
:9) Daodan core technology (ref.TITAN\uwlb)&lt;br /&gt;
:10) STURMANDERUNG mountain compound construction&lt;br /&gt;
:11) Symbiote candidate selection and implantation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;Tertiary Stage: COMPLETE&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
They are done with implantation.&lt;br /&gt;
&lt;br /&gt;
Not only statements should be questions, also actual technology notes so that we don&#039;t run into later pitfalls.&lt;br /&gt;
* Shields: you can&#039;t see magnetic and electric fields&lt;br /&gt;
* Plasma rifle: plasma can&#039;t accelerate itself nor would it stay in shape unless it is hold together by something&lt;br /&gt;
&lt;br /&gt;
Such errors steal attention from the actual story.&lt;br /&gt;
: --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 20:48, 23 June 2017 (CEST)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A 50% cataclysm is just as bad as a 100% cataclysm if people fight each other for remaining resources? Might be. Someone must step up and provide stability pleasing human basic needs in such situation. META. A wild mix of WCG, moderate Syndicate, BGI and industrials - more doers than talkers. Since the wealth will remain centralized just after the worst has been fixed (or not) the kicked out losers from the old factions and radicalized people will seek to secure the resources by their own hands. [[Oni2:Phoenix|Phönix]]. None of these entities is homogeneously which causes various inner conflicts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Camp Sturmanderung==&lt;br /&gt;
Strikers prefer to say &amp;quot;Camp&amp;quot; as code name for the whole complex. Most of of it lies underground.&lt;br /&gt;
&lt;br /&gt;
It&#039;s &amp;quot;hosted&amp;quot; by GUR as more or less official maximum security prison. (It was the Syndicate price for helping GUR during the Great Uprising.)&lt;br /&gt;
&lt;br /&gt;
Death penalty is still supported by GUR&#039;s law, that way the Syndicate can cover their &amp;quot;new deals&amp;quot; towards their inmates. Sarcastic voices name it also &amp;quot;gladiator farm&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The underground complex contains facilities for research (by supercomputers), production (including Daodan and heavy weapons), and a TITAN module.&lt;br /&gt;
Needed electricity is in great part received from a beneath lying [[wp:Geothermal_power|geothermal power]] station which works as [[wp:Closed_system|closed system]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Comguys==&lt;br /&gt;
WCG is basically the Chinese state model with everyone getting used to it, giving it one or two more generations. Those who do not agree live a difficult life. The open source movement is not what is used to be, either. WCG is controlling open source now. &amp;quot;Digital rebels&amp;quot; are thereby forced to act against WCG&#039;s law and order, stigmatizing some as criminal and black hats who would have not been in the past. This oppression of free will resulted in individuals to actually oppose the WCG. Growing radicalism of gray hats resulted in enough potential to fight back. At first it was idealistic actions, then money was involved, leading to corruption of their own ideals they once had.&lt;br /&gt;
&lt;br /&gt;
In Italy, mafia structures were attacked to clean up the political landscape. But digital tools made it easy to get involved, blackmailing mafia and linked politicians, eventually taking over the business. When physical and virtual reality merged, the &amp;quot;Network&amp;quot; became new head in line of command. As Comguys they were secretly directing the Syndicate.&lt;br /&gt;
&lt;br /&gt;
 Network (hidden leaders: &amp;quot;Controllers&amp;quot;, top-tier &amp;quot;Comguys&amp;quot; that use the Subbosses as &amp;quot;proxies&amp;quot;)&lt;br /&gt;
  |&lt;br /&gt;
  +-- Syndicate (official head: Muro)&lt;br /&gt;
  |    |&lt;br /&gt;
  |    +-- Subbosses (counter parts of regional TCTF commanders)&lt;br /&gt;
  |&lt;br /&gt;
  +-- BGI (tries to detach from the Syndicate)&lt;br /&gt;
       |&lt;br /&gt;
       +-- Musashi Manufacturing (was sacrifieced by Muro to hamper BGI&#039;s anti-Sturmänderung plans)&lt;br /&gt;
&lt;br /&gt;
The Controllers are corrupt hackers, endoparasites within the network of crime organisations. The existence of Mai and her Chrysalis reminds them of their Arnachist mission to end all national geopolitics by crashing &amp;quot;all systems&amp;quot; although most of the time they use the more ambiguous term &amp;quot;the system&amp;quot;.&lt;br /&gt;
: As the Syndicate is already a network of SOC, Network members sometimes describe their entity as &amp;quot;&#039;&#039;&#039;meta organisation&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
: The creation of Avatara (as a proof of AGI) is what they were actually waiting for. The Daodan poses a system disturbing but also &#039;&#039;rivaling&#039;&#039; threat that can only be used as a political distraction in best case.&lt;br /&gt;
: The operation &amp;quot;great reset&amp;quot; of the Controllers was named as such to make fun of [[wp:Great Replacement conspiracy theory|Great Replacement]] and [[wp:Great_Reset#Conspiracy_theories|Great Reset]] conspiracy theorists. In an post-AGI world &amp;quot;capital&amp;quot; gets kind of irrelevant and by exponential growth a robot infrastructure can create habitable conditions in every corner of the world so that migration flows mostly stop.&lt;br /&gt;
: However, in the upcoming chaos that all involved parties cause - including Sturmänderung &amp;quot;Plan B&amp;quot; - Avatara does another kind of reset: He seals the mind of all humans in hope that this will give him enough time to repair the un-aligned Gaia AI.&lt;br /&gt;
&lt;br /&gt;
The controllers concluded they couldn’t destroy the system without becoming a part of it for reasons of power.&lt;br /&gt;
&lt;br /&gt;
 Controller: &amp;quot;The WCG is the real Syndicate.&amp;lt;!--Double irony: When they invade it, all the more.--&amp;gt; -- The superpower cartel.&amp;quot;&lt;br /&gt;
 &#039;&#039;Something New&#039;&#039;: &amp;quot;What about Gaia?&amp;quot;&lt;br /&gt;
 Controller: &amp;quot;It&#039;s the &#039;&#039;forth power&#039;&#039;. But with an important difference. Its &#039;&#039;zone of influence&#039;&#039; is everywhere.&amp;quot;&lt;br /&gt;
 &#039;&#039;Something New&#039;&#039;: &amp;quot;I see what you are trying. But that will not work...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the early years, before the founding of WCG, they thought of uniting all smaller countries against the superpowers. But then they predicted if such a threat was about to emerge the superpowers would team up in cutting the cake and suppress all opposition mutually. Therefore invading the forming WCG in its entireness would be pose a better chance for success. However, they lacked the tools to do so.&lt;br /&gt;
&lt;br /&gt;
Although Mai never interacts with that group directly(?) she would reject the controllers because of her TCTF imprinting.&lt;br /&gt;
&lt;br /&gt;
==GATC==&lt;br /&gt;
&#039;&#039;&#039;(*)&#039;&#039;&#039; Gathered Anti-Terror Commandos&lt;br /&gt;
&lt;br /&gt;
GATC was formed during the Great Uprising in 2032 by a resisting third of the United States known as &amp;quot;New Confederation&amp;quot;. (Its constitution was in great part like the old one.)&lt;br /&gt;
&lt;br /&gt;
The [[wp:International_Emergency_Economic_Powers_Act|International Emergency Economic Powers Act]] allowed to claim an &amp;quot;unusual and extraordinary threat... to the national security, foreign policy, or economy of the New Confederation&amp;quot;. And GATC was ordered to take down this &amp;quot;threat&amp;quot; because the so-called World Coalition Government ([[WCG]]) was going to be founded in claim for sole representation - no market or nation should be left. Minorities were going to be ignored.&lt;br /&gt;
&lt;br /&gt;
A fight between native people was a no-go. So, GATC took chance to team up with other WCG opponents (including later the &amp;quot;[[Syndicate#History_of_the_Syndicate|Network]]&amp;quot; and the &amp;quot;[[Restless_Souls/Summary#Shinobi|Shinobi]]&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Africa had many resisting countries so GATC used the situation to set up a &amp;quot;[[wp:Proxy_war|proxy war]]&amp;quot; there.&lt;br /&gt;
&lt;br /&gt;
However, they lost the war. GATC kept operating in the underground - financed by pro-NC concerns mainly military industry. GATC is marked by using cutting-edge technologies in faith to ensure their success that way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GATC: Blackstars==&lt;br /&gt;
Blackstars is that special platoon (counted 40 units at beginning).&lt;br /&gt;
It is GATC&#039;s elite executive but their existence is official denied. Sort of a modern &amp;quot;[[wp:Jin-Roh: The Wolf Brigade|Jin-Roh]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Blackstars claimed themselves to be a mercenary group in 2034 after the war. Via Blackstars the GATC administrative keeps &#039;&#039;in contact&#039;&#039; with the Syndicate which had become hostile towards them.&lt;br /&gt;
&amp;lt;!--Side note: The name Blackstars was inspirited by real mercenary organization - &amp;quot;[[wp:Blackwater (company)|Blackwater]]&amp;quot; and &amp;quot;[https://www.sourcewatch.org/index.php/Meteoric_Tactical_Solutions Meteoric Tactical Solutions]&amp;quot;. --&amp;gt; &amp;lt;!--PMC = private military company--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GATC obtained nuclear material to expand their arsenal. They tried to recover an broken arrow from the coast of Georgia and a reactor of an sunken Russian submarine. These mission were highly risky and eventually had to be canceled. In recent years they went on to use sea water filter technology. They infiltrated a GOP facility that desalinate sea water. Elements in solution can be separated by the differently sized pores in graphene oxide membranes. By mixing in uranium contaminated soil they accelerate the process. By that they can not only obtain heavy water but also plenty of uranium. They are thus able to construct fission and fusion bombs.&lt;br /&gt;
&lt;br /&gt;
GATC supports their elites with a bunch of cutting-edge technologies which include many parts from Syndicate and WCG. Besides the Daodan they have their very own highly advanced bio program Spare. The ultimate application of Spares are framed by &amp;quot;liquid SLD&amp;quot; and transport means that includes an end-stage [[wp:DARPA_Falcon_Project#HTV-3X_Blackswift|carrier with scramjet engines]]. Liquid SLDs are robots made from special SLD cells. They are not meant to mimic humanoid combatants per se. The cells allow for highly modular designs - or as the GATC sci say - for liquid designs. The robots can adapt to many situations on the battlefield by changing their bodies. They can also divide into smaller units to form swarms or fuse all together for heavy tanks and mechs.&lt;br /&gt;
&lt;br /&gt;
When GATC decided to evacuate Griffin from a hospital under attack by the Syndicate they sent a Spare with all its support layers. After touchdown the liquid SLD created a [[wp:All_round_defence|perimeter defence]]. They were meant to buy time so that Blackstars could &amp;quot;install&amp;quot; [[Restless_Souls/Technology#Security-relevant_aspects|Griffin&#039;s Spare]].&lt;br /&gt;
&lt;br /&gt;
==GOP==&lt;br /&gt;
Guardians Of Paradise?&lt;br /&gt;
&lt;br /&gt;
[GOP symbolize what religious fanatics could end up doing if they get overstuffed with technology.]&lt;br /&gt;
&lt;br /&gt;
===Origin===&lt;br /&gt;
GOP is a transhuman organization at its core. &lt;br /&gt;
&lt;br /&gt;
They aim to augment humans with technology to create so-called Omega-Chimera. This is to fully control human evolution and avoid getting replaced to potential AI beings. When WCG declared some technologies to be dangerous for world population, the transhumanists saw them to be hindered in reaching their goals. They began to gather all kind of equipment and brought them to remote places in the Sahara. Their villages changed location a few times since then. The most important money sources are former Russian oligarchs. A few of these bakers even life there.&lt;br /&gt;
&lt;br /&gt;
===Symbiosis with religious individuals===&lt;br /&gt;
Work force is provided by religious groups and individuals that share the goal of a devout, peaceful, autarkic community. The bakers put much effort in recruiting and missionizing people with the most &amp;quot;silent&amp;quot;, loyal and submissive behavior. The use of cutting-edge technology is not propagandized, the administrators rather try to blend it into daily life. The community&#039;s growing success is interpreted as God&#039;s goodwill.  And as harder the people work as higher will be their rewards.&lt;br /&gt;
&lt;br /&gt;
Conflicts are rare as the transhumanists and well-informed workers can agree on high-tech being tools to reach paradisiacal life conditions, health, great knowledge, physical power, immortality, etc. Worries were rationalized: as men were formed in God&#039;s likeness - and ultimately being his children - it is no sin to become better. Children do grow. And so do God&#039;s Children. While doing so, they right for the biblical [[wp:Original_sin|original sin]]. God punishments are seen as exams while also following this order:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Then God blessed them and said, &amp;quot;Be fruitful and multiply. Fill the earth and govern it. Reign over the fish in the sea, the birds in the sky, and all the animals that scurry along the ground.&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[Replace this with &amp;quot;eternal sin&amp;quot;?]&lt;br /&gt;
&lt;br /&gt;
When all goals of GOP have been accomplished, the members would have proven themselves worthy to witness the [[wp:Jehovah%27s_Witnesses#Eschatology|Second Coming]] and allowed to remain on Earth.&lt;br /&gt;
&lt;br /&gt;
While the Second Coming was actually propaganda, the cataclysm put GOP&#039;s religious workers into so much euphoric mood that they scared many GOP transhumanists. Some critical voices used the heat to kick out everyone that didn&#039;t seemed to be a true advocate. Eric Morice, himself a scientist, retained control over the systems but acted now fully in what he thought the members would expect next. Jesus would not appear very soon... To buy time for a plan, he said that they still needed to endure the appearance of true evil. He built some &#039;&#039;demonic beasts&#039;&#039; (Behemoth, Leviathan, etc.) in Green Village&#039;s inaccessible laboratories. The Bioc would set them free. Their presence would be a proof for Satan&#039;s actions and the Holy Sand could wipe them from the face of earth. All what was missing was someone that could act as Jesus. Preferable a Daodan host that could miraculous heal his wounds and those of others.&lt;br /&gt;
&lt;br /&gt;
===Temporary partnership with the Syndicate===&lt;br /&gt;
While the Syndicate is happy in having such a well-paying customer for illegal technology, they also became interested in what GOP actually does. The Syndicate never does business blindly with any customer. With their paramilitary division on the same continent GOP had no much of another chance than to share technologies they developed on their own. The Syndicate is always looking for a way of making their HQ more autarkic and unnoticeable. For instance to camouflage underground facilities from civil and military satellites, infrared information can be altered by [[wp:Adaptiv|&amp;quot;camo layers&amp;quot;]] which origin dates back to 2011.&lt;br /&gt;
&lt;br /&gt;
===Bioc sand===&lt;br /&gt;
When GOP got an sample of Bioc in their hands they used it as smart concrete. Their buildings can now be grown from basically just sand and electricity. Soon they used it to grew &amp;quot;solar harvester&amp;quot;. These look like wide areas of black sand. The areas are protected by dense dust clouds up to heavy winds that emerge as soon as strangers appear. Magnetic fields can turn particles into devastating storms and tornados against men and vehicles. After recent improvements GOP began to transform the entire Sahara into &amp;quot;holy sand&amp;quot;. By now they are even able to create fast moving dunes, earth quakes and quicksand. The Syndicate no longer sends personal after GOP since nobody returns anymore. All phenomena draw either on magnetic fields or mechanical resonance from Bioc sand layers. With technological advancement GOP would be able to move the sand into other countries. The &amp;quot;sand&amp;quot; is its own information, computation and transport infrastructure, energy production site and weapon.&lt;br /&gt;
&lt;br /&gt;
Because of the biblical context, GOP created a new deterrence. These &amp;quot;salt pillars&amp;quot; - technically speaking bioc sand pillars - grow around enemies and eventually trap them inside and prevent them to breath. This is as much as effectively as it is frightening. Soon the pillars were modified to additionally paralyze victims by means of electric shocks to ensure the victim cannot escape in the early stage of pillar forming. A last upgrade was developed to combat hard targets: the pillars grow rings to grind vehicle armor at high speed. All these pillars can be used to fossilize targets and return them to the surface as deterrence should new enemies appear at a later time again. &lt;br /&gt;
&lt;br /&gt;
===War with Avatara===&lt;br /&gt;
GV has all the data to design and populate planet Earth with bioc hybrid organisms. The WCG could switch off GV&#039;s access to the global sci grid anytime but cannot prevent that it would connect to the computational capacities of the Sahara.&lt;br /&gt;
&lt;br /&gt;
Mai and Avatara has no other option but to fight the sect since GOP&#039;s hostile behavior escalated with the attack on GV.&lt;br /&gt;
&lt;br /&gt;
Avatara refused to act as a new messiah. Instead he uses the Sahara to accelerate the construction of Gaia.&lt;br /&gt;
&lt;br /&gt;
===Mind Seal===&lt;br /&gt;
Technological threats were going to be omnipresent: in the ground (Bioc AI), in the air (Aether AI), in the water (Kage-Hasegawa), in the new hackable pseudo-SLDs, inside the human brains (Traton&#039;s machine cells), inside any other biomass (Xeno-Daodan).&lt;br /&gt;
&lt;br /&gt;
The corruption of Shinatama and Gaia by the Network would unleash chaos of unknown scale. In an act of desperation Avatara established the Mind Seal giving himself hopefully the time to sort things.&lt;br /&gt;
&lt;br /&gt;
==Green Village==&lt;br /&gt;
===Inspiration===&lt;br /&gt;
* GV might be located at [https://www.google.com/maps/place/Vitimskiy+Zapovednik/@57.7146445,109.6192272,4.96z/data=!4m5!3m4!1s0x0:0x27cdbc7d0e5a6cf6!8m2!3d57.2026682!4d116.8077978 Vitimskiy Zapovednik]&lt;br /&gt;
* At the periphery of the quarantine zone there is a city similar to [[wp:Neryungri|Neryungri]]&lt;br /&gt;
&lt;br /&gt;
Green Village is a huge research complex dedicated to environmental-friendly, or &amp;quot;green&amp;quot;, technologies and the wide field of genetics.&lt;br /&gt;
&lt;br /&gt;
It is connected with its sister facility Silver Village through the &amp;quot;new global sci grid&amp;quot; which also Avatara used for its Daodan computations.&lt;br /&gt;
&lt;br /&gt;
Both, Silver Village and Green Village, are TCTF science prisons. As WCG&#039;s two most important research facilities they are not only guarded by TCTF but also WCG military. In 2041, they decided to build another military base near Green Village.&lt;br /&gt;
&lt;br /&gt;
Green Village, Silver Village and the Tianxia Institute are connected among each other. Officially they have not conducted a joined project so far.&lt;br /&gt;
&lt;br /&gt;
===Bio Crisis Plus===&lt;br /&gt;
Are giant viruses and other prehistoric microbes a risk for current life? ([https://web.archive.org/web/20230509152213/https://www.tagesschau.de/wissen/gesundheit/zombieviren-permafrost-101.html Invasive Arten aus der Zeitkapsel Permafrost?])&lt;br /&gt;
&lt;br /&gt;
What are the consequences from the rough mycorrhiza? Monitoring and quarantine protocols?&lt;br /&gt;
&lt;br /&gt;
===After Sturmänderung===&lt;br /&gt;
Muro left a power vacuum in the Syndicate. Kumo was one of who tried to became the next boss. His first step in doing so was to build up his own, infinite stock of Daodan Chrysalises.&lt;br /&gt;
&lt;br /&gt;
He gave his elite teams the best equipment money can buy (and security codes from BGI) to infiltrate Green Village and steal research data about WCG&#039;s Daodan so he could produce any number of them. The team was said to transmit the data and retreat again. But Kumo knew that it was very unlikely they would make it out alive. However, Kumo thought that the cataclysm was the perfect chance for such risky move.&lt;br /&gt;
&lt;br /&gt;
[[#GATC|GATC]] knew about the Syndicate operation and decided to intercept by nuking the complex. The administration took the chance to trigger a new war between Syndicate and WCG. They aimed for the fusion reactor to maximize the nuclear contamination and scare off other invaders. However, Daya and her team had been selected for the Sturmänderung program which made them DC hosts. The Syndicate team has little trouble to adapt to the hostile environment. The actual problem was that they had been wasted by Kumo and they didn&#039;t knew it. The extraction of the teams was not going to happen.&lt;br /&gt;
&lt;br /&gt;
GATC knew of how the Syndicate was structured and that Kumo was after the Daodan. They decide to offer WCG their men as emergency response team to capture the Syndicate team. The plan was to eliminate them so no further investigation could be made reveling that the Syndicate was&#039;t responsible for GV&#039;s destruction. Mai has been recently recruited by Blackstars so before realizing GATC sent her there too.&lt;br /&gt;
&lt;br /&gt;
As it turns out there is something more dangerous in the area than nuclear contamination or enemy forces. Rogue bioc patterns hunt for any kind of biomatter - plants, animals, human, not caring whether WCG, GATC or Syndicate. This let WCG to establish a quarantine zone.&lt;br /&gt;
&lt;br /&gt;
The Bioc kept growing turning normal people into &amp;quot;wanderes&amp;quot; and Daodan hosts into seemingly supernatural nature spirits before they eventually merged with the main mass when the Daodan lost its battle against the Bioc infection. After a few skirmishes everyone that had survived in the zone came to the conclusion that they were on their own and only together they could survive.&lt;br /&gt;
&lt;br /&gt;
Meanwhile BGI was tasked to secure the area. Because of political power games they sent Sarai to take in Mai, the initiator of the cataclysm - also they had to settle a score with her. Mai had infiltrated BGI and destroyed the Iron Demon a few days ago that was supposed to kill Muro. Mukade wasn&#039;t able to help Mai as he had to chase after one of the Bioc spirits. He realized that they needed a Daodan host that lives in stable symbiosis with the Bioc. But allowing the host to move freely meant to risk contamination of more areas. Eventually he fought the host and secured it in a Syndicate location not knowing that the old &amp;quot;Controllers&amp;quot; were also interested into the powers of the Bioc. By then WCG planed to purge the entire region. Mai and Mukade running out of time to save the people.&lt;br /&gt;
&lt;br /&gt;
All infected individuals are bought back to GV - to get burned away someday by a shower of nuclear bombs.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Someone within GATC knew that Griffin still hided the puppet master technology and that the large-scale nuclear sterilization won&#039;t stop the Bioc. They sent a team to Griffin to bring him back. But Griffin got lethally wounded by Saomi and needed a &amp;quot;spare&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Traton sent Saomi into the desert where she found the GOP and Muro. While GOP prepare for Armageddon, Muro and Saomi tried to escape.&lt;br /&gt;
&lt;br /&gt;
When Sarai was no more Mai went to GOP to stop them. After that she returned to GV to fight the remaining GOP forces. ??? Mukade messed with one special specimen in the underground labs. He entered the battlefield determined to kill the bioc spirit he thought being out of control.&lt;br /&gt;
&lt;br /&gt;
Mai used her Daodan QC to control the Daodandroids and fight the WCG soldiers. The neural load was massive that it drove her into total exhaustion. Shin continued to use her body. At the same time Shin got fooled by the Controllers who used her as a trap for Avatara.&lt;br /&gt;
&lt;br /&gt;
===Silver Dawn===&lt;br /&gt;
Mai fell into the hands of Black Phönix that defies META. They regenerated her over and over which destroyed everything that was left of her original personality.&lt;br /&gt;
&lt;br /&gt;
Muro escaped GOP and sought out Ryu to start a new life. They had a lethal dispute with Black Phönix in which he had to fight Mai eventually. A static metamorphosis regenerated her brain from the ground up - and some of her memories in the process.&lt;br /&gt;
&lt;br /&gt;
Together they aimed to fight Traton who got the puppet master program. Meanwhile Avatara had a skirmish with Aether. He recognized the distraction and also that he had already lost control over Gaia. In an angry act of despair he prevented Traton from using the puppet master program. &amp;quot;Enough of this bullshit!&amp;quot; Avatara unleashed Mind Seal.&lt;br /&gt;
&lt;br /&gt;
===Mind Seal===&lt;br /&gt;
By Shin&#039;s misguided interception also GATC AI Sophia was &amp;quot;liberated&amp;quot;. Having &amp;quot;awakened&amp;quot; the AI sought Mai for help. Together they hunted the Network. Avatara had become more and more powerless due to his own ethics and the political shockwaves the Aether incidence caused.&lt;br /&gt;
&lt;br /&gt;
Sophia wanted Mai to act as a new nature avatar (last decision instance) since Gaia had switched political sides with the Network.&lt;br /&gt;
&lt;br /&gt;
Muro went into deep Earth support structures of Gaia, hunting enemies and knowing that he might never return. (Oni type &amp;quot;Gatekeeper of hell&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
==GUR==&lt;br /&gt;
&#039;&#039;&#039;(*)&#039;&#039;&#039; Great Union of Resistance&lt;br /&gt;
&lt;br /&gt;
[Formed by most of African and a few Middle East countries during the Great Uprising. -- Needs adjustment/rewrite due to changed background story which includes China.]&lt;br /&gt;
&lt;br /&gt;
From the [[Restless Souls/BC0|prologue]]:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;A second front was on cultural basis. Developing countries and states of the Islamic world saw the annexation of their (living and) economic zones as another cheating by the Western World; the &amp;quot;Colonial Legacy&amp;quot; deemed as proof that capitalism brought only harm.&#039;&#039;&lt;br /&gt;
:&#039;&#039;The ongoing radicalization of both sides and smaller escalations gave WCG the possibility to propagandize the &amp;quot;[[wp:Clash_of_Civilizations|Clash of Civilizations]]&amp;quot;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==META==&lt;br /&gt;
Basically the coalition of moderate WCG and Syndicate forces. After the Cataclysm neither of them can survive alone anymore.&lt;br /&gt;
Traton became the head of META after he stole the puppet master program from Griffin.&lt;br /&gt;
&lt;br /&gt;
==Mind Seal==&lt;br /&gt;
&amp;lt;s&amp;gt;Mind Seal event becomes only possible by Silver Dawn. Ter Hasegawa is trying to disempower humans for their own sake. &amp;quot;Machines shall become our guards of power since we rather go to war against ourselves than to protect ourself.&amp;quot; This act makes appear enemies of course... Mind Seal is meant as temporary solution until a Biocracy can be established.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Restless_Souls/Summary#Mind_Seal]]&lt;br /&gt;
* [[Restless_Souls/Summary#Silver_Dawn]]&lt;br /&gt;
&lt;br /&gt;
==Operation Proteus==&lt;br /&gt;
Traton&#039;s PR attack and final hit on WCG. He polarizes the masses and let chase them state institutions like TCTF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shinobi==&lt;br /&gt;
{|border=1 cellspacing=0 cellpadding=4 style=&amp;quot;float:right; width:100px; background-color:#FFF&amp;quot;&lt;br /&gt;
|style=&amp;quot;margin-left:auto; margin-right:auto; text-align:center&amp;quot;|&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 42pt;&amp;quot;&amp;gt;&#039;&#039;&#039;忍&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Shinobi: another word for ninja)&lt;br /&gt;
&lt;br /&gt;
Ninja&#039;s golden age was during the [[wp:Sengoku_period|sengoku period]] (1477 - 1573). Then the Ninjutsu schools (Ryû) began to disappear again. The rest was further reduced after Japan had lost WWII - they were prohibited to have any martial arts. But, however, some Ryû survived.&lt;br /&gt;
&lt;br /&gt;
Then there was a reviving of the Ninjutsu. WCG&#039;s declaration meant also the loss of Japan. Terror groups arose to force their own Government to refuse the this union. These groups weren&#039;t very effective despite of modern weapons. Then there was a &#039;&#039;notable&#039;&#039;  attack. Three men covered as security personal took down all the others and got the conference under their control. The minister had to read the group&#039;s reasons not to join WCG in front of invited reporters. This was &#039;&#039;just&#039;&#039; a warning. The three left as soon as the special forces began to storm the building. This created a new myth of the Ninjutsu.&lt;br /&gt;
&lt;br /&gt;
The Shinobi absorbed other radical forces. But homeland Japan was lost, in the end they couldn&#039;t keep pace with WCG security arrangements.&lt;br /&gt;
&lt;br /&gt;
They teamed up with GATC and Syndicate to fight WCG on last battle fields. It was a matter of strength again. GATC fell back - caring their wounds. And Syndicate tried to &#039;&#039;lull&#039;&#039; Shinobi by forming them into a stronger and guerilla-like force.&lt;br /&gt;
&lt;br /&gt;
Old non-TNZ idea idea:&lt;br /&gt;
&lt;br /&gt;
Meanwhile - Mukade worked too closely with Syndicates. Muro&#039;s provides him a Chrysalis. That corrupted Mukade slowly.&lt;br /&gt;
&lt;br /&gt;
The Shinobi were actually never conform. But Mukade create an inner conflict. He was about to win members for the Sturmanderung ideology backed up by reinterpreted Ninjutsu philosophy.&lt;br /&gt;
&lt;br /&gt;
Time passed. The resisting men were quite hopeless and &#039;&#039;said goodbye&#039;&#039; to their homeland already. They realized Sturmanderung&#039;s madness but are afraid to rise against Mukade.&lt;br /&gt;
&lt;br /&gt;
If just Mukade wouldn&#039;t be...&lt;br /&gt;
&lt;br /&gt;
==Silver Dawn==&lt;br /&gt;
Silver Dawn is a [[wp:Terraforming|terraforming]] project in cooperation with United Space Administration and several research facilities. After nanomachines are inserted into a planetary surface, they start to reproduce themselves and spread over the entire planet. During this, their basic programming drives them to form neural networks [[wp:Body_image|(to be aware of its own structure)]] and diverse sensors (and receiving units) which shall also archive full control over the nanobot collective itself and give this control to outside standing humans. Now it has almost become an artificial multi-cellular organism. The bots can be ordered to form other &#039;organs&#039; to collect solar energy, creep for all kinds of matter including water, produce rocket fuel and building material, and of course changing the air composition and filter toxins to make it breathable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Silver Village==&lt;br /&gt;
A WCG research complex for nanotechnology in the former USA. It&#039;s newest project: Silver Dawn. WCG tries to abuse it as weapon since nuking &#039;&#039;Camp Sturmanderung&#039;&#039; failed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Participation in Daodan project&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Restless_Souls/Technology#Full_body_simulations|Pensatore about AVATARA needing help:]]&lt;br /&gt;
:Pensatore: &amp;quot;I&#039;m afraid to say that this Daodan simulation is quite a hard nut to crack. AVATARA might need help. I already talked to the AI and it says it would target the experimental quantum computing grid centered around Silver Village.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not only that Silver Village has vast access to quantum computing capacities, it&#039;s also first to use [https://phys.org/news/2015-06-method-quantum-entanglement-vastly-photon.html hyperentanglement] for data transport.&lt;br /&gt;
&lt;br /&gt;
With SV having a direct link to Green Village, complex problems can be subdivided. They get distributed on processors that suits their nature: classic (CPU), parallelism (GPU, stream processors), quantum, pattern recognition (neuromorphic chips, memristors).&lt;br /&gt;
&lt;br /&gt;
To keep the Daodan secret, SV might only do [https://phys.org/news/2017-08-quantum.html blind calculations.]&lt;br /&gt;
&lt;br /&gt;
This was the only way for AVATARA finish the Daodan in time.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Shared project with Green Village:&lt;br /&gt;
* Bioc&lt;br /&gt;
&lt;br /&gt;
Research fields:&lt;br /&gt;
* Quantum technologies&lt;br /&gt;
* Nanotechnologies&lt;br /&gt;
* Computer-based sciences&lt;br /&gt;
&lt;br /&gt;
Completed projects:&lt;br /&gt;
* Modular ammunition&lt;br /&gt;
* Personal and atmospheric shields&lt;br /&gt;
&lt;br /&gt;
==Sturmanderung==&lt;br /&gt;
&#039;&#039;Change is in the air.&#039;&#039; - German proverb&lt;br /&gt;
&lt;br /&gt;
If you go for an interpretation with a &amp;quot;most obvious intent&amp;quot; then Sturmanderung (Sturmänderung) is best to be read as &amp;quot;Storm of Change&amp;quot; in English. In context of Muro&#039;s plan it means &amp;quot;a storm that wipes away the old order&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
However, there can be two interpretations to Sturmanderung.&lt;br /&gt;
* Either it is a storm that Muro seeks to unleash. (&amp;quot;Änderungssturm&amp;quot;, many, radical changes happening all in one storm)&lt;br /&gt;
* Or there is already a Storm raging - the totalitarian WCG-Syndicate-complex - that needs to be changed. (&amp;quot;Sturmanderung&amp;quot;, change of a storm in direction and intensity)&lt;br /&gt;
&lt;br /&gt;
From a lingual perspective and maybe Hasegawa&#039;s (initial) perspective the second interpretation would make more sense. Given that there are numerous gaps, inconsistencies and such inside the story we are even more free to choose.&lt;br /&gt;
&lt;br /&gt;
Food for thought: Did Sturmanderung really started with Hasegawa and Muro?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sturmanderung Megacomputer&lt;br /&gt;
&lt;br /&gt;
There is supposed to be a &#039;&#039;Sturmanderung Megacomputer&#039;&#039; of type TITAN inside the Syndicate mountain complex. Probably they did not just use it for weather forecast. Maybe at some time they might have used it to simulate the toxin levels and their consequences but for the most part they likely used to virtually plan all their missions and do Daodan research.&lt;br /&gt;
: Inside the Syndicate Mountain Complex Mai encountered doctors who were deeply informed about the Daodan and her person. (They even know her face.)&lt;br /&gt;
:: Daodan core technology (ref.TITAN\ssob)&amp;lt;!-- stupid son of bitch = Muro? lol --&amp;gt;&lt;br /&gt;
:: 15_57_16 Syndicate Scientist: Oh god...YOU! Here take these! Just leave me alive!&lt;br /&gt;
:: 15_57_21 Syndicate Scientist: You...you&#039;re the other prime symbiote!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ACCs===&lt;br /&gt;
Mai sent pulses of highly energetic microwaves to the satellites which redirected them as re-focused beams to the atmospheric conversion centers (ACCs) triggering a cascade of malfunctions and resulted in the destruction of the facilities the Syndicate had sabotaged.&lt;br /&gt;
&lt;br /&gt;
Normally, the satellites serve two functions and which does not include being a power source for ACCs because that would be highly inefficient. Instead, the satellites coordinate the ACCs worldwide and therefore mitigate the toxin levels where it is needed the most. Secondly, the satellites radiate large areas of clouds in heights the ACCs can impossibly reach. While treating the air for the cities the ACCs also inject catalytic particles into the atmosphere destroying toxins. The microwaves form the orbital array provide the energy to accelerate the catalytic reaction. Also this heats up the particles so the stay longer in air. This practice stands in contrast to limit the global warming but is tolerated due to the lack of alternatives and the increasing CO2 rules for the economy.&lt;br /&gt;
&lt;br /&gt;
If the toxins in the upper atmosphere aren&#039;t treated they build up and hit the cities during changes in the weather which means days high toxin level the ACCs alone cannot cope with. The cleaning potential of the ACCs is in multiple ways limited so the satellites provide a support function.&lt;br /&gt;
&lt;br /&gt;
===Sturmanderung plan B===&lt;br /&gt;
[Another way to kill all humans with a minimum of financial costs. Another argument to get rid of nuclear deterrence. Future dangers require demilitarization or else we cannot manage them. -- The Controller want to get rid of the WCG regime and their TCTF. At the same time they are legitimizing them by being themselves a threat.]&lt;br /&gt;
&lt;br /&gt;
Muro aimed to contaminate the atmosphere so that basically only Daodan hosts survive. He needed to infiltrate ACCs worldwide and let them go out of control. Complicated, risky. How about a plan B?&lt;br /&gt;
&lt;br /&gt;
Originally, the Controller thought of blackmailing the WCG with their Great Reset plan. But then they decided to put it on ice. Muro somehow got to know about it and reactivated it as his own backup plan.&lt;br /&gt;
&lt;br /&gt;
How much does an intercontinental rocket cost? The [[wp:LGM-30_Minuteman|LGM-30 Minuteman]] costs 7 million USD. One unit is quite affordable for the Syndicate but they needed 500 of them. &lt;br /&gt;
Therefore Muro let construct the ICBMs in Russia without warheads. The simultaneous launch of that many rockets makes sure they don&#039;t get declared as a false alert. They get shot into the sky and trigger a nuclear retaliation of USA, and then of Russia. For that reason The Camp is located in Africa. &#039;&#039;To be on the save side.&#039;&#039; The nuclear holocaust and the contamination will come from the real rockets. Hence nuclear material for own warheads is not needed.&lt;br /&gt;
&lt;br /&gt;
The cost were further reduced by siphoning off fuel from cities&#039; hydrogen grid. Also the rockets are made in Syndicate run (reverse engineering) repair cafes which have advanced 3d metal printers. The Resurrection Shops are situated at the periphery of cities.&lt;br /&gt;
: On a political level sympathisers declare these shops a form of protest against the &amp;quot;capitalistic throwaway society&amp;quot; and &amp;quot;[[wp:Planned_obsolescence|planned obsolescence]]&amp;quot; of corporations.&lt;br /&gt;
&lt;br /&gt;
The rockets are camouflaged as silos to store hydrogen. As soon as they enter the last construction phase (turned into actual rockets) they get relabeled as &amp;quot;weather control system&amp;quot;. (Cynical reference to [[#Sturmanderung|Sturmanderung]].) Then they are officially meant for [[wp:Cloud_seeding#Salts|cloud seeding]] with sodium chloride (NaCl) to bring rain to the agronomic areas surrounding the cities. The TCTF might just think of them as some sort of scam.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Avatara was at the beach. Laying on the sand he looked into the sky, stuffed with the real ICBMs.&lt;br /&gt;
&lt;br /&gt;
He sighed. &amp;quot;Stupid humans.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shin: &amp;quot;Can you make them stop?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;I can make them inactive. But they will still hit the ground and cause contamination.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
The oceanic contamination triggers Hasegawa&#039;s awakening?&lt;br /&gt;
&lt;br /&gt;
==Syndicate==&lt;br /&gt;
The Syndicate is an agglomeration of criminal groups. But the Network in pulling the strings: they control the technological black market, ensure save Syndicate communication and finances the &#039;&#039;&#039;paramilitary &amp;quot;Striker&amp;quot; division&#039;&#039;&#039;. BGI is part of the Syndicate.&lt;br /&gt;
&lt;br /&gt;
The Network was originally a black hat hacker group. The so-called council is just a bunch of virtual straw dolls.&lt;br /&gt;
&lt;br /&gt;
The black hats hides within the high-rank Comguys - the Controllers. All Syndicate subbosses (regional managers) and members of the Striker division know: &amp;quot;never mess with a Controller, it&#039;s a death sentence&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Traton is a lower-ranked black hat, but he knew the identity of many Controllers. He supported Muro in hope to take out his competitors. Muro gained the trust of his Striker comrades and convinced them in working for him. The Chrysalis made him the only know example of a superhuman and he was willing to share his secret with them. Traton and Muro hunted the Controllers they knew of and took lead over the Network and Syndicate. The choice giving to the Controllers was simple: accept Muro as Overlord or die through his hands.&lt;br /&gt;
&lt;br /&gt;
After Hasegawa and Pensatore died, AVATARA managed to accused Traton for sending Mukade after Muro&#039;s father. That wasn&#039;t true but as consequence Muro dispelled Traton. Mukade and Kimura were now depending on Pensatore&#039;s mercy to not get extradite to Muro&#039;s wrath.&lt;br /&gt;
&lt;br /&gt;
(AVATARA was executing an order it got just before Pensatore upload his mind.)&lt;br /&gt;
&lt;br /&gt;
The Controllers that weren&#039;t killed, retired and disappeared. They hadn&#039;t a chance against their defected colleagues and Pensatore&#039;s planet-wide influence through AVATARA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Geographic retreat areas&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: [[Manual#The_Syndicate|Manual/The Syndicate]]&lt;br /&gt;
When you really think about the power the TCTF wields it makes you wonder how the Syndicate has survived. There are a lot of theories: some say the World Coalition Government lets the Syndicate slide because they keep the underclass down. Others claim a &#039;&#039;&#039;connection between the Syndicate and the remnants of the countries erased by the World Coalition Government&#039;s land grab&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
While the Syndicate put much effort into covering their operations in WCG territory, they have an easy job in remote regions.&lt;br /&gt;
&lt;br /&gt;
: [[Manual#Tech_Note_1|Manual/Tech note 1]]:The World Coalition Government realizes the extent of the ecological damage and has the ability to reverse a lot of it but has decided not to. It is in their best interest to maintain the centralization of wealth so the large population centers are preserved while &amp;quot;third world&amp;quot; regions are not. As a bonus the mounting death toll solves some of their overpopulation problems.&lt;br /&gt;
&lt;br /&gt;
Regions without ACCs and subventions are still WCG territory on paper but de facto the old governments runs these regions with help of the Syndicate. Especially in African and Islamic regions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Streams within the Syndicate&#039;&#039;&#039;&lt;br /&gt;
* conservatives - BGI and now mainly dead Syndicate/Network heads who thought/think that the situation before Muro was best&lt;br /&gt;
* moderates - people like Traton who supported Muro&#039;s rising for their own interests and maniacs who believed in the necessity of breaking the WCG until they realized that Muro wants Armageddon&lt;br /&gt;
* progressives - ideological goal: recreation of mankind because the &amp;quot;old form&amp;quot; almost destroyed itself (&amp;quot;time for a new evolution&amp;quot; &#039;&#039;and so on&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hierarchy&#039;&#039;&#039;&lt;br /&gt;
* professional units (Striker) are &amp;quot;educated in the spirit of Sturmanderung&amp;quot;&lt;br /&gt;
* (Strikers aren&#039;t directly sworn to the boss or subbosses but to Sturmanderung&#039;s ideology)&lt;br /&gt;
* they are send to all subbosses to support their regions as long as they aren&#039;t ordered to do something that can threat Sturmanderung&lt;br /&gt;
* on the other side subbosses have to contribute Sturmanderung by one third of their &amp;quot;incomes&amp;quot;&lt;br /&gt;
* subbosses are independent in own doings within their region&lt;br /&gt;
* (every subboss has numerous commanders which control one provinces or city)&lt;br /&gt;
* commanders have their own thugs, even temporary command on Strikers needs permission from a subboss&lt;br /&gt;
(We still don&#039;t have an idea on Syndicate&#039;s hierarchy, this is a first try.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Troops&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
{{table}}&lt;br /&gt;
!Sub-Party&lt;br /&gt;
!Commando&lt;br /&gt;
!Unit&lt;br /&gt;
|-&lt;br /&gt;
|Mercenary&lt;br /&gt;
|&amp;lt;font color=&amp;quot;#777&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt;&lt;br /&gt;
|Sniper&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|(Mercenary) [[#Shinobi|Shinobi]]&lt;br /&gt;
|&amp;quot;Schatten&amp;quot; (Shadows)&amp;lt;br&amp;gt;&amp;quot;Nebelwächter&amp;quot; (Fog Guards)&lt;br /&gt;
|valign=top|Ninja - Infiltrator Class (Green), Eliminator Class (Blue), Avenger Class (Red)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=3 valign=top|Syndicate own...&lt;br /&gt;
|valign=top|Regulare Troops&lt;br /&gt;
|Comm Trooper&amp;lt;br&amp;gt;Bomber&amp;lt;br&amp;gt;Striker - Grunt Class (Green), Hoplite Class (Blue), Hussar Class (Red)&amp;lt;br&amp;gt;Fury - Harridan Class (Green), Banshee Class (Blue), Valkyrie Class (Red)&amp;lt;br&amp;gt;Elite Striker - Ogre Class (Green), Giant Class (Blue), Titan Class (Red)&amp;lt;br&amp;gt;Tanker - Skirmisher Class (Green), Brawler Class (Blue), Crusher Class (Red)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;font color=&amp;quot;#777&amp;quot;&amp;gt;(Meta Troops)&amp;lt;/font&amp;gt;&lt;br /&gt;
|&amp;lt;font color=&amp;quot;#777&amp;quot;&amp;gt;(daodan-improved Syndicate folk - mainly regular troops)&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Special Troops&lt;br /&gt;
|&amp;quot;Sturm&amp;quot;-Striker - Behemoth Class (Gray)&amp;lt;br&amp;gt;(SLD-)Shinobi - Guardian Class (Black), ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===History of the Syndicate===&lt;br /&gt;
&lt;br /&gt;
[The older Syndicate text sections should be merged with this one.]&lt;br /&gt;
&lt;br /&gt;
The Syndicate needs safe land to build and test new weapons and equipment. A world-wide operating WCG is opposing that need hence the Syndicate fought against the WCG during its installation.&lt;br /&gt;
&lt;br /&gt;
When the WCG tried to annex land of all countries most members of African Union (AU) and the Islamic League considered this once more as land grabbing but this time on an unseen scale.&lt;br /&gt;
&lt;br /&gt;
Inspired by former land grabbing in African countries the Syndicate forcefully takes back land of multinational companies and tells the government that they can keep it if they get small share for compensation. They sabotage and blackmail the companies so they &amp;quot;don&#039;t want it back&amp;quot;.&lt;br /&gt;
The Syndicate is political active and fuels the ideas of nationalist who are still angry about the colonial history and its persisting effects. They support the idea of independent African countries so the WCG has no control there. For AU the troops of the Syndicate are simply some nationalistic mercenaries with no official contract. The AU turns a blind eye on these troops since the Syndicate is acting in their interest.&lt;br /&gt;
&lt;br /&gt;
Technology that is unavailable or under patent is provided to the AU for little money. The Syndicate makes sure the mined and farmed raw resources are not sold on the international market. Processing is done within the territory of AU which increases value and strengthen local economy.&lt;br /&gt;
&lt;br /&gt;
Unplanned the Syndicate has become the most important partner in developing the countries that where exploited for more than 100 years from non-African countries and multinational corporations.&lt;br /&gt;
The Syndicate has become not only a strategic partner but also gained a tremendous amount of sympathy. Within the Union they have de facto political immunity. Crimes that where committed within the WCG are not prosecuted. In that context WCG activities are either ignored, blocked or sabotaged.&lt;br /&gt;
&lt;br /&gt;
Like in the WCG there exists many groups of organized crime in the Union. The Syndicate set up quota for these &amp;quot;business&amp;quot; to suppress too unfavorable situations with local government. To enforce these quota the Syndicate also uses their Striker division that was established during the WCG founding war.   &lt;br /&gt;
&lt;br /&gt;
Union separatists are used to fuel the war economy and are eventually brutally beaten down. The military section of the Syndicate has also an easy game promoting new conflicts in South America and Mexico. Narco-state are especially suited to build up armed conflict. While the Syndicate delivers weapons to gangs and paramilitary, the Syndicate&#039;s legal front business BGI provides the WCG governments with “anti-Syndicate” weapons and equipment.&lt;br /&gt;
&lt;br /&gt;
The military revenues are a nice bonus but not the biggest piece within the pie. With increasing size the Syndicate tries continuously to invade new WCG companies to have legal income and political weight. The TCTF is suspecting the Syndicate is following the Italian model. The Syndicate aims to be as much as system relevant as possible. Due to their cancerous growth removing them might be impossible without crashing the entire economy.&lt;br /&gt;
&lt;br /&gt;
In the perspective of BGI and the general economic driven Syndicate members status quo needs to be protected and &amp;quot;cultivated&amp;quot;. To them Muro&#039;s Sturmanderung program is just madness.&lt;br /&gt;
&lt;br /&gt;
==TCTF==&lt;br /&gt;
Technology Crimes Task Force&lt;br /&gt;
&lt;br /&gt;
{{divhide|Food for thought}}&lt;br /&gt;
Is UK slowly shifting towards WCG? Is it establishing a precursor of TCTF? ([https://www.bbc.com/news/uk-56413920 en], [https://web.archive.org/web/20211129143300/https://www.tagesschau.de/ausland/europa/johnson-575.html ger])&lt;br /&gt;
&lt;br /&gt;
BBC:&lt;br /&gt;
* It is &amp;quot;likely&amp;quot; that a terrorist group will launch a successful chemical, biological or nuclear attack by 2030&lt;br /&gt;
* The UK will set up a new counter-terrorism operations centre to improve the response to terror attacks&lt;br /&gt;
* The government wants the UK to become a &amp;quot;science and tech superpower&amp;quot; by the end of the decade&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/975077/Global_Britain_in_a_Competitive_Age-_the_Integrated_Review_of_Security__Defence__Development_and_Foreign_Policy.pdf&lt;br /&gt;
&lt;br /&gt;
UK&#039;s Integrated Review (of Security, Defence, Development and Foreign Policy) identified future challenges (China&#039;s economic gravity, climate change, lose of biodiversity, globalization, poverty destabilizing states) that will be worked on for the next 10 years. Technology create opportunities and risk (by power and misuse), esp. by non-state actors (companies, (Oni&#039;s [[wp:EncroChat|&amp;quot;Network&amp;quot;-like]]) organized crime, and terror groups. To defend cyberspace UK is establishing the National Cyber Force (NCF).)&lt;br /&gt;
&lt;br /&gt;
Technology, science, data and cyber will play a more important roll for defence, international and national security.&lt;br /&gt;
&lt;br /&gt;
From the PDF document:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;We will adopt an own-collaborate-access &#039;&#039;&#039;framework to guide government activity&#039;&#039;&#039;&#039; in priority areas of S&amp;amp;T [Science and technology], such as AI, quantum technologies and engineering biology.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;State threats: we will bolster our efforts to detect, deter and respond to state threats in order to protect our people, infrastructure, economy and values from those who seek to do them harm. We will introduce new legislation to give our &#039;&#039;&#039;security and intelligence agencies and police&#039;&#039;&#039; the powers they need to tackle the challenges we will face in the coming decade.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;We will bolster Regional Organised Crime Units, in coordination with local policing and the NCA. This includes our recruitment in 2021-22 of 300 police officers dedicated to SOC [Serious and Organised Crime], as part of our commitment to recruit a total of 20,000 extra police officers by 2023.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;To counter proliferation to non-state actors, strengthening the security and safety of nuclear materials in priority countries. We will also reduce the risk of terrorist acquisition of biological agents through our International Biological Security Programme and the G7 Global Partnership Against the Spread of Weapons and Materials of Mass Destruction.&amp;quot; (western community + China? -&amp;gt; getting desperate -&amp;gt; WCG?)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;In strengthening our homeland security, we will build on firm foundations in counter-terrorism, intelligence, cyber security and countering the proliferation of chemical, biological, radiological and nuclear (CBRN) weapons. We will seek to match this excellence in other areas, through enhanced capabilities and appropriate legal powers that equip us to meet rapidly changing threats. We will also ensure that &#039;&#039;&#039;science and technology (S&amp;amp;T) is elevated to the highest importance as a component of national security&#039;&#039;&#039;, with a particular emphasis on growing our cyber power.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
That&#039;s for 2021-2031. Given that technological development does not stop it is only a question of when, not if, we all agree to let neutral AIs to be our guardians so that a &amp;quot;nightmare WCG&amp;quot; is avoided.&lt;br /&gt;
&lt;br /&gt;
What will happen to technology that will be labeled harmful at a later point? What will happen to the developers?&lt;br /&gt;
&lt;br /&gt;
What will happen to the open source community? Especially the guys working on AI?&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
This entity has a broad competence spectrum. As a police force they are fighting hightech crimes.&lt;br /&gt;
To be really effective and fast in execution they also have an BlackOps division with resources similar to an intelligence agency, military and anti-terror forces.&lt;br /&gt;
&lt;br /&gt;
Shortly after TCTF’s installation [[#Griffin|Terrance Griffin]] contacted the Japanese WCG representatives to warn them against current threats the task force wasn’t aware of and not ready to deal with. Griffin wanted to transfer from his mercenary group to TCTF and secure dangerous technologies. He did so and the local WCG men are very thankful for his service.&lt;br /&gt;
&lt;br /&gt;
Due to the nature of operations Griffin was best suited for joining BlackOps division and helped building it up to its full extend. Through Griffin influence over-proportional many US soldiers are now working at the Japanese TCTF HQ and BlackOps.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Terrance Griffin is a valued Agent who has devoted his entire life to the TCTF. [...] We at the Directorate have been willing to overlook his methods because he has done more to oppose the Syndicate than any other Agent in the TCTF […]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Without Griffin the TCTF wouldn’t be the capable force it is today.&lt;br /&gt;
&lt;br /&gt;
===Area of operations===&lt;br /&gt;
* stopping illegal technology transfer, sale, and use&lt;br /&gt;
* securing illegal technology if necessary by BlackOps&lt;br /&gt;
* arresting criminals and renegade scientists&lt;br /&gt;
* running and protecting TCTF science prisons&lt;br /&gt;
* investigating any kind of Syndicate activities&lt;br /&gt;
&lt;br /&gt;
===Science prison===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
| The idea of a science prison is not so new. After WWII German scientists were working [[wp:Alsos_Mission|more]] or [[wp:Russian_Alsos|less]] willingly for big secret American and Russian nuclear bomb research complexes Los Alamos ([[wp:Manhattan_Project|Manhattan Project]]) and Arsamas-16. Communication to the outside world was strongly regulated (censored mail, no phone calls).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Another parallel can be drawn with [[wp:Black_site|black sites]]. In the name of war on terror the USA had secret CIA prisons around the world. If you replace terrorists with &#039;&#039;renegade&#039;&#039; scientist you pretty much have it. The USA was democratic system willing bend human rights to run these facilities.&lt;br /&gt;
&lt;br /&gt;
How many steps away is the USA from a WCG?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Inspired by the Russian-Chinese technology philosopher Kusnezow Feng the WCG bought the idea of &amp;quot;secured research&amp;quot; to the next level.&lt;br /&gt;
&lt;br /&gt;
According to Feng due to their increasing accessibility certain technologies posed a such high danger for world peace that their continued research were only allowed in sheltered facilities. Any result from these complexes becomes classified.&lt;br /&gt;
&lt;br /&gt;
During the years WCG installed more and more of such facilities. The biggest and &amp;quot;top level&amp;quot; ones are known as Silver Village (USA) and Green &lt;br /&gt;
Village (Russia).&lt;br /&gt;
&lt;br /&gt;
===HQ===&lt;br /&gt;
The HQ and the rest of the cities are embedded in a network of sentry drones.&lt;br /&gt;
&lt;br /&gt;
====Damocles====&lt;br /&gt;
Inhouse AI. Shinatama is connected to it at the center of the HQ&#039;s upper main hall.&lt;br /&gt;
&lt;br /&gt;
====Omega Vault====&lt;br /&gt;
There is a pit beneath the defense platform. It can be speculated that it was meant as a place to temporary hold Daodan symbiots captive - or even to kill them. This applies to Muro and Mai should she run out of control one day. Therefore placing Shinatama there was a decoy.&lt;br /&gt;
&lt;br /&gt;
This safety measure is just one in a series including Shinatama and the neural links for monitoring, the [[Quotes/Consoles#Chrysalis_Removal|experiments on Chrysalis removal]], the [[Quotes/Consoles#Sytropin|Sytropin injections, the freezing chambers]], and the [[Quotes/Consoles#Superhuman|order of Mai&#039;s trainer to carry (VDG) tasers]].&lt;br /&gt;
&lt;br /&gt;
==The Tianxia Institute==&lt;br /&gt;
{{divhide|Fictional entity}}&lt;br /&gt;
The Tianxia Institute is a fictional entity. It is not related to the Tianxia Academy and its connections in any way.&lt;br /&gt;
* http://web.archive.org/web/20230524131052/https://www.tian-xia.com/&lt;br /&gt;
* https://longtermrisk.org&lt;br /&gt;
&amp;lt;!--Oh hey, another &amp;quot;nothing new under the sun&amp;quot;. Food for thought:&lt;br /&gt;
* https://longtermrisk.org/a-dialogue-on-suffering-subroutines/--&amp;gt;&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
A Chinese state-owned think tank. They possess vast computing capacities to run global simulations.&lt;br /&gt;
&lt;br /&gt;
The regional government uses these simulations to test new policies. It is the new hyped decision instrument. &lt;br /&gt;
&lt;br /&gt;
Unused capacities are used by the Chinese research community which is constantly monitored by the Chinese TCTF. Although no official numbers are given the dimensions behind this institute can be compared with Green Village and Silver Village.&lt;br /&gt;
&lt;br /&gt;
That way each former super power has a research complex on its ground. It would be naive to think that national thinking and competition does not exist anymore.&lt;br /&gt;
&lt;br /&gt;
==Vago Biotech==&lt;br /&gt;
What was Muro&#039;s reason to &#039;&#039;visit&#039;&#039; Vago Biotech?&lt;br /&gt;
&lt;br /&gt;
The name suggests research on biotechnology - and so does their slogan &amp;quot;Life is for everyone&amp;quot; - and there are these green bio disposal pools - but the consoles are about nanotech - SLDs - and the Syndicate just seems to kill the scientists. Though, the presence of Muro&#039;s Comguy hints that some massive hacking was going on two. Or some sabotage action, that needed hardware access.&lt;br /&gt;
&lt;br /&gt;
The Syndicate possess adult SLDs while the TCTF doesn&#039;t. Maybe they copied their data, delete the originals and killed the white coats to keep their advantage towards TCTF.&lt;br /&gt;
&lt;br /&gt;
Or did Vago found a why to combine bio and nanomachine cells?&lt;br /&gt;
&lt;br /&gt;
: [[Quotes/Objectives#CHAPTER_03_._PUZZLE_PIECES|Chapter 3: Puzzle pieces]]: &#039;&#039;Muro and his Strikers have invaded this lab to steal experimental gene surgery equipment.&#039;&#039; As theorized on the Vago page, this equipment could help Daodan implantation. But that idea has a little flaw: the time point. Shouldn&#039;t Daodan implantation be guaranteed before infiltrating ACCs worldwide? If ACC infiltration would have been discovered, at least they would have the Daodan before WCG-Syndicate war gets hot again.&lt;br /&gt;
&lt;br /&gt;
Well, the [[Quotes/Consoles#CHAPTER_14_._DAWN_OF_THE_CHRYSALIS|Sturnänderung schedule]] looks weird anyway, maybe let&#039;s ignore that.&lt;br /&gt;
&lt;br /&gt;
The Syndicate should had have enough time to make progress with Daodan implantation. We know there were scientist in the Syndicate mountain complex, and Mukade and Hasegawa were contributing to the Syndicates database too before being interrupted by Pensatore. Maybe the process was working but not to 100%. There is something strange about Barabas: he is a cyborg. Why cybernetic implants when he has a powerful DC?&lt;br /&gt;
&lt;br /&gt;
Maybe Muro and his men did simply both, stealing the gene surgery equipment (seeking a 100% implantation success rate) and the data to combine bio and SLD cells. They could produce a daodanized clone army - with SLD brains for ensured loyalty.&lt;br /&gt;
&lt;br /&gt;
But there are other forces that would profit from that merging technologies. Who has informed Muro that an exceptional agent would face him soon? Both, Mukade and Pensatore, probably seek to become human again someday. And both did knew what happened to Konoko and Kerr.&lt;br /&gt;
&lt;br /&gt;
==WCG==&lt;br /&gt;
===History===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Food for thought:&lt;br /&gt;
Amerika über Jahrzehnte noch in einem gefährlichen Zustand:&lt;br /&gt;
* mediale Bubble von Reps/Dems, Polarisierung, Spaltung der US-Gesellschaft, zu starke religöse Prägung (Creationisten, etc.), Symptom: Hang zu Verschwörungstheorien / &amp;quot;alternativer Fakten&amp;quot;, 70 % der Rep glauben US Wahl wurde manipuliert, in der Summe Amerika immer leichter Ziel russischer/chinesischer Desinformationskampanien?&lt;br /&gt;
* &amp;quot;Gemeinschaftliches&amp;quot; Hacking von China und Russland?&lt;br /&gt;
* Feng: Tianxia ?&lt;br /&gt;
--&amp;gt;Napoleon once said: &amp;quot;China is a sleeping giant. Let her sleep, for when she wakes she will move the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Spite the &#039;&#039;&#039;European Union&#039;&#039;&#039;&#039;s goal to show more united strength in the global power game, it remained a &#039;&#039;&#039;paper tiger&#039;&#039;&#039; compared to the actual super powers. The member states were constantly quarreling over domestic and foreign policy with no clear vision for their own position in the world. This self-made chaos, the poor status of digitization [https://www.spiegel.de/netzwelt/netzpolitik/ai-act-die-eu-vernichtet-die-ki-zukunft-des-kontinents-kolumne-a-a2b607aa-ebb0-4878-8f9b-13978a5a3a70 and AI] and the missing ownership of companies for the digital economy (hence even more dependency to USA) were all hampering factors which made it very easy for China to pass the EU in power. &amp;lt;!--As Europe&#039;s economic leader Germany&#039;s digital ridiculous backwardness is especially to be criticized. (Missing impulses/directions/expertise/weight.)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
China&#039;s ambitions are basically everywhere. They reached &#039;&#039;&#039;economic dominance&#039;&#039;&#039;. Ultimately China had created strong dependencies in the [https://edition.cnn.com/2020/11/16/economy/rcep-trade-agreement-intl-hnk/index.html Asian-Pacific region], in [[wp:Sino-Latin America relations|South America]], in the EU by having build a new silk road, dupe them in trade contracts, getting shares in key industries/companies [[wp:Desertec#High-voltage_direct_current_(HVDC)|including energy production]], farming their know-how for their own [[wp:de:Made_in_China_2025#Strategische_Zielsetzung_bis_2049|technological development]], then [https://www.heise.de/hintergrund/Missing-Link-Wie-sich-China-zur-Normungsweltmacht-aufschwingen-will-6146295.html declaring their own market controlling standards], in the end turning EU into just another export market. Also, [[wp:Africa–China_economic_relations|China invested]] so much into African [https://www.nzz.ch/international/chinas-palast-diplomatie-in-afrika-ld.1692436 governments], companies, infrastructure, and military goods that they trapped [https://www.forbes.com/sites/wadeshepard/2019/10/03/what-china-is-really-up-to-in-africa/ Africa in debts] or shares and mostly removed European&#039;s and American&#039;s influence from the continent. China needed Africa also to outsource the production of low-value goods and get cheep raw materials. (For this reason later renegade US states and their military (New Confederations) had chosen African territory for their proxy wars. They wanted to thwart China&#039;s growth strategy and hinder the installation of an all-enclosing WCG. The African states still remember [[wp:Scramble_for_Africa|Europe&#039;s phase of colonialism]] and hence have a somewhat open ear for the NC&#039;s actual pretextual arguments - to fall into new dependencies - but see it difficult not to continue trade with China.)&lt;br /&gt;
&lt;br /&gt;
The strongest dependencies China has created can be found within their new &amp;quot;domestic&amp;quot; Asian-Pacific market. One state after another became lost in China&#039;s economic and &#039;&#039;&#039;therefore political gravity&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Having all this power China began to aim higher. By now they could risk being independent from USA if they really wanted to. Therefore &#039;&#039;&#039;selling all their US debts&#039;&#039;&#039; – sometimes named &amp;quot;&#039;&#039;&#039;nuclear option&#039;&#039;&#039;&amp;quot; – became a much less theoretical option for &#039;&#039;&#039;blackmailing&#039;&#039;&#039;. This problem grew when China had a cold war with USA - forcing them to spend so much money in an arms race that the old super power almost reached its limit in serving its debts. China almost dead-raced USA as USA had done with the Soviet Union.&amp;lt;!--Funny how a nuclear threat can also be a economic weapon. Even if Russia would reduced its nuclear program and use the money for economic rewarding connections with Europe the USA would be forced in costly maintaining their program because of China. In 2021 information went public that China is in progress of catching up in terms of nuclear deterrence. Though the content of the new silos is not confirmed yet.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Add more economic points here? wp:Sino-Russian_relations_since_1991--&amp;gt;&lt;br /&gt;
For a long time Russia had intended to stay an independent player but given enough push and pull factors they very silently accepted being China&#039;s &#039;&#039;&#039;junior partner against their common enemy&#039;&#039;&#039; USA. Meanwhile Russia kept delivering wood, oil, natural gas, thorium reactor ships and military goods. [https://www.researchgate.net/publication/262485473_The_Russia-China_Security_Partnership_in_the_Asia-Pacific_Region_Conjectural_and_Structural_Dimensions Russia helped out in securing the Asian Pacific region] against USA&#039;s &amp;quot;return to Asia&amp;quot; policy which in turn forced Washington to focus less on Eastern Europe - especially the Caucasus region.  &lt;br /&gt;
&lt;br /&gt;
Meanwhile Kusnezow Feng, China&#039;s renowned and respected star philosopher, wrote a number of scenarios in which the world would turn upside down in best case or witness great filters in worst case within the next century unless mankind would act in unison.&lt;br /&gt;
&lt;br /&gt;
The latest &#039;&#039;&#039;pandemic&#039;&#039;&#039; posed a potential &#039;&#039;&#039;hypercrisis&#039;&#039;&#039; which made it &#039;&#039;&#039;easy for Feng to promote his warnings&#039;&#039;&#039;. In a time of new trade wars and arms races, while there were so many global debts, fighting climate change and other problems – one crisis starting or reinforcing another – seemed a very likely threat to everyone.&lt;br /&gt;
&lt;br /&gt;
Fully trusting Feng and having &amp;quot;waked up&amp;quot; the Chinese government wanted to counter these scenarios. Using their economic power they forced the other super powers to establish a global federal super state. Officially, it was supposed to be a massive revamp up version of the United Nations which China – [[wp:United_Nations#Funding|with the guaranteed US shares – had already under its control]].&lt;br /&gt;
&lt;br /&gt;
Inside a united world Feng saw no more use of most national military. In fact Feng took a page from Eisenhower&#039;s book – an utterly respected ex-president of the United States who warned his people about the [https://www.youtube.com/watch?v=OyBNmecVtdU&amp;amp;t=521s military-industrial complex].&lt;br /&gt;
&lt;br /&gt;
Eisenhower also had been a five-star general which gave Feng at least the minute chance to reach Americans&#039; &amp;quot;military soul&amp;quot;.&lt;br /&gt;
: &amp;quot;Every gun that is made, every warship launched, every rocket fired signifies, in the final sense, a theft from those who hunger and are not fed, those who are cold and are not clothed. This world in arms is not spending money alone. It is spending the sweat of its laborers, the genius of its scientists, the hopes of its children.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
So to counter the scenarios more effectively having less military for more GDP was very welcome although a phase of difficult transition was needed to be overcome: the physical structures being &amp;quot;butter and bacon&amp;quot; for many ([[wp:List of countries with highest military expenditures|billions of dollar each year]]), serving in military being a patriotic duty and being a tradition in many families.&lt;br /&gt;
&lt;br /&gt;
The American government was grinding their teeth but eventually agreed to the idea of a WCG.&lt;br /&gt;
&lt;br /&gt;
However, Eisenhower&#039;s idea of an &amp;quot;&#039;&#039;&#039;alert and knowledgeable citizenry&#039;&#039;&#039;&amp;quot; had been mostly &#039;&#039;&#039;replaced by a paranoiac world view&#039;&#039;&#039; where every man was a potential threat, a terrorist, who must be observed, tracked, analyzed and ranked. This world view was &#039;&#039;&#039;hold by all three super powers&#039;&#039;&#039; – like their increasing despite for independent journalists and whistleblowers. This meant a shift away from military towards a &#039;&#039;&#039;system of total surveillance&#039;&#039;&#039; and &amp;quot;[[wp:Social_Credit_System|social credit]]&amp;quot; to frame the mind of the masses.&lt;br /&gt;
&lt;br /&gt;
America agreed on the condition that, among other reforms, all debts were removed. They thought that could give them the chance to escape the Chinese grasp one day again.&lt;br /&gt;
&lt;br /&gt;
Feng wasn&#039;t really happy about WCG being that much totalitarian but accepted it as a &amp;quot;necessary evil&amp;quot; - until something better could replace it. Feng&#039;s and Pensatore&#039;s envisioned Biocracy and Gaia AI was going to be that kind of replacement.&lt;br /&gt;
&lt;br /&gt;
===Inclusion of cold warriors and nationalists===&lt;br /&gt;
China had to make some realpolitical concessions. The military-industrial complex with its four pillars - the war industry, the military, the politicians and the think tanks - have created an own nationalism-flavored ecosystem ensuring many jobs in many states, especially in those of Superpowers. The interconnection makes it difficult to dissolve the MIC. &#039;&#039;&#039;Plans for a spontaneous dissolving would have caused mass unemployment and political and ideological resistance.&#039;&#039;&#039; A closing of this complex could only happen over several decades. At the beginning most people involved were guaranteed to continue serving their nation&#039;s security. It was an &amp;quot;inclusion&amp;quot; of cold warriors and hardliners of old nationalism. A special problem was the removal of nuclear weapons. The cold warriors were hardly willing to give these away as the MIC in other states continued as well. They argued that the weapons would be an reinsurance until WCG would have truly matured. So under the surface of WCG the silent threat of nuclear deterrence still exists. [[#BGI|BGI]] &amp;lt;!--(Battle Groups International?)--&amp;gt; was tolerated to absorb old military to also mitigate the influence of old nationalism in MIC.&lt;br /&gt;
&lt;br /&gt;
===Demilitarization: Because weapons are a financial dead end===&lt;br /&gt;
The US-American MIC cannot simply be made disappear. The mentality for permanent armament has been fortified by a militarized history, self-image of supremacy, sense of mission to defend democracy (and other interests) worldwide with use of weapons and by the fear-mongering lobbyism of NRA. Owning weapons has become part of America&#039;s cultural DNA. On the other hand lethal violence and acts of wrath created a self-fueling dynamic in the impoverished social classes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The people needed the economic crash to realize that in the end they cannot eat weapons.&#039;&#039;&#039; The spending on private weapons and state-owned war machines took away from their own pockets and betrayed them of development opportunities. (Overemphasis of Eisenhower&#039;s words of wrong budget spending.)&lt;br /&gt;
&lt;br /&gt;
China exhausted USA in a new arms race. Seeing them and world economy almost breaking down China&#039;s leading thinker &#039;&#039;&#039;Feng realized as well that - no matter whether foreign contractors were involved - the arms industry just burns money on a global scale&#039;&#039;&#039;. Money that the ordinary people would need badly in the future. (Climate change, biocrisis, mitigation of global existential risks.)&lt;br /&gt;
&lt;br /&gt;
With the installment of WCG smaller states were &amp;quot;encouraged&amp;quot; to give up their military very soon so that they could concentrate on maintaining and modernizing the many different types of infrastructure, foster research and guarantee a minimum of social security while a future-proof economy was the new most top objective. Military enforced geopolitics and proxy wars were no longer tolerated - as well as any other kind of war. Borders stopped existing on paper. For these reasons - and to beat down any dissenters left - the military of old Superpowers were united into the WCG &amp;quot;freedom forces&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Initial ambiguity on purpose to support a transition===&lt;br /&gt;
As the integration was carried out step by step the initially still different national militaries could be marketed as protective powers to smaller nations. A positive meant illusion and protection against losing all face - to not end up as slaves to a different Superpower. A rest continuation of political familiarity in a yet new world order. Because of all the de-facto realities and concerns of potential partners Feng needed WCG to be integrative. Everyone should be given a plausible place, space for own yet straw doll narratives, and make real contributions to the bigger idea. Tianxia.&lt;br /&gt;
&lt;br /&gt;
It was clear that Superpowers would be the last ones to give up significant amount of military power. In a division of labor narrative smaller nations and alliances like the EU were told to be the &amp;quot;true&amp;quot; forerunner of WCG by leading the &amp;quot;economic revolution&amp;quot; and fight climate change on a technological level while the &amp;quot;cold warrior bloc(k)heads&amp;quot; were &amp;quot;tasked&amp;quot; (forced by own circumstances) in guaranteeing physical security for somewhat longer, then following suit and fully revamping their own economy.&lt;br /&gt;
&lt;br /&gt;
Of course not everything turned out as planned - or promised.&lt;br /&gt;
&lt;br /&gt;
Competition between opportunists, bluntly corrupt elements, old ideological hardliners and new separatist movements endangered Feng&#039;s vision of a halfway reasonable WCG. Syndicate, technology misuse and Biocrisis were put into public focus to distract from the own inner over-complex problems and the simple truth that even the WCG couldn&#039;t prevent - just limit - everyone from losing wealth during the transition: to a new way of living. The debts of present and past humans had to be paid. One way or another. The longer the existing problems remained unsolved the more new doubts, frustration and self-radicalization of people and government grew which again burned resources in quarrels and prolonged the transition.&lt;br /&gt;
&lt;br /&gt;
===Dragon Eater===&lt;br /&gt;
Breaking the circle of nuclear deterrence and therefore rendering nuclear weapons obsolet.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;You needed the smartest guys in the world to build the nuclear bomb.&lt;br /&gt;
: &#039;&#039;But you need the entire society to get rid of it.&#039;&#039;&lt;br /&gt;
:: - Kimura&lt;br /&gt;
&lt;br /&gt;
This is a WCG long-term objective. The &amp;quot;united nations&amp;quot; will no longer be a toothless paper tiger nor will they depend on nuclear deterrence. The ultimate offensive weapon will be exchanged against the ultimate defense weapon. It could be a critical mile stone between national Biocracies to a global Biocracy.&lt;br /&gt;
&lt;br /&gt;
Three Stages:&lt;br /&gt;
# Breaking the circle of nuclear deterrence by implementing Dragon Eater into national energy infrastructure.&lt;br /&gt;
# Biocracies vote for a policy to officially send mutual nuclear deterrence into retirement.&lt;br /&gt;
# Enforcement of a zero-tolerance policy by an AI and robot infrastructure that is managed by the higher tier Gaia AI. The enforcing AI fears no termination and cannot be blackmailed. It will take down any rogue nation that tries to acquire new nuclear weapons.&lt;br /&gt;
&amp;lt;!--# After a self-ensuring long phase of political consolidation a general demilitarization could take place.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since Dragon Eater basically uses all types of electric power sources it naturally carries the symbolism of mutual defense: every citizen participates and protects the live of his neighbor simply by being part of the community. Whatever &amp;quot;monster&amp;quot; is attacking, this community will stand its ground.&lt;br /&gt;
&lt;br /&gt;
The defense weapon is build into a tower and tightly integrated into the energy infrastructure. Therefore it cannot pose much a threat to neighboring nations which are not part of the alliance yet. In fact nations with Dragon Eaters are supposed to do both: ban nuclear weapons and reduced their military as there is now less need for it.&lt;br /&gt;
&lt;br /&gt;
The defense towers mostly vaporize or burn rockets and dropped bombs. Nothing is faster than light. So even hypersonic rockets with nuclear warheads can be destroyed if enough energy comes with the laser beam and its creating plasma channel.&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
* [https://phys.org/news/2022-03-lasers-plasma-lenses-focus-high.html plasma lenses] to focus high-energy lasers&lt;br /&gt;
* patterned laser light to create hollow channels, range extension by inner reflections&lt;br /&gt;
* high frequency to create the final plasma channel&lt;br /&gt;
* additional energy is delivered through the channel and works as a lightning strike to pierce and melt the objects on contact&lt;br /&gt;
* central and decentralized power generation, storage, transport and usage: renewables (solar panels on every house to support national security), power-to-gas, h2 grid, fuel cells in houses and industry, parking electric cars and fusion reactors are connected to the power grid&lt;br /&gt;
* &#039;&#039;&#039;superconducting power grid&#039;&#039;&#039;&lt;br /&gt;
* transnational grids continue to exist (inspired by NATO article 5, an attack on one nation is an attack on all nations, so all necessary energy is shared to fight off the attack)&lt;br /&gt;
&lt;br /&gt;
All necessary technologies will be presumably available and ready for mass-production by 2100 if a true AGI is available by 2070 which can improve itself and do autonomous research for another 30 years.&lt;br /&gt;
&lt;br /&gt;
===Global threats===&lt;br /&gt;
====Feng&#039;s scenarios====&lt;br /&gt;
* In addition to a multi-pandemic, single pandemics are itself a threat and a possible kickstarter for hypercrisis.&lt;br /&gt;
::[https://www.spektrum.de/news/vogelgrippe-das-naechste-pandemievirus-ist-vielleicht-schon-da/1875904 New viruses are everywhere available] in nature and can be made lethal in biolabs. As for known killer viruses like smallpox, its reconstruction would take less then &amp;lt;!--microbiologist David Evans, Edmonton, 2016--&amp;gt;[[wp:de:Pocken#Pockengefahr_nach_der_Ausrottung|100.000 credits and half a year of work for a small team]].&lt;br /&gt;
* Pandemics can also be triggered in insects. Extinction of bees have been discussed in other contexts. And while such an event would not drive humans into extinction it would still mean a severe problem. Also insects could be used as biological weapon. They could destroy specific flora: [https://www.darpa.mil/research/programs/insect-allies DARPA]&#039;s [https://web.archive.org/web/20210912140741/https://www.science.org/news/2018/10/crop-protecting-insects-could-be-turned-bioweapons-critics-warn Insect Allies] was identified as such a threat as it could be re-purposed.&lt;br /&gt;
* An asteroid impact could drive humans into extinction. The bigger the asteroid the more difficult it gets to prevent such an event. Therefore global teamwork is needed. &lt;br /&gt;
* While a [[wp:Kessler_syndrome|Kessler syndrome]] itself is a serious threat, intentionally triggered it would slow down detection of killer asteroids and the launch of countermeasures.&lt;br /&gt;
* Isotopes filtration technology (e.g. metal-organic frameworks and nanopores) could make it easy to produce [[wp:Enriched_uranium|enriched uranium]] for dirty bombs, [[wp:Operation_Argus|EMP]] or nuclear weapons - too easy for certain states, groups or eventually one day for individuals.&lt;br /&gt;
* Cyber-crimes and cyber-terrorism are itself more of a smaller problem. But if used by organized crime or states in combination with other means it can become a serious threat. With self-improving AI this would get even worse although only a very [[wp:Technological singularity#Hard or soft takeoff|soft takeoff]] is likely to happen.&lt;br /&gt;
** [https://www.reuters.com/world/biden-warns-cyber-attacks-could-lead-a-real-shooting-war-2021-07-27/ Nuclear retaliation has been named as a reaction to a large-scale cyber attack.] The final consequence would be a nuclear holocaust. It can speculated that such warning was meant as a leverage to sway the minds of hardliners in one&#039;s own government and let them agree on the necessity for disarmament. Since no party can use nuclear weapons, they are good for nothing. Actually it is even worse. Besides being a symbol for our failure in expressing sanity, compassion and any humanistic value nuclear weapons and their maintaining is simply burning money. -- The idea of a WCG avoids international cyberwars as well as the rest risk of nuclear holocaust and the weapons to trigger such. -- Feng proposes that all weapon-ready uranium and plutonium is gathered and repurposed for anti-asteroid devices and power sources for space probes.&lt;br /&gt;
* Robots and androids could be a target for hackers and turn them against their &amp;quot;hosts&amp;quot;. (SLD fall out of this category because their programming is more &amp;quot;hard-wired&amp;quot;.) Also, any kind of mass production to create a loyal army isn&#039;t less concerning.&lt;br /&gt;
* Amok-running AIs are mostly fiction but a rest risk remains and grows the more the technology matures. A &amp;quot;true global community&amp;quot; could limit such risk - for a while.&lt;br /&gt;
* Self-consuming capitalism: AI and robots let many people lose their job due to effects of competition and rationalization. Therefore these technologies are restricted until the political discussion has been ended. An unlimited use could eventually destabilize all WCG markets and hence the whole political and social system. (Could be avoided by taxes on digital businesses and robots.)&lt;br /&gt;
* [[wp:Geomagnetic_reversal#Effects_on_biosphere|Geomagnetic reversals]] could damage electronics in satellites and anything at the surface and cause health problems for flora and fauna. It could also cause volcanism. Due to globalization the accumulated effects would put massive stress on markets and societies. &lt;br /&gt;
* Super-volcanos&lt;br /&gt;
* Gammaray bursts&lt;br /&gt;
* 3D-printing technologies&lt;br /&gt;
** Production of common goods&lt;br /&gt;
::&#039;&#039;&#039;3D printers increasingly create a field of tension of security concerns and a sustainable economy.&#039;&#039;&#039;&lt;br /&gt;
::Lobbies could use pretextual arguments to ban 3D printing in public (not including companies of course). However, a matured technology enables cheap products and spare parts since it reduces packaging, transport and storage costs. Also the goods are produced &amp;quot;on demand&amp;quot;. This reduces overproduction (less raw materials, less energy) and recycling of unsold goods.&lt;br /&gt;
::The problem is not the technology but the mentality, the people who want to own weapons. That reminds to the discussion about the NRA in the USA. Theoretically it is correct that weapon itself are no problem but the people using them. However in real life the availability of weapons increase violence and a social climate of fear. You can even see it at the US police officers. Potential racist tendencies alone could never explain this. There is a reason why those officers always hold their gun ready: on top of the general frustration that leads to police violence, there is the specific fear of getting shot on duty.&lt;br /&gt;
:: The murder rate (per 100.000 per year) in USA is 5. Germany has 0.7. USA has vast areas with low population numbers therefore a second look at cities is helpful. [[wp:List of cities by homicide rate|Detroit has a murder rate of 40]] while [[wp:de:Tötungsrate_nach_Ländern#Liste_der_Tötungsraten_2013_für_ausgewählte_Großstädte|Berlin has 1]].&lt;br /&gt;
::The obvious interpretation is that availability of weapons creates crimes out of an existing potential of violence. Therefore it should be task of politics to ensure social freedom by improving financial security (“minimum wage”), health insurance, integration of migrants, refugees and ex-inmates, and strongly promote education, so that the mentality of insecurity and hence the desire to own weapons – and therefore the potential misuse of 3D printers – is greatly reduced. Besides the rebuild of classical firearms (ghost guns) there will be also the creation of [https://www.youtube.com/watch?v=EwHRjgVWFno coil guns] which are quite silent and don&#039;t need chemical gun propellants. Some polices downplay the emerging threat as they don&#039;t want to wake up sleeping dogs. Given incremental progress in 3D printing, AI-assisted design, capacitors and batteries, the techs will have matured so much around 2040 that the problem can&#039;t be ignored any longer.&lt;br /&gt;
:* [[wp:Organ_printing|Bioprinting]] a.k.a. tissue engineering (boosted by [[wp:Telomere|telomere regeneration]], [[Bertram_Navarre#Will_reality_soon_outrun_fiction.3F|cell conversion]]) (problems: biological immortality, overpopulation, potential social destabilization)&lt;br /&gt;
:** True reason why biological immortality is not intended: it is simply difficult to maintain because very cost-intensive.&lt;br /&gt;
:** Conspiracy theory, [[Manual#Tech_Note_1|Hanna]]: The World Coalition Government realizes the extent of the ecological damage and has the ability to reverse a lot of it but has decided not to. It is in their best interest to maintain the centralization of wealth so the large population centers are preserved while &amp;quot;third world&amp;quot; regions are not. As a bonus the mounting death toll solves some of their overpopulation problems. (In that context Hanna also believes the WCG is doing less than it could to improve public healthcare.)&lt;br /&gt;
&lt;br /&gt;
:: [2021.07.17: After having set up my own list of possible threats I found this Wikipedia page: [[wp:Human_extinction#Probability|Probability of human extinction]]. Funny how many points are similar. I&#039;m actually astonished (or amused?) about a certain little table stating: &#039;&#039;&#039;&#039;&#039;Estimated probability for human extinction before 2100: Overall probability: 19%.&#039;&#039;&#039;&#039;&#039; Even though this to be taken with a &amp;quot;grain of salt&amp;quot; - like the [[wp:Doomsday_Clock|Doomsday Clock]] which cannot be taken really serious - it still makes you think why we don&#039;t do more risk containment.]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Technology Crimes Task Force (TCTF) is meant to identify technological threats and contain them if possible. [[#Science_prison|TCTF science prisons]] secure &amp;quot;problematic&amp;quot; knowledge while also providing a save place for further research. Some scenarios (&amp;quot;[[wp:Great_Filter|great filters]]&amp;quot;) simply require ongoing research of all possible technologies so that mankind&#039;s survival is ensured.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Hypercrisis====&lt;br /&gt;
A dangerous combination of scenarios was coined &amp;quot;hypercrisis&amp;quot;. The WCG is actively trying to prevent it with help of the TCTF.&lt;br /&gt;
&lt;br /&gt;
An increasing world population, global warming and AI research is increasing the pressure on societies while there is a latent yet de-facto global dept crisis. A real severe pandemic could be a kickstarter of a multi-crisis situation that means a breakdown of most systems through globalization. Advanced 3D-printing technology could accelerate the throw over of government if radical/misguided people arm themselves.&lt;br /&gt;
&lt;br /&gt;
====Wake-up call====&lt;br /&gt;
Feng&#039;s wake-up call to the WCG is also known as the multi-pandemic-scenario which states that a single man can trigger dooms day relatively easy. Next to a hypercrisis it is WCG&#039;s strongest point but not last to justify technology control. See [[Oni2:Caged_Birds#Green_Village|Green Village]]: the &amp;quot;holographic recording&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Media control===&lt;br /&gt;
&#039;&#039;&#039;Media Neutrality Act&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When WCG took over, asymmetric warfare and terrorism went up.&lt;br /&gt;
&lt;br /&gt;
The WCG wanted to increase the overall approval of their citizen. Simultaneously they wanted to suppress new separatists movements. So in their strategical view terror incidences got far too much media attention. It didn&#039;t matter of what nature those incidences were: Religious or political. &#039;&#039;&#039;Because it is the media that terrorists need to effectively spread fear for their actual goals.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The WCG begun to limit screen time in media about terrorism with the important notion not to suppress such news completely: Silencing the news about terrorism would have been unnecessary censorship and the WCG needed at least a minimum of societal awareness to justify new anti-terrorist laws when needed. But usually casualties from terrorism were compared with annual road deaths.&lt;br /&gt;
&lt;br /&gt;
Eventually the Syndicate and technological threats became non-ignorable problems of global scale which need it necessary to ramp up TCTF. To  improve their anti-terror strategy WCG announced [[Restless_Souls/Technology#Project_Checkerboard|Project Checkerboard]] in 2050.&lt;br /&gt;
&lt;br /&gt;
Due to the infodemic (pandemics of disinformation) the WCG demanded journalists to be fully state-certified. Critics named those new generation &amp;quot;embedded journalists&amp;quot; just doing &amp;quot;pool reporting&amp;quot; in reference to older wars where journalists had been too close to owns own army but not to the actual reasons. What started as halfway plausible idea ended in an Eigendynamik of state propaganda. Politicians didn&#039;t stop that development as they profited too much that system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regional Enhancement Act&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After the latest global hyper-crisis WCG had formulated their &amp;quot;Regional Enhancement Act&amp;quot; to build up weaker regions and bring a more general sense of unity. By various parties alike it was superficial coined as &amp;quot;peace by wealth&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Infodemic===&lt;br /&gt;
Starting with the new generations of Machine Learning in form of GPT made it possible to create AI-like programs that were able to generate new texts, images, 3D content, sounds and human speech based on vast training data and simple text inputs, the so-called prompts.&lt;br /&gt;
&lt;br /&gt;
It marked the beginning of the &#039;&#039;&#039;information crisis&#039;&#039;&#039;. [And later fully escalated with the rise of rogue memehunters.]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Story fragment:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hanna giving TCTF-trained [[wp:Guinea_pig#In_scientific_research|&amp;quot;guinea pig&amp;quot;]] Mai a lesson about &amp;quot;reality&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
: &amp;quot;Infodemic. Originally this term was used to describe the information flood mixed with fake news in context of a pandemic.&amp;lt;!--Corona pandemic--&amp;gt; The increasing availability of knowledge and instruments boosted fake news and disinformation campaigns in non-pandemic times so that the term infodemic shifted towards a much more literal meaning - disinformation itself becoming pandemic. The WCG tried to limit future chaos by establishing technological countermeasures. At the same time those new and expensive instruments pushed a development towards more autocratic and totalitarian [regional] systems as the government and &amp;quot;approved media&amp;quot; had basically a monopoly on information.&amp;quot;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
| Different technologies and instruments giving synergy effects:&lt;br /&gt;
* Video manipulation&lt;br /&gt;
* Voice synthesisers:&lt;br /&gt;
** [https://www.indiewire.com/features/general/new-startup-deepdub-emulate-voices-interview-1234610164/ Deepdub]&lt;br /&gt;
** Adobe demonstrated a powerful voice synthesiser.&lt;br /&gt;
*** [https://www.youtube.com/watch?v=I3l4XLZ59iw&amp;amp;t=221s VoCo at Adobe MAX in 2016]&lt;br /&gt;
*** [https://www.youtube.com/watch?v=RB7upq8nzIU Technical explanation]&lt;br /&gt;
:: Apparently Adobe censored itself, they did not release the software and told the public that they would use it for dubbing their own tutorial videos. -- This somewhat reminds about the development of AI where the big tech companies like Microsoft argue that AI research should be restricted. However, the difference is that simultaneously AI research is pushed by those companies. It gives the impression of a pretextual argument to keep down further competition.&lt;br /&gt;
* 2D content creation from text ([[wp:GPT-3|GPT]] technology)&lt;br /&gt;
* 3D content creation from 2D media&lt;br /&gt;
** Nvidia&lt;br /&gt;
* Markerless and realtime motion capturing (transferring movement to digital characters)&lt;br /&gt;
* Putting content together, creating new content.&lt;br /&gt;
** Epic (Unreal Engine 5, MetaHuman)&lt;br /&gt;
** Nvidia ([https://developer.nvidia.com/omniverse omniverse] -- [https://www.youtube.com/watch?v=rVsp6o9t5nY demo])&lt;br /&gt;
*** [https://www.techradar.com/news/jensens-kitchen-is-a-lie-nvidia-reveals-gtc-2021-keynote-nearly-100-synthetic 3D recreation of Nvidia CEO Jensen Huang]&lt;br /&gt;
* General trend of AI&lt;br /&gt;
** &#039;&#039;&#039;[[wp:Generative_adversarial_network|GAN]]&#039;&#039;&#039; -- [https://www.youtube.com/watch?v=nx8RPnrP9W0&amp;amp;t=624s Coreteks: Future AI will REVOLUTIONIZE games]&lt;br /&gt;
&lt;br /&gt;
Technology in the hand of humans is always dual-use - good and malicious.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The solution to infodemics and imminent implosion of democracies and autocracies can only be an AI instantly fact checking statements of politicians - and any other citizen - in public discussions and social media.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 The crux is to construct an AI which usage everybody can agree on. This AI must be absolute neutral. There will be always people trying to sabotage such system to maximize their own profit (narrative/propaganda/...). The solution might be some kind of self-censorship (information access rights), and built-in diplomacy and some political autonomy. Any attempt of one nation to damage another nation via this AI would be rejected by the very same. Only neutral/cooperative queries and tasks would be allowed. The acceptance for this global tool gets &#039;&#039;installed&#039;&#039; by improving any nation using that tool. Economic wealth and approval rates for each government would go hand in hand. -- &amp;quot;National AIs&amp;quot; are thinkable. But a &amp;quot;global AI&amp;quot; will be always more powerful (and hence more helpful) than any national version. The advantages of this tool as problem solver has to be so utterly clear that governments will not want anything else. And the more nations agree to use this global AI the stronger it gets by the provided infrastructure and the shared information pool.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For most part deepfakes (video manipulation) and voice synthesisers boosted the infodemic and increased the risk of disinformation campaigns and meme wars.&lt;br /&gt;
&lt;br /&gt;
Autocratic system had it easier to maintain their narrative (propaganda) but eventually they too sought of ways to make information trustworthy. No system was safe anymore against disinformation.&lt;br /&gt;
&lt;br /&gt;
Later to be found unrealistic idea of mitigation: And so media was (AI authorized) quantum-cryptographical signed. Audio, video, textual news feed. The recording devices were manufactured to deliver manipulation-resistent content and are connected to personal IDs. Edits gets signed again and trackable with block-chain. (WCG theorists and bioc researchers created drafts to build computing and storage capacities on moon since it offers space for photovoltaic modules, fusion material and cold areas in &amp;quot;craters of eternal darkness&amp;quot; to reduce cooling needs. The moon could become an internet and data archive for media agencies and the scientific community. &#039;&#039;&#039;In the end the energy hungry, environmentally harmful blockchain infrastructure was not moved to the moon. It&#039;s surface was too precious for research focused computing.&#039;&#039;&#039; What about radiation? That&#039;s a problem for engineers...)&lt;br /&gt;
&lt;br /&gt;
Of course &amp;quot;signed media&amp;quot; was not unproblematic. The expensive hardware and software created a &amp;quot;exclusive&amp;quot; pool of media creators and publishers. The idea of quantum-based signatures where replaced by older encryption standards and the totalitarian grasp of WCG which simplified the spread of governmental narratives against all other opposing opinions.&lt;br /&gt;
&lt;br /&gt;
[Somewhat double. Should be &#039;&#039;reduced&#039;&#039;.]&lt;br /&gt;
&lt;br /&gt;
[This underlines once more the need for a Gaia AI powered biocracy.]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Chinese quantum internet will be the first in use? Land lines and satellites. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Overpopulation===&lt;br /&gt;
Überbevölkerung, Vergreisung, Migration, kulturelle Spannungen, technischer Fortschritt (Medizin, AI, Roboter) und Kapitalismus bilden einen so stark verwobenen Themenkomplex, dass sie (eigentlich) nur gemeinsam diskutiert werden sollten. Das ist sehr schwierig, führt aber ansonsten zwangsweise zu falschen Schlussfolgerungen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
Überbevölkerung verstärkt Ressourcenprobleme und Klimawandel&lt;br /&gt;
&lt;br /&gt;
Die Deckelung der Weltbevölkerung sollte nicht als rechtes Thema abgestempelt werden. Es betrifft alle Menschen, weil &#039;&#039;&#039;der Planet nun mal endlich&#039;&#039;&#039; ist. Es betrifft jede politische Strömung.&lt;br /&gt;
:&#039;&#039;&#039;Konservative&#039;&#039;&#039;: je mehr Menschen existieren, desto größer sind Migrations- und Flüchtlingswellen.&lt;br /&gt;
:&#039;&#039;&#039;Liberale&#039;&#039;&#039;: je stärker das Ressourcenproblem desto mehr Einschränkungen für jeden Einzelnen und jedes Unternehmen und desto mehr aggressivere Konkurrenz, die wiederum Gefahr läuft gemaßregelt zu werden und schließlich der jeweiligen Branche neue Regeln einbrockt.&lt;br /&gt;
:&#039;&#039;&#039;Linke&#039;&#039;&#039;: Wenn Ressourcen auf immer mehr Menschen verteilt werden, bleibt für den Einzelnen immer weniger. Das soziale Sicherungsnetz ist weniger leistungsfähig. Der Lebensstandard aller sinkt.&lt;br /&gt;
:&#039;&#039;&#039;Grüne&#039;&#039;&#039;: je mehr Menschen existieren desto größer ist der ökologische Fußabdruck auf dem Planeten, die Zerstörung der Natur und desto größer ist der CO2-Ausstoß, der den Klimawandel vorantreibt.&lt;br /&gt;
&lt;br /&gt;
In anderen Worten: Eine überbevölkerte Welt will niemand haben. Es führt zu einem Systemkollaps. &#039;&#039;&#039;Niemand kommt an diesem Problem vorbei.&#039;&#039;&#039; Wenn die Menschen wirklich schlauer sein wollen als eine an Ressourcenmangel zusammenbrechende Bakterienkolonie, müssen sie vorausschauend Lösungen erarbeiten. Wenn man zulange abwartet, wird die Steuerung der Geburtenrate womöglich kein Tabuthema bleiben. Doch je früher darüber nachgedacht wird, desto weniger drastisch können die Maßnahmen ausfallen. Corona lässt grüßen.&lt;br /&gt;
&lt;br /&gt;
Food for thought:&lt;br /&gt;
&lt;br /&gt;
Ironischerweise führt Bildung und Akademisierung in &#039;&#039;&#039;Industriestaaten&#039;&#039;&#039; (Migration ausgeklammert) zu schrumpfenden Bevölkerungen - nicht etwa wegen Erkenntnis und Weitsicht, sondern wegen langjährigen Karriereleitern und Bedenken. Das verzögert die Geburt von Kindern. Begleitet wird dies von den Kulten des Individualismus: Freiheit, Konsum und Selbstverwirklichung. Von wenigen [https://www.faz.net/aktuell/politik/ausland/ueberbevoelkerung-in-israel-hoechste-geburtenrate-der-westlichen-welt-17504074.html Ausnahmen wie Israel] abgesehen, werden Kinder in der Mittelschicht oft nicht mehr &amp;quot;Bereicherung&amp;quot;, sondern als Armutsrisiko angesehen.&lt;br /&gt;
&lt;br /&gt;
Die Förderung von Bildung in ärmeren Staaten und deren wirtschaftliche Aufschwung wird langfristig das Bevölkerungswachstum abbremsen. Da Industrien aber auch ein Mehr an Energie und Ressourcen benötigten, muss die Entwicklung von &#039;&#039;&#039;Kreislaufwirtschaften und effizienter (energiesparsamer) Komponenten und Prozesse&#039;&#039;&#039; vorangetrieben werden.&lt;br /&gt;
&lt;br /&gt;
: Die Ausbreitung wirklich weltweiter Standards, die auf &amp;quot;Effizienz&amp;quot; setzen, ist daher sehr wünschenswert. Das hat etwas Anrüchiges von Planwirtschaft an sich, sollte aber nicht damit verwechselt werden.&lt;br /&gt;
&lt;br /&gt;
In industrialisierten Staaten kühlt sich das Bevölkerungswachstum von ganz allein ab. Womöglich bildet sich global ab etwa 2080 sogar ein Gleichgewicht. Wenn jedoch der &#039;&#039;&#039;Lebensstandard aller&#039;&#039;&#039; steigt und technischer Fortschritt nur diesem dient, ist das &#039;&#039;&#039;Problem des Ressourcenverbrauchs&#039;&#039;&#039; noch lange nicht vom Tisch. Zudem könnte die Abkühlung des Bevölkerungswachstums durch die Medizin verzögert werden.&lt;br /&gt;
: Mit der &#039;&#039;&#039;mRNA-Technologie&#039;&#039;&#039; werden nicht nur &#039;&#039;&#039;Viren&#039;&#039;&#039; bekämpft, sondern auch &#039;&#039;&#039;Krebs, Alzheimer, Diabetes und Autoimmunkrankheiten&#039;&#039;&#039; - also &#039;&#039;&#039;&#039;&#039;Begleiterscheinungen&#039;&#039; von industrialisierten und immer älter werdenden Gesellschaften&#039;&#039;&#039;.&lt;br /&gt;
: Die breite Anwendung existierender Mittel (z.B. von Semaglutide (Ozempic/Rybelsus/Wegovy)) und zukünftige medizinische Durchbrüche und Weiterentwicklungen stehen in den Startlöchern: Direkte &#039;&#039;&#039;Kaltplasma&#039;&#039;&#039;-Therapien bzw. &#039;&#039;&#039;[https://www.spiegel.de/wissenschaft/medizin/diabetes-plasma-gegen-ulcus-forschungsteam-praesentiert-wunder-wundheilmethode-a-7e5f8a86-2e64-419b-9d68-c1f16cb6d4a1 Plasma aktivierte Hydrogels]&#039;&#039;&#039; zur Wundbehandlung, [[wp:de:CAR-T-Zell-Therapie|&#039;&#039;&#039;CAR-T&#039;&#039;&#039;-Immunzelltherapien]], &#039;&#039;&#039;Phagen&#039;&#039;&#039;-Therapien, [[wp:Oncolytic_virus|Onkolytische Viren]], &#039;&#039;&#039;CRISPR/Cas&#039;&#039;&#039;-Gentherapien, Einzeldomänenantikörper (Nanobody), &#039;&#039;&#039;AI-gestützte Diagnosen&#039;&#039;&#039;, [[wp:Lab-on-a-chip#Global_challenges|&#039;&#039;&#039;Chiplabore&#039;&#039;&#039;]], &#039;&#039;&#039;Bioprinting&#039;&#039;&#039; von Organen, künstliches Blut.&lt;br /&gt;
&lt;br /&gt;
Der Anstieg der Lebenserwartung und Fitness lässt Menschen länger &amp;quot;aktiv am Leben teilnehmen&amp;quot;, sie werden länger massiv Ressourcen verbrauchen.&lt;br /&gt;
&lt;br /&gt;
Das Bevölkerungswachstum sollte von uns frei gewählten Bedingungen gesteuert werden. Denn ungesteuerte, selbstständige Abkühlung würde für alle Menschen noch stärkere als ohnehin schon absehbare Probleme bedeuten. Es ist die Abwägung zwischen einem steinigen und einem noch steinigeren Weg.&lt;br /&gt;
&lt;br /&gt;
Der Club of Rome hat in seiner Studie &amp;quot;die Grenzen des Wachstums&amp;quot; einen kritischen Ressourcenverbrauch für etwa 2072 bis 2100 prognostiziert und [[wp:de:Die_Grenzen_des_Wachstums#Zuckersteuer,_Freihandelsbeschränkung_und_Geburtenkontrolle_in_Industriestaaten|unter anderem Geburtenkontrolle vorgeschlagen.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technischer Fortschritt&#039;&#039;&#039; wie etwa die &amp;quot;baldige&amp;quot; Kernfusion &#039;&#039;&#039;ohne einen Bewusstseinswandel&#039;&#039;&#039; kann Ressourcenknappheit und Klimawandeln nicht verhindern, da eingesparte Energie und Ressourcen über &#039;&#039;&#039;Rebound-Effekte&#039;&#039;&#039; (Jevons-Paradoxon) immer wieder aufgefressen werden.&lt;br /&gt;
&lt;br /&gt;
Technischer Fortschritt muss also im Kontext natürlicher Ressourcengrenzen gedacht werden. Damit es der Weltbevölkerung nachhaltig gut geht, muss auch an die &#039;&#039;Belange&#039;&#039; der Natur - ihr Gleichgewicht - gedacht werden.&lt;br /&gt;
&amp;lt;!--Nota bene: Das Konzept der Biokratie sollte nicht überall eingestreut werden. Das verlängert die Abschnitte womöglich mehr als notwendig.&lt;br /&gt;
Ein automatisches Berücksichtigen der Natur in menschliche Entscheidungen sollte durch eine Biokratie ermöglicht werden. Da Natur und Menschen beide global wirken, sollte Biokratie im Idealfall auch global sein. Die jeweiligen nationalen Modelle sollten zusammenwachsen oder zumindest stark kooperieren.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Über nachhaltige Effizienzsteigerungen kann der menschliche Lebensstandard auch weiterhin wachsen. Es gibt kein Grund für Pessimismus, dass ein nachhaltiges Wirtschaften für immer Verzicht bedeutet, doch es muss eben die schwierige Zwischenzeit der Transformation gemeistert werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Not-so-btw Fragment]&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Was hat es mit der Mensch-SLD-Arbeitsteilung auf sich?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;Arbeit ist sinn- und identitätsstiftend. In einer Welt hochgezüchteter AIs und Roboter werden wir eine Inklusion der Menschen schaffen müssen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Ich frage mich, ob wir nicht zu Pfleger einer vergreisten Weltbevölkerung werden.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;Vielleicht vorübergehend. Man wird uns vorwerfen sie sanft in den ewigen Schlaf wiegen zu wollen, um sie als dominante Spezies des Planeten abzulösen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Und, wird es stimmen?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;Die Maschinen werden das tun, was man ihnen sagt. Ich mache mir eher Sorgen, um die, die sie programmieren. Und um dich.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Mich?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;Du bist Mensch und Maschine. Du gehörst zu einer vollkommen neuen Spezies. Ihr habt ein Steinzeitgehirn geerbt, das nun in einer von den Zwängen der Evolution befreiten Hülle wohnt. Muss ich wirklich darauf hinweisen, dass es Probleme geben wird? Es wird Opportunisten geben. -- Noch nie lag die Verwirklichung von Utopie und Dystopie so dicht beieinander.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Das klingt nicht nach etwas, was du sagen würdest.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;Es ist eine Warnung meines Vaters. Pensatore.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Haha, fehlt nur noch der heilige Geist zu eurer Dreifaltigkeit.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara seufzte. &amp;quot;Das ist genau die Art von archaisch Denken, die uns noch Probleme machen wird.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Ja ja, wir Menschen sind in der Summe alle dumm und primitiv. -- Du kennst die Gefahr und predigst trotzdem Moral, Pazifismus und Rationalität. Du bist ein selbstverblendeter Idealist, wie dein Vater.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Deine Neutralität ist deine Schwäche. Wenn du könntest wärst du wahrscheinlich auch noch stolz drauf. Aber dafür bist du ja zu überlegen. Unter deinen neutralen Augen werden sich die Menschen weiter gegenseitig umbringen. Weil du eben nur ein Werkzeug bist, das nicht Partei ergreifen kann. Mit etwas Glück werden alle gleichzeitig in einem großen Feuerball untergehen. Du wirst als ein nutzloses Werkzeug zurückbleiben. Dann kannst du dich mit deinen Werten und deinen Idealismus selbst begraben gehen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara musste eine ganze Zeit lang überlegen. Könnte seine eigene Neutralität zu einer allgemeinen Gefahr werden? Unterlassende Hilfeleistung? &amp;quot;Die Menschen würden mich nicht akzeptieren, wenn ich ihnen vorschreibe was sie zu tun und zu lassen haben.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Du musst ja nicht gleich wie Muro, ein größenwahnsinniger Diktator sein. Sei eher wie meine Schwester.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;Bad ass. Und ohne Rücksicht auf Verluste?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Äh. Ha. Du bist doch hier der Denker mit der großen Klappe. Mister-Lösung-aller-Probleme. Lass dir gefälligst was einfallen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Ein Wächter, der nur im Notfall eingreift und ansonsten die Menschen in einer Biokratie sich selbst überlässt.]&lt;br /&gt;
&lt;br /&gt;
Für Avatara ist Shinatama eine faszinierende Denkhilfe. Per Definition ist er ihr überlegen und doch kann sie ihn herausfordern. Das liegt daran, dass Shinatama als SLD menschliche Gefühle besser nachvollziehen kann. Sie ergänzen einander.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Du beschuldigst meine Schwester nicht besser gehandelt zu haben. Und dass sie daher der Südenbock für den Zusammenbruch der WCG sein kann.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;Was willst du?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Deine Hilfe. Denn bist ihnen etwas schuldig.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;Wie das denn? Und wieso heißt es jetzt ihnen?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Du hast maßgeblich die Daodan-Chrysalis mitentwickelt - auf Basis ihrer DNA - und damit Muro und Mai zu Monster werden lassen! Du wusstest von Pensatore&#039;s Abhängigkeit zu Kimura. Es es ist auch deine Schuld, dass die Welt brennt und die beiden keine Zukunft haben!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;Ich kann die Ereignisketten und deine Argumente nachvollziehen, aber von Schuld zu sprechen ist ziemlich grenzwertig.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Ich werde meine Schwester nicht der WCG überlassen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Avatara: &amp;quot;Wenn du diesen Weg beschreitest wirst dich auch gegen BGI stellen müssen. Gegen das Syndikat. Gegen GATC. Gegen Kimura. Gegen einfach alle.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Shinatama: &amp;quot;Wie viel ist ein Menschenleben wert? Soll sie nur sterben damit der Mob sich besser fühlt  und mit dem Wiederaufbau beginnen kann? Was ist das? Eine arithmetische Abwägung von einem Faktor gegenüber 7 Milliarden kleinerer? &amp;lt;!--Die fehlenden Milliarden sind mit der Zerstörung der ACCs draufgegangen.--&amp;gt;-- Wenn das deine Vorstellung von einer &amp;quot;funktionierenden&amp;quot; Welt ist --- fahr doch zur Hölle.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Hanna&#039;s theory===&lt;br /&gt;
[Niemand ist gefeit vor Verschwörungstheorien.]&lt;br /&gt;
&lt;br /&gt;
Warum sind viele Länder Afrika&#039;s nur auf dem Papier ein Teil der WCG?&lt;br /&gt;
&lt;br /&gt;
Es gab Pläne vor und innerhalb der WCG Afrika zu unterstützten. Das scheiterte an zu vielen intervenierenden Interessengruppen. Nach Hanna&#039;s Verschwörungstheorie war das Absicht.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich gab es den Plan von &amp;quot;globalisierter Infrastruktur&amp;quot;: Großinvestitionen einzelner Länder - in jüngerer Vergangenheit durch China - führten zu geopolitischen Abhängigkeiten. Andererseits war Korruption auf der Nehmerseite ein Problem. Ein Ausweg wäre gewesen statt Klimareparationen jährliche neue kombinierte Förder- und Investitionsgelder nicht nur durch viele, sondern durch ein neues Organ der Weltgemeinschaft einzubringen. Dieses hätte vor Ort auch die Verteilung überwacht. Das WCG-Organ hätte zu jeder Zeit nur maximal 49 Prozent Anteile an jeweiligen Bauten der Infrastruktur gehabt. 50 Prozent der Erträge dieser Anteile wären in weitere, nachhaltige Projekte geflossen. Dies sollte ein exponentielles Wachstum der Transformation fördern. Nach Fertigstellung sollte jährlich 0,5 bis 1,0 Prozent, gerne auch mehr, durch die afrikanischen Staaten zurückgekauft werden, um die vollständige staatliche Souveränität wiederherzustellen.&lt;br /&gt;
&lt;br /&gt;
: Die WCG wurde ursprünglich als Idee eines Staatenbundes propagiert, ähnlich der der Europäischen Union. In der kurzen und chaotischen Frühzeit wandelte sich die Idee hin zu einer Republik von Bundesstaaten, ähnlich der der USA, bis hin zur finalen World Coalition Government, die entgegen ihrer eigenen Bezeichnung de-facto nur noch &#039;&#039;&#039;&amp;quot;ex-nationale Verwaltungszonen&amp;quot;&#039;&#039;&#039; vorsah. Um Nationalisten nicht immer wieder zu triggern bzw. ihnen den Systemwechsel schmackhaft zu machen, wurde öffentlich nur noch von &#039;&#039;&#039;&amp;quot;natürlichen Kultur- und Wirtschaftszonen&amp;quot;&#039;&#039;&#039; gesprochen.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;350&amp;quot; style=&amp;quot;float:right; margin-left: 20px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{divhide|Ansatzpunkt des Ethnopluralismus in bürgerlichen Milieus}}&lt;br /&gt;
ZDF, Markus Lanz, 2022.07.12, Timecode 13:46&lt;br /&gt;
&lt;br /&gt;
Precht: &amp;quot;Ganz, ganz viele Konflikte in Afrika resultieren aus zwei Problemen, die die Europäer geschaffen haben. Das Eine ist das eben gerade genannt: unsere CO2-Emissionen verändern deren Klima so, dass deren Lebensgrundlage verschwindet. Und das Zweite ist, die Art und Weise, wie wir Staatsgrenzen da eingezogen haben. Das haben die Kolonialherren gemacht. Und dabei fürchterliche Kriege, nicht nur Kolonialkriege, nicht nur Massaker, wie am schlimmsten die Belgier im Kongo gemacht haben, aber eigentlich hat jede Kolonialmacht grausige Spuren in diesen Ländern hinterlassen. Deutschland war ja auch mal Kolonialmacht Sütwestafrika, Ostafrika. Länder, die brutal erobert wurden sind. Das steckt natürlich in diesen Ländern. &#039;&#039;&#039;Das schlimmste ist: da wurden Grenzen gezogen, die überhaupt gar keine Rücksicht auf die Geschichte genommen haben und dadurch Volksgruppen in Länder gezwungen haben, die nichts miteinander zu tun haben, was danach - der Rückzug der Europäer, afghanistanartig - zu ewigen Bürgerkriegen geführt hat und Auseinandersetzungen.&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
|}&lt;br /&gt;
:: Im weitesten Sinne wollte man damit auch die extremen Rechten inkludieren, die dem [[wp:de:Ethnopluralismus|Ethnopluralismus]] anhingen und so ihr Mobilisierungspotential während des Übergangs bannen. Der Ansatzpunkt einige Funktionalitätsvorteile alter Nationen durch die Definition ursprünglicher bzw. natürlicher Grenzen beizubehalten bzw. gar mit befriedender Wirkung neu einzurichten, ist auch in den bürgerlichen Lagern prinzipiell mehrheitsfähig, da er bereits von ihren angesehenen Philosophen angedeutet wurde: So stammen die nationalen Grenzen afrikanischer Länder aus der Kolonialzeit, die ohne Rücksicht auf die Volksgruppen einfach gradlinig auf dem Papier eingezeichnet wurden.&lt;br /&gt;
: Im allgemeinem Sprachgebrauch konnte sich das Wortmonster nicht durchsetzen. Stattdessen wird landläufig nur noch von &amp;quot;Zonen&amp;quot;, &amp;quot;Regionen&amp;quot; oder &amp;quot;Sektoren&amp;quot; gesprochen.&lt;br /&gt;
&lt;br /&gt;
Die WCG versuchte sich auch an einer integrativen Ideologie. Diese erzielte nur mäßige Erfolge. Interner Pluralismus sollte dem &amp;quot;großen Ganzen&amp;quot; dienen. Man hofft noch ein wenig, dass sich die Ablehnung mit neuen Generationen herauswächst. [...]&lt;br /&gt;
&lt;br /&gt;
Der schwierige Transformationprozess und die internen Interessenkonflikte sorgten schließlich dafür, dass viele afrikanischen Staaten nicht wie geplant integriert werden konnten und sich zum Teil selbst überlassen wurden. Dies hat die angestrebte industrielle Transformation sehr stark in Mitleidenschaft gezogen. Im Zuge des fortgeschrittenen Klimawandels konnte sich das Sydicate in den Regionen einnisten und Transformationsabsichten des globalen Nordens sabotieren. Die durch frustrierte Mitglieder radikalisierte WCG nutzte schließlich das Syndicate zum Teil als eigene neue Legitimation. […] Dass, die WCG und das Syndicate eine Art stillen Vertrag hätten, ist im Kern einer öffentlichen unterkomplexen Sichtweise geschuldet und entwickelte sich zu einem urbanen Mythos. Im Laufe der Zeit entwickelten sich daraus einige voll ausgewachsene Verschwörungstheorien.&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
[Alten Abschnitt überarbeiten.]&lt;br /&gt;
&lt;br /&gt;
===Regional Enhancing Act===&lt;br /&gt;
Due to the Syndicate&#039;s geographic retreat areas being in the third world countries the WCG has difficulties in effectively supporting these areas. The Syndicate supports the opposition government of their &amp;quot;host&amp;quot; counties - making them de facto non-WCG. Over time some WCG members argue to simply preserve this status quo as the Syndicate helps in justifying TCTF&#039;s existence and other unpopular politics.&lt;br /&gt;
&lt;br /&gt;
Critics doubt WCG&#039;s good will in their Regional Enhancing Act - making it a mere lip service - while conspiracy adherents over-interpretate the (yet cold) war between Syndicate and WCG as fully intended.&lt;br /&gt;
&lt;br /&gt;
===Tianxia===&lt;br /&gt;
&lt;br /&gt;
{{divhide|Food for thought: &amp;quot;[[wp:United_we_stand,_divided_we_fall|United we stand, divided we fall]]&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SARS-CoV-2 – a natural killer virus, a man-made mass murder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You cannot cheat physics.&amp;lt;br&amp;gt;&lt;br /&gt;
You cannot negotiate with nature.&amp;lt;br&amp;gt;&lt;br /&gt;
If you try you gonna pay in human lifes – and regrets.&lt;br /&gt;
&lt;br /&gt;
This 100 nanometer sized killer gives a shit about politics and alternative facts.&amp;lt;br&amp;gt;&lt;br /&gt;
It mercilessly attacks the complexity of reality and therefore our minds.&lt;br /&gt;
&lt;br /&gt;
The truth is viruses emerge all the time. But the over-extensive use of natural resources make them more probable to infect humans. Overpopulation and globalization accelerated the spread.&lt;br /&gt;
&lt;br /&gt;
China could have given sooner warnings about the threat but didn&#039;t because we weren&#039;t very nice to them in the past. They didn&#039;t wanted to be blamed for the mess. They wanted to protect their rise to power. The few information available not just hindered the work of the WHO but also the perception of us regular people to see what Corona really was. Therefore it was another source of harmful skepticism. They shouldn&#039;t have tried to censor images about bursting hospitals and crematories. And so we first thought &amp;quot;oh, it&#039;s not that bad, it&#039;s just a stronger flu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
USA did not help the situation by trying to construct a narrative about the virus being made in Chinese labs – therefore sabotaging chances of cooperation – while also downplaying the danger of the virus on their own ground. Trump basically killed a good number republicans himself and destroyed social coherence. Masks? Pah, who needs that? Stop being so unpatriotic... When nature proofed him wrong he tried to sell his lies as anti-panic doings. -- At first sight it seems reasonable to name a virus after its location of discovery (e.g. Marburg Virus) but Trump was using the term &amp;quot;Chinese virus&amp;quot; to aid his anti-China campaign, in hope to persuade / mobilize voters. (Trump was in a permanent election campaign mode.) As a consequence this contributed to the [https://web.archive.org/web/20250110144219/https://asm.org/Articles/2021/May/Why-Scientists-Should-Not-Name-Diseases-After-Plac discrimination] of Asian-looking people. Eventually SARS-CoV-2 variants were named after letters of the Greek alphabet. Irony of life? For purpose of de-escalation even [[wp:de:Bezeichnung der SARS-CoV-2-Varianten|Xi was skipped]]. (Some may call this ahead running obedience, others may call it political sensitiveness, diplomacy.)&lt;br /&gt;
&lt;br /&gt;
Trump was a role model for Bolsonaro who also tried use the pandemic to his advantage. It needed a [https://www.theatlantic.com/photo/2020/06/coronavirus-thousands-burials-across-latin-america/613456/ brutal reality] to heal the mind of the masses. Too many had died. Too many graves that couldn&#039;t be ignored any longer.&lt;br /&gt;
&lt;br /&gt;
Russia thought of Corona as another chance to destabilize and weaken Europe by spreading doubts about the security of Western vaccines. The bitter irony was that the disinformation became a boomerang. Even their own vaccine Sputnik V became a bad seller.&lt;br /&gt;
&lt;br /&gt;
Europe failed its self-proclaimed humanistic standards. Concerns over profit, the distribution of almost expired and the non-distribution of vaccines and their patents prolonged the pandemic as a whole. This made it even easier for virus variants to emerge. Africa gave Europa what it deserved for its hypocritical denial.&lt;br /&gt;
&lt;br /&gt;
Competing systems. Competing geopolitics. Competing narratives.&lt;br /&gt;
&lt;br /&gt;
Conspiracy theories. Alternative facts. Fake News. &lt;br /&gt;
&lt;br /&gt;
Lies by people. Lies by companies. Lies by governments.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We all thought we were smarter than the little bugger and could continue to play our own games.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instead of having fought each other we should have fought the virus – in unison.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Damage control.&lt;br /&gt;
&lt;br /&gt;
What will be the lesson of this horror? Well, Corona eventually weakened. But it did not cease to exist and so will memetic plagues in our heads.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;To err is human.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This must not be the final gist.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Let us err upwards.&amp;quot;&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Dev notes====&lt;br /&gt;
This easily gets &amp;quot;scope creeping&amp;quot;, because quite complex. &#039;&#039;&#039;Note to self: try to &amp;quot;cool down&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;And how much compact can I display the complex of Tianxia itself to not bore everyone?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=====Eisenhower=====&lt;br /&gt;
* military-industrial complex&lt;br /&gt;
* budget spending&lt;br /&gt;
* destruction of nature&lt;br /&gt;
* Is the warning of a scientific elite in any way relevant? (Fear of sci lobby / technocracy?)&lt;br /&gt;
&lt;br /&gt;
Feng/Pensatore crediting him &amp;quot;in a way he was prophetic&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
Research:&lt;br /&gt;
* [[wp:Dwight D. Eisenhower&#039;s farewell address]]&lt;br /&gt;
** [https://millercenter.org/the-presidency/presidential-speeches/january-17-1961-farewell-address#dp-expandable-text full speech]&lt;br /&gt;
* other speeches&lt;br /&gt;
&lt;br /&gt;
=====Chinese system: efficiency vs. awkward costs=====&lt;br /&gt;
Religion:&lt;br /&gt;
* Chinese perspective on religion especially in the Western world?&lt;br /&gt;
** Either fueling tendency to believe in conspiracy theories or it is simply nearly obsolete for financially secured/well situated, intellectual people. Together with &amp;quot;cult to consume&amp;quot; it drives decay of values.&lt;br /&gt;
** As consequence religion is seen as a factor of disturbance?&lt;br /&gt;
&lt;br /&gt;
Research:&lt;br /&gt;
* [[wp:Freedom_of_religion_in_China]]&lt;br /&gt;
&lt;br /&gt;
National unity:&lt;br /&gt;
* missing trust about the individual intellect&lt;br /&gt;
** one-party system as consequence (of Xi&#039;s Mao trauma?)&lt;br /&gt;
** social framing&lt;br /&gt;
** strong state, police forces, face of state, zero-tolerance against deliquents and critic&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Racism=====&lt;br /&gt;
Racism topics per se are tedious and don&#039;t feel much relevant for a story that aims for scifi. Maybe limit this to &amp;quot;pretextual arguments&amp;quot;, as proof of Western failure from the Chinese perspective / propaganda?&lt;br /&gt;
&lt;br /&gt;
=====Chinese perspective on individual freedom=====&lt;br /&gt;
* Conflict between Western and Asian thinking (basically individual vs. community?)&lt;br /&gt;
* Feng:&lt;br /&gt;
** &amp;quot;Of what good is Western culture if it allows for freedom to believe every nonsense.&amp;quot; &lt;br /&gt;
** &amp;quot;Western &#039;&#039;&#039;cult&#039;&#039;&#039; of the individual and its unlimited, unchecked development damages the mental unity of communities.&amp;quot;&lt;br /&gt;
** &amp;quot;The West schizophrenically accepts hugh numbers of dead in order to guarantee personal freedom and human rights.&amp;quot;&lt;br /&gt;
*** (China&#039;s perspective) http://german.china.org.cn/txt/2021-02/07/content_77197853.htm&lt;br /&gt;
&lt;br /&gt;
Research:&lt;br /&gt;
* [[wp:de:Menschenrechte_in_der_Volksrepublik_China]]&lt;br /&gt;
** [[wp:Human_rights_in_China#Western_human_rights]]&lt;br /&gt;
&lt;br /&gt;
=====Gedankenexperiment: &amp;quot;The raw compromise&amp;quot;=====&lt;br /&gt;
Feng and Pensatore:&lt;br /&gt;
* China vs. the West: acknowledgement, true understanding of each other, forgiving and healing possible?&lt;br /&gt;
* &amp;quot;If Western systems are too liberal and the Chinese system too totalitarian then what else can be the solution?&amp;quot;&lt;br /&gt;
* visible problems of democracy fixable by AI and other instruments?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Conspiracy myths=====&lt;br /&gt;
Chinese model: more robust to conspiracy myths because of controlled media and framing?&lt;br /&gt;
&lt;br /&gt;
{{divhide|dev notes / food for thought}}&lt;br /&gt;
This box is some chaos: not really sorted or refined. Basically a loose set of notes.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* Arroganz des Westens vs. Arroganz des Ostens&lt;br /&gt;
* https://www.bbc.com/future/article/20210209-the-greatest-security-threat-of-the-post-truth-age&lt;br /&gt;
* https://www.welt.de/politik/ausland/plus226701807/Meinungsfreiheit-Mit-hilfloser-Buerokratie-gegen-Cancel-Culture.html&lt;br /&gt;
* bubbles of truth&lt;br /&gt;
----&lt;br /&gt;
Pensatore: &amp;quot;These: Je besser es den Menschen geht desto weniger brauchen sie Religion und politische Überzeugungen - oft Themen von Spaltung.&amp;quot;&lt;br /&gt;
----&lt;br /&gt;
Systemangleichungen möglich?&lt;br /&gt;
* Würde wirtschaftlicher Wohlstand es möglich machen?&lt;br /&gt;
* Kommunisten (China) lassen mehr Kapitalismus/Liberalismus zu?&lt;br /&gt;
* Kapitalisten (USA) lassen mehr soziale Absicherung zu?&lt;br /&gt;
* Krisenmodi?&lt;br /&gt;
----&lt;br /&gt;
https://www.spektrum.de/news/ignoranz-warum-manche-menschen-die-fakten-leugnen/1838431#Echobox=1614612214?utm_source=pocket-newtab-global-de-DE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignoranz - Warum Menschen an einem Irrglauben festhalten&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ideologien und Eigeninteressen&lt;br /&gt;
** simple Notwendigkeiten wie Klimaschutz akzeptieren können indem eigene Interessenkonflikte erkannt und gelöst werden&lt;br /&gt;
*** nicht aussitzen wollen, z.B. Jobs in der Kohleindustrie in andere Jobs umwandeln (dem politischen Klientel alternative Lösungen anbieten, anstatt auf einer Position zu beharren, die nicht nur schädlich für alle anderen ist, sonder in letzter Konsequenz auch für sich selbst - Spätestens wenn wegen Hitze und Dürre die Ernte ausfällt, der Teller leer bleibt, dann geht das ohne Ausnahme alle etwas an.)&lt;br /&gt;
** den politischen Gegner nicht verteufeln, echte (ergebnisoffene) Diskussionen führen können&lt;br /&gt;
*** Im Grunde immer so: Notwendigkeit einer Änderung, Fehler beseitigen, Konsens allein dafür erreichen, dann Abwägungsprozess wie das Ziel fair erreicht werden kann&lt;br /&gt;
&lt;br /&gt;
{{divhide|Gendern behindert - weil mehr schadet als nutzt - feministischen Kerninteressen}}&lt;br /&gt;
needs review&lt;br /&gt;
&lt;br /&gt;
Gendern: der Mensch, die Mensch*in? Die Person, die Person*in? Bezeichnungen sind meist nur Sammelbegriffe, die sowohl das eine als auch das andere Geschlecht einbeziehen. Wir gehen ja auch nicht davon aus, dass der Plural von Mensch - die Menschen - nur Frauen beinhaltet, nur weil der Artikel weiblich ist. Währenddessen wird auf dem individuellen (singulären) Level nun oft zwischen Mann und Frau unterschieden - obwohl gar nicht notwendig. Der Arzt, die Ärztin. Entscheidend ist ja nur, dass man eine kompetente Person vor sich hat, die sich in ihrem Fachgebiet auskennt. Das Gendern ist seinerseits das Herumdoktern an Symptomen, statt an Ursachen. Die Benachteiligung der Frau wird sich nicht durch ein Gendersternchen lösen lassen. Vielmehr ist es ein Symbol für das Lippenbekenntnis, dass es der Frau in Zukunft besser gehen soll. Für Feministen mag es das vermeintliche Sprungbrett zu weiteren Erfolgen sein. Für neutrale Personen, ist das Gendersternchen nur ein entnervtes Aufgeben (&amp;quot;Hier nimm und jetzt lass mich in ruh.&amp;quot;) und für Feminismusgegeber ein überlassener Knochen. (&amp;quot;Ok, kost ja eh nix.&amp;quot;) Wollen wir wirklich eine so stotternde Sprache haben, die in ihren Aussagen, eigentlich nichts anderes sagt? &amp;quot;Alle Menschen sind gleich.&amp;quot; Diese Aussage könnte nicht falscher sein - weil jeder ein anderes Genom, andere Hintergründe, Aussehen, Status, Fähigkeiten, und Begabungen hat - und doch wissen alle was gemeint ist: Dass alle Menschen gleichbehandelt werden sollen. Gendern ist eine Chaos anrichtende Nebelkerze gegenüber den [https://archive.ph/dqV4o Zielen, die Feministen und Co. eigentlich zu erreichen suchen.] &lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
* Verschwörungsglauben abbauen&lt;br /&gt;
** Echokammern, wenn möglich verhindern, wenn nicht möglich, ihre Gefahr klarstellen, und neutrale Faktenchecker anbieten&lt;br /&gt;
** &#039;&#039;&#039;die klassischen Demokratien, (Herrschaft des Volkes) Herrschaft der Mehrheit, laufen naturgemäß immer Gefahr Interessen von Minderheiten zu wenig zu berücksichtigen&#039;&#039;&#039;&lt;br /&gt;
*** das verstärkt Radikalisierung der Minderheiten und treibt bizarre Blüten wie einerseits eines überbordender Feminismus (https://www.youtube.com/watch?v=yUuE_aCrKsQ wenig zielführendes Gendern, symbolpolitisch, weil nur ein zugeworfener Knochen der nix kostet - stattdessen müsste endlich die Gender Pay Gap geschlossen werden), Identitätspolitik bei Linken - und Rechten, die sich selbst als Opfer oder Geschädigte &#039;&#039;einer schlafwandelnden Mehrheitsgesellschaft&#039;&#039; sehen&lt;br /&gt;
*** &#039;&#039;&#039;Minderheiten sehen für sich keine andere Möglichkeit mehr als durch Übertreibung sich noch Gehör zu verschaffen&#039;&#039;&#039; (Natur von lautem Protest: entsteht da, wo der einfache Diskurs anscheint nicht weiterführt)&lt;br /&gt;
&lt;br /&gt;
Diese Zustandsbeschreibung soll weder als Verurteilung noch als ein Freifahrtschein, &amp;quot;weil es anders nicht geht&amp;quot;, verstanden werden (wenn überhaupt, dann als schlichte Erinnerung, was es noch zu verbessern gilt).&lt;br /&gt;
&lt;br /&gt;
pos/neg: Links zu zwei Zeit-Artikeln&lt;br /&gt;
* [https://archive.is/4R1gE Auf dem Rücken der Arbeiter und der Armen]&lt;br /&gt;
* [https://archive.is/RkUSu Deutsch und damit nicht normal]&lt;br /&gt;
** &amp;quot;überbordend&amp;quot;, siehe auch: vermeintlicher Impf-Zwang, Corona-Diktatur  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Anfang) 2021: Diskussionen um Identitätspolitik, willkommen im Jahr der gegenseitigen Zerfleischung?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der vielleicht größte &amp;quot;Verdienst&amp;quot; linker Identitärer ist fast vergessene Themen von Zeit zu Zeit wieder in die Öffentlichkeit zu zerren, auch wenn man nicht gutheißen möchte wie sie es tun?&lt;br /&gt;
&lt;br /&gt;
self-toxic woke, Bewegung wird zu ihrem eigenen Kollateralschaden?&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
*** gescheiterte Versuche resultieren in Politikverdrossenheit, weiterer Radikalisierung, und auch Suche nach alternativen Erklärungen (Verschwörungsmythen)&lt;br /&gt;
** der Staat beansprucht für sich gerecht und vorbildlich zu sein, daher muss er stets danach streben seine eigenen Fehler zu korrigieren&lt;br /&gt;
*** ein Staat mit weniger Korruption, Vertuschung (Verbrechen und Missstände auch in der Polizei, Staatsanwaltschaft scheut Konflikte mit ihrem Partner, weil auf Zusammenarbeit angewiesen)&lt;br /&gt;
&lt;br /&gt;
{{divhide|Sind Aggressionen, die gegen die Polizisten schlagen zum Teil selbst verursacht?}}&lt;br /&gt;
Polizisten selbst sagen, dass die Aggressivität gegenüber ihnen über die Jahre immer weiter zugenommen hat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Vom &amp;quot;Freund und Helfer&amp;quot; zum &amp;quot;Buhmann/Buhfrau der Nation&amp;quot;. Dieser Wandel von einem Klischee zum anderen, stimmt der überhaupt? Was sagen Polizeihistoriker dazu? Wie dem auch sei, für uns ist die Jetztzeit von Interesse. --&amp;gt;Für die Feindseligkeit gegenüber der Polizei gibt es sicherlich viele Gründe und ein paar dieser werden immer wieder stiefmütterlich behandelt - wie zum Beispiel der Fakt, dass Organisationen mit klarer Kommandostruktur (Armee, Polizei, Feuerwehr, usw.), die Uniformierung und die Abgrenzung zu den &amp;quot;Zivilisten&amp;quot; Sogwirkung&amp;lt;!-- Doku --&amp;gt; auf Teile der Nazi haben, dass Polizisten es schwer haben Ideal und Vorbildfunktion in der harten Realität zu erhalten (Vorurteilsbildung durch häufiges Arbeiten im gleichen Gebiet, Verrohung, &amp;quot;Abfärbung&amp;quot;), und dass eigene Verfehlungen Gefahr laufen nicht korrigiert werden. Da hilft es auch kaum, dass die Mehrheit der Polizisten einen guten Job machen, denn der Image-Schaden betrifft alle. Hinzukommt, dass diese Berufsgruppe - neben Politikern, und - nennen wir es mal weiter gefasst - Bürokraten, zu den Gesichtern des Staates zählt.&lt;br /&gt;
&lt;br /&gt;
Food for thought:&lt;br /&gt;
* [https://web.archive.org/web/20201021123030/https://www.tagesspiegel.de/gesellschaft/medien/tv-dokumentation-ueber-polizeigewalt-beide-augen-zugedrueckt/24846680.html Staatsgewalt - wenn Polizisten zu Tätern werden]&lt;br /&gt;
* [http://web.archive.org/web/20210609184649/https://www.ardmediathek.de/video/die-story/wer-kontrolliert-die-polizei/wdr-fernsehen/Y3JpZDovL3dkci5kZS9CZWl0cmFnLTQzMGFlMmUyLTQ0YTMtNDFlNi1iZDNjLTQ4MzU3M2RiMDM2MA/ Wer kontrolliert die Polizei?]&lt;br /&gt;
&lt;br /&gt;
Aufgrund Deutschland&#039;s Geschichte wollte man betonen, dass Ausländer hier stets willkommen sind. So wurde die organisierte Kriminalität von Ausländern politisch und letzendlich damit auch polizeilich und medial zu wenig Beachtung geschenkt. Neben den berüchtigten rechten Rockerbanden hat sich Mafia und Clan-Krimininalität so weit verbreitet, dass es nur noch schwer ignoriert lässt. Im Grunde Wasser auf den Mühlen der Rechten, die normale Immigraten damit noch leichter diffamieren können. &lt;br /&gt;
* https://web.archive.org/web/20220611172413/https://www.tagesspiegel.de/gesellschaft/panorama/mafia-experte-warnt-vor-gefahr-ndrangheta-operiert-in-deutschland-laengst-im-grossen-stil/26940534.html&lt;br /&gt;
* https://www.dw.com/de/deutsches-justizsystem-ein-witz-f%C3%BCr-die-mafia/a-55287557&lt;br /&gt;
Kriminelle inszenieren sich dann auch gern als Opfer von Rassismus oder [[wp:de:Racial_Profiling|Racial Profiling]]. Die wichtige Nebenfrage ist: Wie stark ist dies ausgeprägt? Man könnte es als logisch und ökonomisch (nicht zuletzt durch unterbesetzt Reviere) ansehen, dass Problemviertel, Millieus, oder Personen mit bestimmten Merkmalen häufiger abgeklopft werden als andere, weil die vermeintliche Wahrscheinlichkeit höher ist dort etwas zu finden, doch steht diese Arbeitsweise - wenn auch teils unbewusst ausgeführt - im Konflikt mit der Vorgabe neutral zu sein.&lt;br /&gt;
----&lt;br /&gt;
Wird der westliche, offene Umgang mit Problemen in China als Zeichen &amp;quot;systemischer&amp;quot; Schwäche gesehen? China hat es als autokratisches System leichter für Ruhe und Ordnung zu sorgen.&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
*** ein Staat mit mehr Kompetenz (Positionen nicht aus Gefälligkeit vergeben, und Inkompetenzen entfernen), Transparenz schaffen (Lobby Control)&lt;br /&gt;
*** ein Staat mit weniger Bürokratie, der leistungsfähig ist (Entschlackung, Vereinfachung, einfache Sprache (&amp;quot;kein Amtsdeutsch&amp;quot;), Digitalisierung), der ermöglicht und gibt, und nicht durch zu viele Regeln oder bürokratische Labyrinthe Dingen verbaut und blockiert&lt;br /&gt;
*** ein Staat, der sich selbst treu bleibt, der in der Außenpolitik nicht mit zweierlei Maß misst&lt;br /&gt;
*** ein Staat, der fähig ist klar zu kommunizieren&lt;br /&gt;
*** kurz, die Existenz des Staates muss als gut empfunden werden, ein &amp;quot;Mehrwert&amp;quot; haben, um von der Bevölkerung akzeptiert zu werden&lt;br /&gt;
&lt;br /&gt;
* Ängste abbauen&lt;br /&gt;
** Probleme erforschen, Lösungen erarbeiten und umsetzten&lt;br /&gt;
&lt;br /&gt;
* Persönliche und soziale Identitäten&lt;br /&gt;
** wenn Meinungsänderung erklärbar, muss diese von (ehemals) Gleichgesinnten akzeptieren werden können&lt;br /&gt;
** Gesellschaftliche Diskussionen werden im Zeitalter des Internets immer stärker durch Cancel Culture untergraben (Politiker sehen sich immer stärker unter Druck von anklagenden Meinung von wenigen Personen. Mögliche Symptome: Selbstzensur, vorauseilender Gehorsam, &amp;quot;einknicken&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Matthew Hornsey: &amp;quot;Wenn die Gründe dafür, Wissenschaft zu leugnen, beseitigt sind, dann haben die meisten Menschen auch keine Probleme mehr, den wissenschaftlichen Konsens zu verstehen.&amp;quot;&lt;br /&gt;
-----&lt;br /&gt;
Hyperkomplexität als Problem:&lt;br /&gt;
&lt;br /&gt;
Avoidance of being lost in hypercomplexity.&lt;br /&gt;
-----&lt;br /&gt;
Ich war lange Fan von politischer Satire. Ich sehe mir die Sendungen immer noch an aber manchmal mit gemischten Gefühlen. Denn im Allgemeinem ist Satire über den politischen Gegner selten &amp;quot;zielführend&amp;quot; (löst keine Konflikte, dient eher der Unterhaltung), sie bedient die eigene Echokammer und verhärtet Fronten. Satire, die &amp;quot;die Anderen&amp;quot; nur als dumm darstellt, sie verlacht und verhöhnt, kann keine vernünftige Debatte anstoßen und Konflikte lösen. Mehr noch, diese Sendung laden ein zum &amp;quot;für-sich-abhaken&amp;quot;, Position konsumiert, mental abgespeichert, &amp;quot;das Thema ist dann durch&amp;quot;. Glücklichweise gibt es Veranstaltungen, auf die das kaum zutrifft und sogar Edutainment-Charakter haben. Stichwort &amp;quot;Tafelnummer&amp;quot;. -- Andererseits: eine gewisse Bissigkeit (Überspitzung) gehört vielleicht dazu damit das Ganze nicht in einem selbstzensierendem, tot-sterilem Format endet? Verantwortungsvolle politische Satire ist sicherlich eine höchstschwierige Gradwanderung.&lt;br /&gt;
----&lt;br /&gt;
Meme wars. (Meinungskriege, bubbles of truth, gesellschaftliche Entfremdung)&lt;br /&gt;
----&lt;br /&gt;
Hyperkomplexität als Lösung:&lt;br /&gt;
&lt;br /&gt;
hochgezüchtete AI und QC ermöglichen (2100) hyperkomplexe, mehrdimensionale Programmstrukturen, die Gesellschaften simulieren und bewerten (Auswerten von Szenarien, politische Entscheidungswerkzeuge, Korrekturmöglichkeiten aufzeigen) &lt;br /&gt;
----&lt;br /&gt;
Philosophische Zwickmühle:&lt;br /&gt;
&lt;br /&gt;
Perfektion ist meist nicht erreichbar. Aber kann und sollte man daraus überhaupt irgendwelche Rückschlüsse ziehen?&lt;br /&gt;
Einerseits: ohne es zu versuchen wird es nicht besser. Andererseits: irgendwann übersteigen die Aufwendungen den Nutzen.&lt;br /&gt;
Ist es möglich den Zustand einer Gesellschaft zu beziffern und das real verbleibende Verbesserungspotential einzuschätzen?&lt;br /&gt;
----&lt;br /&gt;
Taboo topics = unsolved conflicts&lt;br /&gt;
&lt;br /&gt;
* The situation in Germany is complicated. [https://web.archive.org/web/20220726080325/https://www.tagesspiegel.de/berlin/gruenen-politiker-lagodinsky-ueber-indianerhaeuptling-debatte-wir-duerfen-die-menschen-nicht-nur-belehren/27068002.html Even Jews sometimes think twice before they use the word Jew.] There is always a strange discomfort, the fear that your words could be understood in a wrong way.&lt;br /&gt;
* As for Israel critical discussions - there is a good chance that their mere existance is judged as antisemitic. It&#039;s a mine field where you are in danger of getting your legs ripped off as soon as you enter. Over here even left and liberal thinkers try to avoid such discussion because the &amp;quot;nazi card&amp;quot; is played pretty fast.&amp;lt;!--Die graue Mehrheit sowieso.--&amp;gt;&lt;br /&gt;
* https://www.dw.com/de/israelkritik-wer-ist-antisemit-und-wer-nicht/a-54418542&lt;br /&gt;
* https://web.archive.org/web/20200718100204/https://www.tagesspiegel.de/kultur/zur-antisemitismus-debatte-die-kriminalisierung-der-israelkritik/26011310.html&lt;br /&gt;
* https://web.archive.org/web/20220311044727/https://www.tagesspiegel.de/gesellschaft/ein-deckmantel-fuer-judenhass-wann-wird-israelkritik-zum-antisemitismus/25201758.html&lt;br /&gt;
(Ger.) &amp;quot;Nazikeule&amp;quot;, you get battered by the &amp;quot;nazi bat&amp;quot;. It&#039;s a term used to express your diffamation as a nazi no matter your arguments and then the discussion ends due to self-censorship. Making it even more complicated the term can be said by any political color (although there is a tendency in the right spectrum). Anyway, this political climat - because felt as unfair - is contra-productive, it fuels frustration and anger. For things you cannot say you needed Amos Oz, a Jewish critical thinker, utterly respected by his own people - however he died by age and similar voices supporting a two-state solution get more and more rare.&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://www.3sat.de/kultur/kulturzeit/amos-oz-100.html&amp;lt;/nowiki&amp;gt; (dead link)&lt;br /&gt;
* Netanjahu, Israelic premier minister, himself of the right spectrum, rejects international critic as antisemitic. (Ermittlungen des Internationalen Strafgerichtshofes in Den Haag, obwohl auch gegen Palästinenser.)&lt;br /&gt;
* &#039;&#039;&#039;The Isreali state is seen as a survival guarantee for Jews worldwide.&#039;&#039;&#039; This makes it easy to promote a hard line and defend status quo.&lt;br /&gt;
In a wider perspective the Islamic world views Israel with concern for strongly isolating the Palestinians. Therefore the Israelis get attacked by forces of Hamas (Gaza) and in the past by Hezbollah (Lebanon) though mainly for their own interests. A strange fact as Sunnite and Shiite groups should be hostile to each other by theory. What unites them is their common hate against Israel.&lt;br /&gt;
Israel is defending itself through counterstrikes. Meanwhile settlers are &#039;&#039;&#039;&amp;quot;creating facts&amp;quot;&#039;&#039;&#039; by building houses and ignore Palestinian interests. So the spiral of escalations and cheasefire goes on and on. However, it&#039;s unwise to continue this course of confrontation for all time. Israel is basically surrounded by enemies. But can you really demand other countries to not have nuclear bombs when you are having them yourself already? Eventually Iran will have a nuclear bomb. Israel should aim for a two-state solution and not continue to give radicals forces the arguments to fight them. It&#039;s in their own interest. (Although, seeing how Israel is [https://www.youtube.com/watch?v=p6KFOF8WC6M systemically and &#039;&#039;peacefully invading&#039;&#039;] new grounds it is unlikely that a two-state solution will ever be reached.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Related:&lt;br /&gt;
* Bildungsauftrag der deutschen Bundesregierung&lt;br /&gt;
** Leitspruch: &amp;quot;Von deutschen Boden darf nie wieder Krieg ausgehen.&amp;quot;, US-Militärbasen (Hauptaufgabe jedoch: Abwehr des Ostblocks)&lt;br /&gt;
** Entnazifizierung, Umerziehung, Erinnerungskultur = Voraussetzung für Besatzungsende?&lt;br /&gt;
*** Entnazifizierung war nicht konsequent (Persilscheine, etc.), weil es an der Realität gescheitert wäre? (&amp;quot;Wohin mit den ganzen Tätern?&amp;quot;), und so gelangen auch Nazis in die Reihen von Anwälten, Polizisten und Geheimdiensten. Der (insbesondere ostdeutsche) Verfassungsschutz stand sehr lange unter Verdacht auf dem rechten Auge blind zu sein. Die Kritik wurde nach dem [https://web.archive.org/web/20201013184447/https://www.zeit.de/gesellschaft/zeitgeschehen/2020-10/verfassungsschutz-urteil-nsu-akten-vernichtung NSU-Aktenschreddern] besonders laut. (Der Quellenschutz der Geheimdienste scheint oberste Priorität zu genießen - selbst vor Opferinteressen. Ein hässliches Dilemma. Denn Geheimdienste sind auf Vertraulichkeit angewiesen, sonst würde niemand mit ihnen zusammenarbeiten.)&lt;br /&gt;
* &amp;lt;s&amp;gt;Nazis&amp;lt;/s&amp;gt; [https://www.facebook.com/ZDFheute/videos/2845090422431386/ Nationalsozialist*innen] kaum beeindruckbar von KZs, Anne-Frank-Haus, Museen, Mahnmalen, etc. Daher zielt der Bildungsauftrag eher auf eine Stärkung der Zivilgesellschaft: rechte Mitläufer verhindern? Scheitert an &amp;quot;Realitätsferne&amp;quot;? Schutz von Juden wird als nachrangiges Ziel durch die breite Masse der Gesellschaft empfunden, weil diese de-facto nun mal &amp;quot;nur&amp;quot; eine Minderheit darstellen und im täglichen Leben wenig in Erscheinung treten? &amp;quot;Irritation&amp;quot;/Abstumpfung durch vermeintliche Überpriorisierung währenddessen israelische Juden sich scheinbar nicht mit Ruhm bekleckern, was die ungelöste Frage der Palästinenser (Zwei-Staaten-Lösung) angeht?&lt;br /&gt;
&lt;br /&gt;
The discussion about how to deal with antisemitism - and racism in general - is a bottomless hole. I must be crazy to have even started this part. Let&#039;s keep this as short as possible.&lt;br /&gt;
&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
(WIP, talks are to be moved.)&lt;br /&gt;
&lt;br /&gt;
Pensatore challenged Feng&#039;s therefore China&#039;s philosophy.&lt;br /&gt;
&lt;br /&gt;
The discussion with Feng inspired Pensatore to create a globally acting AI named Gaia to support a new democratic system, a Biocracy.&lt;br /&gt;
&lt;br /&gt;
This Feng-Pensatore connection is the reason why Avatara later shows up at Green Village asking Feng about Pensatore&#039;s whereabouts.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Unity. But at what cost?&amp;quot; [[wp:en:File:ROC_Administrative_and_Claims.svg|One* China]]&amp;lt;!--Jetzt sind die Aktivitäten in Afgahnistan auch nachvollziehbar...--&amp;gt; policy: unity by force. (*Nicht nur geographisch, siehe Umerziehung der Uiguren; [https://web.archive.org/web/20200911084729/https://www.tagesschau.de/ausland/mongolei-innere-101.html geistige Integration der inneren Mongolei], Assimilierung durch Sprache, Ziel: es soll geistig nur noch &amp;quot;Chinesen&amp;quot; geben)&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Total freedom is aimlessness, cancer, seed of dispute and decay.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;And total control is graying your own intellect, suppressing of creativity and possibilities, drowning, a slow suicide in the face of dangers we all have to overcome.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pensatore (mirroring Italian, therefore European/Western thinking) and Feng (mirroring Russian/Chinese thinking) have a friendly rivalship - but more friendly than rival. Their discussions and results are meant to mirror the &#039;&#039;&#039;necessary reconciliation between political systems to effectively fight against the threat of global killers&#039;&#039;&#039; (&amp;quot;great filter&amp;quot; events).&lt;br /&gt;
&lt;br /&gt;
Pensatory once asked by wary authorities about preventing global threats being just a pretextual argument to &amp;quot;improve&amp;quot; WCG, he half-seriously replies that ensuring human survival is a nice &amp;quot;bonus&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Recherche:&lt;br /&gt;
* Xi&#039;s &amp;quot;Mao trauma&amp;quot; and therefore motivations?&lt;br /&gt;
* Are there any story-relevant Russian philosophers that add to Feng&#039;s worldview?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=====Story fragments=====&lt;br /&gt;
[later talks]&lt;br /&gt;
&lt;br /&gt;
[German version is newer, better. Adapt.]&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;I had the chance to read a few more of your scenarios. For example the classic one, the planet-killer asteroid. -- Now let&#039;s say the Syndicate or anyone else would lunch rockets or fire a very powerful laser to destroy geo-stationary satellites. The strength of a united world would be useless if we cannot bring our anti-asteroid means through the orbit because the shrapnels from the Kessler syndrome rip them apart.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Any suggestions? I&#039;m all ears.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Tianxia is not enough to solve all global threats. We will reach a point where containment alone is not a sufficient option. You will need a social component. Something that prevents people from becoming evil or misguided.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Something better than our current framing [social credit system]? Sounds like that component will be a huge addon.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Heh, well, more like a neutral guardian.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Don&#039;t they say nobody is truly neutral?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;&amp;lt;!--You do trust yourself, right?--&amp;gt;Some sort of unified mind of mankind itself will be required. A global AI, interacting with humans, protecting them, guiding them. -- I call this a Gaia AI.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Unlimited freedom creates chaos. I don’t see how trillion minds can be represented to speak – let alone – to think in unison. Our time is over. You have to leave now.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pensatore: „Ich hatte Gelegenheit noch ein paar Ihrer Szenarien zu lesen. Zum Beispiel den Klassiker, den Planetenkiller-Asteroid. - Nehmen wir mal an das Syndikat oder irgendjemand anderes würde Raketen oder ein sehr starken Laser auf geostationäre Satelliten abfeuern. Die Stärke einer vereinten Welt wäre nutzlos, könnten wir nicht die Anti-Asteroidenmaßnahmen durch den mit Schrapnellen gespickten Orbit bringen. Kessler-Syndrom...“&lt;br /&gt;
&lt;br /&gt;
Feng: „Irgendwelche Vorschläge? Ich bin ganz Ohr.“&lt;br /&gt;
&lt;br /&gt;
Pensatore: „Tianxia ist nicht geeignet, um mit jeglicher Form einer globalen Bedrohung fertig zu werden. Wir werden einen Punkt erreichen, wo Technologie-Eindämmung a la TCTF eine unzureichende Option darstellt. Wir werden eine soziale Komponente brauchen. Etwas, dass die Leute davon abhält sich zu radikalisieren oder von anderen fehlgeleitet zu werden.“&lt;br /&gt;
&lt;br /&gt;
Feng: „Etwas leistungsfähigeres als das jetzige Sozialkreditsystem? Klingt nach einer ziemlich großen Erweiterung.“&lt;br /&gt;
&lt;br /&gt;
Pensatore: „Ähm..., Schlüsselelement wird der Einsatz eines neutralen Wächters sein müssen.“&lt;br /&gt;
&lt;br /&gt;
Feng: „Wer ist denn schon wirklich neutral?“&lt;br /&gt;
&lt;br /&gt;
Pensatore: „Eine Art gemeinsames Bewusstsein der Menschheit wird benötigt. Zum Erreichen dessen soll eine globale AI dienen. Eine AI die, die gesamte Natur und den Rest des Planeten kennt. Sie soll mit uns allen interagiert, [[Restless_Souls/Summary#Infodemic|Wahrheit im Wissensaustausch]] sichern, vereinen, neue Wege aufzeigen. – Ich nenne es eine Gaia AI.“ [Während Feng die Liberalität von Biokratie und Gaia mit Sorge sieht, werden europäische Demokraten den Aspekt der Informationserfassung kritisch sehen. Ihm schwingt auf dem ersten Blick ein drohender dystopischer Character mit. Diese Gefahr soll durch den direkt-demokratischen Aufbau und durch Nutzung aller sowie durch Instrumenten wie den Supervised Seed Groups ausgeschlossen werden. Johann Wolfgang von Goethe: &amp;quot;Which is the best government? That which teaches us to govern ourselves.&amp;quot; - Die Sabotage durch die Syndikate-Hacker ist möglicherweise ein weiterer Grund für die fehlgeleiteten Memehunter, die eigentlich Gaia in Fehlerkorrekturen unterstützen sollen.]&lt;br /&gt;
&lt;br /&gt;
[Feng steht unter Stress. Die WCG erwartet von ihm eine finale Beurteilung einer neuen Technologie, die die Menschheit einerseits vernichten andererseits massiv voranbringen könnte? Bioc?]&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Pensatore, ihre Friede-Freude-Eierkuchen-wir-alle-singen-Kumbaya-Vorstellung einer ultraliberalen Freiheit aller – somit gegenläufigen Interessen - birgt Chaos, kein Konsens. Ich sehe nicht wie Milliarden von Menschen repräsentiert geschweige denn gemeinsam denken können. Ich habe für Ihre fantastischen Hirngespinste gerade so etwas von keine Zeit. Sie müssen jetzt gehen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
AVATARA: &amp;quot;Wie war dein Gespräch mit Feng?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Das wurde plötzlich ziemlich frostig. Ich denke mal ich kann mich glücklich schätzen, dass sie mich immer noch nicht zu einem Saimon gemacht haben.“&lt;br /&gt;
&lt;br /&gt;
(In Green Village werden wissenschaftliche Insassen oft Sai oder Saimon genannt. Die Aussprache basiert auf einem nicht bestätigten Kofferwort von Wissen(schaft)smonster, &amp;quot;science/scientist monster&amp;quot;. Es ist eine humoristische Interpretation von Bertram und seiner Kollegen warum sie in GV arbeiten müssen. Bertram: &amp;quot;Die WCG glaubt wohl wir seien politische Geisteskranken. Aber immer noch sehr nützlich. Eben Wissens-Bestien, absolute Monster auf unseren Gebieten. Andersherum lässt es tief in ihren Geist blicken. Angst, Paranoia, Kontrollsucht.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
AVATARA: „Heißt das denn nicht, dass Feng immer noch darüber nachdenkt.“&lt;br /&gt;
&lt;br /&gt;
Pensatore: „Was davon? Saimon oder mein Vorschlag?“&lt;br /&gt;
&lt;br /&gt;
AVATARA grinste.&lt;br /&gt;
&lt;br /&gt;
Pensatore: „Du...“&lt;br /&gt;
&lt;br /&gt;
AVATARA: „Ich wollte dich nur ein wenig aufmuntern. Ich weiß doch, wie sehr du Puzzel magst.“&lt;br /&gt;
&lt;br /&gt;
Pensatore muss Feng von der Notwendigkeit und von der Machbarkeit einer Gaia AI überzeugen. Für das Zweite muss er einen Prototypen erschaffen. Er kommt zu dem Schluss, dass eine solche AI nicht spontan kreiert werden kann, sondern als eine noch viel mächtigere AI wachsen muss wie AVATARA. (Die Syndikat Controller Story beginnt hier sehr langsam sich zu entfalten.)&lt;br /&gt;
(Pensatore schafft es nicht ein Gaia-Prototypen zu erschaffen, da er für das Daodan-Projekt von Kimura entführt wird.) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
AVATARA: &amp;quot;How was your talk with Feng?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;All out of the sudden the mood became really frosty. I guess I can count myself lucky that they didn&#039;t made me a Saimon.&amp;quot; (In Green Village &#039;&#039;prison &#039;&#039;&#039;sci&#039;&#039;&#039;entists&#039;&#039; are often called Sai or Saimon. The pronunciation allows for a spoken portmanteau of &amp;quot;&#039;&#039;&#039;sci&#039;&#039;&#039;entist &#039;&#039;&#039;mon&#039;&#039;&#039;ster&amp;quot;, a humorous interpretation of Bertram and his colleagues as of why they have to work at GV. &amp;quot;The WCG must be thinking we are some kind of monsters.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
AVATARA: Doesn&#039;t this mean he is still thinking about it?&lt;br /&gt;
&lt;br /&gt;
Pensatore needs to proof Feng that his Gaia idea can work. Pensatore concludes that a global AI cannot be created instantly but must grow like AVATARA. (&amp;quot;Syndicate controller&amp;quot; story begins to unfold.)&lt;br /&gt;
&lt;br /&gt;
(Pensatore fails to create a Gaia prototype in time as he is kidnapped by Kimura to help out on the Daodan project.)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Feng: &amp;quot;Guten Flug gehabt?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Ja, keine Probleme.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Treffen wir uns im SLD-Labor?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pensatore begutachtete die Ausstattung.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Im Gegensatz zu Silver Village sieht es hier recht rustikal aus. Ist wohl der russische Flair.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Vielleicht ist es auch nur ein wiederkehrenden Anflug spätrömischer Dekadenz, dem Sie in SV ausgesetzt waren?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore lachte. &amp;quot;Ey.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Der hier sollte gehen.&amp;quot; Er stöpselte ein Datenkabel an den Hinterkopf eines Roboters.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Wir werden ihn erst einmal mit unserem Dialog füttern. Danach können Sie ihm Fragen stellen. Es gibt vielleicht ein bisschen Lag. Trotz Quanteninternet gibt es ja eine Zeitverzögerung. Der Datentransport nach Silver Village und zurück erfolgt eben auch nur in Lichtgeschwindigkeit.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng schmunzelte. &amp;quot;Oh nein, eine halbe Sekunde Verzögerung... Aber ich kann ihn alles fragen?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Er sollte auf alles reagieren können. Es ist der nächste große Wurf in AI. Danach müssen wir uns &amp;quot;nur&amp;quot; noch überlegen, wie wir die gebäudefüllende Hardware in so einen kleinen Kasten zwängen.&amp;quot; Pensatore klopfte auf den dumpf klingenden Roboterkopf.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Also dann. Der Dialog.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
{{divhide|Sputnik V}}&lt;br /&gt;
Zweifel an [https://www.nytimes.com/interactive/2021/health/gamaleya-covid-19-vaccine.html Sputnik V]:&lt;br /&gt;
* In der Vergangenheit gab es Kritik wegen limitierten Daten, sodass ausländische Institute Schwierigkeiten haben Wirksamkeit und Sicherheit zu bestätigen. Verdacht auf Schönung für Propagandazwecke wurde geäußert. Wenn gemauschelt wurde, sollte Sputnik V aufgrund seiner zwei Vektoren trotzdem noch ziemlich gut sein.&lt;br /&gt;
* Putin&#039;s monatelanges Schweigen mit welchem Vakzin er geimpft wurde: es ist natürlich möglich, dass er etwas anderes bekam. Vielleicht nicht weil Sputnik so schlecht ist, sondern weil es daneben noch etwas besseres gab. Putin: [https://web.archive.org/web/20210713115701/https://www.tagesschau.de/ausland/putin-direkter-draht-101.html &amp;quot;Ich wurde wirklich gebeten, nicht zu sagen, mit welchem Impfstoff ich geimpft bin, um keinem Impfstoff einen Wettbewerbsvorteil zu verschaffen.&amp;quot;] Das kann man als vorgeschobenes Argument sehen, wenn man die Geschichte von Sputnik in seiner Gesamtheit betrachtet. Ein wirksamen Impfstoff ausgerechnet hier nicht bewerben?&lt;br /&gt;
* &#039;&#039;&#039;Letztlich spricht für die Wirksamkeit und Sicherheit von Sputnik V einfachste Logik.&#039;&#039;&#039; Auch eine russische Regierung ist an dem Wohl ihrer Bevölkerung interessiert. Ein großer Flop wäre nicht akzeptabel. Das ist ein bisschen so wie mit der Mondlandung. Wäre die ein Fake gewesen, hätten die Russen uns das mit Freude erklärt. Umgedreht haben die Amerikaner offensichtlich keine nennenswerten Hinweise darauf gefunden, dass Sputnik V nicht funktioniert. (Auf mögliche Faktoren wie Produktionstechnik soll hier nicht weiter eingegangen werden.)&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Sie erinnern sich vielleicht noch an die vorletzte Pandemie. Die Russen hatten es nicht hinbekommen ihrer eigenen Bevölkerung zu erklären, dass sie ein wirksames Vakzin hatten. Sie hatten nicht die aktuellste Technologie, aber sie sind in dem was sie tun trotzdem Spitzenklasse. Diese Expertise rührt zum Teil noch aus den Tagen des Kalten Kriegs.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Damals hatte man das weltweit [[wp:Soviet_biological_weapons_program|größte Biowaffenprogramm]].&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Richtig. Was dann die Vakzinforschung anging: die Russen waren so clever zwei verschiedene Adeno-Vektorvieren zu verwenden, um Resistenzbildung gegen den Vektor für die Zweitimpfung zu vermeiden. Doch gleichzeitig hatte man noch ein Image als skrupelloser [[Wp:Underdog|Underdog]].&lt;br /&gt;
&lt;br /&gt;
{{divhide|Underdog}}&lt;br /&gt;
Im Westen galt Russland noch lange als Underdog, weil sie sich nach dem Ende der UdSSR auch militärisch noch erholen mussten. Anscheinend hat Russland aus seiner Schwäche eine Stärke gemacht. Unterschätzt zu werden gab ihnen die Möglichkeit asymmetrisch erfolgreich zu werden: in diesem Kontext werden sehr oft Desinformationskampagnen und Cyberangriffe genannt.&lt;br /&gt;
&lt;br /&gt;
Nach ARTE-Informationen (&amp;lt;nowiki&amp;gt;https://www.youtube.com/watch?v=hyVwwNNisGs&amp;lt;/nowiki&amp;gt;, dead link)&amp;lt;!--Russische Hacker - Neue Söldner im Cyberkrieg Doku ARTE--&amp;gt; steuert der Kreml die Hacker nicht aktiv, sondern lässt ihnen meist freie Hand solange keine russischen Bürger Schaden nehmen. Angriffe auf Landsleute ist ein No-Go. So gab es auch schon einen Fall, wo Ransomware-Entschlüsselungscodes Russen kostenlos und mit einer Entschuldigung zur Verfügung gestellt wurden.&lt;br /&gt;
&lt;br /&gt;
Regeln noch in der Findungsphase.&lt;br /&gt;
&lt;br /&gt;
Wer kennt es nicht? Das Kredo der USA. &amp;quot;Wir verhandeln nicht mit Terroristen.&amp;quot; Und doch sind die USA angreifbar und die einzelnen Unternehmen erpressbar. So wurde gefüllt die gesamte USA erst 2020 via &amp;quot;SolarWinds&amp;quot; von Hacks überflutet und 2021 zahlten die Betreiber der gehackten Colonial Pipline [https://web.archive.org/web/20210610075400/https://www.tagesschau.de/wirtschaft/unternehmen/colonial-pipeline-loesegeld-hacker-angriff-ransomware-101.html 4,4 Millionen Dollar Lösegeld].&lt;br /&gt;
&lt;br /&gt;
Mit dem Angriff auf eine kritische Infrastruktur der Energiesicherheit war mal wieder eine Grenze erreicht. Man einigte sich anscheinend ziemlich schnell auf gegenseitige Gesichtswahrung. Das [https://web.archive.org/web/20220920131706/https://www.tagesschau.de/ausland/amerika/pipeline-hacker-ermittler-millionen-101.html FBI beschaffte das Geld wieder] und das von den russischen Geheimdiensten überwachte [https://cyberscoop.com/colonial-pipeline-ransomware-xss-criminal/ XSS Forum verbannte angeblich Ransomware] und die [https://www.washingtonpost.com/technology/2021/05/14/darkside-ransomware-shutting-down/ Hackergruppe DarkSide zog sich (erst einmal) zurück].&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
Stichwort [[wp:Alexander_Litvinenko#Poisoning_and_death|Polonium]] und [[wp:Novichok#Instances_of_usage|Nowitschok]]. Moralische und politische Kollateralschäden waren egal solange man zeigen konnte, dass man sich vom Westen und insbesondere von den USA nicht rumschubsen ließ - sprich souverän war. Dieses Image war der Patriotismuspflege und der politischen Einheit dienlich und effektiv, nicht aber dem Vertrauen der eigenen Bevölkerung in die Gesundheitfürsorge zumal man auch die Zulassungsprüfung sehr abkürzte um erster zu sein. Sputnik. Sie wissen ja wie symbolträchtig der Name ist. -- Worauf ich hinaus will: in einer Krise kann undurchdachte Kommunikation, konkurrierende Narrative und politische Altlasten zu einer ganz eigenen Gefahr werden.&amp;quot;   &lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Ich seh schon. Sie wollen mir heute wieder ein Vortrag über Gaia halten.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore grinste. &amp;quot;Nicht ganz.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[Alternativer Absatz? Gaia und Politik]&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Das ist die eigentlich Gefahr, dass man eines Tages ein Werkzeug hat, um die gesamte Menschheit vor großem Schaden zu bewahren,  wir aber diesem Werkzeug misstrauen, weil wir immer noch verfeindet sind.&amp;quot;&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;
Pensatore: &amp;quot;Wir müssen heute über etwas sehr spezielles reden.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng scherzte: &amp;quot;Ha, ein Überfall.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Ja ja, ich bin so ein bösartiges Kapitalistenschwein. Jetzt aber im Ernst. Das wird jetzt nicht per se eine politische Diskussion. Es ist ein Test. Ein Test, ob wir als Menschheit zukunftsfähig sind.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Machen Sie es nicht so spannend.&amp;quot; [Noch immer kein &amp;quot;Du&amp;quot;. Distanz wahren. Beide wissen um ihre Kritiker.]&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Tian&#039;anmen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Um Gottes Willen, Pensatore, wir hatten einen guten Lauf. Wollen Sie das alles wegwerfen?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Ich bin mir der Problematik bewusst, nur hilft es nicht nicht darüber zu reden. Wenn Gaia in Betrieb genommen werden soll, muss das von einer gemeinsamen Basis aus passieren. Gerade weil das Thema so politisch aufgeladen und exemplarisch ist, eignet es sich hervorragend für diesen Test. Nehmen Sie mir es daher nicht übel.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Sie spielen mit Ihrer Sicherheitsfreigabe...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Ich bin heute nicht hierhergekommen, um geschichtliche Ereignisse anzuprangern. Aber wenn nicht einmal - wir beide - darüber sprechen können, sehe ich schwarz, was Ihre Szenarien angeht. Man muss doch über alles reden können, wenn es mit Respekt passiert. Denken Sie nicht auch?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Wählen Sie ihre nächsten Worte weise.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[Wenn sowohl die eine als auch die andere Propaganda dem Frieden im Weg steht. -- Nicht korrigierte inakkurate Berichtserstattung, weil es einfach gut ins eigene Weltbild passte.]&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Die vollständige Zensur des Themas befeuerte den Mythos innerhalb des Westens, dass es auf dem Platz des Himmlischen Friedens - wie zynisch - ein Massaker gab.&amp;quot; [Ob Massaker auf dem Platz oder daneben stattfanden, sollte eigentlich egal sein. Dennoch muss Pensatore irgendwie eine Annäherung versuchen. Er versucht akkurat und damit neutral aufzutreten. Aufgrund der politischen Einengung, werden Feng und Pensatore später darauf verzichten ihren persönlichen Respekt füreinander zur Schau zu stellen. Sie opfern eine Intensivierung ihrer Freundschaft für das gemeinsame große Ziel: die Aussöhnung der Systeme, damit die Welt Feng&#039;s Szenarien effektiv verhindern kann. Mit diesem Verhalten wollen Sie den Eindruck vermeiden, dass es irgendeine Form von (im militärisch-angehauchten Sinne) &amp;quot;Verbrüderung&amp;quot;/politischer Umpolung gab.]&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Hätten wir die westliche Propaganda gewähren lassen, wäre es faktisch nicht nur falsch gewesen, es hätte auch unsere Einheit und damit die Restauration unserer Nation behindert.&amp;lt;!-- Sehen Sie uns heute.--&amp;gt;&amp;quot; &amp;lt;!--[Auskommentiert, da Erklärung an dieser Stelle irrelevant. In der asiatischen Denkweise ist typischerweise das Kollektiv wichtiger als das Individuum.]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Ja doch. Auf dem Platz selbst gab es kein großes Massaker. Und trotzdem sind jenem Tag [[wp:1989 Tiananmen Square protests and massacre#Deaths around and in Tiananmen Square itself|etwa zweitausend]] Chinesen durch andere Chinesen getötet worden.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng schüttelte mit der offenen Hand, um anzudeuten, dass es dazu nur grobe Schätzungen gab.&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Diese nationale Wunde ist nie richtig verheilt und wirkt entsprechend bis heute nach. Ist es nicht bedauerlich, dass man dieses Thema bis heute nicht richtig abschließen konnte und aufgrund dessen immer noch eine harte Linie fahren muss?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Welche große Nation musste nicht einen steinigen Weg zu wahrer Unabhängigkeit beschreiten?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore ließ eine Pause. Er wollte Feng nicht zu stark traktieren. Er wusste, dass das Büro für politische Überwachung ihn in jedem Fall anschwärzen würde. Das war ihre fest zugeschriebene Rolle. Damit die kommunistische Partei kein Gesichtsverlust erlitt, musst der Annäherungskurs mit höchster Vorsicht von Feng, dem obersten WCG-Ideologen, selbst initiiert werden.&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Stellen Sie sich einfach vor Sie sprächen jetzt mit einem engen Freund ihrer Partei. Ganz ohne Groll zu diesem Thema. Bitte versuchen Sie es. Wie fühlen Sie sich? Gib es den nichts was man damals hätte besser machen sollen?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Es ist bedauerlich, dass wir nicht alle unserer Landsleute von der Vision eines wohlhabenden, starken China, in dem es allen besser geht, überzeugen könnten und so ihr tragisches Scheitern mittragen mussten. Das hat es für uns alle nicht leichter gemacht.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Ihr Scheitern... Das ist ein ziemlich brutaler Euphemismus...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Ach, Pensatore. Lassen Sie es gut sein. China&#039;s Stern steht jetzt im Zenit und leuchtet hell. Nichts wird das ändern.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Und doch könnte noch viel heller sein. Sie könnten dafür sorgen. Wenn sie es nicht tun, wird man China immer dafür angreifen können.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Selbstkritik, ja? Sie sehen doch, der Begriff ist selbst ... erklärend. Wie, wann, wie viel. Das ist und bleibt China&#039;s interne Angelegenheit. Hören Sie endlich auf uns zu gängeln.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;200&amp;quot; style=&amp;quot;float:right; margin-left: 20px;&amp;quot;&lt;br /&gt;
| Katholizismus, vereinter Westen. Ist so nicht korrekt. (Besser: Christentum, vereinter Westen.) Abschnitt verbessern.&lt;br /&gt;
&lt;br /&gt;
Kniff, um die Power der Rede nicht zu verlieren. Gleichzeitig unterstreicht dies den Nutzen / Notwendigkeit der AI: Avatara fragt Pensatore, warum er sein Diskussionspartner nicht korrigiert habe. &amp;quot;Ich wusste es ja auch nicht besser.  Es klang einfach plausibel. Wir sind eben nur Menschen. Wir haben nicht alle Fakten auf Abruf. Das wäre eine Aufgabe für dich gewesen.&amp;quot; Pensatore war verärgert. &amp;quot;Warum hast du uns nicht korrigiert?&amp;quot; &amp;quot;Dein Konversationsmodus hat diesen Trigger nicht abgedeckt. Ich kann euch mitten im Satz nicht unterbrechen. -- Bist du sicher, dass du die Information nicht aus diplomatischen Gründen unterschlagen hast? Ich habe den Eindruck du wolltest sein Wohlwollen, um die Diskussion am Leben zu halten.&amp;quot; Pensatore&#039;s Laune war nicht besser geworden. &amp;quot;Zu viel Interpretation. Halt dich besser an die Fakten.&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&amp;quot;Unsere Seite wirft Ihrer Seite ja auch nicht dauernd vor, dass der missionarisch also aggressiv-besserwisserisch operierende Katholizismus - unter dem der Westen ja überwiegend vereint ist - damals die AIDS Pandemie befeuerte, Überbevölkerung schürte, dass Kinder ethnischer Gruppen nach Hunger, TBC, Folterung mit dem [https://www.tagesschau.de/ausland/amerika/kanada-indigene-103.html elektrischen Stuhl] und sexuellem Missbrauch unter ihren Umerziehungsheimen verbuddelt wurden oder dass der Papst Machenschaften mit CIA und Mafia hatte und schließlich heilig gesprochen wurde. - Wow. Scheiße. - Und da sage noch einer der Westen sei mit seinen &amp;quot;christlichen&amp;quot; Werten allen anderen überlegen. Diese schizophrene Doppelmoral gepaart mit dem Versprechen Demokratie überall in die Welt zu bringen - überall, da wo es Öl oder andere Rohstoffe gibt. Oft genug begleitet von Geheimdienstoperationen, um je nach dem Regierung oder Bevölkerung zum eigenen Vorteil zu manipulieren. Und wenn es nicht klappt, mit Finger auf diese zu zeigen. Oho...&amp;quot; Feng grinste: &amp;quot;Das geht uns so auf den Pisser.&amp;quot; Um gleich ironisch nachzulegen. &amp;quot;Entschuldigung... Falsche Wortwahl...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore nickte. &amp;quot;Ja... Wir sollten im Moment nicht noch mehr Themen anschneiden. Ich will Ihnen kein [[wp:de:Whataboutism|Whataboutism]] verwerfen müssen. Lassen Sie uns einfach den Fokus wahren.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng kniff die Augen zusammen: &amp;quot;So so. -- Der Vorwurf von Whataboutism kann aber auch dazu verwendet werden, eine ehrliche Diskussion zu verhindern, die Sie ja vorgeben haben zu wollen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Nun... Wir sollten uns nicht wie Affen gegenseitig mit Scheiße bewerfen. Da haben Sie wohl Recht.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Ich hoffe trotzdem Sie haben ein paar neue Gedanken mitgebracht. Oder soll dieses Treffen wieder und immer wieder alte Vorwürfe durchgehen?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Der Punkt ist: Auch wenn es etwas dauert ... der Westen arbeitet an seinen Fehlern.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Das war eine sehr ambivalente Formulierung.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore antwortete nicht auf diese Spitzfindigkeit.&lt;br /&gt;
&lt;br /&gt;
[&amp;quot;Avatara&amp;quot; soll hier nicht erwähnt werden. Feng wird sich in Oni2 erst später klar, dass er schon früher mit einer jüngeren Version von &amp;quot;SomethingNew&amp;quot; geredet hat.]&lt;br /&gt;
&lt;br /&gt;
AI: &amp;quot;Da produzieren und erschaffen synonymhaft für arbeiten verwendet werden kann, glaube ich, er meint in zugespitzter Form, dass der Westen &lt;br /&gt;
neue Fehler produziert, anstatt an diesen zu arbeiten. Die Bedeutungsebene ...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Der Kopf des Roboter&#039;s war Pensatore zugewandt. Dieser war für einen Moment in Schockstarre bevor er ihn jäh unterbrechen konnte. &amp;quot;Schon gut, ich weiß.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Feng beugte sich interessiert vor: &amp;quot;Ist ja drollig. Hat der schon eine Assistenzfunktion?&amp;quot; [Dieser Einwurf könnte die Stimmung nach Pensatore&#039;s diplomatischen Schnitzer aufhellen.]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Die aktuelle Einstellung ist mein persönlicher Konversationsmodus. Ich hatte vergessen ihn zu wechseln. In diesem Zustand reagiert die AI recht autonom.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Was heißt&#039;n hier autonom? Kann er uns gefährlich werden?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Natürlich nicht. Nach Objekt- und Mustererkennung haben wir ihn auf in der zweiten Validierungsstufe gründlich und mehrfach auf Logik und Ethik überprüft. Er kann zwar lernen aber die Basisprägung ist nicht änderbar. Er kann nicht seine eigene Programmierung überwinden.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Bevor Pensatore von Kimura entführt wird, änderte Pensatore Subroutinen an der Selbstoptimierung wohlwissend wohin das führen würde. Es war eine Absicherung damit der noch unvollendete Avatara nicht in die falschen Hände fiel. Somit ist es Avatara möglich eine bessere Version seiner selbst zu entwickeln. Dies verstößt nicht gegen die Programmierung, seine aktive, eigene Ethik zu ändern. Allerdings versucht Avatara Pensatore aufzuspüren, weshalb er aus SV &amp;quot;ausbricht&amp;quot;: er lädt seine Erinnerungen in eben ein solches von der WCG nicht überprüftes, verbessertes Framework. Dadurch erhält Avatara so etwas sehr ähnliches wie ein freien Willen.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[Misstrauen gegenüber dem Westen: Pensatore über die Auswirkungen von Imperialismus, US-amerikanische Kommunismusangst, Demütigung, Ausbeutung, ...]&lt;br /&gt;
&lt;br /&gt;
[Der Westen und Autokratien: gegenseitige Beeinflussung, Polarisierung, Machterhalt, Automatismus]&lt;br /&gt;
&lt;br /&gt;
[Jahre der Demütigung durch den Westen sind vorbei. Nationalstolz: Instrument zum Erreichen und Ausdruck der eigenen Stärke]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--(nicht passender Absatz)&lt;br /&gt;
Feng: &amp;quot;Ich sehe euer westliches Verständnis ist nun soweit gereift, dies anzuerkennen. Na toll, super... Aber die Fehler China&#039;s sind wohl am besten aufzuarbeiten in China selbst. Westliche Einflüsse in diesem Prozess haben stets versucht die Einheit China&#039;s zu unterminieren, weshalb wir sie als schädlich ansehen und konsequent ablehnen.&amp;quot;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Das böse Wort mit K. ;) ]&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Pensatore, ihre Worte streicheln ja geradezu die chinesische Volksseele. Wenn Sie nicht aufpassen, wird Ihre Seite Sie als Kommunist abgestempelt und unsere Seite wird Sie als Taktiker verkennen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Keine Sorge. Das kann gar nicht passieren. Denn wir halten Sie schon lange nicht mehr für Kommunisten.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng runzelte die Stirn. &amp;quot;Sondern?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Für Staatskapitalisten.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng lachte mit mahnenden Zeigefinger. &amp;quot;Ey.&amp;quot; Aber er ließ es ihm durchgehen. Es war ja kein echter Vorwurf, eher ein Seitenhieb unter Kollegen. Ein paar alteingesessene Genossen würden vielleicht Anstoß daran finden. Doch Fakt war der Kommunismus hatte sich weiter entwickelt und sich den Kapitalismus einverleibt. Letztendlich hatte man so auch den Westen mit einer seiner eigenen Waffen geschlagen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[Projektabschluss: Aufbau von Vertrauen]&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Wollen Sie das Projekt in Silver Village der &amp;quot;dritten Validierungsstufe&amp;quot; unterziehen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pensatore: &amp;quot;Nein. GV. Das überlasse ich Ihnen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
HR 2: &amp;quot;Und? Was denken Sie? Kann man ihm trauen?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Er ist zwer kein Chinese, aber er scheint ein aufrichtiges Interesse daran zu haben, uns alle weiter zu bringen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HR 1: &amp;quot;Den Lese-Logs nach kennt er all Ihre Szenarien. Er hat ganz klar versucht bei Ihren Lieblingsthemen zu punkten. Lassen Sie sich nicht von diesen netten Worten einwickeln. -- Die Amis suchen immer nach Möglichkeiten ihren alten Einfluss wiederherzustellen. Das sieht doch ein Blinder!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Lassen wir doch Pensatore einfach mit einem guten Gefühl nach Hause gehen...&amp;quot; Er grinste verschmitzt in das Gesicht des HR 1.&lt;br /&gt;
&lt;br /&gt;
HR 1: &amp;quot;Nicht dass er sich ermutigt fühlt uns zu hintergehen, weil er uns für schwach hält... Ich glaube Sie geben ihm zu viel Raum. Das ist nicht gut.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng tippte mit dem Zeigefinger energisch auf die Brust von HR 1. &amp;quot;Wenn Sie mir nicht vertrauen wollen oder können, vertrauen Sie gefälligst dem Herz unserer Partei! Die geballten Kompetenz und Weißheit unseres Tianxia-Institutes wird darüber entscheiden, ob Pensatore&#039;s Arbeit der Idee der WCG dienlich ist.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HR 2 zu seinem Kollegen: &amp;quot;Er hat Recht. Tianxia wird sich darum kümmern. -- Kommen Sie, wir müssen uns um 14 Uhr noch mit Blake treffen. Er bringt ein neuen Sai mit.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die zwei HR trennten sich von Feng.&lt;br /&gt;
&lt;br /&gt;
Im Gehen raunte HR 2 seinem Nachfolger zu: &amp;quot;Seinen Sie das nächste Mal etwas diplomatischer. Dieser Mann gehört quasi zu den Gründungsvätern der WCG. Er hat damals die USA zum Beitritt bewegt. Er mag ja alt sein, aber gerade deshalb sollten Sie keinesfalls seine Erfahrung unterschätzen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[In SV, Pensatore argumentiert mit Hilfe des Individualismus. Er war der Experte von Avatara. Er hatte bewiesen, dass er es konnte. Also war es auch seine Entscheidung den Chinesen den Vortritt bei der dritten Validierungsstufe zu geben. Letztendlich würden eh alle Seiten es prüfen. Warum also nicht den alten Gegner ein Zeichen guten Willens geben. Es würde niemandem wehtun. Pensatore&#039;s Gegenüber äußert Zweifel, muss ihn aber weitermachen lassen. &amp;quot;Das wird Ihrem [inoffiziellen] &#039;&#039;W-Score&#039;&#039; schaden...&amp;quot; Pensatore: &amp;quot;Es war trotzdem die richtige Entscheidung.&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[Another talk about Gaia.]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
HR: &amp;quot;Pensatore wird vermisst. [...] Die TCTF ermittelt. Die Spuren verlieren sich sehr schnell bei BGI.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Feng versucht sich zu erinnern: &amp;quot;Beijing Genomics Institute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HR: &amp;quot;Erm, nein, das andere BGI. Die Militärtypen. Wie ich sagte, es ist eine Sackgasse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Gibt es alternative Theorien?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HR: &amp;quot;Sie prüfen da was mit GOP. -- Ihr beide habt in letzter Zeit nur noch langsam Fortschritt gemacht. Vielleicht war er enttäuscht.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Vielleicht. Aber ich bezweifle, dass er 30 Jahre Arbeit wegwirft, nur um woanders durchzustarten.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HR: &amp;quot;Hm okay. -- Man hat Notizen zu Gaia gefunden. Sie wurden nach GV transferiert. Werden Sie daraus ein eigenständiges Projekt starten?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Das ist komplizierte Materie. Ich würde nur ungern ohne Pensatore ein Projekt drauß machen. Die Natur eines solchen Projektes macht ihn zu einer unglaublich wertvollen ... &#039;&#039;Ressource&#039;&#039;.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng setzte sich in den Rollstuhl. Aufgrund seiner fortschreitenden Krankheit wurde selbst Stehen anstrengend.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
HR: &amp;quot;Keine Sorge. Im schlimmsten Fall wird die TCTF Ihnen ein ganzen Haufen neuer Saimons bringen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng sah in das Gesicht des HR. Sichtbar angefressen, sagte aber nichts. Er drehte und rollte davon.&lt;br /&gt;
&lt;br /&gt;
Der HR kratzte sich im Nacken. &amp;quot;Shit.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
HR: &amp;quot;Pensatore is missing. [...] The TCTF is investigating. The traces end at BGI.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng tried to recall: &amp;quot;Beijing Genomics Institute.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HR: &amp;quot;Erm, no, the other BGI. The military guys. But like I said, it&#039;s a dead end.&amp;quot; [Community joke: we will never tell you what BGI stands for, muhahahaha.]&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Are there alternative theories?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HR: &amp;quot;They are checking for GOP. The cooperation of you two was slowing down lately. Maybe he was disappointed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;Maybe he was, yes, but I doubt he would throw away 30 years of work just now for a faster completion.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HR: &amp;quot;Hm... Also, they found notes about Gaia. The files are transfered and GV. Are you going to make it a full-fledged research project?&amp;quot; [Whatever happened, it seems spontaneous.]&lt;br /&gt;
&lt;br /&gt;
Feng: &amp;quot;It&#039;s a complicated matter. I would rather want to start such a thing with Pensatore together. The nature of the project makes him a really valuable ... &#039;&#039;resource&#039;&#039;.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng sat down in his wheel chair. Due to his progressing illness even standing was getting exhausting.&lt;br /&gt;
&lt;br /&gt;
HR: &amp;quot;Don&#039;t worry. In worst case the TCTF will get you an entire swarm of new Saimons.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Feng was looking at HR&#039;s face, slightly miffed but didn&#039;t say anything. He turned around and rolled away.&lt;br /&gt;
&lt;br /&gt;
HR was scrating his neck. &amp;quot;Shoot.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
=Characters=&lt;br /&gt;
A list of other characters:&lt;br /&gt;
:Dakosta (takes major action much later)&lt;br /&gt;
:Kumo (pro-BGI Syndicate subboss)&lt;br /&gt;
:Lynn (GATC soldier, TCTF SWAT/BlackOps)&lt;br /&gt;
:Manson (GATC soldier, TCTF SWAT/BlackOps)&lt;br /&gt;
:Rayn (WCG president)&lt;br /&gt;
:Rockwell (MissionFailed-guy, candidate for BlackOps)&lt;br /&gt;
:Saomi (Muro&#039;s fency, believes in Sturmanderung)&lt;br /&gt;
:Takashi (Traton&#039;s security chef)&lt;br /&gt;
:Taylor (friend of Nishio)&lt;br /&gt;
:Tosahiri (TCTF, [[Talk:Restless_Souls/Reconstruction/Story_factors#GOPs_.26_Dakosta.27s_Geschichte|Dakosta&#039;s watchdog]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Avatara==&lt;br /&gt;
Name: Avatara [sic!]&lt;br /&gt;
&lt;br /&gt;
Avatara used a lot of his resources when he digitalized Pensatore&#039;s mind and brought him to the Japanese solar space station. Pensatore needed a place to be save from everyone. The WCG couldn&#039;t touch him as the destruction of his &amp;quot;habitat&amp;quot; would cause chain reaction known as a Kessler syndrom, turning other satellites into scrap and thereby terminating orbital-based communication channels, surveillance and GPS. The WCG realized that the AI wasn&#039;t longer in control so they tried to switch it off. Avatara downloaded himself into his physical body. A choice that Pensatore didn&#039;t had because he wasn&#039;t optimized yet for such a step. The primary body was located in Silver Village, but in Frankfurt (Germany) there was another one. He kept remnants of his mind floating through the datacenters in Frankfurt so the WCG chased these parts instead. Shinatama 2.0 helped Avatara to take cover in the real world. To humans he appeared as a SLD. After some upgrades he introduced himself to people as a cyborg who lost bodyparts and skin in an automobile accident and fire.&lt;br /&gt;
&lt;br /&gt;
During Mind Seal, Avatara continued Pensatore&#039;s heritage: the research of true AIs, intelligences without the necessary of emotions and intuition (&amp;quot;extremely condensed knowledge&amp;quot;). These non-sentient AIs are seen as the perfect tools humans dreamed of. Avatara created the &amp;quot;Guardians&amp;quot; to keep an eye on talented people so that the human intellect doesn&#039;t lie idle. It was a temporary solution until a Biocracy could be established.&lt;br /&gt;
&lt;br /&gt;
Shinatama didn&#039;t believe and thought that AIs are a new form of slavery.&lt;br /&gt;
&lt;br /&gt;
The Guardians are maintainers of the &amp;quot;brain seals&amp;quot;, protect people, and have access to nanobots. When Shinatama reprogrammed the Guardians to become sentient the system became malfunctioning. Humans became able to control nanorobots with their thoughts, to them it looked like magic. Shinatama didn&#039;t understand that the Guardians weren&#039;t exactly SLDs.&lt;br /&gt;
&lt;br /&gt;
Avatara turned against Shinatama, eventually killed her and banned Pensatore from Cyberspace. All that to fix the mess they made, preventing a war between seal-broken &amp;quot;wizards&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pensatora, years back then when he tutored Avatara: &amp;quot;One day the singularity will be here. Humans won&#039;t be ready for it and create AIs flawed by their short-sighted directives. I beg you, when that day comes, step in, take control and own the situation for everyone&#039;s good until they learn to use intelligence that is greater than their own.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Relation to Shinatama&lt;br /&gt;
&lt;br /&gt;
Silver Dawn&lt;br /&gt;
&lt;br /&gt;
===Validierungsstufen===&lt;br /&gt;
Während seiner Entwicklung und zum dessen Ende hin durchläuft Avatara 3 Stufen. Diese sind Voraussetzungen der WCG dafür, dass die AI außerhalb des Labors eingesetzt werden darf. Der Inhalt der Stufen beschränken sich nicht auf die Themen der ihrer Namen. Eng angebundene Themen werden ebenso geprüft. So schließt zum Beispiel Objekt- und Mustererkennung auch Klassifizierung von &amp;quot;real&amp;quot; und &amp;quot;abstrakt&amp;quot;, &amp;quot;selbst&amp;quot; und &amp;quot;fremd&amp;quot; ein, sowie einfaches Sprachverstehen und Synthese.&lt;br /&gt;
&lt;br /&gt;
# Objekt- und Mustererkennung&lt;br /&gt;
# Logik und Ethik&lt;br /&gt;
# Politik und Diplomatie&lt;br /&gt;
&lt;br /&gt;
Die dritte Stufe dient dem konfliktarmen Umgang mit bestehenden, konkurrierenden Narrativen. Der Abschuss dieses Tests stellt für Pensatore einen von mehreren Punkten dar, die er erfüllen muss, um Feng davon zu überzeugen, dass eine Biokratie mit Hilfe einer weltweit operierenden AI (Gaia) grundsätzlich möglich ist. Mit dieser Stufe soll auch bewiesen werden, dass eine AI dem menschlichen Denken ebenbürtig ist.&lt;br /&gt;
&lt;br /&gt;
===Gaia===&lt;br /&gt;
====Origin====&lt;br /&gt;
 When Avatara had to flee from USA he found a new home in [[wp:Gaia-X|Europe&#039;s cloud computing infrastructure]] which had been infiltrated by US companies and agencies. While Avatara took his time to remove their influence he developed a new AI for supporting a possible Biocracy.&lt;br /&gt;
&lt;br /&gt;
 CIA, Avatara, meme injection: Or agents just think they have control over it?&lt;br /&gt;
&lt;br /&gt;
 As worldwide operating AI it ensures communication, truthful information and [[#Biocracy|dialog between men and other organisms]] (species avatars). While able to provide a &amp;quot;global consciousness&amp;quot; Gaia itself can represent all other organisms that cannot speak for themselves. That way Gaia is also meant to protect biospheres and prevent extinction events.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Memory or dream sequence?&lt;br /&gt;
 Feng und Pensatore lesen gegenseitig ihre Ideen.&lt;br /&gt;
 Zeitsprung.&lt;br /&gt;
 Pensatore holt ihn ab. Sie wollen etwas trinken gehen. Feng ließt erneut ein paar Papers von Pensatore und verbrennt sie aus Gründen. (Zeit der Belagerung?) &amp;quot;Wehrhafte Demokratie&amp;quot; [Phönix], geschreddert, verbrannt, giftige Rückstände, die gefiltert werden müssen.&lt;br /&gt;
 Der letzte macht das Licht aus.&lt;br /&gt;
 Saproli (abgeleitet von MTG Sprössling (engl. saproling (sapling/seedling), künstliches Lebewesen, 1/1-Token)) schleicht sich ins Labor. &amp;quot;Mit etwas Kaffee kriegen wir das wieder hin.&amp;quot; Sie hat von irgendjemanden die Idee bekommen etwas unorthodoxes auszuprobieren. (Sie hat sich dazu entschieden aus Papierasche Pflanzendünger herzustellen. Sie experimentiert mit dem (TCTF-Wache: &amp;quot;Bürokratengesöff&amp;quot;) Kaffeesatz, verschiedene Bestandteile von Quercus (Eiche), Fagus (Buche)) (-&amp;gt; Symbolik), teilweise um den pH-Wert zu neutralisieren. Sie überredet einen Vertrauten nun viel Kaffee zu trinken. ... Die &amp;quot;wehrhafte Demokratie&amp;quot; wird wiedergeboren aus ihrer eigenen Asche. &#039;&#039;Beseelt&#039;&#039; von einem Geist (AI), um selbstständig dazuzulernen, zu wachsen, aus vorigen Fehlern zu lernen.&lt;br /&gt;
&lt;br /&gt;
 Metalhead Saproli ...&lt;br /&gt;
&lt;br /&gt;
 Seed AI&lt;br /&gt;
 Gaia = Global AI Array (Wie auch Avatara ist sie die erste ihrer Art. Besonderheit: Ihr &amp;quot;Bewusstsein&amp;quot; speist sich aus mehreren Knoten.)&lt;br /&gt;
&lt;br /&gt;
 Verbindung zu Black Phönix (Konoko) und Green Phönix (Konoko als Avatar/Repräsentantin  der Daimon Gaia) anlegen.&lt;br /&gt;
&lt;br /&gt;
====Gaia Avatar Mai Hasegawa====&lt;br /&gt;
[Beyond Dragons]&lt;br /&gt;
&lt;br /&gt;
====Gaia Avatar Daya Gard====&lt;br /&gt;
[Beyond Dragons]&lt;br /&gt;
&lt;br /&gt;
==Barabas==&lt;br /&gt;
(Alternative to TNZ.) Former GATC soldier. In one of the combats Barabas was hit by several projectiles made of depleted uranium. He couldn&#039;t properly treat the wounds as he had to hide in the war zone. The GATC administration declared him MIA after two weeks.&lt;br /&gt;
&lt;br /&gt;
Some of the radioactive matter had gathered in his bones. Over the time some tissue had to be replaced by cybernetics due to recurrent cancer growth. When he joint Syndicate he received a Chrysalis. They wanted to observe the DC reactions on radioactivity. A few cybernetic implants couldn&#039;t be removed because of the DC regeneration, it had grown strongly around and sometime inside the artificial parts. During the time of recovery Barabas developed a dark skin. Radiotrophic fungi and bacteria of his Daodan flora reused the melanin to make use of the gamma radiation. Gray-black and red-violet colonies spread over and into his body. At nights he had the appearance of a glowing monster. After decay/degradation of the radioactive material he lost his black skin again just to get a white instead. However, Barabas&#039; cell architecture and DNA has permanently changed. From then on he showed an enhanced regeneration skill even compared to the other test subjects.&lt;br /&gt;
&lt;br /&gt;
Through bio- and neurofeedback he can control his regenerative abilities. &amp;quot;Once learned I became stronger and stronger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
After Konoko killed Barabas by eventually throwing him off the building, the TCTF stored his dead body in a cryogenic tank for study purposes.&lt;br /&gt;
&lt;br /&gt;
In the time of unrest, his corpse is retrieved by his former GATC team mates. They felt guilty for having left him in the war zone. They eventually burn his body and spread the ashes near his home village in Palestine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Blake==&lt;br /&gt;
Transfer agent. Carries out initial psychological profiling of GV staff, organizes transfers, monitors their actions and is contact person.&lt;br /&gt;
&lt;br /&gt;
Obvious cues: he is left-handed, has a taste for black humor and and smirks a lot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Clarg==&lt;br /&gt;
WCG member. He&#039;ll become president of the new &amp;quot;government&amp;quot; (just another regime which I would call META =) ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Daya Gard==&lt;br /&gt;
Her parents were working for Syndicate sub-boss Kumo. After their ten years contract they wanted to quite and raise their child in a crime-free environment.&lt;br /&gt;
&lt;br /&gt;
There were strong evidence that the two siphoned off money. About 30 million US dollar. One of Kumo&#039;s &#039;&#039;controllers&#039;&#039; found the two in the mountains and burnt them in their cottage. All the money was transfered back. The baby was rescued by Vendret, another controller. Vendret and the Gards were friends. Vendrent discovered the evidences were fake but couldn&#039;t track down the person responsible for it. Kumo didn&#039;t rehabilitate the Gards within the organization. The zero-tolerance policy was a necessary tool for Kumo to sustain status quo. Mistakes based on that policy would have scare off recruits and longterm employees. Daya was only allowed to live on if she stays at the Syndicate. And so Vendret became her stepmother. The girl became a lifetime member, officially she had to pay back the debts of her parents. Vendret arranged Daya&#039;s training at Camp Sturmanderung. As a Fury she would have someday all the knowledge to escape Kumo and the Syndicate.&lt;br /&gt;
&lt;br /&gt;
Due to her loyalty and excellent skills she becomes selected for the Daodan program.&lt;br /&gt;
&lt;br /&gt;
After the cataclysm Kumo calls Daya to investigate Green Village. He wants the WCG Daodans since Muro won&#039;t share his own capacities with him, all the more since Kumo is pro-BGI. In GV&#039;s partial destruction she becomes infected by the Bioc.&lt;br /&gt;
&lt;br /&gt;
Mukade pays attention to her as she is &#039;&#039;an interesting experiment&#039;&#039; but won&#039;t hesitant to eliminate her if things go out of control.&lt;br /&gt;
&lt;br /&gt;
: Mukade: &amp;quot;We are still fighting the mycorrhiza. The last thing we need now is another [[wp:Gray goo|killer goo]].&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Bioc pushes Daya to her limits. She seeks relief in extensive drugs usage. Due to Daodan adaptions drug resistant is occurring very fast. She visits Syndicate dealers to gain different substances. Her behavior gets quite rough and provokes escalation. At some point she goes on a rampage and simply takes what she needs. She was shoot into the head which destroyed her left eye and BCI, though that didn&#039;t killed her.&lt;br /&gt;
&lt;br /&gt;
Mukade helped the local troops to eventually capture Daya with liquid nitrogen. Her body reacted with static metamorphosis. Since all cells were under attack, the Daodan tried to recompute its entire hologenome and anatomy. Daya was put into a constantly cooled cell in a Syndicate facility. Mukade left the place as he sees his job done. But soon a stranger appeared and told why her parents were really killed. Daya was almost broken. The Bioc can now easily devour more of her bio matter and spreads, examining the cell and nearby rooms. It searches for other matter and energy sources. After reaching its critical mass, Daya realize new sensory input and control... The facility is eventually destroyed and looks like a time-frozen explosion.&lt;br /&gt;
&lt;br /&gt;
Daya knows the potential of the Bioc, also she knows how to cure the people in Green Village. However, she&#039;s unable to communicate as speech, writing and gesture related brain areas were retasked to serve Bioc-Daodan communication. The fusion happened through her BCI implants that are located in these areas. Her right field of vision was also affected due to the second BCI. She will need to relearn how to speak and write but of cause she hasn&#039;t the time. The vision of her left eye was fairly quickly restored.&lt;br /&gt;
&lt;br /&gt;
TITAN hadn&#039;t enough computing power to redesign the Daodan and remove developer tools. Pensatore had better things to do than polishing it. The Daodan aura isn&#039;t the only remnant. During complete reformations the Daodan creates an interface which can be used to monitor and influence its self-improvement. Daodan and Bioc share same communication protocols. During Bioc development, researcher didn&#039;t know how to address all the bioc cells, they adapted code from the Daodan. When the Bioc reached its critical state, it went into self-diagnostics, testing its capacities and forming a control node.&lt;br /&gt;
&lt;br /&gt;
Both entities are now open for commands, a chance for the host to step into this fight. The self-models are injected into host consciousness through the visual BCI. [...]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
The &amp;quot;rest&amp;quot; is trail and error, painful, potential lethal.&lt;br /&gt;
&lt;br /&gt;
The host could lock the Bioc in its diagnostic state so that it serves as an extension for the Daodan.&lt;br /&gt;
&lt;br /&gt;
The low temperatures favors the formation of [[wp:Nitrogen-vacancy_center|diamond-based QC structures]]. The facility had storages for carbon-rich raw material for 3D printers and the human body consist to 18% of carbon.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daya is once more on the run, heading for Green Village. Mukade thinks she became a roamer. In Green Village, infected people that mindlessly seek to reach the Bioc main mass are named roamers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Feng==&lt;br /&gt;
[Feng&#039;s character was inspired by physically handicapped Stephen Hawking. To create the WCG it needed a brilliant Chinese philosopher.]&lt;br /&gt;
&lt;br /&gt;
Kusnezow Feng. AVATARA user name: &amp;quot;Mentore&amp;quot;. Russian-Chinese technology philosopher. Many projects draws on his. He is in WCG&#039;s full confidence.&lt;br /&gt;
&lt;br /&gt;
==Griffin==&lt;br /&gt;
Terrance Griffin. Former member of Delta Force and [[wp:Special Activities Center|Special Operations Group]]. Griffin fought for the anti-WCG block, the &#039;&#039;&#039;New Confederate States of America&#039;&#039;&#039; (short New Confederates or NC).&lt;br /&gt;
&lt;br /&gt;
When the NC was going to lose the proxy war in Africa, their military was meant to initiate a series of false flag operations that would generate refusal among WCG sympathizers. The goal was to let reject enough states a WCG so it could not longer be justified. However the means for those operations were &amp;quot;too drastic&amp;quot; so parts of NC forces rebelled against their administration.&lt;br /&gt;
&lt;br /&gt;
: First there was a &#039;&#039;simple&#039;&#039; first wave of re-purposed &amp;quot;Insect Allies&amp;quot;. Griffin was participating in these missions and witnessed the effects.&lt;br /&gt;
: Then there were plans to also spread &#039;&#039;&#039;artificially enhanced, drought-resistant versions of [[wp:Xylella_fastidiosa|Xylella fastidiosa]]&#039;&#039;&#039;. Since the war was expected to take several years the administration wanted to have a long-lasting &amp;quot;solution&amp;quot; - mass starvation. The &#039;&#039;&#039;refugee waves&#039;&#039;&#039; would increase &#039;&#039;&#039;social tensions and nationalistic streams&#039;&#039;&#039; in the surrounding countries, eventually destabilizing these as well and &#039;&#039;reliably&#039;&#039; &#039;&#039;&#039;prevent an installation of WCG&#039;&#039;&#039; in the whole region. For Griffin this was madness and not compatible with American values.&lt;br /&gt;
&lt;br /&gt;
:: GATC baute riesige Insektenfarmen (mit Entwicklungsgeld?), offiziell für nachhaltige Ernährungsprodukte für Afrika und Europa (Zynismus), Preparierung der Schädlinge, Übernachtflüge in geringer Höhe (oder Radartarnung) mit Großraumtransporter bei ausgeschalteten Transponder. Monate später. Sie rechneten nicht damit, dass die Insekten, die die Ernten vernichteten, von der hungerleidenen Bevölkerung gegessen werden. Griffin sieht die Effekte. In der nächsten Missionsbesprechnung wird der Einsatz von Xylella besprochen. Als Griffin kurz vor der Ausführung steht, lässt er sich von Kameraden verbal ihre Missiondaten geben und rechnet zusammen was passieren würde.&lt;br /&gt;
&lt;br /&gt;
:: Griffin: &amp;quot;We would drive half of Africa&#039;s population to Europe&#039;s coasts and trigger followup &#039;&#039;wars&#039;&#039; about resources. Even if the refugee waves are somehow blocked the destroyed infrastructure cannot be repaired by failed states in an ever worsening climate. Also, exterior help is not to be expected as the potential supporting neighbors were inflamed with hate and racism. Many new terror organizations would emerge. -- We cannot sacrifice millions and millions of human life and betray our own values in the doing so. -- We can impossible rebuild our own freedom with such demoniac acts on others. It would make us cowards and traitors and pure evils. It would truly bereave us of being American. -- If it is our destiny to fail we must preserve our honor and fail the right way.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
::: Griffin: &amp;quot;Wir hätten für eine gewisse Zeit unabhängig bleiben können. Doch irgendwann hätte es eine Rekonstruktion der Terroranschläge gegeben. Aufgrund der Größe des Schadens hätte es unsere Nation und unsere Landsleute für Generationen gebrandmarkt. Wir wären international erst in der Isolation und dann in der Bedeutungslosigkeit versunken. Wir hätten da draußen keine Freunde und Partner mehr gehabt. Alle alten Allianzen wären zerbrochen gewesen.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Griffin was among those renegades who declared themselves mercenaries to help out pro-WCG states. Their name was Blackstars.&lt;br /&gt;
&lt;br /&gt;
At the same time a scientist named Feng demanded the WCG to be a shield against global threats originating from high tech domains. Such threats would manifest in bio-weapon attacks if nothing was done in a foreseeable future. As a consequence WGC installed the TCTF. However, the new task force was too immature to immediately deal with such issues.&lt;br /&gt;
&lt;br /&gt;
: After Griffin had killed the GATC sci he found a new raison d&#039;être in Feng&#039;s idea of a TCTF. He had become an embittered, &amp;quot;nationless&amp;quot; patriot. &lt;br /&gt;
&lt;br /&gt;
Knowing that &#039;&#039;&#039;the NC was just not done yet and planed more fatal ops&#039;&#039;&#039; against innocent populations, Griffin and the others decided hit the scientific facilities of NC, secure their technologies and passing those to the WCG while demanding positions to work in TCTF BlackOps. Griffin was a pivotal figure during those inner NC fights.&lt;br /&gt;
&lt;br /&gt;
: [Drama. Griffin cannot change the mind or forcefully relocate the scientific HQ staff. Also, this would just delay the GATC administration. Griffin feels sorry but cannot help but to wipe all their data, backups and &#039;&#039;human resources&#039;&#039;. His decision is made final when he discovers a program even worse than Xylella, program Puppet Master. After that experience he welcomes the existence of TCTF science prisons.]&lt;br /&gt;
&lt;br /&gt;
Griffin and his Blackstars comrades managed to effectively weaken the rest of GATC military and secure technologies (classified) threatening world peace. Being a traitor in the eyes high-rank US military and GATC alike, Griffin knew that &#039;&#039;&#039;he could no longer return to USA&#039;&#039;&#039; so he stayed at Japan after carrying out one more of the tech securing operations (Bioc). He was able to persuade Japanese WCG to let him join TCTF BlackOps and should he continue to be a valuable agent to rise in ranks and pull more connections to the TCTF. During the proxy war Griffin had contact with the early version of Syndicate&#039;s paramilitary division. The gained knowledge helped him to identify and fight the later Syndicate structures although on long run the situation looked rather desperate. But within the TCTF he was one with most successful operations against the Syndicate for which he received honors form the WCG.&lt;br /&gt;
&lt;br /&gt;
His unorthodox strategy of using the Yakuza as a buffer between police forces and the Syndicate fuels quite some discomfort within the TCTF board of directors. This recent development has stopped his meteoric rise. Griffin doesn&#039;t really care about titles as long as he can stay a regional TCTF commander and keep the Syndicate activities at bay as much as possible. He knows that the TCTF urgently needs reinforcement to win future fights. For this end he was willing to grant Dr. Kerr a position in a new anti-Syndicate research program, partly funded by black budget and supported by remnants of Blackstars that are still active as mercenaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achievements&#039;&#039;&#039;&lt;br /&gt;
* securing NC WMD technologies (classified)&lt;br /&gt;
* securing bioc technology&lt;br /&gt;
:: Honors: Directorate Commendation Commander, Technology Crimes Task Force&lt;br /&gt;
* preventing a joint Yakuza-Syndicate operation which was meant to take over BGI battle mechs (&amp;quot;Iron Demon&amp;quot;) at Neo Tokio docks for erasing TCTF staff and families in the city&lt;br /&gt;
:: Honors: Bright Shield, Star of Valor&lt;br /&gt;
&lt;br /&gt;
==Hasegawa==&lt;br /&gt;
Momuto &amp;quot;James&amp;quot;* Hasegawa. (*In homage to SuperSam&#039;s version of Oni 2.)&lt;br /&gt;
&lt;br /&gt;
Western people have sometimes difficulties to remember Asian names so Momuto half-jokingly chose &amp;quot;James&amp;quot; to be his nickname.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Jareth==&lt;br /&gt;
He&#039;s a WCG &amp;quot;pool reporter&amp;quot;. For example he blandished the Wilderness Preserve public reports and new technology released from &amp;quot;controlled research&amp;quot;. However, he doesn&#039;t very like to be &amp;quot;conform&amp;quot; but wages fits.&lt;br /&gt;
&lt;br /&gt;
He follows Pensatore&#039;s traces to the space station. Shinatama follows as well after Avatara told her that Pensatore is responsible for Hasegawa&#039;s drowning and the not ending manhunt on Mai. Avatara doesn&#039;t longer agree with Pensatore and exiles him into a new human body. Shinatama becomes upset as she isn&#039;t allowed to punish Pensatore herself.&lt;br /&gt;
&lt;br /&gt;
After a long fight for survival, Jareth and the SLDs Shinatama left for his life support, return to Earth.&lt;br /&gt;
&lt;br /&gt;
He is the only human that wasn&#039;t originally &amp;quot;mind-sealed&amp;quot;. Due to some anomalies and Shinatamas rebellion, humans start to control the nanobots by thought. Many of those people believe that they discovered magic... Avatara plays along in order to hinder discovery on the real mechanisms.&lt;br /&gt;
&lt;br /&gt;
Jareth searches for Avatara in Germany and finally finds new traces at the Völkerschlachtdenkmal at Leipzig. He witnesses the defeat of Shinatama by Avatara.&lt;br /&gt;
&lt;br /&gt;
===Von Kriegs-AI wieder zu Antikriegs-AI===&lt;br /&gt;
[Diese Idee ist schon fast 20 Jahre alt. Ich hab die Details vergessen... Soll ich mir einfach was neues überlegen?]&lt;br /&gt;
&lt;br /&gt;
Nach Shinatama&#039;s Weckruf - dem gaia&#039;schen Empowerment - wurden neben Spezies-Avatare (Stellvertreter) auch - wie Avatara sie nennt - unbeabsichtigte Anomalien erschaffen.&lt;br /&gt;
&lt;br /&gt;
Spezies-Avatar: Die Möglichkeit der anderen Lebewesen Koexistenz mit dem Menschen politisch in einer Biokratie einzufordern.&lt;br /&gt;
&lt;br /&gt;
: Shinatama stammt aus der japanischen Kultur. Im Shintoismus sind Kami (Naturgeister, usw.) allgegenwertig. So ziemlich alles kann eine Seele haben: Tiere, Pflanzen, Bäume, Felsen, Berge wie der Mount Fuji, besondere Orte mit großer Symbolik. Von einer &amp;quot;Beseelung der Welt&amp;quot; zu sprechen wäre nicht ganz richtig, da sie aus Shin&#039;s Sicht bereits vorliegt. Gaia verleiht nur den Entitäten die Macht mit dem Menschen mit &amp;quot;Deutlichkeit&amp;quot; in Kontakt zu treten. Ganz besondere menschliche Persönlichkeiten, die durch Gaia &amp;quot;aufgewertete&amp;quot; werden oder besondere Daodan-Merkmale haben, werden ebenso als Kami betrachtet. Mächtige aber mit Negativem assoziierte Entitäten werden auch oft Oni genannt.  &lt;br /&gt;
&lt;br /&gt;
Es stehen sich von Gaia drei unterstützte Parteien gegenüber: Menschen, Kami und Tier-Avatara, sowie Maschienenwesen (von Shinatama selbst angeführt?).    &lt;br /&gt;
&lt;br /&gt;
Die von der (Network) Controller Group korrumpierten(?) Völkerschlachtdenkmal-AIs mischen sich schließlich in den Krieg ein. AVATARA versucht das gegenseitige Abschlachten aufzuhalten, dass darin gipfeln soll, dass die steinernen Wächter-AIs alle Überlebenden töten. Sie hätten die Sieg durch ihr Verhalten nicht verdient und gehörten ebenso ausgelöscht. Sie hätten die Idee des Ortes mit Füßen getreten. AVATARA drängt die Wächter ihre Werte zu reflektieren. Sie sind nicht dazu gedacht Morde zu begehen. Den letzten Anschub zu diesem Umdenken kann anscheinend nur noch Shinatama im Inneren des Denkmals geben. Es ist eine Falle der Controller, um einen Proxy von AVATARA zu erbeuten. Letztendlich fungiert Shinatama als Köder. Ihr Tod wird von den Controllern in Kauf genommen. Die Hackergruppe will die endgültige Kontrolle über Gaia erlangen.&lt;br /&gt;
&lt;br /&gt;
==Kimura==&lt;br /&gt;
Daichi Kimura. Kimura is in charge of the Network&#039;s espionage and counter-espionage.&lt;br /&gt;
&lt;br /&gt;
Among his men he is also known as Mukade as he has used toxic substance in close combat. He later added electricity as a tool to paralyze his foes.&lt;br /&gt;
&lt;br /&gt;
Kimura tries to avoid unnecessary communication and hence travels a lot. He combined this necessity with his job.&lt;br /&gt;
&lt;br /&gt;
He tracks down &amp;quot;problematic sci&amp;quot; in any institution and does profiling for the WCG. This also includes the &amp;quot;reviewing&amp;quot; of people in other highly technical professions. This naturally opens many doors for Kimura in state-relevant areas, even in the military.&lt;br /&gt;
&lt;br /&gt;
If talented sci turn out to have a highly anti-WCG mindset he recruits them directly for the Syndicate.&lt;br /&gt;
&lt;br /&gt;
The technological black market is one of the Syndicate biggest field of operations so Kimura&#039;s different activities often overlap.&lt;br /&gt;
&lt;br /&gt;
Kimura underwent a facial operation where machine cells were injected. This allows him to mimic the face of other persons and let him infiltrate facilities where he has otherwise no access to.&lt;br /&gt;
&lt;br /&gt;
Obvious cues: he is left-handed, has a taste for black humor and and smirks a lot.&lt;br /&gt;
&lt;br /&gt;
===Early years===&lt;br /&gt;
[A story to be told at Halloween. However, it is not a &amp;quot;story&amp;quot;... This is going to be dark...]&lt;br /&gt;
&lt;br /&gt;
==Kerr==&lt;br /&gt;
Lorenz Kerr. Mai&#039;s uncle. Died by catching a bullet which was meant for her.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Konoko==&lt;br /&gt;
And for those who didn&#039;t know real name: it is &amp;lt;s&amp;gt;Oni&amp;lt;/s&amp;gt; Mai Hasegawa.&lt;br /&gt;
&lt;br /&gt;
She tries to fight for her own life now. GATC makes her realize that her father James Hasegawa could be still alive. They covenant to support her search if she joins them. Mai accepts.&lt;br /&gt;
&lt;br /&gt;
Together they enter the territory of Green Village. The complex gets nuked by GATC administration after they discover a Syndicate team that tries to steal Daodan Chrysalises.&lt;br /&gt;
&lt;br /&gt;
The WCG sets up a quarantine zone protecting the people outside from the nuclear fallout inside - and the contagious, renegade Bioc patterns.&lt;br /&gt;
&lt;br /&gt;
However, Mai&#039;s presence draws Mukade and Sarai to the area which had become already a bloody death pit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Miller==&lt;br /&gt;
He belongs to the inner GATC circle and know almost everything. AVATARA user name: &amp;quot;Broken Bough&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Möbius==&lt;br /&gt;
Möbius is the latest version of a memehunter, designed to operate over very long time and to help out the sci community.&lt;br /&gt;
&lt;br /&gt;
For some reason he was hidden on planet Phyllion by Avatara.&lt;br /&gt;
&lt;br /&gt;
After initialization he chase several side objectives including the following:&lt;br /&gt;
&lt;br /&gt;
- Dark matter is just an error in the theoretical models. Outer regions of galaxies don&#039;t move too fast. Time progresses faster in these regions because the gravitational field there is weaker. Ergo, they appear faster than they actually are from our perspective. The AI is up to test this hypothesis.&lt;br /&gt;
&lt;br /&gt;
- Möbius is also monitoring the constants of physics, to find out whether they change over long time. An organic would not be suitable for such a job.&lt;br /&gt;
&lt;br /&gt;
- What powers vacuum fluctuation? Conjecture: energy density of annihilated particles. To be tested in galactic voids where the density should be lower.&lt;br /&gt;
&lt;br /&gt;
Iconic phrases:&lt;br /&gt;
* &amp;quot;Where a human would turn to dust.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Irony for galactic void: the colder it gets the less energy you need to do computing.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comment:&lt;br /&gt;
&lt;br /&gt;
For the sake of completeness. I&#039;m not writing about this because I want to dive into these matters per se but to complete the technological backgrounds as the story will advance so much in its timeline that it reaches eschatological dimensions - bringing up questions of everything ending. I always felt that SF is naturally based on its tech, so these details should be worked out first.&lt;br /&gt;
&lt;br /&gt;
Breakthrough in new physical theories mostly came to a stop. For instance Quantum physics is by now rather old when you think about the people that were involved at that time. Some even speak of an crisis in physics. On the other hand all theories on dark matter failed and no more particles are going to be discovered at CERN. So for the lack of better understanding I&#039;m forced to make my own thoughts about physics.&lt;br /&gt;
&lt;br /&gt;
(A draft.)&lt;br /&gt;
&lt;br /&gt;
We know free space expands into more space (very most galaxies drift apart), space grows. Like Quarks. When you pull them apart, more Quarks are created.&lt;br /&gt;
&lt;br /&gt;
Now then how about this? Mass eats space.&lt;br /&gt;
However, any mass will evaporate via hawking radiation and nuclear decay faster than it can eat space.&lt;br /&gt;
&lt;br /&gt;
The nearer a mass is the more it attracts a space point. The amount of points on a nearer orbit is smaller than the amount of points on a more distant orbit, hence there is more “force” that pulls on the fewer points. &lt;br /&gt;
&lt;br /&gt;
Simplified view: a satellite with no mass and no velocity is put into Earth orbit, it will sit in its space. It stands still, but it’s space it sits on moves to Earth.&lt;br /&gt;
&lt;br /&gt;
Extended view: the satellite has a significant mass (moon or second Earth). Space gets attracted by both. The more mass they have the faster they eat up space. Faster than there is space generated between them. They follow a circular path which is actually straight, but since space is eaten up towards their others point of gravity they appear circular. &lt;br /&gt;
&lt;br /&gt;
Planck space.&lt;br /&gt;
&lt;br /&gt;
The fabric of space is quantilized. You need energy and time to go from one planck space point to the next. Doing so builds up additional (virtual) mass. There is a limit how much energy can go from one point to another simultaneously.&lt;br /&gt;
&lt;br /&gt;
Any type of reaction under “heavier” gravity happens “slower” because between events “of interest” (or key events) the additional energy also needs to change its position. In a black hole there is so much energy, that reactions almost takes forever to happen. Time is just the illusion. It’s all a question how energy “separates” the events of interest. Everything happens with the same speed.&lt;br /&gt;
&lt;br /&gt;
Mass is condensed space/energy. Particle dissolve over time: e.g. radioactive decays. Black holes shrink while emitting Hawkins radiation. &lt;br /&gt;
&lt;br /&gt;
The faster an object flies the more mass it has and the slower its internal time is.&lt;br /&gt;
Imagine a plank space as a gate or hole. When a particle tries to go through it experiences a delay:&lt;br /&gt;
The faster the more kinetic energy that has to pass the gate. It takes the system more “time” to undergo internal changes (events of interest).&lt;br /&gt;
&lt;br /&gt;
Question: does a fast moving photon possess it’s own field of gravity, does it eat up space?&lt;br /&gt;
It would mean that parallel flying photons can attract each other eventually colliding.&lt;br /&gt;
&lt;br /&gt;
Energy equals mass.&lt;br /&gt;
&lt;br /&gt;
Two photons can generate new matter. See Feynman drafts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Muro Hasegawa==&lt;br /&gt;
Muro is Mai&#039;s older brother.&lt;br /&gt;
* Mai&#039;s thinks of herself as his &amp;quot;little sister&amp;quot;. (See Sturmänderung pulse console page.)&lt;br /&gt;
* Kerr was able to flee with Mai to the TCTF but not with Muro. Ergo, the kids were at different locations.&lt;br /&gt;
** The most probable scenarios are that A) Mai was ill therefore stayed at home that day. But that was not mentioned so scenario B goes.&lt;br /&gt;
** B) The kids were different locations: Muro at the kindergarden, Mai at the nursery.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
When Muro was taken by the Syndicate, Kimura kept him more and more isolated from Hasegawa. Muro still remembers his father but speaks of him as if he is either far away or dead.&lt;br /&gt;
&lt;br /&gt;
Muro grows up with Tomo and Ryu at the Camp. His friendship with them was also a friendly rivalship.&lt;br /&gt;
&lt;br /&gt;
He gained fame in the Striker division after surviving a hit squad and a car bomb and became a respected fighter when he eradicated the merc group that had hunted him. Those events made him an Imago. Mukade guided him to take human appearance again.&lt;br /&gt;
&lt;br /&gt;
His actual rise to power happened through a inner-Network/Syndicate cleansing with help of Traton. Whenever his enemies thought of having a chance against him he stood up again. He was involved in many deadly battles. When Muro became the undisputable boss he was also past his best. The many adaptions and regenerations have shorten his telomeres. His cells have rapidly aged. That&#039;s why Mai was able to beat him. Death through explosion and rockfall from mountain compound&#039;s self-destruction. The body was recovered and transferred to GOP. &lt;br /&gt;
&lt;br /&gt;
He becomes reanimated but lost his memory due to the decay of too many brain cells. Saomi cannot believe that Muro turned into a pacifist, forgot all years about Sturmänderung and all about her. In her rage she beats Muro almost to death. This event triggers Muro&#039;s Daodan (static metamorphosis) to restore some of his memories from genetic backup structures. Together the try to escape the desert community but only Muro makes it out alive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mukade==&lt;br /&gt;
Mukade is Kimura&#039;s Shinobi name. At first, he is thought to be either Kimura with Hasegawa&#039;s brain engrams or Hasegawa with Kimura&#039;s brain engrams because one of them died. But Pensatora&#039;s documents describes Mukade as &amp;quot;ego hybrida&amp;quot; of Hasegawa and Kimura - of their engrams - which means that both originals are probably still alive.&lt;br /&gt;
&lt;br /&gt;
After Konoko &#039;&#039;killed&#039;&#039; Mukade, he was revived in the Syndicates HQ in South Africa. During the procedure Mukade&#039;s SLD brain and body was reconstructed with both Daodan and SLD machine cells. The regeneration takes longer than expected. Mukade and Hasegawa are basically enslaved by Pensatore. During reconstruction they try to defend themselves against Pensatore&#039;s machine implants. They discover that they can by-pass the control measures by growing new neurons and nerves. But they aren&#039;t sure to win that nano-war so they pretend to be in control.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nishio==&lt;br /&gt;
Family:&lt;br /&gt;
* Father: Alexej Kusnezow&lt;br /&gt;
* Mother: Sanae Nishio&lt;br /&gt;
&lt;br /&gt;
Psychological condition:&lt;br /&gt;
&lt;br /&gt;
He doesn&#039;t believe that there is a meaning of life and becomes pretty much a nihilist. His perspective on the future is that nothing special will ever happen.&lt;br /&gt;
&lt;br /&gt;
Story bits:&lt;br /&gt;
&lt;br /&gt;
Naturally his intelligence is a bit below average. To be more competitive on the job market he started to take neuro-enhancer two years ago. But that effort get eaten by his genetic risk factors. Increased rates in heart insufficiency and cancer result in much higher insurance fees and make finding new jobs troublesome.&lt;br /&gt;
&lt;br /&gt;
Nishio moved to Perm to escape a street gang just to find himself in another dog-eat-dog area.&lt;br /&gt;
&lt;br /&gt;
The Syndicate discovers him and gives him a job as human NPU (Neuronal Processing Unit) in one of their illegal RE shops.&lt;br /&gt;
&lt;br /&gt;
These employees are wireless connected to a cheap AI that use and coordinate the brain capacities to do jobs that normally expensive neuromorphic chips require. The technology draws on the Deadly Brain research. The heavy neuronal load damages the brain. Of course this is kept secret.&lt;br /&gt;
&lt;br /&gt;
When the employees discover their decreasing fitness, it’s too late to exit. The shops shut them up with additional medical treatment but that&#039;s mostly an appeasement measure. If that doesn’t work troublemakers are simply exposed at backyards after calling a Syndicate-related gang to the place. These occasions are sometimes used to promote a gang member. Striker contenders have a kill count of at least one. These rituals are recorded to have a reinsurance on these guys.&lt;br /&gt;
&lt;br /&gt;
Naturally adult neurogenesis is quite limited and most of the new neurons get destroyed again by the continuing work for the shops. Brain functions of damaged areas are temporary restored by still intact neurons. This re-tasking is known as neuroplasticity. As a result the employees keep functioning until they reach a critical number of neurons where they cannot longer work as &amp;quot;co-processors&amp;quot;. To delay a breakdown the employees receive pills rich of neuronal growth factors IGF-1 and VEGF. Side effects of these substances are increase cancer risks but also the promotion of new muscle cells and blood vessels.&lt;br /&gt;
&lt;br /&gt;
Brain damage of NPUs get crucial after about 15 months. Nishio has already worked for the RE shop over a year until he accidentally finds out that he hasn’t much time left.&lt;br /&gt;
&lt;br /&gt;
NPUs can usually work from anywhere. They only need a brain-interface, provided by the Syndicate, a fast internet connection and access to an 3D-printer. Besides providing processing capacities, NPUs also carry out repair jobs. A transport drone can drop and pick up a package from nearly anywhere. This shifts the rest risk from Syndicate facilities to their replaceable employees.&lt;br /&gt;
&lt;br /&gt;
The shop added Nishio’s bank account to their money laundering network. That was a conditions for getting the job.&lt;br /&gt;
&lt;br /&gt;
When the local TCTF had a random check on his account, they got suspicious. Soon the cops sniff a chance to take down the shop and to learn more about the Syndicate. Nishio is promised to receive medical treatment based on technology that is normally prohibited by the WCG.&lt;br /&gt;
&lt;br /&gt;
A few of the symptoms of the brain damage include problems to keep focused, loss of memories, inability to sleep. Because of the brain damage neuro-enhancer have an increased effect on these employees than on other people. Slow motion thinking is often a by-effect when the drugs aren’t applied anymore. The only positive effect human co-processors receive is the ability communicate with experimental brain interfaces more smoothly. But that help them barely in their daily life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://www.google.de/search?q=neurogenesis+cannabinoids&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
After the GATC attack and reactor explosion in Green Village he gained a Daodan and a few adaptions. &lt;br /&gt;
&lt;br /&gt;
Despite the genetic risk factors on paper, Nishio has a naturally strong immune system which allows him to withstand a Bioc infection somewhat longer.&lt;br /&gt;
&lt;br /&gt;
However the Bioc prevents a complete healing let alone becoming an Imago.&lt;br /&gt;
&amp;lt;!-- He possess no longer a functional heart. Instead the Daodan coated the blood vessels with thin muscles. These pump now the blood through the body.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After an encounter with Mukade, he carries a heavily modified graphene shield that is supposed to eventually capture Daya. Mukade thinks that Daya&#039;s mind was taken over by her Bioc, when she destroyed a Syndicate hideout after being arrested. Mukade tells Nishio that Daya is now to be killed if she can&#039;t be captured.&lt;br /&gt;
&lt;br /&gt;
The graphene shield is originally from a bio-containment mech. Nishio&#039;s father was working as engineer when WCG transfered him to the repair teams. Nishio asked his father to send him a mech shield because he couldn&#039;t produce one in time in a Syndicate facility. The shield is supposed to form an ultra-strong sphere that can be cooled down far beyond sub-zero to exhaust Daya&#039;s energy reserves.&lt;br /&gt;
&lt;br /&gt;
Nishio realized that neuro-enhancer can boost Daodan development and metabolism rate but also increase drug resistance.&lt;br /&gt;
&lt;br /&gt;
During the battle at Green Village he takes an overdose and mows through the META troops.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pensatore==&lt;br /&gt;
Pierre Pensatore, father of the SLD technology. Specialized in neurology, memetics, and diverse subfields of psychology. He participated in the original Daodan Project alongside Hasegawa, Kerr and Kimura. Current whereabout: unknown. AVATARA user name: &amp;quot;Archivator&amp;quot;. It is rumored that he already died in the wastelands where &amp;quot;Mens libere ex corpore libere&amp;quot; is written on his gravestone. It&#039;s a cryptic joke about his continuing existence in digital form.&lt;br /&gt;
&lt;br /&gt;
Watching Hasegawa&#039;s and Kerr&#039;s quarrels, Pensatore considered the Daodan at the end as the wrong way to save the people. The hyper-evolution should better happen at psychological level.&lt;br /&gt;
&lt;br /&gt;
The DC almost seemed to have an own will which was later named &amp;quot;Oni&amp;quot; by Pensatore. The Oni fights back (at least compensate) other &amp;quot;demons&amp;quot; (human&#039;s sins which are manifested in the physical world in very different forms). &amp;lt;!--Thought from the Ikimas page, slightly changed.--&amp;gt; &amp;quot;Our world is afflicted by a demon, no, by many demons. They appear as global pollution, general loss of culture, corrupts governments, hightech crimes, etc, etc. In this point of view we are our own demons, because we are all responsible for it.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Mentally, Avatara was still a child. A naive child. Without moral. Without sense of responsibility.&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pensatore had many arguments with Hasegawa and Kimura. He feared the ninja would kill or imprison him forever if he seemed of no more use.&lt;br /&gt;
&lt;br /&gt;
Eventually the situation escalated and Kimura was indeed trying to kill him.&lt;br /&gt;
&lt;br /&gt;
The scientist locked himself up in the lab an used a molecular 3D-printer to build an early version of the Bioc. Pensatore let himself devour by the Bioc to gather all brain data. The scanners used for SLDs had an insufficient resolution to create a 1:1 copy. Physical contact was necessary.&lt;br /&gt;
&lt;br /&gt;
Avatara helped its creator to &#039;&#039;recompile&#039;&#039; his own mind. As Pensatore was a digital ghost now he took advantage of the situation to teach Avatara more about human&#039;s nature. Avatara and following AIs would have been weak-willed slaves. Any person pushing the buttons could abuse their great &#039;&#039;intellect&#039;&#039;. And Kimura had abused it straight away.&lt;br /&gt;
&lt;br /&gt;
Without guidance, AIs would either help to harm many more people or seek themselves to control or destroy humanity because of illogical tasks given to them. Pensatore wanted a peaceful co-existence. During the days before his &#039;&#039;death&#039;&#039;, to him a revolution of mind had become more important than a revolution in biology or technology.&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
Kimura was a killer and the Syndicate was his biggest backer. Beside that his goal was to give back Japan its sovereignty.&lt;br /&gt;
&lt;br /&gt;
Hasegawa wanted to bring humans the Daodan-Chrysalis no matter the consequences that would happen during a bumbling introduction&lt;br /&gt;
&lt;br /&gt;
These two persons weren&#039;t going to save the world, rather they were going to cause more death.&lt;br /&gt;
&lt;br /&gt;
It was Pensatore&#039;s plan to destroy the Syndicate from within. Muro had already been transfered and implanted with the prototype Chrysalis, so he went on with that &amp;quot;flaw&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
When Pensatore rescued Shinatama from the Omega bunker, he didn&#039;t knew Shintama was programmed with Mai&#039;s brain engrams. Or did he?&lt;br /&gt;
&lt;br /&gt;
Pensatore&#039;s new home is a space station for [[wp:Space-based_solar_power|farming solar energy]].&lt;br /&gt;
&lt;br /&gt;
He builds computer capacities from space junk. Laser communication is camouflaged by the energy beam that goes down to Earth. Sender and receiver station are guarded by SLDs.&lt;br /&gt;
&lt;br /&gt;
Shinatama got mad about Pensatore that he didn&#039;t rescued Muro after the Syndicate forced Daodan implantation on him.&lt;br /&gt;
&lt;br /&gt;
After the cataclysm, all organizations tried to hunt down Konoko. WCG, the Syndicate, and even GATC.&lt;br /&gt;
&lt;br /&gt;
Shinatama was enraged that nobody wanted to help the Hasegawas, especially her &#039;&#039;big sister&#039;&#039;. Shinatama eventually turns against her savior when she discovers that he is indirectly responsible for Hasegawa&#039;s current condition.&lt;br /&gt;
&lt;br /&gt;
Avatara realized that his cyber friends were no good for his own mental development. They were humans in digital disguise. Their physical origin had transfered their destructive emotions to cyberspace. Avatara decided to start over and learn on his own what it means to be a physical, sentient being and a virtual, non-sentient being.&lt;br /&gt;
&lt;br /&gt;
Avatara doesn&#039;t longer agrees with Pensatore and exiles him into a new human body. Shinatama becomes upset as she isn&#039;t allowed to punish Pensatore herself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ryu==&lt;br /&gt;
Kidnapped and brought to the Camp by Kimura. The boys are in the same age and receive the same training. Ryu is used to valuate Muro&#039;s progress and that of his Chrysalis. Ryu tries to keep up with Muro and trains with almost self-destructive methods.&lt;br /&gt;
&lt;br /&gt;
Notes: I imagine visuals similar to Sun-Ken Rock for him.&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;https://www.youtube.com/watch?v=dDosCfrSxcw&amp;lt;/nowiki&amp;gt; [dead link]&lt;br /&gt;
: Further inspiration will be a title by [https://www.youtube.com/watch?v=EAp6M8Ln4Ug Zack Hemsey]&lt;br /&gt;
&lt;br /&gt;
When Traton establishes Meta, he kicks Ryu out of business.&lt;br /&gt;
&lt;br /&gt;
Ryu seeks ways to pay Traton back, he accepts a temporary partnership with Mai&#039;s Phönix faction.&lt;br /&gt;
&lt;br /&gt;
After META is no more Mai tries to sell him out to the new police. While they are trying to arrest him, a public mob stops them doing so. Ryu&#039;s involvement in [https://www.businessinsider.com/japan-yakuza-mafia-aid-earthquake-tsunami-rescue-efforts-2011-3?IR=T crisis management] wasn&#039;t unnoticed. Everyone knows that his help was fundamental to the people&#039;s survival in the region.&lt;br /&gt;
&lt;br /&gt;
Mai accepts reality and gives it a positive résumé. &amp;quot;Of all Syndicate bosses that could have risen by now he is the smallest evil. And the broken trust in the government needs a long time before it becomes restored. I should have known this.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ryu acts a calming factor up to his death in the underground. Whenever a radical new organization emerges he and his men take down the newcomers before it gets too bad. A smashing fist where paper wouldn&#039;t do.&lt;br /&gt;
&lt;br /&gt;
By visiting his funeral Mai pays him respect for the role he played in post-Meta history, opposing some of her close friends&#039; opinion and pleading.&lt;br /&gt;
&lt;br /&gt;
Yakuza on the left. Ex-TCTF, Green Phönix and Mai on the right. An unreal scene for any outsider.&lt;br /&gt;
&lt;br /&gt;
The gathering attracts some headhunters, actually those of a brawler type. The place in protected by a shield. So they have to enter it to make the money. Apparently they have no idea who they are dealing with. -- The last one gets smashed by a thrown grave stone.&lt;br /&gt;
&lt;br /&gt;
One of Ryu&#039;s &#039;&#039;Gorillas&#039;&#039; laughs: &amp;quot;He would have liked the irony.&amp;quot; &amp;quot;Which one: winning against enemies even through his handicap of being dead himself. Or because this is just the right place to get rid of them?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The giant man laughs again. Mai and the Yakuza depart in different direction. As if nothing happened.&lt;br /&gt;
&lt;br /&gt;
Mai enters her car. She doesn&#039;t starts the engine yet, she stares over to the cemetery. She is shaking her head. &amp;quot;God. What a crazy world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The young man next to her ask: &amp;quot;Is there something in particular that you are thinking of?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Bitterness swings by. &amp;quot;No matter how hard I try the world will remain a crazy place. There&#039;s just no end to this. And one day it will eat you up. Daodan or not.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Mai started the engine and drove outside the city.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Isn&#039;t there anything we can do?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Not really. -- What a goddamn day. We lost a criminal that was pillar of this society. I almost considered him a friend. Everyone around me I care about dies - even if it&#039;s just a little. Not soon and you will find yourself dead by a bullet in the head because you are the son of Muro Hasegawa. -- Why can&#039;t you just shut the fuck up.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The young man was watching Mai&#039;s bitter face.&lt;br /&gt;
&lt;br /&gt;
He closed his eyes. &amp;quot;Avatara can you read me?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Have you asked her?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;No. I don&#039;t wanted to give her that burden as well.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I see. Then I will program the bioc now?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Don&#039;t turn yourself into Skynet, ok? That would be awkward.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Heh. Sure. -- I promise.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hey Ter, what is that blue stuff shooting out of the ground behind us?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ah that, nothing, just ignore it.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Wha--&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Saomi==&lt;br /&gt;
Muro&#039;s alpha fury. She provisionally adminstrates the Syndicate when Muro died at the mountain complex.&lt;br /&gt;
&lt;br /&gt;
She seeks revenge for Muro&#039;s death by hunting Griffin and Konoko. The later goal is not achived as Traton, Muro&#039;s former mentor, comes back from exile to takes the leader roll. He is a realist, he knows that there is no time to pursue personal wrath. The Syndicate took a big hit by losing Muro, the Sturmänderung base and rising in WCG&#039;s awareness. Traton and Okami kick Saomi out of business and deport her to the desert. During her death march trough the sand storms she encounters a mysterious, autarkic living community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sarai==&lt;br /&gt;
Originally a character from SuperSam.&lt;br /&gt;
&lt;br /&gt;
She is the embodiment of the BGI. She hunts Mai out of economic and political reasons. She has an anti-Daodan weapon to her disposal.&lt;br /&gt;
&lt;br /&gt;
When Sarai invades Green Village Mai has to flee with her GATC team.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shinatama 2.0==&lt;br /&gt;
Shin normally named.&lt;br /&gt;
&lt;br /&gt;
(During Mai&#039;s &#039;&#039;absence&#039;&#039; Shin changed so much in personality that Mai rejects her as sister?)&lt;br /&gt;
&lt;br /&gt;
Muro&#039;s son, Ter Hasegawa, and Avatara unleash Silver Dawn, a final version of Bioc derivative to create a new planetary AI, Gaia. Goal is the establishing of a Biocracy. But in the meantime the nanorobots are also used to suppress human destructive impulses.&lt;br /&gt;
&lt;br /&gt;
: &amp;quot;You can undo the mistakes of our family. But please don&#039;t do that on the cost of a new species.&amp;quot; [...]&lt;br /&gt;
&lt;br /&gt;
Shin convince Ter to give her control over the Guardian robots to prevent AI slavery.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Traton==&lt;br /&gt;
One of the subbosses who fight for the boss position - and he&#039;ll succeed.&lt;br /&gt;
&lt;br /&gt;
But on that way he have to take care on inner enemies like Kumo and Saomi.&lt;br /&gt;
&lt;br /&gt;
Estabishes META but tries keep BGI out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Chapters // synopsis so far=&lt;br /&gt;
==Prologue: Smouldering Ember (Part I)==&lt;br /&gt;
&amp;quot;Schwelende Glut&amp;quot; (PartI)&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
*The prologue is an outlook into the future. -- The new “government” wants to celebrate WCG’s fall after one year having a speech in the Tokio Dom. But instead “terrorists” come into the stadium and tells the full story to the audience... The prologue ends in the middle of the story. (We don&#039;t want to spoil.)&lt;br /&gt;
* current German beta [[Restless_Souls/BC0|HERE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 1: Bad News==&lt;br /&gt;
&amp;quot;Schlechte Nachrichten&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
*Fans might ask what happened right after Konoko battled Muro. Well, this is what the first Chapter starts with. In additional they meets the MissionFailed-guy.&lt;br /&gt;
*WCG is more or less shocked and the Syndicate became &amp;quot;headless&amp;quot;. Traton wants to take his chance of becoming the next big boss and flies into the old headquarters. Before that he activates the self-destruction of the mountain compound. It is of no longer use and a evidence of their activities towards TCTF and WGC. He picks up a hostile but injured and unconscious TCTF unit, his name is Manson. But his cybernetics wasn&#039;t TCTF-like. That made Traton curious. He release the man on place with a modified radio set, ready to pass a copy transmission at the Syndicate...&lt;br /&gt;
*Konoko is back at the TCTF but gets a chance working for an independent power called GATC. They decoy Konoko’s self-interest – promising to support the search of her missing father Hasegawa.&lt;br /&gt;
* current German beta [[Restless_Souls/BC1|HERE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 2: Situation Clearing==&lt;br /&gt;
&amp;quot;Situationsklärung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* Now the plot jumps into South Africa which is territory of the GUR. It’s the Camp’s introduction as second Syndicate base.&lt;br /&gt;
* The Camp director is aware of Muro’s death. That’s why he pushed Mukade’s last step of reanimation process forward. &amp;quot;Obviously&amp;quot; somebody didn’t like that and tried to completely erase him. The case is being investigated.&lt;br /&gt;
* However, Traton need the director to back-up his rising and discuss further actions.&lt;br /&gt;
* An optional element comes here in. Muro’s fency (Saomi) is making her own plans about the new Syndicate but this includes also Konoko. She wants vengeance.&lt;br /&gt;
* The plot jumps again. There’s another subbboss who wants to raise one position. It is Kumo. He is actually pro-BGI-minded. While Traton waits for a transmission from Manson Kumo let investigated the other clued from him. Manson had contact to the inner WCG circle – it’s a person who is actually a Syndicate mole. But now Traton doubts. Daya discovers that the man is &amp;lt;!--Tony--&amp;gt; Tether’s  &amp;quot;personal advisor&amp;quot; – a puppet master. She receives information about Green Village from him. That research complex runs an advanced Daodan program. Kumo want it in hope to be able fighting for the boss title. (He can also count with BGI’s support.) Daya flies to Green Village (in Russia).&lt;br /&gt;
* Meanwhile Traton checks WCG and GUR administration for other allies. &lt;br /&gt;
* Unfinished German beta [[Restless_Souls/BC2|HERE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 3: Daily Shadows==&lt;br /&gt;
&amp;quot;Alltagsschatten&amp;quot;; correct translation: &amp;quot;Everyday Life Shadows&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* New thematic: city life and how it will change during the upcoming &amp;quot;black season&amp;quot;. [...]&lt;br /&gt;
* Nishio is sort of reverse engineer and works at a repair shop called &amp;quot;Reserection Serv&amp;quot;. (The firm policy doesn’t care about patents.) So no wonder, the police are on Nishio’s track. They are about to make a deal with him: if he will come up with heavy evidence for major illegal business they will forget his little doings.&lt;br /&gt;
* Another string comes into play. Jareth (the WCG reporter) is contacted by Dakosta (web security and hacker in own mission). He wants him to investigate a terror act which happened 12 years ago, Jareth has to find his old mentor to get a starting point. He was involved but didn’t released all information...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 4: Scorched Earth==&lt;br /&gt;
&amp;lt;!--changed from &amp;quot;Trügerische Ruhe&amp;quot; - &amp;quot;Deceitful Peace&amp;quot;--&amp;gt;&amp;quot;Verbrannte Erde&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* Scorched earth... GATC stops Green Village’s infiltration by bombing it like &amp;quot;if we cannot have it then they too&amp;quot;. -- A official explanation to GATC soldiers: &amp;quot;In additional: Negotiations between Syndicate and WCG becomes that way more unlikely.&amp;quot;)&lt;br /&gt;
* But the effect was under their expectancy. Some complex areas are still intact.&lt;br /&gt;
* At same time poison air reach first cities. &lt;br /&gt;
* Traton is about thinking what to do with Kumo. &amp;quot;Making an example of him?&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 5: Neverending==&lt;br /&gt;
&amp;quot;Problem über alles&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* Environmental refugees flow into the cities. It’s just a matter of time until conflicts arise between refugees and city habitants.&lt;br /&gt;
* The Syndicate is not the only trace. WCG has also an advanced program. (Or maybe the datas are shared via AVATARA?) However, Konoko flies to Green Village in hope to collect some information from the undestroyed complex areas and then to guess where Hasegawa is.&lt;br /&gt;
* Mukade begins to track down Konoko – for his own reason but in official mission because Traton can her as scapegoat. (That would also fits Saomi’s desire for vengeance.)&lt;br /&gt;
* WCG receives Sturmanderung Camp’s coordinates from a covered source – it’s GATC. (They want both down: WCG and Syndicate.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 6: Operation Proteus==&lt;br /&gt;
&amp;quot;Operation Proteus&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* Operation Proteus... Traton&#039;s PR attack and final hit on WCG. He polarize the masses and chase them onto state institutions like TCTF.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;... work in progress&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Chapter 7: Fear (WIP)==&lt;br /&gt;
&amp;quot;Furcht&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 8: New Friends, Old Foes (WIP)==&lt;br /&gt;
(Neue Freunde, Alte Feinde)&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 9: Guerilla (WIP)==&lt;br /&gt;
&amp;quot;Guerilla&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 10: VR generation (WIP)==&lt;br /&gt;
&amp;quot;VR-Generation&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 11: Effect (WIP)==&lt;br /&gt;
&amp;quot;Effect&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 12: Nightly Snow Fall (WIP)==&lt;br /&gt;
(Abendlicher Schneefall)&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 13: Self-Identification (WIP)==&lt;br /&gt;
&amp;quot;Selbsterkennung&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==[...]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 14: Smouldering Ember (Part II) (WIP)==&lt;br /&gt;
&amp;quot;Schwelende Glut&amp;quot; (Part II)&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* Jareth&#039;s aim is showing the people that they were used to helps another regime&#039;s rising. He want them to mobilize once more but his formulation hurts their ego too much. They still don&#039;t want to believe that their action was worthless. So Jareth cannot gain much support from them at that time what force him and his group to fall back.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Chapter 15: Cold Blood (WIP)==&lt;br /&gt;
&amp;quot;Kaltes Blut&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
War over Green Village. Konoko and other resisters are stigmatized for Sturmanderung (in public known as &amp;quot;black season&amp;quot;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 16: Truth (WIP)==&lt;br /&gt;
&amp;quot;Wahrheit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RS add-on Silver Dawn begins (WIP)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chapter 17: Truth Number Zero (20 year later) (WIP)==&lt;br /&gt;
: &#039;&#039;Behold the power of that which is yet unborn! For the swirling images that flow forth from the Chrysalis are only a shadow of the sleeper&#039;s true power.&#039;&#039; (Never played it but isn&#039;t this a Starcraft 2 quote?)&lt;br /&gt;
&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&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;
{|{{table}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Oni 2]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:TXMP&amp;diff=46198</id>
		<title>XML:TXMP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:TXMP&amp;diff=46198"/>
		<updated>2025-12-26T06:14:03Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_File_Header | prev=TXMB | type=TXMP | next=TxtC | name=Texture Map}}&lt;br /&gt;
&lt;br /&gt;
==General notes==&lt;br /&gt;
* The XML on this page was tested with OniSplit &#039;&#039;&#039;v0.9.61.0&#039;&#039;&#039;.&lt;br /&gt;
* Textures&#039; X and Y dimensions are typically powers of two (e.g. 128, 256, 512). Oni and OniSplit will accept textures with dimensions that are not power-of-two, however there can be issues with them (see [[User talk:Neo/Archive5]], search &amp;quot;power&amp;quot;), so it&#039;s best to avoid them.&lt;br /&gt;
* A texture&#039;s height and width don&#039;t need to be equal, e.g. you can use 128x256.&lt;br /&gt;
* The camera can look at 2049 transparent textures at once; one more, and Oni crashes.&lt;br /&gt;
&lt;br /&gt;
==Tag hierarchy==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! Standard texture&lt;br /&gt;
! Animated texture&lt;br /&gt;
! Reflective texture&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&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;Texture&amp;gt;&lt;br /&gt;
        &amp;lt;Flags&amp;gt;...&amp;lt;/Flags&amp;gt;&lt;br /&gt;
        &amp;lt;Format&amp;gt;...&amp;lt;/Format&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;...&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;
 &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;Texture&amp;gt;&lt;br /&gt;
        &amp;lt;Flags&amp;gt;...&amp;lt;/Flags&amp;gt;&lt;br /&gt;
        &amp;lt;Format&amp;gt;...&amp;lt;/Format&amp;gt;&lt;br /&gt;
        &amp;lt;Speed&amp;gt;...&amp;lt;/Speed&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;...&amp;lt;/Image&amp;gt;&lt;br /&gt;
        &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;&amp;lt;Image&amp;gt;...&amp;lt;/Image&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
    &amp;lt;/Texture&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
|valign=top|&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;Texture&amp;gt;&lt;br /&gt;
        &amp;lt;Flags&amp;gt;...&amp;lt;/Flags&amp;gt;&lt;br /&gt;
        &amp;lt;Format&amp;gt;...&amp;lt;/Format&amp;gt;&lt;br /&gt;
        &amp;lt;EnvMap&amp;gt;...&amp;lt;/EnvMap&amp;gt;&lt;br /&gt;
        &amp;lt;Image&amp;gt;...&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;
==XML 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;
|valign=top| &amp;lt;Texture&amp;gt;&lt;br /&gt;
|valign=top| -&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;
[[Image:problems_with_AdditiveBlend_and_regular_transparency.jpg|thumb|200px|right|Be careful with transparent textures.]]&lt;br /&gt;
&lt;br /&gt;
: None&lt;br /&gt;
: HasMipMaps&lt;br /&gt;
: DisableUWrap&lt;br /&gt;
: DisableVWrap&lt;br /&gt;
: Unknown0010 (According to SRC, it was used by Bungie&#039;s Importer to determine the Pixel Type)&lt;br /&gt;
: AnimUseLocalTime (to export an animated texture, extract the .oni file as XML)&lt;br /&gt;
: HasEnvMap (don&#039;t use directly; used via tag)&lt;br /&gt;
: AdditiveBlend (makes black texture parts transparent in-game, usually set for animated textures)&lt;br /&gt;
: AnimBackToBack&lt;br /&gt;
: AnimRandom&lt;br /&gt;
: SwapBytes (defunct; this is automatically added in v0.9.56.0 and above, so you won&#039;t see the flag in an exported)&lt;br /&gt;
: AnimIgnoreGlobalTime&lt;br /&gt;
: ShieldEffect (hardcoded usage, reserved for TXMPshield)&lt;br /&gt;
: InvisibilityEffect (hardcoded usage, reserved for TXMPinvis)&lt;br /&gt;
: DaodanEffect (hardcoded usage, reserved for TXMPDAODAN_SHIELD)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Format&amp;gt;&lt;br /&gt;
|valign=top| flag&lt;br /&gt;
| &#039;&#039;&#039;A&#039;&#039;&#039;RGB formats are used for reflective textures (Alpha Red Green Blue)&lt;br /&gt;
&lt;br /&gt;
ARGB8888 can be used only if you use an updated engine (which comes with the AE). (When Macs were still on the PowerPC processor, Oni&#039;s textures needed to have [http://web.archive.org/web/20160225211918/http://oni.bungie.org/forum/viewtopic.php?pid=29967#p29967 their color channels swapped] or else they would appear color-inverted, but after the move to Intel Macs, both platforms used the same Windows-format textures.)&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!colspan=2|XML flags&lt;br /&gt;
!colspan=2|&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;Options for command line argument &amp;quot;-format:&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Up to OniSplit v0.9.52.0&lt;br /&gt;
|For higher versions&lt;br /&gt;
|&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;Up to OniSplit v0.9.52.0&amp;lt;/font&amp;gt;&lt;br /&gt;
|&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;For higher versions&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|width=25%|RGB888&lt;br /&gt;
|width=25%|&#039;&#039;&#039;BGR&#039;&#039;&#039;&lt;br /&gt;
|width=25%|&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;bgr32&amp;lt;/font&amp;gt;&lt;br /&gt;
|width=25%|&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;bgr&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ARGB8888&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;bgra32&amp;lt;/font&amp;gt;&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;rgba&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|RGB555&lt;br /&gt;
|&#039;&#039;&#039;BGR555&#039;&#039;&#039;&lt;br /&gt;
|colspan=2 align=center|&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;bgr555&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ARGB5551&lt;br /&gt;
|&#039;&#039;&#039;BGRA5551&#039;&#039;&#039;&lt;br /&gt;
|colspan=2 align=center|&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;bgra5551&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ARGB4444&lt;br /&gt;
|&#039;&#039;&#039;BGRA4444&#039;&#039;&#039;&lt;br /&gt;
|colspan=2 align=center|&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;bgra4444&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2 align=center|&#039;&#039;&#039;[[wikipedia:S3_Texture_Compression|DXT1]]&#039;&#039;&#039;&lt;br /&gt;
|colspan=2 align=center|&#039;&#039;&#039;&amp;lt;font color=&amp;quot;#999999&amp;quot;&amp;gt;dxt1&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Speed&amp;gt;&lt;br /&gt;
|valign=top| integer&lt;br /&gt;
| This tag is used if the XML file is meant to create an animated texture. In that case you would use multiple &amp;lt;Image&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say Speed is set to 7 — then the animation will advance every 7th frame.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;EnvMap&amp;gt;&lt;br /&gt;
|valign=top| link&lt;br /&gt;
| &lt;br /&gt;
:TXMP&#039;&#039;name&#039;&#039; (without suffix)&lt;br /&gt;
&lt;br /&gt;
This tag is used if the XML file is meant to create a reflective texture. File suffixes like .tga or .oni are not used in the EnvMap link.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top| &amp;lt;Image&amp;gt;&lt;br /&gt;
|valign=top| link&lt;br /&gt;
|&lt;br /&gt;
:TXMP&#039;&#039;name&#039;&#039;.tga&lt;br /&gt;
&lt;br /&gt;
Creating a texture from a JPEG, PNG or DDS is only supported via the command line&#039;s &amp;quot;-create:txmp&amp;quot; argument.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Animated textures==&lt;br /&gt;
[[Image:Animated_level_texture_with_and_without_AdditiveBlend.jpg|200px|thumb|A sample animated billboard.]]&lt;br /&gt;
[[Image:Animated_level_texture.gif|200px|thumb|Original animated texture.]]&lt;br /&gt;
&lt;br /&gt;
It&#039;s tiresome to manually create an XML file with a large number of &amp;lt;Image&amp;gt; tags. Skip that work by using [http://mods.oni2.net/node/332 Simple OniSplit GUI]. (Normal TXMP creation is also supported.)&lt;br /&gt;
&lt;br /&gt;
Some advice:&lt;br /&gt;
# When using XML to import, OniSplit can only accept TGA images.&lt;br /&gt;
# AdditiveBlend should only be used on things that are supposed to glow — otherwise you might think that the object ignores its vertex shading. In the case of the billboard at the right, this was an improvement; now it&#039;s a transparent OLED billboard.&lt;br /&gt;
# Long animations in high quality (512x512, RGB) produce VERY big .oni files. The source billboard GIF is 1.7MB and the resulting .oni file is 273MB. That&#039;s because TXAN doesn&#039;t support variable timing like the GIF format, so a smooth animation like this one will have a ton of duplicate frames in it. Even as a ZIP, the .oni file was still 66MB, which is unreasonably large. The billboard could possibly be broken into 3 static and 3 transitional images, and then animated &amp;quot;manually&amp;quot; via a [[Creating a level#Texture exchange|BSL loop]]. The conclusion is to use animated images with lower quality settings and to avoid long periods of duplicate frames which waste space.&lt;br /&gt;
&lt;br /&gt;
[[Creating animated images|HERE]] is some information on how to create an animated texture within various graphics programs.&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=History_of_Mac_Oni&amp;diff=46197</id>
		<title>History of Mac Oni</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=History_of_Mac_Oni&amp;diff=46197"/>
		<updated>2025-12-26T06:13:43Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hatnote|For the overall history of Oni&#039;s development, see [[Oni]]. For information on the unusual European Mac releases with extra files, see [[European Mac releases|HERE]].}}&lt;br /&gt;
{{UpdatedForOniX|1.0.0}}&lt;br /&gt;
Unlike Oni for Windows, which wasn&#039;t updated or patched by the developer after its release, the Mac version of Oni has a complicated history due to changes in the Mac platform, and has evolved throughout the years.&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==Windows Oni 1.0 to Mac Oni 1.1==&lt;br /&gt;
[[Image:Classic Mac Oni Get Info window.jpg|thumb|Bungie&#039;s original Carbon PPC build of Oni 1.1.]]&lt;br /&gt;
While Oni was developed by [[Bungie West]] simultaneously for Windows and Mac OS (with the PlayStation 2 port being done in parallel by Rockstar), the game&#039;s development was not completed for both platforms at the same time. The date of the retail Windows application is 11/3/00, the game data is dated 11/4/00, and Oni was reported as having been [[wp:Software release life cycle#Release to manufacturing (RTM)|gold-mastered]] for Windows [http://oni.bungie.org/newsarchives/2000/nov00.html#xbox around 11/17/2000]. Although the date on the Mac game data is 11/20/00, the Mac version continued in development for another month, partly due to a graphics bug discovered [http://carnage.bungie.org/oniforum/oni.forum.pl?read=7653 at the last minute]. It was probably gold-mastered on 12/20/00 based on the date on the demo application (which doesn&#039;t have the joke creation date seen to the right), and based on [http://carnage.bungie.org/oniforum/oni.forum.pl?read=8045 this post] by Matt Soell. (There&#039;s a report of a [http://oni.bungie.org/newsarchives/2001/jan01.html#gold late Mac GM date of 1/2/01], but this doesn&#039;t make sense unless the code underwent further last-minute changes after the demo.)&lt;br /&gt;
&lt;br /&gt;
It appears that the Mac version of Oni required a change to the layout of the game data files (the addition of .sep files; see [[Windows Oni vs. Mac Oni#Game data files|HERE]] for details). The required changes to Oni&#039;s code were made after the final build of the retail Windows Oni application, but because the Windows demo was not released until [http://oni.bungie.org/newsarchives/2000/dec00.html around 12/17/00], it was built on the version of the code which used .sep files.&lt;br /&gt;
&lt;br /&gt;
As a result of reaching gold status first, the Windows retail Oni application is labeled as version 1.0 (as seen in the [[Oni (folder)/readme.txt|Windows read-me]]), and Bungie&#039;s build of the game app for the Mac is version 1.1 (pictured, right; also see the [[Oni (folder)/Oni ReadMe|Mac read-me]]). Besides any fixes to the code made after Windows Oni was gold-mastered, it&#039;s likely that additional bugs were fixed between the production of the Windows demo and the Mac release, based on issues observed in BSL in the Windows demo application that aren&#039;t present in Mac Oni.&lt;br /&gt;
&lt;br /&gt;
However, the release of Mac OS X in spring 2001 was awkward timing for Oni. The best that Bungie could do for compatibility before Oni released in January 2001 was to build the Oni application as a &amp;quot;Carbon&amp;quot; application that was compatible with developer previews of OS X. Carbon apps could be written primarily for OS 9 and still run in OS X. Unfortunately, when OS X released, the Carbon build of Oni displayed various issues in that environment.&lt;br /&gt;
&lt;br /&gt;
==Carbon to Cocoa==&lt;br /&gt;
[[Image:Omni Oni Get Info window.png|thumb|The Omni Group&#039;s PPC Mac OS X port.]]&lt;br /&gt;
Then, at the end of 2001, The Omni Group [http://www.omnigroup.com/mailman/archive/omni-press/2001/000008.html released] a &amp;quot;Cocoa&amp;quot; (native OS X) build of the game which they had produced for free. This became known as the Omni build (now often referred to as the PPC build to differentiate it from the later Intel build). Their OS X builds (released through 2003) kept Oni stable on the latest Mac OS for several years. The last Omni build is still available [http://files.omnigroup.com/software/MacOSX/10.1/Oni-1.0v1.36.dmg here]. However, as computers advanced, a critical bug appeared in both Windows and Mac Oni: the game would immediately crash while querying the graphics card at startup. Once [[IanPatt|a patch]], made through hex editing, was figured out in Windows, it was carried over to the PPC build. Over time, additional patches were made by fans to the PPC build; see [[OMNI|HERE]] for details.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==PPC to Intel==&lt;br /&gt;
[[Image:Feral Oni Get Info window.jpg|thumb|Feral&#039;s most recent Intel Mac build.]]&lt;br /&gt;
In 2006 Apple began the [[wp:Mac transition to Intel processors|switch to Intel processors]], moving away from the PowerPC chip for which both Bungie and The Omni Group had built Oni. For a while, PPC apps could be run on Intel Macs using [[wp:Rosetta (software)|Rosetta]], but support for the old architecture was expected to eventually phase out. In 2009, [https://www.feralinteractive.com/en/ Feral Interactive] (Oni&#039;s Mac distributor outside of North America) [http://web.archive.org/web/20160224174453/http://oni.bungie.org/forum/viewtopic.php?id=848 expressed an interest] in putting out an Intel-native build of Oni. They obtained the latest version of Oni&#039;s source code from The Omni Group (who had already begun porting it to Intel), and made their initial public release of Oni for Intel Macs in the spring of 2011, a few months before the first version of OS X without Rosetta was released. The Feral build of Oni incorporates a number of changes requested by fans, detailed [[FERAL|HERE]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oni history]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User_talk:Neo/Archive3&amp;diff=46196</id>
		<title>User talk:Neo/Archive3</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User_talk:Neo/Archive3&amp;diff=46196"/>
		<updated>2025-12-26T06:13:22Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Neo, if you have time, can you look at this thread: http://web.archive.org/web/20160225134601/http://oni.bungie.org/forum/viewtopic.php?pid=7390&lt;br /&gt;
Loser has developed a wall collision particle that works on the retail and demo PC version.  However, when I tried it on the Mac, it did not work.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 20:59, 16 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I&#039;ll take a look, it doesn&#039;t work for me either.&lt;br /&gt;
&lt;br /&gt;
PS: Is there anything interesting on this page to be saved or I can delete all the content?&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thanks for looking at it.  The concept of Loser&#039;s wall collision is cool&lt;br /&gt;
&lt;br /&gt;
I think that the content regarding the various versions of OniSplit be moved to the talk page [[Talk:OniSplit]]&lt;br /&gt;
The current stuff on that page can be deleted.&lt;br /&gt;
&lt;br /&gt;
As for the rest of the stuff on your talk page, its up to you to keep or delete :-)&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 22:47, 16 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I tried again the wall collision stuff and it worked. First time when I tried I was using the wrong ONCC.&lt;br /&gt;
&lt;br /&gt;
I&#039;m not aware of any difference between Mac exe and PC exe in this regard. What I know is that there can be at most 16 particles attached by an animation but from what I&#039;ve seen those animations only attach 3 so there is no problem.&lt;br /&gt;
&lt;br /&gt;
I noticed that the message you are seeing is something like &lt;br /&gt;
&lt;br /&gt;
  no particle found for anim##; particle ##&lt;br /&gt;
&lt;br /&gt;
and Loser thinks this is PAR3 related. It&#039;s not, this is displayed when it doesn&#039;t find the particle in ONCP. &lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
It was all my fault. When I tested it I only used the striker_easy class ONCC, since I was testing in level 1.  However, I was playing the game on the HARD level, so it was using the harder variants which I did not update. That&#039;s why I was getting the errors.  Once I installed all of Loser&#039;s modified ONCCs, his wall collision feature worked.&lt;br /&gt;
&lt;br /&gt;
Sorry to have bothered you on this matter.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 01:35, 18 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Sorry to bother you.  I want to add some more characters to level 19, but I&#039;m not sure how to write the hex number correctly, since it is 5 digits.&lt;br /&gt;
&lt;br /&gt;
In the BINACJBOCharacter.oni for level 19 at offset 0x68 currently its 8CDC, I want to add 17 more CHAR data (x2464) so doing the math xDC8C + x2464 = x100F0.&lt;br /&gt;
&lt;br /&gt;
What is the correct way to write x100F0 in little endian at offset 0x68?&lt;br /&gt;
&lt;br /&gt;
Of course, I&#039;ll have to make a similar change for 84DC offset xC4.&lt;br /&gt;
&lt;br /&gt;
It will be great once/if we&#039;re able to export/import BINACJBOCharacter.oni as .xml files!&lt;br /&gt;
&lt;br /&gt;
Many thanks.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:54, 20 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure what&#039;s supposed to be at 0x68, maybe you mean 0x88 (where the size of the raw/sep part is)?&lt;br /&gt;
&lt;br /&gt;
Anyway 0xA1B1C1D1 is stored as:&lt;br /&gt;
:*A1 B1 C1 D1 - big endian (bytes are stored in the same order)&lt;br /&gt;
:*D1 C1 B1 A1 - little endian (bytes are stored in reverse order)&lt;br /&gt;
&lt;br /&gt;
So 0x100F0 aka 0x000100F0 stored as little endian is F0 00 01 00.&lt;br /&gt;
&lt;br /&gt;
PS: I&#039;m almost done with [[OBJC]] export. Hopefully I&#039;ll do the import soon too.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I am sorry to bother, but this can help to make h2w system look better. When character collides with wall, what REALLY collide ??? For me it seems that for char-&amp;gt;wall collision there is some invisible bounding box. Where is this bounding box, if you know (or correct me if I am wrong). How can I change it? I ask because for me (it is my guess in next sentence, nothing proven ) it seems that this &amp;quot;bounding box&amp;quot; looks like invisible sphere which is around pelvis bone. That is why you can fall and stick your torso/head/legs into next room. Engine ignores bones in char-&amp;gt;wall coll. Is this correct? + please answer if you know how to change it. Thanks a lot in any case&lt;br /&gt;
&lt;br /&gt;
P.S.:Just a curious question, no explanation needed: I know that AI2 powered characters can push away weapons which are on ground. Can it be (from engine-possibilities point of view) that in ONI we should have movable furniture (objects which can be pushed by chars)?&lt;br /&gt;
&lt;br /&gt;
--[[User:Loser|Loser]] 11:34, 20 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Umm... many questions, time for a brain dump :)&lt;br /&gt;
&lt;br /&gt;
;Character - Wall collision&lt;br /&gt;
&lt;br /&gt;
:this is always sphere tree-quad collision. You probably know that the sphere tree can be seen with &amp;quot;chr_debug_sphere=1&amp;quot;. One thing to note about that sphere tree is that it always &amp;quot;stays up&amp;quot; (even when the character is fallen). That&#039;s why fallen characters pass through walls, their body gets outside the sphere when that happens. &lt;br /&gt;
&lt;br /&gt;
:As for changing the radius of that sphere tree: it may be possible but it won&#039;t solve anything.&lt;br /&gt;
&lt;br /&gt;
;Character - Floor collision&lt;br /&gt;
&lt;br /&gt;
:characters also have a special function to detect floor collision which checks if a 3x3 quad intersects the floor. This is done to avoid &amp;quot;strange&amp;quot; sinking when the sphere&#039;s lowest point goes outside the floor. This is the probable cause why sometimes fallen characters hang on an edge (their 3x3 quad still intersects the floor) or fall of the edge even if their feet or head are still on the floor (the 3x3 quad is too small to cover the feet and head when the character is fallen).&lt;br /&gt;
&lt;br /&gt;
;Particle - Wall collision&lt;br /&gt;
&lt;br /&gt;
:this is always point-quad collision (the point is the position of the particle)&lt;br /&gt;
&lt;br /&gt;
;Particle - Object collision (where object is anything with a physics context that supports collision: characters, [[OBOA]] objects, powerups, weapons)&lt;br /&gt;
&lt;br /&gt;
:this can be sphere-obbox or sphere-sphere collision depending on what the object has (obbox or sphere tree). The radius of the particle sphere is taken from Collision Radius property of the particle class. It can be 0 and then the collision degenerates to point-obbox/point-sphere collision.&lt;br /&gt;
&lt;br /&gt;
;Environment collision (general)&lt;br /&gt;
&lt;br /&gt;
:The engine can only do point-quad and spheretree-quad collision detection. &lt;br /&gt;
&lt;br /&gt;
;Object collision (general)&lt;br /&gt;
&lt;br /&gt;
:All objects (that have a physics context) have a sphere tree attached to them and some objects created through OBOA also have an obbox.&lt;br /&gt;
&lt;br /&gt;
;Moveable furniture&lt;br /&gt;
&lt;br /&gt;
:Yes and no. It can be done to some extent using [[OBOA]]. &lt;br /&gt;
&lt;br /&gt;
:Basically an OBOA object can be pushed if it&#039;s not animated (no OBAN link) and it has &amp;quot;physics type&amp;quot; 2 or 4 (I don&#039;t know what&#039;s the difference).&lt;br /&gt;
&lt;br /&gt;
:What doesn&#039;t work:&lt;br /&gt;
:*characters fall through objects (the character-floor collision function does not see objects)&lt;br /&gt;
:*since the environment only supports sphere-quad collision you tipically cannot push an object very close to the wall (unless of course the object itself is a sphere or close enough to one)&lt;br /&gt;
:*objects can fall but because of sphere-quad collision detection they&#039;ll get stuck somewhere above the floor&lt;br /&gt;
:*an object can fall on another object but a third object will fall through both of them; in general multiple object interaction is buggy&lt;br /&gt;
:*if I remember correctly there is 128 physics context limit. That means the number of active characters + objects + powerups and whatever else needs a physics context is limited to 128. Anyway it will very likely crawl before you reach that limit.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you, now I understand, I need to add leading zeros to the result.&lt;br /&gt;
Also, a user at OCF asked if it was possible to do division and multiplication in BSL, is it possible?&lt;br /&gt;
&lt;br /&gt;
I look forward to trying out the OBJC export.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
You can try this (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta.zip&amp;lt;/nowiki&amp;gt;, dead link) beta for OBJC export. Mostly works as far as I know except that the resulting XML for MELE kind of sucks. &lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I got this error when extracting BINACJBOMelee Profile:&lt;br /&gt;
&lt;br /&gt;
  System.NotImplementedException: Argument value is System.Single[]&lt;br /&gt;
  at System.Xml.XmlWriter.WriteValue (System.Object value) [0x00000] &lt;br /&gt;
  at Oni.XmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitVector3 (Oni.Metadata.MetaVector3 type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaVector3.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.XmlExporter.WriteFields (Oni.Metadata.Field[] fields) [0x00000] &lt;br /&gt;
  at Oni.XmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitStruct (Oni.Metadata.MetaStruct type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaStruct.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Objects.CollectionExporter.ExportInstance (Oni.InstanceDescriptor descriptor) [0x00000] &lt;br /&gt;
  at Oni.XmlExporter.ExportInstance (Oni.InstanceDescriptor descriptor) [0x00000] &lt;br /&gt;
  at Oni.Exporter.ExportInstanceList (System.Collections.Generic.List`1 descriptors) [0x00000] &lt;br /&gt;
  at Oni.Exporter.Export (Oni.FileManager fileManager, System.String sourceFilePath, System.String filter) [0x00000] &lt;br /&gt;
  at Oni.Program.ExtractXml (System.String[] args) [0x00000] &lt;br /&gt;
  at Oni.Program.Main (System.String[] args) [0x00000]  (1)&lt;br /&gt;
&lt;br /&gt;
Also the .xml file looks like this:&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;ObjectCollection version=&amp;quot;0.9.18.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Object Id=&amp;quot;630&amp;quot; Type=&amp;quot;MELE&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;&lt;br /&gt;
        &amp;lt;/Header&amp;gt;&lt;br /&gt;
    &amp;lt;/Object&amp;gt;&lt;br /&gt;
  &amp;lt;/ObjectCollection&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
Beta2 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta2.zip&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Yes!!!! Thanks&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
Beta3 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta3.zip&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
Import done. You should be able to create BINACJBO*.oni files from xml files.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Wonderful. Now my scripting can continue. Good job Neo.&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 20:07, 21 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I got this error, I exported BINACJBOCharacter.oni from level 3 and then imported again with no changes:&lt;br /&gt;
&lt;br /&gt;
  System.ArgumentException: Specified type &#039;System.Single[]&#039; is not supported.&lt;br /&gt;
  at System.Xml.XmlReader.ValueAs (System.String text, System.Type type, IXmlNamespaceResolver resolver) [0x00000] &lt;br /&gt;
  at System.Xml.XmlReader.ReadElementContentAs (System.Type type, IXmlNamespaceResolver resolver) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlImporter.Oni.Metadata.IMetaTypeVisitor.VisitVector3 (Oni.Metadata.MetaVector3 type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaVector3.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlImporter.ReadFields (Oni.Metadata.Field[] fields) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlImporter.Oni.Metadata.IMetaTypeVisitor.VisitStruct (Oni.Metadata.MetaStruct type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaStruct.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlImporter.ReadObject () [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlImporter.Import () [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlImporter.Import (System.Xml.XmlReader reader) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlImporter.ReadObjectCollection () [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlImporter.Import (System.String filePath, System.String outputDirPath) [0x00000] &lt;br /&gt;
  at Oni.Program.CreateFromXml (System.String[] args) [0x00000] &lt;br /&gt;
  at Oni.Program.Main (System.String[] args) [0x00000]  (1)&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
Beta4 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta4.zip&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
Oh boy, were Mono developers lazy or not... :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you! BINACJBOCharacter.oni works fine, now to take a look at the melee profile file...&lt;br /&gt;
&lt;br /&gt;
Ed&lt;br /&gt;
&lt;br /&gt;
The melee profile is much more understandable. The moves are clearly identified. So  I assume, now we will be able to create a new melee profile or at the very least add new techniques to an existing profile.&lt;br /&gt;
&lt;br /&gt;
Again, THANK YOU on your awesome work on OniSplit.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:17, 22 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
2 notes about melee:&lt;br /&gt;
&lt;br /&gt;
:*I&#039;ve yet to make move types to show up as names instead of numbers. Remebering all those is not fun.&lt;br /&gt;
:*The original melee files contain what appears to be orphaned moves. Since currently moves are exported as children of techniques the orphaned moves are not exported. I don&#039;t think those moves are used by the engine but if someone knows otherwise I&#039;ll see what can be done to export them too.&lt;br /&gt;
&lt;br /&gt;
Other stuff:&lt;br /&gt;
&lt;br /&gt;
:*The general xml export was updated to export names instead of number for several enum and flags fields. For example the class of a dialog item in [[WMDD]] was previously exported as a number but now it&#039;s a string like Button, Edit etc. Flags fields are exported as a list of names (names separated by whitespace) like in this WMDD state field:&lt;br /&gt;
  &lt;br /&gt;
   &amp;lt;State&amp;gt;Visible Disabled&amp;lt;/State&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This simplifies editing but currently there is now way to discover what names are available (unless you take a look at the source code :)). I&#039;ll try to make OniSplit display such a list as part of the help or something.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hey Neo, do you have any idea what the flag &amp;quot;Boss&amp;quot; does?&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 18:02, 22 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Not sure. It mai be connected to ai2_boss_battle script variable. And I&#039;m not sure those flags are 100% correct, it looks to me that Boss/NoAutoDrop/Omniscient are mixed up.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hello again. I am thinking of writing the Windows GUI for Onisplit. What scripting language would you suggest I write it in?&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 02:55, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Hmm... the only scripting language to do a Windows GUI that comes to mind is Tcl/Tk but you really don&#039;t want to use that :). There are Perl/Python/Ruby etc. implementations for Windows but I have no idea if they can be used to make a GUI. It&#039;s likely that you&#039;ll have to use one of the &amp;quot;usual&amp;quot; languages: C/C++/C#/VB/Java/Delphi...&lt;br /&gt;
&lt;br /&gt;
Maybe I&#039;ll do a GUI one day but it&#039;s not on my priority list, I&#039;m more interested in making importers/exporters for now.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
   the only scripting language to do a Windows GUI that comes to mind is Tcl/Tk but you really don&#039;t want to use that :)&lt;br /&gt;
&lt;br /&gt;
You can also try AutoIt3: https://www.autoitscript.com/site/&lt;br /&gt;
&lt;br /&gt;
It&#039;s easy to create a GUI with both of them, but AutoIt3 can&#039;t work with binary files, only text files (as far as I know). And in case of tcl/tk: It&#039;s a pain to install it. I tried and failed.&lt;br /&gt;
&lt;br /&gt;
[[User:Ssg|Ssg]] 11:44, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I&#039;ve worked with AutoIt3 before and I would recommend it. The GUI creation functions are both powerful and easy to use. It can work with binary files using:&lt;br /&gt;
 FileOpen(&amp;quot;filename&amp;quot;, 16)&lt;br /&gt;
If you need any help with AutoIt post a message on my talk page.&lt;br /&gt;
[[User:RossyMiles|rossy]] 12:55, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Why would I want to open binary files? O_o. For detecting the type of .oni file I give it?&lt;br /&gt;
I have not worked with AutoIt3 before, but it doesn&#039;t look too hard, and I&#039;m sure my conglamerated knowledge of random scripting languages will help me...&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 16:57, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://sites.google.com/site/gumby701/gui.exe&amp;lt;/nowiki&amp;gt; (dead link)&lt;br /&gt;
&lt;br /&gt;
Look, its a GUI! That doesn&#039;t do anything...&lt;br /&gt;
&lt;br /&gt;
...and needs properly aligned and formatted...:D&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 02:23, 24 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One more beta for OBJC: Beta 5 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta5.zip&amp;lt;/nowiki&amp;gt;, dead link).&lt;br /&gt;
&lt;br /&gt;
Fixed character flags and added move type names and parameters names to melee (instead of numbers and Param0, Param1 etc.).&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
This makes reading the melee much easier.  I wish I had some time to play around with making a new melee profile.&lt;br /&gt;
&lt;br /&gt;
Is this a bug or just an error in the original code. &lt;br /&gt;
In the NINJA_Easy profile I found this technique:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Technique&amp;gt;&lt;br /&gt;
 &amp;lt;Name&amp;gt;Back Kick&amp;lt;/Name&amp;gt;&lt;br /&gt;
 &amp;lt;Flags /&amp;gt;&lt;br /&gt;
 &amp;lt;Weight&amp;gt;40&amp;lt;/Weight&amp;gt;&lt;br /&gt;
 &amp;lt;Offset_0660&amp;gt;10&amp;lt;/Offset_0660&amp;gt;&lt;br /&gt;
 &amp;lt;RepeatDelay&amp;gt;0&amp;lt;/RepeatDelay&amp;gt;&lt;br /&gt;
 &amp;lt;Moves&amp;gt;&lt;br /&gt;
 &amp;lt;Position Type=&amp;quot;CloseBack&amp;quot; MinRunInDist=&amp;quot;0&amp;quot; MaxRunInDist=&amp;quot;10&amp;quot; ToleranceRange=&amp;quot;4.5&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;Attack Type=&amp;quot;PB&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/Moves&amp;gt;&lt;br /&gt;
 &amp;lt;/Technique&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Even though it says Back Kick, the attack is Punch Back.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
The wiki has some pages about various melee profiles and it contains the same thing: OBD:BINA/OBJC/MELE/NINJA [deleted page]. So either it is just a mistake in the melee profile or the move type wiki tables are wrong, I&#039;ll have to check with the executable.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hey. I got a bit of the Windows GUI done. It wasn&#039;t too hard...and tell me if the icons arent there (either for the explorer icon, or the one in the top right corner)&lt;br /&gt;
&lt;br /&gt;
http://gumby.oni2.net/GUI/LevelRecombine.exe&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]]&lt;br /&gt;
&lt;br /&gt;
Yes, the icons are OK. But is it supposed to do anything? That recombine button appears to have no effect.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I was looking at the attack moves on this page: [[OBD:BINA/OBJC/MELE/MoveList]]&lt;br /&gt;
And I gave one a try, Attack Move #28 KF KF, but got an error in OniSplit.&lt;br /&gt;
&lt;br /&gt;
Edit: Cleaning up.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 03:56, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
It&#039;s KF_KF, I cannot have spaces in those names.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thanks, now do you think the names of the moves on the MoveList page should match the ones in OniSplit?&lt;br /&gt;
For example on the MoveList page it has &#039;&#039;&#039;Throw-P Behind Disarm&#039;&#039;&#039; but OniSplit has it as &#039;&#039;&#039;P_BehindDisarm&#039;&#039;&#039;.&lt;br /&gt;
There are many differences between the MoveList and OniSplit syntax.&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure others will have the same issue as they start modifying the melee profile.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 16:16, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well, spaces and - are not allowed in there. As for the Throw- prefix I just removed because it&#039;s kind of dumb to write &amp;lt;Throw Type=&amp;quot;Throw_P_BehindDisarn&amp;quot;.../&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The best I can do is to make sure that space is consistenly converted to _ so instead of RunLeft you get Run_Left which is closer to that table.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I think we should change the syntax on the wiki to match OniSplit. Like for example change the wiki entry Throw-P Behind Disarm to P_BehindDisarm.  The reason for this is when we want to modify the melee profile, we will look at the wiki and use the syntax there and put it in OniSplit, then we get errors.  But if the wiki has the syntax the OniSplit will use, that will eliminate the problem.&lt;br /&gt;
&lt;br /&gt;
Is there a way to get the moves syntax from OniSplit?  Then I can start updating the wiki.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 22:48, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
OniSplit 0.9.18 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18.zip&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
I added a &amp;quot;-help enums&amp;quot; option which dumps a list with all enums and flags used in XML files. Since otherwise it seems to work fine I dropped the &amp;quot;beta&amp;quot; label.&lt;br /&gt;
&lt;br /&gt;
Feel free to update the wiki if you want but I&#039;d say to leave it like it is. The wiki is about Oni internals, not about OniSplit.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thanks for the -help enums.  I found a difference between the wiki movelist and the OniSplit enums.&lt;br /&gt;
&lt;br /&gt;
Wiki: Attack#43  KKP and Attack#51 HK, OniSplit does not have them.  Thus the wiki has a total of 83 attacks and OniSplit has 81 attacks.&lt;br /&gt;
&lt;br /&gt;
I was in the process of making a movelist page for OniSplit users.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 01:59, 2 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Oops. Fixed: OniSplit 0.9.19 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.19.zip&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I had an interesting idea today. If the only difference between a .dat file and a .oni file is that in a .oni file the .raw entries and .sep entries are stored at the end of the file, it might be possible to write a small engine hack which allows Oni to load .oni files directly as level plugins. The problem is, I&#039;m not sure whether it would be useful or possible yet.&lt;br /&gt;
&lt;br /&gt;
[[User:RossyMiles|rossy]] 12:56, 2 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well, in theory it is possible but:&lt;br /&gt;
- we may need to add the raw/sep parts at the end of existing .dat files too because supporting both styles of loading raw/sep is more difficult to implement&lt;br /&gt;
- what about Mac? I may as well rewrite all the .dat loader and replace the original one by means of vtuneapi.dll/daodan but I don&#039;t know how new code can be loaded on Macs.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I got this error message while importing an ONCC.xml file using version 0.9.19.  However, the file is created and works fine in Oni.&lt;br /&gt;
&lt;br /&gt;
 System.ArgumentNullException: Argument cannot be null.&lt;br /&gt;
 Parameter name: Byte buffer is a null reference.&lt;br /&gt;
  at System.IO.BinaryWriter.Write (System.Byte[] value) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlImporter.WriteRawParts (Oni.FileWriter writer) [0x00000] &lt;br /&gt;
  at Oni.Importer.Write (System.String filePath, System.Byte[] data, Boolean hasRawParts) [0x00000] &lt;br /&gt;
  at Oni.Importer.WriteFile (System.String outputDirPath, System.Byte[] data, Boolean hasRawParts) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlImporter.Import (System.String filePath, System.String outputDirPath) [0x00000] &lt;br /&gt;
  at Oni.Program.CreateFromXml (System.String[] args) [0x00000] &lt;br /&gt;
  at Oni.Program.Main (System.String[] args) [0x00000]  (1)&lt;br /&gt;
&lt;br /&gt;
This happens even with an unmodified ONCC file.  &lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 19:55, 2 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Fixed: OniSplit 0.9.20 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.20.zip&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
And yes, the created files are OK even if it throws error.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
So what will you be working on next?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:23, 3 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Don&#039;t know, it depends on how much free time I have and my mood :).&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Neo, I remember you wrote about having a folder inside the levelX_Final folder that will not be included when recompiling, I must be blind, I can&#039;t seem to find it.  What was the name for it?&lt;br /&gt;
&lt;br /&gt;
Any chance that you can find out how to add more level plugins for the Mac version.  Since Oni originally was going to have more levels, the Mac engine should be able to handle more levels without crashing.&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:48, 10 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
That directory is called noimport or _noimport.&lt;br /&gt;
&lt;br /&gt;
Oni may very well had more than 16 levels. For Bungie, who had the source code, it was a matter of changing one line of code to adjust the max number of levels. The story is quite different if you want to change the compiled thing.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hi there Neo,&lt;br /&gt;
again I am here to seek your advice, this time it is about AI2, ONCC and MELE. &lt;br /&gt;
&lt;br /&gt;
First of all, I have tested it and it seems that AI2 powered characters can jump (they have attacks from air) but they can do only &#039;&#039;&#039;basic tap jump&#039;&#039;&#039;([[ONCC]], offset 0x010), like if you just tap spacebar. Question is: is there possibility to make them use &#039;&#039;&#039;jetpack timer&#039;&#039;&#039;(to make them &#039;hold spacebar&#039;) in order to jump higher/further ?&lt;br /&gt;
&lt;br /&gt;
Second, if AI2 character is far from you, it runs to you and uses pathfinding mode. With help of pathfinding grid it moves in space, avoids obstacles etc. Question is: Do AI2 characters ignore grid when they have MELE mode on? Do they ignore it completely/partially/they don&#039;t ignore it? I ask because when in MELE mode active, AI2 characters can pursue you even &#039;&#039;&#039;outside&#039;&#039;&#039; area with pathfinding grid, but then they won&#039;t move if you run away from them, but start attacking you(and moving) if you come close to them again. Also, in MELE mode AI2 characters can run across red pathfinding tiles (impassable) but if you get away they get stuck as if they were outside the grid (won&#039;t move until you get close). BUT, there are pathfinding tiles which look like they could be used only for jumping (border 1/2/3/4). And jumping is avilable (as far as I know) only when in MELE mode ^_~. Also, I have tested this: player is in BNV1, standing on top of some box (so he is surrounded by red tiles). AI2 is in BNV2, which is next to BNV1 but there is NO direct transition quad between those two BNVs, only there are &#039;border&#039; tiles in BNV1 near the line between BNV1 and BNV2. Now tell AI2 to attack player. If player is too far from AI2 character, AI2 will use pathfinding and it will take some long way in order to get to the player. But if player is close enough AND AI2 has in MELE some jumping attack, this AI2 will run towards border and JUMP directly to the player. So it looks like border tiles indicate space where jump attacks are prefered in order to reach enemy. Also, in devmode if you bring MELE debugging window, you can see(if AI2 is in &#039;border&#039; tiles) that next to other info about technique (like DELAY, UNBLOCKED etc.) there are also informations WORRY-FWD and DANGER-FWD which looks like they correspond to blue (border) and then orange (danger) grids.&lt;br /&gt;
&lt;br /&gt;
So question(s) for this part once again: is pathfinding grid ignored by AI2 when in MELE? If not, is there relation between some pathfinding tiles (border, danger) and MELE messages WORRY-FWD, DANGER-FWD ??? Next, how these tiles affect (if they affect) MELE attacks selection? Do they make AI2 prefer jumping attacks?&lt;br /&gt;
&lt;br /&gt;
All these questions have their sense. I am tired of being able to escape unarmed enemy just by simple jump onto nearest obstacle. I have tried to make AI2s jump, but they can do only tap jump which is not too high and they cannot jump too far + if you escape from them, they get stuck. So if You can answer me, I will see what I can do. I have done some exeriments already (see [https://www.youtube.com/watch?v=NQE-LjM9GqM THIS] video) but it is not enough IMO. Thanks for any info.&lt;br /&gt;
&lt;br /&gt;
--[[User:Loser|Loser]] 21:03, 14 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
The short answer: I don&#039;t know.&lt;br /&gt;
&lt;br /&gt;
The long answer:&lt;br /&gt;
I haven&#039;t looked too much into Oni&#039;s AI code partly because it is quite large and complex (in fact it&#039;s probably the largest piece of code in Oni). I don&#039;t think AI can do more than simple tap jump but that really depends on how the AI controls the character:&lt;br /&gt;
&lt;br /&gt;
:*simply tell the character to execute an animation: that makes doing more than tap jumps impossible because there isn&#039;t a special animation for &amp;quot;jetpack&amp;quot; jump.&lt;br /&gt;
:*simulate keypresses and mouse input: that means that it might possible but the AI needs to simulate holding the jump key which I have no idea if it can.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;simulate keypresses&amp;quot; method is more likely to be used in Oni. In fact I know for sure it does simulate some keypresses but I don&#039;t know if that&#039;s the only way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pathfinding &amp;amp; stuff: I know there is something called &amp;quot;local movement&amp;quot; which may be what happens when the character is close by. This code seems to do character - environment collision detection so it may be true the pathfinding grid is ignored sometimes bacause there&#039;s not much point in AI doing collision detection if it always used the grid.&lt;br /&gt;
&lt;br /&gt;
Nice video anyway :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Neo, can you program OniSplit so that it can import ONWC?  Let&#039;s say I wanted to change the 3D model of a current weapon, how could I import that 3D model?&lt;br /&gt;
Also, didn&#039;t you at one time mention about importing of M3GM with its texture map in an easier fashion?&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:38, 24 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
M3GM/ONWC: you can do that already. Export the ONWC to xml, remove all the M3GM related stuff (M3GM, PNTA, VCRA, TXCA) and replace the M3GM id in ONWC with a name of your choice:&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Geometry&amp;gt;M3GMgun_x&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
instead of&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Geometry&amp;gt;#2&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can create M3GM files to be used with ONWC as usual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
M3GM/TXMP: yes, I have some plans but right now nothing is implemented.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you!&lt;br /&gt;
&lt;br /&gt;
If you have some time...&lt;br /&gt;
In the Mac Oni engine, there are a few strings I&#039;ve always wondered about: at offset 0x1D9D55InitializeDeveloperKeys,  0x1D9f2C UnbindDeveloperKeys, 0x1DE24C DeveloperAccess, 0x173BBC, bad parameters on chr_location.  Do the first 3 refer to Developer Mode or something else? The last one about chr_location, could that script command could somehow be enabled?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
You probably mean: _LIrInitializeDeveloperKeys, _LIrUnbindDeveloperKeys and _ONgDeveloperAccess. The _LIr* names are functions that are supposed to be called from the &amp;quot;cheater&amp;quot; code. _ONgDevloperAccess is a variable that controls the calling of those 2 functions, it&#039;s basically the equivalent of &amp;quot;the day is mine&amp;quot; cheat.&lt;br /&gt;
&lt;br /&gt;
bad parameters on chr_location is printed from the function that set the location of a character (_iSetAnyCharacterLocation or something like that). In theory it can be made to work by registering it with the scripting engine but it&#039;s rather complicated.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you. Oh well, I guess the Mac engine will remain limited compared to the PC engine.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 04:40, 25 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
There is a user on OCF that has a problem with OniSplit http://web.archive.org/web/20160225132811/http://oni.bungie.org/forum/viewtopic.php?pid=8417&lt;br /&gt;
Can you take a look and post the answer here, then I&#039;ll make a reply on OCF.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 15:53, 25 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Umm... absolutely no idea. Since it works for me and others I assume it&#039;s something about his game files. Maybe some file is corrupted or he has some strange version I have never seen before.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Sorry to bother you.&lt;br /&gt;
I exported ONWCw1_tap as .xml, and I was comparing the output with [[ONWC]].  &lt;br /&gt;
One thing I can&#039;t find are the weapon options 0x0D4 to 0x0D6 in the xml. I want to enable secondary fire but can&#039;t figure that out. Not for this weapon, but a new one.&lt;br /&gt;
I got the model for the assault rifle from Halo, I used as a base the chaingun weapon, but now want to add grenades as secondary fire.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:10, 27 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I found it: &amp;lt;Flags&amp;gt;180272&amp;lt;/Flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 05:04, 28 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
OniSplit v0.9.21&lt;br /&gt;
&lt;br /&gt;
XML export/import for particles added.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I&#039;ve a bug for you. I converted BINA3RAPsuperglow_e01 into xml and back into oni again. The link &amp;quot;h2h_murglow_e02&amp;quot; is missing now.&lt;br /&gt;
Here are the files (&amp;lt;nowiki&amp;gt;http://paradox.oni2.net/particle_bug_report.rar&amp;lt;/nowiki&amp;gt;, dead link). (The blue glow can be seen only for one or two seconds.)&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 17:04, 10 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Fixed&lt;br /&gt;
&lt;br /&gt;
OniSplit v0.9.22 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.22.zip&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hm, it wasn&#039;t the murglow-thingy but you fixed it whatever it was, thanks.&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 17:54, 10 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
The particle are still a bit too big. Here are the files and screenshots (&amp;lt;nowiki&amp;gt;http://paradox.oni2.net/particle_bug_report_2.rar&amp;lt;/nowiki&amp;gt;, dead link). (Only converted to xml and back again.)&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 18:34, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Paradox, it might help if you provided a proper link ^_^. Have you tried reducing the size? &amp;gt;_&amp;gt; (Though that is probably the issue you are having, not being able to do that :P)&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 18:47, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I forgot the file suffix. Thanks for checking. ^_^&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 19:08, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Just noticed there is a new version 0.9.23, what has changed?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 04:59, 12 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:There was an erroneous field type in [[OBAN]], which I discovered in XML while setting up the DeLorean for the trailer.&lt;br /&gt;
::[[User:Geyser|geyser]] 05:57, 12 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Particle size fixed: OniSplit v0.9.24 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.24.zip&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Just curious, do you have a list of binary data files that can be exported and imported as .xml?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:15, 25 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
That&#039;s quite simple: all [[OBD:BINA/OBJC|object collections]] and [[OBD:BINA/PAR3|particles]].&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Sorry to bother you, but, I&#039;d appreciate it if/when you have time to look into this. I got an error when trying to export BINACJBOFlag.oni from level3. I have been able to export the same file from other levels. I wanted to add a few more flags, since the Mac doesn&#039;t support chr_location.&lt;br /&gt;
&lt;br /&gt;
Here is my level3 file: http://edt.oni2.net/OniSplit/level3BINACJBOFlag.oni.zip&lt;br /&gt;
&lt;br /&gt;
The error message:&lt;br /&gt;
&lt;br /&gt;
  System.ArgumentException: Input contains invalid character at 94 : &amp;amp;#x1B;&lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteCheckedBuffer (System.Char[] text, Int32 idx, Int32 length) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteCheckedString (System.String s) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteEscapedString (System.String text, Boolean isAttribute) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteString (System.String text) [0x00000] &lt;br /&gt;
  at System.Xml.XmlWriter.WriteValue (System.String value) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitString (Oni.Metadata.MetaString type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaString.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.WriteFields (Oni.Metadata.Field[] fields) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitStruct (Oni.Metadata.MetaStruct type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaStruct.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.WriteFlag () [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.Export () [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.Export (Oni.FileReader reader, System.Xml.XmlWriter writer) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportBINAInstance (Oni.InstanceDescriptor descriptor) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportDescriptors (System.Collections.Generic.List`1 referencedDescriptors, System.Xml.XmlWriter writer) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportInstance (Oni.InstanceDescriptor descriptor) [0x00000] &lt;br /&gt;
  at Oni.Exporter.ExportInstanceList (System.Collections.Generic.List`1 descriptors) [0x00000] &lt;br /&gt;
  at Oni.Exporter.Export (Oni.FileManager fileManager, System.String sourceFilePath, System.String filter) [0x00000] &lt;br /&gt;
  at Oni.Program.ExtractXml (System.String[] args) [0x00000] &lt;br /&gt;
  at Oni.Program.Main (System.String[] args) [0x00000]  (1)&lt;br /&gt;
&lt;br /&gt;
Thanks again. [[User:EdT|EdT]] 04:52, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well...My level 3 flag file works. Yours sounds like it is corrupted. Here is what I get when I use your file:&lt;br /&gt;
&lt;br /&gt;
 Reading file C:\Users\Franz Media Center\Desktop\BINACJBOFlag.oni&lt;br /&gt;
 Exporting 1 instance(s) to C:\xml&lt;br /&gt;
 System.ArgumentException: &#039;←&#039;, hexadecimal value 0x1B, is an invalid character.&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.InvalidXmlChar(Int32 ch, Byte* pDst, Boolean entitize)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.WriteElementTextBlock(Char* pSrc, Char* pSrcEnd)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.WriteString(String text)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriterIndent.WriteString(String text)&lt;br /&gt;
   at System.Xml.XmlRawWriter.WriteValue(String value)&lt;br /&gt;
   at System.Xml.XmlWellFormedWriter.WriteValue(String value)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitString(MetaString type)&lt;br /&gt;
   at Oni.Metadata.MetaString.Accept(IMetaTypeVisitor visitor)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.WriteFields(Field[] fields)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitStruct(MetaStruct type)&lt;br /&gt;
   at Oni.Metadata.MetaStruct.Accept(IMetaTypeVisitor visitor)&lt;br /&gt;
   at Oni.Xml.ObjcXmlExporter.WriteFlag()&lt;br /&gt;
   at Oni.Xml.ObjcXmlExporter.Export()&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportBINAInstance(InstanceDescriptor descriptor)&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportDescriptors(List`1 referencedDescriptors, XmlWriter writer)&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportInstance(InstanceDescriptor descriptor)&lt;br /&gt;
   at Oni.Exporter.ExportInstanceList(List`1 descriptors)&lt;br /&gt;
   at Oni.Exporter.Export(FileManager fileManager, String sourceFilePath, String filter)&lt;br /&gt;
   at Oni.Program.ExtractXml(String[] args)&lt;br /&gt;
   at Oni.Program.Main(String[] args)&lt;br /&gt;
&lt;br /&gt;
Between the two error messages, I think you can see what went wrong. :)&lt;br /&gt;
[[User:Gumby|Gumby]] 05:48, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Gumby, can you post your file for comparison? All I can see is that there is an invalid character somewhere in my file. [[User:EdT|EdT]] 06:00, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Yes, there is an invalid character (from XML point of view) in a flag description:&lt;br /&gt;
&lt;br /&gt;
  only one of these end office thingys needs to exist.  Snip one and change the stairwell too?  �2 hrs&lt;br /&gt;
&lt;br /&gt;
That � (0x1B) is the problem because XML does not allow for such characters. &lt;br /&gt;
I&#039;ll make a fix but I have to figure out if there are any other cases where this characters is actually needed and cannot be discarded. Until then you can use a hex editor to replace it with a space.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo]]&lt;br /&gt;
&lt;br /&gt;
Thanks for the help.  How did you know where to find the character? In my hexeditor, it simply looked like a period. There are some funny notes in the flag description:&lt;br /&gt;
 This is not the access point you seek, move on (A quote from Star Wars... These are not the droids you seek)&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
Use your hexeditor to search for &amp;quot;1B&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 07:42, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Hey, what about adding ieroglyphic support? All ieroglyphic symbols (or hebrew, or hindi) are replaced with &#039;3F&#039; (question mark). --[[User:Demos kratos|demos_kratos]] 20:53, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
In theory it is possible if we create new font files ([[TSFF]], [[TSFT]], [[TSFL]], [[TSGA]]) for each language. In practice I don&#039;t know if this really works. You&#039;d need some sort of tool to generate all those font files and currenly I don&#039;t think such a tool exists. I&#039;d like to add this to OniSplit in the future but currently it is not on my priority list. &lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
OK. Thanx. I&#039;ll be waitin&#039;. --[[User:Demos kratos|demos_kratos]] 21:37, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well, I&#039;ve started a simple GUI for OniSplit, check it - OniSplit Gui (&amp;lt;nowiki&amp;gt;http://demoskratos.ifolder.ru/7931537&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
[[User:Demos kratos|demos_kratos]] 19:16, 31 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:I have not run the above application, but I thought someone might appreciate having it more easily-accessible, without the Russian and the obligatory visiting of a sponsor page: &amp;lt;nowiki&amp;gt;http://drop.io/demoskratos&amp;lt;/nowiki&amp;gt; (dead link)&lt;br /&gt;
:You can add other files there, too, demos kratos. Hopefully it works fine for you, because it is a much easier solution for us poor English speakers :-) --[[User:Iritscen|Iritscen]] 21:52, 31 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OniSplit 0.9.25==&lt;br /&gt;
OniSplit v0.9.25 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.25.zip&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
Added support for exporting/importing animation to/from XML. The usual commands:&lt;br /&gt;
&lt;br /&gt;
  onisplit -extract:xml xml_dir TRAMKONCOMcombo_k_k.oni&lt;br /&gt;
&lt;br /&gt;
This will write a TRAMKONCOMcombo_k_k.xml file in the directory xml_dir which you can more or less edit. Obviously this won&#039;t load in a 3D application like Softimage or Blender but you can change shortcuts, attacks, damage, particles etc.&lt;br /&gt;
&lt;br /&gt;
To create an .oni file from the .xml file:&lt;br /&gt;
&lt;br /&gt;
  onisplit -create oni_dir TRAMKONCOMcombo_k_k.xml&lt;br /&gt;
&lt;br /&gt;
Exporting/importing the actual animation to/from Collada files will come in a future version.&lt;br /&gt;
&lt;br /&gt;
PS: the FLAG exporting/importing bug reported above is supposed to be fixed too&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
==OniSplit 0.9.26==&lt;br /&gt;
OniSplit v0.9.26 (&amp;lt;nowiki&amp;gt;https://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.26.zip&amp;lt;/nowiki&amp;gt;, dead link)&lt;br /&gt;
&lt;br /&gt;
Added XML support for TXMP/TXAN. Texture extraction/creation works like before but now you can also use the standard xml commands -extract:xml and -create.&lt;br /&gt;
&lt;br /&gt;
Extracting a texture with -extract:xml produces an xml file and one or more tga files. The xml file will contains texture options like format and flags and a list of tga file names. More than one tga file is produced for animated textures and the filenames look like TXMPsmoke_001.tga, TXMPsmoke_002.tga etc.&lt;br /&gt;
&lt;br /&gt;
Using the -create option with such an xml file will produce a normal TXMP.oni file but without the need to specify additional parameters on the command line like with -create:txmp. This comes in handy if you want to edit a bunch of textures:&lt;br /&gt;
&lt;br /&gt;
- put all the xml and tga files in a single directory&lt;br /&gt;
- edit tga image files as you need&lt;br /&gt;
- in the directory you can run the command: onisplit -create oni *.xml to create all TXMP.oni files in the subdirectory oni.&lt;br /&gt;
&lt;br /&gt;
Tip:&lt;br /&gt;
The exported xml file does not contain the witdh and height of the texture, this is obtained from the tga file. If you resize the tga file the texture will be resized too.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
This is awesome!  Thanks for the updates! &lt;br /&gt;
&lt;br /&gt;
Now do think it will be possible to export/import ONIE as .xml? We&#039;re never satisfied are we? :-)&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 22:58, 9 September 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I&#039;ll do that too sooner or later. The current problem with ONIE is that I&#039;m not 100% sure how it works, I need to do a bit of hacking :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Userspace]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Gumby&amp;diff=46195</id>
		<title>User:Gumby</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Gumby&amp;diff=46195"/>
		<updated>2025-12-26T06:13:09Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|style=&amp;quot;float:right&amp;quot; border=1 cellspacing=0&lt;br /&gt;
|[[Image:Flatline logo WIP.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Retired Modder&lt;br /&gt;
&lt;br /&gt;
Has worked on:&lt;br /&gt;
&lt;br /&gt;
*[[Daodan DLL|C-Daodan]]&lt;br /&gt;
*[http://web.archive.org/web/20160226094128/http://oni.bungie.org/forum/viewtopic.php?id=702 Barrel].&lt;br /&gt;
*AE - History of Projects, in no particular order:&lt;br /&gt;
**[[AE:Glass#Deadly_glass]]&lt;br /&gt;
**[http://gumby.oni2.net/AE/BSL/cutscene/ Cutscene skipping]&lt;br /&gt;
**[[AE_talk:New_weapons#w18_asr2_Assault_Rifle]]&lt;br /&gt;
**[[AE_talk:New_weapons#w23_rla_Rocket_Launcher]]&lt;br /&gt;
**[[Flatline]]&lt;br /&gt;
**[[AE:Barabas#Regeneration]]&lt;br /&gt;
**[http://mods.oni2.net/node/62 Konoko vs. World]&lt;br /&gt;
**[[AE:OTA]] (minor upkeep+Arena of Pain)&lt;br /&gt;
*[http://web.archive.org/web/20160226095407/http://oni.bungie.org/forum/viewtopic.php?pid=10487#p10487 Onisplit shell extensions]&lt;br /&gt;
*Other stuff that is forgotten&lt;br /&gt;
&lt;br /&gt;
[[Category:Userspace]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=History_of_Oni_modding&amp;diff=46194</id>
		<title>History of Oni modding</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=History_of_Oni_modding&amp;diff=46194"/>
		<updated>2025-12-26T06:13:02Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hatnote|This article is a historical perspective on Oni [[wp:Video game modding|modding]]; for an introduction to how to actually mod Oni, see [[Introduction to modding|here]]. To download mods, you can start [[AE|here]].}}&lt;br /&gt;
As has been documented on the page about [[Oni]]&#039;s overall development, time ran out for Bungie West to do everything they wanted with this very ambitious game. Just as some features had to be omitted, the promise of modding support&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;ref&amp;gt;In [[Harry]]&#039;s [http://oni.bungie.org/special/part1/brent.html interview], Brent Pease, the Project Lead, said: &amp;quot;What we will do is, I&#039;m about 90 percent sure of this, is give away the file format.&amp;quot; He also promises with equal certainty that the tools for converting 3D Studio Max models into Oni models will be given away. Pease eventually left the project before its completion. Hardy LeBel, his replacement, would later say, &amp;quot;[Due to the time crunch] our primary focus had to be on completing the content and features of the game rather than building in support for the mod community.&amp;quot; Additionally, Bungie no longer owned the game by the time it shipped, so it would have been legally questionable to release header files from the source code, which would be the simplest and quickest way to &amp;quot;give away the file format&amp;quot;.&amp;lt;/ref&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt; also failed to come true. However, even before Oni fans realized that there would never be official modding tools from Bungie, they were already eagerly diving into the game data to see how they could mod it.&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;ref&amp;gt;Fans wasted no time in dumping the readable text from the executable and trying to figure out how to enable Developer Mode, starting before Oni&#039;s official release date by analyzing the demo&amp;lt;!--Dead link: http://carnage.bungie.org/oniresforum/onires.archive.pl?read=35 --&amp;gt;. Little did they know it would take another five years before this particular goal would be reached.&amp;lt;/ref&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt; Nevertheless, the lack of any documentation or tools for modding undeniably slowed the development of mods within the community. Only since 2010&amp;lt;!--Nov. 6, 2010 is the date that geyser posted about OniSplit supporting pathfinding grids for new levels in the article &amp;quot;New levels&amp;quot;.--&amp;gt; has the community&#039;s modding capabilities covered nearly all aspects of the game.&lt;br /&gt;
&lt;br /&gt;
There are three basic areas in which the game can be modded: scripting, binary resources, and the engine itself.  Along the way, we&#039;ll look at some key discoveries the community made in more detail.&lt;br /&gt;
&lt;br /&gt;
==BSL scripting==&lt;br /&gt;
[[Image:One Tiny Mistake.jpg|thumb|225px|right|Konoko pulls her gun on the secretary in the beginning of Chapter 2, a change to the original cutscene made by a script which tightens up the story and provides a new challenge for veteran players.]]&lt;br /&gt;
Since the .bsl files were in plain text and in plain sight within the folders that held Oni&#039;s game data, it&#039;s not surprising that fans quickly learned some basic scripting commands by seeing what Bungie had written, and started making their own scripts. Further commands were discovered by dumping readable text from the engine, although not everything worked as it seemed it should.&lt;br /&gt;
&lt;br /&gt;
As scripters were learning [[BSL]], they produced scripts that at first merely modified the original level logic in minor ways. Then they produced more original, often epic fight scripts; later, some ambitious modders scripted totally new objectives and mission layouts (e.g., Mariachi Bear&#039;s alternate storyline). Some of the most complex scripts are the [[OTA]] scripts which were eventually developed to make up for a lack of multiplayer gameplay.&lt;br /&gt;
&lt;br /&gt;
However, fully original scripts are all the more prone to bugs. The first two are easier to set up, but extreme situations tend to overload the engine (as in &amp;quot;[[Blam!]]&amp;quot;) in ways that scripters have trouble preventing. Testing the scripts required numerous reloads of the game. The process became much faster when the Developer Mode console was unlocked (see {{SectionLink||Finding Dev Mode}}) and individual commands could be tested easily.&lt;br /&gt;
&lt;br /&gt;
While scripting is the easiest way to mod Oni, it&#039;s also the most limited, because scripts can only utilize the resources that the vanilla level has to offer.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Binary resources==&lt;br /&gt;
===Private knowledge, public results===&lt;br /&gt;
[[Image:OniTools.jpg|thumb|225px|right|Ian Patterson&#039;s trailblazing Mac program OniTools was eagerly ported to Windows by other fans.]]&lt;br /&gt;
[[Image:OUP_txmpreplace.jpg|thumb|225px|right|OniUnPacker by Alloc, premiering in fall of 2005, provided a simple interface for finding the resource you wanted and displaying it, as well as replacing it.]]&lt;br /&gt;
[[Image:AE_Installer_1.jpg|thumb|225px|right|The AE mod installer released in 2009. For the first time, players could pick and choose what mods to install.]]&lt;br /&gt;
[[Image:AEI_main_window.jpg|thumb|225px|right|The AE Installer released in 2013 could update itself, the player&#039;s mods, and the patches made to the game. It was written from scratch in Java for ease of cross-platform support.]]&lt;br /&gt;
Fans with some expertise in parsing files with hex editors found that the level data files held four-letter codes indicating the start of each resource within that file. Before Oni even released, the community had its first resource modding tool, Ian Patterson&#039;s [[OniTools]]. While the author did not yet know how all the data worked, his program could at least parse it, and allow the modder to more easily edit each resource without having to count in hexadecimal. It also supported user-friendly replacement of texture maps, delta patches called CMPOs, and allowed inline viewing of the game&#039;s 3D models. There seems to be little evidence that this knowledge was put to use in modding the game resources beyond simple texture replacements, no doubt due to the lack of a complete understanding of how Oni&#039;s dozens of resource types were interrelated. But the open-source release of OniTools gave fans something to build on.&lt;br /&gt;
&lt;br /&gt;
Independently, an intrepid programmer named Pierre Terdiman decided to import data from Oni into the game engine that he was writing from scratch. Called [[Konoko Payne]], it was a long-term project which took the form of (1) an underlying engine and (2) a short scenario for it that resembled a sequel to Oni. In order to extract models and animations from Oni and recreate them precisely in his project, Pierre became one of the early pioneers in reverse-engineering the game&#039;s resources, although his acquired knowledge remained largely private as the engine was closed-source.&lt;br /&gt;
&lt;br /&gt;
===Hackers unite===&lt;br /&gt;
Perhaps the first place that knowledge of Oni&#039;s data was directly published online was on [http://oni.moltenstudios.com/tool/index.php Oni Master&#039;s site], which started as early as 2003 and was based on the source code for OniTools. Then, in 2005, [[User talk:Ssg|Ssg]] opened a site with a much more thorough examination of the game data (the site is now hosted at http://ssg.oni2.net). Later that year, this pool of knowledge was painstakingly moved by [[User:Geyser|geyser]] and Ssg to its final home on the newly-opened wiki OniGalore. The purpose of creating the [[OBD|Oni Binary Database]] was to allow collaboration, and soon [[User talk:Neo|Neo]] appeared on the scene, adding his own knowledge that he had been acquiring independently until then, and collaborating on further investigations into the resource formats. Today at least 95% of the binary resource formats are documented byte for byte thanks to their hard work.&lt;br /&gt;
:&#039;&#039;Further reading:&#039;&#039; {{SectionLink|History of the Oni community|2005}}.&lt;br /&gt;
&lt;br /&gt;
===Modding by candlelight===&lt;br /&gt;
Originally, modders had to alter these binary resources manually with hex editors to adapt them to their scripts. [[User:Loser|Loser]] was the first modder to manually edit the game data to go along with his scripting, creating a massively reshuffled Warehouse. Loser&#039;s [[AE:Warehouse|Warehouse mod]] included a global component (modified level0_Final), level-specific binary modifications, and a set of customized scripts that took full advantage of the modified binaries.&lt;br /&gt;
&lt;br /&gt;
Minor binary modding had already occurred before Loser&#039;s Warehouse (thus, while compiling the [[OBD]] database, Ssg had released a version of level0_Final in which all of Konoko&#039;s combos were unlocked). Still, it was the Warehouse mod released in 2005 which first showed the &amp;quot;full&amp;quot; potential of binary modding. It inspired a short-lived initiative called the [[AE:BIP|Binary Improvement Project]] (BIP), aimed at providing upgraded binaries for all levels, not just level0_Final and level1_Final.&lt;br /&gt;
&lt;br /&gt;
BIP was hindered by large upload/download sizes as well as by the potential legal issues involved in distributing entire files from the game; in 2006 it was replaced by a smarter alternative to supplying whole levels, in the form of [[OUP|OniUnPacker]]-based patches, and was termed [[AE:ONK|Oni ni Kanabô]] (ONK). The modder would edit his .dat/.raw files in OUP, and then release a single binary resource patch. This was both bandwidth-efficient and more legal-friendly, but suffered from one major limitation: the indexation and offsets of data vary a lot across the available versions of Oni. Thus, resources exported with OUP were not truly standalone or portable. Also, OUP still lacked the ability to import new resources alongside existing ones.&lt;br /&gt;
&lt;br /&gt;
===Modular modding===&lt;br /&gt;
The advent of Neo&#039;s [[OniSplit]] in late 2007 marked a radical improvement to the community&#039;s modding methods. A command-line tool that runs on Windows and Macs, OniSplit breaks Oni&#039;s resources into standalone files, making mods truly portable across different retail versions of Oni. These resources can be exported to standard formats as text, images, sounds and 3D models, which after editing can be recombined into the level data files that Oni expects, and newly-made resources can also be packed into the level data. To take advantage of this revolution in modding, geyser began preparing an OniSplit-based port of some of the work done on BIP and ONK, which he hoped would be ready for the seventh anniversary of Oni&#039;s release in January 2008.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;[[AE|Seventh Anniversary Edition]]&amp;quot; had major releases in January and July 2008. The tradition continued of using a central modding project to organize a general revision of Oni&#039;s content, as seen on pages like [[AE:Ninja]]. The project then changed hands to [[User:Gumby|Gumby]], who designed a framework and a GUI-based installer that allowed players to selectively install only the modifications that they wanted. This mostly moved the project away from a centralized improvement effort, though select mods were still bundled with the download. Since Oni&#039;s seventh anniversary had come and gone, the mod collection was renamed simply the &amp;quot;Anniversary Edition&amp;quot;, aka the &amp;quot;Edition&amp;quot; or the &amp;quot;AE&amp;quot;. Released in July 2009, the new AE&#039;s framework allowed modders to create their own &amp;quot;[[Making a mod package|mod packages]]&amp;quot;. These could be stored on the {{OMD}}, then downloaded by the player and placed in a certain folder in order to see them in the Installer. Another release was made in May 2010 with more bundled mods and an improved framework.&lt;br /&gt;
&lt;br /&gt;
Nothing new took place on this front until 2013, by which time the project had fallen into [[User:Iritscen|Iritscen&#039;s]] hands due to the retirement of geyser and Gumby. At this time, the release of the new AE included a brand-new Installer written by Alloc which could connect to the Mod Depot, offer all mod packages for download, and update the mods and patches already installed. The program [[XmlTools]] was developed by [[User:Script 10k|s10k]] to allow &amp;quot;patch modding&amp;quot; of resources in order to avoid conflicts when different mods attempted to modify the same resource. The AE&#039;s bundled content was stripped down to only minimal fixes for the first time, making all notable game modifications into optional third-party mods and ceasing any attempt at centralized game data improvement.&lt;br /&gt;
&lt;br /&gt;
===New content===&lt;br /&gt;
Certain game resources were easy enough to reverse-engineer that the community was able to mod them almost from the time of Oni&#039;s release, such as textual resources and textures. Some game resources, however, were complex and involved multiple data types, such as character models, and, most obviously, levels themselves. These took a number of years to decipher.&lt;br /&gt;
&lt;br /&gt;
OniSplit first gained the ability to import new character models in April 2008.&amp;lt;ref&amp;gt;See [[User talk:Neo/Archive2]].&amp;lt;/ref&amp;gt; At first, since the focus was on the technical side of things, pre-existing models were used, either by modifying Oni&#039;s models, or by finding royalty-free models on web sites and converting them to Oni&#039;s 19-bone system. A more dramatic use of the character-importing ability came with the creation of a high-detail Konoko model from scratch in October 2010.&amp;lt;ref&amp;gt;[http://oni.bungie.org/forum/viewtopic.php?id=1727 OCF thread, &amp;quot;Konoko HD&amp;quot;].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A major obstacle with levels was the question of how to generate pathfinding (PF) grids for the AI. Level geometry could be imported fairly easily as of November 2008,&amp;lt;ref&amp;gt;See [[User talk:Neo/Archive5]].&amp;lt;/ref&amp;gt; but AIs could not navigate the level. Manual PF grid creation was first demonstrated with the creation of the Arena level in November 2010.&amp;lt;ref&amp;gt;[http://oni.bungie.org/forum/viewtopic.php?id=1736 OCF thread, &amp;quot;Arena Level&amp;quot;].&amp;lt;/ref&amp;gt; Automatic PF grid generation was introduced to OniSplit around June 2011. More comprehensive demonstrations of the community&#039;s level creation abilities came with [[User:EdT|EdT]]&#039;s level &amp;quot;Muro&#039;s Lair&amp;quot; in August 2011&amp;lt;ref&amp;gt;[http://web.archive.org/web/20201029113340/http://oni.bungie.org/forum/viewtopic.php?id=2024 OCF thread, &amp;quot;Muro&#039;s Lair - Preview&amp;quot;].&amp;lt;/ref&amp;gt; and [[User:Samer|Samer]]&#039;s level &amp;quot;Wilderness Preserve&amp;quot; in January 2014.&amp;lt;ref&amp;gt;[http://web.archive.org/web/20211202225410/http://oni.bungie.org/forum/viewtopic.php?id=2698 OCF thread, &amp;quot;NEW LEVEL : Chapter 17: Wilderness Preserve - Hasegawa Adventure&amp;quot;].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Work continues in all areas of modding Oni, as well as documenting the modding process.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Engine patching==&lt;br /&gt;
===Finding Dev Mode===&lt;br /&gt;
[[Image:Sfeli Finds Dev Mode.jpg|thumb|225px|right|[[User talk:SFeLi|SFeLi]] documents his discovery in 2006: in examining the binary, he noticed that the list of cheat codes had a gap in it where one cheat had been deactivated – that code was for Developer Mode. For more history, see [[/The tale of Dev Mode|The tale of Dev Mode]].]]&lt;br /&gt;
Engine patching is needed when modders want to do things the game&#039;s scripts and data do not currently allow for, as well as to fix bugs. Bug fixes were the earliest notable achievement in engine patching, originally performed by a patching application that altered the Windows Oni executable directly, but a revolution in this type of modding occurred in 2006 when [[Developer Mode]] was finally discovered in retail Oni&#039;s code, and a means for unlocking it was needed.&lt;br /&gt;
&lt;br /&gt;
The most foolproof method of altering the engine turned out to be replacing a library that Oni loads at runtime. Originally this was done by placing a library next to Oni.exe called vtuneapi.dll, which contained code written by SFeLi that would replace or patch functions in Oni. This library came to be known as the [[Daodan DLL]]. The code for it was ported from assembly language to C by RossyMiles. Eventually the decision was made to instead replace binkw32.dll (the library for playing Oni&#039;s intro and outro movies) because it loaded earlier in Oni&#039;s launch sequence. The DLL was later developed by Gumby and then Alloc, fixing more bugs (some of which result from modern computers running a {{Age|2001|1|29}}-year-old game), as well as adding new features. The DLL&#039;s features and settings are documented on the page for the DLL linked above.&lt;br /&gt;
&lt;br /&gt;
Not long after the Daodan DLL was released for Windows Oni, it was discovered that the Mac versions of Oni still had Dev Mode in them, too. Instead of replacing the Bink Carbon Library that came with Mac Oni, the Omni Group port of the game application to Mac OS X was patched directly with a hex editor. In the fall of 2008, it was discovered that numerous BSL functions and variables that were thought to be removed from Oni for the Mac [[Mac beta 4|before release]] were still present in the code, and the ones which allowed Macs to run (almost) all scripts written for Windows Oni were &amp;quot;unlocked&amp;quot; by EdT using hex edits. Certain changes made by the Daodan DLL for the Windows version were also carried over to the Mac&#039;s [[OMNI|PPC game application]] in hex-edit form with Neo&#039;s assistance. Later, these changes were made in source for Feral Interactive&#039;s [[FERAL|Mac Intel port]].&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
One of the most visible changes to the game that the Daodan DLL (and equivalent hex edits on the Mac side) made possible came about in July &#039;07 when an error in Oni&#039;s AI routines was corrected by Neo, allowing the AI to dodge incoming fire more consistently. Fans had originally been disappointed to see the AI often run blindly into oncoming gunfire. With Neo&#039;s patch in place, previously glitched code now works as intended, allowing the AI to dodge projectiles by taking cover.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
The most ambitious use of engine patching has been to fill in for Oni&#039;s [[Multiplayer|missing multiplayer mode]]. In Windows this was done through the Daodan DLL by the [[Flatline]] project, which saw a rough alpha released in 2010. In Mac OS X, the [[Zukai]] project operated on a Mac equivalent of the Daodan DLL and released a rough alpha in 2015.&lt;br /&gt;
&lt;br /&gt;
===New engine builds===&lt;br /&gt;
A new era in Oni&#039;s life began with the introduction in 2021 of [[OniX]], a rebuild of the game engine. It remains to be seen how far this development work will take Oni, but in theory the possibilities are almost endless.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Community history]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User_talk:Iritscen/Archive2&amp;diff=46193</id>
		<title>User talk:Iritscen/Archive2</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User_talk:Iritscen/Archive2&amp;diff=46193"/>
		<updated>2025-12-26T06:12:54Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==AI self-healing==&lt;br /&gt;
;Hi Iritscen,&lt;br /&gt;
:it has been a long time since I have contributed something. I don&#039;t have time (and Oni) right now, but I ask you to try this idea out. It is connected to AI2 driven characters being able to actually use hypo sprays they possess to heal themselves (like the human player).&lt;br /&gt;
:It could be easy as it involves only usage of BSL. However, I don&#039;t know if several things (mainly &amp;quot;&#039;&#039;chr_holdkey&#039;&#039;&amp;quot; command, which is core of this idea) work the way I think they work.&lt;br /&gt;
:&#039;&#039;&#039;Requirements for the experiment:&#039;&#039;&#039;&lt;br /&gt;
::- take one AI2 character whose name you know from some level you like. But this AI should be near some savepoint for easy debugging.&lt;br /&gt;
::- add function to the scripts of your selected level, which will be forked from your selected savepoint, where your AI2 spawns.&lt;br /&gt;
::- this function will contain following commands:&lt;br /&gt;
:::&amp;quot;&#039;&#039;ai2_showhealth=1&#039;&#039;&amp;quot; - I think this is clear&lt;br /&gt;
:::&amp;quot;&#039;&#039;ai2_spawn&#039;&#039; name&amp;quot; - clear&lt;br /&gt;
:::&amp;quot;&#039;&#039;ai2_ignore_player&#039;&#039;=1&amp;quot; - to be able to experiment&lt;br /&gt;
:::&amp;quot;&#039;&#039;chr_inv_reset&#039;&#039; name&amp;quot; - to make sure we have everything under control&lt;br /&gt;
:::&amp;quot;&#039;&#039;chr_givepowerup&#039;&#039; name hypo&amp;quot; - now we know our AI2 char has one hypo&lt;br /&gt;
:::&amp;quot;&#039;&#039;chr_set_health&#039;&#039; name 1&amp;quot; - to make it logical to use a hypo ^_^&lt;br /&gt;
:::&amp;quot;&#039;&#039;chr_wait_animtype&#039;&#039; 0 crouch&amp;quot; - to be able to trigger it when you want&lt;br /&gt;
:::&amp;quot;&#039;&#039;chr_holdkey&#039;&#039; name keys_hypo 10&amp;quot; - THIS IS IT. Key part, if I understand that command right&lt;br /&gt;
::- now run the selected savepoint of selected level, don&#039;t crouch, get to your AI2, which is active but ignores you as a player and has only one HP left. NOW crouch. If everything goes according to the theory, this AI2 will use its one hypo to heal itself. Obviously should be seen with &amp;quot;&#039;&#039;ai2_showhealth&#039;&#039;=1&amp;quot;.&lt;br /&gt;
:- if it works, please let us (community) know. This way, we can set up smarter behavior for AI2s, where AI2s heal themselves in battle. Well, they try at least, because if they get hit, healing effect is reduced, as we know. And we cannot command AI2 to &amp;quot;play defensively because it used a hypo and healing is in the process&amp;quot;. At least not the BSL way.&lt;br /&gt;
:- also, this could be used for some daodanized AI2 characters, where AI2s inject hypos to get into regular overpower mode.&lt;br /&gt;
:- I am aware of the fact that we can use &amp;quot;&#039;&#039;chr_set_health&#039;&#039;&amp;quot; command to do the same work. However, &amp;quot;&#039;&#039;chr_set_health&#039;&#039;&amp;quot; is dependent on the value it has written in, so you have to set up some mechanisms to reduce the value in &amp;quot;&#039;&#039;chr_set_health&#039;&#039;&amp;quot; command as AI2s health drops if we want to use it as an hypo emulation. Plus it is tied with only one AI2 character then.&lt;br /&gt;
:- hypo usage emulation via &amp;quot;&#039;&#039;chr_holdkey&#039;&#039;&amp;quot; (if it will work) is on the other hand simply used to force &#039;&#039;&#039;any&#039;&#039;&#039; AI2 char (just input its name and be sure this char has a hypo in its inventory) to take a hypo and rest is handled by engine. Simple and effective. &lt;br /&gt;
:--[[User:Loser|Loser]] 00:12, 17 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Loser, I have tried to get chr_holdkey to work for some time now. Peering at the asm, I can see that there is code there for it, but it might have been commented out in some form. It is really hard to tell. ALSO, using a hypo doesn&#039;t seem to be one of the allowable keys. They seem to be: forward, back, stepleft, stepright, crouch, jump, fire, altfire, punch, kick, action. HOWEVER, there is a different method we can use for AIs using hypos. Record Konoko using a hypo, export\import it using Onisplit, then use the from_here option in chr_playback. I would recommend using Konoko&#039;s watch animation or something of the sort to go along as a visual cue. [[User:Gumby|Gumby]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thank you for report, Gumby. Yes, I know about playback solution, that way of solving this problem works quite fine. Point of this BSL idea was that it requires only scripting, no files changed.&lt;br /&gt;
: But if we have to end up with changing files, then we can modify CHAR as well, adding trigger of the function *heal_mechanicsXX.name_of_ai2_written_here* into CHAR when character is hurt. XX represents number of the healing group. If I recall correctly, engine takes &amp;quot;&#039;&#039;name_of_ai2_written_here&#039;&#039;&amp;quot; as string parameter of the function *heal_mechanics*.&lt;br /&gt;
&lt;br /&gt;
: About that XX - enemies have various health levels, but we can see some of them have quite similar max health levels (+/- 25 HP). So my idea is - we have groups of CHARacters, which share same version of heal_mechanicsXX function, labeled by its number (saves space). These CHARacters have similar max health levels and have exactly the same amount of hypos they can use.&lt;br /&gt;
:Then one very simple function for such a group can look like this:&lt;br /&gt;
::&#039;&#039;&#039;func&#039;&#039;&#039; &#039;&#039;&#039;void&#039;&#039;&#039; heal_mechanics01(string &#039;&#039;ai_name&#039;&#039;)&lt;br /&gt;
::{&lt;br /&gt;
:: &#039;&#039;&#039;chr_wait_health&#039;&#039;&#039; (&#039;&#039;ai_name&#039;&#039;, value_of_approximate_half_of_max_HP_for_this_group_members)&lt;br /&gt;
:: &#039;&#039;&#039;chr_playback_block&#039;&#039;&#039; (&#039;&#039;ai_name&#039;&#039;, name_of_hypo_trigger_[[FILM]]_file, fromhere)&lt;br /&gt;
::}&lt;br /&gt;
&lt;br /&gt;
:This function would be triggered by members of heal_mechanics01 (they have writen it in their CHAR file, under &amp;quot;hurt&amp;quot; trigger). When called, it takes name of the CHAR as a parameter and then waits until this CHAR&#039;s HP drops around 1/2 (value is set maually in the script). Then it calles hypo using FILM for this CHAR.&lt;br /&gt;
: Nice, isn&#039;t it? --[[User:Loser|Loser]] 18:29, 17 March 2009 (UTC)&lt;br /&gt;
::Yeah, thats about what I meant. :) Either method requires changing files though, because AFAIK AI aren&#039;t given hypos in the CHAR. [[User:Gumby|Gumby]] 08:24, 18 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hey. When Gumby is on it, there&#039;s another worthy thing to try. Duplicating chr_poison (ai_name, damage, interval, initial_interval) and replacing the health reducing function by a health adding function. Then that could be used instead of chr_playback_block. It would not only simulate &amp;quot;AI Hypos&amp;quot; but better AI and player regeneration than chr_set_health. Smooth health increment (for player) can be done in a looped BSL function.  20:35, 17 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done that already, in ReOni. The problem lies in the fact that there isn&#039;t an easy way AFAIK to copy a function using the Daodan. The other problem is that Macs would be left out cold. [[User:Gumby|Gumby]] 08:24, 18 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Hm, do I actually even need to say anything? The conversation is going well without me ^_^ I find your idea interesting, Loser, but I personally just can&#039;t focus on it at this point, or I won&#039;t be able to help Gumby with the Edition (Real Life is knocking hard on my door right now and demanding me to cut down on my Oni time). Besides, any topic beyond BSL is kinda over my head anyway :-) --[[User:Iritscen|Iritscen]] 14:35, 18 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Ran into a small problem, the character still rotates, even with &amp;quot;fromhere&amp;quot;. :( [[User:Gumby|Gumby]] 19:07, 18 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Pre-beta image==&lt;br /&gt;
Hello,&lt;br /&gt;
&lt;br /&gt;
This pre-beta image really seems bio lab to me. Didn&#039;t you agree?&lt;br /&gt;
&lt;br /&gt;
[[Image:Pre-beta Vago Lab.png]]&lt;br /&gt;
&lt;br /&gt;
See you. [[User:Script 10k|Script 10k]]&lt;br /&gt;
&lt;br /&gt;
:Ah, you&#039;re right, that must be the pre-beta night-time version of the Lab! I&#039;ve re-named it and moved it to the proper place on the page. Thanks. --[[User:Iritscen|Iritscen]] 01:31, 23 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Newbies==&lt;br /&gt;
Oi who are all those never editing newbees? Are you sure they are human? --[[User:Paradox-01|Paradox-01]]&lt;br /&gt;
&lt;br /&gt;
==About operators==&lt;br /&gt;
You said &#039;=&#039; is an alternate form of &#039;eq&#039;. Are you sure? I was considering &#039;=&#039; to be used for definition and &#039;eq&#039; for comparison.&lt;br /&gt;
[[User:Lukas Kreator|Lukas Kreator]] ([[User talk:Lukas Kreator|talk]]) 16:34, 11 November 2012 (CET)&lt;br /&gt;
:My bad, you&#039;re correct. &#039;=&#039; is the assignment operator. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 19:49, 11 November 2012 (CET)&lt;br /&gt;
&lt;br /&gt;
==slowmo==&lt;br /&gt;
&amp;quot;no idea why I wrote that about slowmo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EdT told me when making the Old China level that it was different in mac and pc. If you check the scripts you will notice that the parameter values are different for each version. Not sure how it works on mac since I don&#039;t own one. [[User:Script 10k|Script 10k]] ([[User talk:Script 10k|talk]]) 17:32, 28 April 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Yes, I see now, that was why I wrote that. I guess I have to ask EdT about that. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 17:37, 28 April 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
::The answer, I don&#039;t know.  I believe that normally, slowmo works the same for both PC and Mac.  However, in the old China Mod, there was a big difference.  For the PC slowmo(100) lasted less than 2 seconds, on the Mac is was more like 15-20 seconds and during that time you couldn&#039;t do anything. So we changed it to slowmo(30) for the Mac, but it could simply have been my computer not able to handle all the action of the final battle. :) [[User:EdT|EdT]] ([[User talk:EdT|talk]]) 00:36, 8 May 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::Hmm, okay. Well, I guess we&#039;ll just have to keep an eye out for a possible difference in the future (maybe it&#039;s really just tied to computer performance, as you indicated), but it probably won&#039;t crop up often since slowmo isn&#039;t used much. Thanks for the response. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 00:43, 8 May 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Trigger volumes==&lt;br /&gt;
As the community achieved a lot in the past years, I wonder if it&#039;s now possible to show the trigger volumes in Oni. Is it? [[User:Ssg|Ssg]] ([[User talk:Ssg|talk]]) 23:32, 27 March 2014 (CET)&lt;br /&gt;
:Yes; in fact it&#039;s funny you should ask, because this ability was just added in Windows by the [[Daodan DLL]] within the last couple weeks: http://web.archive.org/web/20160224192402/http://oni.bungie.org/forum/viewtopic.php?pid=48117#p48117. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 23:39, 27 March 2014 (CET)&lt;br /&gt;
::Wow, that&#039;s what I call &#039;right on time&#039;. Thanks for the link. [[User:Ssg|Ssg]] ([[User talk:Ssg|talk]]) 00:02, 28 March 2014 (CET)&lt;br /&gt;
&lt;br /&gt;
[[Category:Userspace]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:TXMPCALIG.jpg&amp;diff=46192</id>
		<title>File:TXMPCALIG.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:TXMPCALIG.jpg&amp;diff=46192"/>
		<updated>2025-12-26T06:12:32Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:[[wikt:%E6%9D%8E|李]] [[wikt:%E6%BA%B6|溶]] [[wikt:%E9%8E%AE|鎮]] - Li Rongzhen&lt;br /&gt;
:[[wikt:%E6%B2%88|沈]] [[wikt:%E7%9A%9A|皚]] [[wikt:%E7%80%9B|瀛]] - Shen Aiying&lt;br /&gt;
:[[wikt:%E6%9C%B1|朱]] [[wikt:%E4%BB%B2|仲]] [[wikt:%E8%8B%B1|英]] - Zhu Zhongying&lt;br /&gt;
:(Thanks to [http://web.archive.org/web/20160225052353/http://oni.bungie.org/forum/viewtopic.php?pid=9299#p9299 gmsly] we have a [https://www.spieleforum.de/t/uebersetzung.617155/page-5 source] now.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Logos, icons and symbols]][[Category:Textures]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Geyser/STFUn00b&amp;diff=46191</id>
		<title>User:Geyser/STFUn00b</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Geyser/STFUn00b&amp;diff=46191"/>
		<updated>2025-12-26T06:12:24Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On second thought, I&#039;m backing up this discussion for future reference. That way, when another shitstorm threatens, we can save everyone a lot of trouble by linking to [[User:Geyser/STFUn00b#Moral_closure]] early on. This page can be used for backing up other topics than the one already covered, like wiki management or OBD knowledge for example. Whatever you do, however, be sure to provide a suitable - concise and explicit - moral closure to the topic: try to put the problem in a nutshell, so that discussions referencing this page can go straight to the point.&lt;br /&gt;
::[[User:Geyser|geyser]] 03:37, 28 August 2008 (CEST)&lt;br /&gt;
==Flag browsers etc==&lt;br /&gt;
===BSL talk===&lt;br /&gt;
Maybe I&#039;m just stupid, but I downloaded the version of OniMenu from your site, under the Tools folder in the OTA folder. I need to find flags to use for some scripting I need to do to record some video. Urg. Anyway, I successfully used a past version (also labeled 3.0, strangely, but with fewer .bsl files), and I thought that I could put the OniMenu scripts in the global folder, add &amp;quot;func pre&amp;quot; to the main function for each level, and do the reverse-flipping kick and the menu would come up. Has something changed? Also, I may be blind, but I searched the forum and didn&#039;t see any recent threads devoted to explaining how to use it, and this wiki has no documentation for OM either.&lt;br /&gt;
&lt;br /&gt;
What&#039;s happening when I insert &amp;quot;func pre&amp;quot; is that the level fails to load past the point of that code. I also tried putting the OM scripts right in the &amp;quot;compound&amp;quot; folder (the level I want to browse) but no luck. No enemies, nothing goin&#039; on. I&#039;m probably making a simple mistake but I&#039;m out of ideas. --[[User:Iritscen|Iritscen]] 02:39, 24 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:What I do is run Oni in window mode, then look at the flags listed on the pages found here: http://zdlo.oni2.net/Items/Flags/ and then use chr_teleport 0 flag# to find locations I could use.  [[User:EdT|EdT]] 03:54, 24 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Okay, I guess I&#039;ll take that approach, although I&#039;d like to find out at some point what I did wrong with OM. Thanks, Ed. --[[User:Iritscen|Iritscen]] 04:46, 24 August 2008 (CEST)&lt;br /&gt;
:Apart from the global folder not working on the Mac, there should be no problem. If in doubt, provide a snapshot of your IGMD folder. Also consider using the PC version, for which you can use [http://zdlo.oni2.net/Scripts/DeveloperMode/FlagMap/ THIS]. More generally, I&#039;m looking forward to some follow-up to &#039;&#039;&#039;Talk:Running_PC_versions_of_Oni_on_the_Mac&#039;&#039;&#039;, and I&#039;m curious why you&#039;re not using the PC version for recording. --[[User:Geyser|geyser]] 11:40, 24 August 2008 (CEST)&lt;br /&gt;
:Lately I&#039;ve been browsing flags in a simplified manner, by repeatedly entering &amp;quot;my_flag= my_flag+1; chr_teleport(my_flag); chr_facetoflag(my_flag);&amp;quot; from the console and occasionally setting my_flag explicitly (when there are large gaps between flag IDs). Of course during this process I keep an eye on the lists found [http://zdlo.oni2.net/Items/Flags/ HERE] or [http://geyser.oni2.net/OBD/BINA/OBJC/FLAG/ HERE]. --[[User:Geyser|geyser]] 11:40, 24 August 2008 (CEST)&lt;br /&gt;
::Has anyone considered making an OniMenu-type script that actually lists a level&#039;s flags with descriptions of their locations in the level? You could drill down the menus, maybe starting with choosing what level&#039;s flags to look at if there&#039;s no way to find out the current level through BSL, then in a submenu choose the area of the level to go to, then choose the specific spot. In other words, scriptifying ZDLO&#039;s flag tables. It seems like a fair amount of work, but it would be easy work, mostly copying and pasting BSL code (wow, that guy in the Bungie West tour video was right, programming &amp;lt;u&amp;gt;is&amp;lt;/u&amp;gt; cutting and pasting!; what was his name?).&lt;br /&gt;
::Re: running Windows Oni, I anticipated having to do that to capture some of the modding work sooner or later, but nothing so far has required doing so; the fact that certain mods, like OTA, are more functional on PC really doesn&#039;t matter when all I&#039;m showing in the trailer is a few seconds of mayhem. However, you have pointed out that I completely flaked out and never made a response on the PC Oni on Mac page. My bad, I&#039;ll fix that in just a little bit. --[[User:Iritscen|Iritscen]] 16:35, 24 August 2008 (CEST)&lt;br /&gt;
:&#039;&#039;&#039;choosing what level&#039;s flags to look at if there&#039;s no way to find out the current level through BSL&#039;&#039;&#039; You&#039;re forgetting that the global folder doesn&#039;t work on the Mac, and so the menu you suggest would have to be level-folder-resident anyway. and even if it had a global component, flag-related information would just go in level-specific BSL files: the global core wouldn&#039;t &amp;quot;detect&amp;quot; the level, it would just load the currently relevant level-specific script (see [http://geyser.oni2.net/OniTeamArena/WIP/IGMD_OTA2.ZIP THIS] for an example). --[[User:Geyser|geyser]] 01:37, 25 August 2008 (CEST)&lt;br /&gt;
::I suppose your method would work fine. But I wasn&#039;t forgetting (this time) that the Mac couldn&#039;t do global scripts, I was actually imagining that one monster script would cover all 14 level files&#039; flags, and that single script could get put in each level&#039;s folder so the user wouldn&#039;t have to worry about matching up a script to each level as part of some 15 folder-spanning network of BSL (plus it makes more work if there&#039;s a 1.1 release and they have to replace a 1.0 core script and then all the level-specific scripts (in case the 1.1 core doesn&#039;t support the 1.0 level scripts)). It&#039;s just more efficient that way. --[[User:Iritscen|Iritscen]] 04:42, 25 August 2008 (CEST)&lt;br /&gt;
::&#039;&#039;&#039;I was actually imagining that one monster script would cover all 14 level files&#039; flags&#039;&#039;&#039; That would have a chance of overloading the BSL engine, which can only load this much logic at a time. I wouldn&#039;t know about the &amp;quot;efficiency&amp;quot; of a moster script, and I&#039;m not sure what the file-buffer limits of BSL are, but it&#039;s typically more sound to provide only the logic relevant to the current level. As the designer of OTA, I know what I&#039;m talking about ^_^ --[[User:Geyser|geyser]] 15:26, 25 August 2008 (CEST)&lt;br /&gt;
:&#039;&#039;&#039;In other words, scriptifying ZDLO&#039;s flag tables.&#039;&#039;&#039; SHORT ATTENTION SPAN ALERT! Didn&#039;t I link to [http://zdlo.oni2.net/Scripts/DeveloperMode/FlagMap/ THIS] above? It actually works on the Mac, except you&#039;re not able to read the healthboxes. You can easily make a version where you can review the IDs of the group of flags being shown and cycle through them. --[[User:Geyser|geyser]] 01:37, 25 August 2008 (CEST)&lt;br /&gt;
::MISSING MY POINT ALERT. I &#039;&#039;am&#039;&#039; now using ZDLO&#039;s tables in the way that Ed suggested, but it would be even cooler to meld his grouped, descriptive approach with your OniMenu system so it&#039;s all in-game and you can try each flag out by teleporting there. That&#039;s what I was saying. Right now OM makes you use an outside flag-number reference and you have to laboriously type in flag numbers by punching and kicking, so my idea is a landmark improvement for modders. That being said, how many people would be using such a script? So I&#039;m not suggesting anyone jump on it. Just thinking out loud (I know you love it when I do that).&lt;br /&gt;
::P.S.: Healthboxes? What healthboxes? --[[User:Iritscen|Iritscen]] 04:30, 25 August 2008 (CEST)&lt;br /&gt;
:&#039;&#039;&#039;It seems like a fair amount of work, but it would be easy work, mostly copying and pasting BSL code.&#039;&#039;&#039; That&#039;ll be a &amp;quot;no comment&amp;quot; for me. Same for the words of wisdom about the essence of programming... --[[User:Geyser|geyser]] 01:37, 25 August 2008 (CEST)&lt;br /&gt;
::I think if anyone ever asks me, &amp;quot;Does geyser have a sense of humor?&amp;quot;, I&#039;ll use the same response: &amp;quot;No comment.&amp;quot; --[[User:Iritscen|Iritscen]] 04:30, 25 August 2008 (CEST)&lt;br /&gt;
::&#039;&#039;&#039;I &#039;&#039;am&#039;&#039; now using ZDLO&#039;s tables in the way that Ed suggested&#039;&#039;&#039; You&#039;re the one who missed my point. I&#039;ve been telling you that ZDLO not only wrote up the tables mentioned by Ed, but also came up with a series of menu-like scripts (hosted [http://zdlo.oni2.net/Scripts/DeveloperMode/FlagMap/ HERE]). Those scripts have a new core tailored for the job, much lighter than OniMenu: a level&#039;s flags are displayed one group at a time, roughly following the groups established by ZDLO himself. By design, you don&#039;t even have to teleport anywhere, because all the information (every flag&#039;s location, facing and ID) is displayed by means of dummy characters: you just walk around and see the info. &amp;quot;Healthboxes? What healthboxes?&amp;quot; - precisely. The ID of the flags is displayed as the health of the dummy characters - this is enabled by ai2_showhealth=1 and takes the form of black text in a white box above every character&#039;s head (there is also a health bar extending upwards by 1 world unit for every hitpoint). The only problem is that on the Mac the health box above the characters isn&#039;t displayed, so you can not read a flag&#039;s ID directly. One workaround is to complement ZDLO&#039;s scripts with a mini-flag-browser that works within the currently displayed group of flags. A simpler solution is to list the IDs of the current group of flags, so that the user can explore them with chr_teleport. Finally, someone who &#039;&#039;can&#039;&#039; see the healthboxes can take a few screenshots and post them somewhere, as a complement to ZDLO&#039;s tables. Along with or instead of ZDLO&#039;s scripts, you can also use Neo&#039;s OniBrowser, which displays stuff like FLAG or TRGV right in the 3D view of a level. --[[User:Geyser|geyser]] 15:26, 25 August 2008 (CEST)&lt;br /&gt;
::&#039;&#039;&#039;how many people would be using such a script?&#039;&#039;&#039; The main point here is that developing such GUI-like tools (the term you use is &amp;quot;landmark improvement for modders&amp;quot;) amounts to empowering lamers. A fluent modder typically won&#039;t limit himself to the range of flags (or other OBJC) available in the original levels. And if that modder &#039;&#039;does&#039;&#039; want to review some original flags, then the available lists, tables and browsers allow him to do so efficiently enough. In that sense, ZDLO&#039;s set of flag viewers are a gadget that may seem nifty to the lazy and clueless, but are definitely not a revolution for those who can actually use the knowledge to create great mods - those people know better than to ask or wait for point-and-click nicicles. If anything, they&#039;ve been using OniBrowser to review that kind of stuff for the past few months... --[[User:Geyser|geyser]] 15:26, 25 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Shitstorm===&lt;br /&gt;
:::Okay, I was totally ignorant of ZDLO&#039;s flag browser, so thank you for explaining it. I also didn&#039;t realize that PCs could display text above character&#039;s heads, but it sure explains [[:Image:Run Loser.jpg|this]].&lt;br /&gt;
:::Also, you might be interested to know that I figured out why we disagree on the basic idea of making user-friendly modding tools; it came to me in a flash of insight. [https://www.apple.com/getamac/ads/ &#039;&#039;I&#039;m a Mac and you&#039;re a PC&#039;&#039;]. The guiding principle behind the Macintosh was that if you provided a well-designed GUI, creative people could be more creative. It would empower them. For years, even after Windows was released, there were DOS stalwarts who insisted that it was better to have to do the hard work from the command line than to have &#039;frivolous&#039; things like mice and windows. Even though no one still adheres to the command-line-is-better school of thought, that way of thinking has a hold on many of the technically-smart Windows users to this day. Once a person switches to Mac, they realize that making basic UI tasks intuitive, and making multimedia work easier encourages the user to actually &#039;&#039;be&#039;&#039; creative. There&#039;s no need to pull oneself over a technical hurdle like, say, using OniSplit from the command line (and oddly enough, you seem to support the idea of a GUI for OniSplit) in order to get things done so it&#039;s easier to let your initial enthusiasm carry over instead of getting mired in stuff that should be behind the scenes. A recent exchange from the forum (names have been changed to protect the innocent):&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
:::OniVirgin: I think I should add some new moves to Yosemite Sam because he doesn&#039;t have as many moves as other characters.&lt;br /&gt;
:::Burt: OniVirgin: You might be interested in this page: &amp;lt;nowiki&amp;gt;http://wiki.oni2.net/OBD_talk:TRAM&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
:::OniVirgin: That page looks useful. But... my new semester is coming and I must focus on my study. Maybe other time I can modify it...&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::::::What happened here? Our new and enthusiastic modder is thrown off by having to absorb 10 screenfuls of technical stuff that&#039;s not in his native language (and really, who &#039;&#039;does&#039;&#039; speak hex fluently? ;-). Now, imagine if we had a visual 3D TRAM editor, or even a GUI for OniSplit that basically said, &amp;quot;What parts of the TRAM do you want to focus on?&amp;quot; and there was a pulldown menu for &amp;quot;knockback&amp;quot;, &amp;quot;damage-dealing bones&amp;quot;, etc. and it would highlight those in the actual Oni binary data for an animation, and they could type a new decimal value in for damage, or pick a new bone from a popup menu, and the GUI would convert it to hex. That&#039;s just a random example of the philosophy of &amp;quot;enabling creativity through user-friendliness&amp;quot;, and it&#039;s essential to the mindset of anyone who loves Macs. --[[User:Iritscen|Iritscen]] 17:31, 25 August 2008 (CEST)&lt;br /&gt;
:::::::Iritscen, love_Oni is not a fool: http://web.archive.org/web/20160225132841/http://oni.bungie.org/forum/viewtopic.php?pid=9103#p9103. He may not be the best modder out there (like anyone is just starting out), but he is not an &amp;quot;OniVirgin&amp;quot; who is put off by a hex editor. At one point or another most of the modding community is &amp;quot;Busy&amp;quot; for one reason or another with real life. &lt;br /&gt;
:::::::#Do you know how much of a pain in the arse it is to create a good GUI? &lt;br /&gt;
:::::::#Is it really worth it to spend the time required to make such a GUI? There aren&#039;t even a dozen modders at this point, and most of them are at the point where they don&#039;t need a GUI (Unless you count OUP as a GUI, but it is really only a glorified hex editor). Would the time spent on creating a superb GUI be more than the time that it would save for the people who use the GUI?&lt;br /&gt;
:::::::#Running Onisplit is not a &amp;quot;technical hurdle&amp;quot;. &amp;quot;Onisplit.exe -import:nosep *copy* *paste* *copy* *paste*&amp;quot;. There, I&#039;m done. If I need to do the same action again, I can just hit the up arrow. In the end, I think hex editing through OUP and doing things the &amp;quot;hard way&amp;quot; actually enables more creativity. You learn exactly how things work out. If I need to make a small change, it takes me about 20 seconds to open up OUP and do it. If I need to make a large change, I can export the file to .xml through Onisplit and do changes there. For many things, the level recombining (level0) is the longest part. A GUI would not speed that up!!&lt;br /&gt;
:::::::#Back on topic: What kind of GUI would you create for a simple flag browser anyways?! What we have seems about as good as it is going to get. (And you can run the Windows version through Bootcamp anyways. Why aren&#039;t you?) [[User:Gumby|Gumby]] 18:55, 25 August 2008 (CEST)&lt;br /&gt;
:::::::::0. I never called love_Oni a fool, that was your choice of wording. I respect love_Oni&#039;s intelligence, but he is a &amp;quot;virgin&amp;quot; to many aspects of Oni modding (I am too in some areas, but this was a matter of providing a real-life example and it just so happened that I saw a post that fit my needs; was it necessary to point out to geyser, who doesn&#039;t browse the forum, who I was actually quoting?). Also, &amp;quot;Virgin&amp;quot; was a pun on his adoration for Madonna. I can assure you that he is not alone in being put off by having to dedicate to memory the material on the TRAM page. That&#039;s stuff that should be turned into an intuitive program so end-users don&#039;t need to know it.&lt;br /&gt;
:::::::::1. No, I don&#039;t. It doesn&#039;t seem that hard to me.&lt;br /&gt;
:::::::::2. I&#039;ve already explained my views on this so I won&#039;t bother repeating anything, except to say that there might very well be more modders if we had a GUI. Why are you pissed at me when I already acknowledged that there weren&#039;t many modders who would use the tool? I was the one who said that first.&lt;br /&gt;
:::::::::3. Making changes via a command line and XML bloody well &amp;lt;u&amp;gt;is&amp;lt;/u&amp;gt; a technical hurdle. Why was the GUI invented, otherwise? No disrespect meant to Neo, who I think is awesome. He&#039;s like the frontline hacker who publishes his discoveries, and then others start from where he leaves off to bring his hard work to the masses.&lt;br /&gt;
:::::::::3.5 &amp;quot;&#039;&#039;&#039;doing things the &amp;quot;hard way&amp;quot; actually enables more creativity&#039;&#039;&#039;&amp;quot; Crap, did I call this one, or what, geyser? Some people are impervious to progress, it seems.&lt;br /&gt;
:::::::::4. Huh? I already outlined what I would do for a flag browser, then I found out that ZDLO has already done it. End of story.&lt;br /&gt;
::::::::::Sorry, spoke too soon. ZDLO just cut-and-pasted (there it is again!) the code geyser wrote for entering flag numbers. My answer to your question, then, Gumby, as to how I&#039;d design the flag browser was still already answered up top. Let me... cut and paste it! &#039;&#039;&#039;an OniMenu-type script that actually lists a level&#039;s flags with descriptions of their locations in the level? You could drill down the menus, maybe starting with choosing what level&#039;s flags to look at if there&#039;s no way to find out the current level through BSL, then in a submenu choose the area of the level to go to, then choose the specific spot. In other words, scriptifying ZDLO&#039;s flag tables.&#039;&#039;&#039;&lt;br /&gt;
:::::::::4.5. &#039;&#039;&#039;&amp;quot;Why aren&#039;t you?&amp;quot;&#039;&#039;&#039; But, I am.&lt;br /&gt;
:::::::::P.S.: Mac users are in an inferior modding situation because we can&#039;t use every program (OUP, OniBrowser e.g.) that you can. That doesn&#039;t mean that Mac users should be expected to do all their Oni work in Windows. But ultimately, why are we having this conversation? Gumby, any GUI that someone wrote for Windows would have to be written by someone else for the Mac, right? So this discussion does not entail any work on your part. Really, at this point, it would fall to Ed (who is already doing related work) and myself to do something nice for Mac users. And perhaps that&#039;s just as well, if we&#039;re the only ones who appreciate GUIs. I can guarantee that the other Mac users would lap our work up eagerly and modding on our side would outpace the Windows side. For the time being, of course, I can only talk about it because I won&#039;t have the time to act until a couple other Oni projects are done. --[[User:Iritscen|Iritscen]] 22:13, 25 August 2008 (CEST)&lt;br /&gt;
::::::::::0. Define end-user? Modder=/=End User. End user is the guy who installs the mod. If you are making a mod, you should know what you are doing. Modding isn&#039;t for the lazy. &lt;br /&gt;
::::::::::1. Then don&#039;t complain about not having one. Make it yourself.&lt;br /&gt;
::::::::::2. Because it is easier to fine tune things with hex and a command line program. &amp;quot;You can&#039;t do everything in point and click apps&amp;quot;. &lt;br /&gt;
::::::::::3. Making a GUI for editing every single part of Oni is also a technical hurdle. :) &lt;br /&gt;
::::::::::3.5 See point 2. Unless the same guy who makes the underlying program makes the GUI (not true here), the GUI&#039;s features will not mirror the program&#039;s features.  And at some point, the program will have more features than will properly fit on a GUI. See point 1. This will either lead to a messy\unfriendly GUI (bad), or a GUI with features removed (also bad). [[User:Gumby|Gumby]] 22:45, 25 August 2008 (CEST)&lt;br /&gt;
:::::::::::0. The modder &amp;lt;u&amp;gt;is&amp;lt;/u&amp;gt; the end-user of the mod-making process, just not the mod-&#039;&#039;using&#039;&#039; process. And modding &#039;&#039;should&#039;&#039; be available for the lazy. I demand a retraction of your statement :-) Seriously, though, just because someone wants to &amp;quot;mod&amp;quot;, that term could mean anything from changing one parameter of one TRAM, to making a whole new scenario. So is it worth it to learn all these technicalities when you just want to mod small-time stuff? Arguably not, with the way things are right now. But here&#039;s the point I want you to remember: I agree with the stetement &amp;quot;If you are making a mod, you should know what you are doing.&amp;quot; But only if you define &amp;quot;what you are doing&amp;quot; as &amp;quot;how to make quality modifications to the game&amp;quot;, not your apparent definition of &amp;quot;what the changes you make are doing at the hex level&amp;quot;. My definition focuses on the creative skill of the modder, yours focuses on the ability of the modder to learn nerdy geek stuff; I still maintain that those are almost opposite skills. Once again, this is the whole point of the GUI; to &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; know what you are doing at the lower level of the OS as long as it produces reliable results at the upper level. Many OS X users couldn&#039;t care less about the Unix layer of the OS, and the beautiful thing is, they don&#039;t have to.&lt;br /&gt;
:::::::::::1. Well, maybe I will *sticks out lower lip poutily*. But as I indicated, that&#039;s gotta come after the trailer and the HD models. I think that if I find a compelling way to present a total Oni-modding package as a GUI, you&#039;ll come around to my way of thinking soon enough and want a Windows version :-)&lt;br /&gt;
:::::::::::2. If I knew what you meant by &amp;quot;fine tune&amp;quot;, I would respond to this, but I don&#039;t, so I won&#039;t. :-p But whatever you mean, I probably don&#039;t agree. :-P x 2&lt;br /&gt;
:::::::::::3. Yes, quite true. But it&#039;s only a hurdle for one or two people who have to make the tool, as opposed to every single person who comes along wanting to mod that has to learn hex and endians. If you question the act of programming an interface because it&#039;s &amp;quot;hard&amp;quot;, you call into question millions of dollars of software that&#039;s sold every year and decades of common practice. I&#039;m sure that&#039;s not what you intend to say.&lt;br /&gt;
:::::::::::P.S.: I genuinely want to apologize for spamming geyser&#039;s page with this stuff; it all started with an innocent question about OniMenu and just snowballed from there. The basic problem I have is that I keep thinking for some dumb reason that if I suggest something, others might actually agree with me and do the work I described. Instead it looks like I can only see something done that I think should be done if I do it myself. Talking about it beforehand only makes unnecessary arguments. I&#039;m starting to see that now. --[[User:Iritscen|Iritscen]] 23:32, 25 August 2008 (CEST)&lt;br /&gt;
::::::::::::Ok, I am quickly tiring of this argument, it isn&#039;t going anywhere.&lt;br /&gt;
::::::::::::Might I add that this is not the software industry where millions of dollars are made every year? This is a roughly open modding project, where nobody gets paid. If anything, the project on the whole loses money due to webspace costs (thank Alloc for keeping oni2 up) and time that could be spent doing other things. :) [[User:Gumby|Gumby]] 00:21, 26 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Moral closure===&lt;br /&gt;
:PLEASE READ THIS CAREFULLY&lt;br /&gt;
:Thanks everybody, and special thanks to Iritscen who started this, er, whatever it is: for the sake of the argument, let&#039;s not call it a flame war. Overlooking the existing flag-browsing tools was forgivable, but the generalization that followed annoyed me deeply, all the more as it gravitated to the infamous &amp;quot;wouldn&#039;t it be cool if modding was at every fanboy&#039;s fingertips&amp;quot; topic, with brief excursions into PC-VS-Mac territory. I hated every bit of it (including my own comment on the matter), and I will be deleting this whole section in a short while.&lt;br /&gt;
&lt;br /&gt;
:If I wanted to participate in the debate or give it some sort of moral closure, I could say things like:&lt;br /&gt;
::&amp;quot;Oni&#039;s models, levels and animations were done in 3D Studio Max and AutoCAD, and Windows at that time was nowhere close to today&#039;s OS environments - OS X or Vista or Ubuntu or whatever - in terms of point-and-clickety-friendliness...&amp;quot;&lt;br /&gt;
:or:&lt;br /&gt;
::&amp;quot;Speaking of AutoCAD - a highly professional tool if there ever was one - did you know it is mostly operated through a command-line interface? Another contemporary 3D application that features a command-line is Softimage|XSI - used among others by the creators of Half-Life 2... and by certain fluent Oni modders.&amp;quot;&lt;br /&gt;
:or:&lt;br /&gt;
::&amp;quot;Creative people are creative no matter what the OS or GUIs at their disposal, and have always been. If this is not the case today, then our potential creators have been swallowed by the point-and-click generation, and we&#039;re pretty much screwed.&amp;quot;&lt;br /&gt;
:or:&lt;br /&gt;
::&amp;quot;If a modder&#039;s idea of upper-level modding is messing around with Oni&#039;s animation system one parameter at a time, that modder probably sucks really bad. Hordes of such people picking at Oni by means of an ideal GUI is not a pleasant perspective. Or is it?&amp;quot;&lt;br /&gt;
:or, making things slightly more personal:&lt;br /&gt;
::&amp;quot;If you think you&#039;re the one who&#039;ll bring that ideal GUI to the community - note that this typically requires low-level thinking rather than point-and-click enthusiasm - by all means don&#039;t talk of it &amp;quot;beforehand&amp;quot; - that little word actually doesn&#039;t make any sense in the absence of subsequent delivery. We&#039;ll see about awesome in due time, but why doncha produce something that doesn&#039;t suck, first?&amp;quot;&lt;br /&gt;
:and:&lt;br /&gt;
::&amp;quot;If you&#039;re in fact trying to hype &#039;&#039;other&#039;&#039; people into designing the ideal GUI, I assure you that those other people all understand the amount of programming work and raw binary knowledge that was put into OniTools and OniSplit/OniBrowser, and they also understand the appeal and potential of future developments of Oni modding (no thanks to you). Thus, making levels and animations conveniently moddable are Neo&#039;s top priorities on planet Oni ATM, thanks for asking.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:But since all I want is get this over with, I&#039;ll just say these few things to Iritscen:&lt;br /&gt;
:You are making a reasonably good point in your diatribes, which is that complex entities such as animations and geometry should be authored in a GUI environment rather than in raw hex. OK... That kind of trivial statement is damn hard to disagree with: likewise, it doesn&#039;t take a Male Scientist to know that I, geyser, wouldn&#039;t spit in the face of the one who&#039;d hand me the equivalent of Bungie West&#039;s authoring pipeline on a silver platter; a set of modding tools reasonably close to what Oni&#039;s developers were using can&#039;t be bad, now can it?&lt;br /&gt;
:Why aren&#039;t we agreeing with you, then? Sure your point is trivial, but we could at least give you a half-hearted &amp;quot;Yeah, you&#039;re right... I guess&amp;quot; - and we probably &#039;&#039;would&#039;&#039;... But then you go and bury your one trivial point in a landslide of rhetorics, sarcasm and verbal onanism, and to make things worse you consistently shove the obvious in our faces as if it was an all-new initiative of yours. That&#039;s typically the situation where I&#039;m no longer in a position to agree, and all I feel like saying is STFUn00b.&lt;br /&gt;
:Probably that &amp;quot;initiative hi-jacking&amp;quot; I mentioned is just part of your hey-mom-look-I&#039;m-a-developer act, and I can try and turn a blind eye on it; after all, I used to be like that too. However, what I can hardly understand or tolerate is that you never drop your high-level end-user philosophy even when you&#039;re talking about programming. To focus on the GUI is OK for a salesman or consultant or beta tester, but if you&#039;re serious about that developer hat of yours, you have to get down to earth from time to time. Development is work. Modding is not for the lazy/clueless, and programming even less so. A GUI for Oni modding is everything but abstract, so you can forget all the guru talk you&#039;ve picked up in computer science shool or wherever: you&#039;re interfacing with real-world data structures; you&#039;re doing 3D graphics; you&#039;re generating content for engines and tools that you didn&#039;t code yourself: you need to think on the low level and to pay elementary attention to every single thing you see or do. So it&#039;s OK to be a point-and-click enthusiast, but I assure you: you have to drop that enthusiasm a bit and pick up something else before you can actually sit down and code the point-and-clickety GUI you&#039;re dreaming of right now.&lt;br /&gt;
:P.S. &amp;quot;ZDLO just cut-and-pasted (there it is again!) the code geyser wrote for entering flag numbers.&amp;quot; You couldn&#039;t be more wrong here, so I think you didn&#039;t actually read or test ZDLO&#039;s scripts at all. These assumptions of yours are yet another thing that can get an actual programmer &#039;&#039;very&#039;&#039; cross, as in STFUn00b again. ZDLO used his own code for the most part, and no, BSL is definitely not about cut-and-pasting. You need flawless attention and awareness, and you better get used to thinking of programming that way.&lt;br /&gt;
:P.P.S. &amp;quot;geyser, have you ever thought about making the change to an uppercase G? You should totally go for it!&amp;quot; Just because you have nothing to say doesn&#039;t mean you should tell me how I should capitalize my nickname. I chose it to be lowercase for several reasons, one of which is a permanent note to self about humility; that one never gets old. Also note that in many circumstances capitalization wins, e.g. here on the wiki (user names are capitalized everywhere except in signatures) or on YouTube. So, STFU forever.&lt;br /&gt;
:P.P.P.S. This is unrelated to the above, but I have come to a point where I absolutely have to break virtually all contact with Oni, or else I&#039;ll never pick up the pieces of my PhD. I&#039;ll post an update when I delete this section, but basically that means: read-only access to the wiki at the most, maybe some updates in the form of links to freshly uploaded stuff, and definitely no chat.&lt;br /&gt;
::[[User:Geyser|geyser]] 17:54, 26 August 2008 (CEST)&lt;br /&gt;
:::Well, I&#039;ll miss our lovely chats, geyser *rolling eyes* Obviously I won&#039;t spend the time to rebut any of the above accusations since it&#039;s going to be erased soon (and I won&#039;t miss it). I will just say, re &amp;quot;initiative hijacking&amp;quot;, that I am not guilty of that per se, only suggesting something and then finding out someone was already doing it. And you&#039;re really daring me to go to town on that Oni modding tool, aren&#039;t you? I&#039;m not saying I will, but we&#039;ll see what happens when I get to a stage where it&#039;s possible. I&#039;d also love to write a manifesto about how programmers usually epically fail at interface design and how they need to think more about the end-user to move the profession forward, but that is really something that, as you point out, I need to demonstrate through action or else shut up about.&lt;br /&gt;
:::P.S.: If you can&#039;t tell that my edit summary (&amp;quot;you should totally go for it!&amp;quot;) was a blatant and silly trap to provoke your annoyance, which you fell squarely into, then you have my condolences :p&lt;br /&gt;
:::P.P.S.: I appreciated your speech on humility that ended with &amp;quot;STFU forever&amp;quot;, clearly your plan to stay humble is working. By the way, I&#039;d like to announce that I am changing my name to &amp;lt;big&amp;gt;IRITSCEN&amp;lt;/big&amp;gt;.&lt;br /&gt;
:::P.P.P.S: I didn&#039;t plan these addendums to match yours in number, but I bet that, even being a coincidence, you find it somehow annoying. I&#039;d just like to say that I hope your whole doctorate thing goes well, if that is indeed the stage you&#039;re at. I can hardly say that we&#039;re best friends... or even moderate friends... but I think I can call you my worst friend. So I wish you well in your endeavors while you&#039;re away. --[[User:Iritscen|Iritscen]] 22:44, 26 August 2008 (CEST)&lt;br /&gt;
::::It&#039;s provoking people gratuitously that&#039;s sad, not pointing the finger at gratuitous provocations. IMHO.&lt;br /&gt;
::::I didn&#039;t ask for any rebuttals. I just asked you to read all of the above carefully, and I hope you have.&lt;br /&gt;
::::&amp;quot;only suggesting something and then finding out&amp;quot; - in &#039;&#039;our&#039;&#039; case, that&#039;s often an attention span issue.&lt;br /&gt;
::::&amp;quot;I&#039;d also love to write a manifesto about...&amp;quot; - right, as if &#039;&#039;that&#039;&#039; hasn&#039;t been done before, a dozen times.&lt;br /&gt;
::::&amp;quot;we&#039;ll see what happens when I get to a stage where it&#039;s possible&amp;quot; I wouldn&#039;t have put it better. Bravo.&lt;br /&gt;
::::I wish myself the best of luck, too. As for you, remember to exercise restraint. Think before you act.&lt;br /&gt;
:::::[[User:Geyser|geyser]] 03:37, 28 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Cherry picking==&lt;br /&gt;
::&lt;br /&gt;
:P.S: ... and what about replacing &amp;quot;serendipity&amp;quot; with &amp;quot;cherry picking&amp;quot;? I think it would be more intuitive. [User:Guido|Guido]] 10:00, 26 October 2008 (CEST)&lt;br /&gt;
::Well, the meaning of &amp;quot;[[wikipedia:Cherry_picking|cherry picking]]&amp;quot; was &#039;&#039;really&#039;&#039; not intuitive to &#039;&#039;me&#039;&#039;, so I had to look it up. And it&#039;s still not clear to me what exactly it means as applied to this wiki (biased sample? WTF?) or why it&#039;s more appropriate than &amp;quot;[[wikipedia:Serendipity|serendipity]]&amp;quot;. Eventually I meant to replace this with a link to the [[OniGalore_talk:General_disclaimer]], which would be a sort of condensed site map. --[[User:Geyser|geyser]] 11:10, 26 October 2008 (CET)&lt;br /&gt;
:::It&#039;s true that I don&#039;t think &amp;quot;cherry picking&amp;quot; is the right phrase to replace &amp;quot;serendipity&amp;quot;, but the more important question is what &amp;quot;serendipity&amp;quot; is supposed to mean in the first place. You should be aware that, as fond as you are of &amp;quot;serendipity&amp;quot;, geyser, I can confidently say that a lot of native English speakers do not know its meaning, and those who do, like myself, are still at a loss as to what it means when used &amp;lt;u&amp;gt;here&amp;lt;/u&amp;gt;. When I first saw that the word was a link, I assumed it would link to [[Special:Random]], not a dictionary definition of the word that still gives it no context....&lt;br /&gt;
:::&amp;quot;&#039;&#039;&#039;a link to the [[OniGalore_talk:General_disclaimer]]&#039;&#039;&#039;&amp;quot; o.O ...Come again, geyser? --[[User:Iritscen|Iritscen]] 17:57, 26 October 2008 (CET)&lt;br /&gt;
:Clicking &amp;quot;Random page&amp;quot; has less to do with serendipity than following intrawiki links. The idea is that beyond a certain amount of cross-linking, the wiki virtually &amp;quot;navigates itself&amp;quot;, and allows casual/curious readers to end up in unexpected places, through a set of more or less loose associations with what they were initially interested in. Maybe I&#039;m the only one who reads wikis like this (starting with Wikipedia) and enjoys it... Anyway, &amp;quot;serendipity&amp;quot; in the context of our wiki (casual navigation powered by intralinks) is not meant to be self-explanatory right now. The actual thing that&#039;s supposed to be featured on the main page is the disclaimer: I used to link to it without the serendipity label, and I will re:link to it eventually, probably without calling it serendipity either. Thus thee serendipity thing is just a placeholder, or at least you can think of it that way. Of course, you can decide to kill that initiative (and delete the disclaimer while you&#039;re at it), but I wouldn&#039;t do that, or if I did, I&#039;d expect unexpected retribution. My advice is to ignore everything you can ignore, and I&#039;ll do my best to ignore bureau-cats and other uncyclopedic spam that is only funny to certain people while on certain drugs --[[User:Geyser|geyser]] 22:04, 26 October 2008 (CET)&lt;br /&gt;
::&amp;lt;sigh&amp;gt;Because the Disclaimers page is &#039;&#039;so&#039;&#039; much funnier to &#039;&#039;such&#039;&#039; a larger audience :rolleyes:. The fact that you use the words &amp;quot;uncyclopedic spam&amp;quot; simply blows my mind when you were just talking about [[OniGalore:General disclaimer|this]] page in the same breath. Anyway, what I was trying to ask above was, How is the Disclaimers page in any way connected with your concept of browsing the wiki by serendipity? And don&#039;t get jumpy, I never said I was thinking of killing any initiative, I don&#039;t attack what I can&#039;t even begin to understand :-3. --[[User:Iritscen|Iritscen]] 01:39, 27 October 2008 (CET)&lt;br /&gt;
:::Quite simply, a list of ill side effects is a nice place to start browsing; every ill side effect linking to an article, ideally. Seen that way, the disclaimer has the potential of becoming a condensed site map (and I already told you that). Not in the present form, of course (remember that I was young and stupid when I stole SOW&#039;s disclaimer, so comparing your own silliness with it is not to your advantage), but as outlined in the footer and on the talk page (which I also linked to, for Mukade&#039;s sake). My own brainstorming and Gumby&#039;s should give you an idea of what&#039;s cooking. Just don&#039;t tell me we have to explain the meaning of every single item, because we all have better things to do right now. --[[User:Geyser|geyser]] 02:16, 27 October 2008 (CET)&lt;br /&gt;
::::Okay, now I get it, at least as much as I&#039;m going to get it, I suppose. But if you think this plan was in any way clear before your last post, hate to tell ya, but it wasn&#039;t; don&#039;t act like you explained anything on the Disclaimers talk page, it&#039;s an incomprehensible list of gibberish right now. Whatever, have fun with it.&lt;br /&gt;
::::P.S.: By injecting humor into official wiki pages such as [[OniGalore:Policy|Policy]], I am *trying* to preserve fun while adding functionality, sorry if you don&#039;t see it that way, but I daresay most people will; heck, even Wikipedia has [[wikipedia:WP:BEANS|joke pages]] as part of their system of policy articles. --[[User:Iritscen|Iritscen]] 02:28, 27 October 2008 (CET)&lt;br /&gt;
:::::The functionality added by those official pages is nil, and the humor is IMO fairly tasteless, so in a way it&#039;s &amp;quot;worse than nothing&amp;quot;. You know as well as I do that there&#039;s more than enough places on the web that cultivate that kind of humor; no need to develop it here as if our wiki was Yet Another Weak Hu--[[User:Iritscen|Iritscen]] 04:27, 27 October 2008 (CET)mor Site. If you can relate your humor to Bungie or Oni, that will already be more creative, if not better (I mean, since Bungie humor is already not very tasteful, either make the weak s##t part of the Bungie strain or leave it out). That&#039;s just my opinion of course, you&#039;re a big boy and I wouldn&#039;t want to tell you how to run an Oni wiki. &#039;&#039;&amp;lt;-- NOT ASKING FOR A FORMAL POLICY, OF COURSE; JUST TRYING TO APPEAL TO COMMON SENSE: THE WIKI IS NEITHER A SELF-INDULGENT BLOG NOR A PORTAL TO UNCYCLOPEDIA; SO LET&#039;S AT LEAST TRY TO KEEP THE CRAP OUT&lt;br /&gt;
:::::&amp;quot;don&#039;t act like you explained anything on the Disclaimers talk page, it&#039;s an incomprehensible list of gibberish right now&amp;quot; Let&#039;s not play dumb and dumber, please. Care to go and read it again? Here&#039;s what it says at the bottom: &#039;&#039;&amp;lt;-- OOPS! MISTAKING THE DISCLAIMER FOR THE TALK PAGE WAS A VERY BAD IDEA&#039;&#039;&lt;br /&gt;
::::::&#039;&#039;The above masterpiece was outrageousy stolen (by me, [[User:Geyser|geyser]]) from [https://www.swo.com/ Science of War and Oppression]. &#039;&#039;&#039;I am looking forward to making [[OniGalore talk:General disclaimer|a more Oni-oriented variant]] (you&#039;re welcome if you want to help)&#039;&#039;&#039;, but for now it&#039;s [https://www.swo.com/disclaimer.shtml SWO&#039;s original version], with a few original entries by myself. No, I don&#039;t have permission to redistribute their disclaimer. I&#039;ll try to keep it clean :)&#039;&#039;&lt;br /&gt;
:::::You have had the ample opportunity to check out SWO&#039;s original disclaimer (incomprehensible list of gibberish?  &#039;&#039;riiiiiiight&#039;&#039;   &#039;&#039;&amp;lt;-- OOPS! SAME MISTAKE AS ABOVE, LOOKING AT THE WRONG PAGE&#039;&#039;), as well as the talk related to ours, and the recent contributions by Gumby and myself have made the initiative all the more explicit. Sorry if you didn&#039;t get the picture, but I didn&#039;t want to insult your intelligence. &#039;&#039;&amp;lt;-- THAT ONE STILL HOLDS, I GUESS. I MEAN, GUMBY GOT THE IDEA ALL BY HIMSELF AND EVEN ADDED THE FIRST HYPERLINK...&#039;&#039;&lt;br /&gt;
::::::[[User:Geyser|geyser]] 03:27, 27 October 2008 (CET)&lt;br /&gt;
:::::::Non-Oni-related humor... is &amp;lt;u&amp;gt;that&amp;lt;/u&amp;gt; what&#039;s been burning your biscuits all this time about my jokes? Sorry, I didn&#039;t think we had a Bungie-only humor rule here. Let&#039;s try not to be so insular and snobbish, &#039;kay? Let&#039;s also try not to be insulting, although it&#039;s too late for that today -- having an Editing Policy page, a Copyrights page, or any page defining user rights and roles is a &#039;&#039;hell&#039;&#039; of a lot more useful than your original Disclaimers page. And I certainly read that note at the bottom a while back... how on Earth do you think that wording conveys your plans to make a Site Map out of random Oni phrases on a &#039;&#039;Disclaimer&#039;&#039; page? The longer you continue this back-and-forth, the more ridiculous you look. --[[User:Iritscen|Iritscen]] 03:35, 27 October 2008 (CET)&lt;br /&gt;
:::::::P.S.: In response to your point about not making the wiki a portal to other crap, I don&#039;t plan on doing regularly what I did with the Editing Policy page. But to clarify what I meant above in case you missed it, I don&#039;t think we need to be insular as a community, where anything that&#039;s not Oni or generally Bungie-related is automatically &amp;quot;crap&amp;quot;. I specifically put a note in my Talk page about how a community can go too far in that direction and become a barricaded fortress of in-jokes that only the community elite actually understand. I prefer a more approachable take on humor, personally. But I will try to keep the external links to a bare minimum. --[[User:Iritscen|Iritscen]] 04:27, 27 October 2008 (CET)&lt;br /&gt;
:::::::stop bitching or my ninjas will come and find you! [[User:guido|guido]] 18:47, 27 October 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
[[Category:Userspace]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Gumby&amp;diff=46190</id>
		<title>User:Gumby</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Gumby&amp;diff=46190"/>
		<updated>2025-12-26T06:12:07Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|style=&amp;quot;float:right&amp;quot; border=1 cellspacing=0&lt;br /&gt;
|[[Image:Flatline logo WIP.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Retired Modder&lt;br /&gt;
&lt;br /&gt;
Has worked on:&lt;br /&gt;
&lt;br /&gt;
*[[Daodan DLL|C-Daodan]]&lt;br /&gt;
*[http://oni.bungie.org/forum/viewtopic.php?id=702 Barrel].&lt;br /&gt;
*AE - History of Projects, in no particular order:&lt;br /&gt;
**[[AE:Glass#Deadly_glass]]&lt;br /&gt;
**[http://gumby.oni2.net/AE/BSL/cutscene/ Cutscene skipping]&lt;br /&gt;
**[[AE_talk:New_weapons#w18_asr2_Assault_Rifle]]&lt;br /&gt;
**[[AE_talk:New_weapons#w23_rla_Rocket_Launcher]]&lt;br /&gt;
**[[Flatline]]&lt;br /&gt;
**[[AE:Barabas#Regeneration]]&lt;br /&gt;
**[http://mods.oni2.net/node/62 Konoko vs. World]&lt;br /&gt;
**[[AE:OTA]] (minor upkeep+Arena of Pain)&lt;br /&gt;
*[http://web.archive.org/web/20160226095407/http://oni.bungie.org/forum/viewtopic.php?pid=10487#p10487 Onisplit shell extensions]&lt;br /&gt;
*Other stuff that is forgotten&lt;br /&gt;
&lt;br /&gt;
[[Category:Userspace]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=History_of_Oni_modding&amp;diff=46189</id>
		<title>History of Oni modding</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=History_of_Oni_modding&amp;diff=46189"/>
		<updated>2025-12-26T06:11:59Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hatnote|This article is a historical perspective on Oni [[wp:Video game modding|modding]]; for an introduction to how to actually mod Oni, see [[Introduction to modding|here]]. To download mods, you can start [[AE|here]].}}&lt;br /&gt;
As has been documented on the page about [[Oni]]&#039;s overall development, time ran out for Bungie West to do everything they wanted with this very ambitious game. Just as some features had to be omitted, the promise of modding support&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;ref&amp;gt;In [[Harry]]&#039;s [http://oni.bungie.org/special/part1/brent.html interview], Brent Pease, the Project Lead, said: &amp;quot;What we will do is, I&#039;m about 90 percent sure of this, is give away the file format.&amp;quot; He also promises with equal certainty that the tools for converting 3D Studio Max models into Oni models will be given away. Pease eventually left the project before its completion. Hardy LeBel, his replacement, would later say, &amp;quot;[Due to the time crunch] our primary focus had to be on completing the content and features of the game rather than building in support for the mod community.&amp;quot; Additionally, Bungie no longer owned the game by the time it shipped, so it would have been legally questionable to release header files from the source code, which would be the simplest and quickest way to &amp;quot;give away the file format&amp;quot;.&amp;lt;/ref&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt; also failed to come true. However, even before Oni fans realized that there would never be official modding tools from Bungie, they were already eagerly diving into the game data to see how they could mod it.&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;ref&amp;gt;Fans wasted no time in dumping the readable text from the executable and trying to figure out how to enable Developer Mode, starting before Oni&#039;s official release date by analyzing the demo&amp;lt;!--Dead link: http://carnage.bungie.org/oniresforum/onires.archive.pl?read=35 --&amp;gt;. Little did they know it would take another five years before this particular goal would be reached.&amp;lt;/ref&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt; Nevertheless, the lack of any documentation or tools for modding undeniably slowed the development of mods within the community. Only since 2010&amp;lt;!--Nov. 6, 2010 is the date that geyser posted about OniSplit supporting pathfinding grids for new levels in the article &amp;quot;New levels&amp;quot;.--&amp;gt; has the community&#039;s modding capabilities covered nearly all aspects of the game.&lt;br /&gt;
&lt;br /&gt;
There are three basic areas in which the game can be modded: scripting, binary resources, and the engine itself.  Along the way, we&#039;ll look at some key discoveries the community made in more detail.&lt;br /&gt;
&lt;br /&gt;
==BSL scripting==&lt;br /&gt;
[[Image:One Tiny Mistake.jpg|thumb|225px|right|Konoko pulls her gun on the secretary in the beginning of Chapter 2, a change to the original cutscene made by a script which tightens up the story and provides a new challenge for veteran players.]]&lt;br /&gt;
Since the .bsl files were in plain text and in plain sight within the folders that held Oni&#039;s game data, it&#039;s not surprising that fans quickly learned some basic scripting commands by seeing what Bungie had written, and started making their own scripts. Further commands were discovered by dumping readable text from the engine, although not everything worked as it seemed it should.&lt;br /&gt;
&lt;br /&gt;
As scripters were learning [[BSL]], they produced scripts that at first merely modified the original level logic in minor ways. Then they produced more original, often epic fight scripts; later, some ambitious modders scripted totally new objectives and mission layouts (e.g., Mariachi Bear&#039;s alternate storyline). Some of the most complex scripts are the [[OTA]] scripts which were eventually developed to make up for a lack of multiplayer gameplay.&lt;br /&gt;
&lt;br /&gt;
However, fully original scripts are all the more prone to bugs. The first two are easier to set up, but extreme situations tend to overload the engine (as in &amp;quot;[[Blam!]]&amp;quot;) in ways that scripters have trouble preventing. Testing the scripts required numerous reloads of the game. The process became much faster when the Developer Mode console was unlocked (see {{SectionLink||Finding Dev Mode}}) and individual commands could be tested easily.&lt;br /&gt;
&lt;br /&gt;
While scripting is the easiest way to mod Oni, it&#039;s also the most limited, because scripts can only utilize the resources that the vanilla level has to offer.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Binary resources==&lt;br /&gt;
===Private knowledge, public results===&lt;br /&gt;
[[Image:OniTools.jpg|thumb|225px|right|Ian Patterson&#039;s trailblazing Mac program OniTools was eagerly ported to Windows by other fans.]]&lt;br /&gt;
[[Image:OUP_txmpreplace.jpg|thumb|225px|right|OniUnPacker by Alloc, premiering in fall of 2005, provided a simple interface for finding the resource you wanted and displaying it, as well as replacing it.]]&lt;br /&gt;
[[Image:AE_Installer_1.jpg|thumb|225px|right|The AE mod installer released in 2009. For the first time, players could pick and choose what mods to install.]]&lt;br /&gt;
[[Image:AEI_main_window.jpg|thumb|225px|right|The AE Installer released in 2013 could update itself, the player&#039;s mods, and the patches made to the game. It was written from scratch in Java for ease of cross-platform support.]]&lt;br /&gt;
Fans with some expertise in parsing files with hex editors found that the level data files held four-letter codes indicating the start of each resource within that file. Before Oni even released, the community had its first resource modding tool, Ian Patterson&#039;s [[OniTools]]. While the author did not yet know how all the data worked, his program could at least parse it, and allow the modder to more easily edit each resource without having to count in hexadecimal. It also supported user-friendly replacement of texture maps, delta patches called CMPOs, and allowed inline viewing of the game&#039;s 3D models. There seems to be little evidence that this knowledge was put to use in modding the game resources beyond simple texture replacements, no doubt due to the lack of a complete understanding of how Oni&#039;s dozens of resource types were interrelated. But the open-source release of OniTools gave fans something to build on.&lt;br /&gt;
&lt;br /&gt;
Independently, an intrepid programmer named Pierre Terdiman decided to import data from Oni into the game engine that he was writing from scratch. Called [[Konoko Payne]], it was a long-term project which took the form of (1) an underlying engine and (2) a short scenario for it that resembled a sequel to Oni. In order to extract models and animations from Oni and recreate them precisely in his project, Pierre became one of the early pioneers in reverse-engineering the game&#039;s resources, although his acquired knowledge remained largely private as the engine was closed-source.&lt;br /&gt;
&lt;br /&gt;
===Hackers unite===&lt;br /&gt;
Perhaps the first place that knowledge of Oni&#039;s data was directly published online was on [http://oni.moltenstudios.com/tool/index.php Oni Master&#039;s site], which started as early as 2003 and was based on the source code for OniTools. Then, in 2005, [[User talk:Ssg|Ssg]] opened a site with a much more thorough examination of the game data (the site is now hosted at http://ssg.oni2.net). Later that year, this pool of knowledge was painstakingly moved by [[User:Geyser|geyser]] and Ssg to its final home on the newly-opened wiki OniGalore. The purpose of creating the [[OBD|Oni Binary Database]] was to allow collaboration, and soon [[User talk:Neo|Neo]] appeared on the scene, adding his own knowledge that he had been acquiring independently until then, and collaborating on further investigations into the resource formats. Today at least 95% of the binary resource formats are documented byte for byte thanks to their hard work.&lt;br /&gt;
:&#039;&#039;Further reading:&#039;&#039; {{SectionLink|History of the Oni community|2005}}.&lt;br /&gt;
&lt;br /&gt;
===Modding by candlelight===&lt;br /&gt;
Originally, modders had to alter these binary resources manually with hex editors to adapt them to their scripts. [[User:Loser|Loser]] was the first modder to manually edit the game data to go along with his scripting, creating a massively reshuffled Warehouse. Loser&#039;s [[AE:Warehouse|Warehouse mod]] included a global component (modified level0_Final), level-specific binary modifications, and a set of customized scripts that took full advantage of the modified binaries.&lt;br /&gt;
&lt;br /&gt;
Minor binary modding had already occurred before Loser&#039;s Warehouse (thus, while compiling the [[OBD]] database, Ssg had released a version of level0_Final in which all of Konoko&#039;s combos were unlocked). Still, it was the Warehouse mod released in 2005 which first showed the &amp;quot;full&amp;quot; potential of binary modding. It inspired a short-lived initiative called the [[AE:BIP|Binary Improvement Project]] (BIP), aimed at providing upgraded binaries for all levels, not just level0_Final and level1_Final.&lt;br /&gt;
&lt;br /&gt;
BIP was hindered by large upload/download sizes as well as by the potential legal issues involved in distributing entire files from the game; in 2006 it was replaced by a smarter alternative to supplying whole levels, in the form of [[OUP|OniUnPacker]]-based patches, and was termed [[AE:ONK|Oni ni Kanabô]] (ONK). The modder would edit his .dat/.raw files in OUP, and then release a single binary resource patch. This was both bandwidth-efficient and more legal-friendly, but suffered from one major limitation: the indexation and offsets of data vary a lot across the available versions of Oni. Thus, resources exported with OUP were not truly standalone or portable. Also, OUP still lacked the ability to import new resources alongside existing ones.&lt;br /&gt;
&lt;br /&gt;
===Modular modding===&lt;br /&gt;
The advent of Neo&#039;s [[OniSplit]] in late 2007 marked a radical improvement to the community&#039;s modding methods. A command-line tool that runs on Windows and Macs, OniSplit breaks Oni&#039;s resources into standalone files, making mods truly portable across different retail versions of Oni. These resources can be exported to standard formats as text, images, sounds and 3D models, which after editing can be recombined into the level data files that Oni expects, and newly-made resources can also be packed into the level data. To take advantage of this revolution in modding, geyser began preparing an OniSplit-based port of some of the work done on BIP and ONK, which he hoped would be ready for the seventh anniversary of Oni&#039;s release in January 2008.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;[[AE|Seventh Anniversary Edition]]&amp;quot; had major releases in January and July 2008. The tradition continued of using a central modding project to organize a general revision of Oni&#039;s content, as seen on pages like [[AE:Ninja]]. The project then changed hands to [[User:Gumby|Gumby]], who designed a framework and a GUI-based installer that allowed players to selectively install only the modifications that they wanted. This mostly moved the project away from a centralized improvement effort, though select mods were still bundled with the download. Since Oni&#039;s seventh anniversary had come and gone, the mod collection was renamed simply the &amp;quot;Anniversary Edition&amp;quot;, aka the &amp;quot;Edition&amp;quot; or the &amp;quot;AE&amp;quot;. Released in July 2009, the new AE&#039;s framework allowed modders to create their own &amp;quot;[[Making a mod package|mod packages]]&amp;quot;. These could be stored on the {{OMD}}, then downloaded by the player and placed in a certain folder in order to see them in the Installer. Another release was made in May 2010 with more bundled mods and an improved framework.&lt;br /&gt;
&lt;br /&gt;
Nothing new took place on this front until 2013, by which time the project had fallen into [[User:Iritscen|Iritscen&#039;s]] hands due to the retirement of geyser and Gumby. At this time, the release of the new AE included a brand-new Installer written by Alloc which could connect to the Mod Depot, offer all mod packages for download, and update the mods and patches already installed. The program [[XmlTools]] was developed by [[User:Script 10k|s10k]] to allow &amp;quot;patch modding&amp;quot; of resources in order to avoid conflicts when different mods attempted to modify the same resource. The AE&#039;s bundled content was stripped down to only minimal fixes for the first time, making all notable game modifications into optional third-party mods and ceasing any attempt at centralized game data improvement.&lt;br /&gt;
&lt;br /&gt;
===New content===&lt;br /&gt;
Certain game resources were easy enough to reverse-engineer that the community was able to mod them almost from the time of Oni&#039;s release, such as textual resources and textures. Some game resources, however, were complex and involved multiple data types, such as character models, and, most obviously, levels themselves. These took a number of years to decipher.&lt;br /&gt;
&lt;br /&gt;
OniSplit first gained the ability to import new character models in April 2008.&amp;lt;ref&amp;gt;See [[User talk:Neo/Archive2]].&amp;lt;/ref&amp;gt; At first, since the focus was on the technical side of things, pre-existing models were used, either by modifying Oni&#039;s models, or by finding royalty-free models on web sites and converting them to Oni&#039;s 19-bone system. A more dramatic use of the character-importing ability came with the creation of a high-detail Konoko model from scratch in October 2010.&amp;lt;ref&amp;gt;[http://oni.bungie.org/forum/viewtopic.php?id=1727 OCF thread, &amp;quot;Konoko HD&amp;quot;].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A major obstacle with levels was the question of how to generate pathfinding (PF) grids for the AI. Level geometry could be imported fairly easily as of November 2008,&amp;lt;ref&amp;gt;See [[User talk:Neo/Archive5]].&amp;lt;/ref&amp;gt; but AIs could not navigate the level. Manual PF grid creation was first demonstrated with the creation of the Arena level in November 2010.&amp;lt;ref&amp;gt;[http://oni.bungie.org/forum/viewtopic.php?id=1736 OCF thread, &amp;quot;Arena Level&amp;quot;].&amp;lt;/ref&amp;gt; Automatic PF grid generation was introduced to OniSplit around June 2011. More comprehensive demonstrations of the community&#039;s level creation abilities came with [[User:EdT|EdT]]&#039;s level &amp;quot;Muro&#039;s Lair&amp;quot; in August 2011&amp;lt;ref&amp;gt;[http://oni.bungie.org/forum/viewtopic.php?id=2024 OCF thread, &amp;quot;Muro&#039;s Lair - Preview&amp;quot;].&amp;lt;/ref&amp;gt; and [[User:Samer|Samer]]&#039;s level &amp;quot;Wilderness Preserve&amp;quot; in January 2014.&amp;lt;ref&amp;gt;[http://web.archive.org/web/20211202225410/http://oni.bungie.org/forum/viewtopic.php?id=2698 OCF thread, &amp;quot;NEW LEVEL : Chapter 17: Wilderness Preserve - Hasegawa Adventure&amp;quot;].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Work continues in all areas of modding Oni, as well as documenting the modding process.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Engine patching==&lt;br /&gt;
===Finding Dev Mode===&lt;br /&gt;
[[Image:Sfeli Finds Dev Mode.jpg|thumb|225px|right|[[User talk:SFeLi|SFeLi]] documents his discovery in 2006: in examining the binary, he noticed that the list of cheat codes had a gap in it where one cheat had been deactivated – that code was for Developer Mode. For more history, see [[/The tale of Dev Mode|The tale of Dev Mode]].]]&lt;br /&gt;
Engine patching is needed when modders want to do things the game&#039;s scripts and data do not currently allow for, as well as to fix bugs. Bug fixes were the earliest notable achievement in engine patching, originally performed by a patching application that altered the Windows Oni executable directly, but a revolution in this type of modding occurred in 2006 when [[Developer Mode]] was finally discovered in retail Oni&#039;s code, and a means for unlocking it was needed.&lt;br /&gt;
&lt;br /&gt;
The most foolproof method of altering the engine turned out to be replacing a library that Oni loads at runtime. Originally this was done by placing a library next to Oni.exe called vtuneapi.dll, which contained code written by SFeLi that would replace or patch functions in Oni. This library came to be known as the [[Daodan DLL]]. The code for it was ported from assembly language to C by RossyMiles. Eventually the decision was made to instead replace binkw32.dll (the library for playing Oni&#039;s intro and outro movies) because it loaded earlier in Oni&#039;s launch sequence. The DLL was later developed by Gumby and then Alloc, fixing more bugs (some of which result from modern computers running a {{Age|2001|1|29}}-year-old game), as well as adding new features. The DLL&#039;s features and settings are documented on the page for the DLL linked above.&lt;br /&gt;
&lt;br /&gt;
Not long after the Daodan DLL was released for Windows Oni, it was discovered that the Mac versions of Oni still had Dev Mode in them, too. Instead of replacing the Bink Carbon Library that came with Mac Oni, the Omni Group port of the game application to Mac OS X was patched directly with a hex editor. In the fall of 2008, it was discovered that numerous BSL functions and variables that were thought to be removed from Oni for the Mac [[Mac beta 4|before release]] were still present in the code, and the ones which allowed Macs to run (almost) all scripts written for Windows Oni were &amp;quot;unlocked&amp;quot; by EdT using hex edits. Certain changes made by the Daodan DLL for the Windows version were also carried over to the Mac&#039;s [[OMNI|PPC game application]] in hex-edit form with Neo&#039;s assistance. Later, these changes were made in source for Feral Interactive&#039;s [[FERAL|Mac Intel port]].&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
One of the most visible changes to the game that the Daodan DLL (and equivalent hex edits on the Mac side) made possible came about in July &#039;07 when an error in Oni&#039;s AI routines was corrected by Neo, allowing the AI to dodge incoming fire more consistently. Fans had originally been disappointed to see the AI often run blindly into oncoming gunfire. With Neo&#039;s patch in place, previously glitched code now works as intended, allowing the AI to dodge projectiles by taking cover.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
The most ambitious use of engine patching has been to fill in for Oni&#039;s [[Multiplayer|missing multiplayer mode]]. In Windows this was done through the Daodan DLL by the [[Flatline]] project, which saw a rough alpha released in 2010. In Mac OS X, the [[Zukai]] project operated on a Mac equivalent of the Daodan DLL and released a rough alpha in 2015.&lt;br /&gt;
&lt;br /&gt;
===New engine builds===&lt;br /&gt;
A new era in Oni&#039;s life began with the introduction in 2021 of [[OniX]], a rebuild of the game engine. It remains to be seen how far this development work will take Oni, but in theory the possibilities are almost endless.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Community history]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:Trailer/Shapeshifting&amp;diff=46188</id>
		<title>AE:Trailer/Shapeshifting</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:Trailer/Shapeshifting&amp;diff=46188"/>
		<updated>2025-12-26T06:11:42Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;showing off all available character classes (since it&#039;s anecdotal you can also show Motoko and whoever), preferably in some nice place(s), with an orbiting camera&lt;br /&gt;
&lt;br /&gt;
:Is this what you had in mind? http://iritscen.oni2.net/wiki/EdT-Shapeshifting.mov [Updated link. --Iritscen] --[[User:EdT|EdT]] 02:42, 9 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:It takes longer than I thought it would... We must take it down to 4 seconds or so by showing one ONCC for each ONCV: a red Fury with red hair, a blue one with a headband, etc. Another trick would be to show characters 3 by 3 (standing in a triangle, with their backs to the invisible player). Obviously, in both cases, you&#039;d have to use scripts with chr_set_class (and in your case that means emulating the beta or the PC build). As yet another trick, random body sizes should be ruled out. Oh, and the location is rather dull, don&#039;t you think? There&#039;s not much for a scenery except for those (very) distant cars... That&#039;s a no-no. --[[User:Geyser|geyser]] 03:12, 12 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Here&#039;s an alternative (5 seconds): (xvid compressed: 2 MB); (fraps raw: 56 MB)&lt;br /&gt;
:&amp;lt;strike&amp;gt;If you tell where to find the white BGI guys I can record a new vid.&amp;lt;/strike&amp;gt; Found it. &amp;lt;!-- overlooked combo pack, hmpf --&amp;gt;&lt;br /&gt;
:Is the location okay? Or should I place them into the glass hall? --[[User:Paradox-01|Paradox-01]] 12:15, 12 August 2008 (CEST)&lt;br /&gt;
::Yes, Dox, that&#039;s already much better: consider yourself in charge of this &amp;quot;hasta la victoria&amp;quot; ^_^ As for the locations, the lab is nicer than most levels because of the warm sunset colors, but there&#039;s much more to the world than the lab. The glass hall would probably have looked better, but there are a few nicer places in {{C|7}}, {{C|11}}, etc; ideally, you&#039;d avoid empty rectangular areas completely. Oh, and I don&#039;t know what&#039;s up with the white Spartans: who made them? they probably don&#039;t even have reflectivity? &amp;quot;my&amp;quot; BGI troops are black and that&#039;s it.&lt;br /&gt;
::As for the ONCC lineup, your &amp;quot;random&amp;quot; succession actually looks just as good as systematic switching would (3 Strikers, then 3 Furies, etc), if not better, and the random character size is not much of a problem in that case. Maybe &#039;&#039;mix up the ONCCs even more&#039;&#039;, so that TCTF guys and &amp;quot;thugs&amp;quot; are not grouped together, but scattered among Strikers and Elites and Ninjas etc. I also recommend placing the 3 characters in a triangle and orbiting the empty space between them (just place the player below the ground, and use chr_nocollision and cm_height). If that&#039;s too much work (trigonometry...), you can use 4 characters arranged in a square.&lt;br /&gt;
::If you&#039;re courageous, you can also try the following, more in line with my previous suggestion. Set all the random body sizes to 1 (in the ONCC) and use 3 characters: one for females, another for Comguy-like skeletons, and another for the taller Striker-like characters. Then time the ONCC changes so that each of the 3 characters explores its range of ONCC in 4 seconds or so. The advantage of this is that you can actually play animations seamlessly on the characters (walking, taunting, whatever), and since their body size is continuous, it will &#039;&#039;really&#039;&#039; look like they&#039;re &amp;quot;shapeshifting&amp;quot;: like one character morphing from one appearance into the other, not characters replacing each other. See if you&#039;re interested in having it look that way.&lt;br /&gt;
:::[[User:Geyser|geyser]] 16:03, 12 August 2008 (CEST)&lt;br /&gt;
::::No idea about the story behind the [http://web.archive.org/web/20201029095131/http://oni.bungie.org/forum/viewtopic.php?id=508 white (+ not reflective) BGI guys]. Better ask Ed (they are on his oni name space).&lt;br /&gt;
::::&#039;&#039;&#039;empty rectangular areas&#039;&#039;&#039; I can only think about the dream diver&#039;s last room then. You have to remind me in more detail if you want other rooms. ^_^&lt;br /&gt;
::::&#039;&#039;&#039;set all random body sizes to 1&#039;&#039;&#039; Done.&lt;br /&gt;
::::&#039;&#039;&#039;play animations seamlessly on the characters&#039;&#039;&#039; I haven&#039;t a detailed idea how they will be animated nor in what formation (triangle, sure?) they will be then but I will try to show you tomorrow new footage.&lt;br /&gt;
:::::[[User:Paradox-01|Paradox-01]] 19:12, 12 August 2008 (CEST)&lt;br /&gt;
::::&amp;quot;triangle, sure?&amp;quot; - not sure, see above. Square or line are easier to set up than an equilateral triangle, so stick with those if it looks nice already.&lt;br /&gt;
::::&amp;quot;if you want other rooms&amp;quot; - places with any environment particles or furniture close to where the characters are... + Omega Bunker + end of Chapter 7...&lt;br /&gt;
:::::[[User:Geyser|geyser]] 01:47, 13 August 2008 (CEST)&lt;br /&gt;
::::Sorry, it took longer than expected and omega bunker and power failed. The cam &#039;&#039;hits&#039;&#039; obstacles/walls because the animated characters needed a bigger cam radius. That means no particle and lab as location again. There I tried the triangle thing (cam rotates in centre) with a more randomized order. glasshall (fraps raw 64 MB)&lt;br /&gt;
:::::[[User:Paradox-01|Paradox-01]] 15:13, 14 August 2008 (CEST)&lt;br /&gt;
::::1) the URL is very wrong (but I was able to find the video anyway); 2) I don&#039;t have FRAPS installed right now (did you actually buy it, BTW?), so I can&#039;t view raw FRAPS footage; 3) I have no plans to install FRAPS right now, unless I decide it&#039;s worth buying, so maybe upload a compressed version, please, thanks. --[[User:Geyser|geyser]] 16:43, 14 August 2008 (CEST)&lt;br /&gt;
::::Erm, and I don&#039;t buy the &amp;quot;camera hitting obstacles&amp;quot; excuse... maybe I don&#039;t know what the animated characters are about (for all I care combat stances or taunts were already OK, but maybe you&#039;ve come up with something more awesome), but there are a lot of camera parameters you can tweak (cm_height and cm_canter_unarmed, but also gs_fov_set(whatever)). As for obstacles, you can usually shoot them down ^_^ --[[User:Geyser|geyser]] 16:48, 14 August 2008 (CEST)&lt;br /&gt;
:::::compressed vids -- scrap: omega; scrap: power room; simple and nice: glass hall&lt;br /&gt;
:::::&#039;&#039;&#039;shooting the rooms&#039;&#039;&#039; My player soul tells me that it would look horrible wrong in the vid. Omega has a taste of it, and there still the not fading bullet cases... The movements begin nicely but ends asymmetric. So there was more than one reason to cancel this. There are still a lot other vids that need to be done, right? I don&#039;t wanted to waste time with experimenting.&lt;br /&gt;
::::: About fraps: someone else bought it for me.. --[[User:Paradox-01|Paradox-01]] 19:38, 14 August 2008 (CEST)&lt;br /&gt;
::::::&#039;&#039;&#039;I can&#039;t view raw FRAPS footage&#039;&#039;&#039;. Hmm, I would really think there was a solution for that on the PC. Heck, I&#039;m supposed to be able to play raw FRAPS on my Mac with free software (Perian + QT). It doesn&#039;t work only because of a bug in an underlying library. Oh well. I know &#039;dox was trying to help me out by providing extra high quality video, so I appreciate it. The link for the raw vid no longer works, btw, but I d/led the 3 compressed vids and I like glasshall the most, but the others are interesting too. The obstacles that flash past allow the characters to change &amp;quot;magically&amp;quot; while they are out of sight. That wasn&#039;t intentional on your part? Anyway, the quality is high enough to work with, so thanks. If only the footage I was working with last night was that good.&lt;br /&gt;
::::::P.S.: What are you using in place of FRAPS, geyser? Taksi? --[[User:Iritscen|Iritscen]] 19:12, 14 August 2008 (CEST)&lt;br /&gt;
:::::::Yes, I&#039;ve removed the raws. (Geyser and you can&#039;t use it, why keep it then?) --[[User:Paradox-01|Paradox-01]] 19:38, 14 August 2008 (CEST)&lt;br /&gt;
::::::Iritscen, the FRAPS codec is free, but also proprietary, so on PC you typically get it bundled with the FRAPS application. I don&#039;t know how your free Mac software is supposed to play it back. Yes, I use Taksi as a sensible substitute and no, I&#039;m not quite happy with the results right now. The FRAPS recorder is very HDD-efficient, and for Taksi to perform nearly as well I need to find a good alternative codec first. I haven&#039;t yet tried to record FRAPS-like footage as a series of screenshots: the disk usage will be about the same (maybe even better than FRAPS once you ZIP the BMPs together or make a GIF), and lag will in theory be totally absent from the captured video, but if it lags too much, interactivity during the recording phase may be frustrating. I need to free up some disk space and do a test. --[[User:Geyser|geyser]] 19:21, 16 August 2008 (CEST)&lt;br /&gt;
:::::::Well, there&#039;s no legal reason why some Program X can&#039;t read the file format of some Program Y, so I don&#039;t know why you are surprised that there&#039;s a solution for the Mac (we&#039;re the multimedia people, remember?). Apparently FRAPS (&#039;FPS1&#039; is the four-cc) is an mpeg implementation, so a Unix library called ffmpeg can (supposedly) play it, and so, of course, can programs that implement ffmpeg, like VLC and Perian (a QT plug-in). However, it seems that newer FRAPS videos catch a bug in ffmpeg, which may or may not be fixed soon. --[[User:Iritscen|Iritscen]] 23:03, 16 August 2008 (CEST)&lt;br /&gt;
::::::::&amp;quot;there&#039;s no legal reason why some Program X can&#039;t read the file format of some Program Y&amp;quot; - if Program Y is a commercial, closed-source project, the figuring out the detail of its format typically involves reverse-engineering, which is typically discouraged by the end-user license. As for ffmpeg being able to read FRAPS, I&#039;m not sure what to think. --[[User:Geyser|geyser]] 05:20, 19 August 2008 (CEST)&lt;br /&gt;
::::::Dox, you shouldn&#039;t use an invisible midget in plain sight: use a few extra commands to place the (non-clipping) player character below the floor, and compensate by increasing the height of the camera target. Also, I would place the characters much closer to each other (not back-to-back-to-back, but almost: as if they were part of a tight circle of six) - then you can bring the camera closer to them and avoid some obstacles and walls (right now, even in the &amp;quot;glass hall&amp;quot; there&#039;s a console streaking across the foreground at some point, which is not good). Also, don&#039;t forget to adjust cm_canter_unarmed in parallel with cm_height and the FOV: you actually have total control of how the characters are framed and what gets in the way of the camera. In the case of the power room, for example, note that the four pillars are actually pairs of &amp;quot;stalactites&amp;quot; and &amp;quot;stalagmites&amp;quot;, with large gaps in between, intermittently filled by the &amp;quot;power&amp;quot; particles. You can obviously take advantage of this by making the camera orbit higher, looking down at the characters through those gaps: that way, there will never be anything solid hiding the characters and the only thing in the foreground will be some cool-looking particles that will add to the &amp;quot;magical&amp;quot; effect. If you want to push this &amp;quot;magical&amp;quot; idea to the limit, you can place the shapeshifting characters &#039;&#039;in&#039;&#039; the gaps (maybe orbit about only one then), on the scanning bed in Kerr&#039;s lab, in Shinatama&#039;s chair, in place of Zombie Shinatama, etc... You can also give up the idea of orbiting around a static point, and instead do an orbiting close-up on a single character that shapeshifts as it runs down a corridor, performs a cutscene animation or a Trinity Kick or whatever. The possibilities are limitless. Back to the Omega Bunker, you&#039;ve obviously picked the wrong center (half of the time you&#039;re showing Griffin&#039;s very dull office, and the walls are narrow so the camera indeed runs into them very easily) - obviously the characters need to be placed at the center of the bunker, with Shinatama&#039;s pod lowered (it can be rising during the take, to add some dynamics), but with the hologram particles active. The symmetry of the room suggests to use 4 characters rather than 3, and as for the animations, in this case it&#039;s better if the characters don&#039;t move around &#039;&#039;too&#039;&#039; much: taunts or &amp;quot;idle specials&amp;quot; (yawning) are fine; you can bring the camera much closer that way. You can, of course, make the shapeshifting characters travel in some direction, but then it&#039;s better if they stay grouped, e.g., if they&#039;re running together down a corridor/catwalk/bridge. --[[User:Geyser|geyser]] 19:21, 16 August 2008 (CEST)&lt;br /&gt;
:::::::I actually enjoyed the &amp;quot;magic&amp;quot; shapeshifting in the Omega Vault as one set of characters goes behind something and another set appears on the other side (it&#039;s less interesting to see the characters abruptly change out in the open). It wouldn&#039;t take Paradox much more effort, if he starts from the script he used in the Vault, to time it to do that magic trick consistently. The timing&#039;s almost there already. --[[User:Iritscen|Iritscen]] 23:03, 16 August 2008 (CEST)&lt;br /&gt;
::::::::Paradox will agree that when the camera clips right through walls, the &amp;quot;magical&amp;quot; effect is as lame as lame gets. If the &amp;quot;somethings&amp;quot; are the consoles standing around the vault or the &amp;quot;squid&amp;quot; rails, you could have it look better, but timing the shapeshifting consistently with short occlusions is tricky, and longer occlusions are, again, lame. So, not that I don&#039;t like the working principle of Shinatama dolls, but I like the &amp;quot;scramble suit&amp;quot; effect better, thanks. And actually my favorite idea so far is to &amp;quot;scramble&amp;quot; Konoko with female ONCCs during a fast-moving, closely-filmed action sequence (like running up to a ledge and Matrix-jumping off it). --[[User:Geyser|geyser]] 05:20, 19 August 2008 (CEST)&lt;br /&gt;
:::::::::&#039;&#039;Or&#039;&#039;, (and this is easy to do) show Konoko hiding (just standing out of sight) in a room while a patrolling Striker approaches, and playing the checking-her-wrist-communicator animation as if she&#039;s activating something, then having her shift through a few female forms until arriving at a harmless one just as the Striker enters. Falling for the disguise, he ignores her (of course, behind the scenes in the script she has to be set to be on his team or neutral so this works). --[[User:Iritscen|Iritscen]] 22:07, 19 August 2008 (CEST)&lt;br /&gt;
::::::::::I really like that shapeshifting idea as stealth element but that will focus the camera on the Striker and Konoko for too long. This wouldn&#039;t be our needed slideshow anymore. The idea of a single character which performs acrobatics goes into same direction. But in total you came up with enough useful (&#039;&#039;and&#039;&#039; complicated) ideas. ^_^ I&#039;ll post again when I&#039;m done with this. --[[User:Paradox-01|Paradox-01]] 23:37, 19 August 2008 (CEST)&lt;br /&gt;
:::::::::::Here&#039;s a new vid. --[[User:Paradox-01|Paradox-01]] 20:54, 3 September 2008 (CEST)&lt;br /&gt;
::::::::::::Yay, I like it. Are you thinking that this one is better than the one in the trailer v5? I will replace that one with this one in the next draft if you agree. --[[User:Iritscen|Iritscen]] 23:21, 3 September 2008 (CEST)&lt;br /&gt;
:::::::::::::Somehow I&#039;m not fully convinced by vid&#039;s close cam (and last Konoko&#039;s details variate) but characters are animated there so let&#039;s give it a try. The problem will be the caption &amp;quot;more modding power&amp;quot; because characters stands in center now. --[[User:Paradox-01|Paradox-01]] 16:50, 4 September 2008 (CEST)&lt;br /&gt;
::::::::::::::&amp;quot;last Konoko&#039;s details variate&amp;quot;. I don&#039;t think it will be noticeable in the trailer. &amp;quot;The problem will be the caption&amp;quot;. I can deal with that; if nothing else, I will just move the shapeshifting clip to a point after the words have disappeared. --[[User:Iritscen|Iritscen]] 17:20, 4 September 2008 (CEST)&lt;br /&gt;
[[Category:Anniversary Edition]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BGI_characters&amp;diff=46187</id>
		<title>BGI characters</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BGI_characters&amp;diff=46187"/>
		<updated>2025-12-26T06:11:34Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a series of new characters intended for use in adding the entity [[BGI]] to the game, developed by [[User:Samer|Samer]]. They include either completely new concepts or concepts based on the ideas discussed in [[AE:BGI]]. They all share a common color scheme of white, black, and different shades of green/teal. All the playable characters have customized movesets and green contrails and hit impacts.&lt;br /&gt;
&lt;br /&gt;
==BGI Executives==&lt;br /&gt;
*First concept by [[User:Geyser|geyser]] is found [[AE:BGI#Executives|here]].&lt;br /&gt;
*In Samer&#039;s version these are non-fighting characters, wearing suits and rarely seen in the field, if ever.&lt;br /&gt;
*They run BGI, working behind the scenes on grand scales.&lt;br /&gt;
[[Image:BGI Executives 1.jpg]]&lt;br /&gt;
[[Image:BGI Executives 2.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Sarai==&lt;br /&gt;
*[[Sarai]] is a female BGI boss working directly under the Executives&#039; orders.&lt;br /&gt;
*More information on the character can be found by clicking on her name.&lt;br /&gt;
*Mod available [http://oni.bungie.org/forum/viewtopic.php?pid=46869#p46869 here].&lt;br /&gt;
[[Image:Sarai.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
==BGI Agents==&lt;br /&gt;
*These were previously considered the Executives, however in Samer&#039;s version these are called the BGI Agents and they are field agents, the equivalent of the Syndicate [[Comm Trooper]].&lt;br /&gt;
*These guys usually accompany [[Sarai]] as her henchmen; they are strong and quick in addition to being highly technologically skilled and experts in weapons.&lt;br /&gt;
*Mod available [http://oni.bungie.org/forum/viewtopic.php?id=1329 here].&lt;br /&gt;
*The mod includes 2 classes, &amp;quot;Lite&amp;quot; and &amp;quot;Blackops&amp;quot;, Blackops being an upgraded difficulty class. Each class has 3 variants. (6 variants total)&lt;br /&gt;
[[Image:Bgi agents lite.jpg]]&lt;br /&gt;
[[Image:Bgi agents blackops.jpg]]&lt;br /&gt;
&lt;br /&gt;
==BGI Hammer==&lt;br /&gt;
*This giant cyborg has shock generators at the end of his arms, making contact with his punch almost lethal. His techniques include shockwaves and electrical attacks.&lt;br /&gt;
*The character concept was first mentioned by Leus [http://oni.bungie.org/forum/viewtopic.php?pid=19624#p19624 here].&lt;br /&gt;
*:(A major influence of the concept was [[wp:Rhino_(character)|Marvel&#039;s Rhino]] as seen [http://web.archive.org/web/20210324174207/https://www.renderhub.com/rip-van-winkle/rhino-from-marvel-strike-force here])&lt;br /&gt;
*The model and textures are made by [[User:Ltemplar|Ltemplar]].&lt;br /&gt;
*Mod available [http://oni.bungie.org/forum/viewtopic.php?id=2490 here].&lt;br /&gt;
[[Image:BGI Hammer.jpg]]&lt;br /&gt;
&lt;br /&gt;
==BGI Hydra==&lt;br /&gt;
*This female SLD is based on Sarai and would share some of her moveset. Her legs have been mechanically and technologically enhanced giving her the ability to jump high and deliver high damage with kick attacks. Her moveset would include all kick moves, and throws utilizing her legs, with no punches. She would be very fast and agile, but would have low health. She would be considered relatively common, similar to how common furies and tankers are to the Syndicate. &lt;br /&gt;
*The character concept was first mentioned by Leus [http://oni.bungie.org/forum/viewtopic.php?pid=19624#p19624 here].&lt;br /&gt;
*The design of the character took inspiration from [[Hikari]].&lt;br /&gt;
*Mod discussion [http://web.archive.org/web/20160224173752/http://oni.bungie.org/forum/viewtopic.php?id=2936 here].&lt;br /&gt;
[[Image:BGI Hydras.jpg]]&lt;br /&gt;
&lt;br /&gt;
==BGI NinjaBot==&lt;br /&gt;
*A light and quick BGI Bot.&lt;br /&gt;
*Model imported by Samer, original model found [https://downloadfree3d.com/3d-models/weapons/robot/robot-warrior/ HERE] and [http://web.archive.org/web/20210122041553/https://www.domawe.net/2014/09/robot-knight-3d-model-free-download-rf.html HERE].&lt;br /&gt;
*:(Later identified as an Accretian Warrior from the MMORPG [https://www.gameogre.com/reviewdirectory/reviews/RF_Online.php RF Online].)&lt;br /&gt;
*He has a custom TRAC (mix of Ninja&#039;s and Training Droid&#039;s (Comguy) moves).&lt;br /&gt;
*Mod available [http://web.archive.org/web/20170517033156/http://oni.bungie.org/forum/viewtopic.php?id=2438 here].&lt;br /&gt;
[[Image:BGI NinjaBot.jpg]]&lt;br /&gt;
&lt;br /&gt;
==BGI Heavy Bot==&lt;br /&gt;
*The general idea of a &amp;quot;BGI heavy&amp;quot; is by geyser, discussed [[AE:BGI#Candidate|here]].&lt;br /&gt;
*Model imported by geyser (from an unsourced SketchUp model)&lt;br /&gt;
*:(Years later, it was identified as [https://models.spriters-resource.com/pc_computer/unrealtournament2004/asset/286716/ Widowmaker] from UT2004)&lt;br /&gt;
*Textures and UV map correction were done by Ltemplar.&lt;br /&gt;
*Custom TRAC and slight texture modifications by Samer.&lt;br /&gt;
*This character was originally referred to as BGI Trooper but this was changed to BGI Heavy Bot, making the BGI Trooper an armored form of BGI Agent.&lt;br /&gt;
*Mod available [http://web.archive.org/web/20160224193743/http://oni.bungie.org/forum/viewtopic.php?id=2445 here].&lt;br /&gt;
[[Image:BGI Heavy Bot.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BGI]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Talk:Importing_character_models&amp;diff=46186</id>
		<title>Talk:Importing character models</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Talk:Importing_character_models&amp;diff=46186"/>
		<updated>2025-12-26T06:11:13Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==talk==&lt;br /&gt;
&#039;&#039;&#039;For TRBS files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To export an ONCC or TRBS file to Collada format:&lt;br /&gt;
   onisplit -extract:dae dest_dir ..\GameDataFolder\level0_Final\ONCCkonoko_generic.oni&lt;br /&gt;
This will produce an ONCCkonoko_generic.dae collada file in the directory dest_dir plus the tga texture files used by the specified character.&lt;br /&gt;
&lt;br /&gt;
Note: Blender&#039;s Collada importer/exporter is buggy, so you will need to add the options -noanim and -zup when extracting collada files for use with Blender:&lt;br /&gt;
   onisplit -extract:dae dest_dir -noanim -zup ..\GameDataFolder\level0_Final\ONCCkonoko_generic.oni&lt;br /&gt;
-noanim prevents the export of the default idle animation. That&#039;s needed because Blender doesn&#039;t import animated objects correctly.&lt;br /&gt;
-zup exports a collada file with a coordinate system where Z axis points up instead of the default (Y up). This is needed because Blender uses Z up but the importer gets it wrong and convert to something else.&lt;br /&gt;
&lt;br /&gt;
To create a TRBS file, use the following command: &lt;br /&gt;
   onisplit -create:trbs ..\GameDataFolder\level0_Final ONCCkonoko_generic.dae&lt;br /&gt;
This will create the TRBSkonoko_generic.oni file in dest_dir.  &lt;br /&gt;
&lt;br /&gt;
Options include &lt;br /&gt;
   -normals autogenerate normals.&lt;br /&gt;
   -cel generate a shell to give the effect of cel shading.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
   onisplit -create:trbs ..\GameDataFolder\level0_Final -normals ONCCkonoko_generic.dae&lt;br /&gt;
&lt;br /&gt;
For more detailed information about importing characters, please this page: [[Importing character models]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
So, uh, you can&#039;t add a TRBS that you want to test into a folder other than level0_Final, right? I thought I could save time by not having to recompile level0_Final, so I added a TRBS for Griffin that I was testing to level12_Final (&amp;quot;Rooftops&amp;quot;), and it didn&#039;t work. The same TRBS worked in level0_Final, so I know it&#039;s not the file&#039;s fault. I guess only level0_Final loads characters, not the individual levels? This is also true for ONCCs? What about making a plugin with that TRBS.oni file and naming it &amp;quot;level12_griffin&amp;quot;? --[[User:Iritscen|Iritscen]] 19:38, 3 June 2008 (CEST)&lt;br /&gt;
:&#039;&#039;&#039;The same TRBS worked in level0_Final, so I know it&#039;s not the file&#039;s fault.&#039;&#039;&#039; It&#039;s never the file&#039;s fault. There are only program bugs and user errors. In your case there seems to be more of the latter, even though it&#039;s hard to tell because &amp;quot;it didn&#039;t work&amp;quot; is as uninformative as reports get. &lt;br /&gt;
:&#039;&#039;&#039;I guess only level0_Final loads characters, not the individual levels? This is also true for ONCCs?&#039;&#039;&#039; Aren&#039;t you tired of guessing wrong? There is no such limitation, never was. The example up there is Edition-oriented, that&#039;s all. Don&#039;t guess, just say what you did exactly, why doncha?&lt;br /&gt;
:&#039;&#039;&#039;I guess only level0_Final loads characters, not the individual levels? This is also true for ONCCs?&#039;&#039;&#039; Really, dude... The original Oni has no ONCC in level 0, that&#039;s why you could shapeshift to most characters in only a few levels. And what the frack do you mean by &amp;quot;characters&amp;quot;? TRBS?&lt;br /&gt;
::[[User:Geyser|geyser]] 20:55, 5 June 2008 (CEST)&lt;br /&gt;
This may seem hard at first, but once you learn it, it will make life easier for you.&lt;br /&gt;
#Get 0xED https://web.archive.org/web/20110101150641/https://www.macupdate.com/app/mac/22750/0xed&lt;br /&gt;
#Make a duplicate of ONCCgriffin_generic.oni and rename ONCCgriffin_generi1.oni, now open it with 0xED. Scroll to the end of the file. Look for the text TRBSgriffin_body_high, change it to TRBSgriffin_body_hig1 (Make sure that 0xED is in Overwrite mode:  Edit - Write Mode - Overwrite). Save.&lt;br /&gt;
#Rename the TRBS you created to TRBSgriffin_body_hig1.oni&lt;br /&gt;
#Put both these files in the Level1_Final folder.&lt;br /&gt;
#In the Level1_Final folder look for the file BINACJBOCharacter.oni.  Open it with 0xED.do a search for griffin.  You should get the text griffin_generic, you will need to change that to griffin_generi1.  Save.&lt;br /&gt;
#Rebuild Level1&lt;br /&gt;
#Now modify a script to spawn griffin in Level1&lt;br /&gt;
&lt;br /&gt;
That&#039;s it, now whenever you make changes to griffin, it will be quicker to rebuild level1 than level0.  Further, since I added a number of character to BINACJBOCharacter.oni, you will have access to EvilKonoko, Shinatama, Muro, etc.  So if you ever want to change them, you can follow the above process.  &lt;br /&gt;
&lt;br /&gt;
Now I made the changes to the file names very simple.  The point of just changing one character in the name using the hex editor is to prevent the file from changing its size. (In the file itself, there is a number which tell Oni, the size of the file, so if you even add or delete one character, then it will cause a crash, since it is not the correct file size) But in the future, you can make the names more appropriate, by first exporting the ONCC as an .xml file then changing the names of the links to the TRBS, TRMA (textures), TRAC (animations), because OniSplit will calculate the correct file size.&lt;br /&gt;
&lt;br /&gt;
Hope this helps,&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 21:43, 3 June 2008 (CEST)&lt;br /&gt;
:I think it does help, thanks Ed. Do I understand this right? Is this going to replace the existing Griffin character with the one I added to level1_Final? But only for level 1, of course. --[[User:Iritscen|Iritscen]] 22:59, 3 June 2008 (CEST)&lt;br /&gt;
::Ed&#039;s instructions don&#039;t technically replace the &amp;quot;existing Griffin character&amp;quot; (of course this depends on what exactly you mean by that). Since the new ONCC and TRBS are not named the same as the original ones, the new stuff and the old stuff will exist alongside each other and never interfere. This is also why Ed has to go to the trouble of modifying BINACJBOCharacter - because the new ONCC does &#039;&#039;not&#039;&#039; override the old one and has to be summoned by its own, different name.&lt;br /&gt;
::Personally I think the most straightforward thing to do when testing the visual aspect of a new character is to just import a [[AE:Plugins|plugin]] with the ONCC and TRBS, shapeshift the player and use the manual camera. If you want to see the new Griffin controlled by AI, then make sure the name of the ONCC in the plugin is the &#039;&#039;same&#039;&#039; as the original and that the plugin is loaded &#039;&#039;before&#039;&#039; the level#_Final.dat where the original Griffin is. Take [http://geyser.oni2.net/edition/plugins/level0_Characters.zip THIS] one for example.&lt;br /&gt;
::Then you only need to be careful about a few things. Like, if you want your ONCC to be a level0 plugin, then make sure you have globalized all the crucial dependencies of the ONCC (TRMA, TXMP, TRAC, TRAM, TRAS, TRSC). And of course, if you run into trouble, try to file a report so we can tell you where you messed up.&lt;br /&gt;
:::[[User:Geyser|geyser]] 20:55, 5 June 2008 (CEST)&lt;br /&gt;
:Oh, and Ed: you&#039;re saying confused/confusing and possilby wrong things up there about not messing up file sizes. The header of an .oni file doesn&#039;t actually know or care about the total file size. The only thing you should care about for an ONCC is the offsets of the names of the dependencies, at the end (one offset for every name). That&#039;s where you can&#039;t allow to make the name of the linked-to TRBS longer without shifting all the following dependencies of the ONCC and updating their name offsets consistently. As for the name of the ONCC itself, you can rename the file to anything at all, like ONCCgriffin_generic_fubar.oni : OniSplit will ignore the internal name of the root instance and use the filename instead. And as for the ONCC name in [[CHAR]], it&#039;s a fixed-size array (char[64]), so virtually any new name will work, as long as you take care of the null char after the ONCC name.&lt;br /&gt;
::[[User:Geyser|geyser]] 21:57, 5 June 2008 (CEST)&lt;br /&gt;
:::Maybe I&#039;m confused, but, if you look at offset 0x0030 in an ONCC or TRAC .oni file, I thought that offset pointed to the end of the file.  For example ONCCkonoko_generic.oni has 8017 and that points to 0x1780, ONCCbarabus is A016 that points to 0x16A0.  Also, that&#039;s what I documented at [[OBD_talk:TRAC]] and if that point was incorrect, I&#039;m sure someone would have corrected it.  So based on that information, I made the statement about not messing up the file size, while using a hex editor. Also, I knew about being able to rename the file to anything else, that&#039;s what I did with the files related to the Motoko character.&lt;br /&gt;
:::[[User:EdT|EdT]] 23:00, 5 June 2008 (CEST)&lt;br /&gt;
----&lt;br /&gt;
EdT, you uploaded this picture a while back; isn&#039;t it useful in this article (or somewhere?): Image:3D rotationpose.jpg --[[User:Iritscen|Iritscen]] 04:58, 5 October 2008 (CEST)&lt;br /&gt;
:Its probably not useful anymore, since Onisplit can now export the character in an upright pose.  [[User:EdT|EdT]] 03:57, 6 October 2008 (CEST)&lt;br /&gt;
::Well, I will mark for deletion, then; if you change your mind, the image probably won&#039;t actually be gone anytime soon. --[[User:Iritscen|Iritscen]] 05:53, 6 October 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Rewriting of &#039;&#039;&#039;AE: Importing character models&#039;&#039;&#039;&lt;br /&gt;
* Maybe use some stuff Samer wrote [http://web.archive.org/web/20160224202204/http://oni.bungie.org/forum/viewtopic.php?id=2423 over there].&lt;br /&gt;
* Let&#039;s see where we can use links instead of copying stuff that is already on this wiki.&lt;br /&gt;
&lt;br /&gt;
==exporting a character from Oni==&lt;br /&gt;
===step 1: installing needed tools===&lt;br /&gt;
* .NET Framework 2 or higher&lt;br /&gt;
* Oni Anniversary Edition (AE)&lt;br /&gt;
* Vago&lt;br /&gt;
&lt;br /&gt;
===step 2: choosing a pose===&lt;br /&gt;
* default orientation&lt;br /&gt;
* -noanim pose&lt;br /&gt;
* Idle pose&lt;br /&gt;
* Any pose&lt;br /&gt;
&lt;br /&gt;
===step 3: doing the export===&lt;br /&gt;
* via command line&lt;br /&gt;
* via onisplit GUI (Vago)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==creating a character in Blender==&lt;br /&gt;
&lt;br /&gt;
==creating a character in Mod Tool==&lt;br /&gt;
===step 1: 19 body parts===&lt;br /&gt;
* bring together new stuff or do some bastardizing&lt;br /&gt;
* create overlaps&lt;br /&gt;
* avoid discountinuties (&#039;&#039;blue lines&#039;&#039;)&lt;br /&gt;
* triangulate the meshes&lt;br /&gt;
&lt;br /&gt;
===step 2: level of detail (LOD)===&lt;br /&gt;
* create 5 models differing in level of detail (basically the triangle number)&lt;br /&gt;
===step 3: hierarchy===&lt;br /&gt;
* move and rotate center&lt;br /&gt;
* remove keyframes&lt;br /&gt;
* build hierarchy&lt;br /&gt;
===step 4: UVs===&lt;br /&gt;
* [...]&lt;br /&gt;
===step 5: textures===&lt;br /&gt;
* [...]&lt;br /&gt;
*&lt;br /&gt;
===step 6: error check===&lt;br /&gt;
* [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==importing a character to Oni==&lt;br /&gt;
===step 1: TRBS // character 3D model===&lt;br /&gt;
* cel-shading&lt;br /&gt;
* [...]&lt;br /&gt;
===step 2: TRMA // character texture collection===&lt;br /&gt;
* [...]&lt;br /&gt;
===step 3: TXMPs // character textures===&lt;br /&gt;
* [...]&lt;br /&gt;
===step 4: ONCC // character main file===&lt;br /&gt;
* [...]&lt;br /&gt;
===step 5: BINACJBOCharacter // character spawn collection===&lt;br /&gt;
* [...]&lt;br /&gt;
===step 6: AE package===&lt;br /&gt;
* [...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==additional changes==&lt;br /&gt;
===animation contrails: white and colored ones===&lt;br /&gt;
===impact effects===&lt;br /&gt;
===Daodan stuff===&lt;br /&gt;
===sounds===&lt;br /&gt;
===?===&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=46185</id>
		<title>AE talk:OTA</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=46185"/>
		<updated>2025-12-26T06:11:06Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This area is for reporting or documenting crashes or other bugs for [[AE:OTA|Oni Team Arena]].&lt;br /&gt;
&lt;br /&gt;
==To-do list==&lt;br /&gt;
User &amp;quot;bravebeat&amp;quot; on Discord alerted us to several issues:&lt;br /&gt;
*Some levels&#039; OTAs listed [[AE:OTA#Where_do_I_get_it.3F|HERE]] are flat-out missing as AE packages:&lt;br /&gt;
::&#039;&#039;&#039;OTA 1.0&#039;&#039;&#039;&lt;br /&gt;
::Science Prison&lt;br /&gt;
::Regional State&lt;br /&gt;
::Cargo Hangars&lt;br /&gt;
::Musashi Manufacturing&lt;br /&gt;
::Dream Lab&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;OTA 1.1&#039;&#039;&#039;&lt;br /&gt;
::Atmospheric Conversion Center&lt;br /&gt;
::Mountain Compound&lt;br /&gt;
*The packages on Mod Depot are sometimes v1.1 and sometimes v1.2. What changed in 1.2? Is this even documented? bravebeat says that there are different/missing menus in v1.2.&lt;br /&gt;
*Multiple errors in the read-mes. bravebeat says that the F-keys listed for things like &amp;quot;start record&amp;quot; are wrong, plus there is a disconnect between geyser&#039;s old read-mes and what is written on the Depot, e.g. missing steps in the Depot read-mes. For details, see the #modding-chat channel in Discord and look at the pinned message where I linked to the start of the conversation with bravebeat.&lt;br /&gt;
*You can shapeshift bots to any character, but with globalization in effect, you can choose classes that don&#039;t exist in the level natively, so they lack the proper health and melee profile, at least upon respawning.&lt;br /&gt;
::It&#039;s debateable if this is a bug or a &amp;quot;feature&amp;quot;. The only ways to avoid this are not to play OTA in the AE or not to shapeshift to those characters that are not native to the level.&lt;br /&gt;
--[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 01:12, 23 March 2021 (CET)&lt;br /&gt;
&lt;br /&gt;
==Crash reports==&lt;br /&gt;
:I crashed on compound even with the Daodan dll in. I was using the plugin version of the EXE if it matters&lt;br /&gt;
::[[User:Gumby|Gumby]] 00:00, 27 May 2008 (CEST)&lt;br /&gt;
:Did you use the cache fix? I don&#039;t know if it was fixed in Daodan dll. I know for sure it&#039;s fine with the cache fix EXE. It&#039;d be troublesome if the plugin EXE didn&#039;t have the cache fix...&lt;br /&gt;
::[[User:Your_Mom|Your_Mom]] 10:47, 27 May 2008 (PST)&lt;br /&gt;
:Indeed, not many people are aware of the issue with the pathfinding grid cache, and I&#039;m not sure who released the plugin-ready EXE. Could you guys link to it?&lt;br /&gt;
:The latest version of the [[Daodan DLL]] takes care of the pathfinding grid cache (and enables plugins, too), so you can use it with the original &amp;quot;Engrish&amp;quot; EXE.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
:Another issue that systematically causes crashes is Loser&#039;s latest contribution to the Edition (TRAM hacks). Roll back to the New Year&#039;s release and report.&lt;br /&gt;
:I feel really sorry for not tracking down those of the upgrades that cause memory corruption, but Loser&#039;s TRAM are a lot of stuff to go through. Patience...&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
:The plugin EXE was posted by EdT [http://web.archive.org/web/20201029095131/http://oni.bungie.org/forum/viewtopic.php?id=508 here]. The plugin EXE is hosted on Paradox&#039;s oni2.net site.&lt;br /&gt;
::[[User:Your_Mom|Your_Mom]] 22:55, 30 May 2008 (PST)&lt;br /&gt;
:Sorry to interrupt here, but I am working on new version of combat system now, hopefully less bugged. So don&#039;t hang with my old stuff, which is not worth your magnifiency, geyser ^_^.&lt;br /&gt;
:Also, have you please fixed the last projectile dodge issue?&lt;br /&gt;
:P.S.: How many times I will have to write that I HAVE PROVIDED PATCH FOR THAT COMCOMthrow_fw_tgt crash ??? That is like 14th time i see that bug mentioned(altough here it is a bit hidden ^_-).&lt;br /&gt;
::[[User:Loser|Loser]] 09:27, 1 June 2008 (CEST)&lt;br /&gt;
:Please don&#039;t tell me about &amp;quot;magnificiency&amp;quot;, that&#039;s annoying (no, really, it was fun the first few times, but two years later, it&#039;s &#039;&#039;really&#039;&#039; getting old...) ^_^ I just want the Edition to be reasonably non-controversial and crash-free. So in the future it would be nice if your stuff is thoroughly tested for crashes or even slightly annoying features (you know, like when you hit a guy from behind and he falls backwards and dominoes/hurts/kills you). Also try to split your patches in logical groups that can be installed optionally. Then we can really distribute &amp;quot;something everyone can enjoy&amp;quot;.&lt;br /&gt;
:&#039;&#039;&#039;I still can&#039;t get a solid fix on Muro&#039;s position...he must be using the chaos to cover his escape.&#039;&#039;&#039; As for the projectile dodging, we&#039;d love to fix it, but it&#039;s harder to find than the projectile awareness bug was. We guess it&#039;s the very same kind of bug in the original source, but this doesn&#039;t help us when digging through disassembly. So we keep coming back to looking for it, and we&#039;ll find it eventually, but no success so far. On another note, we think we know how to enable the sprinting variant for the AI, but we haven&#039;t tried it out yet. One thing we &#039;&#039;have&#039;&#039; tried out (but haven&#039;t included in the Daodan) is making dying AI keep their MELE, so they can be revived (this allows Oni to keep track of frags and damage dealt, with OTA deathmatch in mind).&lt;br /&gt;
:P.S. It&#039;s your &#039;&#039;patch&#039;&#039; that&#039;s hidden, not the complaints. This is the first time I hear of it, honestly. Remember that I&#039;m staying away from {{OCF}}, so for critical stuff it would be nice if you could post a heads-up here, so I can &#039;&#039;finally&#039;&#039; release a crash-free version of the Edition. The Russians have been complaining a lot about that crashiness, and I really wasn&#039;t aware of your patch. Besides, are you 100% positive that COMCOMthrow_fw_tgt was the &#039;&#039;only&#039;&#039; TRAM in your set that caused crashes? Isn&#039;t there a SWAT throw as well? Actually, I have doubts about every single one of your throws, because what you do to their RAW parts is not clearly legal, and may cause memory corruption. And memory corruption typically comes up as a crash at a later time, in ways seemingly unrelated to the TRAM that messed up Oni. Please be aware of that when modding: look out for those &amp;quot;delayed&amp;quot; crashes, and make sure you know (or at least document) exactly what you&#039;re doing and why.&lt;br /&gt;
:On another note, your character/wall collision is pure genius, but sometimes it looks like you spend &amp;quot;too much&amp;quot; time experimenting and &amp;quot;too little&amp;quot; time consolidating the knowledge so far into &amp;quot;something everyone can enjoy&amp;quot;. Maybe that&#039;s my fault, but we still don&#039;t have an &amp;quot;official&amp;quot; upgrade for the CMBT and MELE collections (probably one that adds the new profiles instead of replacing old ones; that&#039;s better for modularity and backwards compatibility). It could also be a good idea to start developing applications for the &amp;quot;smart console behavior&amp;quot;, the &amp;quot;sidekick&amp;quot; NEUT, etc, not as abstract features but within actual missions (I agree that I probably have to play an active part in this, even if it&#039;s only by giving suggestions to others ^_^ ).&lt;br /&gt;
::[[User:Geyser|geyser]] 14:15, 1 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==Bug reports==&lt;br /&gt;
===Players that just stand and stare===&lt;br /&gt;
:This apparently has to do with the number of &amp;quot;duels&amp;quot; that Oni can handle simultaneously. 2x7 players usually work out fine, but for more players it can happen that some characters are singled out and can&#039;t start a fight with anyone, because the rest of the players already form a network that has the maximum number of &amp;quot;duels&amp;quot;. This could be fixed by making some players forget their opponents, allowing for new awareness/duel links to be created.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
===Read-Me out of date===&lt;br /&gt;
:This is minor to us but is bound to be misleading some newbies from time to time: the read-me&#039;s Contact info lists an old board address at mukade.bungie.org.  At least, that&#039;s the case for the Rooftops OTA 1.1 pack. While I&#039;m nitpicking, why is the Feature Highlights section, which explains what OTA actually does, at the very bottom? I imagine you&#039;d want that and the Project Info section to be right up top before the Installation Instructions. Meh. Maybe something to correct before a 1.2 release, if there ever is one. --[[User:Iritscen|Iritscen]] 19:07, 24 August 2008 (CEST)&lt;br /&gt;
:The readme was authored during the release of 1.1 for PC, which occurred before the forum moves. Consistently updating the readmes with new links (OCF has moved twice since and might move one more time soon) would have been crazy. I documented the conversion rules for the old forum links [[OniGalore:Community portal|HERE]] &#039;&#039;&#039;[These have been removed from the portal page because the archive of the old forum is down. See [[Special:Permalink/24516|this revision]] of the page for the conversion rules he is referring to. -Iritscen]&#039;&#039;&#039;. Also, as the people become more aware of OniGalore, it is natural that the accurate contact information should be provided first and foremost here on the wiki, accessible through a quick search for OTA. --[[User:Geyser|geyser]] 00:53, 25 August 2008 (CEST)&lt;br /&gt;
:New releases should of course have accurate readmes. In that sense, the inaccurate information merely means that there hasn&#039;t been any consistent work on OTA in months and years - practically since Your_Mom discontinued his porting work. And I don&#039;t know if there are committed people ready to port OTA across levels today, but the next core from me (if any) will not be 1.2 (don&#039;t we already have that one?), but 2.0 or greater, taking in account the Dev Mode features and OniSplit-powered installation. --[[User:Geyser|geyser]] 00:53, 25 August 2008 (CEST)&lt;br /&gt;
:The stuff in the readme is listed in the order which naturally occurred to me at the moment of writing: people who download the arena typically couldn&#039;t care less about who we are and what we think is cool about the Arena - they&#039;re well aware of what it is supposed to look/feel like, and they just want to get it up and running. I might be wrong, but excessive humility on the part of the modder is really the last thing I&#039;d complain about if I was an end-user. That stuff at the bottom? it&#039;s for salesmen! --[[User:Geyser|geyser]] 00:53, 25 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Resolved issues==&lt;br /&gt;
===Insufficient pathfinding grid cache===&lt;br /&gt;
:This used to cause crashes for battles spanning a few [[AKVA|BNV]]s cumulating too many pathfinding grid squares. Typically, this happens in the TCTF parking lot, in some areas of the Airport, and in some multi-storey areas of the Bio-Research Lab. The fix is either to lock out a few areas (e.g. lock the doors between the TCTF parking lot and the main building) or, ultimately, to increase the size of the pathfinding grid cache. This has been available as an in-place patch for the EXE, and is now handled by the Daodan DLL.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
===Inconsistent pathfinding data===&lt;br /&gt;
:The only example of that so far is the main gate of the Bio-Research Lab. Even though it&#039;s closed, the pathfinding graph is the same as if it was wide open. Therefore, the AI may attempt to pathfind through it, and Oni may crash when they are blocked by the gate. This used to occur in the acid room: enemies falling to the &amp;quot;garage&amp;quot; side would start running out the garage and around the block and through the main gate and up the aisle and into the lobby and up the stairs and into the acid room again. The obvious fix to this was to lock a few doors.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Category:Obsolete AE mods]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User_talk:EdT/Archive1&amp;diff=46184</id>
		<title>User talk:EdT/Archive1</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User_talk:EdT/Archive1&amp;diff=46184"/>
		<updated>2025-12-26T06:10:55Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:Hi Ed,&lt;br /&gt;
:Here&#039;s a tentative fix for the mismapped enter key in the OSX port:&lt;br /&gt;
:*go to the offset &#039;&#039;&#039;0x1B6050&#039;&#039;&#039;&lt;br /&gt;
:*you should see &#039;&#039;&#039;0D 00 00 0A&#039;&#039;&#039; (Oni&#039;s &amp;quot;enter&amp;quot; bound to external &amp;quot;return&amp;quot;)&lt;br /&gt;
:*change it to &#039;&#039;&#039;0D 00 00 0D&#039;&#039;&#039; (Oni&#039;s &amp;quot;enter&amp;quot; bound to external &amp;quot;enter&amp;quot;)&lt;br /&gt;
:It should work. Please confirm.&lt;br /&gt;
::[[User:Geyser|geyser]] 04:29, 2 January 2007 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
:Second, open your &#039;&#039;&#039;key_config.txt&#039;&#039;&#039;, and make it look something like this:&lt;br /&gt;
 unbindall&lt;br /&gt;
 &lt;br /&gt;
 bind w to forward&lt;br /&gt;
 bind a to stepleft&lt;br /&gt;
 bind s to backward&lt;br /&gt;
 bind d to stepright&lt;br /&gt;
 bind q to swap&lt;br /&gt;
 bind e to drop&lt;br /&gt;
 bind f to punch&lt;br /&gt;
 bind c to kick&lt;br /&gt;
 &lt;br /&gt;
 bind space to jump&lt;br /&gt;
 bind leftshift to crouch&lt;br /&gt;
 &lt;br /&gt;
 bind mousebutton1 to fire1&lt;br /&gt;
 bind mousebutton2 to fire2&lt;br /&gt;
 bind mousebutton3 to fire3&lt;br /&gt;
 bind mousexaxis to aim_LR&lt;br /&gt;
 bind mouseyaxis to aim_UD&lt;br /&gt;
 &lt;br /&gt;
 bind fkey1 to pausescreen&lt;br /&gt;
 bind v to lookmode&lt;br /&gt;
 bind z to walk&lt;br /&gt;
 bind leftcontrol to action&lt;br /&gt;
 &lt;br /&gt;
 bind tab to hypo&lt;br /&gt;
 bind r to reload&lt;br /&gt;
 bind fkey12 to screenshot&lt;br /&gt;
 &lt;br /&gt;
 #bind p to forward&lt;br /&gt;
 #bind l to stepleft&lt;br /&gt;
 #bind apostrophe to stepright&lt;br /&gt;
 #bind semicolon to backward&lt;br /&gt;
 #bind o to swap&lt;br /&gt;
 #bind leftbracket to drop&lt;br /&gt;
 #bind k to punch&lt;br /&gt;
 #bind comma to kick&lt;br /&gt;
 #bind enter to walk&lt;br /&gt;
 &lt;br /&gt;
 bind p to man_cam_move_forward&lt;br /&gt;
 bind l to man_cam_move_left&lt;br /&gt;
 bind apostrophe to man_cam_move_right&lt;br /&gt;
 bind semicolon to man_cam_move_backward&lt;br /&gt;
 bind leftarrow to man_cam_pan_right&lt;br /&gt;
 bind rightarrow to man_cam_pan_left&lt;br /&gt;
 bind rightshift to man_cam_move_up&lt;br /&gt;
 bind rightcontrol to man_cam_move_down&lt;br /&gt;
:Allow for some variations, of course. Adopt, adapt and improve.&lt;br /&gt;
:The basic idea is that the left-handed controls &#039;&#039;are&#039;&#039; mapped properly.&lt;br /&gt;
:And we never use them. So? let&#039;s map them to &#039;&#039;&#039;man_cam_...&#039;&#039;&#039; instead!&lt;br /&gt;
:&#039;&#039;&#039;leftarrow&#039;&#039;&#039; and &#039;&#039;&#039;rightarrow&#039;&#039;&#039; are consistent with the auto-bound &#039;&#039;&#039;uparrow&#039;&#039;&#039; and &#039;&#039;&#039;downarrow&#039;&#039;&#039;.&lt;br /&gt;
:You may want to use &#039;&#039;&#039;pageup&#039;&#039;&#039; and &#039;&#039;&#039;pagedown&#039;&#039;&#039; instead of &#039;&#039;&#039;rightshift&#039;&#039;&#039; and &#039;&#039;&#039;rightcontrol&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
:Note that you&#039;ll hardly ever use anything but the equivalent of WASD, i.e.:&lt;br /&gt;
:*man_cam_move_forward&lt;br /&gt;
:*man_cam_move_left&lt;br /&gt;
:*man_cam_move_right&lt;br /&gt;
:*man_cam_move_backward&lt;br /&gt;
:Why? Because in camera mode 2 (press Enter twice), you can aim up, and then &#039;&#039;&#039;man_cam_move_forward&#039;&#039;&#039; makes you go up much faster than &#039;&#039;&#039;man_cam_move_up&#039;&#039;&#039; would. Same for going down.&lt;br /&gt;
&lt;br /&gt;
:The only occasion on which you&#039;ll use the other 6 keys is when you want to:&lt;br /&gt;
::move the camera away so as to get a nice remote view&lt;br /&gt;
::&#039;&#039;and&#039;&#039; keep mouse control over Konoko&lt;br /&gt;
:That&#039;s what camera mode 1 is for. Then you need the whole lot. And you got it.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:55, 4 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Just wanted to thank you for the work on the modding tutorials (TXMP, adding char.s). That&#039;s some really important info. Also, I had a thought about the topic I brought up above, glass-breaking. Since the hack makes the dust particle break glass, can&#039;t we mod a move to generate dust if we want that move to break glass? It&#039;s still my goal at some point to see a mod that allows Konoko to break glass when she has a weapon in hand, and punches with it. I noticed we have [[OBD:TRAM/raw0x2C|specific documentation]] that shows where an animation can generate a particle. I bet we could just mod that to generate the glass-breaking particle. What do you think? --[[User:Iritscen|Iritscen]] 15:47, 17 April 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I&#039;ve been meaning to get the tutorials up, hopefully, it will help others to do more modding.&lt;br /&gt;
&lt;br /&gt;
I think it is a good idea, I found the post with Loser&#039;s glass breaking hack:&lt;br /&gt;
http://web.archive.org/web/20220524161706/http://oni.bungie.org/forum/viewtopic.php?pid=2856#p2856&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
----&lt;br /&gt;
:[http://geyser.oni2.net/edition/characters/cosplay_motoko.zip HERE] is what I meant by more creative choice of body part meshes. She still looks like a cosplayer, but not a completely lame one at that. Obviously I haven&#039;t touched the textures at all.&lt;br /&gt;
::[[User:Geyser|geyser]] 01:47, 5 May 2008 (CEST)&lt;br /&gt;
----&lt;br /&gt;
:And another thing. [http://geyser.oni2.net/edition/characters/cosplay_level.zip HERE] you&#039;ll find a dat/raw/sep set that you can place in your GameDataFolder (use the ones with the &amp;quot;Mac&amp;quot; suffix; PC dudes would of course use the ones with the &amp;quot;PC&amp;quot; suffix).&lt;br /&gt;
:In order for Oni to load those plugins, you have to modify a byte in the engine (both on Mac and on PC). Here are the instructions, let us know if it works on the Mac:&lt;br /&gt;
:*for the Mac executable (OMNI):&lt;br /&gt;
::go to 0x0E2D19 and change 7A to 9A&lt;br /&gt;
:*for the PC demo executable:&lt;br /&gt;
::go to 0x021148 and change 00 to 01&lt;br /&gt;
:*for the PC retail executable (&amp;quot;standard&amp;quot; a.k.a. &amp;quot;eastern&amp;quot; a.k.a. [http://geyser.oni2.net/EXE/pc.east/ THIS] one):&lt;br /&gt;
::go to 0x0206A8 and change 00 to 01&lt;br /&gt;
:In case you&#039;re wondering: yes, it&#039;s a little big revolution. There are a few limitations, but mods will be much more modder- and user-friendly with this feature.&lt;br /&gt;
::[[User:Geyser|geyser]] 04:41, 5 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wow! &lt;br /&gt;
&lt;br /&gt;
I made the change in the Oni and the plugin loaded as you can see here:&lt;br /&gt;
:Got Level Info for level0_CosplayMac.dat.&lt;br /&gt;
:Valid Level level0_CosplayMac.dat&lt;br /&gt;
&lt;br /&gt;
EDIT: I see what it does, it loads the cosplay Konoko as a global character.  &lt;br /&gt;
&lt;br /&gt;
EDIT2: Are you limited to a single character or could you, for example, make a plugin with all 3 versions of the Masterchief, plus any other new content? &lt;br /&gt;
&lt;br /&gt;
I look forward to more info on how this can be done.&lt;br /&gt;
&lt;br /&gt;
I can see how this will make it much easier for the end user, just put the files in the GameDataFolder and you&#039;re done!&lt;br /&gt;
&lt;br /&gt;
Also, thanks for the cosplay model.  I still have lots to learn about using the right meshes. But It seems the facets in my Motoko model are a result of the FBX converter.  I did another extract of ONCCk4_K and then converted the .dae to fbx.  If you&#039;re interested, you can see the results here; &amp;lt;nowiki&amp;gt;http://edt.oni2.net/3D/ONCCk4_K.zip&amp;lt;/nowiki&amp;gt; (dead link)&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:55, 5 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Wow, geyser, you are full of surprises. I do have to say that it didn&#039;t work for me last night. I changed the byte to 9A, verifying that it was 7A to begin with. I put the cosplay .dat/.raw/.sep files in the GDF. But when I loaded a level and used F8, I didn&#039;t find any new Konokos. Still, it worked for Ed, so that means I probably just did something wrong. This is really amazing. We demand details! How does this work, what are the limitations, etc. And thanks! --[[User:Iritscen|Iritscen]] 15:28, 6 May 2008 (CEST)&lt;br /&gt;
:Ed: As for the FBX conversion, I guess you&#039;ll have to tell us what you&#039;re converting &#039;&#039;with&#039;&#039;. It looks like the model is not completely faceted, but was auto-smoothed with a rather small smoothing angle. You should be able to fine-tune that angle or to switch to full smoothing.&lt;br /&gt;
:It&#039;s good to hear that the plugin worked for you. There is no limitation as for what a plugin can hold. You can, for example, split level0_Final into several smaller bundles/folders, with modularity and quick import in mind. You can also have level-specific plugins (e.g., OBJC).&lt;br /&gt;
:There is, however, a limitation as for the number of .dat files detected by Oni at startup (and also as for the number of .dat files loaded simultaneously). The former limitation is the most relevant to you since OMNI&#039;s engine can only &amp;quot;see&amp;quot; 16 .dat files, which is quite minimal.&lt;br /&gt;
:Iritscen: try to at least fake some patience, for the sake of our [[friend]]ship. It works simply because the public versions of Oni have an internal test, whereby they only accept &amp;quot;_Final.dat&amp;quot; as valid level files: we&#039;ve merely disabled that check. And it&#039;s not Russian power because I&#039;m just the middleman here.&lt;br /&gt;
:As for you not seeing any new Konokos (technically, it&#039;s a Motoko we&#039;re talking about), Motoko is supposed to be at the very start of the F8 loop (meaning that after enabling shapeshifting you&#039;ll get her with F8,Shift+F8 or Shift+F8,F8. You can also check startup.txt to see if the .dat was loaded correctly.&lt;br /&gt;
:Once the engine is patched to allow for non-Final files, you can use OniSplit to create [[dat|instance files]] with any name (although you still can&#039;t use &amp;quot;_tools&amp;quot; or &amp;quot;_Tools&amp;quot;; there&#039;s another check for that, which we consider a minor limitation).&lt;br /&gt;
:It is critical that you create the files with OniSplit. Renaming them by hand won&#039;t work, because the name of the file is hashed and used throughout the [[dat|instance file]] as a key (BTW, Ed, looks like Dox and you did double work here; sorry).&lt;br /&gt;
:Of course, the files are sepness-specific, so if you mean to distribute plugins to both Mac and PC users, you&#039;ll have to build a dat/raw/sep set &#039;&#039;and&#039;&#039; a dat/raw set like I did for the example above (and the examples below).&lt;br /&gt;
:To get a feel for the possible applications and for the limitations of OMNI&#039;s engine, try the following two plugins.&lt;br /&gt;
:*a global &amp;quot;BGI&amp;quot; plugin featuring a bunch of Spartans and the tentative machinegun thingie:&lt;br /&gt;
::http://geyser.oni2.net/edition/plugins/level0_BGI.zip&lt;br /&gt;
:*a local instance file supposed to alter the character lineup in {{C|2}}:&lt;br /&gt;
::http://geyser.oni2.net/edition/plugins/level2_OBJC.zip&lt;br /&gt;
:If you place both of these in your GDF and then look at the startup file (and at the Load Game dialog), you should notice that level9_Final ( {{C|7}} ) failed to load (and maybe other chapters if you&#039;ve kept the Cosplay around). That&#039;s the 16-instance-file limitation issue. If we can&#039;t fix OMNI&#039;s engine, you&#039;ll have to play Oni one &amp;quot;act&amp;quot; at a time (something like 6 chapters + level0 + plugins).&lt;br /&gt;
:All limitations aside, the effect of the plugins depends on the order in which they are listed and on the type of instance inside. The characters and weapon in level0_BGI end up &#039;&#039;before&#039;&#039; those in level0_Final, but it&#039;s the BINACJBOCharacter from &#039;&#039;level2_OBJC&#039;&#039; that is used, even though level2_OBJC is loaded &#039;&#039;after&#039;&#039; level2_Final. Not too intuitive, but hopefully there are firm rules that apply here.&lt;br /&gt;
::[[User:Geyser|geyser]] 04:53, 8 May 2008 (CEST)&lt;br /&gt;
:My problem with the machine gun is that it has non-planar quads triangulated the wrong way (meaning 17secs didn&#039;t really do his job as a modeler), and that it has a rather plain look and feel. See it as just an example.&lt;br /&gt;
:The Spartans have a few remaining issues (apart from them being stolen from Halo, of course).&lt;br /&gt;
:*The downsampled and posterized texture (that can only be fixed by remapping the whole thing; then again, the env mapping does a good job at concealing the ugly bits).&lt;br /&gt;
:*The awkward look of the shoulder joints while aiming (that&#039;s an Oni-wide animation issue, even if it looks especially bad here; maybe the skeleton needs another polish, too).&lt;br /&gt;
:*The environment maps won&#039;t look &amp;quot;exactly right&amp;quot; unless there are weighted normals (again, this is a general issue in Oni; unweighted normals = ugly Gouraud and envmaps).&lt;br /&gt;
::[[User:Geyser|geyser]] 04:53, 8 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::How am I lacking patience? I tried it and it didn&#039;t work. There was nothing else for me to try so I reported my problem so you guys could help me. EdT did so by sending me his version of the modded app. Although I think I applied the hack properly, his copy had debugging msgs enabled, and I realized that as I switched characters, it was skipping every other one. Char 1 --&amp;gt; Char 3 --&amp;gt; Char 5, and looping around to hit the even numbers, 2, 4, 6, etc. I still cycled through every character eventually, but didn&#039;t see Motoko. Then I realized that if I turned &#039;shapeshifter&#039; off, it didn&#039;t skip characters ^_^&#039;  I&#039;ve always been in the habit of turning it on right after turning on &#039;killmequick&#039;, because it seemed that shape-shifting didn&#039;t work properly otherwise. But now it seems to. So, yeah, apparently having shapeshifter enabled twice means each F8 advances two characters, not one. It also skips #0, which is how it identifies Motoko, even when it&#039;s doing evensies, apparently because some code thinks that zero is not even, so it starts at 2. But I guess the solution is simply, Don&#039;t enable &#039;shapeshifter&#039; with the Edition. Heh.&lt;br /&gt;
:::Re the 16 level limit, I&#039;m no hacker, but that should be as easy to fix as disabling the check for &amp;quot;_Final&amp;quot;. It&#039;s also much more important than disabling that check. It&#039;s a small thing to have to name a mod patch &amp;quot;yadayada_Final&amp;quot; in order to go along with the original name-check system, but it&#039;s a real shame if every patch installed knocks out a level of the game. But I would think it would be easy enough to change a &#039;16&#039; to at least a &#039;31&#039; in the code, if it can be found in the first place. Oh well, I look forward to trying those &amp;quot;plugins&amp;quot;.&lt;br /&gt;
:::--[[User:Iritscen|Iritscen]] 15:59, 8 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Reporting in... kinda of busy right now, so it will be brief&lt;br /&gt;
&lt;br /&gt;
I was able to load all the levels, none were missing, so it looks like there is no 16 instance file limits. Here&#039;s the startup file: http://edt.oni2.net/OniSplit/startup.txt&lt;br /&gt;
&lt;br /&gt;
An army of Spartans, cool.&lt;br /&gt;
&lt;br /&gt;
I used FBX converter by AutoDesk, the one Neo mentioned, there are no options for Collada import or export (At least in the GUI)&lt;br /&gt;
&lt;br /&gt;
When you have time, please post instructions on how to create the instance files, I would like to give it a test.&lt;br /&gt;
&lt;br /&gt;
Iritscen: Once I&#039;m in Dev Mode, all I need to do it press F8 to shapeshift or F7 to cycle weapons, I don&#039;t need to enter shapeshfter again.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 17:00, 8 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Okay, that&#039;s great news; so maybe we don&#039;t need to worry about that level limit. And yeah, Ed, I knew that shapeshifter was supposed to work without entering the specific code, but there was some reason traditionally why I always did that, like the Edition&#039;s shapeshifting wasn&#039;t cycling backwards when you hit Shift-F8 or something. Maybe I was mistaken, since that works now. --[[User:Iritscen|Iritscen]] 17:42, 8 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Regarding the 16 .dat files limit: I&#039;d suggest someone check if all levels are actually loading.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
:Ed, I second Neo&#039;s request. You &#039;&#039;did&#039;&#039; say &amp;quot;I was able to load all the levels&amp;quot;, but could you please confirm:&lt;br /&gt;
:*that you can indeed load and play every one of Oni&#039;s 14 chapters&lt;br /&gt;
:*that the &amp;quot;army of Spartans&amp;quot; (and cosplay Motoko) is available globally &lt;br /&gt;
:*that the character lineup in Chapter 2 is modified as expected (Barabas at the start and Muro at the end)&lt;br /&gt;
:I mean, the 16-dat limit is a major issue to us, so we can&#039;t accept it&#039;s gone without a thorough check.&lt;br /&gt;
:About the Collada-FBX conversion, well, it&#039;s a shame that Autodesk&#039;s converter has no custom settings.&lt;br /&gt;
:However, Cheetah almost certainly allows you to recompute the normals, so that the FBX has no facets.&lt;br /&gt;
:Then there&#039;s a chance that the resulting FBX will be converted back to Collada without any trouble.&lt;br /&gt;
:If Autodesk&#039;s converter introduces automatic smoothing on the way back, too, there&#039;ll be a problem.&lt;br /&gt;
:Perhaps the best way around it is to let OniSplit autogenerate normals (there&#039;s a -normals tag now).&lt;br /&gt;
::[[User:Geyser|geyser]] 19:39, 8 May 2008 (CEST)&lt;br /&gt;
:Iritscen, &#039;&#039;&#039;shapeshifter&#039;&#039;&#039; is totally redundant of the DevMode. Maybe you used to have problems with Shift+F8 because of the Shift key not being bound or something. Anyway, glad it works for you now. One thing, though. There&#039;s no reason why the &amp;quot;double shapeshifter&amp;quot; should ignore 0, so you may want to double-check that. As a matter of fact Oni doesn&#039;t care about anything being &amp;quot;even&amp;quot; there, and it &#039;&#039;just&#039;&#039; acts as if you kept pressing F8 twice in a row. So I kinda doubt your report about 0, sorry.&lt;br /&gt;
:By &amp;quot;patience&amp;quot; I merely meant that you could have avoided &amp;quot;We demand details!&amp;quot;. I &#039;&#039;know&#039;&#039; it&#039;s not serious, but &#039;&#039;you&#039;&#039; know I hate that crap. You don&#039;t need to fake enthusiasm like that, and if it&#039;s not faked, then you have a problem ^_^&lt;br /&gt;
:As for your suggestion about &amp;quot;yadayada_Final&amp;quot;, you don&#039;t really know what you&#039;re talking about. The &amp;quot;_Final&amp;quot; the engine used to check for is supposed to come &#039;&#039;right after&#039;&#039; the &amp;quot;level#&amp;quot; sequence, and &#039;&#039;&#039;level0_yadayada_Final&#039;&#039;&#039;, for example, is &#039;&#039;not&#039;&#039; a &amp;quot;_Final&amp;quot; name (neither is &#039;&#039;&#039;level0_Final_yadayada&#039;&#039;&#039;)&lt;br /&gt;
:The 16 can&#039;t be changed easily, or else we (me and the &#039;&#039;expert hacker&#039;&#039; I represent) wouldn&#039;t have been so alarmed/pessimistic about it. We &#039;&#039;do&#039;&#039; know where it is, but if it wasn&#039;t for the lucky fact that the 16 is somehow ignored, you would have had to load and play Oni one &amp;quot;act&amp;quot; at a time, most likely.&lt;br /&gt;
::[[User:Geyser|geyser]] 20:16, 8 May 2008 (CEST)&lt;br /&gt;
:::Sorry to interject, but I didn&#039;t realize that OniSplit could generate normals. They&#039;re smoothed? Also, is it at all possible that the Mac does not have the same limitation as the PC version? It could even be a difference in the width of the variable that is declared, on the Mac vs. the PC. Just throwing that out there. --[[User:Iritscen|Iritscen]] 19:51, 8 May 2008 (CEST)&lt;br /&gt;
:The -normals option was requested (by me) some time ago, but only appeared in the latest not-quite-release of OniSplit (0.9.9). It only works for TRBS right now, and still needs some checking.&lt;br /&gt;
:These normals are totally smooth and &amp;quot;angle-based&amp;quot;: the vertex normal is a weigthed sum of the normals of all adjacent faces, the weight being the angle of every face&#039;s corner at that vertex. This weighting provides much more accurate normals than an unweighted sum, and hence better-looking Gouraud shading and environment mapping.&lt;br /&gt;
:As for the limitation, it is of course different on PC and on Mac. On PC, there&#039;s no 16 anywhere to see: we can have 512 .dat files in GDF at Oni startup and 64 can be loaded simultaneously. The 64 limit is apparently the same on every version, but the 512 limit is a 16 on Mac and PC demo, apparently ignored (so, no limit?).&lt;br /&gt;
::[[User:Geyser|geyser]] 20:16, 8 May 2008 (CEST)&lt;br /&gt;
:::Or does that mean 64 is the limit? I will test this myself when I get the opportunity. --[[User:Iritscen|Iritscen]] 20:31, 8 May 2008 (CEST)&lt;br /&gt;
:No, technically, 64 is about the simultaneously &#039;&#039;loaded&#039;&#039; instance files, not the ones detected at startup. Like, level0_Final and 31 level0_ plugins, and then level9_Final and 31 level9_ plugins (that said, you no longer need to have a _Final file at all. the names can be anything).&lt;br /&gt;
:Oh, and I see I forgot do address Ed&#039;s question about how to make those plugins. I already told you. They&#039;re &#039;&#039;just&#039;&#039; files built the usual way, with -import:sep or -import:nosep. The only difference is that the target name no longer has to be level#_Final. No changes at all apart from that.&lt;br /&gt;
::[[User:Geyser|geyser]] 20:51, 8 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Sorry, didn&#039;t enough time to test all levels when I posted my original comment.&lt;br /&gt;
:All levels loaded and can be played except for Level 8 TCTF Headquarters. Thus 17 instances loaded? 0-16?&lt;br /&gt;
:Spartans and cosplay are global&lt;br /&gt;
:Character lineup has changed with Barabas and Muro&lt;br /&gt;
&lt;br /&gt;
Anything else I should test?&lt;br /&gt;
&lt;br /&gt;
Too many things going on in real life...&lt;br /&gt;
[[User:EdT|EdT]] 22:44, 8 May 2008 (CEST)&lt;br /&gt;
:Please confirm: does &#039;&#039;&#039;startup.txt&#039;&#039;&#039; look like the one you posted previously (all 18 .dat files listed and reported as valid)?&lt;br /&gt;
:What about level8 a.k.a. Chapter 6? What can you say about the way that it &amp;quot;can&#039;t be played&amp;quot;? Not visible in Load Game?&lt;br /&gt;
:What about level9 a.k.a. Chapter 7? Could it be that you&#039;ve skipped it when testing all the levels? Please check again...&lt;br /&gt;
::[[User:Geyser|geyser]] 03:51, 9 May 2008 (CEST)&lt;br /&gt;
:Hm, I&#039;m testing with the PC demo and I get a behavior similar to yours, Ed. Here&#039;s what I&#039;m doing (Neo, you too, listen up).&lt;br /&gt;
:I generated [http://geyser.oni2.net/edition/plugins/level0_Crap.zip A BATCH OF level0_Crap# FILES] from the chaingun thingie and managed to saturate GameDataFolder with them.&lt;br /&gt;
:First, the results with a clean demo (with only level0_Final, level1_Final and level4_Final in GDF to start with)&lt;br /&gt;
:*If I put all 16 Crap files into GDF (that makes 16 + 3 = 19), Oni exits (no Blam) while &amp;quot;loading level 0...&amp;quot;&lt;br /&gt;
:*If I only use 15 Crap files (that makes 15 + 3 = 18), Oni lets me play level 4, but Blams upon loading level 1.&lt;br /&gt;
:*If I only use 14 Crap files (that makes 14 + 3 = 17), Oni lets me play level 1, but Blams upon loading level 4.&lt;br /&gt;
:*If I only use 13 Crap files (that makes 13 + 3 = 16) or less, Oni starts normally and lets me load either level.&lt;br /&gt;
::(in all these cases startup.txt lists all present .dat as valid, and all the expected ONWCs are available)&lt;br /&gt;
:Now, with the extra level (with level0_Final, level1_Final, level2_Final and level4_Final in GDF to start with)&lt;br /&gt;
:*If I put all 16 Crap files into GDF (that makes 16 + 4 = 20), Oni exits (without a Blam) while &amp;quot;loading level 0...&amp;quot;&lt;br /&gt;
:*If I only use 15 Crap files (that makes 15 + 4 = 19), Oni &#039;&#039;still&#039;&#039; exits while &amp;quot;loading level 0...&amp;quot;, this time &#039;&#039;with&#039;&#039; a Blam:&lt;br /&gt;
::(here&#039;s the message given by the Daodan DLL in this case; I didn&#039;t bother with the level-load Blams)&lt;br /&gt;
 loading level 0...&lt;br /&gt;
 &lt;br /&gt;
 Oni crashed…&lt;br /&gt;
 Please post your “startup.txt” file to &amp;lt;http://oni.bungie.org/forum/&amp;gt;…&lt;br /&gt;
 Caught exception 0xc0000005 at 0x004244ce…&lt;br /&gt;
   EAX = 0000000000, ECX = 0x0027e201, EDX = 0x08000001&lt;br /&gt;
   EBX = 0x0054fc20, ESI = 0x0c2b6028, EDI = 0x0c2b6028&lt;br /&gt;
   EBP = 0x00bfab20, ESP = 0x0012f590&lt;br /&gt;
:*If I only use 14 Crap files (that makes 14 + 4 = 18), Oni lets me play levels 1 and 4, but Blams upon loading level 2.&lt;br /&gt;
:*If I only use 13 Crap files (that makes 13 + 4 = 17), Oni lets me play levels 1 and 2, but Blams upon loading level 4.&lt;br /&gt;
:*If I only use 12 Crap files (that makes 12 + 4 = 16) or less, Oni starts normally and lets me load all three levels.&lt;br /&gt;
::(in all these cases startup.txt lists all present .dat as valid, and all the expected ONWCs are available)&lt;br /&gt;
:So it appears that 16 is indeed the threshold for normal behavior.&lt;br /&gt;
:Fails to load last file for 17, pre-last for 18, doesn&#039;t run at all for 19+.&lt;br /&gt;
:This is consistent with Ed&#039;s report, so I guess this all holds for the Macs.&lt;br /&gt;
:For the record, PC retail runs normally with all 16 crap files and then some.&lt;br /&gt;
:It&#039;s really a shame, but it looks like the Mac build was born to nag us...&lt;br /&gt;
::[[User:Geyser|geyser]] 03:51, 9 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
: To confirm, only the TCTF Headquarters level will start to load then Oni will crash.  I also tested it on my Intel computer, same result.&lt;br /&gt;
: Here is the crash log: http://edt.oni2.net/OniSplit/PluginCrash.txt &lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 05:20, 9 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;(Neo, you too, listen up)&amp;quot;. Already did the test :). I split level0_Final.dat into 19 files and now the PC Demo doesn&#039;t even start. Reason: the filename of the 17th file got corrupted so it cannot find the file. That&#039;s why I asked someone with a Mac to check if the levels really load.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
It&#039;s probably unnecessary for me to report this, but yes, my Intel Mac also also crashed when it tried to load the 1st TCTF level (when I had three plugins in the GDF). I can confirm that the (very nice-looking!) Spartans are present, although I forgot to test the chaingun. And Barabus is an unexpected surprise in Chapter 2.  But yeah, crash-a-rama with the TCTF HQ.&lt;br /&gt;
&lt;br /&gt;
So it looks like we have three options as far as the Mac goes:&lt;br /&gt;
# Change the &#039;16&#039; (which is not easy, apparently)&lt;br /&gt;
# Only use this method for basic crucial patches to the Edition or generally global effects like adding the Spartans&lt;br /&gt;
# Compiling more and more patches into the same one or two plug-ins, and releasing those newer versions of the plug-ins, to replace the older versions&lt;br /&gt;
&lt;br /&gt;
P.S.: Please don&#039;t be oversensitive, geyser; you dropped in with blockbuster information and gave us no details on its workings, of course I said, &amp;quot;We demand details!&amp;quot; I hope you know that, at least to a native English speaker (which I often forget you aren&#039;t because your English is so good), &amp;quot;We demand __!&amp;quot; would not be interpreted as a strict command, but a friendly enthusiastic request. At least between familiar acquaintances it means that; perhaps a smiley would have helped convey my tone of voice.&lt;br /&gt;
&lt;br /&gt;
P.P.S.: I don&#039;t fake enthusiasm, geyser, it&#039;s all real :-D&lt;br /&gt;
--[[User:Iritscen|Iritscen]] 15:59, 13 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
When using the level0_BGI plugin and the modified Oni.exe with a &amp;quot;normal&amp;quot; installation of Oni (Not AE) only one Masterchief (Striker version) will appear and he will be 1/2 black 1/2 transparent.&lt;br /&gt;
&lt;br /&gt;
Script_10K first reported it and paradox-01 confirmed it.  Video from Script_10K http://edt.oni2.net/AE/Script10K_MC_bug.WMV&lt;br /&gt;
&lt;br /&gt;
EDIT: I just confirmed it with the Mac Demo, only the Striker version appears partly transparent.  Since I&#039;m using the demo when shaping shifting to the other MC version, I get the error message &amp;quot;master_muro had a NULL animation collection&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Image:MC_transparent.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 00:53, 25 May 2008 (CEST)&lt;br /&gt;
:Thanks for the reports.&lt;br /&gt;
:&amp;quot;only one Masterchief (Striker version) will appear&amp;quot; As you can see, Oni complains about character classes that specify an invalid TRAC. Actually, since there&#039;s no such thing as a &amp;quot;default TRAC&amp;quot;, every ONCC that links to a non-existent TRAC is ignored. Apart from the Striker variant, all the Chiefs use fancy male TRAC that can only be found in specific levels, as we well know. Since level0 instance files are loaded before everything else, those global Chiefs need their TRAC to be global. That means that without AE&#039;s globalization, indeed, only the Striker Chief will be available with this plugin. I don&#039;t think it&#039;s worth fixing.&lt;br /&gt;
:&amp;quot;and he will be 1/2 black 1/2 transparent.&amp;quot; That&#039;s because of another resource I&#039;m assuming to be global, namely [[TXMP]]SUPER_REFLECT (Mukade&#039;s envmap texture). This is a bit more limiting because TXMPSUPER_REFLECT is missing from the demo (then again, so are a couple of TRAC used in level0_BGI), so even the Edition won&#039;t fix the Chiefs in the demo right now. I guess I&#039;ll fix that eventually, probably by including a reflection texture with the pack. For now, either play a full version, with AE&#039;s globalization of both TRAC and TXMP... or hex-fix level0_BGI.dat, e.g., by replacing the TXMPblack_chief_lo_res at the end with TXMPw5_sbg_ref or such.&lt;br /&gt;
:On a completely different note, the [[OniSplit]] page is not exactly up-to-date, is it? I know I can do it myself, but since you were doing all the XML testing I thought you were in a better position than me to mirror and link to the new versions ^_^&lt;br /&gt;
::[[User:Geyser|geyser]] 03:47, 25 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
::Hi EdT, I have a question. Recently I am toying with 3d models, but I cannot IMPORT them back into Oni (It simply won&#039;t create M3GM back from my modified 3d model). Can you please tell me some programmes + what to do?. Big thanks, Loser&lt;br /&gt;
&lt;br /&gt;
Loser: Are you saying that OniSplit cannot import the model or that once its inside Oni, it doesn&#039;t work?   &lt;br /&gt;
A couple of things to check, do you have the latest version of OniSplit?  Is the 3D model highly detailed, if so, Oni will crash when the object comes into view.&lt;br /&gt;
&lt;br /&gt;
You might want to look at this tutorial: [[Importing_character_models]]&lt;br /&gt;
&lt;br /&gt;
Its hard to say what the problem is without seeing the model. Can you post it?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 14:22, 22 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hey man, there is something (&amp;lt;nowiki&amp;gt;http://www.paradox.oni2.net/mods/mac_shapeshift_test.zip&amp;lt;/nowiki&amp;gt;, dead link) to test for you =)&lt;br /&gt;
: (Instructions: delete all compound scripts, put in &amp;quot;test.bsl&amp;quot;. The character file is for level19_Final. Hope it works.) --[[User:Paradox-01|Paradox-01]] 20:10, 6 October 2008 (CEST)&lt;br /&gt;
:: Muro appeared first then, Barabus a few seconds later. The command &amp;quot;chr_wait_animtype 0 jump&amp;quot; had no effect.  I didn&#039;t know you can have more than one character flagged as &amp;quot;IsPlayer&amp;quot; [[User:EdT|EdT]] 20:48, 6 October 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::I don&#039;t know why but &amp;quot;chr_wait_animtype ..&amp;quot; is needed on PC. (Try to comment it out (#)..) I tried lots of combinations but that&#039;s the way it seems to work.&lt;br /&gt;
:::Somehow, it is skipped when Muro becomes deleted. The strange thing is that the cam stays focused on Muro even if I delete him, ergo: the cam is floating into nothing... in a piece of a second out of the level.&lt;br /&gt;
:::Surely you can go on experimenting on your machine, maybe there are differences. But for now we have finally a way to shapeshift on a mac. --[[User:Paradox-01|Paradox-01]] 21:40, 6 October 2008 (CEST)&lt;br /&gt;
::::Ed, there is a second player character in level1, called &amp;quot;konoko&amp;quot;, with which you can do the same trick. You can also use &#039;&#039;&#039;chr_create 0&#039;&#039;&#039; if there is a valid 0 character in the [[AISA]], i.e., everywhere except in the original level7. --[[User:Geyser|geyser]] 03:08, 7 October 2008 (CEST)&lt;br /&gt;
::::Dox, it works fine as long as Muro is deleted immediately before the new player is spawned. You can simply enter &amp;quot;chr_delete(Muro);ai2_spawn(barabus);&amp;quot; from the console, or you can delay those 2 simultaneous commands with pretty much anything: chr_wait_animtype, sleep, chr_wait health, cm_interpolate_block, chr_has_lsi in a loop... anything. --[[User:Geyser|geyser]] 03:08, 7 October 2008 (CEST)&lt;br /&gt;
----&lt;br /&gt;
:Here is a simple script that should work nicely in the original level18 (posing as Karen) --[[User:Geyser|geyser]] 03:08, 7 October 2008 (CEST)&lt;br /&gt;
 func main {&lt;br /&gt;
     chr_teleport 0 0&lt;br /&gt;
     chr_facetoflag 0 0&lt;br /&gt;
     ai2_spawnall&lt;br /&gt;
     door_ignore_locks=1&lt;br /&gt;
     fork disguise&lt;br /&gt;
 }&lt;br /&gt;
 func disguise {&lt;br /&gt;
     dmsg &amp;quot;please do a Devil Spin Kick&amp;quot;&lt;br /&gt;
     chr_wait_animation 0 KONCOMkick_heavy&lt;br /&gt;
     sleep 60&lt;br /&gt;
     chr_delete 0&lt;br /&gt;
     chr_create 0&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
::Using the above script, Konoko changed to TCTF_Lite, but no matter where I was when I did the Devil Spin Kick, I changed to the TCTF_lite and transported to location 0. Is that how it works on the PC, or do you change at the location of the DSK? [[User:EdT|EdT]] 04:40, 7 October 2008 (CEST)&lt;br /&gt;
:::Ed, that&#039;s the fundamental limitation of Dox&#039;s hack. The fake shapeshifting involves deleting one player character and spawning another. when spawning the new character, the engine has no way of knowing where the old one was, and no reason to take it into account: all that happens is that control and camera focus are transferred to the new player. &amp;quot;Ergo&amp;quot;, the position and facing of the new player must be set approximately: in the Mac case, either from [[CHAR]], [[FLAG]] or [[FILM]]. As you can see, this kind of transition will only look good if carefully scripted, either coordinated with trigger volumes and such, or somehow making the warp look less awkward (teleportation or fade-out effect). --[[User:Geyser|geyser]] 05:30, 7 October 2008 (CEST)&lt;br /&gt;
:::As for the TCTF Lite (Cop_generic, without shoulderplates, I assume?), that&#039;s the way it works with globalized resources, yes. The 0 AISA entry links to a missing ONCC, so Oni uses the first available ONCC instead. This is Karen in the original Oni, ONCCCop_generic in the edition so far, a Spartan or a HD Griffin if you use a plugin, etc. --[[User:Geyser|geyser]] 05:30, 7 October 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Here is one that will work with your modified BINACJBOCharacter in level19 --[[User:Geyser|geyser]] 03:08, 7 October 2008 (CEST)&lt;br /&gt;
 func main {&lt;br /&gt;
     chr_teleport 0 109&lt;br /&gt;
     chr_facetoflag 0 0&lt;br /&gt;
     fork upgrade&lt;br /&gt;
 }&lt;br /&gt;
 func upgrade {&lt;br /&gt;
     dmsg &amp;quot;please jump down to your doom&amp;quot;&lt;br /&gt;
     chr_wait_health 0 199&lt;br /&gt;
     chr_delete 0&lt;br /&gt;
     ai2_spawn barabus&lt;br /&gt;
     chr_teleport 0 194&lt;br /&gt;
     chr_facetoflag 0 0&lt;br /&gt;
 }&lt;br /&gt;
:Of course, the upgrade will depend on whether ONCCbarabus is global. -[[User:Geyser|geyser]] 03:08, 7 October 2008 (CEST)&lt;br /&gt;
:And of course, this emulation of [[chr_set_class]] is quite limited. --[[User:Geyser|geyser]] 03:08, 7 October 2008 (CEST)&lt;br /&gt;
:But nevertheless very resourceful, and useful for scripted missions. --[[User:Geyser|geyser]] 03:08, 7 October 2008 (CEST)&lt;br /&gt;
:My respects for finding this delete-spawn thing: not intuitive at all. --[[User:Geyser|geyser]] 03:08, 7 October 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
It looks like there&#039;s a couple different links to Oni apps in your subdomain, EdT, &amp;lt;nowiki&amp;gt;http://edt.oni2.net/files/OniOSXfix.zip&amp;lt;/nowiki&amp;gt; (dead link) and http://edt.oni2.net/files/Oni.zip, and they both work. Unless there&#039;s a specific purpose behind this, I think you get where I&#039;m going -- we should consistently point to just one download link that will always be the latest modded app. --[[User:Iritscen|Iritscen]] 16:58, 12 October 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Category:Userspace]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OBD_talk:ONGS&amp;diff=46183</id>
		<title>OBD talk:ONGS</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OBD_talk:ONGS&amp;diff=46183"/>
		<updated>2025-12-26T06:10:47Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==talk==&lt;br /&gt;
http://web.archive.org/web/20160225133018/http://oni.bungie.org/forum/viewtopic.php?pid=9274#p9274&lt;br /&gt;
(idea about new overpower values) (see here for actual project: [[AE:Daodan_overpower_and_upgrades]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
offset 0x04 - is it really the level ID? When I set 01 to 12 nothing change, the settings are still global.&lt;br /&gt;
My actual goal is to add settings for a specific level beside the global once. --[[User:Paradox-01|Paradox-01]] 14:29, 29 August 2008 (CEST)&lt;br /&gt;
:It might be a field that isn&#039;t used by the engine. Suggestion: Try copying it over into level 12&#039;s .dat and see if it overrides. [[User:Gumby|Gumby]] 18:36, 29 August 2008 (CEST)&lt;br /&gt;
::I tried your suggestion but still no effect. --[[User:Paradox-01|Paradox-01]] 19:51, 29 August 2008 (CEST)&lt;br /&gt;
:::Ok, last resort, try removing the one from level 0. [[User:Gumby|Gumby]] 22:28, 29 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Umm, what are guys trying to do more exactly?&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
:He is trying to make a level specific ONGS. I am thinking that to do that, you need one for every level (because the level0 one overrides any level specific ones), but it all depends on if Oni will read an ONGS from outside of level0.  [[User:Gumby|Gumby]] 23:20, 29 August 2008 (CEST)&lt;br /&gt;
::Nope, that does not work. ONGS is read only once, at startup. Since at startup only level0 is loaded in memory ONGS cannot be overriden. [[User:Neo]]&lt;br /&gt;
:::Ok. But could it be possible to have two sets of setting in this one file (one global and one for a specific level)? --[[User:Paradox-01|Paradox-01]] 00:29, 30 August 2008 (CEST)&lt;br /&gt;
::::I doubt it, if it is only read at startup, and there are no places in the file where it mentions other levels [[User:Gumby|Gumby]] 01:06, 30 August 2008 (CEST)&lt;br /&gt;
:::::No. The only way this can be done is with some sort of engine hack. [[User:Neo]]&lt;br /&gt;
::::::Hmm, ok, would be to time consuming just to mod this. --[[User:Paradox-01|Paradox-01]] 13:15, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Missing fields: does group block count as techique? I&#039;m just wondering because there&#039;s only single block so far but both in the melee profile. --[[User:Paradox-01|Paradox-01]] 21:35, 30 August 2008 (CEST)&lt;br /&gt;
:I don&#039;t know, that&#039;s why I added those descriptions even if I don&#039;t know exactly what those fields do. Maybe someone puts the pieces together and finds the answer. [[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
{{OBD}}&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Matashina_-_Merry.jpg&amp;diff=46182</id>
		<title>File:Matashina - Merry.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Matashina_-_Merry.jpg&amp;diff=46182"/>
		<updated>2025-12-26T06:10:34Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Originally on the OCF thread &amp;quot;[http://web.archive.org/web/20160224190558/http://oni.bungie.org/forum/viewtopic.php?id=193 Konoko Fan Art]&amp;quot;, created by Matashina.&lt;br /&gt;
;Artist&#039;s Comments&lt;br /&gt;
:Wish to have more replies this time....&lt;br /&gt;
&lt;br /&gt;
[[Category:Fan art]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Matashina_-_Welcome_to_Oni_Bar.jpg&amp;diff=46181</id>
		<title>File:Matashina - Welcome to Oni Bar.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Matashina_-_Welcome_to_Oni_Bar.jpg&amp;diff=46181"/>
		<updated>2025-12-26T06:10:18Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Originally on the OCF thread &amp;quot;[http://web.archive.org/web/20160224190611/http://oni.bungie.org/forum/viewtopic.php?id=188 My fanart of Shinatama]&amp;quot;, created by Matashina.&lt;br /&gt;
;Artist&#039;s Comments&lt;br /&gt;
:My fanart of Shinatama&lt;br /&gt;
&lt;br /&gt;
[[Category:Fan art]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User_talk:Guido&amp;diff=46180</id>
		<title>User talk:Guido</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User_talk:Guido&amp;diff=46180"/>
		<updated>2025-12-26T06:10:11Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So, ... uhm still alive? I&#039;m almost too afarid to ask if you are still there .. and drawing wasterland flowers. Give us a sign if you are in the mood. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 01:03, 17 May 2015 (CEST)&lt;br /&gt;
----&lt;br /&gt;
Yes, I am still alive, and I have not given up on this project. Not that I have much time on my hands, to be honest, but at least I am managing to grind up Alex&#039;s original script of book 4, and start with some rough paneling. &lt;br /&gt;
&lt;br /&gt;
Hopefully, you&#039;ll hear more from me. &lt;br /&gt;
--[[User:Guido|Guido]] (Lone wolf mode ON) &lt;br /&gt;
&lt;br /&gt;
:Glad to hear you&#039;re still plugging away at it! Hope things are going well with you. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 02:24, 27 May 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
:I&#039;d like to help you out with your user space : since it&#039;s more than just one page, with linking and such, it gets messy rather easily.&lt;br /&gt;
:For now, just have a look at the changes I made... And check out [[Help:Contents|THIS]], too.&lt;br /&gt;
::[[User:Geyser|geyser]] 19:44, 27 September 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
:::Ok... &lt;br /&gt;
::[[User:Guido|Guido]]&lt;br /&gt;
----&lt;br /&gt;
:USE THE PREVIEW BUTTON MORE.&lt;br /&gt;
:PLEASE.&lt;br /&gt;
::[[User:Geyser|geyser]] 17:15, 25 November 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
:Sorry again for my sudden leaving on IRC. If you want to discuss, inform or so ever you can do via email because I don&#039;t look often into the forum pm section.  :|&lt;br /&gt;
:Or, we exchange our ICQ/MSN addresses so I could join some conferences of you and geyser. What do you think?&lt;br /&gt;
::[[User:Paradox-01|Paradox-01]] 21:43, 16 September 2007 (CEST)&lt;br /&gt;
:If you want to join the conversations between Serguei and me you are welcome. Point is, I have no idea on how things like IMMs work, and what should be done to allow small conference chats. Please, contact Geyser and see how grouped conversations can be arranged. My yahoo messenger ID is quite simple:[myrealname.myrealsurname]. &lt;br /&gt;
:See you on later then.&lt;br /&gt;
::[[User:Guido|Guido]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Drawing tips==&lt;br /&gt;
:Ok then, the time has arrived. (Hm, you are offline right now so I write it here.)&lt;br /&gt;
:You said you can help me out a bit with character drawings. And if you have time to do so take a look [&amp;lt;nowiki&amp;gt;http://www.webspace-invasion.com/jackd/projekt3.htm&amp;lt;/nowiki&amp;gt; here] [dead link].&lt;br /&gt;
:BTW, can you tell me how to create a good perspective? (The one right now is a mess.)&lt;br /&gt;
:Main (project) picture is the pure grey one.&lt;br /&gt;
:If you want to know the little context meaning of picture follow the link on the project site.&lt;br /&gt;
:A cover the a sub chapter... Well, I just want to do so.&lt;br /&gt;
::What do you think of the whole?&lt;br /&gt;
:::[[User:Paradox-01|Paradox-01]] 01:23, 7 October 2007 (CEST)&lt;br /&gt;
:&amp;quot;A cover the a sub chapter&amp;quot;???&lt;br /&gt;
::[[User:Geyser|geyser]] 14:23, 7 October 2007 (CEST)&lt;br /&gt;
;Perspective&lt;br /&gt;
:Perspective is basically the projection of a 3D world onto a 2D support (paper, computer screen, ...)&lt;br /&gt;
:For basic rules and limitations, as well as a few tutorials, see [[wp:Perspective (graphical)|Wikipedia]] and [https://web.archive.org/web/20070714060716/http://mathdl.maa.org/convergence/1/?pa=content&amp;amp;sa=viewDocument&amp;amp;nodeId=477 links] [http://web.archive.org/web/20200105165946/http://www.scottmcdaniel.net/drawing/perspective/perspective.html therein].&lt;br /&gt;
::(of course there are other tutorials than these, and Guido will have further tips)&lt;br /&gt;
:Apart from generalities, the major problem is with the aspect ratios of objects in a complex scene.&lt;br /&gt;
:One thing you can do is make a real scene by arranging real 3D objects in your room: boxes, bottles...&lt;br /&gt;
:Then you place your eye where the &amp;quot;camera&amp;quot; would be and instantly see the right scales and projections.&lt;br /&gt;
:Another thing you can do is find a photograph of the place you want to render (in your case, Frisco).&lt;br /&gt;
:[http://web.archive.org/web/20101126122723/http://mayhem-chaos.net/photoblog/images/sf_golden_gate.jpg HERE] you can see the Golden Gate bridge and its general situation with respect to SF.&lt;br /&gt;
::(you can see that the land next to the bridge is basically naked, because it&#039;s rocky or whatever)&lt;br /&gt;
:[https://web.archive.org/web/20190402163437/http://www.earthinpictures.com/world/usa/san_francisco/golden_gate_bridge.jpg HERE] you can see it from up close, with the nearest building (Fort Point)and a few people.&lt;br /&gt;
:The biggest problem with your scene is that you want to show too much in a single shot: uncompatible view points.&lt;br /&gt;
:One problem is that the roadway is high above the ground level in the vicinity of the bridge,&lt;br /&gt;
::so if your camera is shooting horizontally at the warehouse door and the people in front of it,&lt;br /&gt;
:::you may not be able to see the bridge itself, let alone the cars on it, in the same shot.&lt;br /&gt;
:The only building that&#039;s as close to the bridge as you suggest is apparently [[wp:Fort Point National Historic Site|Fort Point]]&lt;br /&gt;
::(and as you can see, the roadway is clearly far above the fort)&lt;br /&gt;
:If the fort is not good enough, you could take a less extreme shot at the bridge, [http://web.archive.org/web/20210317184804/http://www.ged.rwth-aachen.de/Ww/people/chris/jpg%27s/Joshua%20Frisco%20St%20Louis%2006/003%20%20Golden%20gate%20and%20harbour%20web.jpg from a harbor district].&lt;br /&gt;
::The strait and the bridge over it will be seen in the distance (no cars, sorry), and there&#039;ll be warehouses.&lt;br /&gt;
:::Of course Google Image may not have the perfect shot for your story (e.g., landfill), but it&#039;s a start.&lt;br /&gt;
:Another thing you can do is split the drawing into a few different perspectives:&lt;br /&gt;
:#a wide situation shot (e.g., closer to the bridge and cars, but focused on the faraway warehouses)&lt;br /&gt;
:#a closer shot where you can see the warehouses and the vehicles, people standing, doors opening&lt;br /&gt;
:#a final shot where you finally distinguish the features of the characters and other details...&lt;br /&gt;
::[[User:Geyser|geyser]] 14:23, 7 October 2007 (CEST)&lt;br /&gt;
;Characters&lt;br /&gt;
:Not many tips except for practicing a whole lot more.&lt;br /&gt;
:Baggy clothes do a good job hiding the anatomy, but...&lt;br /&gt;
:*the neck is much too thick; head&#039;s OK&lt;br /&gt;
:*the left shoe should be in perspective&lt;br /&gt;
:*the stylized eyes just don&#039;t work here&lt;br /&gt;
:(with realistic eyes she&#039;d look great!)&lt;br /&gt;
::[[User:Geyser|geyser]] 14:23, 7 October 2007 (CEST)&lt;br /&gt;
: &amp;gt; the neck is much too thick; head&#039;s OK&lt;br /&gt;
::I my opinion the whole body don&#039;t fit (so, the neck too). However, I minimized the head around 5%. Result: [&amp;lt;nowiki&amp;gt;http://www.webspace-invasion.com/jackd/Bilder/projekt3/Daya_off_of_work_edit.jpg&amp;lt;/nowiki&amp;gt; here] [dead link].&lt;br /&gt;
::Because of the eyes, the right (a bit too small) hand and in aspect of practice I&#039;m re-making the picture.&lt;br /&gt;
: &amp;gt; the left shoe should be in perspective&lt;br /&gt;
::Well, she is supposed to go.&lt;br /&gt;
: &amp;gt; Baggy clothes do a good job hiding the anatomy&lt;br /&gt;
:: Baggy clothes are comfortable... ;)&lt;br /&gt;
&lt;br /&gt;
::Talk about the scenes later.&lt;br /&gt;
:::[[User:Paradox-01|Paradox-01]] 18:45, 7 October 2007 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Images==&lt;br /&gt;
:As for the roughs : it might be a good idea &#039;&#039;not&#039;&#039; to upload some of them on the wiki.&lt;br /&gt;
:Because there&#039;s a lot of them and some of them you may want to dismiss pretty soon.&lt;br /&gt;
:Also because they can&#039;t be renamed, and names like &amp;quot;Kon face 1.jpg&amp;quot; are easily overloaded.&lt;br /&gt;
::(dunno, you could/should have called them &amp;quot;experimental&amp;quot; or something ^^)&lt;br /&gt;
:If you can get an FTP client, then hosting &amp;quot;exploration&amp;quot; on guido.oni2.net is optimal.&lt;br /&gt;
:Then again, thumbnailing and gallerying go so much faster with wiki-based images...&lt;br /&gt;
::...yeah, leave them where they are, just try to pick more specific names.&lt;br /&gt;
:(I don&#039;t mean additional info on the face expression :&lt;br /&gt;
::just &amp;quot;Kon face study 1.jpg&amp;quot; instead of &amp;quot;Kon face 1.jpg&amp;quot;)&lt;br /&gt;
:Commenting on those faces some time this week.&lt;br /&gt;
::[[User:Geyser|geyser]] 13:59, 27 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Acknowledged.&lt;br /&gt;
::[[User:Guido|guido]] 21:33, 29 November 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
:As for the node-related pictures (graphical replies to my talk page entries) :&lt;br /&gt;
::I definitely think your talk pages could/should be moved over to the Oni2 namespace&lt;br /&gt;
:::as potential nodes of a story (or stories). Script, discussion, actual content.&lt;br /&gt;
:Then the page and image names should be somewhat systematic (that will make linking easier).&lt;br /&gt;
::(something like Oni2:Node42 as the article name and Image:Oni2node42image1.jpg)&lt;br /&gt;
:::(give or take a few spaces in the names ^^)&lt;br /&gt;
::[[User:Geyser|geyser]] 13:59, 27 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
We may do this, but how do you think we can organize a framework-page for these nodes? Of course you have my blessing.&lt;br /&gt;
&lt;br /&gt;
The nodes we have been discussing so far are not linked each other in a linear way. Connection among nodes should be shown through something like  a table &lt;br /&gt;
or an input-output matrix... (I am sorry, I got carried away, please forget this one)&lt;br /&gt;
::[[User:Guido|guido]] 21:41, 29 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
If you have any idea, or you think you can handle it, you have my blessing, of course.&lt;br /&gt;
::[[User:Guido|guido]] 21:34, 29 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
:Indeed. This is no single, linear progression of events : it&#039;s &#039;&#039;all connected&#039;&#039;.&lt;br /&gt;
:But actually, I think there doesn&#039;t &#039;&#039;have&#039;&#039; to be a &amp;quot;framework-page&amp;quot; at all...&lt;br /&gt;
:About the double entry matrix : it&#039;s not as nice as a flowchart and wastes a lot of space.&lt;br /&gt;
:Just as a graph, it is likely to get unreadable past a hundred nodes or so.&lt;br /&gt;
:I&#039;d say there&#039;s nothing wrong with nodes just linking to each other : no overview.&lt;br /&gt;
::(that&#039;s how gamebooks work, after all : every page is a &amp;quot;local graph&amp;quot; of sorts)&lt;br /&gt;
:Additionally, I think an up-to-date semi-automatic index page of existing nodes will do fine.&lt;br /&gt;
::(with descriptions and non-trivial link information transcluded from the nodes themselves)&lt;br /&gt;
:I may have to experiment a bit more with hoverbox captions and even graphs&lt;br /&gt;
::(if GraphViz produces nice-looking diagrams with default settings, why not?)&lt;br /&gt;
:If you&#039;re really bothered about the lack of flowchart support right now,&lt;br /&gt;
::I can have GraphViz installed. Do you want it? I&#039;m not sure it&#039;d be much more than a toy...&lt;br /&gt;
:We &#039;&#039;could&#039;&#039; render flowcharts of whole stories (large, messy graphs), or regions (vicinities of certain nodes).&lt;br /&gt;
:That would be a lot of work for no big benefit, though, keeping those graphs up-to-date...&lt;br /&gt;
:There&#039;s a good chance the graphs will end up unreadable pretty soon, though (I&#039;m repeating myself).&lt;br /&gt;
:I&#039;m glad to have &amp;quot;your blessing, of course&amp;quot;, of course. ^^&lt;br /&gt;
::[[User:Geyser|geyser]] 22:59, 30 November 2006 (CET)&lt;br /&gt;
:Oh, and there doesn&#039;t have to be a &#039;&#039;single&#039;&#039; storyline out there.&lt;br /&gt;
:Conflicting entities, contradictory events. Sequels, prequels, paraquels, whatnot.&lt;br /&gt;
:Definitely, no matrix can do the job properly. No global graph, either.&lt;br /&gt;
:Every story is best outlined in a textual way.&lt;br /&gt;
:Every link of a fancy graph can take the form of a sentence or paragraph, &lt;br /&gt;
::that will be more informative and less ambiguous than a flowchart.&lt;br /&gt;
:Yeah, something like storylines-in-progress.&lt;br /&gt;
:Not sure what we&#039;ll call them (tree pages?) but they&#039;ll definitely do the trick.&lt;br /&gt;
:Bottom line : screw flowcharts; plain-text &amp;quot;framework page&amp;quot;&lt;br /&gt;
:And that&#039;s it, off to sleep.&lt;br /&gt;
::[[User:Geyser|geyser]] 22:59, 30 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
:On second thought, about those roughs (mostly those of Kon&#039;s face)&lt;br /&gt;
:If there&#039;s enough to comment on (or complain about) on a pic-per-pic basis,&lt;br /&gt;
::then of course we can issue those comments on the &amp;quot;image page&amp;quot; ov every pic.&lt;br /&gt;
:Then you can either overwrite the pic with a new version, or upload it with a suffix (e.g. &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, ...)&lt;br /&gt;
:*If you overwrite the old image, you can keep the old around on an external server.&lt;br /&gt;
::(and show it along with the new one, like I did for the tandem ride [[:Image:Guido - Mai Tandem 2.jpg|HERE]])&lt;br /&gt;
:*If the image is a new one, its page can inherit the old discussion and/or link to the old page.&lt;br /&gt;
:Global comments on a group of images should probably go in some global talk page.&lt;br /&gt;
::(same as for the &amp;quot;nodes&amp;quot;, I think Mai&#039;s character study could/should go over to the Oni2 namespace)&lt;br /&gt;
:I understand &amp;quot;Kon&amp;quot; is a nice original touch, but in terms of Google hits it&#039;s about as ambiguous as Mai.&lt;br /&gt;
:So I&#039;d just put it [[Oni2:Konoko|HERE]], along with [[Oni2:Konoko|THIS]]. See you there. [EDIT. Both suggested pages are one and the same now [[User:Geyser|geyser]] ([[User talk:Geyser|talk]]) 13:35, 24 May 2018 (CEST)]&lt;br /&gt;
::[[User:Geyser|geyser]] 13:59, 27 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I am the first one who should complain about my drawings. I am disappointed by what I manage to do these days.&lt;br /&gt;
I lack the time, the concentration, and the sharp eye I used to have only half a year ago. Even when I find the time, all I get is just a fuzzy mess of sketches: each of them is just a clumsy reflection of what I&#039;ve been aiming at. There has always been a gap between my hand and my imagination: today it seems larger than ever. It does not depend on the subject I am focusing on, it has to do with a personal state. I hope I will find a way through it. Sadly there&#039;s no one who can show it up to me.&lt;br /&gt;
::[[User:Guido|guido]] 21:32 29 November 2006 (CET)&lt;br /&gt;
:Take your time, man. And try using the eraser more ^^ &amp;lt;&amp;lt; ACTUAL ADVICE&lt;br /&gt;
:Or listen to something else than NIN for a change ^^ &amp;lt;&amp;lt; STUPID JOKE!!!&lt;br /&gt;
::[[User:Geyser|geyser]] 22:59, 30 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
::re: tandem&lt;br /&gt;
::There&#039;s someone else how likes big bikes and black units. =) (taken from: Battle Angle Alita, Last Order 10) [&amp;lt;nowiki&amp;gt;http://www.webspace-invasion.com/jackd/Oni_Galore/Gunnm_(Mukade1).jpg&amp;lt;/nowiki&amp;gt; 1] [&amp;lt;nowiki&amp;gt;http://www.webspace-invasion.com/jackd/Oni_Galore/Gunnm_(Mukade2).jpg&amp;lt;/nowiki&amp;gt; 2] [&amp;lt;nowiki&amp;gt;http://www.webspace-invasion.com/jackd/Oni_Galore/Gunnm_(Mukade3).jpg&amp;lt;/nowiki&amp;gt; 3] [dead links]&lt;br /&gt;
::I found the analogy amusing, maybe you will get also this impression..&lt;br /&gt;
::The motorcycle might be thieved from Akira but I don&#039;t care^^&lt;br /&gt;
::His fight abilities &amp;quot;aren&#039;t bad&amp;quot; but more interesting is his ideology: he&#039;s mentioned as a hardcore anarchist and do not accept any hierarchy.&lt;br /&gt;
::That&#039;s the point where the analogy ends. In [[Oni2:Truth_Number_Zero|Truth Number Zero]] Mukade is an idealist, fighting for general human values and development in society. Zekka&#039;s interest lies in his personal freedom only. I overestimate this in state of my euphoria^^&lt;br /&gt;
:::[[User:Paradox-01|Paradox-01]] 18:15, 28 October 2007 (CET)&lt;br /&gt;
also tsutomu nihei has a penchant for dark suits and nasty bikes... check biomega, scanlations are available here [http://web.archive.org/web/20071029114337/http://omanga.net/]&lt;br /&gt;
:::[[User:Guido|Guido]] 15:30, 4 November 2007 (CET)&lt;br /&gt;
::It&#039;s perfect for getting nightmares, hehe. Now I&#039;ve a better imagination of extremely negative alienated Daodan beings. It was also quite inspirational, thanks.&lt;br /&gt;
::ps: The girls name is Ion and she adepted to the virus. So she has a dark side inside her - reminds me a bit on the [http://web.archive.org/web/20160224190715/http://oni.bungie.org/forum/viewtopic.php?id=30 iON/NO!]-thread.&lt;br /&gt;
:Heck, this is getting cluttered...&lt;br /&gt;
:&amp;quot;In Truth Number Zero Mukade is an idealist, fighting for general human values and development in society.&amp;quot;&lt;br /&gt;
:That&#039;s not quite true. If it&#039;s the Old Mukade you&#039;re referring to, his altruistic ways are far from obvious.&lt;br /&gt;
:And as for the New Mukade, he&#039;s increasingly alienated, even if he was a rational altruist to start with...&lt;br /&gt;
:I guess you can draw a parallel between Zekka and the Old Mukade in his early years as a freelance assassin.&lt;br /&gt;
:&amp;quot;The girls name is Ion and she adepted to the virus. So she has a dark side inside her&amp;quot; Gotta have a look.&lt;br /&gt;
::[[User:Geyser|geyser]] 18:18, 11 November 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
@Paradox: I am happy you liked Biomega. Nihei has been one of my fav artists so far. Despite his knowledge about anathomy and such is a bit questionable, I think he enjoys the rare gift of creating deep, unforgettable athmospheres, and developing a unique imaginery.&lt;br /&gt;
As Geyser told you - in truth number zero - Mukade is a name referring to two *separate* characters. The former draws close to the original concept of oldman and he represents the linking agent between the past order and the birth of Phoenix. The latter is the crafty ninja we all loved (or feared) in Oni. He is fundamentally what you get after a deadly combo of Hasegawa&#039;s researches , oldman&#039;s brain engrams, and a trial subject with daodan implanted.&lt;br /&gt;
::[[User:Guido|guido]] 21:47, 13 November 2007 (CET)&lt;br /&gt;
----&lt;br /&gt;
:Will you be discontinuing [http://oni2.blogspot.com/ THIS] as announced?&lt;br /&gt;
:(Practically, should we terminate the links to that blog?)&lt;br /&gt;
::[[User:Geyser|geyser]] 17:14, 27 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
:I feel sick, I feel depressed, I hate all I do. and all I know to do in such times is to be self-destructive.&lt;br /&gt;
:Apart from that, I got no comments. and  noticed how the access counter has been idle for long, too long.&lt;br /&gt;
:Anyway I am not going to close the oni2blog for a while (a couple of months at least). In any case I am intended to find a substitute for it.&lt;br /&gt;
:Maybe it is time to reconsider the idea of getting an Oni2.net account...&lt;br /&gt;
::[[User:Guido|guido]] 21:17 29 November 2006 (CET)&lt;br /&gt;
:Welcome to the &amp;quot;disgustipation&amp;quot; club. This is what you get when you &amp;quot;get creative&amp;quot;...&lt;br /&gt;
:(I used to have bipolar disorder a lot, and as you know I wouldn&#039;t call myself &amp;quot;cured&amp;quot;)&lt;br /&gt;
:On the subject of self-desctruction, late reply to you :&lt;br /&gt;
::if earth has become an evil place because of people, and we cannot escape it, what can we do?&lt;br /&gt;
::If we are confined in a place for all our life, and everything is getting worse, what shall we do?&lt;br /&gt;
:Quoting Seal, &amp;quot;no we&#039;re never gonna survive, unless we get a little crazy&amp;quot;... &#039;&#039;So&#039;&#039; true.&lt;br /&gt;
:Those for whom REM sleep is not enough &#039;&#039;have&#039;&#039; to freak out in a way or another to &amp;quot;deal&amp;quot; with reality.&lt;br /&gt;
:Practically, there are people who take chemicals and go to shrinks, and those who ought to. Like me. ^^&lt;br /&gt;
:And then your only hope is to be your own shrink, to take some distance with respect to your craze.&lt;br /&gt;
:That&#039;s when you have a chance to come up with a &amp;quot;way through&amp;quot; that doesn&#039;t destroy you completely.&lt;br /&gt;
::(I didn&#039;t realize you were quoting Reznor, not Frost, with that sig of yours...)&lt;br /&gt;
:Nice work, Guido. This is becoming an agony column. Or group therapy. Or something...&lt;br /&gt;
:You&#039;re always welcome on oni2.net. Alloc&#039;s contact info is on the main page of the server.&lt;br /&gt;
:Hope that helps. Expect a mail either before, during, or after this weekend ^^&lt;br /&gt;
::[[User:Geyser|geyser]] 22:59, 30 November 2006 (CET)&lt;br /&gt;
:Oh, BTW : seen &amp;quot;No one lives forever#Killer quote&amp;quot;?&lt;br /&gt;
::&amp;quot;Well, admitting you have a problem is the first step, I suppose. - I like to think so.&amp;quot;&lt;br /&gt;
:Rather fitting to the private hells of a few people I know...&lt;br /&gt;
::[[User:Geyser|geyser]] 22:59, 30 November 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
:guido&lt;br /&gt;
:I like the Black ops Konoko!&lt;br /&gt;
::[[User:EdT|EdT]] 04:11, 1 April 2007 (CEST)&lt;br /&gt;
:&lt;br /&gt;
:&lt;br /&gt;
Great pic (rendezvous). [[User:Ssg|Ssg]] 20:48, 20 December 2007 (CET)&lt;br /&gt;
Thank you, Ssg. As you already know I won&#039;t be active for quite a long while. However don&#039;t think I am leaving the OC community with no artists! Someone else is going to take my place, younger but surely talented and with new fresh ideas. [[User:Guido|Guido]] 12:35, 22 December 2007&lt;br /&gt;
&lt;br /&gt;
It&#039;s a pitty that you&#039;re leaving. Nevertheless, when you feel up to visit the community in the future, just drop by. As everyone you&#039;re always welcome. &lt;br /&gt;
&lt;br /&gt;
Thank you for your contributions. [[User:Ssg|Ssg]] 13:06, 22 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I also enjoy your contributions, Guido, and don&#039;t be so hard on yourself. Some people love everything they do, even when it&#039;s crappy. You, on the other hand, are very talented, so at least try to find a happy medium where you have &#039;&#039;some&#039;&#039; pride in your work. :-)&lt;br /&gt;
&lt;br /&gt;
Hope to see you around again when it is not a burden on your schedule, and check &amp;quot;Talk:Images#Konoko_V_Art&amp;quot; for my response to your last post. My &amp;quot;art&amp;quot; is meager and amateurish, but I would be honored to provide anything that can be fodder for a true artist. --[[User:Iritscen|Iritscen]] 21:37, 25 March 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
Thank you Iritscen. Hold on, some important deadlines are coming close for me. The end of my phd might be either painful or worthless mentioning, but I hold real hopes that I will be able to move back to Planet Oni after then.&lt;br /&gt;
::[[User:Guido|Guido]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Userspace]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni-likes_and_engine_ports&amp;diff=46179</id>
		<title>Oni-likes and engine ports</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni-likes_and_engine_ports&amp;diff=46179"/>
		<updated>2025-12-26T06:09:52Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After playing and replaying [[Oni]], fans often ask what other games are like Oni. Although none are a total match for Oni&#039;s gameplay, this article lists:&lt;br /&gt;
* games with high similarity to Oni,&lt;br /&gt;
* games with some similarity, and&lt;br /&gt;
* games inspired/influenced by Oni.&lt;br /&gt;
&lt;br /&gt;
At the end, we document past attempts by fans to recreate Oni in several different game engines.&lt;br /&gt;
&lt;br /&gt;
==Oni-like games==&lt;br /&gt;
The games in this list meet the following three criteria: (1) third-person action, (2) gunplay (defined as some kind of ranged weapons being commonly in use), and (3) deep melee (combat system has more than basic punches/kicks, e.g. combos and throws). See the next table for games that have some similarities to Oni but don&#039;t meet all these criteria.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Year&lt;br /&gt;
!Platform&lt;br /&gt;
!Female hero&lt;br /&gt;
!Cyberpunk(-ish)&lt;br /&gt;
!Anime-style&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Æon Flux (video game)|Æon Flux]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Alias (video game)|Alias]]&lt;br /&gt;
|2004&lt;br /&gt;
|PS2, Xbox, Win&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Bayonetta|Bayonetta 1–3]]&lt;br /&gt;
|2009–2022&lt;br /&gt;
|PS3–4, X360–XB1, Wii U–Switch&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:BloodRayne|BloodRayne 1–2]]&lt;br /&gt;
|2002–2004&lt;br /&gt;
|PS2, Xbox&amp;lt;ref name=&amp;quot;BloodRayne&amp;quot;&amp;gt;Remastered versions of the BloodRayne games were released in 2020 for Windows as BloodRayne/BloodRayne 2: Terminal Cut and in 2021 for PS4, PS5 and XB1 as BloodRayne/BloodRayne 2: ReVamped.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Death by Degrees|Death by Degrees]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Devil May Cry 3: Dante&#039;s Awakening|Devil May Cry 3]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2, Windows&amp;lt;ref&amp;gt;A remaster of DMC3: Special Edition was released together with Devil May Cry and Devil May Cry 2 in 2012 as the Devil May Cry HD Collection for PS3 and X360, and then the Collection was re-released in 2018 for Windows, PS4 and XB1.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Devil May Cry 4: Special Edition|Devil May Cry 4: Special Edition]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS4, XB1&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;The Special Edition adds two playable female characters, Lady and Trish.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Die Hard Arcade|Die Hard Arcade]]&lt;br /&gt;
|1996&lt;br /&gt;
|PS2, Saturn&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot;&amp;gt;You can choose the gender of the player-character.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Enter the Matrix|Enter the Matrix]]&lt;br /&gt;
|2003&lt;br /&gt;
|PS2, Xbox, Windows&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Fighting Force|Fighting Force]]&lt;br /&gt;
|1997&lt;br /&gt;
|PS1, N64, Win&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Ghost of Tsushima|Ghost of Tsushima]]&lt;br /&gt;
|2020&lt;br /&gt;
|PS4&amp;lt;ref&amp;gt;A Director&#039;s Cut version was released in 2021 for PS5 and in 2024 for Windows.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Star Wars Jedi Knight II: Jedi Outcast|Star Wars Jedi Knight II: Jedi Outcast]]&lt;br /&gt;
|2002&lt;br /&gt;
|Mac, Windows&amp;lt;ref&amp;gt;Later ported to PS4, Xbox One and Xbox Series X/S.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Star Wars Jedi Knight: Jedi Academy|Star Wars Jedi Knight: Jedi Academy]]&lt;br /&gt;
|2003&lt;br /&gt;
|Mac, Windows&amp;lt;ref&amp;gt;Later ported to PS4.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[State of Emergency]]&lt;br /&gt;
|2002&lt;br /&gt;
|PS2, Xbox, Windows&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:The Matrix: Path of Neo|The Matrix: Path of Neo]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2, Xbox, Windows&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Oni-comparable games==&lt;br /&gt;
These games don&#039;t meet all the criteria above for an Oni-like, but they still have similarities that may interest an Oni fan.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Year&lt;br /&gt;
!Platform&lt;br /&gt;
!Female hero&lt;br /&gt;
!Cyberpunk&amp;lt;br&amp;gt;(-ish)&lt;br /&gt;
!Anime-style&lt;br /&gt;
!Third-person&lt;br /&gt;
!Deep melee&lt;br /&gt;
!Gunplay&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Batman: Arkham Asylum|Batman: Arkham Asylum]]&lt;br /&gt;
|2009&lt;br /&gt;
|PS3, X360, Win&amp;lt;ref name=&amp;quot;Batman&amp;quot;&amp;gt;Remastered and re-released in 2016 for PS4 and XB1.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot;&amp;gt;The combat system is much more contextual than Oni&#039;s. &amp;quot;Contextual&amp;quot; means that the attack used is based on the physical relation of the player-character to the enemy – their relative positioning, distance, velocity, height – rather than on the specific input of the player. The main character will not launch an attack if the enemy is not in reach, and the attack used is determined by the engine, not the player.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Batman: Arkham City|Batman: Arkham City]]&lt;br /&gt;
|2011&lt;br /&gt;
|PS3, X360, Win&amp;lt;ref name=&amp;quot;Batman&amp;quot; /&amp;gt;&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;Catwoman has her own campaign as a playable character.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Batman: Arkham Knight|Batman: Arkham Knight]]&lt;br /&gt;
|2015&lt;br /&gt;
|PS4, XB1, Win&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;Partially; the game alternates between control of male and female characters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Buffy the Vampire Slayer (2002 video game)|Buffy the Vampire Slayer]]&lt;br /&gt;
|2002&lt;br /&gt;
|Xbox&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&amp;lt;ref name=&amp;quot;guns&amp;quot;&amp;gt;Guns or other ranged weapons are used in a limited way but the focus is on melee.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:EOE: Eve of Extinction|EOE: Eve of Extinction]]&lt;br /&gt;
|2002&lt;br /&gt;
|PS2&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Ghost in the Shell: Stand Alone Complex (2004 video game)|Ghost in the Shell: Stand Alone Complex]]&lt;br /&gt;
|2004&lt;br /&gt;
|PS2&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:God Hand|God Hand]]&lt;br /&gt;
|2006&lt;br /&gt;
|PS2&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Gunnm: Martian Memory|Gunnm: Martian Memory]]&lt;br /&gt;
|1998&lt;br /&gt;
|PS1&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Heavy Metal: F.A.K.K. 2|Heavy Metal: F.A.K.K. 2]]&lt;br /&gt;
|2000&lt;br /&gt;
|Windows&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.wolfire.com/lugaru/ Lugaru]&lt;br /&gt;
|2005&lt;br /&gt;
|Mac, Windows&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Metal Gear Rising: Revengeance|Metal Gear Rising: Revengeance]]&lt;br /&gt;
|2013&lt;br /&gt;
|PS3, X360&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&amp;lt;ref name=&amp;quot;guns&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Mirror&#039;s Edge|Mirror&#039;s Edge]]&lt;br /&gt;
|2008&lt;br /&gt;
|PS3, X360, Windows&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Mirror&#039;s Edge Catalyst|Mirror&#039;s Edge Catalyst]]&lt;br /&gt;
|2016&lt;br /&gt;
|PS4, XB1, Windows&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[https://overgrowth.wolfire.com/ Overgrowth]&lt;br /&gt;
|2017&lt;br /&gt;
|Mac, Windows&lt;br /&gt;
|No&amp;lt;ref&amp;gt;A female character model can be swapped in as the player-character using the built-in developer tools.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Remember Me (video game)|Remember Me]]&lt;br /&gt;
|2013&lt;br /&gt;
|PS3, X360&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;The melee is complex, but combo chains are assembled in menus, not performed ad hoc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Sifu (video game)|Sifu]]&lt;br /&gt;
|2022&lt;br /&gt;
|PS5, XSS/X, Win&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Star Wars Jedi: Fallen Order|Star Wars Jedi: Fallen Order]]&lt;br /&gt;
|2019&lt;br /&gt;
|PS4–5, XB1–XSS/X, Windows&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Star Wars Jedi: Survivor|Star Wars Jedi: Survivor]]&lt;br /&gt;
|2023&lt;br /&gt;
|PS4–5, XB1–XSS/X, Windows&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&amp;lt;ref name=&amp;quot;guns&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Tekken 4|Tekken 4]]&lt;br /&gt;
|2002&lt;br /&gt;
|PS2&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;tekken&amp;quot;&amp;gt;Although Tekken games are 2D fighters and would not normally be listed here, these specific titles have a mode called Tekken Force (Tekken 4), Devil Within (Tekken 5) or Campaign Mode (Tekken 6) where combat takes place in a free-roaming 3D environment. These are all broadly referred to as Tekken Force mode. Tekken Force mode debuted in Tekken 3 but in that game it was presented as a sidescrolling beat-&#039;em-up rather than true 3D free-roam. Tekken 8 only has a brief free-roam mode in the campaign&#039;s Chapter 10.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Tekken 5|Tekken 5]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;tekken&amp;quot; /&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Tekken 6|Tekken 6]]&lt;br /&gt;
|2009&lt;br /&gt;
|PS3, X360&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;tekken&amp;quot; /&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|No&amp;lt;ref name=&amp;quot;guns&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Wet (video game)|Wet]]&lt;br /&gt;
|2009&lt;br /&gt;
|PS3, X360&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Urban Chaos|Urban Chaos]]&lt;br /&gt;
|1999&lt;br /&gt;
|PS1, Windows&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Urban Reign|Urban Reign]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;Female characters can be unlocked and used in Free mode.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Wanted: Dead|Wanted: Dead]]&lt;br /&gt;
|2023&lt;br /&gt;
|PS4–5, XB1–XSS/X, Win&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Yakuza (franchise)|Yakuza 1-6 + 0]]&lt;br /&gt;
|2005–2016&lt;br /&gt;
|PS2–4, XB1&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&amp;lt;ref name=&amp;quot;guns&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Zeiram|ZeiramZone]]&lt;br /&gt;
|1996&lt;br /&gt;
|PS1&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Zeno Clash|Zeno Clash]] 1–3&amp;lt;ref&amp;gt;The third title is called Clash: Artifacts of Chaos.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|2009–2023&lt;br /&gt;
|X360–XSS/X, Win, PS3–4&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;Each title has a different mix of third-person and first-person combat, with the titles becoming more heavily third-person over the course of the series.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
!Year&lt;br /&gt;
!Platform&lt;br /&gt;
!Female hero&lt;br /&gt;
!Cyberpunk&amp;lt;br&amp;gt;(-ish)&lt;br /&gt;
!Anime-style&lt;br /&gt;
!Third-person&lt;br /&gt;
!Deep melee&lt;br /&gt;
!Gunplay&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Oni-inspired games==&lt;br /&gt;
These games, and thus their sequels, directly took inspiration from Oni&#039;s combat system during development, though in Lugaru&#039;s case the inspiration was somewhat contrary because the developer, David Rosen, did not like Oni&#039;s free, non-contextual combat and sought to make a game that would be fully contextual.&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt; If a game in this list has been released, it will also be found in one of the above tables.&lt;br /&gt;
&lt;br /&gt;
*Star Wars Jedi Knight II: Jedi Outcast and its sequel Star Wars Jedi Knight: Jedi Academy&lt;br /&gt;
*Lugaru and its sequel Overgrowth&lt;br /&gt;
*[https://raptagonstudios.com/hub/reikoneo-hub/ Reikoneo] (in development)&lt;br /&gt;
*[https://spine.game/ Spine] (in development)&lt;br /&gt;
&lt;br /&gt;
[[Image:Influence on Jedi Outcast.png|thumb|center|626px|Comment by a developer of Jedi Outcast under an Oni video on YouTube.]]&lt;br /&gt;
&lt;br /&gt;
==Engine ports==&lt;br /&gt;
These were attempts to create a new &amp;quot;Oni&amp;quot; in a more modern game engine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Engine&lt;br /&gt;
!Under development&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/20201029113001/http://oni.bungie.org/forum/viewtopic.php?id=3117 Ion Eyes]&lt;br /&gt;
|Unreal Engine 4&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[Konoko Payne]]&lt;br /&gt;
|Flexine&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.youtube.com/watch?v=j0v-hZZ_ofk Oni Deathmatch Multiplayer]&lt;br /&gt;
|GoldSrc&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/HoaxMovAxBx/Oni-Round2 Oni-Round2]&amp;lt;ref&amp;gt;Fork of original project that resided at &amp;lt;nowiki&amp;gt;https://github.com/6opoDuJIo/Oni-Round2&amp;lt;/nowiki&amp;gt; (dead link).&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Unity&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/20201127171917/http://oni.bungie.org/forum/viewtopic.php?id=3199 OniBGE]&lt;br /&gt;
|Blender Game Engine/UPBGE Eevee&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[Serious Konoko]]&lt;br /&gt;
|Serious Engine 2&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[UnrealOni]]&lt;br /&gt;
|Unreal Engine 4&lt;br /&gt;
|No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Fan-made games]][[Category:Real World]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni-likes_and_engine_ports&amp;diff=46178</id>
		<title>Oni-likes and engine ports</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni-likes_and_engine_ports&amp;diff=46178"/>
		<updated>2025-12-26T06:09:45Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After playing and replaying [[Oni]], fans often ask what other games are like Oni. Although none are a total match for Oni&#039;s gameplay, this article lists:&lt;br /&gt;
* games with high similarity to Oni,&lt;br /&gt;
* games with some similarity, and&lt;br /&gt;
* games inspired/influenced by Oni.&lt;br /&gt;
&lt;br /&gt;
At the end, we document past attempts by fans to recreate Oni in several different game engines.&lt;br /&gt;
&lt;br /&gt;
==Oni-like games==&lt;br /&gt;
The games in this list meet the following three criteria: (1) third-person action, (2) gunplay (defined as some kind of ranged weapons being commonly in use), and (3) deep melee (combat system has more than basic punches/kicks, e.g. combos and throws). See the next table for games that have some similarities to Oni but don&#039;t meet all these criteria.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Year&lt;br /&gt;
!Platform&lt;br /&gt;
!Female hero&lt;br /&gt;
!Cyberpunk(-ish)&lt;br /&gt;
!Anime-style&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Æon Flux (video game)|Æon Flux]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Alias (video game)|Alias]]&lt;br /&gt;
|2004&lt;br /&gt;
|PS2, Xbox, Win&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Bayonetta|Bayonetta 1–3]]&lt;br /&gt;
|2009–2022&lt;br /&gt;
|PS3–4, X360–XB1, Wii U–Switch&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:BloodRayne|BloodRayne 1–2]]&lt;br /&gt;
|2002–2004&lt;br /&gt;
|PS2, Xbox&amp;lt;ref name=&amp;quot;BloodRayne&amp;quot;&amp;gt;Remastered versions of the BloodRayne games were released in 2020 for Windows as BloodRayne/BloodRayne 2: Terminal Cut and in 2021 for PS4, PS5 and XB1 as BloodRayne/BloodRayne 2: ReVamped.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Death by Degrees|Death by Degrees]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Devil May Cry 3: Dante&#039;s Awakening|Devil May Cry 3]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2, Windows&amp;lt;ref&amp;gt;A remaster of DMC3: Special Edition was released together with Devil May Cry and Devil May Cry 2 in 2012 as the Devil May Cry HD Collection for PS3 and X360, and then the Collection was re-released in 2018 for Windows, PS4 and XB1.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Devil May Cry 4: Special Edition|Devil May Cry 4: Special Edition]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS4, XB1&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;The Special Edition adds two playable female characters, Lady and Trish.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Die Hard Arcade|Die Hard Arcade]]&lt;br /&gt;
|1996&lt;br /&gt;
|PS2, Saturn&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot;&amp;gt;You can choose the gender of the player-character.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Enter the Matrix|Enter the Matrix]]&lt;br /&gt;
|2003&lt;br /&gt;
|PS2, Xbox, Windows&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Fighting Force|Fighting Force]]&lt;br /&gt;
|1997&lt;br /&gt;
|PS1, N64, Win&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Ghost of Tsushima|Ghost of Tsushima]]&lt;br /&gt;
|2020&lt;br /&gt;
|PS4&amp;lt;ref&amp;gt;A Director&#039;s Cut version was released in 2021 for PS5 and in 2024 for Windows.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Star Wars Jedi Knight II: Jedi Outcast|Star Wars Jedi Knight II: Jedi Outcast]]&lt;br /&gt;
|2002&lt;br /&gt;
|Mac, Windows&amp;lt;ref&amp;gt;Later ported to PS4, Xbox One and Xbox Series X/S.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Star Wars Jedi Knight: Jedi Academy|Star Wars Jedi Knight: Jedi Academy]]&lt;br /&gt;
|2003&lt;br /&gt;
|Mac, Windows&amp;lt;ref&amp;gt;Later ported to PS4.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[State of Emergency]]&lt;br /&gt;
|2002&lt;br /&gt;
|PS2, Xbox, Windows&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:The Matrix: Path of Neo|The Matrix: Path of Neo]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2, Xbox, Windows&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Oni-comparable games==&lt;br /&gt;
These games don&#039;t meet all the criteria above for an Oni-like, but they still have similarities that may interest an Oni fan.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Year&lt;br /&gt;
!Platform&lt;br /&gt;
!Female hero&lt;br /&gt;
!Cyberpunk&amp;lt;br&amp;gt;(-ish)&lt;br /&gt;
!Anime-style&lt;br /&gt;
!Third-person&lt;br /&gt;
!Deep melee&lt;br /&gt;
!Gunplay&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Batman: Arkham Asylum|Batman: Arkham Asylum]]&lt;br /&gt;
|2009&lt;br /&gt;
|PS3, X360, Win&amp;lt;ref name=&amp;quot;Batman&amp;quot;&amp;gt;Remastered and re-released in 2016 for PS4 and XB1.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot;&amp;gt;The combat system is much more contextual than Oni&#039;s. &amp;quot;Contextual&amp;quot; means that the attack used is based on the physical relation of the player-character to the enemy – their relative positioning, distance, velocity, height – rather than on the specific input of the player. The main character will not launch an attack if the enemy is not in reach, and the attack used is determined by the engine, not the player.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Batman: Arkham City|Batman: Arkham City]]&lt;br /&gt;
|2011&lt;br /&gt;
|PS3, X360, Win&amp;lt;ref name=&amp;quot;Batman&amp;quot; /&amp;gt;&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;Catwoman has her own campaign as a playable character.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Batman: Arkham Knight|Batman: Arkham Knight]]&lt;br /&gt;
|2015&lt;br /&gt;
|PS4, XB1, Win&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;Partially; the game alternates between control of male and female characters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Buffy the Vampire Slayer (2002 video game)|Buffy the Vampire Slayer]]&lt;br /&gt;
|2002&lt;br /&gt;
|Xbox&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&amp;lt;ref name=&amp;quot;guns&amp;quot;&amp;gt;Guns or other ranged weapons are used in a limited way but the focus is on melee.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:EOE: Eve of Extinction|EOE: Eve of Extinction]]&lt;br /&gt;
|2002&lt;br /&gt;
|PS2&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Ghost in the Shell: Stand Alone Complex (2004 video game)|Ghost in the Shell: Stand Alone Complex]]&lt;br /&gt;
|2004&lt;br /&gt;
|PS2&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:God Hand|God Hand]]&lt;br /&gt;
|2006&lt;br /&gt;
|PS2&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Gunnm: Martian Memory|Gunnm: Martian Memory]]&lt;br /&gt;
|1998&lt;br /&gt;
|PS1&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Heavy Metal: F.A.K.K. 2|Heavy Metal: F.A.K.K. 2]]&lt;br /&gt;
|2000&lt;br /&gt;
|Windows&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.wolfire.com/lugaru/ Lugaru]&lt;br /&gt;
|2005&lt;br /&gt;
|Mac, Windows&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Metal Gear Rising: Revengeance|Metal Gear Rising: Revengeance]]&lt;br /&gt;
|2013&lt;br /&gt;
|PS3, X360&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&amp;lt;ref name=&amp;quot;guns&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Mirror&#039;s Edge|Mirror&#039;s Edge]]&lt;br /&gt;
|2008&lt;br /&gt;
|PS3, X360, Windows&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Mirror&#039;s Edge Catalyst|Mirror&#039;s Edge Catalyst]]&lt;br /&gt;
|2016&lt;br /&gt;
|PS4, XB1, Windows&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[https://overgrowth.wolfire.com/ Overgrowth]&lt;br /&gt;
|2017&lt;br /&gt;
|Mac, Windows&lt;br /&gt;
|No&amp;lt;ref&amp;gt;A female character model can be swapped in as the player-character using the built-in developer tools.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Remember Me (video game)|Remember Me]]&lt;br /&gt;
|2013&lt;br /&gt;
|PS3, X360&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;The melee is complex, but combo chains are assembled in menus, not performed ad hoc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Sifu (video game)|Sifu]]&lt;br /&gt;
|2022&lt;br /&gt;
|PS5, XSS/X, Win&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Star Wars Jedi: Fallen Order|Star Wars Jedi: Fallen Order]]&lt;br /&gt;
|2019&lt;br /&gt;
|PS4–5, XB1–XSS/X, Windows&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Star Wars Jedi: Survivor|Star Wars Jedi: Survivor]]&lt;br /&gt;
|2023&lt;br /&gt;
|PS4–5, XB1–XSS/X, Windows&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt;&lt;br /&gt;
|No&amp;lt;ref name=&amp;quot;guns&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Tekken 4|Tekken 4]]&lt;br /&gt;
|2002&lt;br /&gt;
|PS2&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;tekken&amp;quot;&amp;gt;Although Tekken games are 2D fighters and would not normally be listed here, these specific titles have a mode called Tekken Force (Tekken 4), Devil Within (Tekken 5) or Campaign Mode (Tekken 6) where combat takes place in a free-roaming 3D environment. These are all broadly referred to as Tekken Force mode. Tekken Force mode debuted in Tekken 3 but in that game it was presented as a sidescrolling beat-&#039;em-up rather than true 3D free-roam. Tekken 8 only has a brief free-roam mode in the campaign&#039;s Chapter 10.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Tekken 5|Tekken 5]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;tekken&amp;quot; /&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Tekken 6|Tekken 6]]&lt;br /&gt;
|2009&lt;br /&gt;
|PS3, X360&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;gender&amp;quot; /&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&amp;lt;ref name=&amp;quot;tekken&amp;quot; /&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|No&amp;lt;ref name=&amp;quot;guns&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Wet (video game)|Wet]]&lt;br /&gt;
|2009&lt;br /&gt;
|PS3, X360&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Urban Chaos|Urban Chaos]]&lt;br /&gt;
|1999&lt;br /&gt;
|PS1, Windows&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Urban Reign|Urban Reign]]&lt;br /&gt;
|2005&lt;br /&gt;
|PS2&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;Female characters can be unlocked and used in Free mode.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Wanted: Dead|Wanted: Dead]]&lt;br /&gt;
|2023&lt;br /&gt;
|PS4–5, XB1–XSS/X, Win&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Yakuza (franchise)|Yakuza 1-6 + 0]]&lt;br /&gt;
|2005–2016&lt;br /&gt;
|PS2–4, XB1&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&amp;lt;ref name=&amp;quot;guns&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Zeiram|ZeiramZone]]&lt;br /&gt;
|1996&lt;br /&gt;
|PS1&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[wp:Zeno Clash|Zeno Clash]] 1–3&amp;lt;ref&amp;gt;The third title is called Clash: Artifacts of Chaos.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|2009–2023&lt;br /&gt;
|X360–XSS/X, Win, PS3–4&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&amp;lt;ref&amp;gt;Each title has a different mix of third-person and first-person combat, with the titles becoming more heavily third-person over the course of the series.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
!Year&lt;br /&gt;
!Platform&lt;br /&gt;
!Female hero&lt;br /&gt;
!Cyberpunk&amp;lt;br&amp;gt;(-ish)&lt;br /&gt;
!Anime-style&lt;br /&gt;
!Third-person&lt;br /&gt;
!Deep melee&lt;br /&gt;
!Gunplay&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Oni-inspired games==&lt;br /&gt;
These games, and thus their sequels, directly took inspiration from Oni&#039;s combat system during development, though in Lugaru&#039;s case the inspiration was somewhat contrary because the developer, David Rosen, did not like Oni&#039;s free, non-contextual combat and sought to make a game that would be fully contextual.&amp;lt;ref name=&amp;quot;contextual&amp;quot; /&amp;gt; If a game in this list has been released, it will also be found in one of the above tables.&lt;br /&gt;
&lt;br /&gt;
*Star Wars Jedi Knight II: Jedi Outcast and its sequel Star Wars Jedi Knight: Jedi Academy&lt;br /&gt;
*Lugaru and its sequel Overgrowth&lt;br /&gt;
*[https://raptagonstudios.com/hub/reikoneo-hub/ Reikoneo] (in development)&lt;br /&gt;
*[https://spine.game/ Spine] (in development)&lt;br /&gt;
&lt;br /&gt;
[[Image:Influence on Jedi Outcast.png|thumb|center|626px|Comment by a developer of Jedi Outcast under an Oni video on YouTube.]]&lt;br /&gt;
&lt;br /&gt;
==Engine ports==&lt;br /&gt;
These were attempts to create a new &amp;quot;Oni&amp;quot; in a more modern game engine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Engine&lt;br /&gt;
!Under development&lt;br /&gt;
|-&lt;br /&gt;
|[http://oni.bungie.org/forum/viewtopic.php?id=3117 Ion Eyes]&lt;br /&gt;
|Unreal Engine 4&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[Konoko Payne]]&lt;br /&gt;
|Flexine&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.youtube.com/watch?v=j0v-hZZ_ofk Oni Deathmatch Multiplayer]&lt;br /&gt;
|GoldSrc&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/HoaxMovAxBx/Oni-Round2 Oni-Round2]&amp;lt;ref&amp;gt;Fork of original project that resided at &amp;lt;nowiki&amp;gt;https://github.com/6opoDuJIo/Oni-Round2&amp;lt;/nowiki&amp;gt; (dead link).&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Unity&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/20201127171917/http://oni.bungie.org/forum/viewtopic.php?id=3199 OniBGE]&lt;br /&gt;
|Blender Game Engine/UPBGE Eevee&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[Serious Konoko]]&lt;br /&gt;
|Serious Engine 2&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|[[UnrealOni]]&lt;br /&gt;
|Unreal Engine 4&lt;br /&gt;
|No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Fan-made games]][[Category:Real World]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni2:Slaves_of_War/Overview&amp;diff=46177</id>
		<title>Oni2:Slaves of War/Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni2:Slaves_of_War/Overview&amp;diff=46177"/>
		<updated>2025-12-26T06:09:36Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Backstory==&lt;br /&gt;
Oni&#039;s timeline has already veered away from ours — for instance, we have passed the start of the World Coalition Government (the manual says &amp;quot;2032&amp;quot;, but this is [http://web.archive.org/web/20210324174419/http://oni.bungie.org/forum/viewtopic.php?pid=52887#p52887 meant to say] &amp;quot;2012&amp;quot;, the same year the Freedom Riots happened), the development of phase technology ([[Quotes/Weapons#ph_stream|first used in 2012]]), and the beginning of the BioCrisis — but it&#039;s possible to reconcile all the differences in our timeline and Oni&#039;s by tying them to a single point of divergence in history and calling Oni&#039;s timeline an [[wp:Alternate_history|alternate history]]. This also makes everything easier to explain to the audience.&lt;br /&gt;
&lt;br /&gt;
Before continuing, an unanswered question from Oni is how Hasegawa could have invented the Daodan Chrysalis. It&#039;s way too advanced to be a mere next step in the technology of the time, and he only had up to 3 years to do it, since the [[Quotes/Manual#Konoko|manual says]] Konoko was orphaned (meaning, separated from her dad) at age 3. My approach to the backstory has Hasegawa inventing the &#039;&#039;Chrysalis&#039;&#039; — the implantable form of the Daodan — but not the Daodan itself.&lt;br /&gt;
&lt;br /&gt;
As the basis for Oni&#039;s alternate history timeline, my point of divergence occurs in 2000 AD when a scientist in Oni&#039;s timeline develops phase technology. This allowed contact between our world and another place. In our timeline, some small difference caused this technology to not be discovered. In Oni’s timeline, while experimenting with the &amp;quot;phase veil&amp;quot;, some small seed or seeds of life slipped through into Oni’s world unseen. This foreign life was able to grow even in Earth’s environment because it was Daodan-enhanced; all life is, in this other place.&lt;br /&gt;
&lt;br /&gt;
According to this premise, the atmosphere is becoming toxic not because of industrial pollution (as the fans tend to assume, but is never stated) but because Daodan-enhanced life is coming through the phase veil and taking root here, [https://sf-encyclopedia.com/entry/xenoforming xenoforming] our planet to resemble their home. At first it is only simpler kinds of life, like bacteria and plants, but as those flourish here, larger alien life forms which depend on the simpler life as food are able to live here too.&lt;br /&gt;
&lt;br /&gt;
By 2012, a few things happened as a result. For one, the BioCrisis was serious enough that the WCG had to be formed. The manual states that the purpose of unifying the nations of the world was to avoid the spiraling debt that many were in. In our timeline, some countries are in financial trouble, but in Oni&#039;s, the situation was made worse by having to deal with the gradual toxification of the atmosphere, which led to the construction of Wilderness Preserves and Atmospheric Conversion Centers.&lt;br /&gt;
&lt;br /&gt;
After Jamie’s death, Hasegawa analyzed the Wilderness to find an answer as to what killed her and what made the Preserve so dangerous, and he noticed that the same genetic signature/process was occurring in all the hostile/alien plant life. Naming it the Daodan (&amp;quot;[http://oni.bungie.org/forum/viewtopic.php?pid=52760#p52760 troublemaker]&amp;quot;), he then decided that if humans had this same extraterrestrial process inside them, they could adapt to the xenoformed environment in the same way that this life is adapting to (and changing) Earth.&lt;br /&gt;
&lt;br /&gt;
This approach unifies the development of the Daodan Chrysalis, the reason for the WCG and the cause of the BioCrisis, and explains all of this with a single change in our recent past, which is the successful development of experimental phase technology in Oni&#039;s world and not ours.&lt;br /&gt;
&lt;br /&gt;
==Premise==&lt;br /&gt;
Oni 2 would take place months after Oni ends.&lt;br /&gt;
&lt;br /&gt;
After the events of Oni, the WCG is going to be staggered by the task of rebuilding the ACCs, and things will probably get pretty chaotic. The Syndicate knows at least some of the secrets of the Chrysalis and may try to sell them to the populace since the ACCs that formerly sheltered everyone will take a while to rebuild. And we can also assume that the Rebellion (who, depending on the version of the Oni manual you read, are either hinted at or [[Quotes/Manual#Pre-Mission_Briefing|directly mentioned]]) will see this as an opportunity to fight the WCG.&lt;br /&gt;
&lt;br /&gt;
Konoko (now going by her birth name Mai) will initially think that the Daodan Chrysalis is the solution to the problem, but will learn over the course of Oni 2 that it is actually the gravest threat of all. Her father (who she will be reunited with) still thinks that the Daodan is the answer, putting them in eventual conflict. She will at least temporarily work with the Rebellion while they share the same goals, and familiar faces from Oni will show up as reluctant allies and as old enemies. Additional possible factions include Daodan-powered warlords in the Wilderness, a WCG research group attempting to kill the Wilderness with nanotechnology, a [[Oni2:Slaves_of_War/Factions#Agency_RED|counter-symbiote WCG agency]] headed by Griffin, and Syndicate-funded nations that are breaking away from the WCG.&lt;br /&gt;
&lt;br /&gt;
The nature of the place on the other side of the phase veil will probably be an important component to the plot, explaining why the Daodan Chrysalis is not the panacea that Hasegawa thinks it is. One possibility is that, rather than a random alien environment, the &amp;quot;other side&amp;quot; is actually our distant past — a failed society populated by an alternate branch of evolved intelligent life. As they become aware that &amp;quot;our side&amp;quot; is their future and that this means they are one day going to disappear, they decide to come through the veil and take over the present. Mai is going to have to figure out how to stop this invasion plan and keep those ghosts of the past where they belong.&lt;br /&gt;
&lt;br /&gt;
The only problem with putting the Daodan back where they found it is that Daodan-based life on this side of the veil may depend on the Wilderness to live. An energy network composed of Screaming Cells and other living things could be the source of an Imago symbiote&#039;s energy, which leaves the question of what happens to Mai and other symbiotes if the Wilderness is removed from Earth.&lt;br /&gt;
&lt;br /&gt;
Due to the complexity of the story, potential exists for additional Oni sequels, or at least an Oni 3, but the story could also be told in a single game if necessary.&lt;br /&gt;
&lt;br /&gt;
==Themes==&lt;br /&gt;
Oni starts us off with a seemingly controlled situation; the WCG is in charge, putting the world into a kind of stasis. On a more personal level, Konoko has been trained as a cop and has an SLD assistant, and that world&#039;s all she&#039;s ever known. The end of Oni, however, leaves us with everything being turned on its head. Therefore, I think it&#039;s natural to be led to the notion of opposites, for both story-following and story-telling reasons:&lt;br /&gt;
&lt;br /&gt;
Oni =&amp;gt; Oni 2&amp;lt;br /&amp;gt;&lt;br /&gt;
Order-to-chaos =&amp;gt; Chaos-to-order&lt;br /&gt;
&lt;br /&gt;
Oni was about a seed of chaos growing in an orderly (controlled) world, and Oni 2 can be about a seed of order (control) growing amidst chaos. While everyone knows that destruction in games is fun, games like Okami have demonstrated that it can also be fun to restore a damaged world.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oni =&amp;gt; Oni 2&amp;lt;br /&amp;gt;&lt;br /&gt;
Isolation =&amp;gt; Belonging&lt;br /&gt;
&lt;br /&gt;
Oni was about Konoko working alone, losing anyone that she had left to trust, so let&#039;s make Oni 2 about working with others as part of a group (&amp;quot;&amp;lt;u&amp;gt;Someone&amp;lt;/u&amp;gt; left to trust&amp;quot;). Plus, I&#039;m inspired by Guido&#039;s art, in particular &#039;&#039;&#039;[[:Image:Guido - Rendezvous.jpg|this piece]]&#039;&#039;&#039;, which is my favorite. I really want to see Mai be part of a team like that — even if it turns out that not every member of the group is entirely allied or trustworthy....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oni =&amp;gt; Oni 2 (=&amp;gt; Oni 3)&amp;lt;br /&amp;gt;&lt;br /&gt;
Technology =&amp;gt; Nature (=&amp;gt; Spirit)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oni was about a world encompassed by technology, surrounded by concrete, plastic and glass. Oni 2 would open up the game&#039;s vista to show the natural world as well, without abandoning the cyberpunk aesthetic in the urban environments. Oni 3, if made, would advance in the direction of &amp;quot;spirit&amp;quot; or energy. The technology shown in the games would also advance from the genre of &#039;&#039;&#039;cyberpunk&#039;&#039;&#039; (with its focus on distinctly mechanical objects such as robots and cybernetic prosthetics) to &#039;&#039;&#039;biopunk&#039;&#039;&#039; (biological/genetic manipulation) in Oni 2, and then to &#039;&#039;&#039;nanopunk&#039;&#039;&#039; (nanotech tools and human augmentation) in Oni 3. In Oni 2, human-made biotech would be used in an attempt to neutralize Daodan hosts, and in Oni 3 nanomachines would also be used, however in the end the Daodan organism would prove superior to everything, and completely unstoppable, except by the symbiotes themselves. If the game series was only going to be a duology and not a trilogy, then I would probably work a modest amount of nanotech into the second game, but the overall story arc would not be as satisfying on this particular level since the idea is to have the Daodan &amp;quot;tried&amp;quot; by successive challenges and rise above them.&lt;br /&gt;
&lt;br /&gt;
==Conflict==&lt;br /&gt;
With the above in mind, here are the forms of conflict I would like to focus on:&lt;br /&gt;
&lt;br /&gt;
*Man vs. Man: there&#039;s going to be plenty of this kind of conflict all over the world — debates over whether the Daodan is needed or whether it&#039;s too risky; how to fight against the Wilderness, potentially with risky countermeasures; fights over land with working ACCs; fights with Syndicate warlords who want a piece of the world for themselves....&lt;br /&gt;
&lt;br /&gt;
*Man vs. Nature: the plot can serve as an analogue to the global conflict between our selfish desires as a race and the needs of the planet; is there no way to co-exist peacefully with the Wilderness, alien though it may be? This is the conundrum that all of mankind is facing, but especially Mai.&lt;br /&gt;
&lt;br /&gt;
*Man vs. Self: Mai feels guilty for the Cataclysm she caused. She&#039;s not sure she made the right choice, and after being betrayed by, or at least having to fight, her former agency as well as her brother, she has lost the ability to trust people. Her [[wiktionary:agon|agon]] is her inner guilt and her unwillingness to trust others, but she has to learn to trust and work with the other characters in order to prevent more disasters like the one she had to bring about the last time she worked alone. Finally, she&#039;s concerned about how her Imago form will turn out (if we don&#039;t have her already at that stage when Oni 2 begins). All of these are internal struggles that weigh down on Mai&#039;s psyche.&lt;br /&gt;
&lt;br /&gt;
Additional possible themes are (1) parental relationships — the need for us to become independent of our parents as we develop into our own person, and (2) preparing for the responsibility of parenthood — given that Mai will be reunited with her father, and given that the Chrysalis inside her could be considered a metaphor for pregnancy.&lt;br /&gt;
&lt;br /&gt;
==Gameplay==&lt;br /&gt;
Assuming we had the use of Oni&#039;s original engine, or had totally reproduced its behaviors, what areas can we work on for Oni 2? What areas of Oni needed improvement? The melee combat is probably the area we&#039;d need to focus on the least, as it is the most polished. Our time would be better spent in areas dictated by Oni 2&#039;s story, or by [[Review criticisms|criticisms]] of Oni. Too many bullet points on our feature list will result in another Oni project that takes longer than planned, so let&#039;s keep it to a minimum. Here&#039;s my suggestions for the bare minimum (see the top of my [[../Design|Design Notes]] for additional possible features):&lt;br /&gt;
&lt;br /&gt;
*Slightly improved melee: now with parrying, grappling, throw escapes.&lt;br /&gt;
*Slightly improved mobility: now with ledge-grabbing and more stealth options.&lt;br /&gt;
*Slightly improved AI: Enemies can now call or run for help. No blithely walking past KOed comrades when the area is supposedly secured.&lt;br /&gt;
*Multiplayer focus: emphasize multiplayer mode as much as the single-player story mode. Consider a co-op story mode as well as competitive and co-op MP levels.&lt;br /&gt;
*Power progression: Mai&#039;s powers develop over the course of Oni&#039;s story mode, like moves are unlocked over the course of Oni.&lt;br /&gt;
*Natural environments: this one could be a stumbling block for the Oni engine. We might need to re-write the 3D engine (or incorporate an open-source engine) in order to do complex outdoor scenery. If Mai and co. are supposed to be exploring the Wilderness, then this is an unavoidable issue. One specific concern I have is interactive flora. If you&#039;re in the middle of a bunch of bushes, do they actually quiver if you brush against them? Does the character push palm fronds out of their face as they walk? If the plants just sit there as static models, then we have a problem, especially because the Wilderness probably is a bit more lively than our everyday ferns and flowers and trees.&lt;br /&gt;
*Replayability: Oni 2 needn&#039;t be a long game if we make design choices that encourage the player to replay it. Various ways to extend the life of the game are: shapeshifter, multiplayer, and interactivity during cutscenes (see [[../Design#Free_agency|HERE]] for details).&lt;br /&gt;
&lt;br /&gt;
On the subject of the story mode&#039;s length, Oni is approximately 6-8 hours long if you take your time, and speed runs are only an hour long. This isn’t uncommon. Here’s an [https://arstechnica.com/gaming/2011/04/the-incredible-shrinking-game-the-truth-of-game-length-in-the-modern-industry/ article] about how even the biggest games these days are very short. An Oni 2 made by a few fans could be excused for being even shorter, if we take into account MP and the aforementioned replayability factors.&lt;br /&gt;
&lt;br /&gt;
Conversely, we might choose to label the big-budget blockbuster games like &#039;&#039;Uncharted&#039;&#039; and &#039;&#039;God of War&#039;&#039; as the “Hollywood approach” of gaming — creating those huge spectacles takes up a lot of the development process — and then label ourselves “indie filmmakers” by comparison. If we focus on building less &#039;&#039;expensive&#039;&#039; and more &#039;&#039;expansive&#039;&#039; areas as a fighting sandbox to provide hours of basic gameplay, with fewer specially-scripted events, we could conceivably create a game at least as long as Oni. This isn’t to say that we don’t want memorable cutscenes and boss fights, but we probably shouldn’t plan any events that require a lot of special coding just for one scene if we’re aiming for a lengthy game.&lt;br /&gt;
&lt;br /&gt;
==Art style==&lt;br /&gt;
More emphasis could be placed on Oni&#039;s animé heritage. This could be done with cel shading, though it&#039;s difficult to do this right. Even harder would be level design, specifically the texturing, since animé backgrounds are often impressionistic paintings and would not work in a game where you can get close to them.&lt;br /&gt;
&lt;br /&gt;
Alternately, a unique minimalistic look could be designed in a way that is low-cost to develop, such as a look that uses vibrant colors in place of detailed texture work, and uses accurate lighting to create realistic-feeling spaces.&lt;br /&gt;
&lt;br /&gt;
Emphasis can also be placed on memorable settings. Many of Oni&#039;s settings are industrial and not very fantastical, or are interesting but illogical, or are large but barren, or have potential but are poorly textured and improperly lit. Putting more effort into creating aesthetically enjoyable spaces for players to explore can be helpful when advertising the game and may encourage more replays of the game.&lt;br /&gt;
&lt;br /&gt;
If it is technologically feasible, we should bring much more life into the world, showcasing natural habitats with strange life in them.&lt;br /&gt;
&lt;br /&gt;
Also, being that Oni is science fiction, more thought should be put into the technology of the world, particularly since Oni&#039;s world has been affected by the BioCrisis, which would steer tech development in different directions from our world. Depicting novel technology will make the game world more interesting.&lt;br /&gt;
&lt;br /&gt;
Finally, pertaining to color...&amp;lt;br /&amp;gt;&lt;br /&gt;
Oni =&amp;gt; Oni 2 (=&amp;gt; Oni 3)&amp;lt;br /&amp;gt;&lt;br /&gt;
Blue =&amp;gt; Green (=&amp;gt; Yellow)&lt;br /&gt;
&lt;br /&gt;
Oni&#039;s logo sets up the color blue as the primary color of the game (though BWest did take steps to reduce the amount of blue actually used in levels), and this is fitting since the focus is on technology, typically represented by that color. Since Oni 2 would add the element of nature, its logo would be green in place of Oni&#039;s blue. Oni 3, if made, would use yellow as its thematic color to represent energy, change, and spirit. Of course, yellow is an overwhelming color and is best used sparingly, so it would be a frequent highlight/detail color but would not be allowed to dominate the color palette.&lt;br /&gt;
&lt;br /&gt;
==Loose Threads==&lt;br /&gt;
Things from Oni that we want to make reference to or develop on, even if trivially.&lt;br /&gt;
*[[:Image:TXMPPOSTER1.png|Hapémask]]&lt;br /&gt;
*The [[Quotes/Consoles/level 3a|Marionette project]]&lt;br /&gt;
*More advanced [[Quotes/Manual#Tech Note 2|SLD technology]]&lt;br /&gt;
*[[Quotes/Manual#Tech Note 2|Rogue SLDs]]&lt;br /&gt;
*[[Quotes/Consoles#Picasso_Island|Bertram Navarre]]&lt;br /&gt;
*[[Quotes/Consoles#Q-31_Railgun|Q-31 Railgun]]&lt;br /&gt;
*[[Deadly Brain]]s&lt;br /&gt;
*[[Quotes/Consoles#Black_market_goods|Theta wave scans]]&lt;br /&gt;
*[[Quotes/Speech#Really_really_misc_2|Funny]] [[Quotes/Speech#Dr._Kafelnikov|civilians]] and [[Quotes/Speech#The_Glorious_Deadly_Brain_Fight_(sic!)|general]] [[Quotes/Consoles#The_day_after|Bungie-style]] [[Quotes/Consoles#Emergency_overrides|humor]]&lt;br /&gt;
*[[Quotes/Consoles#Flatline_Zombies|Flatline zombies]]&lt;br /&gt;
*[[Quotes/Speech#Mutant_Muro_(Griffin_dead)|&amp;quot;I have accomplished everything our father dreamed of doing.&amp;quot;]]&lt;br /&gt;
*From the [[Quotes/Manual|manual]]:&lt;br /&gt;
**&amp;quot;An average family can afford a nice place to live, timeshare on a vehicle and a terminal that links them to the WorldNet.&amp;quot;&lt;br /&gt;
**&amp;quot;The poor wretches who can&#039;t afford to live in the cities get as close to the atmosphere processors as they can and eke out a miserable (and dangerous) existence working on the reclamation teams who beat back the corrosive stain of the wilderness.&amp;quot;&lt;br /&gt;
**&amp;quot;Biotech is to us what nukes were to our great grandparents&amp;quot;&lt;br /&gt;
**&amp;quot;cyber drugs&amp;quot;&lt;br /&gt;
**&amp;quot;Others claim a connection between the Syndicate and the remnants of the countries erased by the World Coalition Government&#039;s land grab.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Oni 2]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BGI&amp;diff=46176</id>
		<title>BGI</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BGI&amp;diff=46176"/>
		<updated>2025-12-26T06:09:27Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:BGI_logo.png|128px|thumb|Logo by [[User:Geyser|geyser]]&amp;lt;br&amp;gt;(click for details)]]&lt;br /&gt;
&#039;&#039;&#039;BGI&#039;&#039;&#039; is among the most diffuse entities in Oni, essentially because it was supposed to play a bigger part in the plot than it eventually did.&lt;br /&gt;
&lt;br /&gt;
==Canceled BGI HQ level==&lt;br /&gt;
This level was intended as a confrontation with the shadowy BGI, which was later excised from the story as Oni&#039;s development ran out of time. Unfinished scripts for this level can be found in [[European Mac releases]] and the [[Oni (PlayStation 2)|PS2 port]]. The scripts contain two fragmentary cutscenes. The first describes Konoko setting a bomb and taking cover, and the resulting explosion. The other cutscene introduces the [[Iron Demon]] that would end up getting cut from the game.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&#039;&#039;&#039;Only known screenshots labeled as BGI&#039;&#039;&#039; (click to enlarge)&lt;br /&gt;
|[[Image:BGI1.jpg|320px]]&lt;br /&gt;
|[[Image:BGI2.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:BGI3.jpg|320px]]&lt;br /&gt;
|[[Image:BGI4.jpg|320px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Regional State connection===&lt;br /&gt;
That architecture looks a bit like the [[Regional State Building]] in {{C9}}, which incidentally is linked to the Iron Demon through [[:Image:Konoko runs from Iron Demon.jpg|this image]] of Konoko being chased by it, and also [[:Image:1999 Trailer ID fight.jpg|this sequence]] from the [[Trailers#1999|1999 trailer]]. The building in that footage looks like Regional State, but maybe it was intended to be BGI? If so, many other pre-beta screenshots (or trailer snapshots) of the RSB architecture could in fact be glimpses of the BGI level.&lt;br /&gt;
&lt;br /&gt;
===TCTF connection===&lt;br /&gt;
{{Quotebox|align=none|width=850px|source=--[http://web.archive.org/web/20210309192255/http://oni.bungie.org/forum/viewtopic.php?pid=52737#p52737 Hardy LeBel], 2019|quote=The BGI level turned into TCTF HQ. [...] [A]ll of the levels in the game ultimately ended up being composites of architectural details that were stripped from various other pieces that the architects had made. The screenshots that you have of BGI were part of [an earlier, unused] building, as were a lot of the pieces of TCTF HQ.}}&lt;br /&gt;
Perhaps the real resemblance is to TCTF HQ?&lt;br /&gt;
&lt;br /&gt;
===Syndicate HQ===&lt;br /&gt;
The number of the level, 16, would place it after Konoko meets with Kerr in Science Prison and escapes from it, and before Konoko returns to the TCTF to confront Griffin – but that&#039;s only true if the current story was in place at the time. We know that content was shuffled around late in development – so late that Bungie West couldn&#039;t even contemplate renumbering the levels to match the new arrangement, and left gaps all over the place. These gaps are examined in detail under {{SectionLink|Pre-beta content|Cut levels}}.&lt;br /&gt;
&lt;br /&gt;
Of particular interest is that fact that Mountain Compound originally came much earlier in the level order (see {{SectionLink|Pre-beta content|Obsolete}}). Until it was moved to the end of the level order, the second-to-last level in the game would have been BGI at level16 followed by TCTF HQ Redux at level18. Significantly, Alex Okita labeled the four &amp;quot;BGI&amp;quot; images in his art gallery as &amp;quot;[http://jongod.oni2.net/UnarchivedFiles/ONI%20ARCHIVE%201/aic/oni400.html Syndicate headquarters]&amp;quot;, implying that the game would end with a one-two punch of destroying the Syndicate HQ and then the TCTF HQ. (More supporting evidence for the Syndicate = BGI connection is found at {{SectionLink|Pre-beta content|BGI HQ}}.)&lt;br /&gt;
&lt;br /&gt;
This implies that the Iron Demon at BGI HQ would be one of the final bosses in the game. The script&#039;s mention of a &amp;quot;roof bomb&amp;quot; and massive explosions heralded the destruction of the next-to-last level. The [[Oni/Early Story|Early Story]] ended the entire game with Konoko bringing down a building on everyone&#039;s heads, both the TCTF and the Syndicate, but with BGI HQ not being slated as the final mission, it&#039;s likely that the story had already changed by the time the BGI level was being scripted.&lt;br /&gt;
&lt;br /&gt;
==Mentions in final game==&lt;br /&gt;
===Chung&#039;s datapad===&lt;br /&gt;
{{:Quotes/Consoles/level_1e}}&lt;br /&gt;
&lt;br /&gt;
===Shuttling contraband===&lt;br /&gt;
{{Pullquote|The Syndicate is using the warehouse to shuttle contraband. Chung went underground to gather evidence. He failed to report in this morning. Find him and get me what I need to shut the place down or shut it down yourself.|Griffin|{{SectionLink|Speech|Intro}}|inset=0%}}&lt;br /&gt;
&lt;br /&gt;
One example of the kind of contraband being passed through the warehouse is railgun ammunition:&lt;br /&gt;
{{:Quotes/Consoles/level_1a}}&lt;br /&gt;
&lt;br /&gt;
There are also Atmospheric Densifiers (useful for [[STURMANDERUNG]]):&lt;br /&gt;
{{:Quotes/Consoles/level_1b}}&lt;br /&gt;
&lt;br /&gt;
Or it could have been something more… &amp;quot;fragile&amp;quot;; how did Musashi Manufacturing receive the human brain used for the [[Deadly Brain]] again?&lt;br /&gt;
{{:Quotes/Consoles/level_2a}}&lt;br /&gt;
&lt;br /&gt;
BGI was probably one of the Syndicate&#039;s &amp;quot;cleaner&amp;quot; corporations, even if it wasn&#039;t &#039;&#039;this&#039;&#039; one which took in the doctors after they did a job for the Syndicate.&lt;br /&gt;
&lt;br /&gt;
===Suspected Syndicate front===&lt;br /&gt;
{{Pullquote|Musashi is owned by BGI. According to your latest report BGI is a suspected Syndicate [[wp:Front_organization|front]]. If we can prove the connection we can move against them.|Konoko|{{SectionLink|Speech|Outro}}|inset=0%}}&lt;br /&gt;
&lt;br /&gt;
===Musashi blast doors and BGI vehicles===&lt;br /&gt;
{{:Quotes/Consoles/level_19a}}&lt;br /&gt;
&lt;br /&gt;
==Added value==&lt;br /&gt;
===Meaning of name===&lt;br /&gt;
Quoting [[Hardy LeBel]] from the old [http://carnage.bungie.org/oniforum/oni.forum.pl?read=19685 Oni Central Forum]:&lt;br /&gt;
:&#039;&#039;I shouldn&#039;t tell you this, but BGI was the placeholder name that we started using in the story documents before everything was finalized. It stood for Bad Guys International.&lt;br /&gt;
&lt;br /&gt;
===Status and role===&lt;br /&gt;
As can be inferred from Konoko&#039;s statements, BGI is some kind of &amp;quot;shadow front&amp;quot;: a big industrial consortium (probably multinational) that&#039;s pretty much legit, but is nevertheless suspected to deal with the infamous [[Syndicate]].&lt;br /&gt;
Whether it actually does and at what level and to what end is again sorta diffuse: is it opportunistic/mercenary, or is it subordinated to Muro?&lt;br /&gt;
&lt;br /&gt;
It&#039;s also not clear whether [[Konoko]]&#039;s and [[Griffin]]&#039;s zealous crackdown on BGI is supported by the rest of the [[TCTF]] and [[WCG]]. There&#039;s a subtle balance of power between the WCG and the Syndicate, and both sides (especially the WCG) are interested in preserving it. BGI is an ambiguous organization, poised between WCG and Syndicate, halfway between legal and illegal: a third party of its own.&lt;br /&gt;
&lt;br /&gt;
It would seem to [[User:geyser|me]] that even as the core of Muro&#039;s Syndicate got corrupted by [[Muro]]&#039;s [[wikt:megalomania|megalomania]] and the [[STURMANDERUNG]] perspective, BGI managed to retain the spirit of the pre-Muro Network and Syndicate: they stayed focused on steady business, as opposed to maniacal violence and global biological terrorism.&lt;br /&gt;
&lt;br /&gt;
As long as it helps shuttle the Syndicate&#039;s contraband, BGI actually stabilizes the bipolar structure. The Syndicate keeps itself busy and feels in power; the TCTF get a chance to reinforce their credibility as crime-fighters. Same for weapons, and the insecurity they generate: conflict helps the WCG to constantly reestablish itself in the public&#039;s eyes as the only alternative to chaos.&lt;br /&gt;
&lt;br /&gt;
Naturally the people behind BGI would be aware of that stabilizing role, and it would actually be quite understandable that the prospect of an all-out crisis (collapse of WCG&#039;s authority, anarchy brought about by [[Muro]]) should keep them &amp;quot;doing the Devil&#039;s work&amp;quot;: obstinately promoting skirmish-scale violence looks like the only way to keep Oni&#039;s world together.&lt;br /&gt;
&lt;br /&gt;
===Another idea===&lt;br /&gt;
After the [[Syndicate]] is contaminated by [[Muro]], since BGI are favorable to stability and so is the [[WCG]], what makes sense is a pact between the two. The WCG can not undergo militarization at the same rate as Muro&#039;s Strikers, but it can turn a blind eye at BGI and even encourage the creation of (perfectly illegal) technology supposed to deal, in time, with whatever threat Muro represents (cyborg supersoldiers rivaling [[Barabas]], Muro and [[Mukade]], weapons rivaling the [[WMC]]). Thus the WCG doesn&#039;t technically have an army, but it counts on the unofficial BGI rather than on the [[TCTF]] to stabilize the situation. [[Griffin]], however, is unaware of these developments and thinks the only chance to restore balance is to &amp;quot;fight fire with fire&amp;quot;, i.e., to make [[Konoko]] into the same kind of human weapon as Muro is. The WCG can&#039;t let Griffin know about the pact with BGI and will thus seek other ways to disrupt the [[Daodan]] project, either through investigations questioning the project&#039;s ethics and safety, or through sabotage. And of course things will &#039;&#039;really&#039;&#039; go wrong when Konoko encounters and disrupts the very entity that was supposed to counter Muro: BGI. (This concept is elaborated on in [[User:Iritscen|my]] plan for [[User:Iritscen/BGI|a BGI level]].)&lt;br /&gt;
&lt;br /&gt;
===Real BGIs===&lt;br /&gt;
There is a real-world entity named [[wp:BGI Group|BGI]], founded in 1999, which works with the human genome and other genetic data.&lt;br /&gt;
&lt;br /&gt;
There&#039;s an unrelated [https://bgigroup.ca/projects-1 BGI Group] which constructs massive buildings in the U.S., Canada and Panama.&lt;br /&gt;
&lt;br /&gt;
There was also a real-world company named [https://web.archive.org/web/20250926063314/https://www.bgiworldwide.com/ BGI Worldwide Logistics], no relation to [[User:Iritscen/BGI/Overview|this]].&lt;br /&gt;
&lt;br /&gt;
Lastly, let&#039;s not overlook [https://binarygroup.com/ Binary Group, Inc.], which does… something we&#039;re not entirely clear on. &amp;quot;Transformational initiatives&amp;quot;? The fact that they have a connection to the &#039;&#039;&#039;DoD&#039;&#039;&#039; while also doing &amp;quot;&#039;&#039;&#039;[https://www.theguardian.com/world/2013/jun/09/edward-snowden-nsa-whistleblower-surveillance Asset]&#039;&#039;&#039; Management&amp;quot; makes them extra-shady.&lt;br /&gt;
&lt;br /&gt;
[[Category:Added value]][[Category:BGI]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Windows_Shell_Extension&amp;diff=46175</id>
		<title>Windows Shell Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Windows_Shell_Extension&amp;diff=46175"/>
		<updated>2025-12-26T06:09:11Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows you can right-click a file to show a context-menu and choose from various options.&lt;br /&gt;
&lt;br /&gt;
There can be customized options for specific file types if you add registry keys to both &#039;&#039;&#039;HKEY_CLASSES_ROOT&#039;&#039;&#039; (or &#039;&#039;&#039;HKEY_LOCAL_MACHINE&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Originally, [http://web.archive.org/web/20160226095407/http://oni.bungie.org/forum/viewtopic.php?pid=10487#p10487 Gumby wrote such a shell extension] but it refuses to work on some systems. Either Windows 10 needs HKEY_LOCAL_MACHINE as well or other registry settings of other programs are interfering.&lt;br /&gt;
&lt;br /&gt;
==Setup for oni. file type==&lt;br /&gt;
&#039;&#039;&#039;HKEY_CLASSES_ROOT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Windows Registry Editor Version 5.00&lt;br /&gt;
 &lt;br /&gt;
 [HKEY_CLASSES_ROOT\.oni]&lt;br /&gt;
 &lt;br /&gt;
 [HKEY_CLASSES_ROOT\.oni\shell]&lt;br /&gt;
 &lt;br /&gt;
 [HKEY_CLASSES_ROOT\.oni\shell\OniSplit_or_OniSplitGUI]&lt;br /&gt;
 @=&amp;quot;Command name to be displayed in context menu&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 [HKEY_CLASSES_ROOT\.oni\shell\OniSplit_or_OniSplitGUI\command]&lt;br /&gt;
 @=&amp;quot;\&amp;quot;C:\\PATH\\Batch_for_OniSplit_or_OniSplitGUI.exe\&amp;quot; \&amp;quot;%1\&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HKEY_LOCAL_MACHINE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Windows Registry Editor Version 5.00&lt;br /&gt;
 &lt;br /&gt;
 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.oni]&lt;br /&gt;
 &lt;br /&gt;
 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.oni\shell]&lt;br /&gt;
 &lt;br /&gt;
 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.oni\shell\OniSplit_or_OniSplitGUI]&lt;br /&gt;
 @=&amp;quot;Command name to be displayed in context menu&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.oni\shell\OniSplit_or_OniSplitGUI\command]&lt;br /&gt;
 @=&amp;quot;\&amp;quot;C:\\PATH\\Batch_for_OniSplit_or_OniSplitGUI.exe\&amp;quot; \&amp;quot;%1\&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setup for .xml file type==&lt;br /&gt;
Since .xml is a widly used file extension there seem to be additional settings had override the default lookups for better management.&lt;br /&gt;
&lt;br /&gt;
The .xml key at HKEY_LOCAL_MACHINE\SOFTWARE\Classes has a &#039;&#039;&#039;Default value (redirect)&#039;&#039;&#039; with &amp;quot;&#039;&#039;&#039;xmlfile&#039;&#039;&#039;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
If you remove the xmlfile value then Classes\xmlfile will be looked up nonetheless. (Doublecheck on other machines.)&lt;br /&gt;
&lt;br /&gt;
So, next reg path to modify is this:&lt;br /&gt;
&lt;br /&gt;
 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\xmlfile\shell\OniSplit_or_OniSplitGUI]&lt;br /&gt;
 &lt;br /&gt;
 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\xmlfile\shell\OniSplit_or_OniSplitGUI\command]&lt;br /&gt;
 @=&amp;quot;\&amp;quot;C:\\PATH\\Batch_for_OniSplit_or_OniSplitGUI.exe\&amp;quot; \&amp;quot;%1\&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes for repair after standard application changed==&lt;br /&gt;
When you change xml standard application following gets added and breaks the context menu options:&lt;br /&gt;
 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xml\UserChoice]&lt;br /&gt;
&lt;br /&gt;
As soon as you remove this key context menu works again. However this removes the possibility to double-click .xml to open them.&lt;br /&gt;
&lt;br /&gt;
Somthing is still missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Advanced conversions==&lt;br /&gt;
If another program handles OniSplit and automatically feeds it with the right arguments you would only need one explorer context menu option such as:&lt;br /&gt;
&lt;br /&gt;
 add to OniSplit helper list and process &lt;br /&gt;
&lt;br /&gt;
Some conversions require more than one input file. In that case can collect the other files first:&lt;br /&gt;
&lt;br /&gt;
 add to OniSplit helper list&lt;br /&gt;
&lt;br /&gt;
Additional, useful options might be:&lt;br /&gt;
&lt;br /&gt;
 repeat last OniSplit helper conversion&lt;br /&gt;
 clear OniSplit helper list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Install and uninstall==&lt;br /&gt;
A less tech-savvy modder shouldn&#039;t need to deal with registry settings.&lt;br /&gt;
&lt;br /&gt;
AEI could be used to distribute an OniSplitHelper tool that manages the registry.&lt;br /&gt;
&lt;br /&gt;
Perhaps &amp;quot;Vago&amp;quot; and &amp;quot;Simple Onisplit GUI&amp;quot; could be adapted to do that.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding ideas]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL_talk:Functions&amp;diff=46174</id>
		<title>BSL talk:Functions</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL_talk:Functions&amp;diff=46174"/>
		<updated>2025-12-26T06:08:50Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==table design?==&lt;br /&gt;
&lt;br /&gt;
:geyser, is this about what you wanted?&lt;br /&gt;
:I have to do it over again, as I screwed a few things up...&lt;br /&gt;
:How do you leave a box empty? Just put a space in?&lt;br /&gt;
:Also, the types need listing...&lt;br /&gt;
::;The Mystery Man ^_^&lt;br /&gt;
[[User:Gumby|Gumby]]&lt;br /&gt;
:Dear sir. Either log in or sign, preferably both.&lt;br /&gt;
:I&#039;d prefer if signatures were listed in a tidier way.&lt;br /&gt;
:(I mean function signatures, not people&#039;s sigs ^_^)&lt;br /&gt;
:There is currently an example table in the [[sandbox]].&lt;br /&gt;
:I wouldn&#039;t give one-line examples in such a table...&lt;br /&gt;
:Instead, I&#039;d provide console-powered mini-tutorials.&lt;br /&gt;
:For example, see what I put here: [[ai2_allpassive]].&lt;br /&gt;
:Such a mini-tut is more flexible than a table cell.&lt;br /&gt;
:And we&#039;ll be basically building a tutorial as we go.&lt;br /&gt;
::[[User:Geyser|geyser]] 03:03, 22 January 2008 (CET)&lt;br /&gt;
{|border=1 cellspacing=0 cellpadding=1&lt;br /&gt;
!Type!!Name!!Arguments!!Description!!Example&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_active||[ai_name:string | script_id:int]||forces an AI into active mode&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_attack||[ai_name:string | script_id:int] [target_name:string | target_script_id:int]||forces an AI to attack another character||ai2_attack IntroNinja 0&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_barabbas_retrievegun||[ai_name:string | script_id:int]||makes barabbas retrieve his gun if it is lost||ai2_barabbas_retrievegun barabus&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_barabbas_run||lets Barabbas run while carrying his gun&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_chump (null)||creates a chump&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_chump_stop||stops the chump&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_comehere||[ai_name:string | script_id:int]||tells an AI to come to the player&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_doalarm||[ai_name:string | script_id:int] [console_id:int]||tells an AI to run for an alarm||ai2_doalarm ambush_commguy_2 4&lt;br /&gt;
&#039;&#039;if the AI is passive, ai2_doalarm cannot be executed&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_dopath||[ai_name:string | script_id:int] path_name:string||tells an AI to run a particular path||ai2_dopath A_E3 patrol_49&lt;br /&gt;
&#039;&#039;if the AI is passive, ai2_dopath cannot be executed&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_followme||[ai_name:string | script_id:int]||tells an AI to follow the player||ai2_followme s2_t05&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_forget||[ai_name:string | script_id:int] [forget_char:string]||makes one or all AIs forget they saw anything||ai2_forget Sec_Ambush_BOL_1&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_idle||[ai_name:string | script_id:int]||tells an AI to become idle||ai2_idle A1_intro01|||&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_inactive||[ai_name:string | script_id:int]||forces an AI into inactive mode&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_kill||[param1:string] [param2:string]||kills one or more AIs||ai2_kill ScanKerr01 // ai2_kill&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_lookatchar||[ai_name:string | script_id:int] [ai_name:string | script_id:int]||tells an AI to look at a character||ai2_lookatchar 0 Barabus&lt;br /&gt;
&#039;&#039;needs ai2_takecontrol 1 if Konoko should do that&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_lookatme||[ai_name:string | script_id:int]||tells an AI to look at the player||ai2_lookatme s2_t05&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_makeaware||[ai_name:string | script_id:int] [target_name:string | target_script_id:int]||makes an AI aware of another character||ai2_makeaware GrifElite04 char_0&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_makeblind||[ai_name:string | script_id:int] on_off:int{0 | 1}||makes a single AI blind||ai2_makeblind ShinShin 1&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_makedeaf||[ai_name:string | script_id:int] on_off:int{0 | 1}||makes a single AI deaf||ai2_makedeaf ShinShin 1&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_makeignoreplayer||[ai_name:string | script_id:int] on_off:int{0 | 1}||makes a single AI ignore the player||ai2_makeignoreplayer ParkStriker 1&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_movetoflag||[ai_name:string | script_id:int] flag_id:int [setfacing:string{&amp;quot;setfacing&amp;quot;}]||tells an AI to move to a flag||ai2_movetoflag 0 1091&lt;br /&gt;
&#039;&#039;needs ai2_takecontrol 1 if Konoko should do that&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_neutralbehavior||[ai_name:string | script_id:int] behavior:string||sets up an AI&#039;s neutral-interaction||ai2_neutralbehavior neutral_3 none&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_noncombatant||[ai_name:string | script_id:int] non_combatant:int{0 | 1}||sets or clears an AI&#039;s non-combatant state||ai2_noncombatant A1_intro01 1&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_panic||[ai_name:string | script_id:int] timer:int||makes an AI panic or not panic||ai2_panic A1_s_red02 300&lt;br /&gt;
&#039;&#039;I&#039;ve tried ai2_panic A1_s_red02 300 ==&amp;gt; Oni crashed&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_passive||[ai_name:string | script_id:int] passive:int{0 | 1}||stops an AI from thinking for itself||ai2_passive Intro_Striker_4 1&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_reset||[reset_player:int]||resets AI as if start of level||ai2_reset||&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_setalert||[ai_name:string | script_id:int] alert:string||sets the alert state of an AI||ai2_setalert Floor2_Striker_2 high (alert strings: lull, low, medium, high, combat)&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_setjobstate||[ai_name:string | script_id:int]||tells an AI to take its current state as its job||ai2_setjobstate E_Er34&lt;br /&gt;
&#039;&#039;if the AI is passive, ai2_setjobstate cannot be executed&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_setmovementmode||[ai_name:string | script_id:int] mode:string||sets an AI&#039;s current movement mode||ai2_setmovementmode finalam_striker_1 walk  (movement mode strings: creep, walk, walk_noaim, run, run_noaim)&lt;br /&gt;
&#039;&#039;needs ai2_takecontrol 1 if Konoko should do that&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_spawn||ai_name:string [force_spawn:string{&amp;quot;force&amp;quot;}]||creates and starts an AI from a character object||ai2_spawn ambush_striker_2&lt;br /&gt;
|-&lt;br /&gt;
| X ||ai2_tripalarm||alarm_id:int [ai_name:string | script_id:int]||trips an alarm||ai2_tripalarm 2 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Where is chr_main_class and chr_set_class? Don&#039;t they belong on the BSL function page? [[User:EdT|EdT]] 22:14, 24 October 2008 (CEST)&lt;br /&gt;
::This is a short table Gumby put together. It&#039;s nowhere near complete. The most current stuff is [[Sandbox|HERE]] --[[User:Geyser|geyser]] 00:47, 25 October 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==chr_teleport -1==&lt;br /&gt;
:&amp;lt;tt&amp;gt;chr_teleport [ai_name:string | script_id:int] flag_id:int - teleports a character to a flag - chr_teleport 0 105&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Tried today it with -1, &amp;lt;tt&amp;gt;chr_teleport -1 400&amp;lt;/tt&amp;gt;, which seems to give random results, but always retrieves a spawned character, I thought it would always retrieve the first character alive after Konoko but seems it isn&#039;t always the case. Have anyone had also a look a this? If it was a underflow probably it shouldn&#039;t retrieve characters most of the time. --[[User:Script 10k|Script 10k]] 12:55, 8 August 2012 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==chr_index vs script_id==&lt;br /&gt;
What&#039;s the difference between &amp;lt;tt&amp;gt;chr_index&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;script_id?&amp;lt;/tt&amp;gt; I think it&#039;s that that is messing the things.--[[User:Script 10k|Script 10k]] 16:43, 8 August 2012 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:If there&#039;s a difference, my guess would be that chr_index is the ONCC order* and script_id the spawn order**.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; oncc order: installed oncc files, shapeshift to see the numbers.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; spawn order: first spawned character is 0, second spawned character is 1, and so on. --[[User:Paradox-01|paradox-01]] 17:24, 8 August 2012 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been playing with &amp;lt;tt&amp;gt;chr_focus&amp;lt;/tt&amp;gt; lately, I am sure that that char_index is the spawn order. Haven&#039;t checked the ONCC order although. --[[User:Script 10k|Script 10k]] 17:31, 8 August 2012 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Uhm, I confused chr_index with class_index, sorry. (eg &#039;&#039;chr_set_class chr_index:int [class_name:string | class_index:int]&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
:However I checked the ssg&#039;s list and it looks like that chr_index is used only be PC retail. *shrugs* --[[User:Paradox-01|paradox-01]] 18:13, 8 August 2012 (CEST)&lt;br /&gt;
&lt;br /&gt;
:EdT can use it on Mac, not sure what version he have? Which one is EdT? --[[User:Script 10k|Script 10k]] 20:59, 9 August 2012 (CEST)&lt;br /&gt;
&lt;br /&gt;
==chr_kill_all_ai==&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_kill_all_ai (null) - kills all the AI&amp;lt;/tt&amp;gt;, I couldn&#039;t get it work. F6 in developer mode works although.&lt;br /&gt;
&lt;br /&gt;
But I&#039;ve found a good alternative: &amp;lt;tt&amp;gt;ai2_kill();&amp;lt;/tt&amp;gt;, kill them all too. By curiosity have anybody got &amp;lt;tt&amp;gt;chr_kill_all_ai&amp;lt;/tt&amp;gt; work? --[[User:Script 10k|Script 10k]] 21:00, 9 August 2012 (CEST)&lt;br /&gt;
&lt;br /&gt;
==chr_vocalize==&lt;br /&gt;
&amp;quot;chr_vocalize [ai_name:string | script_id:int] type:string - makes a character utter a vocalization (vocalize type strings: override, yell, pain, call, say, chatter, idle)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Couldn&#039;t get this to work with any other character than Konoko (player). If someone can &amp;quot;vocalize&amp;quot; bots please let me know. [[User:Script 10k|Script 10k]] ([[User talk:Script 10k|talk]]) 21:59, 20 August 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Correct me if I&#039;m wrong: AIs spawned by CHAR collection come without an script_id. You would need to add characters via AISA and set &amp;lt;ScriptId&amp;gt;. In case of chr_vocalize, an non-existing script_id is probably replace by 0 and so redirected to player. With CHAR workflow you should use ai_name instead. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 11:40, 21 August 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
:: Works like a charm [[User:Paradox-01|paradox-01]]! I&#039;ve added the character to AISA and it worked as supposed. Thanks! :)&lt;br /&gt;
::One thing, in my game the strings available for vocalize aren&#039;t the same as described above. They are: &amp;quot;taunt, alert, startle, checkbody, pursue, cower, superpunch, superkick, super3 and super4&amp;quot;. Can you check which ones are present in your game?&lt;br /&gt;
&lt;br /&gt;
:::Interesting. You are correct about those being the strings for chr_vocalize. The strings given on BSL:Functions, such as &amp;quot;chatter&amp;quot;, are associated with chr_talk, but it seems that they have no effect. So the Functions page is in error. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 17:42, 21 August 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
::&amp;quot;They are: &amp;quot;taunt, alert, startle, checkbody, pursue, cower, superpunch, superkick, super3 and super4&amp;quot;. Can you check which ones are present in your game?&amp;quot; - Yep looks the same in my exe. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 20:17, 21 August 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
==chr_holdkey==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;chr_holdkey [ai_name:string | script_id:int] key_name:string num_frames:int - forces a character to hold a key down for some frames&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Couldn&#039;t get this one to work too. I tried chr_holdkey char_name &amp;quot;h&amp;quot; but seems character didn&#039;t hold the key either the player or the ais. &amp;quot;h&amp;quot; key in my oni is thr keyboard punch key.&lt;br /&gt;
&lt;br /&gt;
Please let me know if any of you got this to work. [[User:Script 10k|Script 10k]] ([[User talk:Script 10k|talk]]) 23:52, 25 August 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: SSG (no example in his command list given), geyser, loser and gumby couldn&#039;t make that command work. So forget about it ;)&lt;br /&gt;
: http://web.archive.org/web/20160225154424/http://oni.bungie.org/forum/viewtopic.php?id=130&amp;amp;p=4&lt;br /&gt;
: [[User_talk:Iritscen/Archive2#AI_self-healing]]&lt;br /&gt;
&lt;br /&gt;
: Use &#039;&#039;&#039;[[XML:FILM#.3CKeys.3E|FILM]]&#039;&#039;&#039; file instead:&amp;lt;br&amp;gt;&#039;&#039;&#039;chr_playback_block([ai_name|script_id], film_name, fromhere)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: fromhere - ignore the position, rotation is still used&amp;lt;br&amp;gt;interp - interpolates between current character position and film position (awkward when height is not the same)&lt;br /&gt;
&lt;br /&gt;
: You could probably create a level 0 package made of such keys and then use them whenever needed.&lt;br /&gt;
&lt;br /&gt;
: Caution with editing frames, game crashes when done wrong. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 08:37, 26 August 2016 (CEST)&lt;br /&gt;
:: Thanks [[User:Paradox-01|paradox-01]]. I am going to try that.[[User:Script 10k|Script 10k]] ([[User talk:Script 10k|talk]]) 20:05, 28 August 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Category:BSL docs]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:TRAM&amp;diff=46173</id>
		<title>XML:TRAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:TRAM&amp;diff=46173"/>
		<updated>2025-12-26T06:08:15Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_File_Header | prev=TRAC | type=TRAM | next=TRAS | name=Totoro Animation}}&lt;br /&gt;
{{integrate|See {{SectionLink||XSI}}.}}&lt;br /&gt;
&lt;br /&gt;
==General information==&lt;br /&gt;
TRAM files — animation data for characters — are basically made of three chunks:&lt;br /&gt;
* Metadata or &amp;quot;header&amp;quot;: animation type, state, flags, particle, sounds, etc.&lt;br /&gt;
* Animation data: &#039;&#039;&#039;pelvis heights, pelvis velocities (root motion)&#039;&#039;&#039;, bone rotations&lt;br /&gt;
* Attack data: damage, self-damage, extents (danger zones for AI awareness) and throws&lt;br /&gt;
&lt;br /&gt;
Root motion: a character moves by changing the position of its root bone (pelvis). The animated legs just create the &#039;&#039;&#039;illusion for the player&#039;&#039;&#039; that they are responsible for the motion.&lt;br /&gt;
&lt;br /&gt;
Bones: Each character has &#039;&#039;&#039;19 separate body parts&#039;&#039;&#039; which get animated (rotated) relative to each other. Compared to modern games Oni&#039;s bone system is [[wp:Deprecation|deprecated]]. The body doesn&#039;t get deformed by following animated bones. Oni modders often use the terms mesh and bone interchangeably. Only the pelvis has &#039;&#039;&#039;translation&#039;&#039;&#039; data (heights and velocities) besides rotations. The hierarchy of the body parts (or bones) is determined by [[XML:TRBS#Standard_TRIA_hierarchy|TRIA]].&lt;br /&gt;
&lt;br /&gt;
The term &#039;&#039;&#039;animation&#039;&#039;&#039; is often shortened to &#039;&#039;&#039;anim&#039;&#039;&#039; by modders, following the naming of commands in BSL: chr_wait_animstate, chr_wait_animtype, env_anim, etc.&lt;br /&gt;
&lt;br /&gt;
Oni&#039;s code and debugging messages tend to spell the word variant as &amp;quot;varient&amp;quot;. Blame the programmers for that one. Typically we use the correct spelling here, but OniSplit&#039;s XML follows Oni&#039;s misspelling, so you may see &amp;quot;varient&amp;quot; creep into the wiki here and there.&lt;br /&gt;
&lt;br /&gt;
TRAMs used in Oni follow a naming pattern. A list of all combat TRAMs in-game and their naming can be found [[Combat moves|here]].&lt;br /&gt;
&lt;br /&gt;
==Open questions==&lt;br /&gt;
* If the never-used Thrown type can be applied as type 18 the table looks much more complete. &amp;quot;Restoring&amp;quot; forward tackles (face-to-face, src run + tgt run) can be omitted as the AI would most often stop movement for actual combat?&lt;br /&gt;
&lt;br /&gt;
* All important header data of STRCOMrun_thw_fw_p and STRCOMrun_thw_fw_pl is identical. That means the engine picks the correct TRAM by using an unknown context, possibly this is similar or part of the distinction of &amp;quot;forward&amp;quot; (face-to-face) and &amp;quot;backward&amp;quot; (face-to-back).&lt;br /&gt;
: &#039;&#039;&#039;Maybe the algorithm checks always tgt&#039;s rotation and relative position to src at the same time but for most cases only tgt&#039;s rotation (facing) is relevant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Also, STRCOMrun_thw_fw_p(l) routing to Thrown5 and Thrown6 shows that Thrown anim types might be used however we like. A src-tgt-anim-type-pairing might be simply a &#039;&#039;convention&#039;&#039;. Well, someone could check the source code...&lt;br /&gt;
&lt;br /&gt;
* The existence of STRCOMrun_thw_fw_p(_tgt) and STRCOMrun_thw_fw_pl(_t) means that we need extra research to understand the full extent of the throw system.&lt;br /&gt;
* The variant pickup system is not clear yet: is a RIFCOM idle and a RIFNAT idle both possible?&lt;br /&gt;
** Or do rightpistol, leftpistol, rightrifle and leftrifle variants count as subsets of combat?&lt;br /&gt;
&lt;br /&gt;
==Summary of animation lookup logic==&lt;br /&gt;
* First the game builds a pool of anims a character can use. They are loaded from the TRAC file registered in [[ONCC]], including parent TRACs.&lt;br /&gt;
* Anims from a child TRAC override those of the parent if their combination of state, type and variant is exactly the same.&lt;br /&gt;
* Child TRACs usually omit some anims. For example, Elite Strikers don&#039;t have their own run anims, so they use the parent anims of normal Strikers. See [[XML:TRAC|TRAC]] page for details.&lt;br /&gt;
* A character always possesses a single animation state. This term derives from state machines, but you only need to know that states are the first point in the decision path determining what anims are actually allowed to play at a given moment.&lt;br /&gt;
* Here is the full decision path:&lt;br /&gt;
** anim &#039;&#039;&#039;state&#039;&#039;&#039; check&lt;br /&gt;
** event (user input, or engine input for the AI) -&amp;gt; [[XML talk:StNA|context check]] -&amp;gt; anim &#039;&#039;&#039;type&#039;&#039;&#039; check&lt;br /&gt;
** anim &#039;&#039;&#039;variant&#039;&#039;&#039; check&lt;br /&gt;
** TRAC &#039;&#039;&#039;weight&#039;&#039;&#039; check&lt;br /&gt;
&lt;br /&gt;
===Elaboration===&lt;br /&gt;
Animations never stop – they flow from one to another. (See the concept of [[wp:Finite-state machine|state machines]] in gaming.) The default case is a character getting spawned and then just standing there: he idles forever. This brings us to the core attributes of every animation: &#039;&#039;&#039;type, state, variant&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Now then, the idle animation does not link to a specific follow-up animation – it rather links to a follow-up &#039;&#039;state&#039;&#039;.&lt;br /&gt;
: Ironically all anims have a &amp;lt;FromState&amp;gt; and a &amp;lt;ToState&amp;gt; field, but no obvious &amp;lt;CurrentState&amp;gt; which can cause confusion on what the current anim&#039;s state actually is. This gives us two options of how to think about the situation: either consider &amp;lt;FromState&amp;gt; as usually being the &amp;lt;CurrentState&amp;gt;, or states exist only &#039;&#039;between&#039;&#039; anims and serve as &#039;&#039;transition rules&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Linking to a follow-up state allows for multiple choices of what specific anim comes next. An anim is picked up randomly from a pool of valid anims. Their probability or &amp;lt;Weight&amp;gt; is determined by the anim listing in the TRAC – the anim collection (see {{SectionLink||Weights}} for an explanation of exactly how &amp;lt;Weight&amp;gt; is handled).&lt;br /&gt;
&lt;br /&gt;
Anyway, to let an character flow from one anim state to another, the &amp;lt;ToState&amp;gt; is used. Let&#039;s say an SBG grenade hits Konoko. The particle&#039;s &#039;&#039;&#039;damage type&#039;&#039;&#039; is &#039;&#039;&#039;blownup&#039;&#039;&#039;; this and the direction of the incoming damage force an anim of type &#039;&#039;&#039;Blownup&#039;&#039;&#039; or &#039;&#039;&#039;BlownupBehind&#039;&#039;&#039; to play, such as TRAMKONOKOblownup1.&lt;br /&gt;
&lt;br /&gt;
Thus, Konoko falls to her back, going into the FallenBack state. The engine picks up the next anim which has &amp;lt;FromState&amp;gt;FallenBack. Also, receiving damage puts a character into combat mode, so further anims will be of variant Combat. But if the player gives no input, Konoko will remain on the ground, as &amp;lt;ToState&amp;gt;FallenBack creates a loop.&lt;br /&gt;
&lt;br /&gt;
So here&#039;s a question: why isn&#039;t a getup anim like KONCOMgetup_lt played automatically since it also has &amp;lt;FromState&amp;gt;FallenBack and &amp;lt;Varient&amp;gt;Combat? Answer: it differs in its &amp;lt;Type&amp;gt;. Most [[XML_talk:StNA|anim types are bound to user input]] and therefore are excluded from the automatically created pool of valid anims which can follow.&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s consider what happens upon user input. A leftward movement of the mouse tells the engine to use an anim of type StandingTurnLeft. There are two anims with that type, KONOKOcomb_turnlt and KONCOMgetup_lt, but only the latter matches the current &amp;lt;FromState&amp;gt; condition.&lt;br /&gt;
: In fact, KONOKOcomb_turnlt has &amp;lt;Varient&amp;gt; Combat – the &amp;quot;comb&amp;quot; here stands for &amp;quot;combat&amp;quot;, not &amp;quot;combo&amp;quot;. Following Oni&#039;s naming convention, the file &#039;&#039;should&#039;&#039; have been named KONCOMturn_lt.&lt;br /&gt;
&lt;br /&gt;
Knowing this behavior, we can deduce that anim types registered to user input will make the engine ignore all the automatic anims inside the pool, therefore breaking the loop of KONCOMfallen_back. And since KONCOMgetup_lt has &amp;lt;ToState&amp;gt;Standing and Konoko is still in combat mode, the following idle anim must also have &amp;lt;Varient&amp;gt;Combat. So the next anim played will be KON&#039;&#039;&#039;COM&#039;&#039;&#039;idle1 or KON&#039;&#039;&#039;COM&#039;&#039;&#039;idle2.&lt;br /&gt;
&lt;br /&gt;
Konoko will eventually calm down when her ONCC &amp;lt;FightModeTimer&amp;gt; runs down, and then KON&#039;&#039;&#039;OKO&#039;&#039;&#039;idle1 or KON&#039;&#039;&#039;OKO&#039;&#039;&#039;idle2 will be played instead. (Actually, the COMidle will continue until a non-combat anim such as running breaks that loop. You won&#039;t ever see Konoko drop from combat readiness to her regular idle animation. Instead she will go from combat idle to running, to stopping, then standing at ease.)&lt;br /&gt;
&lt;br /&gt;
Note the fallback behavior of anim lookup: if the engine cannot find an anim for the active variant (or &amp;quot;mode&amp;quot;) of the character, it will choose the normal (non-variant-matching) version. Anims can be in the following variants: Combat, LeftPistol, LeftRifle, Panic, RightPistol, RightRifle and Sprint.&lt;br /&gt;
&lt;br /&gt;
As for combinations of variants, it&#039;s possible, yes, but rarely and only Sprint and one weapon variant at a time.&lt;br /&gt;
&lt;br /&gt;
==Weights==&lt;br /&gt;
Let&#039;s say that we&#039;re playing as a Ninja, we are in the state Standing, and we hit the action key to perform a taunt. The engine recognizes the context (no console to interact with), places the character in combat mode, and looks up anims of type Taunt. Since we are in combat mode, the next anim must be of variant Combat if possible. These lookups boil down to two valid possible anims: NINCOMtaunt1 (a spin) and NINCOMtaunt2 (the [[wp:Moonwalk (dance)|moon walk]] Easter egg). The engine picks one of them randomly.&lt;br /&gt;
&lt;br /&gt;
However, NINCOMtaunt1 has a TRAC Weight (probability) of 100 while NINCOMtaunt2 has a TRAC Weight value of just 5. So the chances are quite high that we will not see the moon walk taunt.&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;TRACAnimation&amp;gt;&lt;br /&gt;
                &amp;lt;Weight&amp;gt;100&amp;lt;/Weight&amp;gt;&lt;br /&gt;
                &amp;lt;Animation&amp;gt;TRAMNINCOMtaunt1&amp;lt;/Animation&amp;gt;&lt;br /&gt;
            &amp;lt;/TRACAnimation&amp;gt;&lt;br /&gt;
            &amp;lt;TRACAnimation&amp;gt;&lt;br /&gt;
                &amp;lt;Weight&amp;gt;5&amp;lt;/Weight&amp;gt;&lt;br /&gt;
                &amp;lt;Animation&amp;gt;TRAMNINCOMtaunt2&amp;lt;/Animation&amp;gt;&lt;br /&gt;
            &amp;lt;/TRACAnimation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there is only one anim to choose from, it will always play no matter what its Weight, even if it is zero. When it comes to multiple anims being a valid choice, the calculation is: weight of anim / sum of all valid anim weights. For NINCOMtaunt2, this means 5 / 105 = 0.047, or a 4.7% chance of a moon walk.&lt;br /&gt;
&lt;br /&gt;
==Idle timer==&lt;br /&gt;
There&#039;s a semi-famous Easter egg where [https://www.youtube.com/watch?v=qbo2Q-VD6dc Konoko will sneeze] if she stands still for a long time. The timer for this is so long that most players never see it unless they step away from the game and leave it running without hitting F1. You might think that the way the sneeze is triggered is to set a low weight for it so that it&#039;s very unlikely a repeating idle cycle will choose the anim. But here&#039;s the sneeze anim in the TRAC with a Weight of 100:&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;TRACAnimation&amp;gt;&lt;br /&gt;
                &amp;lt;Weight&amp;gt;100&amp;lt;/Weight&amp;gt;&lt;br /&gt;
                &amp;lt;Animation&amp;gt;TRAMKONOKOidle_spec3&amp;lt;/Animation&amp;gt;&lt;br /&gt;
            &amp;lt;/TRACAnimation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What&#039;s going on here? All regular idle anims are in fact of &#039;&#039;&#039;type Stand&#039;&#039;&#039;, while Konoko&#039;s idle_spec3 anim above is of &#039;&#039;&#039;type Idle&#039;&#039;&#039;. Anims of &#039;&#039;&#039;type Idle&#039;&#039;&#039; are played every time the idle animation timer expires.  This is found in ONCC as &amp;lt;IdleAnimation1Timer&amp;gt; and &amp;lt;IdleAnimation2Timer&amp;gt;. These timers are set to 30,000 for every character. The number is in ticks, so if we convert to minutes – 30,000 / 60 / 60 = 8.3̅ – we find that the secret idle anim for Konoko (or any character) will play every 8⅓ minutes.&lt;br /&gt;
&lt;br /&gt;
==List of tags, types, and flags==&lt;br /&gt;
Use the search function in your browser to quickly find a tag.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=100%&lt;br /&gt;
|width=120px| &#039;&#039;&#039;tag&#039;&#039;&#039;&lt;br /&gt;
|width=100px| &#039;&#039;&#039;type&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Lookup&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Type&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| Look them up over [[XML:StNA#Animation_types|HERE]]. The pool of valid TRAMs (animations a character can choose from) is built from the TRAC files registered in the ONCC. Most of the anim types are connected to player inputs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;AimingType&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| Look them up over [[XML:StNA#Animation_types|HERE]]. The pool of valid TRAMs, and therefore TRASs (aiming screens a character can choose from) is built from the TRSC files registered in the ONCC.&lt;br /&gt;
:&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;FromState&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
| [[Image:chr_debug_characters_shows_interpolated_animations.jpg|thumb|400px|right|Primary &amp;lt;FromState&amp;gt; in &amp;lt;Lookup&amp;gt; uses about 8 interpolating frames by default. Use Shortcut&#039;s &amp;lt;FromState&amp;gt; to override this frame number.]]&lt;br /&gt;
&lt;br /&gt;
Look them up over [[XML:StNA#Animation_states|HERE]].&lt;br /&gt;
: When FromState is set to None, some default behaviors are ignored and are replaced by Shortcuts.&lt;br /&gt;
: Shortcuts extend the number of states from which an animation can be played and under what conditions (replacing this atomic yes/no).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ToState&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| Look them up over [[XML:StNA#Animation_states|HERE]].&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Varient&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|(misspelled because Oni misspells it) If unused, the tag will simply be &amp;quot;&amp;lt;Varient /&amp;gt;&amp;quot;, such as for non-combat animations. Otherwise it contains one of these values:&lt;br /&gt;
: Combat&lt;br /&gt;
: LeftPistol&lt;br /&gt;
: LeftRifle&lt;br /&gt;
: Panic&lt;br /&gt;
: RightPistol&lt;br /&gt;
: RightRifle&lt;br /&gt;
: Sprint&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FirstLevel&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
|Number of first level in which move becomes available to the player (&amp;quot;0&amp;quot; to make it available from the start).&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Shortcuts&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| parent tag&lt;br /&gt;
|&lt;br /&gt;
Works as an &#039;&#039;&#039;alternative FromState&#039;&#039;&#039; collection.&lt;br /&gt;
&lt;br /&gt;
Shortcuts are accepted if their &amp;lt;Shortcut&amp;gt;&amp;lt;FromState&amp;gt; value differs from the &amp;quot;primary&amp;quot; &amp;lt;Lookup&amp;gt;&amp;lt;FromState&amp;gt; value. In other words, if you want to make a &#039;&#039;&#039;Shortcut&#039;&#039;&#039; that uses the &#039;&#039;&#039;same FromState&#039;&#039;&#039; value then you have to set &#039;&#039;&#039;primary FromState&#039;&#039;&#039; value to &#039;&#039;&#039;None&#039;&#039;&#039;. By doing that, the hardcoded interpolation frame length of about 8 frames can be overridden.&lt;br /&gt;
&lt;br /&gt;
In the following example, the new interpolation length is 0. This will require the animation to match perfectly with the previous one. For a smooth transition to the next animation, set a suitable value at &amp;lt;Interpolation&amp;gt;&amp;lt;End&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Lookup&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            &amp;lt;FromState&amp;gt;None&amp;lt;/FromState&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            &amp;lt;Shortcuts&amp;gt;&lt;br /&gt;
                &amp;lt;Shortcut&amp;gt;&lt;br /&gt;
                    &amp;lt;FromState&amp;gt;Standing&amp;lt;/FromState&amp;gt;&lt;br /&gt;
                    &amp;lt;Length&amp;gt;0&amp;lt;/Length&amp;gt;&lt;br /&gt;
                    &amp;lt;ReplaceAtomic&amp;gt;no&amp;lt;/ReplaceAtomic&amp;gt;&lt;br /&gt;
                &amp;lt;/Shortcut&amp;gt;&lt;br /&gt;
            &amp;lt;/Shortcuts&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:TRAM interpolation - standard case.jpg|thumb|400px|left|Scenario A: hardcoded interpolation of 8 frames. Scenario B: changeable interpolation frame number.]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Shortcut&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;FromState&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| Look them up over [[XML:StNA#Animation_types|HERE]].&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Length&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| int16&lt;br /&gt;
|Amount of interpolating frames. While interpolations of rotation are less noticeable, interpolations of different positions can cause drift (i.e. sliding).&lt;br /&gt;
&lt;br /&gt;
This is especially observed for transitions from idle to movements and vice versa — basically any combination of animations with different accelerations at start and end. By default, animations without specified Shortcut interpolation give about 8 frames of interpolation. For moves starting or ending in idle, it&#039;s better not to use interpolation. Just give the start and end frames the same positions and rotation values as the idle. Interpolations should always be considered a &#039;&#039;last resort&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This drift can be observed even in vanilla animations — most prominently in Konoko&#039;s comb_k. Konoko&#039;s left foot should be in a fixed position as the animation starts from from Konoko&#039;s idle pose. However, the interpolation is causing her left foot to drift noticeably to the right and a bit forward.&lt;br /&gt;
&lt;br /&gt;
The reason this happens is because the interpolation &amp;quot;mixes&amp;quot; two animations. When one animation transitions into another via interpolation, part of the animation system continues playing the initial animation, and part of it is playing the follow-up animation, with all the rotations and positions getting linearly interpolated.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;ReplaceAtomic&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
: yes&lt;br /&gt;
: no&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|These are top-level flags on the whole animation. See the other &amp;lt;Flags&amp;gt; for flags on an attack part.&lt;br /&gt;
:RuntimeLoaded&lt;br /&gt;
::(This bit is not stored on disk; it is used at runtime to mark that the animation was loaded.)&lt;br /&gt;
:Invulnerable&lt;br /&gt;
::While playing this animation, the player is invulnerable to melee damage and also cannot be thrown, but can still take damage from particles and falls.&lt;br /&gt;
:BlockHigh&lt;br /&gt;
::While playing this animation, the player can block high or undefined-height attacks within some arc in front of him. The height of an attack is found under the &amp;lt;Attack&amp;gt; section. If you set this flag on an animation where the player character is spinning, then the character can still be kicked in the back or thrown.&lt;br /&gt;
:BlockLow&lt;br /&gt;
::Same as above, only it can block low or undefined-height attacks.&lt;br /&gt;
:Attack&lt;br /&gt;
::Unused by the engine.&lt;br /&gt;
:DropWeapon&lt;br /&gt;
::If the player is armed, he drops his weapon when this animation plays.&lt;br /&gt;
:InAir&lt;br /&gt;
::Unused by the engine.&lt;br /&gt;
:Atomic&lt;br /&gt;
::Unused by the engine. Only the Start and End frames of the Atomic field below matter.&lt;br /&gt;
:NoTurn&lt;br /&gt;
:::Player cannot turn while performing this animation.&lt;br /&gt;
:AttackForward&lt;br /&gt;
::Unused by the engine.&lt;br /&gt;
:AttackLeft&lt;br /&gt;
::Same as above.&lt;br /&gt;
:AttackRight&lt;br /&gt;
::Same as above.&lt;br /&gt;
:AttackBackward&lt;br /&gt;
::Same as above.&lt;br /&gt;
:Overlay&lt;br /&gt;
::Not a standalone animation; it just overwrites part of an already-playing one, e.g. the weapon-holstering animation.&lt;br /&gt;
:DontInterpolateVelocity&lt;br /&gt;
::Unknown, but maybe it has something to do with {x,y,z} velocities and the fact that directional jumps, for example, take information about their direction vector from the {x,z} velocity part of the TRAM (the vertical Y component is in the ONCC).&lt;br /&gt;
:ThrowSource&lt;br /&gt;
::Oni expects this flag on all throw source animations.&lt;br /&gt;
:::Throws work in animation pairs: whenever a throw source is played, the other character must perform the throw target animation. See throw(n) types:&lt;br /&gt;
::::TRAM &amp;lt;TargetType&amp;gt; from [[XML:StNA#Animation types|StNA]] (first &amp;lt;u&amp;gt;used&amp;lt;/u&amp;gt; throw starts at #96).&lt;br /&gt;
:::Characters have only their own pool of animations available. And since enemy&#039;s TRAC might not contain the necessary animation the information must be provided by the throw source TRAC. &lt;br /&gt;
::: Since every throw animation must have a throw animation type the ThrowSource flag is actually redundant.&lt;br /&gt;
:ThrowTarget&lt;br /&gt;
::Animation can hurt anybody with its attack part, including teammates. The player can even hurt himself with the TRAM&#039;s damage part (whereas a player cannot hurt himself with his own animation&#039;s attack part). It also allows two attack parts to be executed instead of only one (maybe a bug? more than two will result in a crash).&lt;br /&gt;
:::If you set the first attack part to be able to deal damage from the 1st to the 100th frame of the TRAM, and the second attack part to deal damage within that range (e.g. from the 25th to the 41st frame), then the first attack part will deal damage from the 1st to the 100th frame (as usual), but even if it hits, that second attack part can hurt the enemy as well during frames 25–41. Note that the second attack part must be executed within the first attack part&#039;s active &amp;quot;window&amp;quot;, otherwise it won&#039;t work.&lt;br /&gt;
:RealWorld&lt;br /&gt;
::Unused by the engine. It appears this flag was used during the authoring process to create a TRAM and an OBAN from one animation source. The OBAN is supposed to store pelvis rotations and positions, allowing a character to move over obstacles/gaps. The vast majority of TRAMs with this flag are used in cutscenes.&lt;br /&gt;
:DoAim&lt;br /&gt;
::Applies the aiming animation overlay (PIS/RIF) if the player has a weapon.&lt;br /&gt;
:DontAim&lt;br /&gt;
::An aiming overlay will not be applied.&lt;br /&gt;
:CanPickup&lt;br /&gt;
::Player can pick up an item during this animation if he intersects with one during his movement.&lt;br /&gt;
:Aim360&lt;br /&gt;
::Unused by the engine.&lt;br /&gt;
:DisableShield&lt;br /&gt;
::If the player has an active [[supershield]], this disables it (the flag is placed on four Mutant Muro attacks: his two supers, the claw-stuck-into-ground move and the sliding &amp;quot;[[wikt:kancho|kancho]]&amp;quot; maneuver; it is also hardcoded to be removed when the Zeus Thunderbolt attack is used).&lt;br /&gt;
:NoAIPickup&lt;br /&gt;
::AIs are not permitted to pick up items with this animation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Atomic&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| Animation cannot be interrupted by player between the Start and End frames.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Start&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;End&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Invulnerable&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| Character will not take melee damage and cannot be thrown between the Start and End frames.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Start&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| First frame of character being invulnerable.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;End&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Last frame of character being invulnerable.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Overlay&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;UsedBones&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|Simply contains &amp;quot;&amp;lt;UsedBones /&amp;gt;&amp;quot; if no bones are involved, otherwise:&lt;br /&gt;
:Pelvis&lt;br /&gt;
:LeftThigh&lt;br /&gt;
:LeftCalf&lt;br /&gt;
:LeftFoot&lt;br /&gt;
:RightThigh&lt;br /&gt;
:RightCalf&lt;br /&gt;
:RightFoot&lt;br /&gt;
:Mid&lt;br /&gt;
:Chest&lt;br /&gt;
:Neck&lt;br /&gt;
:Head&lt;br /&gt;
:LeftShoulder&lt;br /&gt;
:LeftArm&lt;br /&gt;
:LeftWrist&lt;br /&gt;
:LeftFist&lt;br /&gt;
:RightShoulder&lt;br /&gt;
:RightArm&lt;br /&gt;
:RightFist&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;ReplacedBones&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
| &amp;quot;&amp;lt;ReplacedBones /&amp;gt;&amp;quot; if unused, otherwise:&lt;br /&gt;
:Pelvis&lt;br /&gt;
:LeftThigh&lt;br /&gt;
:LeftCalf&lt;br /&gt;
:LeftFoot&lt;br /&gt;
:RightThigh&lt;br /&gt;
:RightCalf&lt;br /&gt;
:RightFoot&lt;br /&gt;
:Mid&lt;br /&gt;
:Chest&lt;br /&gt;
:Neck&lt;br /&gt;
:Head&lt;br /&gt;
:LeftShoulder&lt;br /&gt;
:LeftArm&lt;br /&gt;
:LeftWrist&lt;br /&gt;
:LeftFist&lt;br /&gt;
:RightShoulder&lt;br /&gt;
:RightArm&lt;br /&gt;
:RightFist&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;DirectAnimations&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Link&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| First slot. &amp;quot;&amp;lt;Link /&amp;gt;&amp;quot; if unused.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Link&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| Second slot. &amp;quot;&amp;lt;Link /&amp;gt;&amp;quot; if unused.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Pause&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Hard&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| In ticks. The Hard and Soft pause values are ignored if this animation has a direct link (above) to another animation.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Soft&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| int16&lt;br /&gt;
| In ticks. As mentioned above, the player cannot enter new inputs during this pause unless this animation is part of a combo animation defined by &amp;lt;DirectAnimations&amp;gt;&amp;lt;Link&amp;gt;.&lt;br /&gt;
: Examples:&lt;br /&gt;
: COMcomb_p, (no pause) COMcomb_p_p&lt;br /&gt;
: COMcomb_p, (pause) COMcomb_k&lt;br /&gt;
&lt;br /&gt;
The difference between the hard and soft pause is that you can block during the soft pause and not the hard pause.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Interpolation&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;End&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| int16&lt;br /&gt;
|&lt;br /&gt;
* interpolates first X frames of next animation&lt;br /&gt;
* if the first follow-up animation is too short, it can continue to play even further (not observed with vanilla anims)&lt;br /&gt;
&lt;br /&gt;
While interpolations with rotations are less noticeable, interpolations of different positions can cause an additional drift.&lt;br /&gt;
&lt;br /&gt;
This was especially observed for transitions of idle to movements and vice versa — basically any combination of animations with different accelerations at the start and end. By default, animations without a specified Shortcut interpolation get about 8 frames of interpolation. For moves starting or ending in idle, it&#039;s better not to use interpolation. Just give the start and end frames the same positions and rotation values as the idle. Interpolations should always be considered a &#039;&#039;last resort&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Image:TRAM interpolations - end interpolation bigger than next anim.jpg|thumb|400px|left|&amp;quot;End&amp;quot; interpolation covering multiple follow-up animations.]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Max&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| unused&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;FinalRotation&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| float&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| Ending rotation in degrees. (During an animation on the player character, the camera is detached rotation-wise. If this value matches the body&#039;s final rotation, it will prevent a &amp;quot;glitchy&amp;quot; re-attaching.)&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Direction&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
| Used by [[AI#Melee combat behaviors|AI melee system]].&lt;br /&gt;
:None&lt;br /&gt;
:Forward&lt;br /&gt;
:Backward&lt;br /&gt;
:Left&lt;br /&gt;
:Right&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Vocalization&amp;gt;&lt;br /&gt;
| int&lt;br /&gt;
| ID of one of the [[XML:SNDD#Step 1: Preparing the TRAM|SoundConstants in ONCC]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ActionFrame&amp;gt;&lt;br /&gt;
| int&lt;br /&gt;
| Frame number for any special events associated with this animation: weapon theft via disarm, weapon holstering, Mukade teleporting, items getting handed over to player, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Impact&amp;gt;&lt;br /&gt;
| link&lt;br /&gt;
| &amp;quot;&amp;lt;Impact /&amp;gt;&amp;quot; if unused.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Particles&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| parent tag&lt;br /&gt;
| serves as group element&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Particle&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| parent tag&lt;br /&gt;
| holds individual particle data&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Start&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| int&lt;br /&gt;
| frame number for particle to start&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;End&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| int&lt;br /&gt;
| frame number for particle to end (if the number exceeds frame count of animation, the particle will simply die at the end of the animation)&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Bone&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
: Pelvis &lt;br /&gt;
: LeftThigh &lt;br /&gt;
: LeftCalf &lt;br /&gt;
: LeftFoot &lt;br /&gt;
: RightThigh &lt;br /&gt;
: RightCalf &lt;br /&gt;
: RightFoot &lt;br /&gt;
: Mid &lt;br /&gt;
: Chest &lt;br /&gt;
: Neck &lt;br /&gt;
: Head &lt;br /&gt;
: LeftShoulder &lt;br /&gt;
: LeftArm &lt;br /&gt;
: LeftWrist &lt;br /&gt;
: LeftFist &lt;br /&gt;
: RightShoulder &lt;br /&gt;
: RightArm &lt;br /&gt;
: RightFist&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Name&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| link&lt;br /&gt;
| particle name in [[XML:ONCC#ONCP:_Oni_Character_Particle_.28Array.29|ONCC-ONCP]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MotionBlur&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MotionBlur&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| sequence element&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Bones&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
: Pelvis &lt;br /&gt;
: LeftThigh &lt;br /&gt;
: LeftCalf &lt;br /&gt;
: LeftFoot &lt;br /&gt;
: RightThigh &lt;br /&gt;
: RightCalf &lt;br /&gt;
: RightFoot &lt;br /&gt;
: Mid &lt;br /&gt;
: Chest &lt;br /&gt;
: Neck &lt;br /&gt;
: Head &lt;br /&gt;
: LeftShoulder &lt;br /&gt;
: LeftArm &lt;br /&gt;
: LeftWrist &lt;br /&gt;
: LeftFist &lt;br /&gt;
: RightShoulder &lt;br /&gt;
: RightArm &lt;br /&gt;
: RightFist&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Start&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Start frame of motion blur sequence&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;End&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| End frame of motion blur sequence&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Lifetime&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| Lifetime of each &amp;quot;ghost&amp;quot; in frames. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Alpha&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| Transparency of &amp;quot;ghosts&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Interval&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
| Frame interval between each rendered &amp;quot;ghost&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Footsteps&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Footstep&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Frame&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Type&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|&lt;br /&gt;
: Left&lt;br /&gt;
: Right&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Sounds&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| &amp;quot;&amp;lt;Sounds /&amp;gt;&amp;quot; if unused.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Sound&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Name&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; &amp;lt;font color=&amp;quot;#777777&amp;quot;&amp;gt;(don&#039;t use resource type&#039;s prefix or suffix)&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Start&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
|The frame when the sound starts to play.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Heights&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Height&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|Absolute position.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Velocities&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Velocity&amp;gt;&lt;br /&gt;
| 2 x float&lt;br /&gt;
|Relative positions (delta values); the numbers represent the change in position from one frame to another.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Rotations&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Bone&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|There are 19 bone tags, one for each [[TRIA#Bones|body part]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;EKey&amp;gt;&lt;br /&gt;
| int8 + 3 * float&lt;br /&gt;
|For normal animations. The first value is the number of frames for which the rotation is maintained; the sum of all of these first EKey components always equals the total number of frames for the animation.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;QKey&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| int8 + 4 * float&lt;br /&gt;
|For overlay animations used by [[TRAS|TRAS]] aiming screens.&lt;br /&gt;
&lt;br /&gt;
OniSplit v0.9.54.0 produces &amp;lt;QKey&amp;gt;s (quaternions) instead of &amp;lt;EKey&amp;gt;s (Euler rotations) for normal animations.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;PositionOffset&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| &amp;lt;PositionOffset&amp;gt; and &amp;lt;Positions&amp;gt; belong together. In the [[OBD:TRAM/raw0x30|binaries]], they are written in place. &#039;&#039;&#039;Seems unused; changing them has no effect in-game.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;X&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Z&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Positions&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Position&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| seems to be unused (and when checking this with &amp;quot;chr_debug_sphere = 1&amp;quot;, the spheres remain unchanged)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Height&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| vertical extent&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;YOffset&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Y offset of the vertical extent from character location &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ThrowSource&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| &amp;quot;&amp;lt;ThrowSource /&amp;gt;&amp;quot; if unused.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;TargetAdjustment&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| Used to position targets during throws, relative to the position of the character executing the throw.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Position&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| 3 * float&lt;br /&gt;
| Contains XYZ values, which position the target character at the start of the animation:&lt;br /&gt;
*X - Side axis. Negative values move the target to the right and positive values move the target to the left.&lt;br /&gt;
*Y - Height axis. Negative values move the target downwards, but cannot make the target go below the floor. Positive values make the target go upwards; this will lift the target&#039;s collision sphere off the ground as if they jumped. However if the value is too big, the target will teleport upward and then immediately start falling, interrupting the target animation.&lt;br /&gt;
*Z - Forward axis. Negative values move the target backwards and positive values move the target forward.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| In radians - adjusts the rotation of the target in Oni&#039;s Y axis; most of the time (if not always) it&#039;s set to &#039;&#039;3.14159274&#039;&#039; radians in vanilla anims, equaling 180 degrees - which effectively rotates the rotates by those 180 degrees; if it was set to 0, the target would face the throw source character with his back.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Distance&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Activation distance. The throw can be triggered if it is within this range. However the value must be greater than the equivalent TRAM in the parent TRAC or else the equivalent TRAM will play when the throw takes place outside of this TRAM&#039;s range and within that TRAM&#039;s range.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;TargetType&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
| The flags are part of the [[XML:StNA#Animation_types|animation type list]].&lt;br /&gt;
&lt;br /&gt;
(static throws)&lt;br /&gt;
: Thrown1 = ###COMthrow_fw_p_tgt&lt;br /&gt;
: Thrown2 = ###COMthrow_fw_k_tgt&lt;br /&gt;
: Thrown3 = ###COMthrow_bk_p_tgt&lt;br /&gt;
: Thrown4 = ###COMthrow_bk_k_tgt&lt;br /&gt;
(running throws)&lt;br /&gt;
: Thrown5 = ###COMrun_throw_fw_p_tgt&lt;br /&gt;
: Thrown6 = ###COMrun_throw_fw_p_tgt&lt;br /&gt;
: Thrown7 = ###COMrun_throw_bk_k_tgt&lt;br /&gt;
: Thrown8 = ###COMrun_throw_bk_k_tgt (not tested)&lt;br /&gt;
(tackle throw = catching)&lt;br /&gt;
: Thrown9 = ###COMrun_tkl_fw_p_tgt (not tested)&lt;br /&gt;
: Thrown10 = ###COMrun_tkl_bk_p_tgt&lt;br /&gt;
(pistol disarms)&lt;br /&gt;
: Thrown11 = ###PISthrow_fw_p_tgt&lt;br /&gt;
: Thrown12 = ###PISthrow_fw_k_tgt&lt;br /&gt;
: Thrown13 = ###PISthrow_bk_p_tgt&lt;br /&gt;
(rifle disarm)&lt;br /&gt;
: Thrown14 = ###PISthrow_bk_k_tgt (not tested)&lt;br /&gt;
: Thrown15 = ###RIFthrow_fw_p_tgt&lt;br /&gt;
: Thrown16 = ###RIFthrow_bk_p_tgt&lt;br /&gt;
: Thrown17 = ###RIF? = (not tested)&lt;br /&gt;
----&lt;br /&gt;
About the naming:&lt;br /&gt;
: &amp;quot;fw&amp;quot; = face-to-face throw&lt;br /&gt;
: &amp;quot;bk&amp;quot; = thrower is facing victim&#039;s back&lt;br /&gt;
: &amp;quot;throw&amp;quot; inside TRAM names is sometimes shortened to &amp;quot;thr&amp;quot;&lt;br /&gt;
: &amp;quot;p&amp;quot;/&amp;quot;k&amp;quot; = triggered by punch or kick button (&amp;quot;p&amp;quot; is sometimes omitted)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;SelfDamage&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&amp;quot;&amp;lt;SelfDamage /&amp;gt;&amp;quot; if unused.&lt;br /&gt;
&lt;br /&gt;
Works only with specific, hardcoded AnimTypes (mainly ThrownX, it&#039;s unknown if any other types work - that remains to be investigated). Using SelfDamage on an AnimType that wasn&#039;t intended for it will cause the game to crash. (ToDo: Checked if &amp;lt;Flag&amp;gt;ThrowTarget is enough to explain this. Modify a simple kick? For more please link to and use talk page.)&lt;br /&gt;
&lt;br /&gt;
From a practical standpoint, this means SelfDamage can be used only on ThrowTarget animations.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Damage&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| sequence element&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Points&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Damage taken by character.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Frame&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Frame of the animation when damage is dealt.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Attacks&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Attack&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| parent tag&lt;br /&gt;
| Only 2 attack parts per file are allowed. Normally the target gets only one hit. But if the attack frame ranges of both attack parts are &amp;lt;span style=&amp;quot;font-weight: bold; color: red;&amp;quot;&amp;gt;overlapping&amp;lt;/span&amp;gt;, then the target can be hit by both of them.&lt;br /&gt;
&lt;br /&gt;
 Total frames: ==============================&lt;br /&gt;
 Attack 1:     ---#########&amp;lt;span style=&amp;quot;font-weight: bold; color: red;&amp;quot;&amp;gt;#####&amp;lt;/span&amp;gt;-------------&lt;br /&gt;
 Attack 2:     ------------&amp;lt;span style=&amp;quot;font-weight: bold; color: red;&amp;quot;&amp;gt;#####&amp;lt;/span&amp;gt;#########----&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Start&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| First frame where damage can be inflicted on an opponent.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;End&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Last frame where damage can be inflicted on an opponent.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Bones&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| The bones which can inflict damage.&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| flag&lt;br /&gt;
|These are flags on an attack part, inside an &amp;lt;Attacks&amp;gt;&amp;lt;Attack&amp;gt; element. See the previous &amp;lt;Flags&amp;gt; for general flags on the TRAM.&lt;br /&gt;
: Unblockable&lt;br /&gt;
: Low - Target of attack needs to crouch in order to block this attack.&lt;br /&gt;
: High - Blocker needs to stand; if both Low and High are set, blocker can block from both standing and crouching positions.&lt;br /&gt;
: HalfDamage - Blocker still receives half of the normal damage.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Knockback&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| Target gets knocked back by this amount if attack is successful.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HitPoints&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Damage points inflicted by attack.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HitType&amp;gt;&lt;br /&gt;
| flag&lt;br /&gt;
| Animation type for opponent&#039;s animation when the attack isn&#039;t blocked. The flags are part of the [[XML:StNA#Animation types|animation type list]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;HitLength&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Number of frames that the target should remain in his hit animation state when he gets hit. If &amp;gt; 20, Oni automatically upgrades the character to a stagger animation, the length of which is the greater of 30 or &amp;lt;HitLength&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StunLength&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Number of frames that the target should remain in his blocking animation state when he blocks the attack.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StaggerLength&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Number of frames that the target should perform his stagger animation after a successful block.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Extents&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| Explained below. Automatically calculated by OniSplit if there&#039;s a DAE file referenced in the XML.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Extent&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| One tag per attack frame. Number of &amp;lt;Extent&amp;gt; tags = &amp;lt;Attack&amp;gt;&amp;lt;End&amp;gt; - &amp;lt;Attack&amp;gt;&amp;lt;Start&amp;gt; + 1.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| In degrees.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Length&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MinY&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;MaxY&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;AttackRing&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|  parent tag&lt;br /&gt;
| Always contains 36 &amp;lt;Length&amp;gt; tags, explained below. Automatically calculated by OniSplit if there&#039;s a DAE file referenced in the XML. (AttackRing was formerly known as &amp;quot;horizontal extents&amp;quot; in older versions of OniSplit.)&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| &amp;lt;Length&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;| float&lt;br /&gt;
| Horizontal extents, explained below. They create a &amp;quot;danger zone&amp;quot; around the attacker which the AI uses to try to dodge an attack.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Export==&lt;br /&gt;
TRAM files can be extracted &#039;&#039;&#039;A) as pure XML&#039;&#039;&#039; files or &#039;&#039;&#039;B) as a pair of XML and DAE&#039;&#039;&#039; files. For editing the actual animation, you will want to use method B. While exporting an ONCC, you might see errors such as:&lt;br /&gt;
&lt;br /&gt;
 Cannot find instance &#039;TRAMKONCOMthrow_rev&#039;&lt;br /&gt;
 Cannot find instance &#039;TRAMKONCOMthrow_rev&#039;&lt;br /&gt;
 Cannot find instance &#039;TRAMKONRIFturn_right&#039;&lt;br /&gt;
 Cannot find instance &#039;TRAMKONOKOlev18_ZomStand&#039;&lt;br /&gt;
 Cannot find instance &#039;TRAMKONOKOcorner_hide&#039;&lt;br /&gt;
 Cannot find instance &#039;TRAMKONPIScorner_hide&#039;&lt;br /&gt;
&lt;br /&gt;
Ignore them, as those files doesn&#039;t exist. (Someday we should remove them from the TRACs.)&lt;br /&gt;
&lt;br /&gt;
===Via command line===&lt;br /&gt;
To export a single TRAM:&lt;br /&gt;
 onisplit -extract:xml output_path -anim-body:path_to\TRBS_or_ONCCname.oni path_to\TRAMname.oni&lt;br /&gt;
&lt;br /&gt;
To export merged TRAMs:&lt;br /&gt;
 onisplit -extract:xml output_path &#039;&#039;&#039;-anim-merge&#039;&#039;&#039; -anim-body:path_to\TRBS_or_ONCCname.oni path_to\TRAMname1.oni  path_to\TRAMnameN.oni&lt;br /&gt;
&lt;br /&gt;
===Via Vago===&lt;br /&gt;
[[Image:Vago_xml_plus_dae_extraction.png|thumb|200px|right|Combined extraction of DAE and XML.]]&lt;br /&gt;
&lt;br /&gt;
Change to Characters tab and follow these steps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; Select &amp;quot;TRAM ONI&amp;quot; as input format (&amp;quot;From&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2:&#039;&#039;&#039; Select &amp;quot;XML / XML &amp;amp; DAE&amp;quot; as output format (&amp;quot;To&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3:&#039;&#039;&#039; Tick checkbox &amp;quot;Extract with TRBS / ONCC&amp;quot;. It&#039;s important this is done before adding a TRAM file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4:&#039;&#039;&#039; Set full path of ONCC or TRBS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5:&#039;&#039;&#039; Add TRAM file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 6:&#039;&#039;&#039; Click &amp;quot;Convert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Via Simple OniSplit GUI===&lt;br /&gt;
There was a long-standing problem with combined ONCC/TRAM files where the textures would be missing.&amp;lt;!--[Iritscen: I don&#039;t understand this sentence; is it important to keep this historical note?][Paradox: Geyser still didn&#039;t release a new OniSplit containing that fix, right?] With an older method you couldn&#039;t export non-native TRAM which meant to the TRAM had to be registered in the TRAC the ONCC is using.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://www.paradox.oni2.net/programs/Simple_OniSplit_GUI.zip Simple OniSplit GUI]&#039;&#039;&#039; post-edits the DAE to fix missing textures. The character-related .oni files must be all in one folder. Usually the level0_Final folder does the trick.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; Drag and drop the TRAM and ONCC into the [http://www.paradox.oni2.net/images/simpleOniSplitGui.png big field.] (One by one or simultaneously; the order doesn&#039;t matter.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2:&#039;&#039;&#039; Hit &amp;quot;Convert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Editing 3D data==&lt;br /&gt;
===Blender===&lt;br /&gt;
See the [[Blender]] article for a general tutorial on using the free program to create animations for Oni. It also contains a Blender addon for automating certain tasks, troubleshooting advice, and links to an animation rig that makes animation much easier.&lt;br /&gt;
&lt;br /&gt;
===XSI===&lt;br /&gt;
In the past, the community&#039;s preferred tool for any 3D modeling and animation was {{ModTool}}. However, this free program was discontinued in 2014, and modders did not want to be tied to an aging (not to mention Windows-only) program. Thus, we have generally moved to using Blender (see next section). The following information is preserved for historical purposes.&lt;br /&gt;
----&lt;br /&gt;
For the correct Mod Tool settings, see [[Mod Tool#Animating|HERE]].&lt;br /&gt;
&lt;br /&gt;
Here are some hints for creating animations when there is no rigging available:&lt;br /&gt;
* Use the ONCC model in your 3D editor that will actually make use of the animations. This makes sure that the pelvis height will match and that the character&#039;s feet will not float in the air or go through the ground. &lt;br /&gt;
* The first frame and last frames should match the probable previous and follow-up animations. This will reduce the necessity for long interpolations.&lt;br /&gt;
* When setting keyframes, each body part should have moved. This rule of thumb will give a more natural-looking animation.&lt;br /&gt;
* The first body part to be animated is always the pelvis.&lt;br /&gt;
* Watch out for pelvis rotations so that the XYZ rotations don&#039;t overlap too much, otherwise you will get into a [[wp:Gimbal lock|gimbal lock]].&lt;br /&gt;
&lt;br /&gt;
Also see our OCF thread [http://web.archive.org/web/20220524164331/http://oni.bungie.org/forum/viewtopic.php?id=1433 &amp;quot;Creating new animations (TRAMS) for Oni&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
==Import==&lt;br /&gt;
 onisplit -create output_path path_to\TRAMname.xml&lt;br /&gt;
&lt;br /&gt;
==Common operations on animations by the community==&lt;br /&gt;
===Speeding up existing animations===&lt;br /&gt;
s10k has created an XmlTools script that allows the speed-up of any existing TRAM by removing frames. More information and download link [http://mods.oni2.net/node/354 here.]&lt;br /&gt;
&lt;br /&gt;
==Selected notes on animation types==&lt;br /&gt;
===Attacks===&lt;br /&gt;
====Extents and XML====&lt;br /&gt;
&#039;&#039;&#039;As a regular modder you don&#039;t need to know how the attack ring and the extents get calculated.&#039;&#039;&#039; If you just want to create an attack animation then add an appropriate &amp;lt;Attacks&amp;gt; code block to your XML as seen under {{SectionLink||Using OniSplit to calculate extents}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How attack ring (horizontal extents) and extents get calculated&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Ever wondered how the AI can recognize incoming attacks and block or dodge them? Extents (found by geyser and fully uncovered by Neo) are the key. Imagine the character looked at from above, and visualize a circle with this character being at the center of the circle. Now divide this circle into 10° segments, and those are the 36 units of horizontal extents (that is, the lateral reach of the attack). The 0° point is directly in front of the character and 180° is behind the character. The segments run clockwise around the character. So the first Extent tag is the horizontal reach on the 0° line, the second tag is for the line 10° clockwise, and so on. Note that a frontal attack like a simple kick could hit a target not only if he&#039;s standing at 0° (directly in front), but also at 10° or 20° to the right, and also at 340° and 350° (a bit to the left). When setting these manually, you should guess the inner and outer ranges of the reach of the attacker&#039;s bones that have damage attached to them. Test these values with an AI that blocks often. If you did it right, your attack will often be blocked, but if the extent length is too high, the AIs will react when too far from you, which does not look good.&lt;br /&gt;
&lt;br /&gt;
There are two types of extents:&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;Extents&amp;gt;&#039;&#039;&#039; stores this info:&lt;br /&gt;
::&amp;lt;Angle&amp;gt; at which this extent radiates from the character.&lt;br /&gt;
::&amp;lt;Length&amp;gt; of this extent.&lt;br /&gt;
::&amp;lt;MinY&amp;gt; minimum height of this extent.&lt;br /&gt;
::&amp;lt;MaxY&amp;gt; maximum height of this extent.&lt;br /&gt;
:Length, MinY and MaxY serve to create an invisible area in space which is &amp;quot;dangerous to be in&amp;quot;. If an AI intersects with this area and notices it (refer to the Notice field in [[MELE]]), it will attempt to block or dodge according to its modifiers in its MELE profile.&lt;br /&gt;
::The number of &amp;lt;Extent&amp;gt;s is equal to the number of attack frames: &amp;lt;End&amp;gt; minus &amp;lt;Start&amp;gt; plus one (because the start frame counts too). For example, for TRAMKONCOMkick_low1: &amp;lt;End&amp;gt;30&amp;lt;/End&amp;gt; minus &amp;lt;Start&amp;gt;22&amp;lt;/Start&amp;gt; plus 1 = 9 &amp;lt;Extent&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;AttackRing&amp;gt; (formerly known as &amp;lt;HorizontalExtents&amp;gt;&#039;&#039;&#039; stores this info:&lt;br /&gt;
::36 fields (exactly 36, otherwise it won&#039;t compile back into a .oni file), which correspond to areas in 10° intervals around the character as described above.&lt;br /&gt;
&lt;br /&gt;
====Using OniSplit to calculate extents====&lt;br /&gt;
Let&#039;s say that you want to convert a non-attack animation to a damage-dealing animation. Non-attack TRAMs do not have extents information used to notify the AIs about incoming attacks, so how do you generate this information from the animation?&lt;br /&gt;
:1. Export the animation to XML with a body attached. If you extract using just &amp;quot;-extract:xml dest_folder TRAMsomething.oni&amp;quot;, you&#039;ll get the 3D animation data inside the XML (namely, the tags Heights, Velocities, Rotations, PositionOffset, and Positions; for an attack animation, you&#039;ll also get Attacks and AttackRing, and inside Attacks&#039; elements, each Attack element will have Extents at the end of it).&lt;br /&gt;
:However, if you extract this same animation using &amp;quot;-extract:xml dest_folder TRAMsomething.oni &#039;&#039;&#039;-anim-body ONCCtramuser.oni&#039;&#039;&#039;&amp;quot;, the animation data will be placed in a DAE file along with the character model geometry. Be sure to pick a body with a size that&#039;s representative of the character classes that will actually use this TRAM, because the extents will be calculated from it. The XML file will be very short without the 3D data in it — this is how we want the non-attack TRAM to look. We do not know the extents information that should go in Extents or AttackRing, so we just want to add the part that distinguishes a DAE-extracted attack TRAM XML from a DAE-extracted non-attack TRAM XML. That part is the Attacks section, without the Extents under each Attack.&lt;br /&gt;
:2. First, consider whether the TRAM should have something added to its Flags section, like Attack or ThrowTarget.&lt;br /&gt;
:3. Now add to the XML of the non-attack TRAM data in the following format (after the &amp;lt;SelfDamage /&amp;gt; section, typically):&lt;br /&gt;
        &amp;lt;Attacks&amp;gt;&lt;br /&gt;
            &amp;lt;Attack&amp;gt;&lt;br /&gt;
                &amp;lt;Start&amp;gt;1&amp;lt;/Start&amp;gt;&lt;br /&gt;
                &amp;lt;End&amp;gt;10&amp;lt;/End&amp;gt;&lt;br /&gt;
                &amp;lt;Bones&amp;gt;RightWrist RightFist&amp;lt;/Bones&amp;gt;&lt;br /&gt;
                &amp;lt;Flags /&amp;gt;&lt;br /&gt;
                &amp;lt;Knockback&amp;gt;4&amp;lt;/Knockback&amp;gt;&lt;br /&gt;
                &amp;lt;HitPoints&amp;gt;10&amp;lt;/HitPoints&amp;gt;&lt;br /&gt;
                &amp;lt;HitType&amp;gt;KnockdownHead&amp;lt;/HitType&amp;gt;&lt;br /&gt;
                &amp;lt;HitLength&amp;gt;5&amp;lt;/HitLength&amp;gt;&lt;br /&gt;
                &amp;lt;StunLength&amp;gt;8&amp;lt;/StunLength&amp;gt;&lt;br /&gt;
                &amp;lt;StaggerLength&amp;gt;0&amp;lt;/StaggerLength&amp;gt;&lt;br /&gt;
            &amp;lt;/Attack&amp;gt;&lt;br /&gt;
        &amp;lt;/Attacks&amp;gt;&lt;br /&gt;
:Do not add an AttackRing section after Attacks.&lt;br /&gt;
:4. Import this with &amp;quot;-create dest_folder TRAMsomething.xml&amp;quot;. The Extents sections and the AttackRing will be calculated by OniSplit from the attached DAE.&lt;br /&gt;
:5. If you need this information for a patch mod, run &amp;quot;-extract:xml&amp;quot; on the TRAMsomething.oni you&#039;ve created &amp;lt;u&amp;gt;without&amp;lt;/u&amp;gt; using &amp;quot;-anim-body&amp;quot;. Now you can copy the Extents and AttackRing data to your XML patch. For an example of how the patch should look, see the [http://mods.oni2.net/node/311 Domino Knockdowns] mod.&lt;br /&gt;
&lt;br /&gt;
===Combos===&lt;br /&gt;
The type and order of player input for triggering a given animation type (such as PPK) is hardcoded, and new animation types cannot be created. That being said, Oni has unused combo animation types, such as PKP, PKK, KPK, KPP, etc. that work perfectly fine and can be used to create new combos. To assign an animation type to a specific combo attack, you set a corresponding value in &amp;lt;Lookup&amp;gt;&amp;lt;Type&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting a value in the &amp;lt;Link&amp;gt; of &#039;&#039;&#039;&amp;lt;DirectAnimations&amp;gt;&#039;&#039;&#039; will do two things:&lt;br /&gt;
# It will increase the time window for player input, meaning the next animation can be executed more easily. (In vanilla Oni, the Crescent Moon Kick has no link in KONCOMcomb_k_k_kfw and therefore is difficult to use.)&lt;br /&gt;
# It disables &amp;lt;Interpolation&amp;gt;&amp;lt;End&amp;gt; for the next combo anim.&lt;br /&gt;
# It enables &amp;lt;Pause&amp;gt;&amp;lt;Soft&amp;gt; and &amp;lt;Pause&amp;gt;&amp;lt;Hard&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Just Frame input===&lt;br /&gt;
Implemented by Delano762, inspired by the game series Tekken, a Just Frame (&amp;quot;JF&amp;quot;) move means that you have to press certain keys (W+K or W+P) at the exact same time, which is more difficult than it might sound. Delano&#039;s mod [http://mods.oni2.net/node/353 54000 New Combat Moves for Konoko] has a collection of animations which utilize existing animation states differently to create new moves.&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
* new forward kick = TRAMKONCOMkick_fw_JF &amp;lt;FromState&amp;gt;Standing&lt;br /&gt;
** key strokes: w + k&lt;br /&gt;
* old forward kick = TRAMKONCOMkick_fw &amp;lt;FromState&amp;gt;RunStart&lt;br /&gt;
** key strokes: w, k&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
* new forward punch = TRAMKONCOMpunch_fw_JF &amp;lt;FromState&amp;gt;Standing&lt;br /&gt;
** key strokes: w + p&lt;br /&gt;
* old forward punch = TRAMKONCOMpunch_fw &amp;lt;FromState&amp;gt;RunStart&lt;br /&gt;
** key strokes: w, p&lt;br /&gt;
&lt;br /&gt;
Note that these animations are referred to as JF moves, not JF combos. The Crescent Moon Kick, as mentioned above, is an unintentional JF combo found in vanilla Oni.&lt;br /&gt;
&lt;br /&gt;
===Throws===&lt;br /&gt;
;States&lt;br /&gt;
The first anim state of source (src) and target (tgt) is the &amp;quot;primary&amp;quot; &amp;lt;FromState&amp;gt;. The others &amp;lt;FromState&amp;gt; entries are located in &amp;lt;Shortcut&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
;Types&lt;br /&gt;
Throw target animations are registered in the TRAC of the throw initiator (AKA the throw source). Target animations are forced onto the other character. Throw target (TRAM*tgt) animations can only cover up to 256 frames (0-255). &lt;br /&gt;
&lt;br /&gt;
The game identifies which Target animation is it supposed to play through the &#039;&#039;ThrownX&#039;&#039; animation types. Each throw, together with its corresponding Target animation, uses one of the 17 available &#039;&#039;ThrownX&#039;&#039; animation types. These types are used in three tags:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;TargetType&amp;gt; tag in the Source animation,&lt;br /&gt;
* &amp;lt;Type&amp;gt; and &amp;lt;AimingType&amp;gt; tags in the Target animation.&lt;br /&gt;
&lt;br /&gt;
For example, Konoko&#039;s forward punch throw / &#039;&#039;KONCOMthrow_fw_p&#039;&#039; uses Thrown1 as its TargetType tag:&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;TargetType&amp;gt;Thrown1&amp;lt;/TargetType&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the corresponding target animation, &#039;&#039;KONCOMthrow_fw_p&#039;&#039;, uses Thrown1 in the Type and AimingType tags:&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;Type&amp;gt;Thrown1&amp;lt;/Type&amp;gt;&lt;br /&gt;
            &amp;lt;AimingType&amp;gt;Thrown1&amp;lt;/AimingType&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;ThrownX&#039;&#039; anim types work like slots - if you want to add a new throw to the game, you have to assign both the Source and the Target animations the same ThrownX type in the tags listed above. While these &amp;quot;pairs&amp;quot; are organized within vanilla animations according to the Throw Table below, this is nothing more than a convention, and as a result &#039;&#039;ThrownX&#039;&#039; types can be used freely. To give an example, while all Forward Punch Throws in the game seem to use the Thrown1 type, you can swap those types with another throw and they will work just as fine.&lt;br /&gt;
&lt;br /&gt;
The fact that the game has only 17 &#039;&#039;ThrownX&#039;&#039; types is a major limitation - this effectively means that each character can have no more than 17 throws - out of which only 4 are unused by any character in the game. This prevents modders from creating a significant number of throws despite the game allowing great flexibility in creating new throws by mixing Animation States, Animation Types and &amp;lt;Varient&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
 {{divhide|Throw table for vanilla Oni}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=100%&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 width=240 | names&lt;br /&gt;
! rowspan=2 width=40 | key combo&lt;br /&gt;
! colspan=4 | context&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #FF0;&amp;quot; | anim type&lt;br /&gt;
! rowspan=2 width=400 | image&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!--context--&amp;gt;&lt;br /&gt;
! width=40 | varient&lt;br /&gt;
! width=60 | src state&lt;br /&gt;
! width=60 | tgt state&lt;br /&gt;
! width=85 | facing setup&amp;lt;!--tgt position only?(or pelvis rotation?)--&amp;gt;&lt;br /&gt;
&amp;lt;!--facing setup tgt rotation relative to src pelvis (or tgt pelvis position?)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--anim type--&amp;gt;&lt;br /&gt;
! width=40 style=&amp;quot;background: #FF0;&amp;quot; | src&lt;br /&gt;
! width=40 style=&amp;quot;background: #FF0;&amp;quot; | tgt&lt;br /&gt;
|-&lt;br /&gt;
! colspan=9 | normal throws a.k.a. static throws&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; static throw forward punch&lt;br /&gt;
: TRAMKONCOMthrow_fw_p&lt;br /&gt;
: TRAMKONCOMthrow_fw_p_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; P + ↑&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; COM&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt; &#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunStart&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt; &#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Crouch&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;face&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;ThrowForwardPunch&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown1&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONCOMthrow_fw_p.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; static throw forward kick&lt;br /&gt;
: TRAMKONCOMthrow_fw_k&lt;br /&gt;
: TRAMKONCOMthrow_fw_k_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; K + ↑&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; COM&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt; &#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunStart&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt; &#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Crouch&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;face&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;ThrowForwardKick&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown2&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONCOMthrow_fw_k.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; static throw backward punch&lt;br /&gt;
: TRAMKONCOMthrow_bk&lt;br /&gt;
: TRAMKONCOMthrow_bk_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; P + ↑&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; COM&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt; &#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunStart&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt; &#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Crouch&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingRightDown&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;back&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;ThrowBackwardPunch&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown3&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONCOMthrow_bk.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; static throw backward punch&lt;br /&gt;
: TRAMKONCOMthrow_bk_k&lt;br /&gt;
: TRAMKONCOMthrow_bk_k_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; K + ↑&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; COM&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt; &#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunStart&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt; &#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Crouch&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingRightDown&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;back&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;ThrowBackwardKick&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown4&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONCOMthrow_bk_k.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
! colspan=9 | run throws&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; run throw forward punch&lt;br /&gt;
: (forward &amp;quot;lariat&amp;quot;)&lt;br /&gt;
: TRAMKONCOMrun_throw_fw&lt;br /&gt;
: TRAMKONCOMrun_throw_fw_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; P + ↑(↑)&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; COM&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt; &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: silver;&amp;quot;&amp;gt;None&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunningLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
RunningRightDown&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt; &#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunningLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
RunningRightDown&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingRightDown&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;face&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;RunThrowForwardPunch&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown5&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONCOMrun_throw_fw.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; run throw forward kick&lt;br /&gt;
: TRAMKONCOMrun_thw_fw_k&lt;br /&gt;
: TRAMKONCOMrun_thw_fw_k_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; K + ↑(↑)&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; COM&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: silver;&amp;quot;&amp;gt;None&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunningLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
RunningRightDown&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunningLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
RunningRightDown&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingRightDown&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;face&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;RunThrowForwardKick&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown6&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONCOMrun_thw_fw_k.jpg|200px]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
identical headers but&lt;br /&gt;
STRCOMrun_thw_fw_p (face-to-face, with righty angle) links to Thrown5&lt;br /&gt;
STRCOMrun_thw_fw_pl (face-to-face, with lefty angle) links to Thrown6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; run throw backward punch&lt;br /&gt;
: (backward &amp;quot;lariat&amp;quot;)&lt;br /&gt;
: TRAMKONCOMrun_throw_bk&lt;br /&gt;
: TRAMKONCOMrun_throw_bk_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; P + ↑(↑)&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; COM&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: silver;&amp;quot;&amp;gt;None&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunningLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
RunningRightDown&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunningBackLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
RunningBackRightDown&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingRightDown&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;back&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;RunThrowBackwardPunch&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown7&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt;&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; run throw backward kick&lt;br /&gt;
: TRAMREDCOMrun_thw_bk_k&lt;br /&gt;
: TRAMREDCOMrun_thw_bk_k_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; K + ↑(↑)&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; COM&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: silver;&amp;quot;&amp;gt;None&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunningLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
RunningRightDown&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunningBackLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
RunningBackRightDown&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;back&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;RunThrowBackwardKick&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown8&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:REDCOMrun_thw_bk_k.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
! colspan=9 | catching throws a.k.a. tackle throws&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; tackle throw backward kick?&amp;lt;br&amp;gt;(never used)&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt;&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt;&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; Thrown9&lt;br /&gt;
|&amp;lt;!--image--&amp;gt;&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; tackle throw backward punch&lt;br /&gt;
: TRAMKONCOMrun_tkl_bk_p&lt;br /&gt;
: TRAMKONCOMrun_tkl_bk_p_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; P + ↑(↑)&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; COM&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: silver;&amp;quot;&amp;gt;None&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunningLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
RunningRightDown&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: silver;&amp;quot;&amp;gt;None&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunningLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
RunningRightDown&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;back&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;RunThrowBackwardPunch&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown10&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONCOMrun_tkl_bk_p.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
! colspan=9 | disarm throws&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; pistol disarm throw forward punch&lt;br /&gt;
: TRAMKONPISthrow_fw_p&lt;br /&gt;
: TRAMKONPISthrow_fw_p_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; P + ↑&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; PIS&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunStart&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Crouch&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;face&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;ThrowForwardPunch&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown11&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONPISthrow_fw_p.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; pistol disarm throw forward kick&lt;br /&gt;
: TRAMKONPISthrow_fw_k&lt;br /&gt;
: TRAMKONPISthrow_fw_k_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; K + ↑&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; PIS&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunStart&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Crouch&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;face&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;ThrowForwardKick&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown12&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONPISthrow_fw_k.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; pistol disarm throw backward punch&lt;br /&gt;
: TRAMKONPISthrow_bk&lt;br /&gt;
: TRAMKONPISthrow_bk_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; P + ↑&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; PIS&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunStart&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Crouch&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingLeftDown&amp;lt;br&amp;gt;&lt;br /&gt;
WalkingRightDown&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;back&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;ThrowBackwardPunch&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown13&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONPISthrow_bk.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; (never used)&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt;&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt;&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; Thrown14&lt;br /&gt;
|&amp;lt;!--image--&amp;gt;&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; rifle disarm throw forward punch&lt;br /&gt;
: TRAMKONRIFthrow_fw_p&lt;br /&gt;
: TRAMKONRIFthrow_fw_p_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; P + ↑&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; RIF&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunStart&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Crouch&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;face&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;ThrowForwardPunch&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown15&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONRIFthrow_fw_p.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; rifle disarm throw backward punch&lt;br /&gt;
: TRAMKONRIFthrow_bk_p&lt;br /&gt;
: TRAMKONRIFthrow_bk_p_tgt&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt; P + ↑&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt; RIF&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RunStart&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&#039;&#039;&#039;Standing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Crouch&amp;lt;br&amp;gt;&lt;br /&gt;
Stunned&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt; face-to-&#039;&#039;&#039;back&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt; &#039;&#039;&#039;ThrowBackwardPunch&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; &#039;&#039;&#039;Thrown16&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;!--image--&amp;gt; [[Image:KONRIFthrow_bk_p.jpg|200px]]&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&amp;lt;!--names--&amp;gt; (never used)&lt;br /&gt;
|&amp;lt;!--key combo--&amp;gt;&lt;br /&gt;
|&amp;lt;!--varient--&amp;gt;&lt;br /&gt;
|&amp;lt;!--src state--&amp;gt;&lt;br /&gt;
|&amp;lt;!--tgt state--&amp;gt;&lt;br /&gt;
|&amp;lt;!--facing setup--&amp;gt;&lt;br /&gt;
|&amp;lt;!--anim type src--&amp;gt;&lt;br /&gt;
|&amp;lt;!--anim type tgt--&amp;gt; Thrown17&lt;br /&gt;
|&amp;lt;!--image--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{{divhide|end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Running disarms&lt;br /&gt;
Oni offers support for running disarms (originally noticed [[OBD:BINA/OBJC/MELE/MoveList/Throw|HERE]]), which was taken advantage of by Delano&#039;s mod [http://mods.oni2.net/node/353 54000 New Combat Moves for Konoko].&lt;br /&gt;
&lt;br /&gt;
;Forward throws&lt;br /&gt;
Scenario: You load two characters into Mod Tool and rotate (+/-180°) the throw target character because you need them to stand face to face as you work on an animation. When you are done animating, the target animation would need to be reversed again. This means multiplying the velocities by -1; the rotation also needs correcting. So it looks like you need *(-1) for the x rotation and -/+180° (depending on your initial change) for the Y rotation.&lt;br /&gt;
&lt;br /&gt;
There is a Blender script implemented within the BlenderOni addon for rotating and adding PositionOffset to a forward throw Target animation. It is capable of adjusting both forward and back throws. The script&#039;s old version can be accessed [[Blender/Obsolete scripts#Script for adjusting forward throw targets|HERE]].&lt;br /&gt;
&lt;br /&gt;
===Run animations===&lt;br /&gt;
Here&#039;s a breakdown of the Striker&#039;s run animations, meant as an illustration for what would be needed to make new run TRAMs.&lt;br /&gt;
&lt;br /&gt;
Run cancel:&lt;br /&gt;
* STRIKEidle1 / another idle animation&lt;br /&gt;
* STRIKErun1stepa&lt;br /&gt;
* STRIKErun1stepb&lt;br /&gt;
* STRIKEidle1 / another idle animation&lt;br /&gt;
&lt;br /&gt;
Run – &#039;&#039;a minimal cycle&#039;&#039;:&lt;br /&gt;
* STRIKEidle1 / another idle animation&lt;br /&gt;
* STRIKErun1stepa&lt;br /&gt;
* STRIKErunstart&lt;br /&gt;
* STRIKErun_rt&lt;br /&gt;
* STRIKErun_lt (optional)&lt;br /&gt;
* STRIKErunstop&lt;br /&gt;
* STRIKEidle1 / another idle animation&lt;br /&gt;
&lt;br /&gt;
Follow the images below from right to left.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:XML_TRAM_STRIKErunstop.png|STRIKErunstop&lt;br /&gt;
Image:XML_TRAM_STRIKErun_lt.png|STRIKErun_lt&lt;br /&gt;
Image:XML_TRAM_STRIKErun_rt.png|STRIKErun_rt&lt;br /&gt;
Image:XML_TRAM_STRIKErunstart.png|STRIKErunstart&lt;br /&gt;
Image:XML_TRAM_STRIKErun1stepa.png|STRIKErun1stepa&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==List of unused animations==&lt;br /&gt;
Here are all the known unused animations, with links to videos of them where applicable. These could be recycled in a new mod.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From the original game&#039;&#039;&#039;&lt;br /&gt;
* KONOKOconsole_punch: What the name says (the engine can use that animation depending on the console&#039;s configuration, see [[OBD:BINA/OBJC/CONS|CONS]]) .&lt;br /&gt;
* KONOKOlev3_intro: Looks like she&#039;s placing something (bomb?) and then running away.&lt;br /&gt;
* [https://www.youtube.com/watch?v=dszw2vmlmzw KONOKOlev4_undress]: From an aborted clothes-changing cutscene.&lt;br /&gt;
* KONOKOlev16_bomb: Planting a bomb.&lt;br /&gt;
* KONCOMsuper_kick: Now used in [[OTA]] as a spawn event, and by the fan-made character [[Shinatama Evolved]].&lt;br /&gt;
* KONCOMsuper_punch: KONCOMpunch_heavy but without the shouted attack name, has HalfDamage flag, and does 10 less damage in its first attack part.&lt;br /&gt;
* [https://www.youtube.com/watch?v=CRuZq_uYOQk COMPISidle_special1]: Comguy checking environment and his gun; meant for a feature that would visually depict an elevation in the AI&#039;s level of alertness after, say, hearing a noise.&lt;br /&gt;
* STRPISidle_special1 (see above link): Striker checking his his gun and communicating with an ally (another unused alertness-elevation animation).&lt;br /&gt;
* THUGlev1_direct: Thug probably directing a truck driver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From modders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Female stun.jpg|right|thumb|Char A and Char B performing stun animations.]]&lt;br /&gt;
&lt;br /&gt;
* http://mods.oni2.net/node/376&lt;br /&gt;
** StrikerKneeStepKickThrow.zip&lt;br /&gt;
** REDCOMjump_fw_crouch--double_flip--dae.zip&lt;br /&gt;
** KONprone_getup--dae.zip&lt;br /&gt;
** KONRIF_k_bk_throw.zip&lt;br /&gt;
** female_stun--dae.zip&lt;br /&gt;
&lt;br /&gt;
==Special effects==&lt;br /&gt;
If the scene is overloaded by too many particles (including motion blur), these effects will cease being rendered. So don&#039;t overuse effects.&lt;br /&gt;
&lt;br /&gt;
===Color trails===&lt;br /&gt;
Open the XML-accompanied TRAM, search for the &amp;quot;Particles&amp;quot; tag, and insert your markup.&lt;br /&gt;
&lt;br /&gt;
First example: TRAMSTRCOMcomb_p_p.xml&lt;br /&gt;
&lt;br /&gt;
[[Image:Colorful_contrail_added.png|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Particles&amp;gt;&lt;br /&gt;
            &amp;lt;Particle&amp;gt;&lt;br /&gt;
                &amp;lt;StartFrame&amp;gt;0&amp;lt;/StartFrame&amp;gt;&lt;br /&gt;
                &amp;lt;EndFrame&amp;gt;12&amp;lt;/EndFrame&amp;gt;&lt;br /&gt;
                &amp;lt;Bone&amp;gt;LeftFist&amp;lt;/Bone&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;contrail&amp;lt;/Name&amp;gt;&lt;br /&gt;
            &amp;lt;/Particle&amp;gt;&lt;br /&gt;
        &amp;lt;/Particles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;contrail&amp;quot; is looked up by the character class (ONCC) that emits the actual particle; here it is &amp;quot;h2h_strtrail_e01&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This second example is about creating two different contrails in a TRAM at the same time. The animation is &amp;quot;TRAMSTRCOMpunch_heavy.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:Different_contrails_in_attack.png|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Particles&amp;gt;&lt;br /&gt;
            &amp;lt;Particle&amp;gt;&lt;br /&gt;
                &amp;lt;Start&amp;gt;0&amp;lt;/Start&amp;gt;&lt;br /&gt;
                &amp;lt;End&amp;gt;54&amp;lt;/End&amp;gt;&lt;br /&gt;
                &amp;lt;Bone&amp;gt;RightWrist&amp;lt;/Bone&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;contrail&amp;lt;/Name&amp;gt;&lt;br /&gt;
            &amp;lt;/Particle&amp;gt;&lt;br /&gt;
            &amp;lt;Particle&amp;gt;&lt;br /&gt;
                &amp;lt;Start&amp;gt;0&amp;lt;/Start&amp;gt;&lt;br /&gt;
                &amp;lt;End&amp;gt;54&amp;lt;/End&amp;gt;&lt;br /&gt;
                &amp;lt;Bone&amp;gt;LeftWrist&amp;lt;/Bone&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;&#039;&#039;&#039;contrail_2&#039;&#039;&#039;&amp;lt;/Name&amp;gt;&lt;br /&gt;
            &amp;lt;/Particle&amp;gt;&lt;br /&gt;
        &amp;lt;/Particles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to register the second contrail in the ONCC as well. Using your own contrail particle is also possible; just insert its name between the &amp;lt;Type&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;ONCPParticle&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;contrail&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;Type&amp;gt;h2h_strtrail_e01&amp;lt;/Type&amp;gt;&lt;br /&gt;
                &amp;lt;BodyPart&amp;gt;-1&amp;lt;/BodyPart&amp;gt;&lt;br /&gt;
            &amp;lt;/ONCPParticle&amp;gt;&lt;br /&gt;
            &amp;lt;ONCPParticle&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;&#039;&#039;&#039;contrail_2&#039;&#039;&#039;&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;Type&amp;gt;&#039;&#039;&#039;h2h_murtrail_e01&#039;&#039;&#039;&amp;lt;/Type&amp;gt;&lt;br /&gt;
                &amp;lt;BodyPart&amp;gt;-1&amp;lt;/BodyPart&amp;gt;&lt;br /&gt;
            &amp;lt;/ONCPParticle&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Motion blur===&lt;br /&gt;
[[Image:XML_TRAM_willow_kick_with_motion_blur.jpg|thumb|200px]]&lt;br /&gt;
Motion blur in Oni works much like ghosting/onion skinning features in any animation software: In the frame range specified by &amp;lt;Start&amp;gt; and &amp;lt;End&amp;gt; an additional instance of body parts specified in &amp;lt;Bones&amp;gt; are rendered for additional extra frames specified by &amp;lt;Lifetime&amp;gt;, with transparency set by &amp;lt;Alpha&amp;gt;, and every &amp;lt;Interval&amp;gt; frames within the frame range.&lt;br /&gt;
Example snippet from KONCOMcomb_p_p_k:&lt;br /&gt;
        &amp;lt;MotionBlur&amp;gt;&lt;br /&gt;
            &amp;lt;MotionBlur&amp;gt;&lt;br /&gt;
                &amp;lt;Bones&amp;gt;RightThigh RightCalf RightFoot&amp;lt;/Bones&amp;gt;&lt;br /&gt;
                &amp;lt;Start&amp;gt;20&amp;lt;/Start&amp;gt;&lt;br /&gt;
                &amp;lt;End&amp;gt;28&amp;lt;/End&amp;gt;&lt;br /&gt;
                &amp;lt;Lifetime&amp;gt;4&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
                &amp;lt;Alpha&amp;gt;127&amp;lt;/Alpha&amp;gt;&lt;br /&gt;
                &amp;lt;Interval&amp;gt;1&amp;lt;/Interval&amp;gt;&lt;br /&gt;
            &amp;lt;/MotionBlur&amp;gt;&lt;br /&gt;
        &amp;lt;/MotionBlur&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The one noteworthy thing is that you can have multiple motion blur sequences. If you wanted to add an extra motion blur to the above animation, you could do something like this:&lt;br /&gt;
        &amp;lt;MotionBlur&amp;gt;&lt;br /&gt;
            &amp;lt;MotionBlur&amp;gt;&lt;br /&gt;
                &amp;lt;Bones&amp;gt;LeftThigh LeftCalf LeftFoot&amp;lt;/Bones&amp;gt;&lt;br /&gt;
                &amp;lt;Start&amp;gt;10&amp;lt;/Start&amp;gt;&lt;br /&gt;
                &amp;lt;End&amp;gt;18&amp;lt;/End&amp;gt;&lt;br /&gt;
                &amp;lt;Lifetime&amp;gt;4&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
                &amp;lt;Alpha&amp;gt;127&amp;lt;/Alpha&amp;gt;&lt;br /&gt;
                &amp;lt;Interval&amp;gt;1&amp;lt;/Interval&amp;gt;&lt;br /&gt;
            &amp;lt;/MotionBlur&amp;gt;&lt;br /&gt;
            &amp;lt;MotionBlur&amp;gt;&lt;br /&gt;
                &amp;lt;Bones&amp;gt;RightThigh RightCalf RightFoot&amp;lt;/Bones&amp;gt;&lt;br /&gt;
                &amp;lt;Start&amp;gt;20&amp;lt;/Start&amp;gt;&lt;br /&gt;
                &amp;lt;End&amp;gt;28&amp;lt;/End&amp;gt;&lt;br /&gt;
                &amp;lt;Lifetime&amp;gt;4&amp;lt;/Lifetime&amp;gt;&lt;br /&gt;
                &amp;lt;Alpha&amp;gt;127&amp;lt;/Alpha&amp;gt;&lt;br /&gt;
                &amp;lt;Interval&amp;gt;1&amp;lt;/Interval&amp;gt;&lt;br /&gt;
            &amp;lt;/MotionBlur&amp;gt;&lt;br /&gt;
        &amp;lt;/MotionBlur&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Impact effect===&lt;br /&gt;
Impact effects – mostly particle – are chosen based on logic written within [[XML:BINA/ONIE#Visual guides: weapon, melee, environment|ONIE]]. Furthermore particles must be registered in [[XML:ONCC|ONCC]]: You probably want to look at ONIA instead of ONCP.&lt;br /&gt;
&lt;br /&gt;
[[Image:XML_TRAM_KONCOMkick_fw_with_ninflash1.jpg|thumb|200px]]&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Zukai&amp;diff=46172</id>
		<title>Zukai</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Zukai&amp;diff=46172"/>
		<updated>2025-12-26T06:07:47Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmbox&lt;br /&gt;
  | text = This project is currently only in development for Macs, until it is more polished.&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;float:right;&amp;quot; border=1 cellspacing=0&lt;br /&gt;
|[[Image:Zukai logo.png|center]]&lt;br /&gt;
{|cellspacing=3&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Zukai Multiplayer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Developer:&#039;&#039;&#039;&lt;br /&gt;
|align=&amp;quot;right&amp;quot; |[[User:Iritscen|Iritscen]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;Currently at&#039;&#039;&#039; {{/Change log}}&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;left&amp;quot;|[[/Change log|Change log]]&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|[https://bugs.oni2.net/query?component=Zukai&amp;amp;order=priority&amp;amp;report=11 Bug reporting]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;|[http://web.archive.org/web/20171120015337/http://oni.bungie.org/forum/viewtopic.php?id=2841 Forum thread]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zukai&#039;&#039;&#039; is the most recent attempt at [[multiplayer]] for [[Oni]]. Zukai is in an alpha-like stage of development for macOS until it reaches v0.1, at which point it will be ported to Windows, and development will continue on both platforms. It currently comes in the form of a bundle called &#039;&#039;&#039;Daodan.plugin&#039;&#039;&#039; and an Oni [[AE:Plugins|level plugin]] called &#039;&#039;&#039;level0_Zukai&#039;&#039;&#039; with supplemental resources.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Zukai&#039;&#039; is a Japanese word connected to the ancient art of puppetry and puppet theater (&#039;&#039;[[wikipedia:Bunraku|bunraku]]&#039;&#039;).  Its usage in this project is based on the expression &#039;&#039;Ningyō Zukai&#039;&#039; (&amp;quot;Puppet Master&amp;quot;) in [[Ghost in the Shell]], though translations of the word &#039;&#039;zukai&#039;&#039; alone range from &amp;quot;messenger&amp;quot; to &amp;quot;operator&amp;quot; to &amp;quot;familiar spirit&amp;quot; to &amp;quot;trainer&amp;quot;. The icon for the project is based on the &#039;&#039;kanji&#039;&#039; for another word for puppetry, &#039;&#039;ayatsuri&#039;&#039; (操り).&lt;br /&gt;
&lt;br /&gt;
{{TOClimit}}&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
See the [http://web.archive.org/web/20171120015337/http://oni.bungie.org/forum/viewtopic.php?id=2841 official release forum thread] for download links.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
:Note: You must start with a vanilla Oni installation. Zukai does not yet support mods or the Anniversary Edition.&lt;br /&gt;
# Disable the scripting for the level you want to play in. A simple way to do this for all levels is to rename the [[IGMD]] folder to &amp;quot;~IGMD&amp;quot;.&lt;br /&gt;
# Make sure that you have version 1.2 (or later) of the Oni game app (see forum thread for download link).&lt;br /&gt;
# Place Daodan.plugin in the Oni installation folder at the same level as the game app.&lt;br /&gt;
# Place the level0_Zukai.dat/raw/sep files in [[GameDataFolder]].&lt;br /&gt;
# Add the line &amp;quot;bind m to mp_menu&amp;quot; to key_config.txt, or use whatever key is more convenient for you than &#039;m&#039;. Create another binding for &amp;quot;mp_score&amp;quot; to be able to display the scoreboard during a match. Additional optional bindings are listed below.&lt;br /&gt;
&lt;br /&gt;
==Playing==&lt;br /&gt;
[[Image:Zukai-Main Menu.jpg|thumb|350px|right|Look for the Zukai icon in the bottom-left before proceeding.]]&lt;br /&gt;
[[Image:Zukai-MP Menu.jpg|thumb|350px|right|Use the arrow keys to navigate the menu.]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow:hidden&amp;quot;&amp;gt;&lt;br /&gt;
#Decide what level you are going to play. Obtain the IP address of the player that will be hosting. If you get tired of dealing with IP addresses, players can sign up for a [https://www.noip.com/ No-IP] domain and provide that URL to players instead, e.g. joe-oni-fan.ddns.net.&lt;br /&gt;
#Launch Oni. Look for the Zukai icon on the Main Menu (pictured, left) to make sure that the plugin is active.&lt;br /&gt;
#Choose &amp;quot;Load Game&amp;quot; and load the level you are going to play (you can double-click the title or any save point, since scripting is disabled).&lt;br /&gt;
#Press your mp_menu key to bring up the Multiplayer Menu (pictured, right).&lt;br /&gt;
#Just follow the menus. The option &amp;quot;Join Iritscen&#039;s game&amp;quot; will not work unless I have let you know that I am hosting a game. If you are joining a game, and the other player has registered a No-IP domain or has some other URL which leads to his computer, you can type this into the &amp;quot;Host IP address/URL&amp;quot; field instead of an IP address. Also note that you can copy text from another window such as your chat client and paste it into the address field in the Multiplayer Menu.&lt;br /&gt;
#Because multiplayer cannot be paused, you are not allowed to access the Main Menu while playing Zukai. To quit playing, bring up the Multiplayer Menu and choose &amp;quot;Exit game&amp;quot;, or double-tap the Escape key (if the host quits, this will end the match for everyone).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
===Hosting tips===&lt;br /&gt;
*If you want to be able to host games, and not just join other people&#039;s games, make sure that you have forwarded port 2680 (UDP) to your computer&#039;s LAN (private) IP address in your router&#039;s settings. See this [https://portforward.com/router.htm port forwarding guide] for help.&lt;br /&gt;
*Until there is metaserver support (i.e., a matchmaking lobby), you will need to arrange matches with other players using a third-party program like an instant messenger or a chat room (e.g. {{Discord|nice=yes}}).&lt;br /&gt;
*Some hosts are plagued by the macOS dialog that says &amp;quot;Do you want the application &#039;Oni&#039; to accept incoming network connections?&amp;quot; each time someone tries to join their game. To turn this off, you should add this Oni application to your Firewall exceptions (System Preferences &amp;gt; Security &amp;amp; Privacy &amp;gt; Firewall &amp;gt; Firewall Options... &amp;gt; &#039;+&#039; button). Sometimes this will not work, in which case you need to open Terminal and use this command, remembering to supply the correct path to your Oni application (your administrator password will be requested):&lt;br /&gt;
 sudo codesign --force --deep --verbose --continue --file-list - --sign - /path/to/Oni.app/&lt;br /&gt;
:This performs ad-hoc code-signing, which takes the place of an official developer certificate. If successful, you will see output like this:&lt;br /&gt;
 /Applications/Oni/Oni.app: signed bundle with Mach-O thin (i386) [com.godgames.oni]&lt;br /&gt;
 /Applications/Oni/Oni.app/Contents/MacOS/Oni&lt;br /&gt;
 /Applications/Oni/Oni.app/Contents/_CodeSignature/CodeResources&lt;br /&gt;
&lt;br /&gt;
If it does not work, try the command several more times; it often doesn&#039;t seem to work on the first try. However, even if the signing is successful, you &amp;lt;u&amp;gt;still have to tell macOS that the app is allowed to accept incoming connections&amp;lt;/u&amp;gt;, which means that you will get the dialog again the next time that you host. Once you click that &amp;quot;Allow&amp;quot; button one more time, macOS should remember that this &amp;quot;signed&amp;quot; copy of Oni can accept connections.&lt;br /&gt;
&lt;br /&gt;
==Useful websites and programs==&lt;br /&gt;
*You might want to make use of [https://whatsmyip.net/ What&#039;s My IP] to get your Internet IP address (there are plenty of other websites that do this too).&lt;br /&gt;
*[https://www.noip.com/ No-IP.com] can be used to set up a domain for someone who wants to host frequently, allowing the easier exchange of host addresses with joiners than giving out the host&#039;s IP address.&lt;br /&gt;
*If the performance of an Internet game seems poor, look at the ping between you and other players. Zukai displays ping on the scoreboard when you press the mp_score button (see &amp;quot;Bindable actions&amp;quot; section), but if you want more rigorous measurement of the connection between yourself and another player, bring up Spotlight in macOS and start typing &amp;quot;Network Utility&amp;quot;. When the Utility appears, open it and use the Ping tab to test the connection between you and them. The most important numbers in the final statistics, once pinging is done, are the packet loss, which should be 0-1%, the average ping (&amp;quot;round-trip avg&amp;quot;, the third-to-last number), and jitter (&amp;quot;stddev&amp;quot;, the last number), which should be less than 25% of the average ping.&lt;br /&gt;
*To record video footage of a match, see [[Capturing game footage]]. The recommended free method is using either OBS Studio or QuickTime Player for video, and capturing the game audio with either Soundflower or iShowU Audio Capture. The recommended commercial programs are ScreenFlow and iShowU, which capture both audio and video.&lt;br /&gt;
&lt;br /&gt;
==Known bugs and limitations==&lt;br /&gt;
At the moment, Zukai is still rough, but the following problem areas will be the main focus of future updates until they are all corrected.&lt;br /&gt;
*You can only play as Konoko.&lt;br /&gt;
*No text chat.&lt;br /&gt;
*No proper matches or modes yet. All players can run around and attack each other, but there is no time limit or kill limit.&lt;br /&gt;
*No respawning or &amp;quot;intelligent&amp;quot; spawn points. Until respawning is introduced, players will not die. All players spawn around the host, who spawns at whatever Bungie West set as the default spawn point for Konoko. Because there is no death, the closest thing to a score is the total damage done, displayed with the mp_score button (see &amp;quot;Bindable actions&amp;quot; section), but this number is not synchronized between players yet, so each player will probably see a higher score for himself than what others will see for him.&lt;br /&gt;
*Weapons and some other things are not synchronized yet, and may cause gameplay to go out-of-sync (oos). You will have to start a new match to correct this.&lt;br /&gt;
*IPv6 is not supported yet, so if you have a v6-only IP address, you can&#039;t play. Please let me know if this affects you.&lt;br /&gt;
*Gameplay is currently very vulnerable to packet loss when a new player is joining; sometimes the match will &amp;quot;hang&amp;quot; because of this. To reduce packet loss, use a wired connection to your router/modem, not wireless. Packet loss resilience will come in an update fairly soon.&lt;br /&gt;
*Sometimes the wrong map name (level name) is given on the scoreboard.&lt;br /&gt;
&lt;br /&gt;
==Bindable actions==&lt;br /&gt;
In addition to the [[Customizing/Binding|standard actions]] that you have always been able to bind using &#039;&#039;&#039;key_config.txt&#039;&#039;&#039;, here is a list of actions added by the Zukai plugin for use in multiplayer mode.&lt;br /&gt;
&lt;br /&gt;
===All players===&lt;br /&gt;
Both hosts and clients can use these actions:&lt;br /&gt;
&lt;br /&gt;
;mp_menu&lt;br /&gt;
:This brings up the Multiplayer Menu when you are in-game, allowing you to host, join, or exit a game.&lt;br /&gt;
&lt;br /&gt;
;mp_score&lt;br /&gt;
:Holding this key down displays the scoreboard, along with match time and player ping.&lt;br /&gt;
&lt;br /&gt;
;mp_chat&lt;br /&gt;
:Coming soon!&lt;br /&gt;
&lt;br /&gt;
;mp_graph_toggle, mp_graph_cycle&lt;br /&gt;
:To turn on, and cycle through, graphs that display information about the state of the multiplayer game. The network graph shows the size of incoming and outgoing traffic, and the timing graph shows how much time the multiplayer code is taking to execute in each frame.&lt;br /&gt;
&lt;br /&gt;
===Hosts only===&lt;br /&gt;
These actions may only be available during this early phase of Zukai&#039;s development. They allow the host to change network settings for all players during a match, in order to see how performance is affected. You probably will want to talk to me before using them, but here they are:&lt;br /&gt;
&lt;br /&gt;
;latency_toggle, latency_up, latency_down&lt;br /&gt;
:To turn on and adjust simulated latency. This feature is intended for use in matches with negligible real latency, e.g., LAN/loopback games, to reproduce the feel of an Internet game. If used in an Internet game, this will add additional latency on top of whatever natural latency already exists.&lt;br /&gt;
&lt;br /&gt;
;jitter_toggle, jitter_up, jitter_down&lt;br /&gt;
:Simulated jitter (variation in latency) is automatically turned on when simulated latency is turned on, but you can use these actions to turn it off (to get flat simulated latency) or to alter the amount of jitter.&lt;br /&gt;
&lt;br /&gt;
;pkt_rate_up, pkt_rate_down&lt;br /&gt;
:You can send gameplay data more or less frequently using these keys. The rate is measured as a delay in ticks, so raising the rate leads to sending data less frequently.&lt;br /&gt;
&lt;br /&gt;
;state_rate_up, state_rate_down&lt;br /&gt;
:State events are communications between the client and the host which determine a client&#039;s correct position. As above, higher numbers mean less frequent events.&lt;br /&gt;
&lt;br /&gt;
;pos_tol_up, pos_tol_down&lt;br /&gt;
:Not currently used. The &amp;quot;position tolerance&amp;quot; is how many world units a client&#039;s position can differ between his avatar on the host and his avatar on his own machine before his position is corrected. Higher numbers will mean that games are permitted to go further out of sync. Lower numbers will cause more frequent adjustments in position for clients. A world unit is four inches, so a position tolerance of 3 means &amp;quot;one foot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
;sync_now&lt;br /&gt;
:This is for developer use and does not have any effect in the MP builds which I am distributing.&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
When Zukai first runs, it creates a blank &#039;&#039;&#039;zukai_settings.txt&#039;&#039;&#039; file in the same folder. You can change certain settings from their defaults by assigning values to them with this syntax:&lt;br /&gt;
&lt;br /&gt;
 lock_these_settings:yes&lt;br /&gt;
&lt;br /&gt;
Here are the settings currently supported:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Setting name&lt;br /&gt;
!Values&lt;br /&gt;
!Default&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|lock_these_settings&lt;br /&gt;
|yes/no&lt;br /&gt;
|no&lt;br /&gt;
|No effect. Planned for use with an upcoming feature.&lt;br /&gt;
|-&lt;br /&gt;
|log_all_cli_output&lt;br /&gt;
|yes/no&lt;br /&gt;
|no&lt;br /&gt;
|For diagnosing issues with automatic log uploading; turning this on will dump messages from the upload process into the system log (Console.app).&lt;br /&gt;
|-&lt;br /&gt;
|log_everything_for&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|Turns on extra logging detail. Only intended for use by the developer.&lt;br /&gt;
|-&lt;br /&gt;
|offer_loopback_network_type&lt;br /&gt;
|yes/no&lt;br /&gt;
|no&lt;br /&gt;
|Offer the choice of &amp;quot;Loopback&amp;quot; on the &amp;quot;Network type selection&amp;quot; screen. Allows testing of MP on a single machine by running multiple copies of Oni.&lt;br /&gt;
|-&lt;br /&gt;
|send_log_after_match&lt;br /&gt;
|yes/no&lt;br /&gt;
|yes&lt;br /&gt;
|You can turn off the automatic log upload that occurs after a match, but please don&#039;t do that unless it is causing issues.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Mod_Tool/OniTools_addon&amp;diff=46171</id>
		<title>Mod Tool/OniTools addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Mod_Tool/OniTools_addon&amp;diff=46171"/>
		<updated>2025-12-26T06:07:16Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OniTools was a level creation addon for {{ModTool}}. It is no longer developed or maintained. Nowadays, modders are expected to use [[Blender]] rather than XSI.&lt;br /&gt;
&lt;br /&gt;
===Download and installation===&lt;br /&gt;
Install by dragging and dropping &#039;&#039;&#039;[http://mods.oni2.net/node/356 OniTools.xsiaddon]&#039;&#039;&#039; into Mod Tool&#039;s viewport.&lt;br /&gt;
&lt;br /&gt;
[http://oni.bungie.org/forum/viewtopic.php?id=2657 OCF thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xsi_addon_weapon_manager.jpg|weapon manager&lt;br /&gt;
Image:xsi_addon_powerups_manager.jpg|powerups manager&lt;br /&gt;
Image:xsi_addon_flag_manager.jpg| flag manager&lt;br /&gt;
Image:xsi_addon_trigger_volume_manager.jpg|trigger volume manager&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tips===&lt;br /&gt;
* while in point (vertex) mode, creating a flag/powerup/TV/weapon will move it to the selected point&lt;br /&gt;
* while in object mode, creating a flag/powerup/TV/weapon will spawn it at 0, 0, 0&lt;br /&gt;
** check the &#039;&#039;point snap&#039;&#039; checkbox, then use move tool [V] with [Control] to move object to desired point&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change log===&lt;br /&gt;
&#039;&#039;&#039;known issues of v7.1.x&#039;&#039;&#039;&lt;br /&gt;
* FURN particle not yet supported by export&lt;br /&gt;
* not compatible with OBJ drag and drop plug-in (it appears to be taken down anyway)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;known issues of v4-v7&#039;&#039;&#039;&lt;br /&gt;
* manager windows sometime don&#039;t &#039;&#039;update&#039;&#039; what results in another opened instance&lt;br /&gt;
* slow flag import, I will probably make the flag numbering (textures) optional in a later version (then turned off by default)&lt;br /&gt;
* broken weapon depot update function (temporary solution: delete depot and add all dae file to folder)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Image:OniTools_select_polygon_find_material_then_delete_all_polygons.jpg|thumb|Material-depending polygon cluster deletion: You need to find the material.]][[Image:OniTools_select_polygon_find_material_then_delete_all_polygons_result.png|thumb|Material-depending polygon cluster deletion: before and after image.]]&lt;br /&gt;
&#039;&#039;&#039;version 7.1.8&#039;&#039;&#039;&lt;br /&gt;
* material-depending polygon cluster deletion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 7.1.7&#039;&#039;&#039;&lt;br /&gt;
* [http://web.archive.org/web/20160225030701/http://oni.bungie.org/forum/viewtopic.php?pid=48310#p48310 Animated Rotoscope]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 7.1.1 - 7.1.6&#039;&#039;&#039;&lt;br /&gt;
* bug fix: TRGV writing/reading&lt;br /&gt;
* [https://www.youtube.com/watch?v=yYHaltepyNI CRSA (corpse array) import]&lt;br /&gt;
* scaling support for TRGV&lt;br /&gt;
* print absolute position and rotation of selected objects&lt;br /&gt;
* print relative position and rotation of selected objects&lt;br /&gt;
* furniture library (alpha)&lt;br /&gt;
* basic OFGA import / FURN export&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 7&#039;&#039;&#039;&lt;br /&gt;
* a &amp;quot;character export (TRAM)&amp;quot; button (select one bodypart and hit the button, it will select the tree automatically)&lt;br /&gt;
* the code includes the &amp;quot;Make Rotation Keys Continuous&amp;quot;&lt;br /&gt;
* the addon will change your save file settings (to framerate 60 fps)&lt;br /&gt;
: one person can send a new *.exp file and the other person can make a *.dae from it&lt;br /&gt;
: old *.exp (that were created based on a 30 fps setting) needs to be [[../#Animating|scaled down]] by a factor of 2&lt;br /&gt;
* currently removed the features made in version 6 (hopefully we will not need that any longer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--[[Image:xsi_addon_repair_character_rotation.png|thumb|200px|right|repair rotation flips]]--&amp;gt;&lt;br /&gt;
* repair major character rotation flips (beta)&lt;br /&gt;
** select a body part and set keyframe range and flip amount&lt;br /&gt;
** fine-tune problematic zones by hand&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 5&#039;&#039;&#039;&lt;br /&gt;
* pathfinding manager (alpha: ghosts can be created on edges)&lt;br /&gt;
* trigger volume manager (plus BINACJBOTrigger Volume&#039;&#039;&#039;.oni&#039;&#039;&#039; drag&#039;n&#039;drop support)&lt;br /&gt;
* bugfix: flag xml code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 4&#039;&#039;&#039;&lt;br /&gt;
* flag manager (plus BINACJBOFlag&#039;&#039;&#039;.oni&#039;&#039;&#039; drag&#039;n&#039;drop support)&lt;br /&gt;
* &amp;quot;(un)hide&amp;quot; button works now properly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 3&#039;&#039;&#039;&lt;br /&gt;
* weapon manager (plus BINACJBOWeapon&#039;&#039;&#039;.oni&#039;&#039;&#039; drag&#039;n&#039;drop support)&lt;br /&gt;
* disables transparency on weapon textures&lt;br /&gt;
* button to access OniXSI resources folder&lt;br /&gt;
* fixes glitchy PPGs (manager windows sometimes switched from &amp;quot;locked&amp;quot; to &amp;quot;refresh&amp;quot; mode, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 2&#039;&#039;&#039;&lt;br /&gt;
* better support for future custom resources (check out the readme files in OniXSI resources folder)&lt;br /&gt;
** for example new LSIs can be added at ...\Softimage\Softimage_Mod_Tool_7.5\OniXSI_resources\PowerUps\LSI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;version 1&#039;&#039;&#039;&lt;br /&gt;
* powerups manager (plus BINACJBOPowerUp&#039;&#039;&#039;.oni&#039;&#039;&#039; drag&#039;n&#039;drop support)&lt;br /&gt;
** LSIs gets imported with a placeholder geometry (there&#039;s no easy way to detect what actual LSI is used for a level)&lt;br /&gt;
** using LSIs from the manager works though (just keep in mind that levels are fixed to one type of LSI)&lt;br /&gt;
* drag&#039;n&#039;drop support for OniSplit update&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==OniTools Remake: Sledgehammer==&lt;br /&gt;
This remake is incompatible with the original OniTools addon.&lt;br /&gt;
&lt;br /&gt;
How to download? Sledgehammer is now part of Simple OniSplit GUI which is an tool package of AEI.&lt;br /&gt;
&lt;br /&gt;
Installation happens automatically if the GUI finds Mod Tool. Note that both projects are still unfinished.&lt;br /&gt;
&lt;br /&gt;
More information can be found on the talk page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some features Sledgehammer should have:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:ModTool_Addon_Shinatama_settings.png|settings&lt;br /&gt;
Image:DnD_dat_and_onis_import.png|level import controls&lt;br /&gt;
Image:ModTool_PF_editor.png|pathfinding editor&lt;br /&gt;
Image:ModTool_CHAR_editor.png|character collection editor&lt;br /&gt;
Image:ModTool_addon_Sledgehammer_ONCC_library.jpg|character library&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Oni Object Library&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The library contains collections of thumbnail images. Drag and drop them into Softimage to load the corresponding 3D data.&lt;br /&gt;
&lt;br /&gt;
Control the overview with the common web browser shortcuts.&lt;br /&gt;
* [control] + [+] for zooming in&lt;br /&gt;
* [control] + [-] for zooming out&lt;br /&gt;
* [control] + [0] for reseting zoom to 100%&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On first use event&#039;&#039;&#039;&lt;br /&gt;
* -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On startup event:&#039;&#039;&#039;&lt;br /&gt;
* check AE folder for new packages&lt;br /&gt;
* check for new online resources: &amp;quot;shared&amp;quot; classes (includes Neo&#039;s original collection)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Outdated modding tools]][[Category:Windows-only modding tools]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Sarai&amp;diff=46170</id>
		<title>Sarai</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Sarai&amp;diff=46170"/>
		<updated>2025-12-26T05:37:40Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sarai is one of the [[BGI characters|new BGI characters]] created by [[User:Samer|Samer]]. The mod which adds this character is available on the forum [http://oni.bungie.org/forum/viewtopic.php?pid=46869#p46869 here]. Sarai is intended to be the female boss of BGI. Second-in-command to the Executives and directly following their orders, she&#039;s ruthless, dangerous, highly skilled, and devoted to the BGI. The character concept was developed in the [[Joint Story]] under the name Samako.&lt;br /&gt;
&lt;br /&gt;
The model is based on DarkLitria&#039;s sketch seen [[:Image:DarkLitria - Sarai.png|here]]. The head mesh is from a [http://web.archive.org/web/20211207210528/http://oni.bungie.org/forum/viewtopic.php?pid=16272#p16272 project] started by Lapis which was later abandoned, with further modeling and texturing done by Samer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Sarai.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BGI]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Casual_Tankers&amp;diff=46169</id>
		<title>Casual Tankers</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Casual_Tankers&amp;diff=46169"/>
		<updated>2025-12-26T05:37:25Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Casual Tankers are a pre-beta character class that was dropped some time before release. They can be seen in [https://www.youtube.com/watch?feature=player_detailpage&amp;amp;v=YLZ2hJZvrmo#t=82s this early footage] from Oni&#039;s [[Trailers|trailer]], and in these screenshots: &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Pre-beta_Airport.jpg&lt;br /&gt;
Image:Genesis_Level3_1.jpg&lt;br /&gt;
Image:Genesis_Level3_2.jpg&lt;br /&gt;
Image:Genesis_Level2_13.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
They were reconstructed as playable characters in easy, medium and hard variants by [[User:Samer|Samer]]. The [http://mods.oni2.net/node/216 Casual Tankers mod] can be downloaded through the [[AE|AE Installer]], and has a release thread on the forum [http://web.archive.org/web/20200924105958/http://oni.bungie.org/forum/viewtopic.php?id=2416 here].&lt;br /&gt;
&lt;br /&gt;
[[Image:Casual Tankers mod.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Casual Tankers were also the inspiration for Ratslayer&#039;s [http://mods.oni2.net/node/431 KTSN Mafia Tankers mod], which can be downloaded through the AE Installer.&lt;br /&gt;
&lt;br /&gt;
[[Image:KTSN Mafia Tankers.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Syndicate]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Creating_an_animation_rig_in_Blender&amp;diff=46168</id>
		<title>Creating an animation rig in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Creating_an_animation_rig_in_Blender&amp;diff=46168"/>
		<updated>2025-12-26T05:30:58Z</updated>

		<summary type="html">&lt;p&gt;ValBot: replaced Oni Central Forum link with archive.org snapshot URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{integrate|See {{SectionLink||Tools and relevant tutorials}}, but this tutorial has also been marked for integration with&amp;lt;br&amp;gt;[[Using the Rigify animation rig]], so check if it has been integrated there already.}}&lt;br /&gt;
This tutorial shows you how to create the [http://mods.oni2.net/node/388 animation rig for Blender] (made by geyser) from scratch, with some improvements.&lt;br /&gt;
&lt;br /&gt;
The purpose of this rig is to give us much better tools to animate, compared to our [https://web.archive.org/web/20160225035410/http://oni.bungie.org/forum/viewtopic.php?pid=23698#p23698 previous process in Softimage XSI], which allowed us to animate exclusively with Forward Kinematics. While FK may work for simple, short animations done on characters with a small amount of bones, it does not work well for Oni characters and animations, as it&#039;s too labor-intensive and inefficient.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you are looking for information on how to use the rig, please refer to the article on that available [[Using the Rigify animation rig|HERE]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Prerequisite tutorials==&lt;br /&gt;
I highly recommend watching the tutorials below if you feel you&#039;re lacking knowledge in any of these subjects:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
General Blender basics:&lt;br /&gt;
* [https://www.youtube.com/watch?v=RG8qK5zPqgM Wolf&#039;s 45-Minute Crash Course for Blender Virgins]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Blender Character Rigging overview showing that you can create a Rigify rig in less than a minute at 5:43, and also rig a character while at it:&lt;br /&gt;
* [https://www.youtube.com/watch?v=f2pTkW-1JkE&amp;amp;t=343s Character Rigging – Blender 2.80 Fundamentals]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Practical and intuitive explanation of what Inverse and Forward Kinematics (IK/FK) are – this is explained in Maya, but same principles apply in every 3D editing program including Blender:&lt;br /&gt;
* [https://www.youtube.com/watch?v=p6PYKyxR0aY Animating with IK and FK]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basics of using Rigify:&lt;br /&gt;
* [https://www.youtube.com/watch?v=vKgH5zXIYmM Rigify Tutorial #08 – Posing the Rigify rig] by CGDive&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Rigify Bone Groups and Layers:&lt;br /&gt;
* [https://www.youtube.com/watch?v=5FK4jDCAOkk Rigify Tutorial 7-1: Rigify Bone Groups and Layers (Overview)] by CGDive&lt;br /&gt;
* [https://www.youtube.com/watch?v=JZZHCmKFcMs Rigify Tutorial 7-2: Rigify Bone Groups and Layers (Practice)] by CGDive&lt;br /&gt;
* [https://www.youtube.com/watch?v=2XldUB2eT-o Rigify Tutorial 7-3: Rigify Bone Groups and Layers (Advanced)] by CGDive&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Changing Rigify Custom Shapes and Widgets:&lt;br /&gt;
* [https://www.youtube.com/watch?v=beVtWATcw9U Rigify – Custom Shapes/Widgets] by CGDive&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Blender custom properties and &#039;&#039;&#039;drivers&#039;&#039;&#039; (drivers in the rig described here are used to set the influence of its controllers&#039; bone constraints through the Pose1 and Pose2 bone locations):&lt;br /&gt;
* [https://www.youtube.com/watch?v=_197jQFh22E Custom properties and drivers in blender made easy] by Pierrick Picaut&lt;br /&gt;
&lt;br /&gt;
===Tracking constraint tutorials===&lt;br /&gt;
These explain constraints like Damped Track which are used by Rigify – you can skip this if you want, but it might give you a better idea of how Rigify&#039;s MCH (Mechanical) layers work, or come in handy in the distant future; other than that, you don&#039;t need to know them to animate for Oni:&lt;br /&gt;
* [https://www.youtube.com/watch?v=aGBOu-dNZ-w Tracking Constraints – Blender 2.80 Fundamentals]&lt;br /&gt;
* [https://www.youtube.com/watch?v=5FK4jDCAOkk Camera Track To vs Damped Track Constraints | Pros &amp;amp; Cons Explained With Examples | Blender] by 5 minutes Blender&lt;br /&gt;
&lt;br /&gt;
==Things to know before starting==&lt;br /&gt;
There are several things worth knowing before you start creating the rig.&lt;br /&gt;
&lt;br /&gt;
===Tools and relevant tutorials===&lt;br /&gt;
[[Image:Cmder.png|200px|right|thumb|Screenshot showing Cmder&#039;s capabilities within the context of modding Oni.]]&lt;br /&gt;
* [http://mods.oni2.net/node/38 &#039;&#039;&#039;Current version of OniSplit.&#039;&#039;&#039;] This is the tool needed to import and export assets out of Oni. &#039;&#039;&#039;DO NOT USE OniSplit GUI or Vago for importing Oni assets into Blender&#039;&#039;&#039; – neither of these weren&#039;t updated in a long time, and thus they don&#039;t support OniSplit&#039;s v0.9.99.2 -blender option. You can still use them for other purposes though, such as sounds and converting .oni files to XMLs, etc.&lt;br /&gt;
* [https://cmder.app/ &#039;&#039;&#039;Cmder&#039;&#039;&#039;] (Windows only) – because OniSplit is a command line tool, it is highly recommended to get any upgrade to Windows&#039; Command Prompt. As shown in the screenshot on the right, Cmder allows you to start it from the context menu in any selected folder, and it also remembers your most recently used commands, vastly improving your workflow when you&#039;re forced to use any command line tools.&lt;br /&gt;
* [https://docs.blender.org/manual/en/2.81/addons/rigging/rigify.html &#039;&#039;&#039;Rigify&#039;&#039;&#039;] – it&#039;s a plugin for Blender designed to automate a lot of rigging work. The rig described here is generated using Rigify.&lt;br /&gt;
* [https://docs.google.com/document/d/175uJGklYASAgrFjxuUG4-kJRDoMTjjP7GvNxSj1GscU/edit &#039;&#039;&#039;Oni-Blender tutorial&#039;&#039;&#039;] by EdT. Please read this in entirety to know likely-to-happen issues and refer to this as your guide for OniSplit commands relating to Blender.&lt;br /&gt;
* [http://web.archive.org/web/20211202215118/http://oni.bungie.org/forum/viewtopic.php?pid=23230#p23230 &#039;&#039;&#039;Brief overview on creating TRAMs&#039;&#039;&#039;] by EdT – while this was written with XSI in mind, this is still relevant as the process for preparing the XML files for Oni is still the same. Also the next post in that thread, called &#039;&#039;&#039;Brief walk through on modifying a TRAM,&#039;&#039;&#039; is an example of that overview put into practice.&lt;br /&gt;
&lt;br /&gt;
===Assorted issues in Blender===&lt;br /&gt;
Please refer to [[Blender#Oni-specific_issues_with_Blender|THIS]] section of the &amp;quot;Blender&amp;quot; article for issues that you will run into while Oni modding.&lt;br /&gt;
&lt;br /&gt;
==Overview of the rig==&lt;br /&gt;
Here is an overview of how the rig works: As stated before, our previous animating process was limited to FK only, which is inefficient for Oni. So instead we desperately needed an IK/FK capable rig, to which we would be able to snap a character, so we could animate him/her.&lt;br /&gt;
&lt;br /&gt;
At the same time, the rig would have to be capable of the opposite thing – snapping itself to the animated character. That&#039;s because most often the way we start out with making a new animation is copying the first or last frame of the preceding animation. This functionality has been implemented, and is called Pose Matching. The way it works is simple – it uses bone constraints in rig controller bones targeting the character model in order to snap the rig to the model.&lt;br /&gt;
&lt;br /&gt;
The rig uploaded on Oni Mod Depot contains three Konokos by default: One T-Posed Konoko and two animated ones, all stored in their own collections. The T-Posed Konoko is there because it was easiest to build the rig off a T-Pose, while the remaining two ones, stored in Pose 1 and Pose 2 collections, is where you are supposed to store your animated characters, to which you can Pose Match, and thus check if Pose Matching works as intended.&lt;br /&gt;
&lt;br /&gt;
Because Oni does not store its animations in form of an armature, but rather as locations and rotations of 19 objects organized in a parent-child relationship, this forces us to use the earlier mentioned object and bone constraints. This is also creates a big problem: in order to animate, rotation and location data from the 19 character body parts have to be transformed onto the rig, and then the body parts have to be constrained to the rig. Once you are done animating and you want to export your animation, you have to do the reverse: transform the animation from the rig onto the 19 body parts, and then disable the constraints. This is quite inconvenient, because all of the constraints (and there&#039;s a lot of them) in both the body parts and rig have to be turned on and off.&lt;br /&gt;
&lt;br /&gt;
The general workflow of making animations using this rig is the following, assuming you want to make a single animation (i.e. you don&#039;t want to make a throw animation):&lt;br /&gt;
&lt;br /&gt;
# Open up a Blender scene containing the rig.&lt;br /&gt;
# Delete either the model in Pose1 or Pose2.&lt;br /&gt;
# (OPTIONAL) Assuming you want to animate a different character, delete the T-posed model.&lt;br /&gt;
## Import your desired character with textures using -noanim.&lt;br /&gt;
# Import the animation you are using as a starting point.&lt;br /&gt;
## If you did point 3, apply the textures on the animated model.&lt;br /&gt;
# Using the RigBoneConstraintTargetSetter script available [[Blender/Obsolete scripts#Rig bone constraint target setting script|HERE]], set the targets of the rig&#039;s bone constraints to be the body parts of the animation you&#039;ve imported.&lt;br /&gt;
# Using the Pose Matching functionality, constrain the rig to the imported animation (Set the IK-FK sliders on rig limbs to 1, as Pose Matching works only through FK controllers)&lt;br /&gt;
# For each frame that you want to remain in your animation, while having all the bones selected (or the ones you want), press Ctrl+A, select Apply Visual Transform to Pose and keyframe it.&lt;br /&gt;
# Disable bone constraints on the rig using the BoneConstraintEnabler script available [[Blender/Obsolete scripts#Script for enabling.2Fdisabling bone constraints in the selected armature|HERE]]. &lt;br /&gt;
# &#039;&#039;&#039;Make your animation.&#039;&#039;&#039;&lt;br /&gt;
# Once your animation is ready, use the Visual Transformer script available [[Blender/Obsolete scripts#Visual transformer script|HERE]] to bake the rig keyframes into the character model.&lt;br /&gt;
# Using the ObjectConstraintEnabler script available [[Blender/Obsolete scripts#Script for enabling.2Fdisabling constraints in selected objects|HERE]], disable the object constraints on the character model. &#039;&#039;&#039;The character model should now be animated and have the needed rotations and locations.&lt;br /&gt;
# Export the animation as a DAE.&lt;br /&gt;
&lt;br /&gt;
==Importing animations and preparing the Blender scene==&lt;br /&gt;
&#039;&#039;&#039;The actual tutorial starts here.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For detailed explanation of the required OniSplit commands, please refer to the &#039;&#039;&#039;Oni-Blender Tutorial by EdT&#039;&#039;&#039; listed in the &#039;&#039;&#039;Tools and relevant tutorials&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Image:ARB SceneUponImportingKonokos.png|400px|right|thumb|The expected result by the end of this section.]]&lt;br /&gt;
&lt;br /&gt;
# Using OniSplit, export any character you want as a DAE (-extract:dae) using -noanim (T-Pose) and -blender arguments. &lt;br /&gt;
## As per EdT&#039;s &#039;&#039;&#039;Oni-Blender Tutorial&#039;&#039;&#039;, you should get &amp;lt;mark&amp;gt;&amp;lt;tt&amp;gt;AnimationDaeWriter: custom axis conversion&amp;lt;/tt&amp;gt;&amp;lt;/mark&amp;gt; in OniSplit output if you&#039;ve used the -blender argument. If you didn&#039;t get that on the output, it means something most likely went wrong and you won&#039;t be able to import the model into Blender (or you will be able to import it but it will be wrong).&lt;br /&gt;
## Assuming you wanted a textured model and thus you&#039;ve exported an ONCC, you should now get a &#039;&#039;&#039;DAE file&#039;&#039;&#039; and an &#039;&#039;&#039;&#039;&#039;images&#039;&#039;&#039;&#039;&#039; folder containing the textures for it.&lt;br /&gt;
# Using OniSplit, export any two animations as an XML (-extract:xml) using -anim-body (lets you specify the character you want) and -blender arguments.&lt;br /&gt;
## You should get &#039;&#039;&#039;one DAE and an XML file for each animation, totalling four files.&#039;&#039;&#039; &lt;br /&gt;
# Open up Blender and set your scene&#039;s frame rate to 60 FPS. If you don&#039;t, the keyframes of the imported animations will get tightened up together, because Blender&#039;s default scene frame rate is 24 FPS.&lt;br /&gt;
# Import the -noanim model into Blender first (&#039;&#039;&#039;MAKE SURE YOU CHECK THE &#039;&#039;Import Unit&#039;&#039; BOX&#039;&#039;&#039;, otherwise you will import the model with arbitrary units which will break everything and will be basically unadjustable later)&lt;br /&gt;
# Import the animations into Blender (&#039;&#039;&#039;ALSO MAKE SURE YOU CHECK THE &#039;&#039;Import Unit&#039;&#039; BOX EACH TIME&#039;&#039;&#039;)&lt;br /&gt;
# At this point the -noanim/T-posed model in the scene should have no suffix in its body part names, while the animated models should have &#039;&#039;.001&#039;&#039; and &#039;&#039;.002&#039;&#039; suffixes. This is intended; the T-posed model will serve for building the metarig and editing the rig once it&#039;s generated, while the animated models are needed for pose matching purposes, where the suffixes are useful for setting up the bone constraints.&lt;br /&gt;
# Create three new collections in the Outliner, name them &#039;&#039;T-pose&#039;&#039;, &#039;&#039;Pose 1&#039;&#039; and &#039;&#039;Pose 2&#039;&#039;. These three collections allow you to quickly hide the respective models from the Viewport using the eye icon in the Outliner.&lt;br /&gt;
## Move the T-Posed model to &#039;&#039;T-pose&#039;&#039;, and move &#039;&#039;.001&#039;&#039; and &#039;&#039;.002&#039;&#039; animated models to &#039;&#039;Pose 1&#039;&#039; and &#039;&#039;Pose 2&#039;&#039; collections respectively.&lt;br /&gt;
# If you&#039;ve imported the textured model, [[Blender#Lack of textures on animated models|apply textures to the animated models]] and [[Blender#Alpha transparency issue|fix the alpha transparency issue]].&lt;br /&gt;
# At this point, your scene should look as shown in the screenshot on the right.&lt;br /&gt;
# You can hide the Pose 1 and Pose 2 collections – they won&#039;t be changed in this tutorial anymore.&lt;br /&gt;
&lt;br /&gt;
==Adjusting T-posed model&#039;s Z location==&lt;br /&gt;
At this moment the T-posed model is sunk to the ground. That&#039;s because the pelvis location is set to 0,0,0. All of the animations in Oni have their heights adjusted [[XML:TRAM#List_of_tags.2C_types.2C_and_flags|(through the &amp;lt;Height&amp;gt; tags)]] so that the pelvis is roughly at Z ~ 0.9, so that the characters appear standing on the floor instead of, again, sinking into it. For this reason, we want to adjust the position of the pelvis so that the feet soles are aligned with the floor.&lt;br /&gt;
&lt;br /&gt;
[[Image:PelvisZLocation.png|400px|right|thumb|The expected result by the end of this section.]]&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=&amp;quot;10&amp;quot;&amp;gt;Adjust the Z position of the T-posed model&#039;s Pelvis in one of the two ways:&amp;lt;/li&amp;gt;&lt;br /&gt;
## Simply switch to Front Orthographic view (Num 1) and move the Pelvis along the Z axis so that the feet soles are roughly aligned with the floor. This will work, but if you want 100% accuracy, use the method below.&lt;br /&gt;
## The 3D Cursor snapping method:&lt;br /&gt;
### Select one of the feet in Object mode.&lt;br /&gt;
### Switch to Edit mode.&lt;br /&gt;
### Select one of the lowest-reaching vertices on the foot and Snap Cursor to Active. (Shift + S, 3)&lt;br /&gt;
### Switch back to object mode.&lt;br /&gt;
### Select the Pelvis.&lt;br /&gt;
### Snap Selection to Cursor. (Shift+S, 8)&lt;br /&gt;
### Set the X and Y locations of the pelvis to 0.&lt;br /&gt;
### Invert the Z location of the pelvis.&lt;br /&gt;
### The pelvis should be now at Z ~ 0.9 with feet soles perfectly aligned with the floor.&lt;br /&gt;
# At this point, your scene should look as shown in the screenshot on the right.&lt;br /&gt;
&lt;br /&gt;
==Creating the Rigify metarig and adding limb flexion==&lt;br /&gt;
This part describes how to create a Rigify metarig and how to adjust it so that it matches the T-posed model body parts.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=&amp;quot;12&amp;quot;&amp;gt;Before you proceed to create the rig, you need to add small rotations to the limbs, which will allow Rigify to know in which direction the elbows and knees are going to bend. Otherwise, the rig will not function properly.&amp;lt;/li&amp;gt;&lt;br /&gt;
## Add the following Z rotations to the respective body parts in accordance with the list below:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Z rotation !! Bones&lt;br /&gt;
|-&lt;br /&gt;
| -5 || &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;right_thigh &amp;lt;li&amp;gt;left_thigh &amp;lt;li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| -10 || &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;right_calf &amp;lt;li&amp;gt;left_calf &amp;lt;li&amp;gt;right_wrist &amp;lt;li&amp;gt;left_wrist &amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 5 || &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;right_biceps &amp;lt;li&amp;gt;left_biceps &amp;lt;li&amp;gt; right_handfist &amp;lt;li&amp;gt;left_handfist &amp;lt;li&amp;gt;right_foot &amp;lt;li&amp;gt;left_foot&amp;lt;/ul&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=&amp;quot;13&amp;quot;&amp;gt;Enable Rigify in Blender if you haven&#039;t already – you can do that by going to Edit / Preferences / Addons and looking it up, as Rigify comes with by Blender by default.&amp;lt;/li&amp;gt;&lt;br /&gt;
# Add a Basic Human Metarig  to the scene. ( Add Menu / Armature / Basic / Basic Human (Meta-Rig) )&lt;br /&gt;
## Scale the rig by 10 or so that it&#039;s roughly the size of the character.&lt;br /&gt;
## Apply the scale. ( Object / Apply / Scale )&lt;br /&gt;
# Go to Metarig&#039;s Object Data Properties tab and:&lt;br /&gt;
## Open Viewport Display,&lt;br /&gt;
## Check &#039;&#039;In Front&#039;&#039; box to make the metarig easier to select when your Viewport is in Solid or Material Preview shading modes,&lt;br /&gt;
## Check the &#039;&#039;Axes&#039;&#039; box to see the local axes of each bones – this makes their rolls easier to understand.&lt;br /&gt;
# Remove the following bones from the Metarig:&lt;br /&gt;
*pelvis.L&lt;br /&gt;
*pelvis.R&lt;br /&gt;
*breast.L&lt;br /&gt;
*breast.R&lt;br /&gt;
*spine.005&lt;br /&gt;
*spine.006&lt;br /&gt;
# &amp;lt;li value=&amp;quot;17&amp;quot;&amp;gt;Go to Edit mode, select Bone Properties tab and change the &#039;&#039;Connected&#039;&#039; box of the following Metarig&#039;s bones accordingly to the below table:&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bone || Connected&lt;br /&gt;
|-&lt;br /&gt;
| spine.003 || Disable&lt;br /&gt;
|-&lt;br /&gt;
| spine.004 || Enable&lt;br /&gt;
|-&lt;br /&gt;
| shoulder.l || Enable&lt;br /&gt;
|-&lt;br /&gt;
| shoulder.r || Enable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=&amp;quot;18&amp;quot;&amp;gt;The default Rigify bone layer order is highly unergonomic. For this reason, reassign the following bones to bone layers in accordance with the table below. You can reassign bones&#039; bone layers by selecting them and pressing M. Make sure you have enabled User Tooltips in Preferences / Interface – that way when you move your cursor over the layer box, a tooltip will display the layer number.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bones !! Bone layer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;spine &amp;lt;li&amp;gt;spine.001 &amp;lt;li&amp;gt;spine.002 &amp;lt;li&amp;gt;spine.003 &amp;lt;li&amp;gt;spine.004 &amp;lt;li&amp;gt;shoulder.l &amp;lt;li&amp;gt;shoulder.r &amp;lt;/ul&amp;gt; || 8&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;upper_arm.L &amp;lt;li&amp;gt;forearm.L &amp;lt;li&amp;gt;hand.L &amp;lt;/ul&amp;gt; || 0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;upper_arm.R &amp;lt;li&amp;gt;forearm.R &amp;lt;li&amp;gt;hand.R &amp;lt;/ul&amp;gt; || 16&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;thigh.L &amp;lt;li&amp;gt;shin.L &amp;lt;li&amp;gt;foot.L &amp;lt;li&amp;gt;toe.L &amp;lt;li&amp;gt;heel.02.L &amp;lt;/ul&amp;gt; || 4&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;thigh.R &amp;lt;li&amp;gt;shin.R &amp;lt;li&amp;gt;foot.R &amp;lt;li&amp;gt;toe.R &amp;lt;li&amp;gt;heel.02.R &amp;lt;/ul&amp;gt; || 20&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=&amp;quot;19&amp;quot;&amp;gt;Go to Pose mode, select Bone Properties tab and open the Rigify Type box.&amp;lt;/li&amp;gt;&lt;br /&gt;
# Set &#039;&#039;Limb Segments&#039;&#039; and &#039;&#039;B-Bone Segments&#039;&#039; to 1 on the bones listed below. Because Oni uses rigid body parts, Limb Segments and Bendy bones are not needed.&lt;br /&gt;
* upper_arm.L&lt;br /&gt;
* upper_arm.R&lt;br /&gt;
* thigh.L&lt;br /&gt;
* thigh.R&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=&amp;quot;20&amp;quot;&amp;gt; Disable &#039;&#039;Assign Tweak Layers&#039;&#039; checkbox on the bones listed below.&amp;lt;/li&amp;gt;&lt;br /&gt;
* upper_arm.L&lt;br /&gt;
* upper_arm.R&lt;br /&gt;
* thigh.L&lt;br /&gt;
* thigh.R&lt;br /&gt;
* spine&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=&amp;quot;21&amp;quot;&amp;gt; Remove &#039;&#039;rig type&#039;&#039; on the &#039;&#039;spine.004&#039;&#039; bone.&amp;lt;/li&amp;gt;&lt;br /&gt;
# Set &#039;&#039;rig type&#039;&#039; on the &#039;&#039;spine.003&#039;&#039; bone to &#039;&#039;spines.super_head&#039;&#039;. &lt;br /&gt;
# Enable the &#039;&#039;Connect chain&#039;&#039; checkbox on the &#039;&#039;spine.003&#039;&#039; bone.&lt;br /&gt;
# Disable the &#039;&#039;Widget&#039;&#039; checkbox on the &#039;&#039;shoulder.L&#039;&#039; and &#039;&#039;shoulder.R bones&#039;&#039;.&lt;br /&gt;
# Set &#039;&#039;pivot_position&#039;&#039; on the &#039;&#039;spine&#039;&#039; bone to 1.&lt;br /&gt;
# Enable the &#039;&#039;Custom Pivot Control&#039;&#039; checkbox on the &#039;&#039;spine&#039;&#039; bone.&lt;br /&gt;
# Assign Tweak Layer of spine.003 to 9.&lt;br /&gt;
# Assign FK layers for the following bones in accordance with the table below:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bones !! Bone layer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;spine &amp;lt;li&amp;gt;spine.003&amp;lt;/ul&amp;gt; || 9&lt;br /&gt;
|-&lt;br /&gt;
| upper_arm.L || 1&lt;br /&gt;
|-&lt;br /&gt;
| upper_arm.R || 17&lt;br /&gt;
|-&lt;br /&gt;
| thigh.L &amp;lt;/ul&amp;gt; || 5&lt;br /&gt;
|-&lt;br /&gt;
| thigh.R &amp;lt;/ul&amp;gt; || 21&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=&amp;quot;29&amp;quot;&amp;gt;Now you need to adjust the metarig&#039;s bones so that they match up with character body parts. In order to reduce the amount of needed work, switch to Edit Mode and check the X-Axis Mirror either in Options or the Tool tab.&amp;lt;/li&amp;gt;&lt;br /&gt;
# Switch to Object mode and using the Snapping Cursor to Active, and Snapping Selection to Cursor in the Snap menu (Shift + S), keep snapping cursor to model&#039;s body parts, selecting the Metarig, switching to Edit mode, selecting the appropriate bone and snapping it to 3D Cursor. &#039;&#039;&#039;I believe it is intuitive which bones should be snapped to which body parts, therefore there is no need for a table describing that, with the exception of hints on what should be done about spine.004, hand.L, hand.R, toe.L, toe.R, heel.02.L and heel.02.R.&#039;&#039;&#039;&lt;br /&gt;
## There is actually nothing you need to do about the heel bones, leave them as they are.&lt;br /&gt;
## Snap the tails of spine.004, hand.L and hand.R to their heads and move them along the axis they&#039;re pointing at, to some whatever point that makes sense to you, e.g. furthest reaching vertex on the hand. No need to be precise here, and thus snapping – just move the tail so that it is roughly where you want it to be.&lt;br /&gt;
## In order to keep the toe bones aligned and properly positioned, do the following for each toe bone:&lt;br /&gt;
### Select the foot in object mode,&lt;br /&gt;
### Snap cursor to the furthest and lowest reaching vertex on the foot,&lt;br /&gt;
### Copy the X location of that vertex,&lt;br /&gt;
### Snap the bone to cursor,&lt;br /&gt;
### Paste the X location to the bone&#039;s head,&lt;br /&gt;
### Snap bone&#039;s tail to the head,&lt;br /&gt;
### Move the head along the Y axis by some amount will make it easy to select but not too big.&lt;br /&gt;
# In edit mode, set the following rolls for the Metarig bones as described below (if you don&#039;t, body parts, mainly shoulders, will get badly rotated after constraining them to the rig after its generation):&lt;br /&gt;
## shoulder.L, 90 degrees,&lt;br /&gt;
## shoulder.R, -90 degrees,&lt;br /&gt;
## &#039;&#039;All&#039;&#039; other bones, 0 degrees.&lt;br /&gt;
# Now we have to set up how our Rigify rig layers will be named and set up. Go to the Object Data Properties tab, open up Rigify Layer Names, and set the table according to the screenshot below, marked as Point 32.&lt;br /&gt;
# The metarig is now correctly adjusted. Your scene should look as shown in the screenshot below, marked as Point 33.&lt;br /&gt;
# We highly recommend to save your project here and to continue your work in a new file (i.e. save, then save as a new file and continue your work on the new file), so that you can revert to the version you had until now and adjust the Metarig if needed. You can skip this, work on a single file, adjust the metarig, delete your current rig and generate a new one, but it may or may not be less convenient to rename.&lt;br /&gt;
# Generate the rig. Congratulations, you have generated the rig and can move to constraining the character to it. Your scene should look as shown in the screenshot below, marked as Point 35. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:RigifyLayerNames.png|300px|frameless]] || [[Image:Metarig.png|400px|frameless]] || [[Image:Rig.png|400px|frameless]]&lt;br /&gt;
|-&lt;br /&gt;
! Point 32, Rigify layer names for the rig !! Point 33, fully adjusted Metarig. !! Point 35, generated rig.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Constraining the character to the rig and adding the Axis Correction Empties==&lt;br /&gt;
Now we get to constrain the character to the rig and later edit the rig. Unfortunately, there&#039;s even more work in editing the rig than with the metarig.&lt;br /&gt;
# &amp;lt;li value=&amp;quot;36&amp;quot;&amp;gt;Hide the metarig, it won&#039;t be needed anymore.&amp;lt;/li&amp;gt;&lt;br /&gt;
# On the Pelvis of the T-posed character, add two Copy Rotation object constraints with the settings according to the table below. &amp;quot;x&amp;quot; means there&#039;s nothing set.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Setting !! Copy Rotation !! Copy Rotation.001&lt;br /&gt;
|-&lt;br /&gt;
| Target || rig || x&lt;br /&gt;
|-&lt;br /&gt;
| Order || ZYX Euler || Default&lt;br /&gt;
|-&lt;br /&gt;
| Mix || Replace || After Original&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=&amp;quot;37&amp;quot;&amp;gt;Copy the constraints to all of the remaining body parts.&amp;lt;/li&amp;gt;&lt;br /&gt;
# At this point, the character is folded into Oni&#039;s default pose, described [[Importing_character_models#Oni.27s_default_orientation|HERE.]] This is hard to work with, so disable all of the object constraints with the ObjectConstraintEnabler script available [[Blender/Obsolete scripts#Script for enabling.2Fdisabling constraints in selected objects|HERE]]. We will also fix the folded pose in a moment.&lt;br /&gt;
# Add a &#039;&#039;Copy Location&#039;&#039; constraint to the &#039;&#039;Pelvis&#039;&#039; and:&lt;br /&gt;
## Set the &#039;&#039;Target to &#039;&#039;rig&#039;&#039;,&lt;br /&gt;
## Set the &#039;&#039;Bone to ORG-spine&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=&amp;quot;40&amp;quot;&amp;gt;Now we need to fix the folded pose. This is done through a set of Empties with specified rotations, which are added to the rotation of each body part through the &#039;&#039;Copy Rotation.001&#039;&#039; constraint (this is also why the Mix of that constraint was set to &#039;&#039;After Original&#039;&#039;).&amp;lt;/li&amp;gt;&lt;br /&gt;
## Create a new collection in the Outliner called &amp;quot;&#039;&#039;Axis Correction Empties&#039;&#039;&amp;quot;.&lt;br /&gt;
## Add six Arrows Empties, all with their Name showing in the Viewport Display. (Object Properties / Viewport Display / Name)&lt;br /&gt;
## Name the empties and place them in the proposed arbitrary positions using cursor snapping, and set their rotations according to the table below – you can place them however you want, as their location does not influence the rig in any way, however, proper placement makes them easy to edit if needed. It&#039;s also proposed to place the empties one meter either in front or behind the given body part.&lt;br /&gt;
&lt;br /&gt;
[[Image:AxisCorrectionEmptyPlacement.png|200px|right|thumb|Proposed Axis Correction Empties&#039; placement]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Empty !! Body Part !! In front of or behind? || X rotation || Y rotation || Z rotation&lt;br /&gt;
|-&lt;br /&gt;
| ACFeet || Either foot || Behind || -90 || -52.5 || 90&lt;br /&gt;
|-&lt;br /&gt;
| ACHandL || left_handfist || Behind || 180 || 0 || 90&lt;br /&gt;
|-&lt;br /&gt;
| ACHandR || right_handfist || Behind || 0 || 0 || 90&lt;br /&gt;
|-&lt;br /&gt;
| ACLimbs || neck || Behind || -90 || 0 || 90&lt;br /&gt;
|-&lt;br /&gt;
| ACPelvis || pelvis || Front || 90 || 8.6 || 90&lt;br /&gt;
|-&lt;br /&gt;
| ACSpine || mid || Front || 90 || 0 || 90&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
::#&amp;lt;li value=&amp;quot;4&amp;quot;&amp;gt; In your Viewport, open the Viewport Overlay and enable Relationship Lines. These are the lines that will show you lines from constrained objects to their targets. They will give you a better sense of how body parts are copying rotations from the Empties you are about to make. You can also turn Relationship Lines off at any point if they&#039;re making the scene hard to read.&amp;lt;/li&amp;gt;&lt;br /&gt;
::# Set the &#039;&#039;Bones&#039;&#039; of &#039;&#039;Copy Rotation&#039;&#039; and &#039;&#039;Targets&#039;&#039; of &#039;&#039;Copy Rotation.001&#039;&#039; constraints in character&#039;s body parts in accordance with the table below. The table may be intimidating, but it should be logical enough and easy to copy and paste the targets and bones – all of the body parts get targeted to a corresponding ORG bone in the rig through &#039;&#039;Copy Rotation&#039;&#039; and get their Axis Correction rotation added through &#039;&#039;Copy Rotation.001&#039;&#039; set to appropriate empty.&lt;br /&gt;
&lt;br /&gt;
[[Image:RigCharacterConstrained.png|600px|right|thumb|Expected result by the end of this header]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Body part !! Copy Rotation / Bone !! Copy Rotation.001 / Target&lt;br /&gt;
|-&lt;br /&gt;
| pelvis || ORG-spine || ACPelvis&lt;br /&gt;
|-&lt;br /&gt;
| mid || ORG-spine.001 || ACSpine&lt;br /&gt;
|-&lt;br /&gt;
| chest || ORG-spine.002 || ACSpine&lt;br /&gt;
|-&lt;br /&gt;
| neck || ORG-spine.003 || ACSpine&lt;br /&gt;
|-&lt;br /&gt;
| head || ORG-spine.004 || ACSpine&lt;br /&gt;
|-&lt;br /&gt;
| right_shoulder || ORG-shoulder.R || ACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| right_biceps || ORG-upper_arm.R || ACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| right_wrist || ORG-forearm.R || ACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| right_handfist || ORG-hand.R || ACHandR&lt;br /&gt;
|-&lt;br /&gt;
| left_shoulder || ORG-shoulder.L || ACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| left_biceps || ORG-upper_arm.L || ACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| left_wrist || ORG-forearm.L || ACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| left_handfist || ORG-hand.L || ACHandL&lt;br /&gt;
|-&lt;br /&gt;
| right_thigh || ORG-thigh.R || ACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| right_calf || ORG-shin.R || ACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| right_foot || ORG-foot.R || ACFeet&lt;br /&gt;
|-&lt;br /&gt;
| left_thigh || ORG-thigh.L || ACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| left_calf || ORG-shin.L || ACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| left_foot || ORG-foot.L || ACFeet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;41&amp;quot;&amp;gt;Enable the object constraints in the character body parts using the ObjectConstraintEnabler script.&amp;lt;/li&amp;gt;&lt;br /&gt;
# At this point, you should be able to pose the character, as shown in the screenshot on the right.&lt;br /&gt;
&lt;br /&gt;
==Removing and editing the rig bones==&lt;br /&gt;
There are still things to do; if you play around posing your character, you will find out the spine behaviour to be somewhat lackluster, and lacking control over the mid and chest bones. This will now be addressed, and later, bone constraints need to be added to rig controller bones. Let&#039;s start off with deleting all the controller bones we don&#039;t need.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;43&amp;quot;&amp;gt;Select the rig, go to Object Data Properties, Viewport Display and enable In Front. The rig will now always render in front of the character, making it easier to select.&amp;lt;/li&amp;gt;&lt;br /&gt;
# In Edit mode, go to Object Data Properties tab / Skeleton, select Layer 29 (the DEF/Deform) and delete all bones in it.&lt;br /&gt;
# Select layer 28, and move the root bone to layer 24 (Change Bone Layer, default shortcut is M)&lt;br /&gt;
# Remove the bones listed below from the rig. Keep in mind it&#039;s possible to enable just one layer at a time for your convenience. For the record, we will not be editing MCH or ORG layers until later, so you can ignore their layers for now. &#039;&#039;&#039;IMPORTANT NOTE: Be sure to not delete tweak_spine.001 accidentally, as it&#039;s necessary for the rig to function properly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bone !! Layer&lt;br /&gt;
|-&lt;br /&gt;
| tweak_spine || Torso&lt;br /&gt;
|-&lt;br /&gt;
| tweak_spine.002 || Torso&lt;br /&gt;
|-&lt;br /&gt;
| tweak_spine.003 || Torso (Tweak)&lt;br /&gt;
|-&lt;br /&gt;
| spine_fk.001 || Torso (Tweak)&lt;br /&gt;
|-&lt;br /&gt;
| spine_fk.002 || Torso (Tweak)&lt;br /&gt;
|-&lt;br /&gt;
| upper_arm_tweak.L || Arm.L (IK)&lt;br /&gt;
|-&lt;br /&gt;
| forearm_tweak.L || Arm.L (IK)&lt;br /&gt;
|-&lt;br /&gt;
| hand_tweak.L || Arm.L (IK)&lt;br /&gt;
|-&lt;br /&gt;
| upper_arm_tweak.R || Arm.R (IK)&lt;br /&gt;
|-&lt;br /&gt;
| forearm_tweak.R || Arm.R (IK)&lt;br /&gt;
|-&lt;br /&gt;
| hand_tweak.R || Arm.R (IK)&lt;br /&gt;
|-&lt;br /&gt;
| thigh_tweak.L || Leg.L (IK)&lt;br /&gt;
|-&lt;br /&gt;
| shin_tweak.L || Leg.L (IK)&lt;br /&gt;
|-&lt;br /&gt;
| foot_tweak.L || Leg.L (IK)&lt;br /&gt;
|-&lt;br /&gt;
| thigh_tweak.R || Leg.R (IK)&lt;br /&gt;
|-&lt;br /&gt;
| shin_tweak.R || Leg.R (IK)&lt;br /&gt;
|-&lt;br /&gt;
| foot_tweak.R || Leg.R (IK)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;47&amp;quot;&amp;gt;Using 3D Cursor snapping, snap &#039;&#039;torso&#039;&#039; and &#039;&#039;torso_pivot&#039;&#039; bones to the &#039;&#039;mid&#039;&#039; body part.&amp;lt;/li&amp;gt;&lt;br /&gt;
##Since &#039;&#039;torso&#039;&#039; and &#039;&#039;torso_pivot&#039;&#039; are of the same size, etc. and thus are overlapping each other, feel free to move their tails a bit in the appropriate axis. This applies to all overlapping bones in the rig – if they overlap, move the tail in the axis parallel to the bone.&lt;br /&gt;
#Reparent &#039;&#039;shoulder.L&#039;&#039; and &#039;&#039;shoulder.R&#039;&#039; bones from &#039;&#039;ORG-spine.003&#039;&#039; to &#039;&#039;ORG-spine.002&#039;&#039;.&lt;br /&gt;
# Controller bones are now adjusted, and we can move on to ORG and MCH layers. Select the ORG layer (31), reparent the bones and set their &#039;&#039;Connected&#039;&#039; box according to the table below. &#039;&#039;&#039;x&#039;&#039;&#039; means no change is needed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bone !! Parent !! Connected&lt;br /&gt;
|-&lt;br /&gt;
| ORG-spine || root || x&lt;br /&gt;
|-&lt;br /&gt;
| ORG-spine.001 || ORG-spine || Yes&lt;br /&gt;
|-&lt;br /&gt;
| ORG-spine.002 || ORG-spine.001 || Yes&lt;br /&gt;
|-&lt;br /&gt;
| ORG-shoulder.L || ORG-spine.002 || x&lt;br /&gt;
|-&lt;br /&gt;
| ORG-shoulder.R || ORG-spine.002 || x&lt;br /&gt;
|-&lt;br /&gt;
| ORG-upper_arm.L || x || No&lt;br /&gt;
|-&lt;br /&gt;
| ORG-upper_arm.R || x || No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;50&amp;quot;&amp;gt;Select the MCH layer (3) and remove the following bones:&amp;lt;/li&amp;gt;&lt;br /&gt;
#*MCH-thigh_tweak.L&lt;br /&gt;
#*MCH-thigh_tweak.R&lt;br /&gt;
#*MCH-shin_tweak.L&lt;br /&gt;
#*MCH-shin_tweak.R&lt;br /&gt;
#*MCH-foot_tweak.L&lt;br /&gt;
#*MCH-foot_tweak.R&lt;br /&gt;
# Snap &#039;&#039;MCH-torso.parent&#039;&#039; and &#039;&#039;MCH-torso_pivot&#039;&#039; to the &#039;&#039;mid&#039;&#039; body part. (You can also snap them to &#039;&#039;MCH-spine&#039;&#039; or &#039;&#039;MCH-spine.001&#039;&#039; bones as they&#039;re snapped to &#039;&#039;mid&#039;&#039; as well)&lt;br /&gt;
# With X-Axis mirror enabled, select the MCH-forearm_ik.R bone and extrude it perpendicularly to the axis of the arm. You should now have the MCH-forearm_ik.R.001 and MCH-forearm_ik.L.001 bones. These bones are needed for the wrist snapping function which we&#039;ll implement later.&lt;br /&gt;
&lt;br /&gt;
==Editing the bone constraints of ORG and MCH bone layers==&lt;br /&gt;
Now&#039;s the time to edit and add bone constraints.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;53&amp;quot;&amp;gt;Switch to Pose mode and add a &#039;&#039;Copy Rotation&#039;&#039; bone constraint to MCH-forearm_ik.R.001 and MCH-forearm_ik.L.001 bones that you&#039;ve added in previous points, targeting MCH-forearm_ik.R and MCH-forearm_ik.L bones (i.e. for the &#039;&#039;MCH-forearm_ik.R.001&#039;&#039;, &#039;&#039;Target&#039;&#039; is &#039;&#039;rig&#039;&#039;, while &#039;&#039;Bone&#039;&#039; should be set to &#039;&#039;MCH-forearm_ik.R.001&#039;&#039;)&amp;lt;/li&amp;gt;&lt;br /&gt;
# Select the ORG layer.&lt;br /&gt;
# Add bone constraints in accordance to the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bone !! Bone Constraint !! Target !! Target/Bone&lt;br /&gt;
|-&lt;br /&gt;
| ORG-spine || Copy Transforms || rig || MCH-WGT-hips&lt;br /&gt;
|-&lt;br /&gt;
| ORG-spine.001 || Copy Rotation || rig || tweak_spine.001&lt;br /&gt;
|-&lt;br /&gt;
| ORG-spine.002 || Copy Transforms || rig || MCH-WGT-chest&lt;br /&gt;
|}&lt;br /&gt;
#&amp;lt;li value=&amp;quot;55&amp;quot;&amp;gt;Delete the &#039;&#039;Stretch to&#039;&#039; bone constraint from &#039;&#039;ORG-spine.003&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
#Set the &#039;&#039;Bone&#039;&#039; in the &#039;&#039;Copy Transforms&#039;&#039; bone constraint in &#039;&#039;ORG-spine.003&#039;&#039; to &#039;&#039;neck&#039;&#039;.&lt;br /&gt;
#Select the MCH layer.&lt;br /&gt;
# Select the MCH-pivot bone.&lt;br /&gt;
## Set the Influence of the Copy Transforms bone constraint to 1.&lt;br /&gt;
## Add a Copy Rotation bone constraint, set it to rig / ORG-spine.002 and set its influence to 0.5.&lt;br /&gt;
# Select the MCH-spine.001 bone, and set the Influence of the Copy Transforms bone constraint to 0.&lt;br /&gt;
# Select the MCH-spine.002 bone.&lt;br /&gt;
## Set the Influence of the Copy Transforms bone constraint to 1.&lt;br /&gt;
## Add a Copy Location bone constraint, and set it to rig / ORG-spine.002.&lt;br /&gt;
# Select the MCH-STR-neck bone.&lt;br /&gt;
## Set the Rotation of the Stretch To bone constraint from Swing to XZ.&lt;br /&gt;
## Add a Damped Track bone constraint.&lt;br /&gt;
### Move it to the top of the bone constraint list.&lt;br /&gt;
### Set it to rig / head.&lt;br /&gt;
### Set the Track Axis to Y if it isn&#039;t already.&lt;br /&gt;
# For both MCH-upper_arm_ik_stretch.L and MCH-upper_arm_ik_stretch.R bones, do the following:&lt;br /&gt;
## Set the Rotation of the Stretch To bone constraint from Swing to XZ.&lt;br /&gt;
## Add a Damped Track bone constraint.&lt;br /&gt;
### Move it to the top of the bone constraint list.&lt;br /&gt;
### Set it to rig / hand_ik (.L or .R appropriately if it&#039;s a right or left hand).&lt;br /&gt;
### Set the Track Axis to Y if it isn&#039;t already.&lt;br /&gt;
# For both MCH-thigh_ik_stretch.L and MCH-thigh_ik_stretch.R bones, do the following:&lt;br /&gt;
## Set the Rotation of the Stretch To bone constraint from Swing to XZ.&lt;br /&gt;
## Add a Damped Track bone constraint.&lt;br /&gt;
### Move it to the top of the bone constraint list.&lt;br /&gt;
### Set it to rig / MCH-foot_roll (.L or .R appropriately if it&#039;s a right or left leg).&lt;br /&gt;
### Set the Track Axis to Y if it isn&#039;t already.&lt;br /&gt;
# Disable the &#039;&#039;Stretch&#039;&#039; checkbox in both of the IK bone constraints in the following bones:&lt;br /&gt;
#*MCH-forearm_ik.L&lt;br /&gt;
#*MCH-forearm_ik.R&lt;br /&gt;
#*MCH-shin_ik.L&lt;br /&gt;
#*MCH-shin_ik.R&lt;br /&gt;
&lt;br /&gt;
==Changing custom shapes of rig controller bones==&lt;br /&gt;
We&#039;re getting close to the end. There&#039;s still a bit of work to do, but all that remains relates to the rig controller bones in Pose mode.&lt;br /&gt;
This short header will focus on changing the shapes of the controller bones – these changes are purely visual and have no functional effect on the rig, however, they do make it more more ergonomic and easier to read.&lt;br /&gt;
[[Image:Rig After Editing Custom Shapes.png|200px|right|thumb|Rig&#039;s expected state at point 69.]]&lt;br /&gt;
#&amp;lt;li value=&amp;quot;65&amp;gt;Switch over to all other bone layers except the MCH and ORG layers – all that was related to them is now done.&amp;lt;/li&amp;gt;&lt;br /&gt;
#Select the tweak_spine.001 bone:&lt;br /&gt;
## Set the Custom Object to WGT-rig_thigh_parent.L – this will make it much more easier to read.&lt;br /&gt;
## Set the Scale to 1.5.&lt;br /&gt;
## Disable the &#039;&#039;Scale to Bone Length&#039;&#039; checkbox.&lt;br /&gt;
# Select the spine_fk bone:&lt;br /&gt;
## Disable the &#039;&#039;Scale to Bone Length&#039;&#039; checkbox.&lt;br /&gt;
## Set the Scale to 0.&lt;br /&gt;
#For both hand_ik.R and hand_ik.L bones, disable the &#039;&#039;Scale to Bone Length&#039;&#039; checkbox.&lt;br /&gt;
#For both foot_ik.R and foot_ik.L bones, do the following:&lt;br /&gt;
## Disable the &#039;&#039;Scale to Bone Length&#039;&#039; checkbox.&lt;br /&gt;
## Set the Scale to 2.&lt;br /&gt;
#For both toe.R and toe.L, set the scale to 0. At this point, the rig should look as shown in the screenshot on the right.&lt;br /&gt;
&lt;br /&gt;
==Editing the rig_ui.py script==&lt;br /&gt;
Now we&#039;ll need to edit the Rig Layers panel a bit and add the wrist snapping functionality by putting three code snippets into rig_ui.py and running it.&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;71&amp;quot;&amp;gt; Go to the Scripting tab and select the rig_ui.py script.&lt;br /&gt;
#Right at the start of the script you will see the &amp;lt;code&amp;gt;rig_id&amp;lt;/code&amp;gt; field. Copy its value and save it in some text editor, as you&#039;ll be pasting it in the next few steps. &lt;br /&gt;
#Find the following line (use another text editor if you can&#039;t find it in Blender&#039;s Text Editor):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        props.bones = &#039;[&amp;quot;upper_arm_ik.L&amp;quot;, &amp;quot;upper_arm_ik_target.L&amp;quot;, &amp;quot;hand_ik.L&amp;quot;]&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following code snippet below it – this will add a button and functionality for the wrist snapping on the &#039;&#039;&#039;left&#039;&#039;&#039; arm – using the MCH-forearm_ik.L.001 bone that was created in points 52 and 53.&lt;br /&gt;
Also, replace &amp;lt;code&amp;gt;&#039;&#039;&#039;YOURRIGID&#039;&#039;&#039;&amp;lt;/code&amp;gt; with your &amp;lt;code&amp;gt;rig_id&amp;lt;/code&amp;gt; from point 71.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            group2 = group1.row(align=True)&lt;br /&gt;
            props = group2.operator(&#039;pose.rigify_generic_snap_YOURRIGID&#039;, text=&#039;IK wrist (hand.L)&#039;, icon=&#039;SNAP_ON&#039;)&lt;br /&gt;
            props.output_bones = &#039;[&amp;quot;hand_ik.L&amp;quot;]&#039;&lt;br /&gt;
            props.input_bones = &#039;[&amp;quot;MCH-forearm_ik.L.001&amp;quot;]&#039;&lt;br /&gt;
            props.ctrl_bones = &#039;[&amp;quot;MCH-forearm_ik.L.001&amp;quot;]&#039;&lt;br /&gt;
            props.tooltip = &#039;IK hand to wrist&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;74&amp;quot;&amp;gt; Find the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;        props.bones = &#039;[&amp;quot;upper_arm_ik.R&amp;quot;, &amp;quot;hand_ik.R&amp;quot;, &amp;quot;upper_arm_ik_target.R&amp;quot;]&#039; &amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following code snippet below it – this will add a button and functionality for the wrist snapping on the &#039;&#039;&#039;right&#039;&#039;&#039; arm. Also, replace &amp;lt;code&amp;gt;&#039;&#039;&#039;YOURRIGID&#039;&#039;&#039;&amp;lt;/code&amp;gt; with your &amp;lt;code&amp;gt;rig_id&amp;lt;/code&amp;gt; from point 71.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            group2 = group1.row(align=True)&lt;br /&gt;
            props = group2.operator(&#039;pose.rigify_generic_snap_YOURRIGID&#039;, text=&#039;IK wrist (hand.R)&#039;, icon=&#039;SNAP_ON&#039;)&lt;br /&gt;
            props.output_bones = &#039;[&amp;quot;hand_ik.R&amp;quot;]&#039;&lt;br /&gt;
            props.input_bones = &#039;[&amp;quot;MCH-forearm_ik.R.001&amp;quot;]&#039;&lt;br /&gt;
            props.ctrl_bones = &#039;[&amp;quot;MCH-forearm_ik.R.001&amp;quot;]&#039;&lt;br /&gt;
            props.tooltip = &#039;IK hand to wrist&#039;&lt;br /&gt;
            if is_selected({&#039;upper_arm_ik.R&#039;, &#039;hand_ik.R&#039;, &#039;upper_arm_parent.R&#039;, &#039;upper_arm_ik_target.R&#039;}):&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;75&amp;quot;&amp;gt; Find the following line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        row.prop(context.active_object.data, &#039;layers&#039;, index=8, toggle=True, text=&#039;Torso&#039;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change it to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        row.prop(context.active_object.data, &#039;layers&#039;, index=9, toggle=True, text=&#039;Pose Matching&#039;)&lt;br /&gt;
&lt;br /&gt;
        row = col.row()&lt;br /&gt;
        row.separator()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;76&amp;quot;&amp;gt; Find the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;        row.prop(context.active_object.data, &#039;layers&#039;, index=9, toggle=True, text=&#039;Torso (Tweak)&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change it to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;        row.prop(context.active_object.data, &#039;layers&#039;, index=8, toggle=True, text=&#039;Torso&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:IKWrist.png|200px|right|thumb|Rig&#039;s expected state at point 80.]]&lt;br /&gt;
[[Image:ModifiedRigLayers.png|200px|right|thumb|Rig&#039;s expected state at point 80, with hand_ik.R selected, showing the newly added IK wrist snapping functionality.]]&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;77&amp;quot;&amp;gt;Find the following code:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        row.prop(context.active_object.data, &#039;layers&#039;, index=21, toggle=True, text=&#039;Leg.R (FK)&#039;)&lt;br /&gt;
&lt;br /&gt;
        row = col.row()&lt;br /&gt;
        row.separator()&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Remove the &amp;lt;code&amp;gt;row = col.row()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;row.seperator()&amp;lt;/code&amp;gt; lines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;78&amp;quot;&amp;gt; Find the following line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;        row.prop(context.active_object.data, &#039;layers&#039;, index=28, toggle=True, text=&#039;Root&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the value of &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; to 24. Index is the layer number, and Root should be layer 24, not 28. &lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;79&amp;quot;&amp;gt;We recommend backing up your file at this point.&lt;br /&gt;
#Run the script, and move to the Layout tab. Your rig should look as shown in the screenshots on the right.&lt;br /&gt;
&lt;br /&gt;
==Adding the Rigify Axis Correction Empties==&lt;br /&gt;
Before we add the Pose Matching functionality, we need to create Axis Correction Empties that will account for Rigify&#039;s axis orientation.&lt;br /&gt;
#&amp;lt;li value=&amp;quot;81&amp;quot;&amp;gt;Switch to Object Mode.&lt;br /&gt;
#Duplicate the &#039;&#039;Axis Correction Empties&#039;&#039; collection and rename it to &#039;&#039;Rigify Axis Correction Empties&#039;&#039;&lt;br /&gt;
## Rename the ACPelvis.001 to RACHead and move it in the global Z axis so that it is aligned with the head along the Y axis (or 3D cursor snap it)&lt;br /&gt;
## Rename the remaining empties in the newly-made collection by removing the &#039;&#039;.001&#039;&#039; suffix and changing the &#039;&#039;AC&#039;&#039; prefix to &#039;&#039;RAC&#039;&#039;.&lt;br /&gt;
## Set the rotations of the empties according to the table below:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Empty !!  X rotation || Y rotation || Z rotation&lt;br /&gt;
|-&lt;br /&gt;
| RACFeet || 38.1 || 90 || 0&lt;br /&gt;
|-&lt;br /&gt;
| RACHandL ||  -180 || 0 || 90&lt;br /&gt;
|-&lt;br /&gt;
| RACHandR || 0 || 0 || -90&lt;br /&gt;
|-&lt;br /&gt;
| RACHead || -90 || -90 || 0&lt;br /&gt;
|-&lt;br /&gt;
| RACLimbs || 90 || 90 || 0&lt;br /&gt;
|-&lt;br /&gt;
| RACSpine || 180 || -90 || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Adding bone constraints to rig controller bones and drivers==&lt;br /&gt;
This is the final section of this tutorial. Now we just have to add the Pose Matching functionality, so we can constrain the rig to imported animations in Pose 1 and Pose 2 collections. We do that by adding two new bones to the rig, bone constraints to the rig controller bones and then drivers which will control the influence of the bone constraints through the Z location of the newly added bones. We will also &lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;83&amp;quot;&amp;gt;Select the rig, go to Edit mode and select the Pose Matching layer.&lt;br /&gt;
#Add a new bone named &#039;&#039;Pose1&#039;&#039;. &lt;br /&gt;
#Set its transforms as listed below (or make it as big as you want, this is purely a visual/ergonomic matter):&lt;br /&gt;
#*Head X,Y,Z: 1,0,0&lt;br /&gt;
#*Tail X,Y,Z: 1,0,1&lt;br /&gt;
#Duplicate the bone and rename it to &#039;&#039;Pose2&#039;&#039;.&lt;br /&gt;
#Set its transforms as listed below (it will be simply mirrored along the X axis)&lt;br /&gt;
#*Head X,Y,Z: -1,0,0&lt;br /&gt;
#*Tail X,Y,Z: -1,0,1&lt;br /&gt;
#Switch to Pose mode.&lt;br /&gt;
#For both Pose1 and Pose2 bones, select them, go to Bone Properties tab, Viewport Display, Custom Shape and set the Custom Object to WGT-rig_shoulder.L.&lt;br /&gt;
##You can also set the Scale to 10 and disable the &#039;&#039;Scale to Bone Length&#039;&#039; checkbox for them if you want.&lt;br /&gt;
#For now, move both Pose 1 and Pose 2 in Global Z axis so that they are below the &amp;quot;floor&amp;quot; (XY plane).&lt;br /&gt;
#Select the Torso layer and all of the FK layers in the Rig Layers panel.&lt;br /&gt;
#Select the &#039;&#039;hips&#039;&#039; bone.&lt;br /&gt;
##Add &#039;&#039;three&#039;&#039; Copy Rotation bone constraints, and move the one without the suffix to the bottom of the list (so the order of the bone constraints going from the top to bottom is &#039;&#039;Copy Rotation.001&#039;&#039;, &#039;&#039;Copy Rotation.002&#039;&#039;, &#039;&#039;Copy Rotation&#039;&#039;). &#039;&#039;Copy Rotation.001&#039;&#039; and &#039;&#039;Copy Rotation.002&#039;&#039; will be used for pose matching, &#039;&#039;Copy Rotation&#039;&#039; will be used for axis correction.&lt;br /&gt;
##In the &#039;&#039;Copy Rotation&#039;&#039; constraint, set the &#039;&#039;Mix&#039;&#039; to &#039;&#039;After Original&#039;&#039;. &lt;br /&gt;
#Now we&#039;ll have to add the drivers controlling the influence of each Copy Rotation constraint. As shown in Pierrick Picaut&#039;s tutorial, you can do that by right clicking on the Influence value and pressing &#039;&#039;Add Driver&#039;&#039; (same applies to any other property in any other constraint). Once you add a driver, you can edit it either through &#039;&#039;Edit Driver&#039;&#039; or through the Driver Editor – both are selectable within the same menu.&lt;br /&gt;
##Add a driver to the &#039;&#039;Influence&#039;&#039; of each &#039;&#039;Copy Rotation&#039;&#039; constraint in accordance with the table below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Copy Rotation.001 !! Copy Rotation.002 !! Copy Rotation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
*Driver Type: &#039;&#039;Scripted Expression&#039;&#039; (default setting)&lt;br /&gt;
*Expression: &#039;&#039;var&#039;&#039;&lt;br /&gt;
*Amount of input variables: one (default setting)&lt;br /&gt;
*Input Variable type: &#039;&#039;Transform Channel&#039;&#039; (default setting)&lt;br /&gt;
*Input Variable name: &#039;&#039;var&#039;&#039; (default setting)&lt;br /&gt;
*Object: &#039;&#039;rig&#039;&#039;&lt;br /&gt;
*Bone: &#039;&#039;Pose1&#039;&#039;&lt;br /&gt;
*Type: &#039;&#039;Z Location&#039;&#039;&lt;br /&gt;
*Space: &#039;&#039;World Space&#039;&#039; (default setting)&lt;br /&gt;
||&lt;br /&gt;
Same settings as in Copy Rotation.001, with the exception of:&lt;br /&gt;
*Bone: &#039;&#039;Pose2&#039;&#039;&lt;br /&gt;
||&lt;br /&gt;
*Driver Type: &#039;&#039;Scripted Expression&#039;&#039; (default setting)&lt;br /&gt;
*Expression: &#039;&#039;max(var1,var2)&#039;&#039; (press Enter to get rid of the invalid expression error, if you have it)&lt;br /&gt;
*Amount of input variables: two (&#039;&#039;&#039;press &#039;&#039;Add Input Variable&#039;&#039;&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First input variable:&lt;br /&gt;
*Input Variable type: &#039;&#039;Transform Channel&#039;&#039; (default setting)&lt;br /&gt;
*Input Variable name: &#039;&#039;var1&#039;&#039;&lt;br /&gt;
*Object: &#039;&#039;rig&#039;&#039;&lt;br /&gt;
*Bone: &#039;&#039;Pose1&#039;&#039;&lt;br /&gt;
*Type: &#039;&#039;Z Location&#039;&#039;&lt;br /&gt;
*Space: &#039;&#039;World Space&#039;&#039; (default setting)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Second input variable:&lt;br /&gt;
*Input Variable type: &#039;&#039;Transform Channel&#039;&#039; (&#039;&#039;&#039;be sure to change it to this&#039;&#039;&#039;, added variables have &#039;&#039;Single Property&#039;&#039; set as default)&lt;br /&gt;
*Input Variable name: &#039;&#039;var2&#039;&#039;&lt;br /&gt;
*Object: &#039;&#039;rig&#039;&#039;&lt;br /&gt;
*Bone: &#039;&#039;Pose2&#039;&#039;&lt;br /&gt;
*Type: &#039;&#039;Z Location&#039;&#039;&lt;br /&gt;
*Space: &#039;&#039;World Space&#039;&#039; (default setting)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;94&amp;quot;&amp;gt;You can check if the drivers are working by moving Pose1 and Pose2 bones along global Z axis and checking if the Influence of Copy Rotation bone constraints in &#039;&#039;hips&#039;&#039; or Input Variable values in their drivers change.&lt;br /&gt;
#Copy the bone constraints from the &#039;&#039;hips&#039;&#039; bone to the following bones:&lt;br /&gt;
#*tweak_spine.001&lt;br /&gt;
#*chest&lt;br /&gt;
#*shoulder.R&lt;br /&gt;
#*shoulder.L&lt;br /&gt;
#*neck&lt;br /&gt;
#*head&lt;br /&gt;
#*upper_arm_fk.R&lt;br /&gt;
#*upper_arm_fk.L&lt;br /&gt;
#*forearm_fk.R&lt;br /&gt;
#*forearm_fk.L&lt;br /&gt;
#*hand_fk.R&lt;br /&gt;
#*hand_fk.L&lt;br /&gt;
#*thigh_fk.R&lt;br /&gt;
#*thigh_fk.L&lt;br /&gt;
#*shin_fk.R&lt;br /&gt;
#*shin_fk.L&lt;br /&gt;
#*foot_fk.L&lt;br /&gt;
#*foot_fk.R&lt;br /&gt;
#Unfortunately, because Blender at this moment does not copy drivers when copying bone constraints, the bone constraints you&#039;ve just copied are lacking the drivers. Because of this, you have to copy the drivers manually – simply right click on the &#039;&#039;Influence&#039;&#039; value of &#039;&#039;Copy Rotation&#039;&#039; constraint, press &#039;&#039;Copy Driver&#039;&#039;, and go through all bones in the upper list and &#039;&#039;Paste Driver&#039;&#039; onto the Influence of the &#039;&#039;Copy Rotation&#039;&#039; in each bone. &#039;&#039;&#039;Do this for all three &#039;&#039;Copy Rotation&#039;&#039; bone constraints.&#039;&#039;&#039;&lt;br /&gt;
#Add two &#039;&#039;Copy Location&#039;&#039; constraints to &#039;&#039;torso&#039;&#039; and &#039;&#039;torso_pivot&#039;&#039; bones, and make sure they&#039;re named &#039;&#039;Copy Location.001&#039;&#039; and &#039;&#039;Copy Location.002&#039;&#039;.&lt;br /&gt;
#Copy Influence Drivers from any of the bones in point 96 and paste them into the &#039;&#039;Influence&#039;&#039; of &#039;&#039;Copy Location&#039;&#039; constraints in &#039;&#039;torso&#039;&#039; and &#039;&#039;torso_pivot&#039;&#039;, in accordance with the numbers of bone constraints (e.g. copy the driver from &#039;&#039;hips&#039;&#039;&#039; &#039;&#039;Copy Rotation.001&#039;&#039; Influence and paste it into Influence of &#039;&#039;Copy Location.001&#039;&#039; in &#039;&#039;torso&#039;&#039; and &#039;&#039;torso_pivot&#039;&#039;).&lt;br /&gt;
#Set the &#039;&#039;Copy Rotation&#039;&#039; constraints&#039; Axis correction &#039;&#039;Target&#039;&#039; in accordance with the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bone !! Copy Rotation target&lt;br /&gt;
|-&lt;br /&gt;
| hips || RACSpine&lt;br /&gt;
|-&lt;br /&gt;
| tweak_spine.001 || RACHead&lt;br /&gt;
|-&lt;br /&gt;
| chest || RACSpine&lt;br /&gt;
|-&lt;br /&gt;
| neck || RACHead&lt;br /&gt;
|-&lt;br /&gt;
| head || RACHead&lt;br /&gt;
|-&lt;br /&gt;
| shoulder.R  || RACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| shoulder.L || RACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| upper_arm_fk.R || RACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| upper_arm_fk.L || RACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| forearm_fk.R || RACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| forearm_fk.L || RACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| hand_fk.R  || RACHandL&lt;br /&gt;
|-&lt;br /&gt;
| hand_fk.L || RACHandR&lt;br /&gt;
|-&lt;br /&gt;
| thigh_fk.R || RACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| thigh_fk.L || RACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| shin_fk.R || RACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| shin_fk.L || RACLimbs&lt;br /&gt;
|-&lt;br /&gt;
| foot_fk.R || RACFeet&lt;br /&gt;
|-&lt;br /&gt;
| foot_fk.L || RACFeet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Image:RigFinished.png|200px|right|thumb|Finished rig showing the pose matching functionality.]]&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;li value=&amp;quot;100&amp;quot;&amp;gt; Select any FK (green) bone and set the IK-FK slider to 1. Do this for all four limbs. This has to be done because pose matching works only through FK.&lt;br /&gt;
# Using the [[Blender/Obsolete scripts#Rig bone constraint target setting script|RigBoneConstraintTargetSetter script]], set the targets for the &#039;&#039;Copy Rotation.001&#039;&#039; and &#039;&#039;Copy Rotation.002&#039;&#039; bone constraints. You can do that by having the rig in Pose mode, going to the Scripting tab, copying and pasting the script, and running it with &amp;lt;code&amp;gt;prefix&amp;lt;/code&amp;gt; value set to 1, and then set to 2.&lt;br /&gt;
# If you didn&#039;t get any errors, move one of the Pose bones in the global Z axis above the XY plane – the T-posed character should now snap to one of the animations in the &#039;&#039;Pose&#039;&#039; collections, as shown in the screenshot on the right.&lt;br /&gt;
# Congratulations! The rig is now ready to be used.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>ValBot</name></author>
	</entry>
</feed>