<?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=Samer</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=Samer"/>
	<link rel="alternate" type="text/html" href="https://wiki.oni2.net/Special:Contributions/Samer"/>
	<updated>2026-04-04T09:27:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BGI_characters&amp;diff=38362</id>
		<title>BGI characters</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BGI_characters&amp;diff=38362"/>
		<updated>2022-09-16T08:33:57Z</updated>

		<summary type="html">&lt;p&gt;Samer: /* BGI Agents */&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://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 [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://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://www.models-resource.com/pc_computer/unrealtournament2004/model/3923/ 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://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>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Bgi_agents_blackops.jpg&amp;diff=38361</id>
		<title>File:Bgi agents blackops.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Bgi_agents_blackops.jpg&amp;diff=38361"/>
		<updated>2022-09-16T08:31:22Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Mod screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Mod screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Bgi_agents_lite.jpg&amp;diff=38360</id>
		<title>File:Bgi agents lite.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Bgi_agents_lite.jpg&amp;diff=38360"/>
		<updated>2022-09-16T08:29:34Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Mod screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Mod screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Videos&amp;diff=37027</id>
		<title>Videos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Videos&amp;diff=37027"/>
		<updated>2022-04-24T21:21:39Z</updated>

		<summary type="html">&lt;p&gt;Samer: updating casey video link to new version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a collection of links to some of the Oni-related videos posted on YouTube. Also see YouTube&#039;s [https://www.youtube.com/channel/UCa3bHN9Pp4xrzWVtyIPiEZQ/recent Oni - Topic] channel, which automatically collects Oni videos (with some false positives from games/users that have similar names).&lt;br /&gt;
&lt;br /&gt;
==Trailers==&lt;br /&gt;
:&#039;&#039;See [[Trailers]] for details on the Bungie trailers.&#039;&#039;&lt;br /&gt;
*[https://www.youtube.com/watch?v=ANQWWqECzI8 Bungie West&#039;s 1998 trailer]&lt;br /&gt;
*[https://www.youtube.com/watch?v=YLZ2hJZvrmo Bungie&#039;s 1999 trailer] &lt;br /&gt;
*[https://www.youtube.com/watch?v=kCUJmY7EZeo Oni trailer from Fall 2000 GoD Bonus CD]&lt;br /&gt;
*[https://www.youtube.com/watch?v=OmNtNzROvug Rockstar trailer]&lt;br /&gt;
*[https://www.youtube.com/watch?v=_cv8X2hc8YE Japanese trailer]&lt;br /&gt;
&lt;br /&gt;
==Early footage==&lt;br /&gt;
*[https://www.youtube.com/watch?v=3vKJAZZWIxI Multiplayer at E3, May 1999]&lt;br /&gt;
*Multiplayer at Macworld NY, July 1999: [https://www.youtube.com/watch?v=iiBE8N1auuo], [https://www.youtube.com/watch?v=Z3u76geVaio]&lt;br /&gt;
*[https://www.youtube.com/watch?v=HOmKXhZJ3b8 Multiplayer at Macworld SF, Jan. 2000]&lt;br /&gt;
*Multiplayer at E3, May 2000: [https://www.youtube.com/watch?v=yFQNu-r4TOc], [https://www.youtube.com/watch?v=Sc8crcxjfgM], [https://www.youtube.com/watch?v=8Wp3xqAD4xw]&lt;br /&gt;
*[https://www.youtube.com/watch?v=xMJMQdkK9fs Electric Playground S4E7] (E3 coverage with brief Michael Evans interview from 03&#039;47&amp;quot;–03&#039;58&amp;quot;)&lt;br /&gt;
*[https://www.youtube.com/watch?v=-FmGO67Q_vg Electric Playground S4E10] (Oni is featured from 00&#039;26&amp;quot;–03&#039;10&amp;quot;)&lt;br /&gt;
*[https://www.youtube.com/watch?v=TaRjTYbUFNY Oni teaser at Macworld NY, July 2000]&lt;br /&gt;
*[https://www.youtube.com/watch?v=SO3JUw1dx3A Pre-beta PS2 footage]&lt;br /&gt;
&lt;br /&gt;
==Documentaries and reviews==&lt;br /&gt;
*[https://www.youtube.com/watch?v=Yg1mfEvfq_k Oni - Trash or Treasure] by Block&#039;s Gaming Reviews*&lt;br /&gt;
*[https://www.youtube.com/watch?v=RJO4OB8xdQg Oni: The Other Bungie Game] by Critical Nobody&lt;br /&gt;
*[https://www.youtube.com/watch?v=jbrPu15jjPs Demon: The Untold Story of Bungie’s Forgotten Franchise] by CryMor Gaming&lt;br /&gt;
*[https://www.youtube.com/watch?v=jNgG8RSHNa8 Oni - Analytical Overview] by EonKool&lt;br /&gt;
*[https://www.youtube.com/watch?v=VOawPhCG2dU Gaming History: Oni &amp;quot;The other Best Game Bungie ever made&amp;quot;] by GaminGHD&lt;br /&gt;
*[https://www.youtube.com/watch?v=ggC6kfJJE_w Oni Review (Bungie&#039;s Forgotten Game)] by GmanLives&lt;br /&gt;
*[https://www.youtube.com/watch?v=_LRyxtXkPng Oni: The best Bungie game and its seven-years-late mod scene] by Joe Wintergreen&lt;br /&gt;
*[https://www.youtube.com/watch?v=7btzVHh_iXQ Review: Oni] by Nick H&lt;br /&gt;
*[https://www.youtube.com/watch?v=Ox6r7aJSRdU Top 10 Forgotten Video Games from Great Developers] by WatchMojo (Oni is #2)&lt;br /&gt;
*[https://www.youtube.com/watch?v=6hfFUlraIKQ Oni - Unlikely Review] by Yuusha*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;These reviews are of the PS2 version, and consequently much more negative.&lt;br /&gt;
&lt;br /&gt;
==Intro and outro==&lt;br /&gt;
*[https://www.youtube.com/watch?v=du8JepLM-lI Oni Intro]&lt;br /&gt;
*[https://www.youtube.com/watch?v=Od1ReWIxduo Oni Outro]&lt;br /&gt;
&lt;br /&gt;
==Gameplay==&lt;br /&gt;
*[https://www.youtube.com/watch?v=CDuQHITARk4 Some of Oni&#039;s Secrets and Easter Eggs] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=r06Q_hEhCg4 Science Prison Lasers] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=sSOLSh_aCC8 Grenade Jumping] by loveOni shows how to get to those snipers in Chapter 14 using an SBG&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLFa3CejQbQ2IAihiuD58DLPUraoSccuOt Oni AE Full Levels Gameplay (using several mods)] by Tracker&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLFasmrd0ZfRm80eHfK3g_eDAXJWb0PM5I Oni Let&#039;s Play (using Brutal AI, SMP-Conversion, and other mods)] by tens&lt;br /&gt;
*[https://www.youtube.com/watch?v=N5dU4IdKlXQ Chasing Mukade] by Loser&lt;br /&gt;
&lt;br /&gt;
==Mods==&lt;br /&gt;
===Anniversary Edition===&lt;br /&gt;
*[https://www.youtube.com/watch?v=Il46o_ahOds&amp;amp;list=FLtTcOh2t7wRZ5rXzMmWt6xA&amp;amp;index=4 Russian Video showcasing many of the AE mods] by mainfram812&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PL_MVvdrljWSR6pnE6zcIByVoasbDBugT0 Oni Playlist featuring many videos using the AE and different level and character mods] by John Thunder&lt;br /&gt;
&lt;br /&gt;
===Characters===&lt;br /&gt;
*[https://youtu.be/91-s8CJpeaM Custom Character Casey version 6 demonstrating all new animations, combos, and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=RbfE6k2ulW4 Custom Character Motoko version 3.5 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=ldVEmOV839U Custom Character BGI Sarai demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=KYgNmpLED5M Custom Character Hayate version 2.1 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=Ci44KaCq7UY Custom Characters Jester &amp;amp; Co. demonstrating all moves and combos] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=5R8zuI5-EHw Custom Character Kojiro version 2.2 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=9VlUBaQWuXg Custom Character BGI Hammer demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=YtRac64hu6Q Custom Character Rayman Showcase] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=NSfeb4xv7p8 Konoko vs. AI Rayman] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=4-P82ctyS2E Guard Dogs preview] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=iLl9FAoujIs Sentry Droid preview] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=yhkTFgEyj28 The Iron Demon Lives] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=5whksLNIVmA Iron Demon walking] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=I4OCptczD0Q Iron Demon explosion effect] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=d2opg2DIGwk Golden TCTF vs. Regenerating Tanker] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=MmurRBUbW-U Clash of Titans - BGI Hammer vs. Barabas] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=M0ugC6fV-6o Hayate vs. Jester, Casey vs. Hayate, Jester vs. Jubei &amp;amp; Akane] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=w-5c5lHjCGA Akane vs. Grey Fury, Jubei vs. Kojiro] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=o7NvGBsT-gI Casey combo video in Oni Zen Garden] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=vR7Z0Wcuuso Akane combo video in Oni Zen Garden] by Mukade&lt;br /&gt;
*[https://www.youtube.com/watch?v=yD6Ai8uufJI Altered Barabas Boss Fight] by Loser (Mod can be found in EdT&#039;s Boss Battle Level)&lt;br /&gt;
*[https://www.youtube.com/watch?v=QaBDJk9KrNs Barabas New Regeneration] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=ASyyzfIc3D0 Shinibot &amp;amp; Hanako vs. Smart Barabas] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=WQZSY8cmj9k Kojiro &amp;amp; Casey vs. Smart Barabas] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=kbA4JvcBZFQ Konoko vs. Smart Barabas] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=-4Dt_7AmdK0 Konoko vs. Smart Barabas with Jumpable Earthquaker package] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=LNUcS_mtHpA Jubei pathfinds] by Gumby &amp;amp; geyser&lt;br /&gt;
*[https://www.youtube.com/watch?v=EZ3bai7BhR4 Shapeshifting Montage] by Paradox&lt;br /&gt;
&lt;br /&gt;
===Levels===&lt;br /&gt;
*[https://www.youtube.com/watch?v=dtmPmt6YqEE Oni goes to a new Level] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=DyOIcie7VGk Omega Tournament Level Preview] by Script10k&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLZQupCr62BGlWdKfx6QV-jArcjDgU64Fs Wilderness Preserve Level Full Walkthrough] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=MArbspInwiM SamMegaPack-Fight Club Level Preview] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=hg_7FMlyo9M China Level Mod Final Battle] by Script10k&lt;br /&gt;
*[https://www.youtube.com/watch?v=CChvV7GTi28 Hanako vs. Hayate and Mukade in China Level Mod] &amp;amp; [https://www.youtube.com/watch?v=CChvV7GTi28 Hanako in Final Battle of China Level] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=WZ26KJ46CzE Fight Over the Junkyard] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=Wv1IG6QXTMs Oni Custom Characters Good vs. Bad in Junkyard Level] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=iKXw5jt3vSE EdT&#039;s City Level Parkour Challenge] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=QwRzyBGK1yk Oni Tomb Raider Style] showcasing EdT&#039;s Parkour Challenge 1 Level by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=PR_0gddHkNA Parkour Challenge 2 Run] by Tracker&lt;br /&gt;
*[https://www.youtube.com/watch?v=GUR66F9rISE SamMegaPack-Conversion Preview] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=wwqQHXvCgeQ SamMegaPack-Conversion Final Battle Spared Griffin Version] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=e97TCEPhjK0 SamMegaPack-Conversion Final Battle Killed Griffin Version] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=Bs8rdGyEpog SamMegaPack-Conversion Dream Lab Preview] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=oHCnoThNL2c SamMegaPack-Conversion Skull Team (renamed to Saisei Team) Fights Preview]&lt;br /&gt;
*[https://www.youtube.com/watch?v=tE3ZfKzZnOM SamMegaPack-Conversion Atmospheric Interior, Konoko vs Grey Fury] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=MIhyHi-C2dY Motoko in Leus&#039; Crazy Casey Mod] by Shella45&lt;br /&gt;
*[https://www.youtube.com/watch?v=5PClAPTum8w Leus&#039; Crazy Casey Mod in reverse] by kaargen&lt;br /&gt;
&lt;br /&gt;
===Weapons===&lt;br /&gt;
*[https://www.youtube.com/watch?v=9kJF7HSJl04 New Weapons Collection preview] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=vrvQjvV0OUA Sniper Mode] by Paradox, demoed by EdT&lt;br /&gt;
*Fun with TK Bracelet: [https://www.youtube.com/watch?v=3dE65ZViFl0], [https://www.youtube.com/watch?v=uptSCVabiBY], [https://www.youtube.com/watch?v=OBWUfHlND9Y] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=1WuMd_fhWbo Phaser rifle demo] by ONIrules&lt;br /&gt;
&lt;br /&gt;
===Animations===&lt;br /&gt;
*[https://www.youtube.com/watch?v=tE1xO5K3hi8 New combat Moves for Konoko] showcases new move types like Just Frames and Delayed Animations by Delano762&lt;br /&gt;
*[https://www.youtube.com/watch?v=Sbz-3pauSlM Ninja Shadow Dash mod] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=PzMx6SED9gA Prone Mode Revisited] by Paradox&lt;br /&gt;
*[https://www.youtube.com/watch?v=hpmqiel9vfQ Barabas using jetpack in Airport Cargo Hangars] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=aiN8vmEtvv8 Disarm Revamp demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=BYYm5AAdpjs Domino Knockdowns demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=aIbQ1B4pSfM Hit_jewels for females demo] by Loser&lt;br /&gt;
*Head2Wall system: [https://www.youtube.com/watch?v=VUM8T06dcn8], [https://www.youtube.com/watch?v=K9c4l8TpTB8], [https://www.youtube.com/watch?v=dCRGTgeFms0]&lt;br /&gt;
&lt;br /&gt;
===Vehicles===&lt;br /&gt;
*[https://www.youtube.com/watch?v=5tK9VwQrcp4 Lamborghini Countach rams TCTF HQ] by Iritscen&lt;br /&gt;
&lt;br /&gt;
===Other mods===&lt;br /&gt;
*Flatline multiplayer footage: [https://www.youtube.com/watch?v=WZnbVGSyRJU Gumby vs. oxe161], [https://www.youtube.com/watch?v=GMeWr11QVjU Gumby vs. Phydur]&lt;br /&gt;
*[https://www.youtube.com/watch?v=aEuAu7jLQQI Projectile dodging patch for AI]&lt;br /&gt;
*[https://www.youtube.com/watch?v=RjGgk6SqdeQ Things that go boom] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=fec1-bgfCxE Japanese Language Pack special attacks preview] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=bib24bRXuhQ Hidden Treasure Challenge] by Samer&lt;br /&gt;
*Good vs. Evil 2.0: [https://www.youtube.com/watch?v=CKhHaG_t0eg video 1], [https://www.youtube.com/watch?v=lzB0I-eeO9o video 2], [https://www.youtube.com/watch?v=dcuF1ABj9D0 video 3] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=gOHCg8KZM4A Burly Brawl v0.1] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=zacLylPPTFk Every man for himself on ACC pillar] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=-6I78-N_2Yo Fighting Multiple Mukades is Hard] scripted by Loser, demoed by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=TQ8n1oIUW-I Three-Dee Shells vs. Original Shells] by Loser and Iritscen&lt;br /&gt;
&lt;br /&gt;
===Concepts===&lt;br /&gt;
*[https://www.youtube.com/watch?v=GFbamj63z8Y AI pathfinding in new level] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=Yj3ptZnZtx0 AI pathfinding on uneven ground] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=Em6wa5JTQNM Hiding parts of the environment] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=iY0eKukGhrM AI Crate jumping] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=2RU6asmmrik New animations - Motoko the cheerleader] by EdT&lt;br /&gt;
*Playing with moveable objects: [https://www.youtube.com/watch?v=Te9yKA4UR18 cubes], [https://www.youtube.com/watch?v=LUmmLTjSaqQ spheres] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=YICB7qugrtc Moveable furniture] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=ogT1QUblCxc Deadly Van de Graaff Pistol] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=16LqQCPvo2Q Gumby&#039;s Death Ray 1] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=bHOMtGDKGSk Gumby&#039;s Death Ray 2] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=qccsevDKve0 Dynamic shadow test] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=WzMkNXtfefA Stenciling test] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=VHr7g94sBzE Konoko Regeneration] by Paradox&lt;br /&gt;
*[https://www.youtube.com/watch?v=_-o4hMQQU7k AI can intercept player] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=eXL9o49I_g0 AI can use Twister Kick and Willow Kick] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=CkzguNxjGEs AI Konoko plays Chapter 1 of Oni] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=6oTbT6qkcg0 AI has sense of touch, can recognize fallen allies] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=pORGOquI_XE Alarm logic demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=Zgg0fsTs1DU Counter-attack based on Willow Kick] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=_n-8SwG_DJk Faster thrower recovery] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=ESR_6bgl1dA Female kneegrab demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=ywk_A6bNHpY Multi-hit Striker Slam] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=NQE-LjM9GqM Mukade&#039;s Glory] by Loser (the famous pathfinding Mukade video)&lt;br /&gt;
*[https://www.youtube.com/watch?v=nlzTajiyl24 Forward knockdown test] by Loser&lt;br /&gt;
*Active blocking demos: [https://www.youtube.com/watch?v=EGTwej4nQTM Using timed press of block key], [https://www.youtube.com/watch?v=IKsPMGSomi8 Holding block key] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=_7dDjiMnUlw Revised melee collision reactions demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=zPNINENGLDc Sword animation candidates] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=hlQ_JLUI4BA Stun-to-throw demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=LXiK6rzfMSU Throw-canceling demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=8ajDTkYPuuM Vulnerable throw victims demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=lMGpDFNO9m8 Successful railing throws] by Loser&lt;br /&gt;
&lt;br /&gt;
==Modding tutorials==&lt;br /&gt;
*[https://www.youtube.com/watch?v=7fQacrVVQLc&amp;amp;list=PLBKEEq8F3prAbbGk6VJkjfLMuMnb-e_gu Creating a Custom Oni Level: Tutorial on building the Omega Tournament Level] by Script10k&lt;br /&gt;
*Paradox&#039;s Mod Tool tutorials: [https://www.youtube.com/watch?v=CFNseg_2UxA A simple animated object], [https://www.youtube.com/watch?v=w1hLbZPwd2Q Camera interpolation and animation], [https://www.youtube.com/watch?v=yYHaltepyNI CRSA import], [https://www.youtube.com/watch?v=oCo2u8XxVd0 Merging character objects, no FBX required]&lt;br /&gt;
*[https://www.youtube.com/watch?v=vDTPYfvMf4M Creating forward throws for Oni with the help of Excel] by Paradox&lt;br /&gt;
&lt;br /&gt;
==Bugs and quirks==&lt;br /&gt;
===Vanilla content===&lt;br /&gt;
*[https://www.youtube.com/watch?v=0onq6m7oius Infinite loop bug]&lt;br /&gt;
*[https://www.youtube.com/watch?v=qbo2Q-VD6dc Idle animations] &amp;amp; [https://www.youtube.com/watch?v=CRuZq_uYOQk Idle-to-pistol animations], recorded by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=6-ksW1bBBsg Mukade teleportation] by Iritscen&lt;br /&gt;
*Quantum tunnelling AI: [https://www.youtube.com/watch?v=oZZvMldrjlY the original incident], [https://www.youtube.com/watch?v=GC4HLDekxQI the same situation with logging], [https://www.youtube.com/watch?v=mTGv0Tu8z48 the same situation with showlinetochar], and [https://www.youtube.com/watch?v=zQgq8rqhPHA a final proof of the effect] by Iritscen and Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=dszw2vmlmzw Konoko&#039;s secret undress animation], recorded by Loser&lt;br /&gt;
&lt;br /&gt;
===Modding mishaps===&lt;br /&gt;
*[https://www.youtube.com/watch?v=6pAIRSMr9y8 Magic bullet casings] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=WfhKwP7AL64 EdT discovers inside-out cars] by EdT&lt;br /&gt;
&lt;br /&gt;
==Tributes and jokes==&lt;br /&gt;
*[https://www.youtube.com/watch?v=HFwnABhkGHo Oni Dancing] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=_XWmeZYlfEY Oni Police History] by AWPMega&lt;br /&gt;
*[https://www.youtube.com/watch?v=XoE3cBDOAhQ Griffin&#039;s Christmas] by Tantir1 &lt;br /&gt;
*[https://www.youtube.com/watch?v=oOBl_6nDVG4 Come Here] Part I of the 3-part Oni Suite, a ridiculous tribute to Oni&#039;s voice acting by AaronPDX&lt;br /&gt;
*[https://www.youtube.com/watch?v=6v8DpJVusbk Recalibrate!] Part II of the 3-part Oni Suite, a ridiculous tribute to Oni&#039;s voice acting by AaronPDX&lt;br /&gt;
*[https://www.youtube.com/watch?v=H_FZCY-L6uc Oni&#039;s 10th Anniversary in Gmod] by Delano762&lt;br /&gt;
*[https://www.youtube.com/watch?v=ulGF6vCA7T0 Funny Oni] by ShinatamaCarmyKonoko&lt;br /&gt;
*[https://www.youtube.com/watch?v=OtrwzmlhqMo When Enemies Become Allies] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=Hqk8OlFsg7Y Oni Tribute - This is War] by Mukade and myplea&lt;br /&gt;
*[https://www.youtube.com/watch?v=uGugKhK3RI0 Places You Weren&#039;t Supposed To Go] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=8Ts8SGuxbK4 The Only Konoko, The Only Motoko] by vul4ak&lt;br /&gt;
*[https://www.youtube.com/watch?v=1Kj-Dmhu83Y Konoko learns from Gumby] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=3oxfn11kRso Muro pursued] by Gumby&lt;br /&gt;
&lt;br /&gt;
==Parkouring and music videos==&lt;br /&gt;
*[https://www.youtube.com/watch?v=WZdl5hyAA5E Oni parkour music video (Last of the Wilds - Nightwish)] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=hn5SzXaPHrE Oni gameplay music video (Clubbed to Death - Rob Dougan)] by unknown fan&lt;br /&gt;
*[https://www.youtube.com/watch?v=eQaU-I_bgUk Oni gameplay music video (No Tomorrow - Funker Vogt)] by unknown fan&lt;br /&gt;
*[https://www.youtube.com/watch?v=3ILprvjmrF4 Oni gameplay music video (The Thing I Hate - Stabbing Westward)] by vul4ak&lt;br /&gt;
*[https://www.youtube.com/watch?v=Cbvbpulnads Griffin parkouring near TCTF HQ during firefight] by EdT&lt;br /&gt;
&lt;br /&gt;
==Oni in alternate engines==&lt;br /&gt;
*[https://www.youtube.com/watch?v=j0v-hZZ_ofk Oni In Half Life] by Maverick Jey-Kidding&lt;br /&gt;
&lt;br /&gt;
==Oni 2 (Angel Studios)==&lt;br /&gt;
*[https://www.youtube.com/watch?v=ZItobLIJJMY Oni 2: Angel Studio&#039;s Lost Sequel to Bungie&#039;s Cult Classic] documentary by PtoPOnline&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLKywN7NE5TTE2fGdgdhYMs1cAQMD48Q-h Full playthrough] by Iritscen&lt;br /&gt;
&lt;br /&gt;
[[Category:Media]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Casey&amp;diff=37026</id>
		<title>Casey</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Casey&amp;diff=37026"/>
		<updated>2022-04-24T21:09:35Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Casey]] is the name given by the fandom to the enigmatic red-haired man who appears in the [[:Image:Intro_frame_0562.png|intro movie]], and on the fail screens of [[:Image:Act_1_.MISSION_FAILED.png|Act 1]] and [[:Image:Act_2_.MISSION_FAILED.png|Act 2]].&lt;br /&gt;
*[[Hardy LeBel]] [http://carnage.bungie.org/oniforum/oni.forum.pl?read=19649 stated] on the {{OCF}} that he might have been a love interest of [[Konoko]]&#039;s in the storyline 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]] (a.k.a. andrashi), [[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;
*Casey was made into a playable character by [[User:Samer|Samer]], and was given various outfits, custom moves with custom sound, and a custom flying portrait. The mod can be discussed [http://oni.bungie.org/forum/viewtopic.php?id=1262 here]&lt;br /&gt;
[[Image:Casey_v6_5_outfits_1.png|1200px]]&lt;br /&gt;
[[Image:Casey_v6_5_outfits_2.png|1200px]]&lt;br /&gt;
[[Image:Casey_V6_Glow_Portrait.png|600px]]&lt;br /&gt;
*Prior developments of this character are due to Loser (a.k.a. andrashi) and geyser. They weren&#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;
[[Category:Characters]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Casey_V6_Glow_Portrait.png&amp;diff=37025</id>
		<title>File:Casey V6 Glow Portrait.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Casey_V6_Glow_Portrait.png&amp;diff=37025"/>
		<updated>2022-04-24T21:07:31Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Mod screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Mod screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Casey_v6_5_outfits_2.png&amp;diff=37024</id>
		<title>File:Casey v6 5 outfits 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Casey_v6_5_outfits_2.png&amp;diff=37024"/>
		<updated>2022-04-24T21:05:07Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Mod screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Mod screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Casey_v6_5_outfits_1.png&amp;diff=37023</id>
		<title>File:Casey v6 5 outfits 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Casey_v6_5_outfits_1.png&amp;diff=37023"/>
		<updated>2022-04-24T21:03:21Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Mod screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Mod screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:DarkLitria_-_Shini3.png&amp;diff=36904</id>
		<title>File:DarkLitria - Shini3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:DarkLitria_-_Shini3.png&amp;diff=36904"/>
		<updated>2022-03-26T10:37:40Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Shinatama Bot]] Bionic (humane) outfit by DarkLitria&lt;br /&gt;
&lt;br /&gt;
[[Category:Art by DarkLitria]][[Category:Fan art]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Shinatama_Evolved&amp;diff=36903</id>
		<title>Shinatama Evolved</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Shinatama_Evolved&amp;diff=36903"/>
		<updated>2022-03-26T10:34:34Z</updated>

		<summary type="html">&lt;p&gt;Samer: &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://oni.bungie.org/forum/viewtopic.php?id=1240 here]. The second outfit is based on DarkLitria&#039;s [[:Image:DarkLitria - Shini3.png|sketch]].&lt;br /&gt;
&lt;br /&gt;
https://i.imgur.com/X9B9Rwa.png&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Videos&amp;diff=36736</id>
		<title>Videos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Videos&amp;diff=36736"/>
		<updated>2022-03-10T17:33:51Z</updated>

		<summary type="html">&lt;p&gt;Samer: adding new vids&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a collection of links to some of the Oni-related videos posted on YouTube. Also see YouTube&#039;s [https://www.youtube.com/channel/UCa3bHN9Pp4xrzWVtyIPiEZQ/recent Oni - Topic] channel, which automatically collects Oni videos (with some false positives from games/users that have similar names).&lt;br /&gt;
&lt;br /&gt;
==Trailers==&lt;br /&gt;
:&#039;&#039;See [[Trailers]] for details on the Bungie trailers.&#039;&#039;&lt;br /&gt;
*[https://www.youtube.com/watch?v=ANQWWqECzI8 Bungie West&#039;s 1998 trailer]&lt;br /&gt;
*[https://www.youtube.com/watch?v=YLZ2hJZvrmo Bungie&#039;s 1999 trailer] &lt;br /&gt;
*[https://www.youtube.com/watch?v=kCUJmY7EZeo Oni trailer from Fall 2000 GoD Bonus CD]&lt;br /&gt;
*[https://www.youtube.com/watch?v=OmNtNzROvug Rockstar trailer]&lt;br /&gt;
*[https://www.youtube.com/watch?v=_cv8X2hc8YE Japanese trailer]&lt;br /&gt;
&lt;br /&gt;
==Early footage==&lt;br /&gt;
*[https://www.youtube.com/watch?v=3vKJAZZWIxI Multiplayer at E3, May 1999]&lt;br /&gt;
*Multiplayer at Macworld NY, July 1999: [https://www.youtube.com/watch?v=iiBE8N1auuo], [https://www.youtube.com/watch?v=Z3u76geVaio]&lt;br /&gt;
*[https://www.youtube.com/watch?v=HOmKXhZJ3b8 Multiplayer at Macworld SF, Jan. 2000]&lt;br /&gt;
*Multiplayer at E3, May 2000: [https://www.youtube.com/watch?v=yFQNu-r4TOc], [https://www.youtube.com/watch?v=Sc8crcxjfgM], [https://www.youtube.com/watch?v=8Wp3xqAD4xw]&lt;br /&gt;
*[https://www.youtube.com/watch?v=xMJMQdkK9fs Electric Playground S4E7] (E3 coverage with brief Michael Evans interview from 03&#039;47&amp;quot;–03&#039;58&amp;quot;)&lt;br /&gt;
*[https://www.youtube.com/watch?v=-FmGO67Q_vg Electric Playground S4E10] (Oni is featured from 00&#039;26&amp;quot;–03&#039;10&amp;quot;)&lt;br /&gt;
*[https://www.youtube.com/watch?v=TaRjTYbUFNY Oni teaser at Macworld NY, July 2000]&lt;br /&gt;
*[https://www.youtube.com/watch?v=SO3JUw1dx3A Pre-beta PS2 footage]&lt;br /&gt;
&lt;br /&gt;
==Documentaries and reviews==&lt;br /&gt;
*[https://www.youtube.com/watch?v=Yg1mfEvfq_k Oni - Trash or Treasure] by Block&#039;s Gaming Reviews*&lt;br /&gt;
*[https://www.youtube.com/watch?v=RJO4OB8xdQg Oni: The Other Bungie Game] by Critical Nobody&lt;br /&gt;
*[https://www.youtube.com/watch?v=jbrPu15jjPs Demon: The Untold Story of Bungie’s Forgotten Franchise] by CryMor Gaming&lt;br /&gt;
*[https://www.youtube.com/watch?v=jNgG8RSHNa8 Oni - Analytical Overview] by EonKool&lt;br /&gt;
*[https://www.youtube.com/watch?v=VOawPhCG2dU Gaming History: Oni &amp;quot;The other Best Game Bungie ever made&amp;quot;] by GaminGHD&lt;br /&gt;
*[https://www.youtube.com/watch?v=ggC6kfJJE_w Oni Review (Bungie&#039;s Forgotten Game)] by GmanLives&lt;br /&gt;
*[https://www.youtube.com/watch?v=_LRyxtXkPng Oni: The best Bungie game and its seven-years-late mod scene] by Joe Wintergreen&lt;br /&gt;
*[https://www.youtube.com/watch?v=7btzVHh_iXQ Review: Oni] by Nick H&lt;br /&gt;
*[https://www.youtube.com/watch?v=Ox6r7aJSRdU Top 10 Forgotten Video Games from Great Developers] by WatchMojo (Oni is #2)&lt;br /&gt;
*[https://www.youtube.com/watch?v=6hfFUlraIKQ Oni - Unlikely Review] by Yuusha*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;These reviews are of the PS2 version, and consequently much more negative.&lt;br /&gt;
&lt;br /&gt;
==Intro and outro==&lt;br /&gt;
*[https://www.youtube.com/watch?v=du8JepLM-lI Oni Intro]&lt;br /&gt;
*[https://www.youtube.com/watch?v=Od1ReWIxduo Oni Outro]&lt;br /&gt;
&lt;br /&gt;
==Gameplay==&lt;br /&gt;
*[https://www.youtube.com/watch?v=CDuQHITARk4 Some of Oni&#039;s Secrets and Easter Eggs] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=r06Q_hEhCg4 Science Prison Lasers] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=sSOLSh_aCC8 Grenade Jumping] by loveOni shows how to get to those snipers in Chapter 14 using an SBG&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLFa3CejQbQ2IAihiuD58DLPUraoSccuOt Oni AE Full Levels Gameplay (using several mods)] by Tracker&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLFasmrd0ZfRm80eHfK3g_eDAXJWb0PM5I Oni Let&#039;s Play (using Brutal AI, SMP-Conversion, and other mods)] by tens&lt;br /&gt;
*[https://www.youtube.com/watch?v=N5dU4IdKlXQ Chasing Mukade] by Loser&lt;br /&gt;
&lt;br /&gt;
==Mods==&lt;br /&gt;
===Anniversary Edition===&lt;br /&gt;
*[https://www.youtube.com/watch?v=Il46o_ahOds&amp;amp;list=FLtTcOh2t7wRZ5rXzMmWt6xA&amp;amp;index=4 Russian Video showcasing many of the AE mods] by mainfram812&lt;br /&gt;
*[https://youtube.com/playlist?list=PL_MVvdrljWSR6pnE6zcIByVoasbDBugT0 Oni Playlist featuring many videos using the AE and different level and character mods] by John Thunder&lt;br /&gt;
&lt;br /&gt;
===Characters===&lt;br /&gt;
*[https://www.youtube.com/watch?v=Sntev0Gj5Ds Custom Character Casey version 4 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=RbfE6k2ulW4 Custom Character Motoko version 3.5 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=ldVEmOV839U Custom Character BGI Sarai demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=KYgNmpLED5M Custom Character Hayate version 2.1 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=Ci44KaCq7UY Custom Characters Jester &amp;amp; Co. demonstrating all moves and combos] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=5R8zuI5-EHw Custom Character Kojiro version 2.2 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=9VlUBaQWuXg Custom Character BGI Hammer demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=YtRac64hu6Q Custom Character Rayman Showcase] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=NSfeb4xv7p8 Konoko vs. AI Rayman] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=4-P82ctyS2E Guard Dogs preview] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=iLl9FAoujIs Sentry Droid preview] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=yhkTFgEyj28 The Iron Demon Lives] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=5whksLNIVmA Iron Demon walking] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=I4OCptczD0Q Iron Demon explosion effect] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=d2opg2DIGwk Golden TCTF vs. Regenerating Tanker] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=MmurRBUbW-U Clash of Titans - BGI Hammer vs. Barabas] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=M0ugC6fV-6o Hayate vs. Jester, Casey vs. Hayate, Jester vs. Jubei &amp;amp; Akane] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=w-5c5lHjCGA Akane vs. Grey Fury, Jubei vs. Kojiro] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=o7NvGBsT-gI Casey combo video in Oni Zen Garden] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=vR7Z0Wcuuso Akane combo video in Oni Zen Garden] by Mukade&lt;br /&gt;
*[https://www.youtube.com/watch?v=yD6Ai8uufJI Altered Barabas Boss Fight] by Loser (Mod can be found in EdT&#039;s Boss Battle Level)&lt;br /&gt;
*[https://www.youtube.com/watch?v=QaBDJk9KrNs Barabas New Regeneration] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=ASyyzfIc3D0 Shinibot &amp;amp; Hanako vs. Smart Barabas] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=WQZSY8cmj9k Kojiro &amp;amp; Casey vs. Smart Barabas] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=kbA4JvcBZFQ Konoko vs. Smart Barabas] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=-4Dt_7AmdK0 Konoko vs. Smart Barabas with Jumpable Earthquaker package] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=LNUcS_mtHpA Jubei pathfinds] by Gumby &amp;amp; geyser&lt;br /&gt;
*[https://www.youtube.com/watch?v=EZ3bai7BhR4 Shapeshifting Montage] by Paradox&lt;br /&gt;
&lt;br /&gt;
===Levels===&lt;br /&gt;
*[https://www.youtube.com/watch?v=dtmPmt6YqEE Oni goes to a new Level] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=DyOIcie7VGk Omega Tournament Level Preview] by Script10k&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLZQupCr62BGlWdKfx6QV-jArcjDgU64Fs Wilderness Preserve Level Full Walkthrough] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=MArbspInwiM SamMegaPack-Fight Club Level Preview] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=hg_7FMlyo9M China Level Mod Final Battle] by Script10k&lt;br /&gt;
*[https://www.youtube.com/watch?v=CChvV7GTi28 Hanako vs. Hayate and Mukade in China Level Mod] &amp;amp; [https://www.youtube.com/watch?v=CChvV7GTi28 Hanako in Final Battle of China Level] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=WZ26KJ46CzE Fight Over the Junkyard] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=Wv1IG6QXTMs Oni Custom Characters Good vs. Bad in Junkyard Level] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=iKXw5jt3vSE EdT&#039;s City Level Parkour Challenge] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=QwRzyBGK1yk Oni Tomb Raider Style] showcasing EdT&#039;s Parkour Challenge 1 Level by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=PR_0gddHkNA Parkour Challenge 2 Run] by Tracker&lt;br /&gt;
*[https://www.youtube.com/watch?v=GUR66F9rISE SamMegaPack-Conversion Preview] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=wwqQHXvCgeQ SamMegaPack-Conversion Final Battle Spared Griffin Version] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=e97TCEPhjK0 SamMegaPack-Conversion Final Battle Killed Griffin Version] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=Bs8rdGyEpog SamMegaPack-Conversion Dream Lab Preview] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=oHCnoThNL2c SamMegaPack-Conversion Skull Team (renamed to Saisei Team) Fights Preview]&lt;br /&gt;
*[https://www.youtube.com/watch?v=tE3ZfKzZnOM SamMegaPack-Conversion Atmospheric Interior, Konoko vs Grey Fury] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=MIhyHi-C2dY Motoko in Leus&#039; Crazy Casey Mod] by Shella45&lt;br /&gt;
*[https://www.youtube.com/watch?v=5PClAPTum8w Leus&#039; Crazy Casey Mod in reverse] by kaargen&lt;br /&gt;
&lt;br /&gt;
===Weapons===&lt;br /&gt;
*[https://www.youtube.com/watch?v=9kJF7HSJl04 New Weapons Collection preview] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=vrvQjvV0OUA Sniper Mode] by Paradox, demoed by EdT&lt;br /&gt;
*Fun with TK Bracelet: [https://www.youtube.com/watch?v=3dE65ZViFl0], [https://www.youtube.com/watch?v=uptSCVabiBY], [https://www.youtube.com/watch?v=OBWUfHlND9Y] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=1WuMd_fhWbo Phaser rifle demo] by ONIrules&lt;br /&gt;
&lt;br /&gt;
===Animations===&lt;br /&gt;
*[https://www.youtube.com/watch?v=tE1xO5K3hi8 New combat Moves for Konoko] showcases new move types like Just Frames and Delayed Animations by Delano762&lt;br /&gt;
*[https://www.youtube.com/watch?v=Sbz-3pauSlM Ninja Shadow Dash mod] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=PzMx6SED9gA Prone Mode Revisited] by Paradox&lt;br /&gt;
*[https://www.youtube.com/watch?v=hpmqiel9vfQ Barabas using jetpack in Airport Cargo Hangars] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=aiN8vmEtvv8 Disarm Revamp demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=BYYm5AAdpjs Domino Knockdowns demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=aIbQ1B4pSfM Hit_jewels for females demo] by Loser&lt;br /&gt;
*Head2Wall system: [https://www.youtube.com/watch?v=VUM8T06dcn8], [https://www.youtube.com/watch?v=K9c4l8TpTB8], [https://www.youtube.com/watch?v=dCRGTgeFms0]&lt;br /&gt;
&lt;br /&gt;
===Vehicles===&lt;br /&gt;
*[https://www.youtube.com/watch?v=5tK9VwQrcp4 Lamborghini Countach rams TCTF HQ] by Iritscen&lt;br /&gt;
&lt;br /&gt;
===Other mods===&lt;br /&gt;
*Flatline multiplayer footage: [https://www.youtube.com/watch?v=WZnbVGSyRJU Gumby vs. oxe161], [https://www.youtube.com/watch?v=GMeWr11QVjU Gumby vs. Phydur]&lt;br /&gt;
*[https://www.youtube.com/watch?v=aEuAu7jLQQI Projectile dodging patch for AI]&lt;br /&gt;
*[https://www.youtube.com/watch?v=RjGgk6SqdeQ Things that go boom] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=fec1-bgfCxE Japanese Language Pack special attacks preview] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=bib24bRXuhQ Hidden Treasure Challenge] by Samer&lt;br /&gt;
*Good vs. Evil 2.0: [https://www.youtube.com/watch?v=CKhHaG_t0eg video 1], [https://www.youtube.com/watch?v=lzB0I-eeO9o video 2], [https://www.youtube.com/watch?v=dcuF1ABj9D0 video 3] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=gOHCg8KZM4A Burly Brawl v0.1] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=zacLylPPTFk Every man for himself on ACC pillar] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=-6I78-N_2Yo Fighting Multiple Mukades is Hard] scripted by Loser, demoed by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=TQ8n1oIUW-I Three-Dee Shells vs. Original Shells] by Loser and Iritscen&lt;br /&gt;
&lt;br /&gt;
===Concepts===&lt;br /&gt;
*[https://www.youtube.com/watch?v=GFbamj63z8Y AI pathfinding in new level] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=Yj3ptZnZtx0 AI pathfinding on uneven ground] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=Em6wa5JTQNM Hiding parts of the environment] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=iY0eKukGhrM AI Crate jumping] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=2RU6asmmrik New animations - Motoko the cheerleader] by EdT&lt;br /&gt;
*Playing with moveable objects: [https://www.youtube.com/watch?v=Te9yKA4UR18 cubes], [https://www.youtube.com/watch?v=LUmmLTjSaqQ spheres] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=YICB7qugrtc Moveable furniture] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=ogT1QUblCxc Deadly Van de Graaff Pistol] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=16LqQCPvo2Q Gumby&#039;s Death Ray 1] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=bHOMtGDKGSk Gumby&#039;s Death Ray 2] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=qccsevDKve0 Dynamic shadow test] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=WzMkNXtfefA Stenciling test] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=VHr7g94sBzE Konoko Regeneration] by Paradox&lt;br /&gt;
*[https://www.youtube.com/watch?v=_-o4hMQQU7k AI can intercept player] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=eXL9o49I_g0 AI can use Twister Kick and Willow Kick] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=CkzguNxjGEs AI Konoko plays Chapter 1 of Oni] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=6oTbT6qkcg0 AI has sense of touch, can recognize fallen allies] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=pORGOquI_XE Alarm logic demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=Zgg0fsTs1DU Counter-attack based on Willow Kick] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=_n-8SwG_DJk Faster thrower recovery] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=ESR_6bgl1dA Female kneegrab demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=ywk_A6bNHpY Multi-hit Striker Slam] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=NQE-LjM9GqM Mukade&#039;s Glory] by Loser (the famous pathfinding Mukade video)&lt;br /&gt;
*[https://www.youtube.com/watch?v=nlzTajiyl24 Forward knockdown test] by Loser&lt;br /&gt;
*Active blocking demos: [https://www.youtube.com/watch?v=EGTwej4nQTM Using timed press of block key], [https://www.youtube.com/watch?v=IKsPMGSomi8 Holding block key] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=_7dDjiMnUlw Revised melee collision reactions demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=zPNINENGLDc Sword animation candidates] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=hlQ_JLUI4BA Stun-to-throw demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=LXiK6rzfMSU Throw-canceling demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=8ajDTkYPuuM Vulnerable throw victims demo] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=lMGpDFNO9m8 Successful railing throws] by Loser&lt;br /&gt;
&lt;br /&gt;
==Modding tutorials==&lt;br /&gt;
*[https://www.youtube.com/watch?v=7fQacrVVQLc&amp;amp;list=PLBKEEq8F3prAbbGk6VJkjfLMuMnb-e_gu Creating a Custom Oni Level: Tutorial on building the Omega Tournament Level] by Script10k&lt;br /&gt;
*Paradox&#039;s Mod Tool tutorials: [https://www.youtube.com/watch?v=CFNseg_2UxA A simple animated object], [https://www.youtube.com/watch?v=w1hLbZPwd2Q Camera interpolation and animation], [https://www.youtube.com/watch?v=yYHaltepyNI CRSA import], [https://www.youtube.com/watch?v=oCo2u8XxVd0 Merging character objects, no FBX required]&lt;br /&gt;
*[https://www.youtube.com/watch?v=vDTPYfvMf4M Creating forward throws for Oni with the help of Excel] by Paradox&lt;br /&gt;
&lt;br /&gt;
==Bugs and quirks==&lt;br /&gt;
===Vanilla content===&lt;br /&gt;
*[https://www.youtube.com/watch?v=0onq6m7oius Infinite loop bug]&lt;br /&gt;
*[https://www.youtube.com/watch?v=qbo2Q-VD6dc Idle animations] &amp;amp; [https://www.youtube.com/watch?v=CRuZq_uYOQk Idle-to-pistol animations], recorded by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=6-ksW1bBBsg Mukade teleportation] by Iritscen&lt;br /&gt;
*Quantum tunnelling AI: [https://www.youtube.com/watch?v=oZZvMldrjlY the original incident], [https://www.youtube.com/watch?v=GC4HLDekxQI the same situation with logging], [https://www.youtube.com/watch?v=mTGv0Tu8z48 the same situation with showlinetochar], and [https://www.youtube.com/watch?v=zQgq8rqhPHA a final proof of the effect] by Iritscen and Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=dszw2vmlmzw Konoko&#039;s secret undress animation], recorded by Loser&lt;br /&gt;
&lt;br /&gt;
===Modding mishaps===&lt;br /&gt;
*[https://www.youtube.com/watch?v=6pAIRSMr9y8 Magic bullet casings] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=WfhKwP7AL64 EdT discovers inside-out cars] by EdT&lt;br /&gt;
&lt;br /&gt;
==Tributes and jokes==&lt;br /&gt;
*[https://www.youtube.com/watch?v=HFwnABhkGHo Oni Dancing] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=_XWmeZYlfEY Oni Police History] by AWPMega&lt;br /&gt;
*[https://www.youtube.com/watch?v=XoE3cBDOAhQ Griffin&#039;s Christmas] by Tantir1 &lt;br /&gt;
*[https://www.youtube.com/watch?v=oOBl_6nDVG4 Come Here] Part I of the 3-part Oni Suite, a ridiculous tribute to Oni&#039;s voice acting by AaronPDX&lt;br /&gt;
*[https://www.youtube.com/watch?v=6v8DpJVusbk Recalibrate!] Part II of the 3-part Oni Suite, a ridiculous tribute to Oni&#039;s voice acting by AaronPDX&lt;br /&gt;
*[https://www.youtube.com/watch?v=H_FZCY-L6uc Oni&#039;s 10th Anniversary in Gmod] by Delano762&lt;br /&gt;
*[https://www.youtube.com/watch?v=ulGF6vCA7T0 Funny Oni] by ShinatamaCarmyKonoko&lt;br /&gt;
*[https://www.youtube.com/watch?v=OtrwzmlhqMo When Enemies Become Allies] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=Hqk8OlFsg7Y Oni Tribute - This is War] by Mukade and myplea&lt;br /&gt;
*[https://www.youtube.com/watch?v=uGugKhK3RI0 Places You Weren&#039;t Supposed To Go] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=8Ts8SGuxbK4 The Only Konoko, The Only Motoko] by vul4ak&lt;br /&gt;
*[https://www.youtube.com/watch?v=1Kj-Dmhu83Y Konoko learns from Gumby] by Gumby&lt;br /&gt;
*[https://www.youtube.com/watch?v=3oxfn11kRso Muro pursued] by Gumby&lt;br /&gt;
&lt;br /&gt;
==Parkouring and music videos==&lt;br /&gt;
*[https://www.youtube.com/watch?v=WZdl5hyAA5E Oni parkour music video (Last of the Wilds - Nightwish)] by Loser&lt;br /&gt;
*[https://www.youtube.com/watch?v=hn5SzXaPHrE Oni gameplay music video (Clubbed to Death - Rob Dougan)] by unknown fan&lt;br /&gt;
*[https://www.youtube.com/watch?v=eQaU-I_bgUk Oni gameplay music video (No Tomorrow - Funker Vogt)] by unknown fan&lt;br /&gt;
*[https://www.youtube.com/watch?v=3ILprvjmrF4 Oni gameplay music video (The Thing I Hate - Stabbing Westward)] by vul4ak&lt;br /&gt;
*[https://www.youtube.com/watch?v=Cbvbpulnads Griffin parkouring near TCTF HQ during firefight] by EdT&lt;br /&gt;
&lt;br /&gt;
==Oni in alternate engines==&lt;br /&gt;
*[https://www.youtube.com/watch?v=j0v-hZZ_ofk Oni In Half Life] by Maverick Jey-Kidding&lt;br /&gt;
&lt;br /&gt;
==Oni 2 (Angel Studios)==&lt;br /&gt;
*[https://www.youtube.com/watch?v=ZItobLIJJMY Oni 2: Angel Studio&#039;s Lost Sequel to Bungie&#039;s Cult Classic] documentary by PtoPOnline&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLKywN7NE5TTE2fGdgdhYMs1cAQMD48Q-h Full playthrough] by Iritscen&lt;br /&gt;
&lt;br /&gt;
[[Category:Media]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Casey&amp;diff=29983</id>
		<title>Casey</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Casey&amp;diff=29983"/>
		<updated>2020-07-01T14:52:51Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Casey]] is the name given by the fandom to the enigmatic red-haired man who appears in the [[:Image:Intro_frame_0562.png|intro movie]], and on the fail screens of [[:Image:Act_1_.MISSION_FAILED.png|Act 1]] and [[:Image:Act_2_.MISSION_FAILED.png|Act 2]].&lt;br /&gt;
*[[Hardy LeBel]] [http://carnage.bungie.org/oniforum/oni.forum.pl?read=19649 stated] on the {{OCF}} that he might have been a love interest of [[Konoko]]&#039;s in the storyline 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]] (a.k.a. andrashi), [[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;
*Casey was made into a playable character by [[User:Samer|Samer]], and was given various outfits, custom moves with custom sound, and a custom flying portrait. The mod can be discussed [http://oni.bungie.org/community/forum/viewtopic.php?id=1262 here]&lt;br /&gt;
[[File:Casey mod outfits.png|1200px]]&lt;br /&gt;
*Prior developments of this character are due to Loser (a.k.a. andrashi) and geyser. They weren&#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;
[[Category:Characters]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Casey&amp;diff=29982</id>
		<title>Casey</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Casey&amp;diff=29982"/>
		<updated>2020-07-01T14:52:01Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Casey]] is the name given by the fandom to the enigmatic red-haired man who appears in the [[:Image:Intro_frame_0562.png|intro movie]], and on the fail screens of [[:Image:Act_1_.MISSION_FAILED.png|Act 1]] and [[:Image:Act_2_.MISSION_FAILED.png|Act 2]].&lt;br /&gt;
*[[Hardy LeBel]] [http://carnage.bungie.org/oniforum/oni.forum.pl?read=19649 stated] on the {{OCF}} that he might have been a love interest of [[Konoko]]&#039;s in the storyline 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]] (a.k.a. andrashi), [[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;
*Casey was made into a playable character by [[User:Samer|Samer]], and was given custom moves and various outfits. The mod can be discussed [http://oni.bungie.org/community/forum/viewtopic.php?id=1262 here]&lt;br /&gt;
[[File:Casey mod outfits.png|1200px]]&lt;br /&gt;
*Prior developments of this character are due to Loser (a.k.a. andrashi) and geyser. They weren&#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;
[[Category:Characters]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Casey_mod_outfits.png&amp;diff=29981</id>
		<title>File:Casey mod outfits.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Casey_mod_outfits.png&amp;diff=29981"/>
		<updated>2020-07-01T14:48:38Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Modding screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Modding screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:TRAM&amp;diff=29963</id>
		<title>XML:TRAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:TRAM&amp;diff=29963"/>
		<updated>2020-06-28T15:45:31Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_File_Header | type=TRAM | prev=TRAC | next=TRAS | name=Totoro Animation }}&lt;br /&gt;
&lt;br /&gt;
{{TOCfloat|side=right}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TRAM files - animation data for characters - are basically made of three chunks.&lt;br /&gt;
&lt;br /&gt;
* Meta data or &amp;quot;header&amp;quot;: animation type, state, flags, particle, sounds, etc.&lt;br /&gt;
* Animation data: pelvis heights, pelvis velocities, bone rotations&lt;br /&gt;
* Attack data: damage, self-damage, extends (danger zones for AI awareness) and throws&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;
&lt;br /&gt;
&lt;br /&gt;
===Decision path of animation lookup===&lt;br /&gt;
* At 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 child TRAC override those of the parent if their combination of state, type and variant is excatly the same.&lt;br /&gt;
* On the other hand child TRAC often miss some anims. For example elite striker don&#039;t have their own run anims, they must and will use the parent anims of normal strikers. The game was here designed to save resources. See [[XML:TRAC|TRAC]] page for details.&lt;br /&gt;
* A character possesses always one 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 played at a given moment.&lt;br /&gt;
* It follows the full decision path:&lt;br /&gt;
** anim &#039;&#039;&#039;state&#039;&#039;&#039; check&lt;br /&gt;
** event (user input / engine input for 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;
One detailed example:&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say we shapeshifted to an ninja ONCC, are in state Standing and hit the action key for taunt.&lt;br /&gt;
&lt;br /&gt;
The engine recognizes the context (an hostile character to interact with) and looks up anims of type Taunt.&lt;br /&gt;
&lt;br /&gt;
Since we are in combat mode the following anim must be of variant Combat if possible.&lt;br /&gt;
&lt;br /&gt;
Those lookups all boile down to two valid anims, NINCOMtaunt1 and NINCOMtaunt2.&lt;br /&gt;
&lt;br /&gt;
If there are multiple anims avaible at this point the engine has to pick 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 is just 5.&lt;br /&gt;
&lt;br /&gt;
Chances are quite high we will not see the Moon Walk taunt.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that if the engine cannot find an anim of a specific variant it will fall back to use the non-variant anim instead.&lt;br /&gt;
&lt;br /&gt;
Confused how Weights work? Apparently, that Weight value is only one part of the equation - otherwise NINCOMtaunt2 would never execute.&lt;br /&gt;
&lt;br /&gt;
If there is only one anim to chose from, it will always play no matter what Weight, even if it is zero.&lt;br /&gt;
&lt;br /&gt;
As for multiple anim being a valid choice the calculation seems to be this for an individual anim: weight / sum of all weight.&lt;br /&gt;
&lt;br /&gt;
For NINCOMtaunt2 it means 5 / 105 = 0,047 (4,7%).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of tags, types, and flags===&lt;br /&gt;
Use the search function of your web 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]]. Pool of valid TRAM (animations a character can chose from) is build from TRAC files registered in ONCC. Most of the anim types are associated with 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]]. Pool of valid TRAM, and therefor TRAS, (animations a character can chose from) is build from TRSC files registered in 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, tag will be simply &amp;quot;&amp;lt;Varient /&amp;gt;&amp;quot;, such as for non-combat animations. Otherwise 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.&lt;br /&gt;
&lt;br /&gt;
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 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 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 8 frames long; 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 with rotations are less noticeable, interpolations of different positions can cause an additional drift (i.e. sliding).&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 start and end. By default, animations without specified Shortcut interpolation give about 8 frames of interpolation. For moves starting or ending in idle better don&#039;t use interpolation. Just let the start and end frames have same positions and rotation values as the idle. Interpolations should always be considered as &#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 single 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 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;
|&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. Damage from particles and fall damage still hurt.&lt;br /&gt;
:BlockHigh&lt;br /&gt;
::While playing this animation, the player is invulnerable to high or undefined attacks within some arc in front of him. 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 attacks.&lt;br /&gt;
:Attack&lt;br /&gt;
::Animations with an attack part have this turned on. Uncertain what it does, but it may enable the melee soft-lock (where the character turns a bit during the animation to face a nearby enemy).&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;
::Something to do with jumps; not investigated.&lt;br /&gt;
:Atomic&lt;br /&gt;
::The whole animation must be played; player cannot interrupt it once it starts.&lt;br /&gt;
:NoTurn&lt;br /&gt;
:::Player cannot turn by mouse while performing this animation.&lt;br /&gt;
:AttackForward&lt;br /&gt;
::Unknown, but it looks like this is rough info for the AI about where an attack is aiming, from the player&#039;s point of view.&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;
::Unknown, but throws use it.&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 the hurt 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;
::It appears this flag was used 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 them 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;
::Unknown.&lt;br /&gt;
:DisableShield&lt;br /&gt;
::If the player has an active supershield (chr_super &amp;quot;name&amp;quot; 1), this forces him to disable it (chr_super &amp;quot;name&amp;quot; 0)&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;
| &amp;lt;!--Makes animation partical atomic?--&amp;gt;&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 damge during a timeframe defined by 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;
| &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;
| Player cannot make new inputs during this pause unless this animation is followed by a followup 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;
Combos ignore &amp;lt;Interpolation&amp;gt;&amp;lt;End&amp;gt;.&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)&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 accelerationsat start and end. By default, animations without specified Shortcut interpolation give about 8 frames of interpolation. For moves starting or ending in idle better don&#039;t use interpolation. Just let the start and end frames have same positions and rotation values as the idle. Interpolations should always be considered as &#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 animation the camera is detached rotation-wise. If this value matches the body&#039;s final rotation it will prevent a &#039;glitchy&#039; 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;
|&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|SoundConstances in ONCC]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ActionFrame&amp;gt;&lt;br /&gt;
| int&lt;br /&gt;
| Frame number for spacial events associated with this animation: weapon theft in disarms, weapon holster, Mukade actually teleporting, items getting handed over to player. &amp;quot;Give me that hypo!&amp;quot; Yada yada.&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 number exceeds frame count of animation the particle will simply die with end of 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;
|&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;Lifetime&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Alpha&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Interval&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
|&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 only the change of 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 those 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 (also with chr_debug_sphere = 1 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:&lt;br /&gt;
*X - Side axis. Negative values move the target to the right, positive values move the target to the left.&lt;br /&gt;
*Y - Height axis. Negative values move the target downwards, but in case of collision due to too low negative value, it will not make the target go below the surface. Positive values make the target go upwards - if the value is too big, the target will teleport above, and then immediately start falling, interrupting the target animation.&lt;br /&gt;
*Z - Forward axis. Negative values move the target backwards, positive values move the target forward.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&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 parent TRAC.&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; can also be 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;
| &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 overlapping, then the target can be [http://oni.bungie.org/community/forum/viewtopic.php?pid=39787#p39787 hit by both of them].&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;
|&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 Low and High are set then blocker can block from both standing and crouching positions.&lt;br /&gt;
: HalfDamage - Blocker 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 &amp;quot;knockback&amp;quot;ed by this amount.&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 for how long the target should remain in his &amp;quot;hit&amp;quot; animation state when he gets hit.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StunLength&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Number in frames for how long the target should remain in his blocking animation 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 for how long the target should perform his &amp;quot;stagger&amp;quot; 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 XML.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Extent&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| One tag per frame.&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 so that the AI has a chance to dodge an attack.&lt;br /&gt;
|}&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;
When you start &#039;&#039;&#039;[[Vago_(tool)|Vago]]&#039;&#039;&#039;, the &amp;quot;General&amp;quot; tab should be open by default. If not, click on it. Then follow these five easy steps.&lt;br /&gt;
&amp;lt;!-- General tab should be step 1 but i&#039;ve already another img. If Vago gets updated I will upload a better img. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; Select &amp;quot;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&amp;quot; as output format (&amp;quot;To&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3:&#039;&#039;&#039; Check &amp;quot;Another TRAM&amp;quot; to chose a character animation file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4:&#039;&#039;&#039; Click &amp;quot;Add&amp;quot; button to choose an ONCC file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5:&#039;&#039;&#039; Click &amp;quot;Convert&amp;quot;.&lt;br /&gt;
&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?] 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 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;
&lt;br /&gt;
===Editing 3D data===&lt;br /&gt;
====XSI====&lt;br /&gt;
You can load the DAE file into a compatible editor. So far, the community&#039;s favorite is {{ModTool}}.&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 is also intended for the animations. This makes sure the pelvis height will match and feet will not float in the air or go through the ground. &lt;br /&gt;
* First frame and last frame 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 been 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 [[wikipedia:Gimbal_lock|gimbal lock]].&lt;br /&gt;
&lt;br /&gt;
See also our [http://oni.bungie.org/forum/viewtopic.php?id=1433 OCF thread].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Blender====&lt;br /&gt;
Theoretical possible. Very difficult in practice and we don&#039;t have a tutorial on this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Import===&lt;br /&gt;
 onisplit -create output_path path_to\TRAMname.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional details==&lt;br /&gt;
&lt;br /&gt;
===Existing TRAMS===&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;
===Speeding up existing animations===&lt;br /&gt;
s10k has created a XmlTools patch that allow the speedup of any existing TRAM (by removing frames). More information and download [http://mods.oni2.net/node/354 here.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Attacks===&lt;br /&gt;
====Extents and XML====&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; minimal 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 (again, see the MELE page).&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 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 one = 9 &amp;lt;Extent&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
:These extents are pretty impossible to guess, so leave them alone until Neo comes up with extent computation (probably from attack bones and bone rotations). However, always add at least one set of component tags, because those Length, MinY and MaxY components will be taken as the longest extent, the highest Y value, and the lowest Y value. Without those, a character won&#039;t react to this attack.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&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;
&lt;br /&gt;
====Adding extents to an existing animation====&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 representative size for 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;
&lt;br /&gt;
===Combos===&lt;br /&gt;
The type and order of keystroke or mouse clicks for combos is hardcoded.&lt;br /&gt;
&lt;br /&gt;
To assign an animation for a specific combo attack you set corresponding value in &amp;lt;Lookup&amp;gt;&amp;lt;Type&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting a value in &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 for player input, meaning the next animation can be executed more easily. (In vanilla 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;
&lt;br /&gt;
===Just Frame combos===&lt;br /&gt;
For short &#039;&#039;&#039;JF combos&#039;&#039;&#039; or &#039;&#039;&#039;JF anims&#039;&#039;&#039;. Created by Delano, inspired by the game series Tekken.&lt;br /&gt;
&lt;br /&gt;
JF means you have to press certain keys (w + k or w + p) at the exact time, which is more difficult than it might sound.&lt;br /&gt;
&lt;br /&gt;
Package 54000 has basically a collection of new state cycles.&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
===Throws===&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, removing the need to have that animation in the target&#039;s TRAC. Throw target (TRAM*tgt) animations can cover only up to 256 (0-255) frames.&lt;br /&gt;
&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;
&lt;br /&gt;
=====Excel macro=====&lt;br /&gt;
Needs update.&lt;br /&gt;
&lt;br /&gt;
[[Image:Animation_macro_v4.png|right|thumb]]&lt;br /&gt;
* [http://dl.dropbox.com/u/139715/OniGalore/TRAM_macro.zip Here&#039;s the macro] (for all TRAMs except overlays). [http://youtu.be/wxzJ8ahjP8k Demo vid here]. Usage:&lt;br /&gt;
* Put your files into the &amp;quot;input_and_output&amp;quot; folder.&lt;br /&gt;
* Disable macro security if you don&#039;t want to have to click on the macro options button every time.&lt;br /&gt;
* Close other worksheets before you run the macro.&lt;br /&gt;
* If you are not afraid of VBA code, you can enter the dev environment by hitting Alt+F11. If you want to extend the attack library with more screenshots and settings, search for: &amp;quot;LibraryThrows&amp;quot;, &amp;quot; LibraryAttack&amp;quot;, &amp;quot;Picture&amp;quot;, and &amp;quot;CBAttackHelp.AddItem&amp;quot;.&lt;br /&gt;
&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;
&lt;br /&gt;
===List of unused animations===&lt;br /&gt;
Here are all the known unused animations. These could be reintegrated/recycled/whatever....&lt;br /&gt;
&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 was placing something (bomb?) and then running away&lt;br /&gt;
* 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 scripts (mod) as spawn event, and by custom made character [[Shinatama Bot]]&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;
* 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: Striker checking his his gun and communicating with an ally (another unused alertness animation)&lt;br /&gt;
* THUGlev1_direct: Thug probably directing a truck driver&lt;br /&gt;
&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|charA and charB 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;
&lt;br /&gt;
===FX - special effects===&lt;br /&gt;
If the scene is overloaded by particle - including motion blur - these effects will stop to be rendered.&lt;br /&gt;
&lt;br /&gt;
So, don&#039;t overuse effects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Adding colorful 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;
&lt;br /&gt;
====Motion blur====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:BFW_Scripting_Language&amp;diff=29958</id>
		<title>BSL:BFW Scripting Language</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:BFW_Scripting_Language&amp;diff=29958"/>
		<updated>2020-06-28T04:38:52Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[Modding_Oni#Introduction_to_the_Oni_engine|BFW]] Scripting Language&#039;&#039;&#039; (simply called &#039;&#039;&#039;BSL&#039;&#039;&#039;) is what Oni scripts are written in. Being a scripting language, it is far more limited in scope and usage than a &amp;quot;real&amp;quot; programming language, as it was designed only to move events forward in the game, not to build programs. More specifically, BSL scripts are responsible for managing the player&#039;s objectives, directing AIs, creating environmental effects, and driving cutscenes.&lt;br /&gt;
&lt;br /&gt;
Physically speaking, they are the .bsl files inside the [[IGMD|Oni/GameDataFolder/IGMD/]] folder. Being in plain-text, scripts can be edited with any word-processing program, such as the built-in Notepad (Windows) or TextEdit (Mac); the only requirement is that you must use the suffix &amp;quot;.bsl&amp;quot; for scripts instead of &amp;quot;.txt&amp;quot; (in Windows, you may have to turn on the displaying of file extensions to see the suffix).&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==Getting started==&lt;br /&gt;
*You may wish to first read either the &amp;quot;Introduction&amp;quot; or the &amp;quot;Manual&amp;quot; page under &amp;quot;Knowledge database&amp;quot; below.&lt;br /&gt;
*To learn BSL by example, you can read the .bsl files in Oni&#039;s IGMD folder or look at the &amp;quot;Scripted mods&amp;quot; section below, and draw connections between the scripting commands and the resulting events in the game.&lt;br /&gt;
*For a primer in writing BSL, see the &amp;quot;Tutorials&amp;quot; section below.&lt;br /&gt;
*For a list of known bugs (and fixes/workarounds when available), see [[BSL:Bugs|HERE]].&lt;br /&gt;
&lt;br /&gt;
==Scripted mods==&lt;br /&gt;
Scripted mods are great examples of what can be achieved simply by editing text files. They replace or add to Oni&#039;s .bsl files to spice up the gameplay and provide a more exciting experience to those who have finished the game. However, they can only change the way that game data is used; adding new characters or changing the layout of a level, for instance, would require editing the actual [[OBD|game data]]. When new levels are created for Oni, these naturally require new scripts to be written from scratch to take advantage of the new game assets.&lt;br /&gt;
&lt;br /&gt;
One ambitious example of a scripted mod is [[AE:OTA|Oni Team Arena]]. Based on the desire for a [[multiplayer]] mode in Oni, and inspired by Unreal Tournament, OTA augments Oni&#039;s hand-to-hand combat and gunplay with a scoring system much like Unreal Tournament&#039;s Deathmatch mode. Other scripted mods range from free-for-all arenas to objective-based missions and enhancements of the original levels. Scripted mods can be found [http://mods.oni2.net/mods/Script here], [http://your-mom.oni2.net/Downloads.htm here] and [[User:Script_10k#Minor_Scripts|here]]. New levels, with their own BSL files, can be found [http://mods.oni2.net/mods/New%20Level here] (mod packages found on the Mod Depot are meant to be installed through the [[AE]]).&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
;[[BSL:Tutorial/Console|Playing with the developer console]]&lt;br /&gt;
:The fastest way to start learning BSL is to just load the first level and open the dev console.&lt;br /&gt;
&lt;br /&gt;
;[[BSL:Tutorial/Modification|Original logic modification]]&lt;br /&gt;
:There are lots of cool things to do by merely looking at the original scripts and changing a few parameters.&lt;br /&gt;
&lt;br /&gt;
;[[IGMD/global|Patching]]&lt;br /&gt;
:Want to script a &amp;quot;patch&amp;quot; that&#039;s effective in every level?&lt;br /&gt;
&lt;br /&gt;
;[[BSL:Tutorial/Scratch|New logic from scratch]]&lt;br /&gt;
:Create completely new level logic from scratch.&lt;br /&gt;
&lt;br /&gt;
==Knowledge database==&lt;br /&gt;
*[[BSL:Introduction|Introduction]] (a quick reference, ideal for those with programming experience)&lt;br /&gt;
*[[BSL:Manual|Manual]] (the complete reference on BSL, with more details and explanations for newbies)&lt;br /&gt;
*[[:Category:Scripting tasks|Scripting commands grouped by subject]] (work in progress)&lt;br /&gt;
*[[BSL:List|List of all scripting commands]] (work in progress)&lt;br /&gt;
*[[IGMD|File documentation for game scripts]]&lt;br /&gt;
*[[BSL:Snippets|Useful snippets of BSL]]&lt;br /&gt;
*[[BSL:Functions]], [[BSL: Variables]] Lists of all BSL functions and variables and what they do.&lt;br /&gt;
* References of in-game IDs of [http://ssg.oni2.net/subfold/charas/charas.htm Characters], [http://ssg.oni2.net/subfold/consoles/consoles.htm Consoles], and [http://ssg.oni2.net/subfold/doors/doors.htm Doors], which can be manipulated by scripts.&lt;br /&gt;
&lt;br /&gt;
[[Category:BSL docs]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:BFW_Scripting_Language&amp;diff=29957</id>
		<title>BSL:BFW Scripting Language</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:BFW_Scripting_Language&amp;diff=29957"/>
		<updated>2020-06-28T04:29:55Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[Modding_Oni#Introduction_to_the_Oni_engine|BFW]] Scripting Language&#039;&#039;&#039; (simply called &#039;&#039;&#039;BSL&#039;&#039;&#039;) is what Oni scripts are written in. Being a scripting language, it is far more limited in scope and usage than a &amp;quot;real&amp;quot; programming language, as it was designed only to move events forward in the game, not to build programs. More specifically, BSL scripts are responsible for managing the player&#039;s objectives, directing AIs, creating environmental effects, and driving cutscenes.&lt;br /&gt;
&lt;br /&gt;
Physically speaking, they are the .bsl files inside the [[IGMD|Oni/GameDataFolder/IGMD/]] folder. Being in plain-text, scripts can be edited with any word-processing program, such as the built-in Notepad (Windows) or TextEdit (Mac); the only requirement is that you must use the suffix &amp;quot;.bsl&amp;quot; for scripts instead of &amp;quot;.txt&amp;quot; (in Windows, you may have to turn on the displaying of file extensions to see the suffix).&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==Getting started==&lt;br /&gt;
*You may wish to first read either the &amp;quot;Introduction&amp;quot; or the &amp;quot;Manual&amp;quot; page under &amp;quot;Knowledge database&amp;quot; below.&lt;br /&gt;
*To learn BSL by example, you can read the .bsl files in Oni&#039;s IGMD folder or look at the &amp;quot;Scripted mods&amp;quot; section below, and draw connections between the scripting commands and the resulting events in the game.&lt;br /&gt;
*For a primer in writing BSL, see the &amp;quot;Tutorials&amp;quot; section below.&lt;br /&gt;
*For a list of known bugs (and fixes/workarounds when available), see [[BSL:Bugs|HERE]].&lt;br /&gt;
&lt;br /&gt;
==Scripted mods==&lt;br /&gt;
Scripted mods are great examples of what can be achieved simply by editing text files. They replace or add to Oni&#039;s .bsl files to spice up the gameplay and provide a more exciting experience to those who have finished the game. However, they can only change the way that game data is used; adding new characters or changing the layout of a level, for instance, would require editing the actual [[OBD|game data]]. When new levels are created for Oni, these naturally require new scripts to be written from scratch to take advantage of the new game assets.&lt;br /&gt;
&lt;br /&gt;
One ambitious example of a scripted mod is [[AE:OTA|Oni Team Arena]]. Based on the desire for a [[multiplayer]] mode in Oni, and inspired by Unreal Tournament, OTA augments Oni&#039;s hand-to-hand combat and gunplay with a scoring system much like Unreal Tournament&#039;s Deathmatch mode. Other scripted mods range from free-for-all arenas to objective-based missions and enhancements of the original levels. Scripted mods can be found [http://mods.oni2.net/mods/Script here], [http://your-mom.oni2.net/Downloads.htm here] and [[User:Script_10k#Minor_Scripts|here]]. New levels, with their own BSL files, can be found [http://mods.oni2.net/mods/New%20Level here] (mod packages found on the Mod Depot are meant to be installed through the [[AE]]).&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
;[[BSL:Tutorial/Console|Playing with the developer console]]&lt;br /&gt;
:The fastest way to start learning BSL is to just load the first level and open the dev console.&lt;br /&gt;
&lt;br /&gt;
;[[BSL:Tutorial/Modification|Original logic modification]]&lt;br /&gt;
:There are lots of cool things to do by merely looking at the original scripts and changing a few parameters.&lt;br /&gt;
&lt;br /&gt;
;[[IGMD/global|Patching]]&lt;br /&gt;
:Want to script a &amp;quot;patch&amp;quot; that&#039;s effective in every level?&lt;br /&gt;
&lt;br /&gt;
;[[BSL:Tutorial/Scratch|New logic from scratch]]&lt;br /&gt;
:Create completely new level logic from scratch.&lt;br /&gt;
&lt;br /&gt;
==Knowledge database==&lt;br /&gt;
*[[BSL:Introduction|Introduction]] (a quick reference, ideal for those with programming experience)&lt;br /&gt;
*[[BSL:Manual|Manual]] (the complete reference on BSL, with more details and explanations for newbies)&lt;br /&gt;
*[[:Category:Scripting tasks|Scripting commands grouped by subject]] (work in progress)&lt;br /&gt;
*[[BSL:List|List of all scripting commands]] (work in progress)&lt;br /&gt;
*[[IGMD|File documentation for game scripts]]&lt;br /&gt;
*[[BSL:Snippets|Useful snippets of BSL]]&lt;br /&gt;
*[[BSL:Functions]], [[BSL: Variables]] Lists of all BSL functions and variables and what they do.&lt;br /&gt;
&lt;br /&gt;
[[Category:BSL docs]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:Variables&amp;diff=29956</id>
		<title>BSL:Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:Variables&amp;diff=29956"/>
		<updated>2020-06-28T04:17:19Z</updated>

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

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCfloat}}&lt;br /&gt;
==Signature==&lt;br /&gt;
===Arguments===&lt;br /&gt;
Put usage of brackets and commas here. Also tell about the weak syntax (with space as a separator).&lt;br /&gt;
===Return value===&lt;br /&gt;
When used alone forces the exit from a function. When used with a variable it forces the exit from a function and returns that variable.&lt;br /&gt;
&lt;br /&gt;
Example (1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
func void spawnUs () {&lt;br /&gt;
     ai2_spawn(Muro);&lt;br /&gt;
     sleep(200);&lt;br /&gt;
     return;&lt;br /&gt;
     ai2_spawn(Barabas);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example the code &amp;lt;tt&amp;gt;ai2_spawn(Barabas);&amp;lt;/tt&amp;gt; is never executed.&lt;br /&gt;
&lt;br /&gt;
Example (2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var int current_char_id=0;&lt;br /&gt;
&lt;br /&gt;
func int spawnCharacter (string char_name) {&lt;br /&gt;
     ai2_spawn(char_name);&lt;br /&gt;
     current_char_id=current_char_id+1;&lt;br /&gt;
     return current_char;&lt;br /&gt;
     dmsg(&amp;quot;Hello.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example the current_char is returned from the function (notice the int declaration at the begin of function, which declares the type to return). &amp;lt;tt&amp;gt;dmsg(&amp;quot;Hello.&amp;quot;);&amp;lt;/tt&amp;gt; is never executed.&lt;br /&gt;
&lt;br /&gt;
==Declaration==&lt;br /&gt;
Put usage of &amp;lt;tt&amp;gt;func&amp;lt;/tt&amp;gt; here.&lt;br /&gt;
: [...]&lt;br /&gt;
* Tips:&lt;br /&gt;
** If you call a second function from inside another function, the second function will be executed til its end and then the rest of the first function gets executed.&lt;br /&gt;
** You can call a function recursively, but only up to about four times, then the script execution stucks for some reason (maybe intentional to prevent endless loops?).&lt;br /&gt;
** BSL doesn&#039;t allow function name overriding even if the parameters are different (in java you can for example).&lt;br /&gt;
** Seems there is a limit of 8 parameters for each function.&lt;br /&gt;
{{clearall}}&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Put usage of &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt; here.&lt;br /&gt;
: [...]&lt;br /&gt;
* Tips:&lt;br /&gt;
** Use &amp;quot;fork&amp;quot; in conjunction with &amp;quot;sleep&amp;quot; to ensure that there is always only one running copy of the function. (Themselves looping functions without sleep can crash the game.)&lt;br /&gt;
** And remember to design the code so it cannot create two copies of the function running in parallel. When that happens, the desired loop effect is usually broken and &amp;quot;echos&amp;quot; start to apprear.&lt;br /&gt;
==chr_index==&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_index&amp;lt;/tt&amp;gt; is a variable required by some functions like &amp;lt;tt&amp;gt;chr_focus&amp;lt;/tt&amp;gt;. This variable hold a ID for a character and each character have a &amp;lt;tt&amp;gt;chr_index&amp;lt;/tt&amp;gt; associated.&lt;br /&gt;
&lt;br /&gt;
Normally the chr_index is associated by the order of the spawn of the characters. The characters can be spawned either by scripting or by the engine itself (if it doesn&#039;t have &amp;lt;tt&amp;gt;NotInitiallyPresent&amp;lt;/tt&amp;gt; flag at &amp;lt;tt&amp;gt;BINACJBOCharacter&amp;lt;/tt&amp;gt; file).&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ai2_spawn Muro&lt;br /&gt;
ai2_spawn Mukade&lt;br /&gt;
ai2_spawn Bomber&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the follow code Muro will receive the index 1, Mukade index 2 and Bomber index 3. Konoko always have a &amp;lt;tt&amp;gt;chr_index&amp;lt;/tt&amp;gt; of 0, because it&#039;s always the first character to be spawned.&lt;br /&gt;
&lt;br /&gt;
This ok, but there&#039;s an exception. Once a character is deleted, either by &amp;lt;u&amp;gt;be killed&amp;lt;/u&amp;gt; (and the engine delete it automatically) or by &amp;lt;u&amp;gt;calling &amp;lt;tt&amp;gt;chr_delete&amp;lt;/tt&amp;gt;&amp;lt;/u&amp;gt; directly the following characters to be spawned will fill the holes left by the deleted.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ai2_spawn Muro&lt;br /&gt;
ai2_spawn Mukade&lt;br /&gt;
chr_delete Mukade&lt;br /&gt;
ai2_spawn Bomber&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example Mukade have the index 2, but once it&#039;s deleted (in this case directly by &amp;lt;tt&amp;gt;chr_delete&amp;lt;/tt&amp;gt; function) there will be hole where his id were. When Bomber is spawned, it isn&#039;t associated the index 3, but it will be associated the index 2, to fill the hole left behind.&lt;br /&gt;
&lt;br /&gt;
Seems the &amp;lt;tt&amp;gt;chr_index&amp;lt;/tt&amp;gt; variables make part of an array in memory, once some variable in the array is cleared, in the next opportunity it is filled up again.&lt;br /&gt;
&lt;br /&gt;
If you want to reset &amp;lt;tt&amp;gt;chr_index&amp;lt;/tt&amp;gt; you may want to use &amp;lt;tt&amp;gt;ai2_reset&amp;lt;/tt&amp;gt;, which resets all characters to level initial state (take a look at &amp;lt;tt&amp;gt;ai2_reset&amp;lt;/tt&amp;gt; implications before using it [http://wiki.oni2.net/BSL:Functions#ai2 here]).&lt;br /&gt;
&lt;br /&gt;
==Native functions==&lt;br /&gt;
Line structure:	script command [parameter] - description - example &lt;br /&gt;
&lt;br /&gt;
Parameter:	&lt;br /&gt;
*parameter&lt;br /&gt;
:you have to use this parameter&lt;br /&gt;
*[parameter]&lt;br /&gt;
:IMO, this parameter is an option. You can use it or not.&lt;br /&gt;
*(null)&lt;br /&gt;
:type only the script command, nothing else&lt;br /&gt;
*no parameter given&lt;br /&gt;
:type the script command and add &amp;quot;= 0&amp;quot; or &amp;quot;= 1&amp;quot; (sometimes you can add higher numbers, e.g. cm_distance = 200)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Commands in this color are Windows-only&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Commands in this color are Mac-only&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ai2===&lt;br /&gt;
&#039;&#039;&#039;Commands which can have an effect on all AIs (see below to use these same commands on one AI):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*ai2_allpassive passive:int {0 | 1} - stops all AIs from thinking for themselves - ai2_allpassive 1&lt;br /&gt;
*ai2_spawnall (null) - spawns all AI, even those not initially present - ai2_spawnall&lt;br /&gt;
*ai2_takecontrol on_off:int {0 | 1} - makes the AI movement system take control of the player - ai2_takecontrol 1&lt;br /&gt;
*ai2_kill [int] - kills all AIs, just use a number as parameter instead of a string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commands which have an effect on one AI:&#039;&#039;&#039;&lt;br /&gt;
*ai2_active [ai_name:string | script_id:int] - forces an AI into active mode&lt;br /&gt;
*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;
*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;
*ai2_chump (null) - creates a chump&lt;br /&gt;
*ai2_comehere [ai_name:string | script_id:int] - tells an AI to come to the player&lt;br /&gt;
*ai2_debug_makesound [sound_type:string | ] [volume:float | ] - causes the player to make a sound (alerts nearby AIs)&lt;br /&gt;
*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;
*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;
*ai2_findconnections [distance:int | ] - finds all BNV connections from the player&#039;s location&lt;br /&gt;
*ai2_followme [ai_name:string | script_id:int] - tells an AI to follow the player - ai2_followme s2_t05&lt;br /&gt;
*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;
*ai2_idle [ai_name:string | script_id:int] - tells an AI to become idle - ai2_idle A1_intro01&lt;br /&gt;
*ai2_inactive [ai_name:string | script_id:int] - forces an AI into inactive mode&lt;br /&gt;
*ai2_kill [param1:string] [param2:string] - kills one or more AIs - ai2_kill ScanKerr01 // ai2_kill&lt;br /&gt;
*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;
*ai2_lookatme [ai_name:string | script_id:int] - tells an AI to look at the player - ai2_lookatme s2_t05&lt;br /&gt;
*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;
*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;
*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;
*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;
*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;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;ai2_movetoflag will only work if there is a path to that flag&#039;&#039;&lt;br /&gt;
*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;
*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;
*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;
*ai2_pathdebugsquare x:int y:int - selects a path square in the player&#039;s BNV for debugging&lt;br /&gt;
*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;
*ai2_report [ai_name:string | script_id:int | ] - tells an AI to report in&lt;br /&gt;
*ai2_report_verbose [ai_name:string | script_id:int | ] - tells an AI to report in verbosely&lt;br /&gt;
*ai2_reset [reset_player:int] - resets AI as if start of level - ai2_reset&lt;br /&gt;
&#039;&#039;resets consoles and clears characters as if you started the level again&#039;&#039;&lt;br /&gt;
*ai2_set_handlesilenterror handle_silent:bool [subsystem:string | ] - sets whether handled errors are silent&lt;br /&gt;
*ai2_set_logerror error_level:string [subsystem:string | ] - sets the level of errors to log to file&lt;br /&gt;
*ai2_set_reporterror error_level:string [subsystem:string | ] - sets the level of errors to report at console&lt;br /&gt;
*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;
*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;
*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;
*ai2_showmem - shows AI memory usage&lt;br /&gt;
*ai2_skill_bestangle best_angle:float - sets an AI&#039;s best aiming angle in degrees&lt;br /&gt;
*ai2_skill_decay decay_amount:float - sets an AI&#039;s grouping decay&lt;br /&gt;
*ai2_skill_delaymax maxdelay:int - sets an AI&#039;s max delay between shots, in frames&lt;br /&gt;
*ai2_skill_delaymin mindelay:int - sets an AI&#039;s min delay between shots, in frames&lt;br /&gt;
*ai2_skill_error error_amount:float - sets an AI&#039;s grouping error (demonstration [https://youtu.be/cxTz30YOPhc HERE])&lt;br /&gt;
*ai2_skill_inaccuracy inaccuracy:float - sets an AI&#039;s shooting inaccuracy multiplier&lt;br /&gt;
*ai2_skill_recoil recoil_compensation:float - sets an AI&#039;s recoil compensation amount (0-1)&lt;br /&gt;
*ai2_skill_revert - reverts the shooting skill being edited to the saved copy&lt;br /&gt;
*ai2_skill_save - saves the shooting skill being edited out as a text file&lt;br /&gt;
*ai2_skill_select char_class:string weapon_name:string - selects a shooting skill to edit&lt;br /&gt;
*ai2_skill_show - shows the currently selected shooting skill&lt;br /&gt;
*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;
*ai2_tripalarm - alarm_id:int [ai_name:string | script_id:int] - trips an alarm - ai2_tripalarm 2 0&lt;br /&gt;
&lt;br /&gt;
===chr===&lt;br /&gt;
&#039;&#039;&#039;Commands which have an effect on all characters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*chr_kill_all_ai (null) - kills all the AI (not working?)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commands which have an effect on one character:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*chr_animate [ai_name:string | script_id:int] anim_name:string [num_frames:int] [interp_frames:int] - plays an animation on a character - chr_animate 0 KONOKOcycle_ride 500&lt;br /&gt;
*chr_animate_block [ai_name:string | script_id:int] anim_name:string [num_frames:int] [interp_frames:int] - plays an animation on a character and blocks until done - chr_animate_block 0 KONOKOlev11_cnsl_idle 300&lt;br /&gt;
*chr_boss_shield [ai_name:string | script_id:int] - turns on the boss shield for a character - chr_boss_shield OutroNinja&lt;br /&gt;
*chr_changeteam [ai_name:string | script_id:int] team_name:string - changes a character&#039;s team - chr_changeteam guard1 Syndicate&lt;br /&gt;
&#039;&#039;team name strings: Konoko, TCTF, Syndicate, Neutral, SecurityGuard, RogueKonoko, Switzerland, SyndicateAccessory&#039;&#039;&lt;br /&gt;
*chr_create script_id:int [start_create:string {&amp;quot;start&amp;quot;} | ] - creates a character from an ID of the AISA file - chr_create 1050 start&lt;br /&gt;
*chr_death_lock [ai_name:string | script_id:int] [on_off:int{0 | 1}] - this character will not die too much - chr_death_lock dum_hit_flash 1&lt;br /&gt;
*chr_delete [ai_name:string | script_id:int] - deletes a character - chr_delete liliput_striker_1&lt;br /&gt;
*chr_disarm chr_index:int - disarms a character or everyone&lt;br /&gt;
*chr_display_combat_stats chr_index:int - displays the characters combat stats&lt;br /&gt;
*chr_dontaim [ai_name:string | script_id:int] on_off:int{0 | 1} - disables the weapon variant for a character&lt;br /&gt;
*chr_draw_dot - draws a dot at a specified location&lt;br /&gt;
*chr_envanim [ai_name:string | script_id:int] anim:string [norotation:string{&amp;quot;norotation&amp;quot;} | ] - plays an environment animation on a character - chr_envanim 111 OutroNinjaBox01 norotation&lt;br /&gt;
*chr_envanim_block [ai_name:string | script_id:int] anim:string [norotation:string{&amp;quot;norotation&amp;quot;}] - plays an environment animation on a character and blocks - chr_envanim_block 110 OutroNinjaBox01 norotation&lt;br /&gt;
*chr_envanim_stop [ai_name:string | script_id:int] - stops any environment animation on a character - chr_envanim_stop IntroNinja&lt;br /&gt;
*chr_facetoflag [ai_name:string | script_id:int] flag_id:int - snaps a character&#039;s facing to a flag&#039;s facing - chr_facetoflag IntroNinja 600&lt;br /&gt;
*chr_focus chr_index:int - Selects what character to control - chr_focus 1&lt;br /&gt;
*chr_forceholster [ai_name:string | script_id:int] holster:int{0 | 1} [force_draw:int{0 | 1}] - forces a character to holster their weapon - chr_forceholster IntroStriker02 1&lt;br /&gt;
*chr_freeze [ai_name:string | script_id:int] passive:int{0 | 1} - stops an AI from thinking for itself -chr_freeze A1_intro01 1&lt;br /&gt;
&#039;&#039;[ai_name:string | script_id:int] = 0 don&#039;t work&#039;&#039;&lt;br /&gt;
*chr_full_health [ai_name:string | script_id:int] - sets a characters health to full by script id - chr_full_health 0&lt;br /&gt;
*chr_givepowerup [ai_name:string | script_id:int] powerup:string [amount:int] - gives a character a powerup -chr_givepowerup 0 ammo 1&lt;br /&gt;
&#039;&#039;powerup strings: ammo, cell, hypo, shield (in percent), invis (invisibility in frames, -1 = forever), lsi (amount is ignored)&#039;&#039;&lt;br /&gt;
*chr_giveweapon [ai_name:string | script_id:int] weapon_name:string - gives a character a new weapon - chr_giveweapon 0 w1_tap&lt;br /&gt;
&#039;&#039;weapon strings: w1_tap, w2_sap, w3_phr, w4_psm, w5_sbg, w6_vdg, w7_scc, w8_mbo, w9_scr, w10_sni, w11_ba1, w12_ba2&#039;&#039;&lt;br /&gt;
*chr_has_empty_weapon [ai_name:string | script_id:int] - returns if this character is holding a weapon that is empty - chr_has_empty_weapon(char_0)&lt;br /&gt;
&#039;&#039;This function only returns if the player is out of ammo for the weapon and the weapon is also empty.&#039;&#039;&lt;br /&gt;
*chr_has_lsi [ai_name:string | script_id:int] - records that the character has the lsi - chr_has_lsi(0)&lt;br /&gt;
*chr_health chr_index:int [hit_points:int] - sets character&#039;s health  - chr_health 0 300&lt;br /&gt;
*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&lt;br /&gt;
*chr_inv_reset [ai_name:string | script_id:int] - clears a characters inventory - chr_inv_reset ambush_tanker_1a&lt;br /&gt;
*chr_invincible [ai_name:string | script_id:int] [on_off:int{0 | 1}] - makes a character invincible - chr_invincible char_0 1&lt;br /&gt;
*chr_is_player [ai_name:string | script_id:int] - returns if this character is the player - chr_is_player(character)&lt;br /&gt;
*chr_location chr_index:int [loc_x:float loc_y:float loc_z:float] - Sets the location of any character -chr_location 0 100 100 100&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&#039;&#039;The first parameter is [ai_name:string | chr_index:int] on Macs, that is, you can supply the name of the AI or its index number.&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
*chr_location_settocamera chr_index:int - Sets the location of any character to the camera location -chr_location_settocamera 1&lt;br /&gt;
*chr_lock_active [ai_name:string | script_id:int] - locks the character active - chr_lock_active IntroMuro&lt;br /&gt;
*chr_main_class [class_name:string | class_index:int] - sets the main characters class - chr_main_class striker_easy_1&lt;br /&gt;
&#039;&#039;If you provide an index &amp;gt; than the available number of characters (nc), the engine will automatically subtract the number of characters how many times as needed to find a proper character index. For instance if you have nc = 85 and you input chr_main_class(180), the engine will change your class to the index 10 (180-85-85)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The practical effect seems to be different than chr_set_class (besides the parameters). For example with chr_main_class(ninja_hard_1) your ninja will be right handed while with chr_set_class(0,ninja_hard_1) your ninja will be left handed. Other difference is that chr_main_class seem to disable the daodan effect when using chr_super in the character itself.&#039;&#039;&lt;br /&gt;
*chr_neutral [ai_name:string | script_id:int] passive:int{0 | 1} - stops an AI from thinking for itself - chr_neutral ParkStriker 1&lt;br /&gt;
*chr_nocollision [ai_name:string | script_id:int] on_off:int{0 | 1} - disables collision for a character - chr_nocollision 0 1&lt;br /&gt;
*chr_pain [ai_name:string | script_id:int] pain_type:string - forces a character to play a pain sound &#039;&#039;pain type strings: light, medium, heavy, death&#039;&#039;&lt;br /&gt;
*chr_peace [ai_name:string | script_id:int] - turns off fight mode - chr_peace 0&lt;br /&gt;
&#039;&#039;Normally used in cutscenes so the player leaves the fighting pose.&#039;&#039;&lt;br /&gt;
*chr_playback [ai_name:string | script_id:int] film_name:string [mode:string{&amp;quot;fromhere&amp;quot; | &amp;quot;interp&amp;quot;}] [num_frames:int] - plays back a film&lt;br /&gt;
*chr_playback_block [ai_name:string | script_id:int] film_name:string [mode:string{&amp;quot;fromhere&amp;quot; | &amp;quot;interp&amp;quot;}] [num_frames:int] - plays back a film and blocks until complete&lt;br /&gt;
*chr_playback_debug film_name:string - dumps stats for a playback film&lt;br /&gt;
*chr_poison [ai_name:string | script_id:int] damage:int interval:int [initial_interval:int] - slowly poisons a character - chr_poison (konoko, 10, 60, 90);&lt;br /&gt;
&#039;&#039;This is intended to be called in a continuous stream for a character standing in a trigger volume which represents an area that does ambient damage, such as a fire. No damage is done for the first &amp;quot;initial_interval&amp;quot; frames that the function is called, or, when &amp;quot;initial_interval&amp;quot; is not supplied, for the first &amp;quot;interval&amp;quot; frames; and then additional damage is only done once every &amp;quot;interval&amp;quot; frames as the function continues to be called every frame by the TV. Thus, calling this function a single time directly from a script will have zero effect.&#039;&#039;&lt;br /&gt;
*chr_set_class chr_index:int [class_name:string | class_index:int] - sets the character class of a specific character, class must exist otherwise the game crashes - chr_set_class 0 striker_easy_1&lt;br /&gt;
*chr_set_health [ai_name:string | script_id:int] hit_points:int - sets a characters health by script id - chr_set_health dum_hit_flash 50&lt;br /&gt;
*chr_shadow [ai_name:string | script_id:int] [on_off:int{0 | 1}] - turns of the shadow for this character - chr_shadow ZomShin 1&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;chr_showextent [anim_name:string] - shows the attack extent of an animation - chr_showextent KONOKOjump_bk_kick&amp;lt;/span&amp;gt;&lt;br /&gt;
&#039;&#039;chr_showextent_globals must be on for this to work.&#039;&#039;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;chr_showextent_globals - shows the global parts of an attack animation&#039;s extent - chr_showextent 1&amp;lt;/span&amp;gt;&lt;br /&gt;
*chr_super [ai_name:string | script_id:int] super_amount:float - set&#039;s a character&#039;s super value (the command isn&#039;t restricted to enable or disable the daodan particles, a value &amp;gt; 1 will make the daodan particles glow more), this command does not seem to affect the damage dealt in any way (differently from normal hypo over health) - chr_super 0 1&lt;br /&gt;
*chr_talk [ai_name:string | script_id:int] sound_name:string pre_pause:int post_pause:int [priority:string | ] - causes a character to play a line of dialogue - chr_talk victim_mansci_1 c02_62_11sci 0 0&lt;br /&gt;
*chr_teleport [ai_name:string | script_id:int] flag_id:int - teleports a character to a flag - chr_teleport 0 105&lt;br /&gt;
*chr_ultra_mode [ai_name:string | script_id:int] [on_off:int{0 | 1}] - enables ultra mode for a character&lt;br /&gt;
*chr_unkillable [ai_name:string | script_id:int] [on_off:int{0 | 1}] - makes a character unkillable - chr_unkillable A1_intro01 1&lt;br /&gt;
*chr_unlock_active [ai_name:string | script_id:int] - unlocks the character active&lt;br /&gt;
*chr_unstoppable [ai_name:string | script_id:int] [on_off:int{0 | 1}] - makes a character unstoppable - chr_unstoppable IntroMuro 1&lt;br /&gt;
*chr_vocalize [ai_name:string | script_id:int] type:string - makes a character utter a vocalization (vocalize type strings: taunt, alert, startle, checkbody, pursue, cower, superpunch, superkick, super3, super4). Character must be present in AISA file in order to work. Otherwise it will vocalize only the player.&lt;br /&gt;
*chr_wait_animation [ai_name:string | script_id:int] [anim_name:string]  - waits for a character to play a specific animation - chr_wait_animation 0 KONSPRrun_lt KONSPRrun_rt&lt;br /&gt;
*chr_wait_animstate [ai_name:string | script_id:int] [anim_name:string] - waits for a character to reach a specific animation state - chr_wait_animstate 0 run_slide&lt;br /&gt;
*chr_wait_animtype [ai_name:string | script_id:int] [anim_name:string] - waits for a character to play a specific animation type - chr_wait_animtype 0 jump&lt;br /&gt;
*chr_wait_health [ai_name:string | script_id:int] health_amount:int32 - waits until a character&#039;s health falls below a value - chr_wait_health Muro 200&lt;br /&gt;
*chr_weapon chr_index:int [weapon_name:string | weapon_num:int] - sets the weapon for a give character&lt;br /&gt;
*chr_weapon_immune [ai_name:string | script_id:int] - makes a character weapon immune - chr_weapon_immune(vat_bot_1); // chr_weapon_immune 0&lt;br /&gt;
*chr_who - lists all the players&lt;br /&gt;
*where [ai_name:string | script_id:int | ] - prints location of a character&lt;br /&gt;
*who - prints AIs that are nearby&lt;br /&gt;
&lt;br /&gt;
===cinematic===&lt;br /&gt;
[[Image:Cinematic_flags.jpg|thumb|right|This picture shows the layout of the &amp;quot;flags&amp;quot; used by cinematic_start/stop&#039;s start:int and end parameters.]]&lt;br /&gt;
*cinematic_start bitmap_name:string draw_width:int draw_height:int start:int end:int velocity:float mirror:bool - start the display of a cinematic insert - cinematic_start (MUROtalking, 180, 180, 15, 1, 15, false)&lt;br /&gt;
*cinematic_stop bitmap_name:string end:int velocity:float - stop the display of a cinematic insert - cinematic_stop (KONtalkangryfront, 16, 20)&lt;br /&gt;
&#039;&#039;see picture on right for locations that insert can be placed; if you give a flag value of 0, the picture is displayed in the top-left corner of the screen&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;the yellow area&#039;s flags are off-screen; these are used for the start position of the fly-in so the picture slides on-screen instead of popping up on-screen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===camera===&lt;br /&gt;
*cm_anim cam_spec:string{&amp;quot;move&amp;quot; | &amp;quot;look&amp;quot; | &amp;quot;both&amp;quot;} anim_name:string - initiates a camera animation - cm_anim both OutroCam03&lt;br /&gt;
*cm_anim_block cam_spec:string{&amp;quot;move&amp;quot; | &amp;quot;look&amp;quot; | &amp;quot;both&amp;quot;} anim_name:string - initiates a camera animation - cm_anim_block both OutroCam04&lt;br /&gt;
*cm_barabus [ai_name:string | script_id:int] away:float up:float time:int - special camera for barabus&lt;br /&gt;
*cm_detach (null) - detaches the camera - cm_detach&lt;br /&gt;
*cm_interpolate cam_name:string num_frames:int - initiates a camera interpolation - cm_interpolate GrifCam01 180&lt;br /&gt;
*cm_interpolate_block anim_name:string num_frames:int - initiates a camera interpolation - cm_interpolate_block OutroCam05 180&lt;br /&gt;
*cm_jello mode:int {0 | 1} - toggles camera Jello(tm) mode - cm_jello 1&lt;br /&gt;
&#039;&#039;if cm_jello 0, the walls aren&#039;t transparent any longer&#039;&#039;&lt;br /&gt;
*cm_orbit speed:float [stopangle:float] - puts the camera in orbit mode - cm_orbit .1&lt;br /&gt;
*cm_orbit_block speed:float [stopangle:float] - puts the camera in orbit mode - cm_orbit_block 2 180&lt;br /&gt;
*cm_reset [maxspeed:float] [maxFocalAccel:float] - resets the camera - cm_reset&lt;br /&gt;
*cm_wait (null) - makes the camera wait until it is no longer busy - cm_wait&lt;br /&gt;
&lt;br /&gt;
===developer console===&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;co_show_all - shows all registered variables and commands - co_show_all&amp;lt;span&amp;gt;&lt;br /&gt;
*console_print - dumps all arguments&lt;br /&gt;
*co_toggle_text - cycles console text color&lt;br /&gt;
*dump_docs - shows all registered variables and commands&lt;br /&gt;
*text_console name:string - turns on the text console display&lt;br /&gt;
&lt;br /&gt;
===console===&lt;br /&gt;
*console_activate console_id:int - activates a console - console_activate 14&lt;br /&gt;
*console_deactivate console_id:int - deactivates a console - console_deactivate 5&lt;br /&gt;
*console_reset console_id:int - resets a console to initial state - console_reset 7 text_console name:string - Turns on the text console display - text_console level_6d&lt;br /&gt;
&lt;br /&gt;
===corpse===&lt;br /&gt;
*corpse_reset (null) - resets corpses to their initial state - corpse_reset&lt;br /&gt;
*make_corpse corpse_name:string - makes a corpse&lt;br /&gt;
*trigvolume_corpse trig_id:int - kills all the corpses inside a trigger volume - trigvolume_corpse 32&lt;br /&gt;
&lt;br /&gt;
===cutscene===&lt;br /&gt;
*begin_cutscene flag:string{&amp;quot;weapon&amp;quot; | &amp;quot;jello&amp;quot; | &amp;quot;ai&amp;quot; | &amp;quot;invis&amp;quot; | &amp;quot;nosync&amp;quot; | &amp;quot;keepparticles&amp;quot; | &amp;quot;animation&amp;quot; | &amp;quot;nojump&amp;quot;} - begins a cutscene - begin_cutscene&lt;br /&gt;
&#039;&#039;begin_cutscene weapon - player does not holster his weapon when cutscene starts&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;what about ai, animation, invis, jello, keepparticles, nojump, nosync? Oni&#039;s scripts only call begin_cutscene with jello, weapon, or no argument at all&#039;&#039;&lt;br /&gt;
*cutscene_sync state:string{&amp;quot;mark&amp;quot; | &amp;quot;on&amp;quot; | &amp;quot;off&amp;quot;} - marks a point in a cutscene - cutscene_sync on&lt;br /&gt;
*end_cutscene (null) - ends a cutscene - end_cutscene&lt;br /&gt;
*fade_in ticks:int - fades the screen in - fade_in 120&lt;br /&gt;
*fade_out [r:float | r:int] [g:float | g:int] [b:float | b:int] ticks:int - fades the screen out - fade_out 0 0 0 120&lt;br /&gt;
*input on_off:int{0 | 1} - turns input on or off - input 0&lt;br /&gt;
*letterbox start_stop:int{0 | 1} - starts or stops letterboxing - letterbox 0&lt;br /&gt;
&lt;br /&gt;
===diary===&lt;br /&gt;
*diary_page_unlock page:int - unlocks a specific diary page on the current level&lt;br /&gt;
&lt;br /&gt;
===door===&lt;br /&gt;
*door_open door_id:int - opens a door (may not stay open) - door_open 21&lt;br /&gt;
*door_close door_id:int - closes a door (may not stay open) - door_close 27&lt;br /&gt;
*door_lock door_id:int - locks a door - door_lock 6&lt;br /&gt;
*door_unlock door_id:int - unlocks a door - door_unlock 5&lt;br /&gt;
*door_jam door_id:int - jams a door in its current state - door_jam 5&lt;br /&gt;
*door_unjam door_id:int - unjams a door so characters can open it - door_unjam 8&lt;br /&gt;
&lt;br /&gt;
===env===&lt;br /&gt;
*debug_env_anim name:string - draws a line for an environment animation&lt;br /&gt;
*env_anim obj_id:int [ obj_id:int] - initiates an environment animation for an object - env_anim 901 906&lt;br /&gt;
*env_anim_block obj_id:int [ obj_id:int] - initiates an environment animation: blocks until completed&lt;br /&gt;
*env_broken gq_ref:int [gq_endref:int] - computes the number of objects in a range that have all their glass broken - env_broken(3001, 3018);&lt;br /&gt;
*env_setanim obj_id:int object_name:string - sets up an animation for an object - env_setanim 52 truckcabstop&lt;br /&gt;
*env_setanim_block obj_id:int object_name:string - sets up an animation: blocks until completed&lt;br /&gt;
*env_shade gq_ref:int gq_ref:int r:float g:float b:float - sets the shade of a block of objects - env_shade 1500 1501 .9 .8 .9&lt;br /&gt;
*env_show gq_ref:int on_off:int{0 | 1} - turns on or off specified parts of the environment - env_show 31 1&lt;br /&gt;
*env_texswap gq_start:int tex_name:string - swaps an environment texture - env_texswap 401 PIPE_YELLOW&lt;br /&gt;
&#039;&#039;tested in level 19 save point 4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===film===&lt;br /&gt;
*chr_playback [ai_name:string | script_id:int] film_name:string [mode:string{&amp;quot;fromhere&amp;quot; | &amp;quot;interp&amp;quot;}] [num_frames:int] - plays back a film&lt;br /&gt;
*chr_playback_block [ai_name:string | script_id:int] film_name:string [mode:string{&amp;quot;fromhere&amp;quot; | &amp;quot;interp&amp;quot;}] [num_frames:int] - plays back a film and blocks until complete&lt;br /&gt;
*chr_playback_debug film_name:string - dumps stats for a playback film&lt;br /&gt;
*playback [ai_name:string | script_id:int] film_name:string [mode:string{&amp;quot;fromhere&amp;quot; | &amp;quot;interp&amp;quot;}] [num_frames:int] - plays back a film -  Hangar1_A_Striker_1 hangar1_striker1 interp 30&lt;br /&gt;
*playback_block [ai_name:string | script_id:int] film_name:string [mode:string{&amp;quot;fromhere&amp;quot; | &amp;quot;interp&amp;quot;}] [num_frames:int] - plays back a film and blocks until complete - playback_block Start_Friend_1 roll fromhere // playback_block hangar1f_enemy_2 bomber_jump interp 30&lt;br /&gt;
*playback_debug film_name:string - dumps stats for a playback film&lt;br /&gt;
*sc_focus chr_index:int - sets which character we&#039;re authoring for a film&lt;br /&gt;
&lt;br /&gt;
===game (miscellaneous)===&lt;br /&gt;
*chr_has_empty_weapon [ai_name:string | script_id:int] - returns if this character is holding a weapon that is empty - chr_has_empty_weapon(char_0)&lt;br /&gt;
*chr_has_lsi [ai_name:string | script_id:int] - records that the character has the lsi - chr_has_lsi(0)&lt;br /&gt;
*chr_is_player [ai_name:string | script_id:int] - returns if this character is the player - chr_is_player(character)&lt;br /&gt;
*crash when:string{&amp;quot;now&amp;quot;} - crashes the game (used for testing error handling)&lt;br /&gt;
*did_kill_griffen (null) - returns if we did kill griffen - did_kill_griffen()&lt;br /&gt;
*difficulty (null) - returns the difficulty level&lt;br /&gt;
*flag_view_prefix prefix:string - view flags with a specific prefix&lt;br /&gt;
*hang when:string{&amp;quot;now&amp;quot;} - hangs the game (used for testing error handling)&lt;br /&gt;
*killed_griffen murder:bool - sets if we killed griffen - killed_griffen 1&lt;br /&gt;
*lose (null) - lose this level - lose&lt;br /&gt;
*perf_prefix - sets the perf prefix&lt;br /&gt;
*ph_status - xxx&lt;br /&gt;
&#039;&#039;lists the physics status (collision type) of objects (characters, weapons, doors, etc.) that are currently in use&#039;&#039;&lt;br /&gt;
*print_state state:int - prints an anim state&lt;br /&gt;
*print_type type:int - prints an anim type &lt;br /&gt;
*restore_game (null) - restores the game - restore_game&lt;br /&gt;
*save_game save_point:int [type:string{&amp;quot;autosave&amp;quot;}] - saves the game - save_game 1 autosave&lt;br /&gt;
*splash_screen texture:string - displays a splash screen - splash_screen warehouse_splash_screen&lt;br /&gt;
*tr_stop_lookup - bla bla bla&lt;br /&gt;
*tr_write_animation anim_name:string file_name:string - varient values  are output as hex&lt;br /&gt;
*tr_write_collection collection_name:string file_name:string - bla bla bla&lt;br /&gt;
*tr_write_lookup file_name:string - bla bla bla&lt;br /&gt;
*win (null) - win this level - win&lt;br /&gt;
&lt;br /&gt;
===graphics===&lt;br /&gt;
*gl_fog_end_changeto end_val:float [frames:int] - changes the fog end distance smoothly&lt;br /&gt;
*gl_fog_start_changeto start_val:float [frames:int] - changes the fog start distance smoothly - gl_fog_start_changeto .995 30&lt;br /&gt;
*gs_farclipplane_set plane:float - sets the far clipping plane - gs_farclipplane_set 5000&lt;br /&gt;
*gs_fov_set fov_degrees:float - sets the field of view - gs_fov_set 300&lt;br /&gt;
*m3_display_list - lists all the display modes&lt;br /&gt;
*m3_display_set device_index:int mode_index:int - sets the active display mode&lt;br /&gt;
*m3_draw_engine_list - lists all the engines&lt;br /&gt;
*m3_engine_set geom_engine:int draw_engine:int - sets the active engine&lt;br /&gt;
*m3_geom_engine_list - lists all the engines&lt;br /&gt;
*m3_quality_set quality:string - sets the current graphics quality&lt;br /&gt;
&lt;br /&gt;
===input===&lt;br /&gt;
*bind input_name:string to:string{&amp;quot;to&amp;quot;} input_function:string - binds an input to a function - bind numpad0 to forward&lt;br /&gt;
*lock_keys [key_name:string] - locks keys out - lock_keys keys_walk &#039;&#039;key name strings: keys_reload, keys_hypo, keys_walk, keys_inventory, keys_action, keys_pause, keys_attack, keys_crouch, keys_jump, keys_movement&#039;&#039;&lt;br /&gt;
&#039;&#039;The lock_keys command allows you to enable or disable player keys. Using only lock_keys without a parameter will lock all keys. To unlock a specific set of keys you use the additional parameter, e.g. lock_keys keys_movement will unlock the move keys.&#039;&#039;&lt;br /&gt;
*unbind input_name:string - removes a binding from a input function - unbind numpad0&lt;br /&gt;
*unbindall (null) - removes all bindings - unbindall&lt;br /&gt;
&lt;br /&gt;
===message===&lt;br /&gt;
*dmsg astring:string - debugging message - dmsg [b. hello]&lt;br /&gt;
&#039;&#039;dmsg prints to the subtitle area; the &amp;quot;b&amp;quot; in [b. hello] stands for &amp;quot;blue&amp;quot;, setting the color of the word &amp;quot;hello&amp;quot;. Available colors: b (blue), c (cyan), g (green), l (lavender), o (orange), r (red), u (umber), y (yellow)&#039;&#039;&lt;br /&gt;
*dprint astring:string - debugging print&lt;br /&gt;
&#039;&#039;dprint prints to the console output. Note that calling dprint and dmsg more than once within a single function produces unexpected results; two calls result in one of the dprint/dmsg calls becoming the return value for the function (even if it it&#039;s type &amp;quot;void&amp;quot;) or sometimes creating a return value of 0, and more than two calls might be ignored.&#039;&#039;&lt;br /&gt;
*message message:string [timer:int] - sends a message from the subtitle file - message begin_fight 240&lt;br /&gt;
*message_remove [message:string] - removes a currently displayed message - message_remove c01_50_23 // message_remove&lt;br /&gt;
&lt;br /&gt;
===movie===&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;movie_play name:string - function to start a movie playing&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===object===&lt;br /&gt;
*obj_create obj_id:int [obj_id:int] - creates a range of objects - obj_create 81 82&lt;br /&gt;
*obj_force_draw obj_id:int [obj_id:int] - locks an object as visible - obj_force_draw 501 504&lt;br /&gt;
*obj_hide obj_id:int [obj_id:int] - hides an object &lt;br /&gt;
*obj_kill obj_id:int [obj_id:int] - kills a range of object - obj_kill 100 104&lt;br /&gt;
*obj_shade obj_id:int [obj_id:int] r:float g:float b:float - turns display of an object on or off - obj_shade 801 801 .4 .4 .4&lt;br /&gt;
*obj_show obj_id:int [obj_id:int] - shows an object - obj_show 481 481&lt;br /&gt;
&lt;br /&gt;
===objective===&lt;br /&gt;
*objective_complete (null) - plays the objective-complete sound&lt;br /&gt;
*objective_set page:int [make_silent:string {&amp;quot;silent&amp;quot;}] - sets the current objective page - objective_set(7,silent) // objective_set 3 silent&lt;br /&gt;
&lt;br /&gt;
===particle===&lt;br /&gt;
*p3_callevent particle_class:string event_index:int - triggers an event on all P3 particles of a specified class&lt;br /&gt;
*p3_count - lists a count of P3 particles&lt;br /&gt;
*p3_daodan_disable - disables parts of the daodan shield (for debugging)&lt;br /&gt;
*p3_dumpparticles - dump all particles to a text file&lt;br /&gt;
*p3_killall - kills all P3 particles&lt;br /&gt;
*p3_killnearest - kills the nearest P3 particle&lt;br /&gt;
*p3_printtags - prints out all environmental particles with tags&lt;br /&gt;
*p3_removedangerous (null) - removes all &amp;quot;dangerous projectile&amp;quot; particles by making their lifetime expire (example mukade energy balls) - p3_removedangerous&lt;br /&gt;
*p3_spawn particle_class:string [velocity:float | ] - spawns a new P3 particle&lt;br /&gt;
*p3_startall - creates and starts all environmental particles&lt;br /&gt;
*p3_stopall - stops all environmental particles&lt;br /&gt;
*p3_writeusedparticles - writes all particles used on this level to a text file&lt;br /&gt;
*particle - sends a command to environmental particles with a given tag&lt;br /&gt;
*particle_temp_kill - kills any temporary particles&lt;br /&gt;
*particle_temp_start - starts temporary-particle-creation mode&lt;br /&gt;
*particle_temp_stop - stops temporary-particle-creation mode&lt;br /&gt;
&lt;br /&gt;
===player===&lt;br /&gt;
*fall_back (null) - makes the player character fall back - fall_back&lt;br /&gt;
*fall_front (null) - makes the player character fall front - fall_front&lt;br /&gt;
*give_powerup powerup_name:string [amount:int] [character:int] - Gives a powerup to a character - give_powerup ammo&lt;br /&gt;
&#039;&#039;powerup strings: ammo, cell, hypo, shield (in percent), invis (in frames, -1 = forever), lsi (amount ignored)&#039;&#039;&lt;br /&gt;
*goto [loc_x:float loc_y:float loc_z:float] - Sets the location of the player character - goto 100 100 100&lt;br /&gt;
&lt;br /&gt;
===powerup===&lt;br /&gt;
*chr_givepowerup [ai_name:string | script_id:int] powerup:string [amount:int] - gives a character a powerup - chr_givepowerup 0 ammo 1&lt;br /&gt;
*give_powerup powerup_name:string [amount:int] [character:int] - Gives a powerup to a character - give_powerup ammo&lt;br /&gt;
&#039;&#039;to both above: powerup strings: ammo, cell, hypo, shield (in percent), invis (in frames), lsi (amount ignored)&#039;&#039;&lt;br /&gt;
*powerup_reset (null) - resets all placed powerups to their starting points - powerup_reset&lt;br /&gt;
*powerup_spawn poweruptype:string flag:int - creates a new powerup - powerup_spawn ammo 7042&lt;br /&gt;
&lt;br /&gt;
===reset===&lt;br /&gt;
*ai2_reset [reset_player:int] - resets AI as if start of level - ai2_reset&lt;br /&gt;
&#039;&#039;It reset consoles, and clears characters like you started the level again&#039;&#039;&lt;br /&gt;
*chr_inv_reset [ai_name:string | script_id:int] - clears a characters inventory - chr_inv_reset ambush_tanker_1a&lt;br /&gt;
*cm_reset [maxspeed:float] [maxFocalAccel:float] - resets the camera - cm_reset&lt;br /&gt;
*console_reset console_id:int - resets a console to initial state - console_reset 7&lt;br /&gt;
*corpse_reset (null) - resets corpses to their initial state - corpse_reset&lt;br /&gt;
*powerup_reset (null) - resets all placed powerups to their starting points - powerup_reset&lt;br /&gt;
*reset_mechanics (null) - resets all level mechanics (triggers, turrets, consoles, etc...) to initial state - reset_mechanics&lt;br /&gt;
*script_reload - reload scripts for a level&lt;br /&gt;
*sound_objects_reset (null) - reloads the sounds objects&lt;br /&gt;
*trig_reset trigger_id:int - resets a trigger to non-triggered state - trig_reset 91&lt;br /&gt;
*trigvolume_reset name:string - reset a trigger volume to its level-load state - trigvolume_reset tv_move4&lt;br /&gt;
*turret_reset turret_id:int - resets a turret to initial state&lt;br /&gt;
*weapon_reset (null) - resets all unheld weapons to their starting state - weapon_reset&lt;br /&gt;
&lt;br /&gt;
===slowmotion===&lt;br /&gt;
*slowmo duration:int - starts the slowmotion timer - slowmo 120&lt;br /&gt;
&lt;br /&gt;
===sound===&lt;br /&gt;
*chr_pain [ai_name:string | script_id:int] pain_type:string - forces a character to play a pain sound&lt;br /&gt;
&#039;&#039;pain type strings: light, medium, heavy, death&#039;&#039;&lt;br /&gt;
*chr_talk [ai_name:string | script_id:int] sound_name:string pre_pause:int post_pause:int [priority:string | ] - causes a character to play a line of dialogue - chr_talk victim_mansci_1 c02_62_11sci 0 0&lt;br /&gt;
*sound_ambient_start name:string [volume:float] - function to start an ambient sound - sound_ambient_start alarm_loop&lt;br /&gt;
*sound_ambient_stop name:string - function to stop an ambient sound - sound_ambient_stop alarm_loop&lt;br /&gt;
*sound_ambient_volume name:string [volume:float] [time:float] - function to set the volume of a playing ambient sound - sound_ambient_volume alarm_loop .35 1.0&lt;br /&gt;
*sound_dialog_play name:string - function to start character dialog playing - sound_dialog_play c00_01_18shinatama&lt;br /&gt;
*sound_dialog_play_block name:string - function to start character dialog playing after the current dialog finishes - sound_dialog_play_block c00_01_67shinatama&lt;br /&gt;
*sound_dialog_play_interrupt name:string - function to interrupt the current character dialog and play a new one - sound_dialog_play_interrupt c00_01_66shinatama&lt;br /&gt;
*sound_impulse_play name:string [volume:float] - function plays an impulse sound - sound_impulse_play glass_big 1.0&lt;br /&gt;
&#039;&#039;Works with all &amp;quot;imp.oni&amp;quot; files extracted (or created) with OniSplit.&#039;&#039;&lt;br /&gt;
*sound_list_broken_links - function writes a list of sounds which have broken links to a file&lt;br /&gt;
*sound_music_start name:string [volume:float] - function to start music playing - sound_music_start mus_asian 0.75&lt;br /&gt;
*sound_music_stop name:string - function to stop playing music - sound_music_stop mus_asian&lt;br /&gt;
*sound_music_volume name:string volume:float [time:float] - function to set the volume of playing music - sound_music_volume mus_asian 0.35 1.0&lt;br /&gt;
*sound_objects_reset (null) - reloads the sounds objects&lt;br /&gt;
&lt;br /&gt;
===target===&lt;br /&gt;
*target_set flag_id:int min_distance:float - Sets the target to the specified flag - target_set(7085,30.00)&lt;br /&gt;
&lt;br /&gt;
===timer===&lt;br /&gt;
*timer_start duration:float script:string - starts the countdown timer - timer_start 30 pipe1b&lt;br /&gt;
*timer_stop (null) - stops the countdown timer - timer_stop&lt;br /&gt;
&lt;br /&gt;
===triggers (lasers)===&lt;br /&gt;
*trig_activate trigger_id:int - activates a trigger - trig_activate 2&lt;br /&gt;
*trig_deactivate trigger_id:int - deactivates a trigger - trig_deactivate 2&lt;br /&gt;
*trig_hide trigger_id:int - hides a trigger - trig_hide 91&lt;br /&gt;
*trig_show trigger_id:int - shows a trigger - trig_show 91&lt;br /&gt;
*trig_speed trigger_id:int volume:float - sets a triggers speed - trig_speed 514 .15&lt;br /&gt;
*trig_reset trigger_id:int - resets a trigger to non-triggered state - trig_reset 91&lt;br /&gt;
&lt;br /&gt;
===trigger volumes===&lt;br /&gt;
*trigvolume_corpse trig_id:int - kills all the corpses inside a trigger volume - trigvolume_corpse 32&lt;br /&gt;
*trigvolume_count trig_id:int - counts the number of people in a trigger volume - trigvolume_count(36)&lt;br /&gt;
*trigvolume_enable name:string enable:int{0 | 1} [type:string{&amp;quot;all&amp;quot; | &amp;quot;entry&amp;quot; | &amp;quot;inside&amp;quot; | &amp;quot;exit&amp;quot;}] - enable or disable a trigger volume - trigvolume_enable lowroad1 0&lt;br /&gt;
*trigvolume_kill trig_id:int - kills all the characters inside a trigger volume - trigvolume_kill 64&lt;br /&gt;
*trigvolume_reset name:string - reset a trigger volume to its level-load state - trigvolume_reset tv_move4&lt;br /&gt;
*trigvolume_setscript name:string script:string type:string{&amp;quot;entry&amp;quot; | &amp;quot;inside&amp;quot; | &amp;quot;exit&amp;quot;} - set the script to call from a trigger volume&lt;br /&gt;
*trigvolume_trigger name:string type:string{&amp;quot;entry&amp;quot; | &amp;quot;inside&amp;quot; | &amp;quot;exit&amp;quot;} [ai_name:string | script_id:int] - fire off a trigger volume&lt;br /&gt;
&lt;br /&gt;
===turret===&lt;br /&gt;
*turret_activate turret_id:int - activates a turret&lt;br /&gt;
*turret_deactivate turret_id:int - deactivates a turret - turret_deactivate 20&lt;br /&gt;
*turret_reset turret_id:int - resets a turret to initial state&lt;br /&gt;
&lt;br /&gt;
===ui (HUD)===&lt;br /&gt;
*ui_fill_element element_name:string fill:int - sets part of the HUD to completely filled&lt;br /&gt;
*ui_flash_element element_name:string fill:int - sets part of the HUD to flash or not flash - ui_flash_element compass 1 (health)&lt;br /&gt;
*ui_show_element element_name:string show:int - shows or hides part of the HUD - ui_show_element left 1&lt;br /&gt;
*ui_show_help enable:int - debugging: enables the HUD help overlays - ui_show_help 1&lt;br /&gt;
&lt;br /&gt;
===weapon===&lt;br /&gt;
*weapon_reset (null) - resets all unheld weapons to their starting state - weapon_reset&lt;br /&gt;
*weapon_spawn weapontype:string flag:int - creates a new weapon - weapon_spawn w3_phr 7045&lt;br /&gt;
&lt;br /&gt;
[[Category:BSL docs]]&lt;br /&gt;
[[Category:Scripting tasks]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Demos_and_Doyle_-_Regenerating_Strikers.jpg&amp;diff=29951</id>
		<title>File:Demos and Doyle - Regenerating Strikers.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Demos_and_Doyle_-_Regenerating_Strikers.jpg&amp;diff=29951"/>
		<updated>2020-06-25T07:05:34Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Modding screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Modding screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Kojiro&amp;diff=29949</id>
		<title>Kojiro</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Kojiro&amp;diff=29949"/>
		<updated>2020-06-24T14:24:23Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kojiro is a communications trooper, and a prominent minion of Muro; unnamed in the story, the fans have supplied their own name for him. &lt;br /&gt;
&lt;br /&gt;
==Appearances in Game==&lt;br /&gt;
*At the end of {{C|3}}, he offers to kill Konoko as Muro&#039;s van drives away. &lt;br /&gt;
*At the end of {{C|5}} in the airplane besides Muro, where it is revealed that he has been monitoring Konoko, unveiling the existence of Shinatama. &lt;br /&gt;
*In {{C|6}} he is seen taking part in the raid on TCTF HQ himself, giving the order to &amp;quot;converge&amp;quot; to &amp;quot;all units&amp;quot; involved. &lt;br /&gt;
* In {{C|7}}, standing by Muro as Shinatama is being tortured&lt;br /&gt;
* In {{C|8}}, following Muro on his way out of the ACC.&lt;br /&gt;
&lt;br /&gt;
==Playable Character==&lt;br /&gt;
He was made into a custom playable character by [[User:Samer|Samer]] and also made part of the [[Saisei Team]]. Mod available [http://oni.bungie.org/community/forum/viewtopic.php?id=1282 here].&amp;lt;br&amp;gt;&lt;br /&gt;
Moreover, he was added to the game to replace the regular com guy, in the appearances mentioned above, as well as an opponent and joining Muro in the final battle, through the SamMegaPack Conversion Mod available [http://oni.bungie.org/forum/viewtopic.php?id=2467 here]. &lt;br /&gt;
&lt;br /&gt;
[[File:Kojiro-mod.jpg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Characters]][[Category:Comm Troopers]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Kojiro-mod.jpg&amp;diff=29947</id>
		<title>File:Kojiro-mod.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Kojiro-mod.jpg&amp;diff=29947"/>
		<updated>2020-06-24T14:17:47Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Modding screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Modding screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Saisei_Team&amp;diff=29946</id>
		<title>Saisei Team</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Saisei_Team&amp;diff=29946"/>
		<updated>2020-06-24T14:10:30Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Saisei Team is a concept by [[User:Samer|Samer]] inspired by [[User:Paradox-01|Paradox-01]]&#039;s all grey health regenerating Syndicate team.&lt;br /&gt;
Saisei is Japanese for regeneration/ regrowth / rebirth. &lt;br /&gt;
The Saisei Team is composed of: [[Kojiro]], [[Regenerating Fury]], [[Regenerating Tanker]] and the 2 Regenerating Striker brothers.&lt;br /&gt;
&lt;br /&gt;
[[File:Saisei1.png|800px]]&lt;br /&gt;
[[File:Saisei2.png|800px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Besides the ability to regenerate health, these characters share a common Emblem designed by Samer. [[File:Saisei Emblem.png|200px|thumb|right|Saisei Emblem]]&lt;br /&gt;
The emblem represents a person with arms wide open, similar to the pose these characters take when they health regenerate. &lt;br /&gt;
It also represents ascension, the bottom half of the emblem resembles spikes or mutations due to chrysalis. The overall shape also resembles, somewhat, an insect with wings, as reference to the Imago stage of the chrysalis, a term also used for the last stage of an insect&#039;s metamorphosis. &lt;br /&gt;
&lt;br /&gt;
[[File:Saisei logos.png|400px|thumb|left|Other appearances of the Saisei Emblem during its creation ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Syndicate]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Saisei_Emblem.png&amp;diff=29945</id>
		<title>File:Saisei Emblem.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Saisei_Emblem.png&amp;diff=29945"/>
		<updated>2020-06-24T14:09:18Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Modding projects]]&lt;br /&gt;
[[Category:Logos, icons and symbols]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Saisei_Team&amp;diff=29944</id>
		<title>Saisei Team</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Saisei_Team&amp;diff=29944"/>
		<updated>2020-06-24T14:08:37Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Saisei Team is a concept by [[User:Samer|Samer]] inspired by [[User:Paradox-01|Paradox-01]]&#039;s all grey health regenerating Syndicate team.&lt;br /&gt;
Saisei is Japanese for regeneration/ regrowth / rebirth. &lt;br /&gt;
The Saisei Team is composed of: [[Kojiro]], [[Regenerating Fury]], [[Regenerating Tanker]] and the 2 Regenerating Strikers brothers.&lt;br /&gt;
&lt;br /&gt;
[[File:Saisei1.png|800px]]&lt;br /&gt;
[[File:Saisei2.png|800px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Besides the ability to regenerate health, these characters share a common Emblem designed by Samer. [[File:Saisei Emblem.png|200px|thumb|right|Saisei Emblem]]&lt;br /&gt;
The emblem represents a person with arms wide open, similar to the pose these characters take when they health regenerate. &lt;br /&gt;
It also represents ascension, the bottom half of the emblem resembles spikes or mutations due to chrysalis. The overall shape also resembles, somewhat, an insect with wings, as reference to the Imago stage of the chrysalis, a term also used for the last stage of an insect&#039;s metamorphosis. &lt;br /&gt;
&lt;br /&gt;
[[File:Saisei logos.png|400px|thumb|left|Other appearances of the Saisei Emblem during its creation ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Syndicate]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Saisei_logos.png&amp;diff=29943</id>
		<title>File:Saisei logos.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Saisei_logos.png&amp;diff=29943"/>
		<updated>2020-06-24T13:59:39Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Modding projects
Category:Logos, icons and symbols&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Modding projects]]&lt;br /&gt;
[[Category:Logos, icons and symbols]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Saisei_Emblem.png&amp;diff=29942</id>
		<title>File:Saisei Emblem.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Saisei_Emblem.png&amp;diff=29942"/>
		<updated>2020-06-24T13:59:02Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Modding projects
Category:Logos, icons and symbols&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Modding projects]]&lt;br /&gt;
[[Category:Logos, icons and symbols]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Saisei2.png&amp;diff=29941</id>
		<title>File:Saisei2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Saisei2.png&amp;diff=29941"/>
		<updated>2020-06-24T13:52:10Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Modding screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Modding screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Saisei1.png&amp;diff=29940</id>
		<title>File:Saisei1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Saisei1.png&amp;diff=29940"/>
		<updated>2020-06-24T13:45:49Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Modding screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Modding screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Anniversary_Edition/Core&amp;diff=29916</id>
		<title>Anniversary Edition/Core</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Anniversary_Edition/Core&amp;diff=29916"/>
		<updated>2020-06-23T12:09:43Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are the fixes and patches that are automatically installed by the [[AE]].&lt;br /&gt;
&lt;br /&gt;
{|align=left border=1 cellspacing=0 color=black cellpadding=3 style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
!Package&lt;br /&gt;
!Name&lt;br /&gt;
!Ver.&lt;br /&gt;
!Description&lt;br /&gt;
!width=330|Preview&amp;lt;!--this column is for 256px-wide thumbnails of preview images--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/227 0]&lt;br /&gt;
|[[OniSplit]]&lt;br /&gt;
|0.9.95.0&lt;br /&gt;
|Allows the AE to apply mods to Oni&#039;s game data.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/265 1]&lt;br /&gt;
|[[XmlTools]]&lt;br /&gt;
|2.0&lt;br /&gt;
|Allows the AE to apply patch mods in Oni&#039;s game data.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/304 2]&lt;br /&gt;
|XmlTools Dependencies&lt;br /&gt;
|1.1&lt;br /&gt;
|The framework needed for XmlTools to run.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/269 7]&lt;br /&gt;
|AE Read-Me&lt;br /&gt;
|2015-03&lt;br /&gt;
|A shorter version of the documentation found on this wiki.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/231 10]&lt;br /&gt;
|Oni game app (Windows)&lt;br /&gt;
|1.0&lt;br /&gt;
|Provides a standard version of Oni.exe for the Daodan DLL to modify.&lt;br /&gt;
|[[Image:Oni icon-original 32px.png]]&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/232 11]&lt;br /&gt;
|[[AE:FERAL|Oni game app (Macs)]]&lt;br /&gt;
|1.2.1&lt;br /&gt;
|The Feral build of Oni.app for Intel Macs.&lt;br /&gt;
|[[Image:Oni icon-Mac 32px.png]]&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/233 20]&lt;br /&gt;
|[[Daodan DLL|Daodan DLL (Windows)]]&lt;br /&gt;
|4.0&lt;br /&gt;
|Patches Oni.exe. See link for details.&lt;br /&gt;
|[[Image:DLL icon-WinVista.png]]&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/273 50]&lt;br /&gt;
|Menu Fixes&lt;br /&gt;
|1.1&lt;br /&gt;
|Labels the Main Menu with &amp;quot;Anniversary Edition&amp;quot;, fixes the backwards &amp;quot;Invert Mouse&amp;quot; option label, corrects an out-of-order diary page, and corrects the spelling of &amp;quot;effect&amp;quot; in a restart dialog.&lt;br /&gt;
|[[Image:AE_Main_Menu.jpg|256px]]&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/268 2000]&lt;br /&gt;
|Globalization Fixes for Characters&lt;br /&gt;
|1.2&lt;br /&gt;
|This fixes incorrect occurrences of certain character classes, which are a side-effect of the globalization process by which the AE makes all classes available on all levels, and prevents TCTF from attacking civilians in Ch. 6.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/262 2200]&lt;br /&gt;
|Custom Character Variants &amp;amp; TRAM Fixes&lt;br /&gt;
|1.1&lt;br /&gt;
|Allows for new character classes to be referenced by mods without crashing if those characters are not installed. In addition, applies fixes to some missing\bugged vanilla TRAMS. (Adds Hitjewels and HitfootOuch hittype missing animations, Allows VDG-stunned throws for all characters). &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/284 2400]&lt;br /&gt;
|[[AE:DeLorean|Airport Vehicle Fix]]&lt;br /&gt;
|1&lt;br /&gt;
|Fixes an improperly-textured sports car that pulls away from the Airport suspiciously in the beginning of Chapter 4.&lt;br /&gt;
|[[Image:Car960 fix.jpg|256px]]&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/285 3000]&lt;br /&gt;
|Bomber Fix&lt;br /&gt;
|1.0&lt;br /&gt;
|Makes AI aware of the danger represented by a ticking Mad Bomber so they can (try to) evade the explosion.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/270 4000]&lt;br /&gt;
|Widescreen Fixes&lt;br /&gt;
|1.11&lt;br /&gt;
|Corrects issues that show up in 16:10 and 16:9 resolutions, which Bungie never thought you&#039;d see back when 4:3 was the standard. Hover over images for more info.&lt;br /&gt;
|[[Image:Widescreen fix-Ch02.jpg|256px|In the intro to Chapter 2, a nearby wall was blocking the camera at the beginning.]]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;line-height:75px&amp;quot;&amp;gt;[[Image:Widescreen fix-Ch11.jpg|256px|In the intro to Chapter 11, all the photos that were supposed to be hidden off-camera were visible.]]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;line-height:75px&amp;quot;&amp;gt;[[Image:Widescreen fix-Ch14.jpg|256px|In the intro to Chapter 14, Konoko was visible on the ground before she falls from the sky.]]&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/266 5000]&lt;br /&gt;
|Unlock All Moves&lt;br /&gt;
|1.3&lt;br /&gt;
|Makes all of Konoko&#039;s attacks available from Chapter 1 onward.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/234 5100]&lt;br /&gt;
|Vanilla BSL&lt;br /&gt;
|1.1&lt;br /&gt;
|Simply supplies the original, unaltered level scripts to help guarantee that mods are running on consistent scripting.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://mods.oni2.net/node/282 6000]&lt;br /&gt;
|Missing Sounds&lt;br /&gt;
|1.0&lt;br /&gt;
|Restores sounds to Oni that were missing upon its release (only one sound so far, the gears at the end of Chapter 12).&lt;br /&gt;
|[[Image:Gears with missing ambient sound.jpg|256px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Anniversary Edition]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:TRAM&amp;diff=29914</id>
		<title>XML:TRAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:TRAM&amp;diff=29914"/>
		<updated>2020-06-22T09:04:57Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_File_Header | type=TRAM | prev=TRAC | next=TRAS | name=Totoro Animation }}&lt;br /&gt;
&lt;br /&gt;
{{TOCfloat|side=right}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TRAM files - animation data for characters - are basically made of three chunks.&lt;br /&gt;
&lt;br /&gt;
* Meta data or &amp;quot;header&amp;quot;: animation type, state, flags, particle, sounds, etc.&lt;br /&gt;
* Animation data: pelvis heights, pelvis velocities, bone rotations&lt;br /&gt;
* Attack data: damage, self-damage, extends (danger zones for AI awareness) and throws&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;
&lt;br /&gt;
&lt;br /&gt;
===Decision path of animation lookup===&lt;br /&gt;
* At 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 child TRAC override those of the parent if their combination of state, type and variant is excatly the same.&lt;br /&gt;
* On the other hand child TRAC often miss some anims. For example elite striker don&#039;t have their own run anims, they must and will use the parent anims of normal strikers. The game was here designed to save resources. See [[XML:TRAC|TRAC]] page for details.&lt;br /&gt;
* A character possesses always one 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 played at a given moment.&lt;br /&gt;
* It follows the full decision path:&lt;br /&gt;
** anim &#039;&#039;&#039;state&#039;&#039;&#039; check&lt;br /&gt;
** event (user input / engine input for 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;
One detailed example:&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say we shapeshifted to an ninja ONCC, are in state Standing and hit the action key for taunt.&lt;br /&gt;
&lt;br /&gt;
The engine recognizes the context (an hostile character to interact with) and looks up anims of type Taunt.&lt;br /&gt;
&lt;br /&gt;
Since we are in combat mode the following anim must be of variant Combat if possible.&lt;br /&gt;
&lt;br /&gt;
Those lookups all boile down to two valid anims, NINCOMtaunt1 and NINCOMtaunt2.&lt;br /&gt;
&lt;br /&gt;
If there are multiple anims avaible at this point the engine has to pick 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 is just 5.&lt;br /&gt;
&lt;br /&gt;
Chances are quite high we will not see the Moon Walk taunt.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that if the engine cannot find an anim of a specific variant it will fall back to use the non-variant anim instead.&lt;br /&gt;
&lt;br /&gt;
Confused how Weights work? Apparently, that Weight value is only one part of the equation - otherwise NINCOMtaunt2 would never execute.&lt;br /&gt;
&lt;br /&gt;
If there is only one anim to chose from, it will always play no matter what Weight, even if it is zero.&lt;br /&gt;
&lt;br /&gt;
As for multiple anim being a valid choice the calculation seems to be this for an individual anim: weight / sum of all weight.&lt;br /&gt;
&lt;br /&gt;
For NINCOMtaunt2 it means 5 / 105 = 0,047 (4,7%).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of tags, types, and flags===&lt;br /&gt;
Use the search function of your web 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]]. Pool of valid TRAM (animations a character can chose from) is build from TRAC files registered in ONCC. Most of the anim types are associated with 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]]. Pool of valid TRAM, and therefor TRAS, (animations a character can chose from) is build from TRSC files registered in 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, tag will be simply &amp;quot;&amp;lt;Varient /&amp;gt;&amp;quot;, such as for non-combat animations. Otherwise 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.&lt;br /&gt;
&lt;br /&gt;
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 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 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 8 frames long; 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 with rotations are less noticeable, interpolations of different positions can cause an additional drift (i.e. sliding).&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 start and end. By default, animations without specified Shortcut interpolation give about 8 frames of interpolation. For moves starting or ending in idle better don&#039;t use interpolation. Just let the start and end frames have same positions and rotation values as the idle. Interpolations should always be considered as &#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 single 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 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;
|&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. Damage from particles and fall damage still hurt.&lt;br /&gt;
:BlockHigh&lt;br /&gt;
::While playing this animation, the player is invulnerable to high or undefined attacks within some arc in front of him. 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 attacks.&lt;br /&gt;
:Attack&lt;br /&gt;
::Animations with an attack part have this turned on. Uncertain what it does, but it may enable the melee soft-lock (where the character turns a bit during the animation to face a nearby enemy).&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;
::Something to do with jumps; not investigated.&lt;br /&gt;
:Atomic&lt;br /&gt;
::The whole animation must be played; player cannot interrupt it once it starts.&lt;br /&gt;
:NoTurn&lt;br /&gt;
:::Player cannot turn by mouse while performing this animation.&lt;br /&gt;
:AttackForward&lt;br /&gt;
::Unknown, but it looks like this is rough info for the AI about where an attack is aiming, from the player&#039;s point of view.&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;
::Unknown, but throws use it.&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 the hurt 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;
::It appears this flag was used 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 them 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;
::Unknown.&lt;br /&gt;
:DisableShield&lt;br /&gt;
::If the player has an active supershield (chr_super &amp;quot;name&amp;quot; 1), this forces him to disable it (chr_super &amp;quot;name&amp;quot; 0)&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;
| &amp;lt;!--Makes animation partical atomic?--&amp;gt;&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 damge during a timeframe defined by 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;
| &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;
| Player cannot make new inputs during this pause unless this animation is followed by a followup 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;
Combos ignore &amp;lt;Interpolation&amp;gt;&amp;lt;End&amp;gt;.&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)&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 accelerationsat start and end. By default, animations without specified Shortcut interpolation give about 8 frames of interpolation. For moves starting or ending in idle better don&#039;t use interpolation. Just let the start and end frames have same positions and rotation values as the idle. Interpolations should always be considered as &#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 animation the camera is detached rotation-wise. If this value matches the body&#039;s final rotation it will prevent a &#039;glitchy&#039; 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;
|&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|SoundConstances in ONCC]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ActionFrame&amp;gt;&lt;br /&gt;
| int&lt;br /&gt;
| Frame number for spacial events associated with this animation: weapon theft in disarms, weapon holster, Mukade actually teleporting, items getting handed over to player. &amp;quot;Give me that hypo!&amp;quot; Yada yada.&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 number exceeds frame count of animation the particle will simply die with end of 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;
|&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;Lifetime&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Alpha&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Interval&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
|&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 only the change of 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 those 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 (also with chr_debug_sphere = 1 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:&lt;br /&gt;
*X - Side axis. Negative values move the target to the right, positive values move the target to the left.&lt;br /&gt;
*Y - Height axis. Negative values move the target downwards, but in case of collision due to too low negative value, it will not make the target go below the surface. Positive values make the target go upwards - if the value is too big, the target will teleport above, and then immediately start falling, interrupting the target animation.&lt;br /&gt;
*Z - Forward axis. Negative values move the target backwards, positive values move the target forward.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&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 parent TRAC.&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; can also be 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;
| &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 overlapping, then the target can be [http://oni.bungie.org/community/forum/viewtopic.php?pid=39787#p39787 hit by both of them].&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;
|&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 Low and High are set then blocker can block from both standing and crouching positions.&lt;br /&gt;
: HalfDamage - Blocker 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 &amp;quot;knockback&amp;quot;ed by this amount.&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 for how long the target should remain in his &amp;quot;hit&amp;quot; animation state when he gets hit.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StunLength&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Number in frames for how long the target should remain in his blocking animation 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 for how long the target should perform his &amp;quot;stagger&amp;quot; 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 XML.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Extent&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| One tag per frame.&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 so that the AI has a chance to dodge an attack.&lt;br /&gt;
|}&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;
When you start &#039;&#039;&#039;[[Vago_(tool)|Vago]]&#039;&#039;&#039;, the &amp;quot;General&amp;quot; tab should be open by default. If not, click on it. Then follow these five easy steps.&lt;br /&gt;
&amp;lt;!-- General tab should be step 1 but i&#039;ve already another img. If Vago gets updated I will upload a better img. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; Select &amp;quot;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&amp;quot; as output format (&amp;quot;To&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3:&#039;&#039;&#039; Check &amp;quot;Another TRAM&amp;quot; to chose a character animation file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4:&#039;&#039;&#039; Click &amp;quot;Add&amp;quot; button to choose an ONCC file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5:&#039;&#039;&#039; Click &amp;quot;Convert&amp;quot;.&lt;br /&gt;
&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?] 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 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;
&lt;br /&gt;
===Editing 3D data===&lt;br /&gt;
====XSI====&lt;br /&gt;
You can load the DAE file into a compatible editor. So far, the community&#039;s favorite is {{ModTool}}.&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 is also intended for the animations. This makes sure the pelvis height will match and feet will not float in the air or go through the ground. &lt;br /&gt;
* First frame and last frame 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 been 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 [[wikipedia:Gimbal_lock|gimbal lock]].&lt;br /&gt;
&lt;br /&gt;
See also our [http://oni.bungie.org/forum/viewtopic.php?id=1433 OCF thread].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Blender====&lt;br /&gt;
Theoretical possible. Very difficult in practice and we don&#039;t have a tutorial on this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Import===&lt;br /&gt;
 onisplit -create output_path path_to\TRAMname.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additonal details==&lt;br /&gt;
===Speeding up existing animations===&lt;br /&gt;
s10k has created a XmlTools patch that allow the speedup of any existing TRAM (by removing frames). More information and download [http://mods.oni2.net/node/354 here.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Attacks===&lt;br /&gt;
====Extents and XML====&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; minimal 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 (again, see the MELE page).&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 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 one = 9 &amp;lt;Extent&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
:These extents are pretty impossible to guess, so leave them alone until Neo comes up with extent computation (probably from attack bones and bone rotations). However, always add at least one set of component tags, because those Length, MinY and MaxY components will be taken as the longest extent, the highest Y value, and the lowest Y value. Without those, a character won&#039;t react to this attack.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&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;
&lt;br /&gt;
====Adding extents to an existing animation====&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 representative size for 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;
&lt;br /&gt;
===Combos===&lt;br /&gt;
The type and order of keystroke or mouse clicks for combos is hardcoded.&lt;br /&gt;
&lt;br /&gt;
To assign an animation for a specific combo attack you set corresponding value in &amp;lt;Lookup&amp;gt;&amp;lt;Type&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting a value in &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 for player input, meaning the next animation can be executed more easily. (In vanilla 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;
&lt;br /&gt;
===Just Frame combos===&lt;br /&gt;
For short &#039;&#039;&#039;JF combos&#039;&#039;&#039; or &#039;&#039;&#039;JF anims&#039;&#039;&#039;. Created by Delano, inspired by the game series Tekken.&lt;br /&gt;
&lt;br /&gt;
JF means you have to press certain keys (w + k or w + p) at the exact time, which is more difficult than it might sound.&lt;br /&gt;
&lt;br /&gt;
Package 54000 has basically a collection of new state cycles.&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
===Throws===&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, removing the need to have that animation in the target&#039;s TRAC. Throw target (TRAM*tgt) animations can cover only up to 256 (0-255) frames.&lt;br /&gt;
&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;
&lt;br /&gt;
=====Excel macro=====&lt;br /&gt;
Needs update.&lt;br /&gt;
&lt;br /&gt;
[[Image:Animation_macro_v4.png|right|thumb]]&lt;br /&gt;
* [http://dl.dropbox.com/u/139715/OniGalore/TRAM_macro.zip Here&#039;s the macro] (for all TRAMs except overlays). [http://youtu.be/wxzJ8ahjP8k Demo vid here]. Usage:&lt;br /&gt;
* Put your files into the &amp;quot;input_and_output&amp;quot; folder.&lt;br /&gt;
* Disable macro security if you don&#039;t want to have to click on the macro options button every time.&lt;br /&gt;
* Close other worksheets before you run the macro.&lt;br /&gt;
* If you are not afraid of VBA code, you can enter the dev environment by hitting Alt+F11. If you want to extend the attack library with more screenshots and settings, search for: &amp;quot;LibraryThrows&amp;quot;, &amp;quot; LibraryAttack&amp;quot;, &amp;quot;Picture&amp;quot;, and &amp;quot;CBAttackHelp.AddItem&amp;quot;.&lt;br /&gt;
&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;
&lt;br /&gt;
===List of unused animations===&lt;br /&gt;
Here are all the known unused animations. These could be reintegrated/recycled/whatever....&lt;br /&gt;
&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 was placing something (bomb?) and then running away&lt;br /&gt;
* 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 scripts (mod) as spawn event, and by custom made character [[Shinatama Bot]]&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;
* 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: Striker checking his his gun and communicating with an ally (another unused alertness animation)&lt;br /&gt;
* THUGlev1_direct: Thug probably directing a truck driver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From modders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following files are available in DAE (and maybe .oni format).&lt;br /&gt;
&lt;br /&gt;
[[Image:female_stun.jpg|right|thumb|charA and charB performing stun animations]]&lt;br /&gt;
&lt;br /&gt;
* [https://www.dropbox.com/s/5d6aki276ryb61y/REDCOMjump_fw_crouch--double_flip--dae.zip?dl=0 Fury double flip] (.dae)&lt;br /&gt;
* [https://www.dropbox.com/s/dww2hf1yj6e7wqa/KONenter_prone_mode--oni_and_dae.zip?dl=0 Konoko enters prone mode] (.dae + .oni)&lt;br /&gt;
* [https://www.dropbox.com/s/3llicjdxbva836p/KONprone_getup--dae.zip?dl=0 Konoko leaves prone mode] (.dae)&lt;br /&gt;
** These are artifacts of Paradox&#039;s work on his [http://mods.oni2.net/node/119 Prone Mode] mod.&lt;br /&gt;
* [https://www.dropbox.com/s/luf7ayqikcuupo7/female_stun--dae.zip?dl=0 Female stun (throw pair)] (.dae)&lt;br /&gt;
** Needs to be slowed down by adding more frames.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FX - special effects===&lt;br /&gt;
If the scene is overloaded by particle - including motion blur - these effects will stop to be rendered.&lt;br /&gt;
&lt;br /&gt;
So, don&#039;t overuse effects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Adding colorful 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;
&lt;br /&gt;
====Motion blur====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML:TRAM&amp;diff=29913</id>
		<title>XML:TRAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML:TRAM&amp;diff=29913"/>
		<updated>2020-06-22T08:59:59Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XML_File_Header | type=TRAM | prev=TRAC | next=TRAS | name=Totoro Animation }}&lt;br /&gt;
&lt;br /&gt;
{{TOCfloat|side=right}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TRAM files - animation data for characters - are basically made of three chunks.&lt;br /&gt;
&lt;br /&gt;
* Meta data or &amp;quot;header&amp;quot;: animation type, state, flags, particle, sounds, etc.&lt;br /&gt;
* Animation data: pelvis heights, pelvis velocities, bone rotations&lt;br /&gt;
* Attack data: damage, self-damage, extends (danger zones for AI awareness) and throws&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;
&lt;br /&gt;
&lt;br /&gt;
===Decision path of animation lookup===&lt;br /&gt;
* At 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 child TRAC override those of the parent if their combination of state, type and variant is excatly the same.&lt;br /&gt;
* On the other hand child TRAC often miss some anims. For example elite striker don&#039;t have their own run anims, they must and will use the parent anims of normal strikers. The game was here designed to save resources. See [[XML:TRAC|TRAC]] page for details.&lt;br /&gt;
* A character possesses always one 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 played at a given moment.&lt;br /&gt;
* It follows the full decision path:&lt;br /&gt;
** anim &#039;&#039;&#039;state&#039;&#039;&#039; check&lt;br /&gt;
** event (user input / engine input for 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;
One detailed example:&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say we shapeshifted to an ninja ONCC, are in state Standing and hit the action key for taunt.&lt;br /&gt;
&lt;br /&gt;
The engine recognizes the context (an hostile character to interact with) and looks up anims of type Taunt.&lt;br /&gt;
&lt;br /&gt;
Since we are in combat mode the following anim must be of variant Combat if possible.&lt;br /&gt;
&lt;br /&gt;
Those lookups all boile down to two valid anims, NINCOMtaunt1 and NINCOMtaunt2.&lt;br /&gt;
&lt;br /&gt;
If there are multiple anims avaible at this point the engine has to pick 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 is just 5.&lt;br /&gt;
&lt;br /&gt;
Chances are quite high we will not see the Moon Walk taunt.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that if the engine cannot find an anim of a specific variant it will fall back to use the non-variant anim instead.&lt;br /&gt;
&lt;br /&gt;
Confused how Weights work? Apparently, that Weight value is only one part of the equation - otherwise NINCOMtaunt2 would never execute.&lt;br /&gt;
&lt;br /&gt;
If there is only one anim to chose from, it will always play no matter what Weight, even if it is zero.&lt;br /&gt;
&lt;br /&gt;
As for multiple anim being a valid choice the calculation seems to be this for an individual anim: weight / sum of all weight.&lt;br /&gt;
&lt;br /&gt;
For NINCOMtaunt2 it means 5 / 105 = 0,047 (4,7%).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of tags, types, and flags===&lt;br /&gt;
Use the search function of your web 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]]. Pool of valid TRAM (animations a character can chose from) is build from TRAC files registered in ONCC. Most of the anim types are associated with 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]]. Pool of valid TRAM, and therefor TRAS, (animations a character can chose from) is build from TRSC files registered in 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, tag will be simply &amp;quot;&amp;lt;Varient /&amp;gt;&amp;quot;, such as for non-combat animations. Otherwise 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.&lt;br /&gt;
&lt;br /&gt;
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 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 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 8 frames long; 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 with rotations are less noticeable, interpolations of different positions can cause an additional drift (i.e. sliding).&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 start and end. By default, animations without specified Shortcut interpolation give about 8 frames of interpolation. For moves starting or ending in idle better don&#039;t use interpolation. Just let the start and end frames have same positions and rotation values as the idle. Interpolations should always be considered as &#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 single 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 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;
|&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. Damage from particles and fall damage still hurt.&lt;br /&gt;
:BlockHigh&lt;br /&gt;
::While playing this animation, the player is invulnerable to high or undefined attacks within some arc in front of him. 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 attacks.&lt;br /&gt;
:Attack&lt;br /&gt;
::Animations with an attack part have this turned on. Uncertain what it does, but it may enable the melee soft-lock (where the character turns a bit during the animation to face a nearby enemy).&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;
::Something to do with jumps; not investigated.&lt;br /&gt;
:Atomic&lt;br /&gt;
::The whole animation must be played; player cannot interrupt it once it starts.&lt;br /&gt;
:NoTurn&lt;br /&gt;
:::Player cannot turn by mouse while performing this animation.&lt;br /&gt;
:AttackForward&lt;br /&gt;
::Unknown, but it looks like this is rough info for the AI about where an attack is aiming, from the player&#039;s point of view.&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;
::Unknown, but throws use it.&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 the hurt 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;
::It appears this flag was used 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 them 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;
::Unknown.&lt;br /&gt;
:DisableShield&lt;br /&gt;
::If the player has an active supershield (chr_super &amp;quot;name&amp;quot; 1), this forces him to disable it (chr_super &amp;quot;name&amp;quot; 0)&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;
| &amp;lt;!--Makes animation partical atomic?--&amp;gt;&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 damge during a timeframe defined by 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;
| &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;
| Player cannot make new inputs during this pause unless this animation is followed by a followup 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;
Combos ignore &amp;lt;Interpolation&amp;gt;&amp;lt;End&amp;gt;.&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)&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 accelerationsat start and end. By default, animations without specified Shortcut interpolation give about 8 frames of interpolation. For moves starting or ending in idle better don&#039;t use interpolation. Just let the start and end frames have same positions and rotation values as the idle. Interpolations should always be considered as &#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 animation the camera is detached rotation-wise. If this value matches the body&#039;s final rotation it will prevent a &#039;glitchy&#039; 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;
|&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|SoundConstances in ONCC]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;ActionFrame&amp;gt;&lt;br /&gt;
| int&lt;br /&gt;
| Frame number for spacial events associated with this animation: weapon theft in disarms, weapon holster, Mukade actually teleporting, items getting handed over to player. &amp;quot;Give me that hypo!&amp;quot; Yada yada.&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 number exceeds frame count of animation the particle will simply die with end of 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;
|&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;Lifetime&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Alpha&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Interval&amp;gt;&lt;br /&gt;
| int8&lt;br /&gt;
|&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 only the change of 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 those 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 (also with chr_debug_sphere = 1 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:&lt;br /&gt;
*X - Side axis. Negative values move the target to the right, positive values move the target to the left.&lt;br /&gt;
*Y - Height axis. Negative values move the target downwards, but in case of collision due to too low negative value, it will not make the target go below the surface. Positive values make the target go upwards - if the value is too big, the target will teleport above, and then immediately start falling, interrupting the target animation.&lt;br /&gt;
*Z - Forward axis. Negative values move the target backwards, positive values move the target forward.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Angle&amp;gt;&lt;br /&gt;
| float&lt;br /&gt;
|&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 parent TRAC.&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; can also be 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;
| &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 overlapping, then the target can be [http://oni.bungie.org/community/forum/viewtopic.php?pid=39787#p39787 hit by both of them].&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;
|&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 Low and High are set then blocker can block from both standing and crouching positions.&lt;br /&gt;
: HalfDamage - Blocker 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 &amp;quot;knockback&amp;quot;ed by this amount.&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 for how long the target should remain in his &amp;quot;hit&amp;quot; animation state when he gets hit.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;StunLength&amp;gt;&lt;br /&gt;
| int16&lt;br /&gt;
| Number in frames for how long the target should remain in his blocking animation 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 for how long the target should perform his &amp;quot;stagger&amp;quot; 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 XML.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Extent&amp;gt;&lt;br /&gt;
| parent tag&lt;br /&gt;
| One tag per frame.&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 so that the AI has a chance to dodge an attack.&lt;br /&gt;
|}&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;
When you start &#039;&#039;&#039;[[Vago_(tool)|Vago]]&#039;&#039;&#039;, the &amp;quot;General&amp;quot; tab should be open by default. If not, click on it. Then follow these five easy steps.&lt;br /&gt;
&amp;lt;!-- General tab should be step 1 but i&#039;ve already another img. If Vago gets updated I will upload a better img. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; Select &amp;quot;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&amp;quot; as output format (&amp;quot;To&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3:&#039;&#039;&#039; Check &amp;quot;Another TRAM&amp;quot; to chose a character animation file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4:&#039;&#039;&#039; Click &amp;quot;Add&amp;quot; button to choose an ONCC file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5:&#039;&#039;&#039; Click &amp;quot;Convert&amp;quot;.&lt;br /&gt;
&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?] 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 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;
&lt;br /&gt;
===Editing 3D data===&lt;br /&gt;
====XSI====&lt;br /&gt;
You can load the DAE file into a compatible editor. So far, the community&#039;s favorite is {{ModTool}}.&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 is also intended for the animations. This makes sure the pelvis height will match and feet will not float in the air or go through the ground. &lt;br /&gt;
* First frame and last frame 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 been 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 [[wikipedia:Gimbal_lock|gimbal lock]].&lt;br /&gt;
&lt;br /&gt;
See also our [http://oni.bungie.org/forum/viewtopic.php?id=1433 OCF thread].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Blender====&lt;br /&gt;
Theoretical possible. Very difficult in practice and we don&#039;t have a tutorial on this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Import===&lt;br /&gt;
 onisplit -create output_path path_to\TRAMname.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additonal details==&lt;br /&gt;
===Speeding up existing animations===&lt;br /&gt;
s10k has created a XmlTools patch that allow the speedup of any existing TRAM (by removing frames). More information and download [http://mods.oni2.net/node/354 here.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Attacks===&lt;br /&gt;
====Extents and XML====&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; minimal 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 (again, see the MELE page).&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 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 one = 9 &amp;lt;Extent&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
:These extents are pretty impossible to guess, so leave them alone until Neo comes up with extent computation (probably from attack bones and bone rotations). However, always add at least one set of component tags, because those Length, MinY and MaxY components will be taken as the longest extent, the highest Y value, and the lowest Y value. Without those, a character won&#039;t react to this attack.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&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;
&lt;br /&gt;
====Adding extents to an existing animation====&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 representative size for 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;
&lt;br /&gt;
===Combos===&lt;br /&gt;
The type and order of keystroke or mouse clicks for combos is hardcoded.&lt;br /&gt;
&lt;br /&gt;
To assign an animation for a specific combo attack you set corresponding value in &amp;lt;Lookup&amp;gt;&amp;lt;Type&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Setting a value in &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 for player input, meaning the next animation can be executed more easily. (In vanilla 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;
&lt;br /&gt;
===Just Frame combos===&lt;br /&gt;
For short &#039;&#039;&#039;JF combos&#039;&#039;&#039; or &#039;&#039;&#039;JF anims&#039;&#039;&#039;. Created by Delano, inspired by the game series Tekken.&lt;br /&gt;
&lt;br /&gt;
JF means you have to press certain keys (w + k or w + p) at the exact time, which is more difficult than it might sound.&lt;br /&gt;
&lt;br /&gt;
Package 54000 has basically a collection of new state cycles.&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
===Throws===&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, removing the need to have that animation in the target&#039;s TRAC. Throw target (TRAM*tgt) animations can cover only up to 256 (0-255) frames.&lt;br /&gt;
&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;
&lt;br /&gt;
=====Excel macro=====&lt;br /&gt;
Needs update.&lt;br /&gt;
&lt;br /&gt;
[[Image:Animation_macro_v4.png|right|thumb]]&lt;br /&gt;
* [http://dl.dropbox.com/u/139715/OniGalore/TRAM_macro.zip Here&#039;s the macro] (for all TRAMs except overlays). [http://youtu.be/wxzJ8ahjP8k Demo vid here]. Usage:&lt;br /&gt;
* Put your files into the &amp;quot;input_and_output&amp;quot; folder.&lt;br /&gt;
* Disable macro security if you don&#039;t want to have to click on the macro options button every time.&lt;br /&gt;
* Close other worksheets before you run the macro.&lt;br /&gt;
* If you are not afraid of VBA code, you can enter the dev environment by hitting Alt+F11. If you want to extend the attack library with more screenshots and settings, search for: &amp;quot;LibraryThrows&amp;quot;, &amp;quot; LibraryAttack&amp;quot;, &amp;quot;Picture&amp;quot;, and &amp;quot;CBAttackHelp.AddItem&amp;quot;.&lt;br /&gt;
&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;
&lt;br /&gt;
===List of unused animations===&lt;br /&gt;
Here are all the known unused animations. These could be reintegrated/recycled/whatever....&lt;br /&gt;
&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 was placing something (bomb?) and then running away&lt;br /&gt;
* 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 scripts (mod) as spawn event&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;
* 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: Striker checking his his gun and communicating with an ally (another unused alertness animation)&lt;br /&gt;
* THUGlev1_direct: Thug probably directing a truck driver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From modders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following files are available in DAE (and maybe .oni format).&lt;br /&gt;
&lt;br /&gt;
[[Image:female_stun.jpg|right|thumb|charA and charB performing stun animations]]&lt;br /&gt;
&lt;br /&gt;
* [https://www.dropbox.com/s/5d6aki276ryb61y/REDCOMjump_fw_crouch--double_flip--dae.zip?dl=0 Fury double flip] (.dae)&lt;br /&gt;
* [https://www.dropbox.com/s/dww2hf1yj6e7wqa/KONenter_prone_mode--oni_and_dae.zip?dl=0 Konoko enters prone mode] (.dae + .oni)&lt;br /&gt;
* [https://www.dropbox.com/s/3llicjdxbva836p/KONprone_getup--dae.zip?dl=0 Konoko leaves prone mode] (.dae)&lt;br /&gt;
** These are artifacts of Paradox&#039;s work on his [http://mods.oni2.net/node/119 Prone Mode] mod.&lt;br /&gt;
* [https://www.dropbox.com/s/luf7ayqikcuupo7/female_stun--dae.zip?dl=0 Female stun (throw pair)] (.dae)&lt;br /&gt;
** Needs to be slowed down by adding more frames.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FX - special effects===&lt;br /&gt;
If the scene is overloaded by particle - including motion blur - these effects will stop to be rendered.&lt;br /&gt;
&lt;br /&gt;
So, don&#039;t overuse effects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Adding colorful 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;
&lt;br /&gt;
====Motion blur====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{XML}}&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Regenerating_Fury&amp;diff=29907</id>
		<title>Regenerating Fury</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Regenerating_Fury&amp;diff=29907"/>
		<updated>2020-06-21T10:02:16Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Regenerating Fury is a custom character by [[User:Samer|Samer]]. &amp;lt;br&amp;gt;&lt;br /&gt;
She is a unique looking fury that can health regenerate like [[Barabas]].. &amp;lt;br&amp;gt;&lt;br /&gt;
Initially, the concept of a health regenerating fury is by [[User:Paradox-01|Paradox-01]]. She was called Grey Fury in her earlier versions.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
She is the leader of the furies who was given a Chrysalis.&amp;lt;br&amp;gt; &lt;br /&gt;
She is part of the [[Saisei Team]] along with [[Kojiro]] and [[Regenerating Tanker]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The mod can be found [http://oni.bungie.org/community/forum/viewtopic.php?id=1317 here]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Regenerating Fury.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Furies]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Regenerating_Fury.jpg&amp;diff=29906</id>
		<title>File:Regenerating Fury.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Regenerating_Fury.jpg&amp;diff=29906"/>
		<updated>2020-06-21T09:57:26Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Modding screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Modding screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Modifying_textures&amp;diff=29905</id>
		<title>Modifying textures</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Modifying_textures&amp;diff=29905"/>
		<updated>2020-06-21T07:47:31Z</updated>

		<summary type="html">&lt;p&gt;Samer: added the fourth envmap that is used for Konoko&amp;#039;s armor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are some brief instructions on how to modify the texture maps.  You might want make new skins for a character or even a new outfit for Konoko!&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Extract TXMP&#039;&#039;&#039; (Texture maps)&lt;br /&gt;
:1) Make a folder for the textures to go into (&amp;quot;tex_folder&amp;quot; below).&lt;br /&gt;
:2) You will need to &#039;cd&#039; (change directory in the terminal) to AE/AEInstaller/vanilla/.&lt;br /&gt;
:3) To extract all the TXMPs, use the following command:&lt;br /&gt;
:onisplit -extract:png tex_folder level0_Final.dat&lt;br /&gt;
&lt;br /&gt;
:For example:&lt;br /&gt;
:PC users: onisplit -extract:png tex_folder level0_Final.dat (Or you can use -extract:tga to get the files in Targa format)&lt;br /&gt;
:Mac users: mono onisplit.exe -extract:png tex_folder level0_Final.dat&lt;br /&gt;
:3) Now all the TXMPs from Oni (over 2,000) will be located in the Oni/TXMPfiles&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Modify TXMP&#039;&#039;&#039;&lt;br /&gt;
:1) Currently, many of Oni&#039;s texture maps are 64x64, or 128x128; unmodded, Oni supports textures up to 256x256, but the current patched version of Oni for Windows supports 512x512, and the patched version of Oni for macOS supports up to 1024x1024.&lt;br /&gt;
:2) Use your favorite graphic editor to make your changes.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Create TXMP*.oni files&#039;&#039;&#039;&lt;br /&gt;
For most image files you can use the following command:&lt;br /&gt;
:PC: onisplit -create:txmp destination_directory options source_image_file&lt;br /&gt;
:Mac: mono onisplit.exe -create:txmp destination_directory options source_image_file&lt;br /&gt;
 &lt;br /&gt;
: The source_image_file can be dds or tga. &amp;quot;Color indexed&amp;quot; and &amp;quot;black and white&amp;quot; tga files are not supported currently. Other image file formats (png, jpg, bmp, tif) may work depending on Mono/.NET support for them. onisplit will automatically prepend TXMP to the output file name if the source file name does not start with TXMP already.&lt;br /&gt;
 &lt;br /&gt;
:Options can be&lt;br /&gt;
:-nouwrap - set the &amp;quot;U wrapping disabled&amp;quot; flag&lt;br /&gt;
:-nowwrap - set the &amp;quot;V wrapping disabled&amp;quot; flag&lt;br /&gt;
:-format:bgr555 (or dxt1) for most of the stuff&lt;br /&gt;
:-format:bgr32 for skyboxes&lt;br /&gt;
:-format:bgra4444 for transparent/reflective stuff (in a couple of places bgra5551 is used but probably it&#039;s not big deal if bgra4444 is used instead)&lt;br /&gt;
:-genmipmaps - generate mipmaps if they are not already present in the source file and if the source file is not dxt1 compressed&lt;br /&gt;
:-envmap - envmap used for reflectivity&lt;br /&gt;
 &lt;br /&gt;
:Here is an example&lt;br /&gt;
:PC: onsplit -create:txmp dest_dir -format:bgr555 -genmipmaps TXMPSTR_EASY_1%2FSTRbicepR.tga&lt;br /&gt;
:Mac: mono onisplit.exe -create:txmp dest_dir -format:bgr555 -genmipmaps TXMPSTR_EASY_1%2FSTRbicepR.tga&lt;br /&gt;
 &lt;br /&gt;
:To batch process a folder you can use this command;&lt;br /&gt;
:PC: onisplit -create:txmp dest_dir -format:bgr555 -genmipmaps folder_of_images\*.tga&lt;br /&gt;
:Mac: mono onisplit.exe -create:txmp dest_dir -format:bgr555 -genmipmaps folder_of_images/*.tga&lt;br /&gt;
 &lt;br /&gt;
:For image files that use an envmap (Such as Striker armor, Ninja armor, Elite armor, Konoko&#039;s face, weapons), you will need to include the name of the envmap:&lt;br /&gt;
:PC: onisplit -create:txmp dest_dir -format:bgra4444 -genmipmaps -envmap:envmapname imagefile.tga&lt;br /&gt;
:Mac: mono onisplit.exe -create:txmp dest_dir -format:bgra4444 -genmipmaps -envmap:envmapname imagefile.tga&lt;br /&gt;
 &lt;br /&gt;
:3) Once you have created the TXMP*.oni file, you will need to put it in the level0_Final folder and then recompile the level.&lt;br /&gt;
&lt;br /&gt;
:4) Play the game and see how your new texture maps look.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TXMP &amp;amp; XML&#039;&#039;&#039;&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.&lt;br /&gt;
:* options for &amp;lt;Flags&amp;gt; (more than one are separated by a double space) : None  HasMipMaps  DisableUWrap  DisableVWrap  AnimUseLocalTime  AnimBackToBack  AnimRandom  AnimIgnoreGlobalTime  ShieldEffect  InvisibilityEffect  DaodanEffect&lt;br /&gt;
:* options for &amp;lt;Format&amp;gt; : ARGB4444 / RGB555 / ARGB5551 / RGB888 / DXT1&lt;br /&gt;
: 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;
: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 width 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;
&#039;&#039;&#039;Reflective textures&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:Keep in mind, Oni simulates reflectivity using textures and alpha channels.&lt;br /&gt;
&lt;br /&gt;
:To see how a reflective texture is made, extract TXMPSTR_HARD_1%2FSTRchest.oni as XML.  You will get a TGA and XML file.&lt;br /&gt;
:Open the TGA file in a photo editor and it has an alpha channel. The alpha channel determines what part of the texture is reflective.  Black in the alpha channel means no reflectivity, gray to white is increasing amounts of reflectivity.&lt;br /&gt;
&lt;br /&gt;
:Now in the XML file, there are 2 properties you will be concerned with:&lt;br /&gt;
:&amp;lt;Format&amp;gt;ARGB4444&amp;lt;/Format&amp;gt;&lt;br /&gt;
:&amp;lt;EnvMap&amp;gt;TXMPstrikerarmor&amp;lt;/EnvMap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The &amp;lt;Format&amp;gt; is how the texture will be saved.  In this case, the striker&#039;s chest texture was originally saved with an alpha channel.  Now there are 3 formats that can have an alpha channel:&lt;br /&gt;
&lt;br /&gt;
:ARGB4444 = 4,096 colors, alpha 16 colors&lt;br /&gt;
:ARGB5551 = 32,768 colors, alpha 2 colors&lt;br /&gt;
:ARGB8888 = 16,777,216 colors, alpha 256 colors (Note: this one requires the Oni engine to be patched and not many have the patched version)&lt;br /&gt;
&lt;br /&gt;
:The &amp;lt;EnvMap&amp;gt; refers to what texture is used to simulate reflectivity. There are 4 envmap files that are used for characters:&lt;br /&gt;
:TXMPstrikerarmor&lt;br /&gt;
:TXMPenvksface&lt;br /&gt;
:TXMPenvksarmor&lt;br /&gt;
:TXMPSUPER_REFLECT&lt;br /&gt;
&lt;br /&gt;
:You might want to extract this file as xml to see its properties.&lt;br /&gt;
&lt;br /&gt;
:Once you make your texture that has an alpha channel, use the XML file to convert it back to .oni file.&lt;br /&gt;
(from here: http://oni.bungie.org/community/forum/viewtopic.php?pid=19297#p19297, to be edited and completed)&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tutorials]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Shinatama_Evolved&amp;diff=29895</id>
		<title>Shinatama Evolved</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Shinatama_Evolved&amp;diff=29895"/>
		<updated>2020-06-19T01:51:31Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Shinatama Bot&#039;&#039;&#039; is a custom playable character developed by [[User:Samer|Samer]]. &amp;lt;br&amp;gt;&lt;br /&gt;
The idea is [[Shinatama]] got rebuilt/resurrected into a more combat-able body. &amp;lt;br&amp;gt;&lt;br /&gt;
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;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The playable character comes with 2 outfits and custom move set and is available [http://oni.bungie.org/community/forum/viewtopic.php?id=1240 here]&lt;br /&gt;
&lt;br /&gt;
https://lh6.googleusercontent.com/-U1XHpMAAxGk/TyUAVoIWCUI/AAAAAAAAB8o/JXLVWO5CvzE/s800/shin.jpg&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The second outfit is based on DarkLitria&#039;s [[:Image:Shini3.png|sketch]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:Characters]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Regenerating_Tanker&amp;diff=29894</id>
		<title>Regenerating Tanker</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Regenerating_Tanker&amp;diff=29894"/>
		<updated>2020-06-19T01:49:32Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Regenerating Tanker is a custom character concept by [[User:Samer|Samer]]. &lt;br /&gt;
&lt;br /&gt;
The idea is he&#039;s a tanker with the ability of health regeneration like [[Barabas]]. &amp;lt;br&amp;gt;&lt;br /&gt;
He&#039;s the pro wrestler, Syndicate commander on whom the Tanker SLDs were later based on. &amp;lt;br&amp;gt;&lt;br /&gt;
Along with [[Kojiro]] and [[Grey Fury]] they make up the [[Saisei Team]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The mod can be found [http://oni.bungie.org/community/forum/viewtopic.php?id=2046 here]&lt;br /&gt;
&lt;br /&gt;
[[File:Regenerating Tanker.jpeg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Tankers]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Regenerating_Tanker.jpg&amp;diff=29893</id>
		<title>File:Regenerating Tanker.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Regenerating_Tanker.jpg&amp;diff=29893"/>
		<updated>2020-06-19T01:46:17Z</updated>

		<summary type="html">&lt;p&gt;Samer: Category:Modding screenshots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Modding screenshots]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Regenerating_Tanker&amp;diff=29892</id>
		<title>Regenerating Tanker</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Regenerating_Tanker&amp;diff=29892"/>
		<updated>2020-06-19T01:39:19Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Regenerating Tanker is a custom character concept by [[User:Samer|Samer]]. The idea is he&#039;s a tanker with the ability of health regeneration like [[Barabas]]. &lt;br /&gt;
He&#039;s the latest in the chrysalis experimentation by the Syndicate, a strange mix of SLD technology and chrysalis. &lt;br /&gt;
Along with [[Kojiro]] and [[Grey Fury]] they make up the [[Saisei Team]].&lt;br /&gt;
&lt;br /&gt;
The mod can be found [http://oni.bungie.org/community/forum/viewtopic.php?id=2046 here]&lt;br /&gt;
&lt;br /&gt;
https://lh4.googleusercontent.com/-xL-JyKO7UMM/TkgpyUUqtII/AAAAAAAAB3A/ZyXnc3lmbvk/s800/Captures34.jpg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Tankers]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Kojiro&amp;diff=29891</id>
		<title>Kojiro</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Kojiro&amp;diff=29891"/>
		<updated>2020-06-19T01:34:31Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kojiro is a communications trooper, and a prominent minion of Muro; unnamed in the story, the fans have supplied their own name for him. &lt;br /&gt;
&lt;br /&gt;
==Appearances in Game==&lt;br /&gt;
*At the end of {{C|3}}, he offers to kill Konoko as Muro&#039;s van drives away. &lt;br /&gt;
*At the end of {{C|5}} in the airplane besides Muro, where it is revealed that he has been monitoring Konoko, unveiling the existence of Shinatama. &lt;br /&gt;
*In {{C|6}} he is seen taking part in the raid on TCTF HQ himself, giving the order to &amp;quot;converge&amp;quot; to &amp;quot;all units&amp;quot; involved. &lt;br /&gt;
* In {{C|7}}, standing by Muro as Shinatama is being tortured&lt;br /&gt;
* In {{C|8}}, following Muro on his way out of the ACC.&lt;br /&gt;
&lt;br /&gt;
==Playable Character==&lt;br /&gt;
He was made into a custom playable character by [[User:Samer|Samer]] and also made part of the [[Saisei Team]]. Mod available [http://oni.bungie.org/community/forum/viewtopic.php?id=1282 here]&lt;br /&gt;
&lt;br /&gt;
https://lh6.googleusercontent.com/-zMDEqynvciY/UDt3WKgmjCI/AAAAAAAACag/RCLtMNTupHE/s800/2012-08-27_071037.jpg&lt;br /&gt;
&lt;br /&gt;
[[Category:Characters]][[Category:Comm Troopers]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Casey&amp;diff=29887</id>
		<title>Casey</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Casey&amp;diff=29887"/>
		<updated>2020-06-19T01:26:00Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Casey]] is the name given by the fandom to the enigmatic red-haired man who appears in the [[:Image:Intro_frame_0562.png|intro movie]], and on the fail screens of [[:Image:Act_1_.MISSION_FAILED.png|Act 1]] and [[:Image:Act_2_.MISSION_FAILED.png|Act 2]].&lt;br /&gt;
*[[Hardy LeBel]] [http://carnage.bungie.org/oniforum/oni.forum.pl?read=19649 stated] on the {{OCF}} that he might have been a love interest of [[Konoko]]&#039;s in the storyline 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]] (a.k.a. andrashi), [[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;
*Casey was made into a playable character by [[User:Samer|Samer]], and was given custom moves and various outfits. The mod can be discussed [http://oni.bungie.org/community/forum/viewtopic.php?id=1262 here]&lt;br /&gt;
https://lh6.googleusercontent.com/-wtSeg28uXA8/UDIFDTq2DgI/AAAAAAAACUQ/yrexZTjNME4/s800/2012-08-20_122305.jpg&lt;br /&gt;
*Prior developments of this character are due to Loser (a.k.a. andrashi) and geyser. They weren&#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;
[[Category:Characters]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BGI_characters&amp;diff=29886</id>
		<title>BGI characters</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BGI_characters&amp;diff=29886"/>
		<updated>2020-06-19T01:25:21Z</updated>

		<summary type="html">&lt;p&gt;Samer: &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 [http://wiki.oni2.net/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;
https://lh5.googleusercontent.com/-uUMIztpp5dc/UHi1DxohfAI/AAAAAAAADCE/_5FeN7iCuOw/s400/Oni%25202012-10-13%252003-23-54-54_cr.jpg&lt;br /&gt;
https://lh3.googleusercontent.com/-cIvz49ukHUo/UHi1J-HnhnI/AAAAAAAADCM/msJwdCrWqi4/s400/2012-10-13_032154.jpg&lt;br /&gt;
&lt;br /&gt;
==[[Sarai]]==&lt;br /&gt;
*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/community/forum/viewtopic.php?pid=46869#p46869 here].&lt;br /&gt;
https://lh4.googleusercontent.com/-VdlCgdrk9SQ/UdETSEN-_7I/AAAAAAAAEIw/L1SvBM5S_uk/s640/2013-07-01_081718.jpg&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;
*The characters&#039; design is inspired/influenced by The Matrix&#039;s Agents.&lt;br /&gt;
*Mod available [http://oni.bungie.org/community/forum/viewtopic.php?id=1329 here].&lt;br /&gt;
https://lh3.googleusercontent.com/-j_xPDwBVpAE/UVvlObgWLRI/AAAAAAAAEI8/sy_hN-778t0/s400/2013-04-03_111405.jpg https://lh3.googleusercontent.com/-oQnOpUZKrJ4/UVvlS4BwQXI/AAAAAAAAEJA/2trmbSqcR0M/s400/2013-04-03_111414.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/community/forum/viewtopic.php?pid=19624#p19624 here].&lt;br /&gt;
*:(A major influence of the concept was [[wp:Rhino_(character)|Marvel&#039;s Rhino]] (c.f. [https://www.renderhub.com/rip-van-winkle/rhino-from-marvel-strike-force])&lt;br /&gt;
*The model and textures are made by [[User:Ltemplar|Ltemplar]].&lt;br /&gt;
*Mod available [http://oni.bungie.org/community/forum/viewtopic.php?id=2490 here].&lt;br /&gt;
https://lh3.googleusercontent.com/-NKwyBIr3d4U/ULjzrFQiPbI/AAAAAAAAEJI/JdfsQI-tNb4/s640/2012-11-30_194302.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/community/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://oni.bungie.org/forum/viewtopic.php?id=2936 here].&lt;br /&gt;
https://lh3.googleusercontent.com/pw/ACtC-3fr5cf4yv9cRhTuwmmefIYKCyenpH8FSGXigu66Thgju3IZNXv6Ndy9qohAVm69ZdtC3nXsfZXjEg_Gw4hTXKbptTxI1tIKqJC6k_uXq01lApIAbziMIkrbtfI0PpAtxM2VFM436xNqVEdDeXYjS5_u=w1000-no-tmp.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 &amp;lt;strike&amp;gt;[http://thefree3dmodels.com/stuff/characters/robot_warrior/14-1-0-1497 here]&amp;lt;/strike&amp;gt;. [https://downloadfree3d.com/3d-models/weapons/robot/robot-warrior/ LINK1] [https://www.domawe.net/2014/09/robot-knight-3d-model-free-download-rf.html LINK2]&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://oni.bungie.org/community/forum/viewtopic.php?id=2438 here].&lt;br /&gt;
https://lh5.googleusercontent.com/-znHgHqvu4cw/UGyEyDjIqrI/AAAAAAAAEJU/m0sj_Di8ZUw/s640/2012-10-03_213104.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 [http://wiki.oni2.net/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://www.models-resource.com/pc_computer/unrealtournament2004/model/3923/ 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://oni.bungie.org/community/forum/viewtopic.php?id=2445 here].&lt;br /&gt;
https://lh6.googleusercontent.com/-ViJlYvPRQ6o/UHHQo6WVS_I/AAAAAAAAEJY/QpPP4UlBAts/s640/2012-10-07_185344.jpg&lt;br /&gt;
&lt;br /&gt;
[[Category:BGI]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Sarai&amp;diff=29885</id>
		<title>Sarai</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Sarai&amp;diff=29885"/>
		<updated>2020-06-19T01:23:41Z</updated>

		<summary type="html">&lt;p&gt;Samer: &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/community/forum/viewtopic.php?pid=46869#p46869 here]&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
Sarai, the female BGI boss. 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;
==Model==&lt;br /&gt;
The model is based on DarkLitria&#039;s sketch seen [[:Image:Sarai.png|here]]. The head mesh is from a [http://oni.bungie.org/community/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;
https://lh4.googleusercontent.com/-VdlCgdrk9SQ/UdETSEN-_7I/AAAAAAAAEIw/L1SvBM5S_uk/s800/2013-07-01_081718.jpg&lt;br /&gt;
&lt;br /&gt;
[[Category:Characters]][[Category:BGI]][[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Saisei_Team&amp;diff=29884</id>
		<title>Saisei Team</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Saisei_Team&amp;diff=29884"/>
		<updated>2020-06-19T01:21:50Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Saisei Team is a concept by [[User:Samer|Samer]] inspired by [[User:Paradox-01|Paradox-01]]&#039;s all grey health regenerating Syndicate team.&lt;br /&gt;
Saisei is Japanese for regeneration/ regrowth / rebirth. &lt;br /&gt;
Currently, the Saisei Team is composed of : [[Grey Fury]], [[Kojiro]] and [[Regenerating Tanker]]. &lt;br /&gt;
&lt;br /&gt;
https://lh5.googleusercontent.com/-5JZTL4aBL08/Txp5fArK8uI/AAAAAAAAB74/LAiaVFlZ7rU/s800/Oni%2525202012-01-21%25252010-27-09-28_cr.jpg&lt;br /&gt;
&lt;br /&gt;
Besides the ability to regenerate health, these characters share a common Emblem designed by Samer. &lt;br /&gt;
https://i.imgur.com/munanT7.png&lt;br /&gt;
&lt;br /&gt;
The emblem represents a person with arms wide open, similar to the pose these characters take when they health regenerate. &lt;br /&gt;
It also represents ascension, the bottom half of the emblem resembles spikes or mutations due to chrysalis. The overall shape also resembles an insect somehow with wings, as reference to the Imago stage of the chrysalis which also used for the last stage of metamorphosis of an insect. &lt;br /&gt;
&lt;br /&gt;
Other appearances for the Emblem during its creation https://i.imgur.com/CrheUtU.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Syndicate]]&lt;br /&gt;
[[Category:Modding projects]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Saisei_Team&amp;diff=29882</id>
		<title>Saisei Team</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Saisei_Team&amp;diff=29882"/>
		<updated>2020-06-19T01:15:50Z</updated>

		<summary type="html">&lt;p&gt;Samer: Samer moved page Skull Team to Saisei Team&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Saisei Team is a concept by [[User:Samer|Samer]] inspired by [[User:Paradox-01|Paradox-01]]&#039;s all grey health regenerating Syndicate team.&lt;br /&gt;
Saisei is Japanese for regeneration/ regrowth / rebirth. &lt;br /&gt;
Currently, the Saisei Team is composed of : [[Grey Fury]], [[Kojiro]] and [[Regenerating Tanker]]. &lt;br /&gt;
&lt;br /&gt;
https://lh5.googleusercontent.com/-5JZTL4aBL08/Txp5fArK8uI/AAAAAAAAB74/LAiaVFlZ7rU/s800/Oni%2525202012-01-21%25252010-27-09-28_cr.jpg&lt;br /&gt;
&lt;br /&gt;
Besides the ability to regenerate health, these characters share a common Emblem designed by Samer. &lt;br /&gt;
https://i.imgur.com/munanT7.png&lt;br /&gt;
&lt;br /&gt;
The emblem represents a person with arms wide open, similar to the pose these characters take when they health regenerate. &lt;br /&gt;
It also represents ascension, the bottom half of the emblem resembles spikes or mutations due to chrysalis. The overall shape also resembles an insect somehow with wings, as reference to the Imago stage of the chrysalis which also used for the last stage of metamorphosis of an insect. &lt;br /&gt;
&lt;br /&gt;
Other appearances for the Emblem during its creation https://i.imgur.com/CrheUtU.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Syndicate]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Saisei_Team&amp;diff=29881</id>
		<title>Saisei Team</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Saisei_Team&amp;diff=29881"/>
		<updated>2020-06-19T01:13:19Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Saisei Team is a concept by [[User:Samer|Samer]] inspired by [[User:Paradox-01|Paradox-01]]&#039;s all grey health regenerating Syndicate team.&lt;br /&gt;
Saisei is Japanese for regeneration/ regrowth / rebirth. &lt;br /&gt;
Currently, the Saisei Team is composed of : [[Grey Fury]], [[Kojiro]] and [[Regenerating Tanker]]. &lt;br /&gt;
&lt;br /&gt;
https://lh5.googleusercontent.com/-5JZTL4aBL08/Txp5fArK8uI/AAAAAAAAB74/LAiaVFlZ7rU/s800/Oni%2525202012-01-21%25252010-27-09-28_cr.jpg&lt;br /&gt;
&lt;br /&gt;
Besides the ability to regenerate health, these characters share a common Emblem designed by Samer. &lt;br /&gt;
https://i.imgur.com/munanT7.png&lt;br /&gt;
&lt;br /&gt;
The emblem represents a person with arms wide open, similar to the pose these characters take when they health regenerate. &lt;br /&gt;
It also represents ascension, the bottom half of the emblem resembles spikes or mutations due to chrysalis. The overall shape also resembles an insect somehow with wings, as reference to the Imago stage of the chrysalis which also used for the last stage of metamorphosis of an insect. &lt;br /&gt;
&lt;br /&gt;
Other appearances for the Emblem during its creation https://i.imgur.com/CrheUtU.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Syndicate]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Videos&amp;diff=29859</id>
		<title>Videos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Videos&amp;diff=29859"/>
		<updated>2020-06-15T16:32:14Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a collection of links to some of the Oni-related videos posted on YouTube. Also see YouTube&#039;s [https://www.youtube.com/channel/UCa3bHN9Pp4xrzWVtyIPiEZQ/recent Oni - Topic] channel, which automatically collects Oni videos (with some false positives from games/users that have similar names).&lt;br /&gt;
&lt;br /&gt;
==Trailers==&lt;br /&gt;
:&#039;&#039;See [[Trailers]] for details on the Bungie trailers.&#039;&#039;&lt;br /&gt;
*[http://www.youtube.com/watch?v=ANQWWqECzI8 Bungie West&#039;s 1998 trailer]&lt;br /&gt;
*[http://www.youtube.com/watch?v=YLZ2hJZvrmo Bungie&#039;s 1999 trailer] &lt;br /&gt;
*[http://www.youtube.com/watch?v=kCUJmY7EZeo Oni trailer from Fall 2000 GoD Bonus CD]&lt;br /&gt;
*[https://www.youtube.com/watch?v=OmNtNzROvug Rockstar trailer]&lt;br /&gt;
*[https://www.youtube.com/watch?v=_cv8X2hc8YE Japanese trailer]&lt;br /&gt;
&lt;br /&gt;
==Early footage==&lt;br /&gt;
*[https://www.youtube.com/watch?v=3vKJAZZWIxI Multiplayer at E3, May 1999]&lt;br /&gt;
*[https://www.youtube.com/watch?v=iiBE8N1auuo Multiplayer at Macworld NY, July 1999]&lt;br /&gt;
*[https://www.youtube.com/watch?v=HOmKXhZJ3b8 Multiplayer at Macworld SF, Jan. 2000]&lt;br /&gt;
*Multiplayer at E3, May 2000: [https://www.youtube.com/watch?v=yFQNu-r4TOc], [https://www.youtube.com/watch?v=Sc8crcxjfgM], [https://www.youtube.com/watch?v=8Wp3xqAD4xw]&lt;br /&gt;
*[https://www.youtube.com/watch?v=TaRjTYbUFNY Oni teaser at Macworld NY, July 2000]&lt;br /&gt;
*[https://www.youtube.com/watch?v=SO3JUw1dx3A Pre-beta PS2 footage]&lt;br /&gt;
&lt;br /&gt;
==Documentaries &amp;amp; reviews==&lt;br /&gt;
*[https://www.youtube.com/watch?v=Yg1mfEvfq_k Oni - Trash or Treasure] by Block&#039;s Gaming Reviews*&lt;br /&gt;
*[https://www.youtube.com/watch?v=RJO4OB8xdQg Oni: The Other Bungie Game] by Critical Nobody&lt;br /&gt;
*[https://www.youtube.com/watch?v=jbrPu15jjPs Demon: The Untold Story of Bungie’s Forgotten Franchise] by CryMor Gaming&lt;br /&gt;
*[https://www.youtube.com/watch?v=jNgG8RSHNa8 Oni - Analytical Overview] by EonKool&lt;br /&gt;
*[https://www.youtube.com/watch?v=VOawPhCG2dU Gaming History: Oni &amp;quot;The other Best Game Bungie ever made&amp;quot;] by GaminGHD&lt;br /&gt;
*[https://www.youtube.com/watch?v=ggC6kfJJE_w Oni Review (Bungie&#039;s Forgotten Game)] by GmanLives&lt;br /&gt;
*[https://www.youtube.com/watch?v=_LRyxtXkPng Oni: The best Bungie game and its seven-years-late mod scene] by Joe Wintergreen&lt;br /&gt;
*[https://www.youtube.com/watch?v=Ox6r7aJSRdU Top 10 Forgotten Video Games from Great Developers] by WatchMojo (Oni is #2)&lt;br /&gt;
*[https://www.youtube.com/watch?v=6hfFUlraIKQ Oni - Unlikely Review] by Yuusha*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;These reviews are of the PS2 version, and consequently much more negative.&lt;br /&gt;
&lt;br /&gt;
==Intro &amp;amp; outro==&lt;br /&gt;
*[http://www.youtube.com/watch?v=du8JepLM-lI Oni Intro]&lt;br /&gt;
*[http://www.youtube.com/watch?v=Od1ReWIxduo Oni Outro]&lt;br /&gt;
&lt;br /&gt;
==Gameplay==&lt;br /&gt;
*[http://www.youtube.com/watch?v=CDuQHITARk4 Some of Oni&#039;s Secrets and Easter Eggs] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=r06Q_hEhCg4 Science Prison Lasers] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=sSOLSh_aCC8 Grenade Jumping] by loveOni shows how to get to those snipers in Chapter 14 using an SBG&lt;br /&gt;
*[http://www.youtube.com/playlist?list=PLFa3CejQbQ2IAihiuD58DLPUraoSccuOt Oni AE Full Levels Gameplay (using several mods)] by Tracker&lt;br /&gt;
*[http://www.youtube.com/playlist?list=PLFasmrd0ZfRm80eHfK3g_eDAXJWb0PM5I Oni Let&#039;s Play (using Brutal AI, SMP-Conversion, and other mods)] by tens&lt;br /&gt;
&lt;br /&gt;
==Mods==&lt;br /&gt;
===Characters===&lt;br /&gt;
*[http://www.youtube.com/watch?v=Sntev0Gj5Ds&amp;amp;feature=youtu.be Custom Character Casey version 4 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=RbfE6k2ulW4&amp;amp;feature=youtu.be Custom Character Motoko version 3.5 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=ldVEmOV839U&amp;amp;feature=youtu.be Custom Character BGI Sarai demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=KYgNmpLED5M Custom Character Hayate version 2.1 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=Ci44KaCq7UY&amp;amp;feature=youtu.be Custom Characters Jester &amp;amp; Co. demonstrating all moves and combos] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=5R8zuI5-EHw&amp;amp;feature=youtu.be Custom Character Kojiro version 2.2 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=9VlUBaQWuXg Custom Character BGI Hammer demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=YtRac64hu6Q Custom Character Rayman Showcase] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=NSfeb4xv7p8 Konoko vs. AI Rayman] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=4-P82ctyS2E Guard Dogs preview] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=iLl9FAoujIs Sentry Droid preview] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=yhkTFgEyj28 The Iron Demon Lives] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=d2opg2DIGwk Golden TCTF vs. Regenerating Tanker] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=MmurRBUbW-U Clash of Titans - BGI Hammer vs. Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=M0ugC6fV-6o Hayate vs. Jester, Casey vs. Hayate, Jester vs. Jubei &amp;amp; Akane] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=w-5c5lHjCGA Akane vs. Grey Fury, Jubei vs. Kojiro] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=HXVwjNMLTMg Casey in Chapter 3] by oxe161&lt;br /&gt;
*[http://www.youtube.com/watch?v=o7NvGBsT-gI Casey combo video in Oni Zen Garden] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=vR7Z0Wcuuso Akane combo video in Oni Zen Garden] by Mukade&lt;br /&gt;
*[http://www.youtube.com/watch?v=yD6Ai8uufJI Altered Barabas Boss Fight] by Loser (Mod can be found in EdT&#039;s Boss Battle Level)&lt;br /&gt;
*[http://www.youtube.com/watch?v=QaBDJk9KrNs Barabas New Regeneration] by Gumby&lt;br /&gt;
*[http://www.youtube.com/watch?v=ASyyzfIc3D0 Shinibot &amp;amp; Hanako vs. Smart Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=WQZSY8cmj9k Kojiro &amp;amp; Casey vs. Smart Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=kbA4JvcBZFQ Konoko vs. Smart Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=-4Dt_7AmdK0 Konoko vs. Smart Barabas with Jumpable Earthquaker package] by Samer&lt;br /&gt;
&lt;br /&gt;
===Levels===&lt;br /&gt;
*[http://www.youtube.com/watch?v=dtmPmt6YqEE Oni goes to a new Level] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=DyOIcie7VGk Omega Tournament Level Preview] by Script10k&lt;br /&gt;
*[http://www.youtube.com/playlist?list=PLZQupCr62BGlWdKfx6QV-jArcjDgU64Fs Wilderness Preserve Level Full Walkthrough] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=MArbspInwiM SamMegaPack-Fight Club Level Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=hg_7FMlyo9M China Level Mod Final Battle] by Script10k&lt;br /&gt;
*[http://www.youtube.com/watch?v=CChvV7GTi28 Hanako vs. Hayate and Mukade in China Level Mod] &amp;amp; [http://www.youtube.com/watch?v=CChvV7GTi28 Hanako in Final Battle of China Level] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=Fe81gR7BGy8 Casey in EdT&#039;s Maze Level] by oxe161&lt;br /&gt;
*[http://www.youtube.com/watch?v=WZ26KJ46CzE Fight Over the Junkyard] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Wv1IG6QXTMs Oni Custom Characters Good vs. Bad in Junkyard Level] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=iKXw5jt3vSE EdT&#039;s City Level Parkour Challenge] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=QwRzyBGK1yk Oni Tomb Raider Style] showcasing EdT&#039;s Parkour Challenge 1 Level by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=PR_0gddHkNA Parkour Challenge 2 Run] by Tracker&lt;br /&gt;
*[http://www.youtube.com/watch?v=GUR66F9rISE SamMegaPack-Conversion Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=Bs8rdGyEpog SamMegaPack-Conversion Dream Lab Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=oHCnoThNL2c SamMegaPack-Conversion Skull Team Fights Preview]&lt;br /&gt;
*[http://www.youtube.com/watch?v=tE3ZfKzZnOM SamMegaPack-Conversion Atmospheric Interior, Konoko vs Grey Fury] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=QRkfUmq_4qg SamMegaPack-Conversion Final Battle Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=5EU_kZk2VFM Oni Team Arena using Jubei and Akane] by oxe161&lt;br /&gt;
*[http://www.youtube.com/watch?v=MIhyHi-C2dY Motoko in Leus&#039; Crazy Casey Mod] by Shella45&lt;br /&gt;
*[http://www.youtube.com/watch?v=5PClAPTum8w Leus&#039; Crazy Casey Mod in reverse] by kaargen&lt;br /&gt;
&lt;br /&gt;
===Weapons===&lt;br /&gt;
*[http://www.youtube.com/watch?v=9kJF7HSJl04&amp;amp;feature=youtu.be New Weapons Collection preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=vrvQjvV0OUA Sniper Mode]&lt;br /&gt;
&lt;br /&gt;
===Animations===&lt;br /&gt;
*[https://www.youtube.com/watch?v=tE1xO5K3hi8 New combat Moves for Konoko] showcases new move types like Just Frames and Delayed Animations by Delano672&lt;br /&gt;
&lt;br /&gt;
===Other mods===&lt;br /&gt;
*Flatline multiplayer footage: [http://www.youtube.com/watch?v=WZnbVGSyRJU Gumby vs. oxe161], [https://www.youtube.com/watch?v=GMeWr11QVjU Gumby vs. Phydur]&lt;br /&gt;
*[https://www.youtube.com/watch?v=aEuAu7jLQQI Projectile dodging patch for AI]&lt;br /&gt;
*[http://www.youtube.com/watch?v=RjGgk6SqdeQ Things that go boom] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=fec1-bgfCxE Japanese Language Pack special attacks preview] by Gumby&lt;br /&gt;
*[http://www.youtube.com/watch?v=bib24bRXuhQ Hidden Treasure Challenge] by Samer&lt;br /&gt;
*Good vs. Evil 2.0: [https://www.youtube.com/watch?v=CKhHaG_t0eg video 1], [https://www.youtube.com/watch?v=lzB0I-eeO9o video 2], [https://www.youtube.com/watch?v=dcuF1ABj9D0 video 3] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=gOHCg8KZM4A Burly Brawl v0.1] by Iritscen&lt;br /&gt;
&lt;br /&gt;
===Concepts===&lt;br /&gt;
*[http://www.youtube.com/watch?v=GFbamj63z8Y AI pathfinding in new level] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Yj3ptZnZtx0 AI pathfinding on uneven ground] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Em6wa5JTQNM Hiding parts of the environment] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=iY0eKukGhrM AI Crate jumping] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=2RU6asmmrik New animations - Motoko the cheerleader] by EdT&lt;br /&gt;
*Playing with moveable objects: [https://www.youtube.com/watch?v=Te9yKA4UR18 cubes], [https://www.youtube.com/watch?v=LUmmLTjSaqQ spheres] by Iritscen&lt;br /&gt;
*[http://www.youtube.com/watch?v=YICB7qugrtc Moveable furniture] by EdT&lt;br /&gt;
&lt;br /&gt;
==Modding tutorials==&lt;br /&gt;
*[https://www.youtube.com/watch?v=7fQacrVVQLc&amp;amp;list=PLBKEEq8F3prAbbGk6VJkjfLMuMnb-e_gu Creating a Custom Oni Level: Tutorial on building the Omega Tournament Level] by Script10k&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bugs &amp;amp; documentation==&lt;br /&gt;
*[http://www.youtube.com/watch?v=0onq6m7oius Infinite loop bug]&lt;br /&gt;
*[http://www.youtube.com/watch?v=qbo2Q-VD6dc Idle animations] &amp;amp; [http://www.youtube.com/watch?v=CRuZq_uYOQk Idle-to-pistol animations] recorded by Loser, and posted by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=6-ksW1bBBsg Mukade teleportation] by Iritscen&lt;br /&gt;
*Random AI teleportation [https://www.youtube.com/watch?v=oZZvMldrjlY incident] and [https://www.youtube.com/watch?v=GC4HLDekxQI same incident with logging] by Iritscen&lt;br /&gt;
&lt;br /&gt;
==Fun tributes==&lt;br /&gt;
*[http://www.youtube.com/watch?v=HFwnABhkGHo Oni Dancing] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=_XWmeZYlfEY Oni Police History] by AWPMega&lt;br /&gt;
*[http://www.youtube.com/watch?v=XoE3cBDOAhQ Griffin&#039;s Christmas] by Tantir1 &lt;br /&gt;
*[http://www.youtube.com/watch?v=oOBl_6nDVG4 Come Here] Part I of the 3-part Oni Suite, a ridiculous tribute to Oni&#039;s voice acting by AaronPDX&lt;br /&gt;
*[http://www.youtube.com/watch?v=6v8DpJVusbk Recalibrate!] Part II of the 3-part Oni Suite, a ridiculous tribute to Oni&#039;s voice acting by AaronPDX&lt;br /&gt;
*[http://www.youtube.com/watch?v=H_FZCY-L6uc Oni&#039;s 10th Anniversary in Gmod] by Delano762&lt;br /&gt;
*[http://www.youtube.com/watch?v=ulGF6vCA7T0 Funny Oni] by  ShinatamaCarmyKonoko&lt;br /&gt;
*[http://www.youtube.com/watch?v=JVp45DzGNmg Revenge]&lt;br /&gt;
*[http://www.youtube.com/watch?v=OtrwzmlhqMo When Enemies Become Allies] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Hqk8OlFsg7Y Oni Tribute - This is War] by Mukade and myplea&lt;br /&gt;
*[http://www.youtube.com/watch?v=uGugKhK3RI0 Places You Weren&#039;t Supposed To Go] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=8Ts8SGuxbK4 The Only Konoko, The Only Motoko] by vul4ak&lt;br /&gt;
*[http://www.youtube.com/watch?v=j0v-hZZ_ofk Oni In Half Life]&lt;br /&gt;
&lt;br /&gt;
==Oni 2 (Angel Studios)==&lt;br /&gt;
*[https://www.youtube.com/watch?v=ZItobLIJJMY Oni 2: Angel Studio&#039;s Lost Sequel to Bungie&#039;s Cult Classic] documentary by PtoPOnline&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLKywN7NE5TTE2fGdgdhYMs1cAQMD48Q-h Full playthrough] by Iritscen&lt;br /&gt;
&lt;br /&gt;
[[Category:Media]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Videos&amp;diff=29858</id>
		<title>Videos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Videos&amp;diff=29858"/>
		<updated>2020-06-15T14:50:46Z</updated>

		<summary type="html">&lt;p&gt;Samer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a collection of links to some of the Oni-related videos posted on YouTube. Also see YouTube&#039;s [https://www.youtube.com/channel/UCa3bHN9Pp4xrzWVtyIPiEZQ/recent Oni - Topic] channel, which automatically collects Oni videos (with some false positives from games/users that have similar names).&lt;br /&gt;
&lt;br /&gt;
==Trailers==&lt;br /&gt;
:&#039;&#039;See [[Trailers]] for details on the Bungie trailers.&#039;&#039;&lt;br /&gt;
*[http://www.youtube.com/watch?v=ANQWWqECzI8 Bungie West&#039;s 1998 trailer]&lt;br /&gt;
*[http://www.youtube.com/watch?v=YLZ2hJZvrmo Bungie&#039;s 1999 trailer] &lt;br /&gt;
*[http://www.youtube.com/watch?v=kCUJmY7EZeo Oni trailer from Fall 2000 GoD Bonus CD]&lt;br /&gt;
*[https://www.youtube.com/watch?v=OmNtNzROvug Rockstar trailer]&lt;br /&gt;
*[https://www.youtube.com/watch?v=_cv8X2hc8YE Japanese trailer]&lt;br /&gt;
&lt;br /&gt;
==Early footage==&lt;br /&gt;
*[https://www.youtube.com/watch?v=3vKJAZZWIxI Multiplayer at E3, May 1999]&lt;br /&gt;
*[https://www.youtube.com/watch?v=iiBE8N1auuo Multiplayer at Macworld NY, July 1999]&lt;br /&gt;
*[https://www.youtube.com/watch?v=HOmKXhZJ3b8 Multiplayer at Macworld SF, Jan. 2000]&lt;br /&gt;
*Multiplayer at E3, May 2000: [https://www.youtube.com/watch?v=yFQNu-r4TOc], [https://www.youtube.com/watch?v=Sc8crcxjfgM], [https://www.youtube.com/watch?v=8Wp3xqAD4xw]&lt;br /&gt;
*[https://www.youtube.com/watch?v=TaRjTYbUFNY Oni teaser at Macworld NY, July 2000]&lt;br /&gt;
*[https://www.youtube.com/watch?v=SO3JUw1dx3A Pre-beta PS2 footage]&lt;br /&gt;
&lt;br /&gt;
==Documentaries &amp;amp; reviews==&lt;br /&gt;
*[https://www.youtube.com/watch?v=Yg1mfEvfq_k Oni - Trash or Treasure] by Block&#039;s Gaming Reviews*&lt;br /&gt;
*[https://www.youtube.com/watch?v=RJO4OB8xdQg Oni: The Other Bungie Game] by Critical Nobody&lt;br /&gt;
*[https://www.youtube.com/watch?v=jbrPu15jjPs Demon: The Untold Story of Bungie’s Forgotten Franchise] by CryMor Gaming&lt;br /&gt;
*[https://www.youtube.com/watch?v=jNgG8RSHNa8 Oni - Analytical Overview] by EonKool&lt;br /&gt;
*[https://www.youtube.com/watch?v=VOawPhCG2dU Gaming History: Oni &amp;quot;The other Best Game Bungie ever made&amp;quot;] by GaminGHD&lt;br /&gt;
*[https://www.youtube.com/watch?v=ggC6kfJJE_w Oni Review (Bungie&#039;s Forgotten Game)] by GmanLives&lt;br /&gt;
*[https://www.youtube.com/watch?v=_LRyxtXkPng Oni: The best Bungie game and its seven-years-late mod scene] by Joe Wintergreen&lt;br /&gt;
*[https://www.youtube.com/watch?v=Ox6r7aJSRdU Top 10 Forgotten Video Games from Great Developers] by WatchMojo (Oni is #2)&lt;br /&gt;
*[https://www.youtube.com/watch?v=6hfFUlraIKQ Oni - Unlikely Review] by Yuusha*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;These reviews are of the PS2 version, and consequently much more negative.&lt;br /&gt;
&lt;br /&gt;
==Intro &amp;amp; outro==&lt;br /&gt;
*[http://www.youtube.com/watch?v=du8JepLM-lI Oni Intro]&lt;br /&gt;
*[http://www.youtube.com/watch?v=Od1ReWIxduo Oni Outro]&lt;br /&gt;
&lt;br /&gt;
==Gameplay==&lt;br /&gt;
*[http://www.youtube.com/watch?v=CDuQHITARk4 Some of Oni&#039;s Secrets and Easter Eggs] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=r06Q_hEhCg4 Science Prison Lasers] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=sSOLSh_aCC8 Grenade Jumping] by loveOni shows how to get to those snipers in Chapter 14 using an SBG&lt;br /&gt;
*[http://www.youtube.com/playlist?list=PLFa3CejQbQ2IAihiuD58DLPUraoSccuOt Oni AE Full Levels Gameplay (using several mods)] by Tracker&lt;br /&gt;
*[http://www.youtube.com/playlist?list=PLFasmrd0ZfRm80eHfK3g_eDAXJWb0PM5I Oni Let&#039;s Play (using Brutal AI, SMP-Conversion, and other mods)] by tens&lt;br /&gt;
&lt;br /&gt;
==Mods==&lt;br /&gt;
===Characters===&lt;br /&gt;
*[http://www.youtube.com/watch?v=Sntev0Gj5Ds&amp;amp;feature=youtu.be Custom Character Casey version 4 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=RbfE6k2ulW4&amp;amp;feature=youtu.be Custom Character Motoko version 3.5 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=ldVEmOV839U&amp;amp;feature=youtu.be Custom Character BGI Sarai demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=KYgNmpLED5M Custom Character Hayate version 2.1 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=Ci44KaCq7UY&amp;amp;feature=youtu.be Custom Characters Jester &amp;amp; Co. demonstrating all moves and combos] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=5R8zuI5-EHw&amp;amp;feature=youtu.be Custom Character Kojiro version 2.2 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=9VlUBaQWuXg Custom Character BGI Hammer demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=YtRac64hu6Q Custom Character Rayman Showcase] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=NSfeb4xv7p8 Konoko vs. AI Rayman] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=4-P82ctyS2E Guard Dogs preview] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=iLl9FAoujIs Sentry Droid preview] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=yhkTFgEyj28 The Iron Demon Lives] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=d2opg2DIGwk Golden TCTF vs. Regenerating Tanker] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=MmurRBUbW-U Clash of Titans - BGI Hammer vs. Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=M0ugC6fV-6o Hayate vs. Jester, Casey vs. Hayate, Jester vs. Jubei &amp;amp; Akane] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=w-5c5lHjCGA Akane vs. Grey Fury, Jubei vs. Kojiro] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=HXVwjNMLTMg Casey in Chapter 3] by oxe161&lt;br /&gt;
*[http://www.youtube.com/watch?v=o7NvGBsT-gI Casey combo video in Oni Zen Garden] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=vR7Z0Wcuuso Akane combo video in Oni Zen Garden] by Mukade&lt;br /&gt;
*[http://www.youtube.com/watch?v=yD6Ai8uufJI Altered Barabas Boss Fight] by Loser (Mod can be found in EdT&#039;s Boss Battle Level)&lt;br /&gt;
*[http://www.youtube.com/watch?v=QaBDJk9KrNs Barabas New Regeneration] by Gumby&lt;br /&gt;
*[http://www.youtube.com/watch?v=ASyyzfIc3D0 Shinibot &amp;amp; Hanako vs. Smart Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=WQZSY8cmj9k Kojiro &amp;amp; Casey vs. Smart Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=kbA4JvcBZFQ Konoko vs. Smart Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=-4Dt_7AmdK0 Konoko vs. Smart Barabas with Jumpable Earthquaker package] by Samer&lt;br /&gt;
&lt;br /&gt;
===Levels===&lt;br /&gt;
*[http://www.youtube.com/watch?v=dtmPmt6YqEE Oni goes to a new Level] by EdT&lt;br /&gt;
*[https://www.youtube.com/watch?v=DyOIcie7VGk Omega Tournament Level Preview] by Script10k&lt;br /&gt;
*[http://www.youtube.com/playlist?list=PLZQupCr62BGlWdKfx6QV-jArcjDgU64Fs Wilderness Preserve Level Full Walkthrough] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=MArbspInwiM SamMegaPack-Fight Club Level Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=hg_7FMlyo9M China Level Mod Final Battle] by Script10k&lt;br /&gt;
*[http://www.youtube.com/watch?v=CChvV7GTi28 Hanako vs. Hayate and Mukade in China Level Mod] &amp;amp; [http://www.youtube.com/watch?v=CChvV7GTi28 Hanako in Final Battle of China Level] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=Fe81gR7BGy8 Casey in EdT&#039;s Maze Level] by oxe161&lt;br /&gt;
*[http://www.youtube.com/watch?v=WZ26KJ46CzE Fight Over the Junkyard] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Wv1IG6QXTMs Oni Custom Characters Good vs. Bad in Junkyard Level] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=iKXw5jt3vSE EdT&#039;s City Level Parkour Challenge] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=QwRzyBGK1yk Oni Tomb Raider Style] showcasing EdT&#039;s Parkour Challenge 1 Level by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=PR_0gddHkNA Parkour Challenge 2 Run] by Tracker&lt;br /&gt;
*[http://www.youtube.com/watch?v=GUR66F9rISE SamMegaPack-Conversion Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=Bs8rdGyEpog SamMegaPack-Conversion Dream Lab Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=oHCnoThNL2c SamMegaPack-Conversion Skull Team Fights Preview]&lt;br /&gt;
*[http://www.youtube.com/watch?v=tE3ZfKzZnOM SamMegaPack-Conversion Atmospheric Interior, Konoko vs Grey Fury] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=QRkfUmq_4qg SamMegaPack-Conversion Final Battle Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=5EU_kZk2VFM Oni Team Arena using Jubei and Akane] by oxe161&lt;br /&gt;
*[http://www.youtube.com/watch?v=MIhyHi-C2dY Motoko in Leus&#039; Crazy Casey Mod] by Shella45&lt;br /&gt;
*[http://www.youtube.com/watch?v=5PClAPTum8w Leus&#039; Crazy Casey Mod in reverse] by kaargen&lt;br /&gt;
&lt;br /&gt;
===Weapons===&lt;br /&gt;
*[http://www.youtube.com/watch?v=9kJF7HSJl04&amp;amp;feature=youtu.be New Weapons Collection preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=vrvQjvV0OUA Sniper Mode]&lt;br /&gt;
&lt;br /&gt;
===Animations===&lt;br /&gt;
*[https://www.youtube.com/watch?v=tE1xO5K3hi8 New combat Moves for Konoko] showcases new move types like Just Frames and Delayed Animations by Delano672&lt;br /&gt;
&lt;br /&gt;
===Other mods===&lt;br /&gt;
*Flatline multiplayer footage: [http://www.youtube.com/watch?v=WZnbVGSyRJU Gumby vs. oxe161], [https://www.youtube.com/watch?v=GMeWr11QVjU Gumby vs. Phydur]&lt;br /&gt;
*[https://www.youtube.com/watch?v=aEuAu7jLQQI Projectile dodging patch for AI]&lt;br /&gt;
*[http://www.youtube.com/watch?v=RjGgk6SqdeQ Things that go boom] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=fec1-bgfCxE Japanese Language Pack special attacks preview] by Gumby&lt;br /&gt;
*[http://www.youtube.com/watch?v=bib24bRXuhQ Hidden Treasure Challenge] by Samer&lt;br /&gt;
*Good vs. Evil 2.0: [https://www.youtube.com/watch?v=CKhHaG_t0eg video 1], [https://www.youtube.com/watch?v=lzB0I-eeO9o video 2], [https://www.youtube.com/watch?v=dcuF1ABj9D0 video 3] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=gOHCg8KZM4A Burly Brawl v0.1] by Iritscen&lt;br /&gt;
&lt;br /&gt;
===Concepts===&lt;br /&gt;
*[http://www.youtube.com/watch?v=GFbamj63z8Y AI pathfinding in new level] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Yj3ptZnZtx0 AI pathfinding on uneven ground] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Em6wa5JTQNM Hiding parts of the environment] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=iY0eKukGhrM AI Crate jumping] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=2RU6asmmrik New animations - Motoko the cheerleader] by EdT&lt;br /&gt;
*Playing with moveable objects: [https://www.youtube.com/watch?v=Te9yKA4UR18 cubes], [https://www.youtube.com/watch?v=LUmmLTjSaqQ spheres] by Iritscen&lt;br /&gt;
*[http://www.youtube.com/watch?v=YICB7qugrtc Moveable furniture] by EdT&lt;br /&gt;
&lt;br /&gt;
==Modding tutorials==&lt;br /&gt;
*[https://www.youtube.com/watch?v=7fQacrVVQLc Creating a Custom Oni Level: Tutorial on building the Omega Tournament Level] by Script10k&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bugs &amp;amp; documentation==&lt;br /&gt;
*[http://www.youtube.com/watch?v=0onq6m7oius Infinite loop bug]&lt;br /&gt;
*[http://www.youtube.com/watch?v=qbo2Q-VD6dc Idle animations] &amp;amp; [http://www.youtube.com/watch?v=CRuZq_uYOQk Idle-to-pistol animations] recorded by Loser, and posted by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=6-ksW1bBBsg Mukade teleportation] by Iritscen&lt;br /&gt;
*Random AI teleportation [https://www.youtube.com/watch?v=oZZvMldrjlY incident] and [https://www.youtube.com/watch?v=GC4HLDekxQI same incident with logging] by Iritscen&lt;br /&gt;
&lt;br /&gt;
==Fun tributes==&lt;br /&gt;
*[http://www.youtube.com/watch?v=HFwnABhkGHo Oni Dancing] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=_XWmeZYlfEY Oni Police History] by AWPMega&lt;br /&gt;
*[http://www.youtube.com/watch?v=XoE3cBDOAhQ Griffin&#039;s Christmas] by Tantir1 &lt;br /&gt;
*[http://www.youtube.com/watch?v=oOBl_6nDVG4 Come Here] Part I of the 3-part Oni Suite, a ridiculous tribute to Oni&#039;s voice acting by AaronPDX&lt;br /&gt;
*[http://www.youtube.com/watch?v=6v8DpJVusbk Recalibrate!] Part II of the 3-part Oni Suite, a ridiculous tribute to Oni&#039;s voice acting by AaronPDX&lt;br /&gt;
*[http://www.youtube.com/watch?v=H_FZCY-L6uc Oni&#039;s 10th Anniversary in Gmod] by Delano762&lt;br /&gt;
*[http://www.youtube.com/watch?v=ulGF6vCA7T0 Funny Oni] by  ShinatamaCarmyKonoko&lt;br /&gt;
*[http://www.youtube.com/watch?v=JVp45DzGNmg Revenge]&lt;br /&gt;
*[http://www.youtube.com/watch?v=OtrwzmlhqMo When Enemies Become Allies] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Hqk8OlFsg7Y Oni Tribute - This is War] by Mukade and myplea&lt;br /&gt;
*[http://www.youtube.com/watch?v=uGugKhK3RI0 Places You Weren&#039;t Supposed To Go] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=8Ts8SGuxbK4 The Only Konoko, The Only Motoko] by vul4ak&lt;br /&gt;
*[http://www.youtube.com/watch?v=j0v-hZZ_ofk Oni In Half Life]&lt;br /&gt;
&lt;br /&gt;
==Oni 2 (Angel Studios)==&lt;br /&gt;
*[https://www.youtube.com/watch?v=ZItobLIJJMY Oni 2: Angel Studio&#039;s Lost Sequel to Bungie&#039;s Cult Classic] documentary by PtoPOnline&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLKywN7NE5TTE2fGdgdhYMs1cAQMD48Q-h Full playthrough] by Iritscen&lt;br /&gt;
&lt;br /&gt;
[[Category:Media]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Videos&amp;diff=29857</id>
		<title>Videos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Videos&amp;diff=29857"/>
		<updated>2020-06-15T14:37:28Z</updated>

		<summary type="html">&lt;p&gt;Samer: removed paradox dead links, added some of delano&amp;#039;s and s10k videos.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a collection of links to some of the Oni-related videos posted on YouTube. Also see YouTube&#039;s [https://www.youtube.com/channel/UCa3bHN9Pp4xrzWVtyIPiEZQ/recent Oni - Topic] channel, which automatically collects Oni videos (with some false positives from games/users that have similar names).&lt;br /&gt;
&lt;br /&gt;
==Trailers==&lt;br /&gt;
:&#039;&#039;See [[Trailers]] for details on the Bungie trailers.&#039;&#039;&lt;br /&gt;
*[http://www.youtube.com/watch?v=ANQWWqECzI8 Bungie West&#039;s 1998 trailer]&lt;br /&gt;
*[http://www.youtube.com/watch?v=YLZ2hJZvrmo Bungie&#039;s 1999 trailer] &lt;br /&gt;
*[http://www.youtube.com/watch?v=kCUJmY7EZeo Oni trailer from Fall 2000 GoD Bonus CD]&lt;br /&gt;
*[https://www.youtube.com/watch?v=OmNtNzROvug Rockstar trailer]&lt;br /&gt;
*[https://www.youtube.com/watch?v=_cv8X2hc8YE Japanese trailer]&lt;br /&gt;
&lt;br /&gt;
==Early footage==&lt;br /&gt;
*[https://www.youtube.com/watch?v=3vKJAZZWIxI Multiplayer at E3, May 1999]&lt;br /&gt;
*[https://www.youtube.com/watch?v=iiBE8N1auuo Multiplayer at Macworld NY, July 1999]&lt;br /&gt;
*[https://www.youtube.com/watch?v=HOmKXhZJ3b8 Multiplayer at Macworld SF, Jan. 2000]&lt;br /&gt;
*Multiplayer at E3, May 2000: [https://www.youtube.com/watch?v=yFQNu-r4TOc], [https://www.youtube.com/watch?v=Sc8crcxjfgM], [https://www.youtube.com/watch?v=8Wp3xqAD4xw]&lt;br /&gt;
*[https://www.youtube.com/watch?v=TaRjTYbUFNY Oni teaser at Macworld NY, July 2000]&lt;br /&gt;
*[https://www.youtube.com/watch?v=SO3JUw1dx3A Pre-beta PS2 footage]&lt;br /&gt;
&lt;br /&gt;
==Documentaries &amp;amp; reviews==&lt;br /&gt;
*[https://www.youtube.com/watch?v=Yg1mfEvfq_k Oni - Trash or Treasure] by Block&#039;s Gaming Reviews*&lt;br /&gt;
*[https://www.youtube.com/watch?v=RJO4OB8xdQg Oni: The Other Bungie Game] by Critical Nobody&lt;br /&gt;
*[https://www.youtube.com/watch?v=jbrPu15jjPs Demon: The Untold Story of Bungie’s Forgotten Franchise] by CryMor Gaming&lt;br /&gt;
*[https://www.youtube.com/watch?v=jNgG8RSHNa8 Oni - Analytical Overview] by EonKool&lt;br /&gt;
*[https://www.youtube.com/watch?v=VOawPhCG2dU Gaming History: Oni &amp;quot;The other Best Game Bungie ever made&amp;quot;] by GaminGHD&lt;br /&gt;
*[https://www.youtube.com/watch?v=ggC6kfJJE_w Oni Review (Bungie&#039;s Forgotten Game)] by GmanLives&lt;br /&gt;
*[https://www.youtube.com/watch?v=_LRyxtXkPng Oni: The best Bungie game and its seven-years-late mod scene] by Joe Wintergreen&lt;br /&gt;
*[https://www.youtube.com/watch?v=Ox6r7aJSRdU Top 10 Forgotten Video Games from Great Developers] by WatchMojo (Oni is #2)&lt;br /&gt;
*[https://www.youtube.com/watch?v=6hfFUlraIKQ Oni - Unlikely Review] by Yuusha*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;These reviews are of the PS2 version, and consequently much more negative.&lt;br /&gt;
&lt;br /&gt;
==Intro &amp;amp; outro==&lt;br /&gt;
*[http://www.youtube.com/watch?v=du8JepLM-lI Oni Intro]&lt;br /&gt;
*[http://www.youtube.com/watch?v=Od1ReWIxduo Oni Outro]&lt;br /&gt;
&lt;br /&gt;
==Gameplay==&lt;br /&gt;
*[http://www.youtube.com/watch?v=CDuQHITARk4 Some of Oni&#039;s Secrets and Easter Eggs] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=r06Q_hEhCg4 Science Prison Lasers] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=sSOLSh_aCC8 Grenade Jumping] by loveOni shows how to get to those snipers in Chapter 14 using an SBG&lt;br /&gt;
*[http://www.youtube.com/playlist?list=PLFa3CejQbQ2IAihiuD58DLPUraoSccuOt Oni AE Full Levels Gameplay (using several mods)] by Tracker&lt;br /&gt;
*[http://www.youtube.com/playlist?list=PLFasmrd0ZfRm80eHfK3g_eDAXJWb0PM5I Oni Let&#039;s Play (using Brutal AI, SMP-Conversion, and other mods)] by tens&lt;br /&gt;
&lt;br /&gt;
==Mods==&lt;br /&gt;
===Characters===&lt;br /&gt;
*[http://www.youtube.com/watch?v=Sntev0Gj5Ds&amp;amp;feature=youtu.be Custom Character Casey version 4 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=RbfE6k2ulW4&amp;amp;feature=youtu.be Custom Character Motoko version 3.5 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=ldVEmOV839U&amp;amp;feature=youtu.be Custom Character BGI Sarai demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[https://www.youtube.com/watch?v=KYgNmpLED5M Custom Character Hayate version 2.1 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=Ci44KaCq7UY&amp;amp;feature=youtu.be Custom Characters Jester &amp;amp; Co. demonstrating all moves and combos] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=5R8zuI5-EHw&amp;amp;feature=youtu.be Custom Character Kojiro version 2.2 demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=9VlUBaQWuXg Custom Character BGI Hammer demonstrating all moves, combos and outfits] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=YtRac64hu6Q Custom Character Rayman Showcase] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=NSfeb4xv7p8 Konoko vs. AI Rayman] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=4-P82ctyS2E Guard Dogs preview] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=iLl9FAoujIs Sentry Droid preview] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=yhkTFgEyj28 The Iron Demon Lives] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=d2opg2DIGwk Golden TCTF vs. Regenerating Tanker] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=MmurRBUbW-U Clash of Titans - BGI Hammer vs. Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=M0ugC6fV-6o Hayate vs. Jester, Casey vs. Hayate, Jester vs. Jubei &amp;amp; Akane] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=w-5c5lHjCGA Akane vs. Grey Fury, Jubei vs. Kojiro] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=HXVwjNMLTMg Casey in Chapter 3] by oxe161&lt;br /&gt;
*[http://www.youtube.com/watch?v=o7NvGBsT-gI Casey combo video in Oni Zen Garden] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=vR7Z0Wcuuso Akane combo video in Oni Zen Garden] by Mukade&lt;br /&gt;
*[http://www.youtube.com/watch?v=yD6Ai8uufJI Altered Barabas Boss Fight] by Loser (Mod can be found in EdT&#039;s Boss Battle Level)&lt;br /&gt;
*[http://www.youtube.com/watch?v=QaBDJk9KrNs Barabas New Regeneration] by Gumby&lt;br /&gt;
*[http://www.youtube.com/watch?v=ASyyzfIc3D0 Shinibot &amp;amp; Hanako vs. Smart Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=WQZSY8cmj9k Kojiro &amp;amp; Casey vs. Smart Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=kbA4JvcBZFQ Konoko vs. Smart Barabas] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=-4Dt_7AmdK0 Konoko vs. Smart Barabas with Jumpable Earthquaker package] by Samer&lt;br /&gt;
&lt;br /&gt;
===Levels===&lt;br /&gt;
*[http://www.youtube.com/watch?v=dtmPmt6YqEE Oni goes to a new Level] by EdT&lt;br /&gt;
*[http://www.youtube.com/playlist?list=PLZQupCr62BGlWdKfx6QV-jArcjDgU64Fs Wilderness Preserve Level Full Walkthrough] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=MArbspInwiM SamMegaPack-Fight Club Level Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=hg_7FMlyo9M China Level Mod Final Battle] by Script10k&lt;br /&gt;
*[http://www.youtube.com/watch?v=CChvV7GTi28 Hanako vs. Hayate and Mukade in China Level Mod] &amp;amp; [http://www.youtube.com/watch?v=CChvV7GTi28 Hanako in Final Battle of China Level] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=Fe81gR7BGy8 Casey in EdT&#039;s Maze Level] by oxe161&lt;br /&gt;
*[http://www.youtube.com/watch?v=WZ26KJ46CzE Fight Over the Junkyard] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Wv1IG6QXTMs Oni Custom Characters Good vs. Bad in Junkyard Level] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=iKXw5jt3vSE EdT&#039;s City Level Parkour Challenge] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=QwRzyBGK1yk Oni Tomb Raider Style] showcasing EdT&#039;s Parkour Challenge 1 Level by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=PR_0gddHkNA Parkour Challenge 2 Run] by Tracker&lt;br /&gt;
*[http://www.youtube.com/watch?v=GUR66F9rISE SamMegaPack-Conversion Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=Bs8rdGyEpog SamMegaPack-Conversion Dream Lab Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=oHCnoThNL2c SamMegaPack-Conversion Skull Team Fights Preview]&lt;br /&gt;
*[http://www.youtube.com/watch?v=tE3ZfKzZnOM SamMegaPack-Conversion Atmospheric Interior, Konoko vs Grey Fury] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=QRkfUmq_4qg SamMegaPack-Conversion Final Battle Preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=5EU_kZk2VFM Oni Team Arena using Jubei and Akane] by oxe161&lt;br /&gt;
*[http://www.youtube.com/watch?v=MIhyHi-C2dY Motoko in Leus&#039; Crazy Casey Mod] by Shella45&lt;br /&gt;
*[http://www.youtube.com/watch?v=5PClAPTum8w Leus&#039; Crazy Casey Mod in reverse] by kaargen&lt;br /&gt;
&lt;br /&gt;
===Weapons===&lt;br /&gt;
*[http://www.youtube.com/watch?v=9kJF7HSJl04&amp;amp;feature=youtu.be New Weapons Collection preview] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=vrvQjvV0OUA Sniper Mode]&lt;br /&gt;
&lt;br /&gt;
===Animations===&lt;br /&gt;
*[https://www.youtube.com/watch?v=tE1xO5K3hi8 New combat Moves for Konoko] showcases new move types like Just Frames and Delayed Animations by Delano672&lt;br /&gt;
&lt;br /&gt;
===Other mods===&lt;br /&gt;
*Flatline multiplayer footage: [http://www.youtube.com/watch?v=WZnbVGSyRJU Gumby vs. oxe161], [https://www.youtube.com/watch?v=GMeWr11QVjU Gumby vs. Phydur]&lt;br /&gt;
*[https://www.youtube.com/watch?v=aEuAu7jLQQI Projectile dodging patch for AI]&lt;br /&gt;
*[http://www.youtube.com/watch?v=RjGgk6SqdeQ Things that go boom] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=fec1-bgfCxE Japanese Language Pack special attacks preview] by Gumby&lt;br /&gt;
*[http://www.youtube.com/watch?v=bib24bRXuhQ Hidden Treasure Challenge] by Samer&lt;br /&gt;
*Good vs. Evil 2.0: [https://www.youtube.com/watch?v=CKhHaG_t0eg video 1], [https://www.youtube.com/watch?v=lzB0I-eeO9o video 2], [https://www.youtube.com/watch?v=dcuF1ABj9D0 video 3] by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=gOHCg8KZM4A Burly Brawl v0.1] by Iritscen&lt;br /&gt;
&lt;br /&gt;
===Concepts===&lt;br /&gt;
*[http://www.youtube.com/watch?v=GFbamj63z8Y AI pathfinding in new level] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Yj3ptZnZtx0 AI pathfinding on uneven ground] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Em6wa5JTQNM Hiding parts of the environment] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=iY0eKukGhrM AI Crate jumping] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=2RU6asmmrik New animations - Motoko the cheerleader] by EdT&lt;br /&gt;
*Playing with moveable objects: [https://www.youtube.com/watch?v=Te9yKA4UR18 cubes], [https://www.youtube.com/watch?v=LUmmLTjSaqQ spheres] by Iritscen&lt;br /&gt;
*[http://www.youtube.com/watch?v=YICB7qugrtc Moveable furniture] by EdT&lt;br /&gt;
&lt;br /&gt;
==Modding tutorials==&lt;br /&gt;
*[https://www.youtube.com/watch?v=7fQacrVVQLc Creating a Custom Oni Level: Tutorial on building the Omega Tournament Level] by s10k&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bugs &amp;amp; documentation==&lt;br /&gt;
*[http://www.youtube.com/watch?v=0onq6m7oius Infinite loop bug]&lt;br /&gt;
*[http://www.youtube.com/watch?v=qbo2Q-VD6dc Idle animations] &amp;amp; [http://www.youtube.com/watch?v=CRuZq_uYOQk Idle-to-pistol animations] recorded by Loser, and posted by Iritscen&lt;br /&gt;
*[https://www.youtube.com/watch?v=6-ksW1bBBsg Mukade teleportation] by Iritscen&lt;br /&gt;
*Random AI teleportation [https://www.youtube.com/watch?v=oZZvMldrjlY incident] and [https://www.youtube.com/watch?v=GC4HLDekxQI same incident with logging] by Iritscen&lt;br /&gt;
&lt;br /&gt;
==Fun tributes==&lt;br /&gt;
*[http://www.youtube.com/watch?v=HFwnABhkGHo Oni Dancing] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=_XWmeZYlfEY Oni Police History] by AWPMega&lt;br /&gt;
*[http://www.youtube.com/watch?v=XoE3cBDOAhQ Griffin&#039;s Christmas] by Tantir1 &lt;br /&gt;
*[http://www.youtube.com/watch?v=oOBl_6nDVG4 Come Here] Part I of the 3-part Oni Suite, a ridiculous tribute to Oni&#039;s voice acting by AaronPDX&lt;br /&gt;
*[http://www.youtube.com/watch?v=6v8DpJVusbk Recalibrate!] Part II of the 3-part Oni Suite, a ridiculous tribute to Oni&#039;s voice acting by AaronPDX&lt;br /&gt;
*[http://www.youtube.com/watch?v=H_FZCY-L6uc Oni&#039;s 10th Anniversary in Gmod] by Delano762&lt;br /&gt;
*[http://www.youtube.com/watch?v=ulGF6vCA7T0 Funny Oni] by  ShinatamaCarmyKonoko&lt;br /&gt;
*[http://www.youtube.com/watch?v=JVp45DzGNmg Revenge]&lt;br /&gt;
*[http://www.youtube.com/watch?v=OtrwzmlhqMo When Enemies Become Allies] by EdT&lt;br /&gt;
*[http://www.youtube.com/watch?v=Hqk8OlFsg7Y Oni Tribute - This is War] by Mukade and myplea&lt;br /&gt;
*[http://www.youtube.com/watch?v=uGugKhK3RI0 Places You Weren&#039;t Supposed To Go] by Samer&lt;br /&gt;
*[http://www.youtube.com/watch?v=8Ts8SGuxbK4 The Only Konoko, The Only Motoko] by vul4ak&lt;br /&gt;
*[http://www.youtube.com/watch?v=j0v-hZZ_ofk Oni In Half Life]&lt;br /&gt;
&lt;br /&gt;
==Oni 2 (Angel Studios)==&lt;br /&gt;
*[https://www.youtube.com/watch?v=ZItobLIJJMY Oni 2: Angel Studio&#039;s Lost Sequel to Bungie&#039;s Cult Classic] documentary by PtoPOnline&lt;br /&gt;
*[https://www.youtube.com/playlist?list=PLKywN7NE5TTE2fGdgdhYMs1cAQMD48Q-h Full playthrough] by Iritscen&lt;br /&gt;
&lt;br /&gt;
[[Category:Media]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BGI_characters&amp;diff=29830</id>
		<title>BGI characters</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BGI_characters&amp;diff=29830"/>
		<updated>2020-06-10T23:11:26Z</updated>

		<summary type="html">&lt;p&gt;Samer: &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 [http://wiki.oni2.net/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;
https://lh5.googleusercontent.com/-uUMIztpp5dc/UHi1DxohfAI/AAAAAAAADCE/_5FeN7iCuOw/s400/Oni%25202012-10-13%252003-23-54-54_cr.jpg&lt;br /&gt;
https://lh3.googleusercontent.com/-cIvz49ukHUo/UHi1J-HnhnI/AAAAAAAADCM/msJwdCrWqi4/s400/2012-10-13_032154.jpg&lt;br /&gt;
&lt;br /&gt;
==[[Sarai]]==&lt;br /&gt;
*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/community/forum/viewtopic.php?pid=46869#p46869 here].&lt;br /&gt;
https://lh4.googleusercontent.com/-VdlCgdrk9SQ/UdETSEN-_7I/AAAAAAAAEIw/L1SvBM5S_uk/s640/2013-07-01_081718.jpg&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;
*The characters&#039; design is inspired/influenced by The Matrix&#039;s Agents.&lt;br /&gt;
*Mod available [http://oni.bungie.org/community/forum/viewtopic.php?id=1329 here].&lt;br /&gt;
https://lh3.googleusercontent.com/-j_xPDwBVpAE/UVvlObgWLRI/AAAAAAAAEI8/sy_hN-778t0/s400/2013-04-03_111405.jpg https://lh3.googleusercontent.com/-oQnOpUZKrJ4/UVvlS4BwQXI/AAAAAAAAEJA/2trmbSqcR0M/s400/2013-04-03_111414.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/community/forum/viewtopic.php?pid=19624#p19624 here].&lt;br /&gt;
*:(A major influence of the concept was [[wp:Rhino_(character)|Marvel&#039;s Rhino]] (c.f. [https://www.renderhub.com/rip-van-winkle/rhino-from-marvel-strike-force])&lt;br /&gt;
*The model and textures are made by [[User:Ltemplar|Ltemplar]].&lt;br /&gt;
*Mod available [http://oni.bungie.org/community/forum/viewtopic.php?id=2490 here].&lt;br /&gt;
https://lh3.googleusercontent.com/-NKwyBIr3d4U/ULjzrFQiPbI/AAAAAAAAEJI/JdfsQI-tNb4/s640/2012-11-30_194302.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/community/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://oni.bungie.org/forum/viewtopic.php?id=2936 here].&lt;br /&gt;
https://lh3.googleusercontent.com/pw/ACtC-3fr5cf4yv9cRhTuwmmefIYKCyenpH8FSGXigu66Thgju3IZNXv6Ndy9qohAVm69ZdtC3nXsfZXjEg_Gw4hTXKbptTxI1tIKqJC6k_uXq01lApIAbziMIkrbtfI0PpAtxM2VFM436xNqVEdDeXYjS5_u=w1000-no-tmp.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 &amp;lt;strike&amp;gt;[http://thefree3dmodels.com/stuff/characters/robot_warrior/14-1-0-1497 here]&amp;lt;/strike&amp;gt;. [https://downloadfree3d.com/3d-models/weapons/robot/robot-warrior/ LINK1] [https://www.domawe.net/2014/09/robot-knight-3d-model-free-download-rf.html LINK2]&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://oni.bungie.org/community/forum/viewtopic.php?id=2438 here].&lt;br /&gt;
https://lh5.googleusercontent.com/-znHgHqvu4cw/UGyEyDjIqrI/AAAAAAAAEJU/m0sj_Di8ZUw/s640/2012-10-03_213104.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 [http://wiki.oni2.net/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://www.models-resource.com/pc_computer/unrealtournament2004/model/3923/ 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://oni.bungie.org/community/forum/viewtopic.php?id=2445 here].&lt;br /&gt;
https://lh6.googleusercontent.com/-ViJlYvPRQ6o/UHHQo6WVS_I/AAAAAAAAEJY/QpPP4UlBAts/s640/2012-10-07_185344.jpg&lt;br /&gt;
&lt;br /&gt;
[[Category:BGI]]&lt;/div&gt;</summary>
		<author><name>Samer</name></author>
	</entry>
</feed>