<![CDATA[Tutorials & Guides Latest Topics]]>https://www.xboxchaos.com/forum/156-tutorials-guides/enInfinity Armour Packhttps://www.xboxchaos.com/topic/5327-infinity-armour-pack/ Can Anyone Plz Give Me A Link For The Halo 4 DLC Infinity Armour Pack I will love to have those armours For My Jtag

]]>
5327Wed, 10 Oct 2018 11:17:44 +0000
Gametype Modding Tutorialshttps://www.xboxchaos.com/topic/4244-gametype-modding-tutorials/With maybe 3 or 4 gametype modders still around... I decided to make my tutorials, which have been reserved for people I trust with learning to mod gametypes, now open to everyone here.


 


If you are exploring the forums in search of tutorials on how to get started with online gametype mods, then you've come to the right place.


Keep in mind that cheating is not tolerated, and there has been reason for us keeping little to no documentation on this stuff strictly because of people ready to boost their Customs Stats. Do not do this.


 


 


If you haven't a clue on where to begin, then download this collage for instructions on setup and more.


Getting Started


For Step 2- You'll need...


Microsoft .NET Framework 4.5


Microsoft Visual C++ 2012 Redistributable Package (x86)


 


Once you've gotten comfortable with that, or you are ready to start scripting, use this as your training wheels.


Basics on Triggers


 


 


Know that you should really, really learn to read gametypes before you start writing.


If you can't read it, you probably can't write it.


 


If you have troubles understanding things,


try compiling a gametype and opening it using the WumboScript Viewer.


 


Also keep in mind that gametypes are limited to anything 343i had planned to be able to do with gametypes. If you can't imagine it in a gametype by 343i, you probably can't do it here.


Something we have over 343i though, is that we are creative ;)


 


Happy scripting.


]]>
4244Thu, 19 Jun 2014 22:54:51 +0000
Halo 4 Mammoth Location.https://www.xboxchaos.com/topic/5071-halo-4-mammoth-location/ Hey Xbox Chaos, i needed assistance on finding out how to locate the "mammoth" tags from halo 4, i wanted to inject it into one of the forge maps to muck around with etc, until i stumbled over this problem i encountered. I got "m60_rescue.map" off of my Halo 4 map folder and put it into assembly. After that i proceed to locate the "vehi" tags for the mammoth which i couldn't see, then i typed in mammoth into the search bar and it gave me all of these weird tags and i don't know what one to extract and inject.

]]>
5071Fri, 07 Oct 2016 12:52:43 +0000
How To Play On Spartan Ops Mapshttps://www.xboxchaos.com/topic/3219-how-to-play-on-spartan-ops-maps/Hardware Needed:
RGH/JTAG
 
Files Needed:
XBDM.xex Plugin - XBDM
Halo4 Disk1 & Disk2 Extracted - (Not Provided)
Halo4.Xex With RSA checks removed - (Warez, removed. Use this instead.)
 
Programs Needed:
Xbox360SDK(Neighborhood) - (Not Provided)
Assembly/Ascension - Ascension (I will Not Provide Assembly, But it is not required)
WixPris - WxPris (Or your Favorite DLC Extractor)
HxD - HxD
 
Index:
1: Setting Up Ascension
2: Setting up Dashlaunch (xbdm, contpatch)
3: Extracting Spartan Ops Files and Modding them
4: Poking your Profile to Unlock Maps
5: Playing/Troubleshooting Maps
 
1: Setting Up Ascension
For Ascension to Work right with everything you will need the Xbox360 SDK!

1; Open Ascension and go to Edit, Settings and edit your xbox's IP (Hit OK)
2; File, Open Up The Sparten Ops Map you Want to Play on
3; Now go to Tools, "Advanced Poker" Wait for that to open
4; That is all for now. We will come back to this program later, so don't close it.

1xINv9EF.jpg48A0Llx.jpg
--------------------------------------------------------------------------------
2lmGdYtx.jpg
--------------------------------------------------------------------------------
3cgBUnje.jpg

 
2: Setting up Dashlaunch (xbdm, contpatch)
1 This is Very Simple, Add your Xbdm.xex to the root(top)of your HDD, Then just start up your dashlaunch and in the plugins section, Point this to your Xbdm.xex (Remember, you MUST restart your xbox in order to activate the Plugin)
2 MAKE SURE CONTPATCH IS FALSE!!!
1 vPlJWE4.jpg
--------------------------------------------------------------------------------
2 B1L0eCA.jpg

 
3: Extracting Spartan Ops Files and Modding them
Extract
1; Open your Spartan ops DLC File in WxPris and Extract it to your Desktop
2; ON YOUR XBOX, Put All Maps in the Halo4/maps Folder and put all .mapinfo in the Halo4/maps/info Folder.
1au9pOrT.jpg
--------------------------------------------------------------------------------
2ePlE3Ys.jpg

Modding
1; Take All .Mapinfo Files And place them into 1 folder
2; take your Midnight.campaign file and place it in the same folder
3; Open All Files In HxD
4; For ALL .mapinfo files, Edit 0x40 to be " 00 00 00 2C "
5; For Midnight.Campaign file, go to 0x19C4 & edit this to be
 00 00 2E E0 00 00 2E EA 00 00 2E F4 00 00 2E FE 00 00 2F 1C 00 00 2F 08 00 00 2F 26 00 00 2F 30 00 00 2F 3A 00 00 2F 44 00 00 2B 99 00 00 2B 8F 00 00 2B 85 00 00 2B 67 00 00 2B 5D 00 00 2B 4C 00 00 2B 3F 00 00 2B 49 00 00 2B F2 00 00 2C 26 00 00 2B C0 00 00 2B CA 00 00 2B DE 00 00 2B E8 00 00 2B 35

5(2); The Hex in Part 5 are the names of the mapIds, You can find the map Id's in the Scnr plugin of Ascension.
6; Now just Save these Files And replace them with the original files on your Xbox.

1&2 arY06gR.jpg
--------------------------------------------------------------------------------
3 05cWTVX.jpg
--------------------------------------------------------------------------------
4 yDuwThY.jpg
--------------------------------------------------------------------------------
5 h4mfSxT.jpg
--------------------------------------------------------------------------------
6 Cel5zNT.jpg

 
4: Poking your Profile to Unlock Maps
(make sure your xbdm plugin is running)
1; Start your Halo 4 Game with your .xex that has RSA Checks removed. NO TU!!!
2; Go to the Campaign lobby.
3; in Ascensions Advanced Poker Make the Offset 0xC274FAD0 and make sure the drop bar to the left is on bytes, and 4 to the right of that.
4; Hit GET VALUE (you should see some numbers pop up now under your offset(blue).
5; Change this value to 0FFFFFFF & hit Poke
6; Now try and select your campaign mission. you should now see your spartanOps mission.
7; Before you play, Start up Prologue, Skip the video. When The Mission Dawn Starts up Hit Pause and Save and Quit. (This will make it so your unlocked campaign missions is permanent.)

3&4 vOUGcNj.jpg
--------------------------------------------------------------------------------
5 0D3p1JC.jpg
--------------------------------------------------------------------------------
6 4KQs4y4.jpg


ONLY IF YOU WANT TO PLAY THE NEWEST SEASON!
1; Go back to your dashboard and start your game with the (Warez, removed. Please use this, which will have TU3 shortly.
2; Select your map and play

 
5: Playing/Troubleshooting Maps

- understand that playing on spartan ops maps is still very new and if you are not modding the map file there is really not much you can do. We are working on making them fully functional. Please be patient.
Troubleshooting
1; if you spawned outside of the map...
- You Will Need to edit your Starting location, Go into Scnr, Player Spawns, and edit the X,Y,Z values to edit your location when you restart your mission.
Maps That Will Need Location Changed
Chopper Bowl - (last Chunk)X=10 Y=-20 Z=3
Sniper Ally - (Last Chunk) X=10 Y=0 Z=0

Dlc01_Factory (You Must Change Location to - X=-120 Y=0 Z=5 and make loadouts = to -1 Under Functions)

Alot of the NEW Season just flat out don't work. We are working on it.




2; If you die as soon as the game starts...
- Go into Hlmt and set the Invincibility Enum 1 &Invincibility Enum 2 to True Then Poke and Restart the map.
 
*If you want to Spawn Characters that you can fight you will need to edit the strings inside the map.
1; Go to "Scnr"
2; Set "Loadouts" to -1 (Under Functions)
3; Go to "HSDT"
4; Select your Chunk (in Ascension it will be random, this is why you will want Assembly)
5; Set that chunk to "Startup" under "script options"
6; Restart your map.
(Now after you restart your map, maybe something will change maybe not. Just keep trying until you find good ones to change. WRITE DOWN THE GOOD ONES!)
LKiR65M.jpg


*Credits*
- Lord Zedd (Really for everything)
- Chrisco (Making the Tutorial) ]]>
3219Wed, 13 Feb 2013 08:22:34 +0000
My entire Reference Folderhttps://www.xboxchaos.com/topic/4245-my-entire-reference-folder/I have seen how useful Teancum's resource folder was to me when he released it, and I also know that it can be a pain to get a good collection of gametypes for reference.

 

 

 

So here is my entire Reference Folder for use by anyone (except I am not retiring)

It has 47 gametypes,

all of the useful WumboScript Viewer things,

and misc KSoft stuff that is very helpful to have at-hand

 

So here ya are fellow modders.

Reference Folder

]]>
4245Thu, 19 Jun 2014 23:04:21 +0000
Grenade Regenerationhttps://www.xboxchaos.com/topic/3989-grenade-regeneration/This is the Halo 4 version of Grenade Regeneration for Reach that I posted last night.
 
This uses the same logic as Reach's Grenade Regen, but we've got a bit more stuff to work with in Halo 4 (16 entries for a UDF, and Pulse grenades in this case), so it's just a bit different here.

  • Add these to the StringTable (Skip "Disabled" if your gametype already has it):
           <String name="Disabled">         <String>Disabled</String>       </String>       <String name="Grenade Regen Type">         <String>Grenade Regen Type</String>       </String>       <String name="Which grenades will be effected with Grenade Regeneration">         <String>Which grenades will be effected with Grenade Regeneration</String>       </String>       <String name="Grenade Regen Time">         <String>Grenade Regen Time</String>       </String>       <String name="How long it takes for grenades to regenerate.">         <String>How long it takes for grenades to regenerate.</String>       </String>       <String name="One Frag">         <String>One Frag</String>       </String>       <String name="One Plasma">         <String>One Plasma</String>       </String>       <String name="One Pulse">         <String>One Pulse</String>       </String>       <String name="One Frag, One Plasma">         <String>One Frag, One Plasma</String>       </String>       <String name="One Frag, One Pulse">         <String>One Frag, One Pulse</String>       </String>       <String name="One Plasma, One Pulse">         <String>One Plasma, One Pulse</String>       </String>       <String name="One of Each">         <String>One of Each</String>       </String>       <String name="Instant">         <String>Instant</String>       </String>       <String name="One Second">         <String>One Second</String>       </String>       <String name="Two Seconds">         <String>Two Seconds</String>       </String>       <String name="Three Seconds">         <String>Three Seconds</String>       </String>       <String name="Four Seconds">         <String>Four Seconds</String>       </String>       <String name="Five Seconds">         <String>Five Seconds</String>       </String>       <String name="Six Seconds">         <String>Six Seconds</String>       </String>       <String name="Seven Seconds">         <String>Seven Seconds</String>       </String>       <String name="Eight Seconds">         <String>Eight Seconds</String>       </String>       <String name="Nine Seconds">         <String>Nine Seconds</String>       </String>       <String name="Ten Seconds">         <String>Ten Seconds</String>       </String>       <String name="Fifteen Seconds">         <String>Fifteen Seconds</String>       </String>       <String name="Twenty Seconds">         <String>Twenty Seconds</String>       </String>       <String name="Thirty Seconds">         <String>Thirty Seconds</String>       </String>       <String name="One Minute">         <String>One Minute</String>       </String>
  • Add these to your UserDefinedOptions (Replacing String6 with your gametype's blank string):
          <entry nameIndex="Grenade Regen Type" descIndex="Which grenades will be effected with Grenade Regeneration" name="Grenade Regen Type" valueIndex="0">        <Values defaultIndex="0">          <entry nameIndex="Disabled" descIndex="String6" value="0" />          <entry nameIndex="One Frag" descIndex="String6" value="1" />          <entry nameIndex="One Plasma" descIndex="String6" value="2" />          <entry nameIndex="One Pulse" descIndex="String6" value="3" />          <entry nameIndex="One Frag, One Plasma" descIndex="String6" value="4" />          <entry nameIndex="One Frag, One Pulse" descIndex="String6" value="5" />          <entry nameIndex="One Plasma, One Pulse" descIndex="String6" value="6" />          <entry nameIndex="One of Each" descIndex="String6" value="7" />        </Values>      </entry>      <entry nameIndex="Grenade Regen Time" descIndex="How long it takes for grenades to regenerate." name="Grenade Regen Time" valueIndex="0">        <Values defaultIndex="0">          <entry nameIndex="Instant" descIndex="String6" value="0" />          <entry nameIndex="One Second" descIndex="String6" value="1" />          <entry nameIndex="Two Seconds" descIndex="String6" value="2" />          <entry nameIndex="Three Seconds" descIndex="String6" value="3" />          <entry nameIndex="Four Seconds" descIndex="String6" value="4" />          <entry nameIndex="Five Seconds" descIndex="String6" value="5" />          <entry nameIndex="Six Seconds" descIndex="String6" value="6" />          <entry nameIndex="Seven Seconds" descIndex="String6" value="7" />          <entry nameIndex="Eight Seconds" descIndex="String6" value="8" />          <entry nameIndex="Nine Seconds" descIndex="String6" value="9" />          <entry nameIndex="Ten Seconds" descIndex="String6" value="10" />          <entry nameIndex="Fifteen Seconds" descIndex="String6" value="15" />          <entry nameIndex="Twenty Seconds" descIndex="String6" value="20" />          <entry nameIndex="Thirty Seconds" descIndex="String6" value="30" />          <entry nameIndex="One Minute" descIndex="String6" value="60" />        </Values>      </entry>
  • Under PlayerVariables > Timers, add a new timer (in my example and in the code, it's called PlayerTimer0)
            <Var name="PlayerTimer0" varRefType="Int16">0</Var>
  • Add this trigger to your Triggers (This is in ksoft 5040 code, 4912 is at the bottom):
          <Trigger execMode="OnEachPlayer" name="GrenadeRegen">        <Elements>          <E type="Action" name="TimerRateSet">            <Param type="TimerReference" varRefType="Player.TimerVar" dataType="Iterator.Player">PlayerTimer0</Param>            <Param type="TimerRate">Minus100p</Param>          </E>          <E type="Condition" name="TimerIsZero">            <Param type="TimerReference" varRefType="Player.TimerVar" dataType="Iterator.Player">PlayerTimer0</Param>          </E>          <E type="Action" name="ActivateTrigger">            <Param type="TriggerReference">              <T type="Trigger" trigType="Subroutine" name="GrenadeRegen_Frag">                <Elements>                  <E type="Condition" name="Comparison">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">1</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">4</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">5</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">7</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Action" name="PlayerAdjustGrenades">                    <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                    <Param type="GrenadeType">Frag</Param>                    <Param type="OperationType">Add</Param>                    <Param type="CustomReference" varRefType="Int16">1</Param>                  </E>                </Elements>              </T>            </Param>          </E>          <E type="Action" name="ActivateTrigger">            <Param type="TriggerReference">              <T type="Trigger" trigType="Subroutine" name="GrenadeRegen_Plasma">                <Elements>                  <E type="Condition" name="Comparison">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">2</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">4</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">6</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">7</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Action" name="PlayerAdjustGrenades">                    <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                    <Param type="GrenadeType">Plasma</Param>                    <Param type="OperationType">Add</Param>                    <Param type="CustomReference" varRefType="Int16">1</Param>                  </E>                </Elements>              </T>            </Param>          </E>          <E type="Action" name="ActivateTrigger">            <Param type="TriggerReference">              <T type="Trigger" trigType="Subroutine" name="GrenadeRegen_Pulse">                <Elements>                  <E type="Condition" name="Comparison">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">3</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">5</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">6</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">7</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Action" name="PlayerAdjustGrenades">                    <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                    <Param type="GrenadeType">Pulse</Param>                    <Param type="OperationType">Add</Param>                    <Param type="CustomReference" varRefType="Int16">1</Param>                  </E>                </Elements>              </T>            </Param>          </E>          <E type="Action" name="VariableOperation">            <Param type="VarReference" varRefKind="Timer" varRefType="Player.TimerVar" dataType="Iterator.Player">PlayerTimer0</Param>            <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Time</Param>            <Param type="OperationType">Set</Param>          </E>        </Elements>      </Trigger>

And that's it! In Halo 4, the maximum count that the grenades will regenerate to is 2, rather than 4 as in Reach.

 

Example: Slayer (Had to remove a couple UDF's to make enough room)

 

Here's the trigger in ksoft 4912

      <Trigger execMode="OnEachPlayer" name="GrenadeRegen">        <Elements>          <E type="Action" name="TimerTick">            <Param type="TimerReference" varRefType="Player.TimerVar" dataType="Iterator.Player">PlayerTimer0</Param>            <Param type="UInt5">5</Param>          </E>          <E type="Condition" name="TimerIsZero" unionGroupID="-2">            <Param type="TimerReference" varRefType="Player.TimerVar" dataType="Iterator.Player">PlayerTimer0</Param>          </E>          <E type="Action" name="ActivateTrigger">            <Param type="TriggerReference">              <T type="Trigger" trigType="Subroutine" name="GrenadeRegen_Frag">                <Elements>                  <E type="Condition" name="Comparison" unionGroupID="-2">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">1</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">4</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">5</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">7</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Action" name="PlayerAdjustGrenades">                    <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                    <Param type="GrenadeType">Frag</Param>                    <Param type="OperationType">Add</Param>                    <Param type="CustomReference" varRefType="Int16">1</Param>                  </E>                </Elements>              </T>            </Param>          </E>          <E type="Action" name="ActivateTrigger">            <Param type="TriggerReference">              <T type="Trigger" trigType="Subroutine" name="GrenadeRegen_Plasma">                <Elements>                  <E type="Condition" name="Comparison" unionGroupID="-2">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">2</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">4</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">6</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">7</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Action" name="PlayerAdjustGrenades">                    <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                    <Param type="GrenadeType">Plasma</Param>                    <Param type="OperationType">Add</Param>                    <Param type="CustomReference" varRefType="Int16">1</Param>                  </E>                </Elements>              </T>            </Param>          </E>          <E type="Action" name="ActivateTrigger">            <Param type="TriggerReference">              <T type="Trigger" trigType="Subroutine" name="GrenadeRegen_Pulse">                <Elements>                  <E type="Condition" name="Comparison" unionGroupID="-2">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">3</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">5</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">6</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Condition" name="Comparison" unionGroupID="-3">                    <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Type</Param>                    <Param type="VarReference" varRefKind="Custom" varRefType="Int16">7</Param>                    <Param type="ComparisonType">Equal</Param>                  </E>                  <E type="Action" name="PlayerAdjustGrenades">                    <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                    <Param type="GrenadeType">Pulse</Param>                    <Param type="OperationType">Add</Param>                    <Param type="CustomReference" varRefType="Int16">1</Param>                  </E>                </Elements>              </T>            </Param>          </E>          <E type="Action" name="VariableOperation">            <Param type="VarReference" varRefKind="Timer" varRefType="Player.TimerVar" dataType="Iterator.Player">PlayerTimer0</Param>            <Param type="VarReference" varRefKind="Custom" varRefType="UserDefinedOption">Grenade Regen Time</Param>            <Param type="OperationType">Set</Param>          </E>        </Elements>      </Trigger>

]]>
3989Wed, 05 Mar 2014 00:37:58 +0000
Implementing Object Attaching System In Any Game Typehttps://www.xboxchaos.com/topic/3516-implementing-object-attaching-system-in-any-game-type/KSoft.Tool

1. Find <ObjectFilters> and add to this element:

<Filter labelIndex="attach_parent" name="attach_parent" /><Filter labelIndex="attach_child" name="attach_child" />
 

2. Find <StringTable baseNameIndex="BaseName"> and add to this element:

<String name="attach_parent">    <String>attach_parent</String></String><String name="attach_child">    <String>attach_child</String></String>
 

3. Go to the bottom of the XML file and add the following trigger at the end of the <Triggers> element. I added comments to help you understand the code better.

<!-- Go through all objects with the attach_parent label --><Trigger execMode="OnObjectFilter" name="TriggerAttach" objectFilter="attach_parent">    <Elements>        <!-- Store parent object reference to scratch variable 0 -->        <E type="Action" name="VariableOperation">            <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="ObjectScratch0" />            <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="Iterator.Object" />            <Param type="OperationType">Set</Param>        </E>        <!-- Call a subroutine trigger -->        <E type="Action" name="ActivateTrigger">            <Param type="TriggerReference">                <!-- Go through all objects with the attach_child label -->                <T type="Trigger" trigType="Subroutine" execMode="OnObjectFilter" name="TriggerAttach_Subroutine15" objectFilter="attach_child">                    <Elements>                        <!-- Check if the user data of the parent object and child object match -->                        <E type="Condition" name="Comparison" unionGroupID="-2">                            <Param type="VarReference" varRefKind="Custom" varRefType="Unknown8" dataType="ObjectScratch0" />                            <Param type="VarReference" varRefKind="Custom" varRefType="Unknown8" dataType="Iterator.Object" />                            <Param type="ComparisonType">Equal</Param>                        </E>                        <!-- Attach child object to parent object -->                        <E type="Action" name="AttachObject">                            <Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="Iterator.Object" />                            <Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="ObjectScratch0" />                            <Param type="UInt24">0</Param>                            <Param type="Bool">True</Param>                        </E>                    </Elements>                </T>            </Param>        </E>    </Elements></Trigger>

WumboScript

1. Add standard labels attach_child and attach_parent.

2. Define the tick event if one does not exist.

3. Add the following code to the tick event.

for each current_object0 in objects matching filters.attach_parent do    temp_object0 = current_object0    for each current_object1 in objects matching filters.attach_child do        if temp_object0.user_data = current_object1.user_data then            object_attach_relative(current_object1, temp_object0, 0, true)        end    endend
]]>
3516Tue, 27 Aug 2013 05:14:02 +0000
How to change an object's starting health (Fusion Coils, Vehicles, etc)https://www.xboxchaos.com/topic/4388-how-to-change-an-objects-starting-health-fusion-coils-vehicles-etc/I have been pouring over the forums trying to find out how to make all fusion coils have more health, but I never found a discussion that had a definitive solution. Through some trial and error I managed to figure out how to do it, and I figured I'd post what I did here in case anyone else has difficulty with it.

 

Unfortunately this technique uses one of the ten object variables, so it isn't usable if one's gametype needs all of them. I tried to find ways around this (like analyzing the object's teleporter channel), but I couldn't get anything else to work.

 

The code is below!

 

-----------------------------------------------------------------

 

In your ObjectVariables, add or rename one of the values and set its default value to 0. Note that since 0 is the default value, if the object whose health you're changing dies and respawns, it will respawn with that variable's value being 0.

...<ObjectVariables>      <Numeric>        <Var networkState="HighPriority" name="ObjectNumeric0" varRefType="Int16">0</Var>        <Var networkState="HighPriority" name="ObjectNumeric1" varRefType="Int16">0</Var>        ...        <Var networkState="HighPriority" name="ObjectHealthHasBeenSet" varRefType="Int16">0</Var>        ...      </Numeric>      ...</ObjectVariables>...

Next add a trigger that loops through every object each tick:

...<!-- Sets the health of a fusion coil (or whatever has been given the compcoil_coil label) when it spawns --><Trigger execMode="OnObjectFilter" name="CoilHealthTrigger1" objectFilter="compcoil_coil">   <Elements>      <!-- Check the ObjectHealthHasBeenSet object variable, which is 0 by default -->      <!-- If it is still zero, that means its health hasn't been changed yet      -->      <E type="Condition" name="Comparison">         <Param type="VarReference" varRefKind="Custom" varRefType="Object.NumericVar" dataType="Iterator.Object">ObjectHealthHasBeenSet</Param>         <Param type="VarReference" varRefKind="Custom" varRefType="Int16">0</Param>         <Param type="ComparisonType">Equal</Param>      </E>      <!-- Set the coil's maximum health to be the value the user specified -->      <E type="Action" name="ObjectModifyMaximumBodyVitality">         <Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="Iterator.Object" />         <Param type="OperationType">Set</Param>         <Param type="CustomReference" varRefType="UserDefinedOption">Coil Health</Param>      </E>      <!-- Set the coil's current health to 100. What this does is make the coil have 100% health,  -->      <!-- which will be the user-specified amount of health since we changed the max (100%) health -->      <E type="Action" name="ObjectModifyHealth">         <Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="Iterator.Object" />         <Param type="OperationType">Set</Param>         <Param type="CustomReference" varRefType="Int16">100</Param>      </E>      <!-- Set the coil's ObjectHealthHasBeenSet variable to 1 so we know not to change its health again -->      <E type="Action" name="VariableOperation">         <Param type="VarReference" varRefKind="Custom" varRefType="Object.NumericVar" dataType="Iterator.Object">ObjectHealthHasBeenSet</Param>         <Param type="VarReference" varRefKind="Custom" varRefType="Int16">1</Param>         <Param type="OperationType">Set</Param>      </E>   </Elements></Trigger>...

NOTE: This trigger uses an OnObjectFilter trigger to loop through all the objects that have the specific filter; you could just as effectively simply loop through all objects and check to see if that object is the type you want instead.

 

And that's really all there is to it! It has worked for me with many types of explosives and vehicles thus far, though I haven't tested everything yet (notably I don't know if this works for Extraction pieces).

 

For as simple as this ended up being, it certainly put me through my paces to figure this out, haha! Hopefully this will help someone down the road :smile:

]]>
4388Fri, 01 Aug 2014 15:33:15 +0000
Halo 4 Tu Settings For Ksofthttps://www.xboxchaos.com/topic/3601-halo-4-tu-settings-for-ksoft/OneBarrel/TwoBarrels:

value0 = rounds per second minvalue1 = rounds per second maxvalue2 = spin up acceleration timevalue3 = spin up deceleration timevalue4 = shots per fire minvalue5 = shots per fire maxvalue6 = fire recovery timevalue7 = soft recovery fractionvalue8 = bloom deceleration timevalue9 = damage error minvalue10 = damage error maxvalue11 = base turning speedvalue12 = dynamic turning speed minvalue13 = dynamic turning speed maxvalue14 = projectile distribution anglevalue15 = projectile error angle minvalue16 = projectile error angle maxvalue17 = heat generated per roundvalue18 = charge percentage subtractionvalue19 = aoe core radiusvalue20 = damage lowervalue21 = damage upper minvalue22 = damage upper maxvalue23 = air damage range minvalue24 = air damage range maxvalue25 = buckshot accuracyvalue26 = buckshot spread

OneBarrelWeapons/TwoBarrelWeapons:

value0 = heat recovery thresholdvalue1 = overheat thresholdvalue2 = heat loss per secondvalue3 = heat illuminationvalue4 = overheated heat loss per secondvalue5 = autoaim anglevalue6 = autoaim longvalue7 = autoaim shortvalue8 = autoaim safe radiusvalue9 = magnetism anglevalue10 = magnetism longvalue11 = magnetism shortvalue12 = magnetism safe radiusvalue13 = deviation angle

And for reference sake, these are the corresponding tag offsets for Assembly to find base values.

The first offset is in the main tag, and the second if any is for inside whatever block the first offset pointed to.

 

OneBarrel/TwoBarrels:

value0 = weap x554>x4value1 = weap x554>x8value2 = weap x554>x178value3 = weap x554>x17Cvalue4 = weap x554>x24value5 = weap x554>x26value6 = weap x554>x28value7 = weap x554>x2Cvalue8 = weap x554>x180value9 = weap x554>x54value10 = weap x554>x58value11 = weap x554>x5Cvalue12 = weap x554>x60value13 = weap x554>x64value14 = weap x554>x78value15 = weap x554>x80value16 = weap x554>x84value17 = weap x554>x15Cvalue18 = weap x554>x164value19 = jpt! x34value20 = jpt! x38value21 = jpt! x3Cvalue22 = jpt! x40value23 = proj x394value24 = proj x398value25 = proj x418>x4value26 = proj x418>x8

OneBarrelWeapons/TwoBarrelWeapons:

value0 = weap x31Cvalue1 = weap x320value2 = weap x32Cvalue3 = weap x344value4 = weap x348value5 = weap x420>x8value6 = weap x420>xCvalue7 = weap x420>x10value8 = weap x420>x14value9 = weap x420>x18value10 = weap x420>x1Cvalue11 = weap x420>x20value12 = weap x420>x24value13 = weap x420>x28

]]>
3601Wed, 16 Oct 2013 23:01:15 +0000
H4 Ascension Plugin Threadhttps://www.xboxchaos.com/topic/2964-h4-ascension-plugin-thread/Since I figure it's pointless to map out the entire plugins anew, as Assembly is on it's way, I thought I'd make a thread for people to post plugin info that they find useful, while we wait for Assembly's release.

As I assume people would just be mapping specific things out as they go, I think snippets of plugins will work best for this, as opposed to posting the entire thing with the majority of the plugin being Reach offsets and just a few H4 edits that someone made.

Tip: If you are using Reach plugins as a base, and the tag crashes the program when you load it, you need to remove any tagdata or color (the rgb color picker) references from the plugin, as unless they are in the proper place they will cause an error.

If you aren't going to be mapping anything yourself, it would probably be a good idea to delete everything in-between the top and bottom line (both of which say 'plugin') of your .asc plugin first, and paste any new plugin data in-between said remaining lines. That way you don't have a bunch of left-over Reach data to confuse you over what works and what does not.

What's been posted so far (sectioned into tag, and then structure if applicable):

Bipd

Object Properties


<int32 name="Default Variant" offset="132" visible="True" />
<tagref name="Object Properties" offset="136" visible="True" />

Equipment


<tagref name="Equipment" offset="1520" visible="True"/>

Jump


<float name="Jump Velocity" offset="1588" visible="True" />

Movement Bitmask (only Flying tested, other names unknown if proper)


<bitmask32 name="Movement" offset="1824" visible="True">
<option name="Centered at Origin" value="0" />
<option name="Shape Spherical" value="1" />
<option name="Use Player Physics" value="2" />
<option name="Climb Any Surface" value="3" />
<option name="Flying" value="4" />
<option name="Not Physical" value="5" />
<option name="Dead Character Collision Group" value="6" />
</bitmask32>

Flying Motion Properties


<float name="Flying Bank Angle" offset="1996" visible="True" />
<float name="Flying Bank Apply Time" offset="2000" visible="True" />
<float name="Flying Bank Decay Time" offset="2004" visible="True" />
<float name="Flying Pitch Ratio" offset="2008" visible="True" />
<float name="Flying Max Velocity" offset="2012" visible="True" />
<float name="Flying Max Sidestep Velocity" offset="2016" visible="True" />
<float name="Flying Acceleration" offset="2020" visible="True" />
<float name="Flying Deceleration" offset="2024" visible="True" />
<float name="Flying Angular Velocity Max" offset="2028" visible="True" />
<float name="Flying Angular Acceleration Max" offset="2032" visible="True" />
<float name="Flying Crouch Velocity Modifier?" offset="2038" visible="False" />

Eqip

Equipment (size shouldn't matter, I haven't seen an equip with more than one chunk yet)


<struct name="Equipment 2" offset="804" visible="True" size="396">
<float name="Warning Point" offset="16" visible="True" />
<float name="Minimum Recovered Before Active" offset="20" visible="False" />
<float name="Timer Degrade Initial" offset="24" visible="True"/>
<float name="Timer Degrade Final" offset="28" visible="True"/>
<float name="Timer Degrade Per Second" offset="32" visible="True"/>
</struct>

Hlmt

Starting Tagrefs


<tagref name="Model" offset="0" visible="true" />
<tagref name="Collision" offset="16" visible="true" />
<tagref name="Animation" offset="32" visible="true" />
<tagref name="Physics" offset="48" visible="true" />
<tagref name="Imposter Model" offset="64" visible="true" />

Invincibility Enums


<Enum8 name="Invincibility Enum 1" offset="260" visible="True" >
<option name="True" value="255" />
</Enum8>
<Enum8 name="Invincibility Enum 2" offset="276" visible="True" >
<option name="True" value="255" />
</Enum8>

Variants (extremely dumbed down edition)


<struct name="Variants" offset="196" visible="true" size="108">
<int32 name="Name" offset="0" visible="true" />
<struct name="Objects" offset="48" visible="true" size="36">
<int32 name="Parent Marker" offset="0" visible="true" />
<int32 name="Child Marker" offset="4" visible="true" />
<undefined name="Unknown" offset="8" visible="False" />
<tagref name="Child Object" offset="16" visible="true" />
<undefined name="Unknown" offset="28" visible="False" />
<undefined name="Unknown" offset="32" visible="False" />
</struct>
</struct>

Matg

Player Info


<struct name="Player Information" offset="372" visible="True" size="220" label="">
<float name="Walking Speed" offset="0" visible="true" />
<float name="Run Forward" offset="4" visible="True" />
<float name="Run Backward" offset="8" visible="True" />
<float name="Run Sideways" offset="12" visible="True" />
<float name="Ground Acceleration" offset="16" visible="True" />
<float name="Sneak Forward" offset="20" visible="True" />
<float name="Sneak Backward" offset="24" visible="True" />
<float name="Sneak Sideways" offset="28" visible="True" />
<float name="Sneak Acceleration" offset="32" visible="True" />
<float name="Airborne Acceleration" offset="36" visible="True" />
<float name="Grenade Origin X" offset="40" visible="True" />
<float name="Grenade Origin Y" offset="44" visible="True" />
<float name="Grenade Origin Z" offset="48" visible="True" />
</struct>

Player Data


<struct name="Player Data" offset="384" visible="true" size="128">
<int8 name="Unknown" offset="0" visible="false" />
<tagref name="HUD" offset="4" visible="true" />
<tagref name="First Person" offset="20" visible="true" />
<tagref name="First Person Body" offset="40" visible="true" />
<tagref name="Biped" offset="72" visible="true" />
<int32 name="Biped Variant" offset="88" visible="true" />
<tagref name="Zoom In" offset="92" visible="true" />
<tagref name="Zoom Out" offset="108" visible="true" />
</struct>

Mode

Bounding


<struct name="Bounding Box" offset="128" visible="true" size="52">
<float name="X (min)" offset="4" visible="true" />
<float name="X (max)" offset="8" visible="true" />
<float name="Y (min)" offset="12" visible="true" />
<float name="Y (max)" offset="16" visible="true" />
<float name="Z (min)" offset="20" visible="true" />
<float name="Z (max)" offset="24" visible="true" />
<float name="UV X (min)" offset="28" visible="true" />
<float name="UV X (max)" offset="32" visible="true" />
<float name="UV Y (min)" offset="36" visible="true" />
<float name="UV Y (max)" offset="40" visible="true" />
</struct>

Sbsp

Shader Refs


<struct name="Collision Materials" offset="120" visible="true" size="28">
<tagref name="Shader" offset="0" visible="True" />
<undefined name="Unknown" offset="16" visible="False" />
<undefined name="Unknown" offset="20" visible="False" />
<undefined name="Unknown" offset="24" visible="False" />
</struct>
<struct name="Materials" offset="352" visible="true" size="44">
<tagref name="Shader" offset="0" visible="true" />
<undefined name="Unknown" offset="16" visible="False" />
<float name="Unknown" offset="20" visible="False" />
<undefined name="Unknown" offset="24" visible="False" />
<undefined name="Unknown" offset="28" visible="False" />
<float name="Unknown" offset="32" visible="False" />
<float name="Unknown" offset="36" visible="False" />
<int16 name="Unknown" offset="40" visible="False" />
<int16 name="Unknown" offset="42" visible="False" />
</struct>

Scnr

Sandbox


<struct name="Sandbox" offset="728" visible="True" size="20">
<stringid name="Parent Class" offset="0" visible="True" />
<Enum8 name="Visability" offset="4" visible="True" >
<option name="True" value="0" />
<option name="False" value="1" />
</Enum8>
<struct name="Class" offset="8" visible="True" size="24">
<stringid name="Sub Class" offset="0" visible="True" />
<struct name="Class2" offset="4" visible="True" size="72">
<stringid name="Name" offset="0" visible="True" />
<int32 name="Name" offset="0" visible="True" />
<tagref name="Object" offset="4" visible="True" />
<int32 name="Variant" offset="20" visible="True" />
</struct>
<int name="Spawn Ammount" offset="16" visible="True" />
<int name="Spawn Cost" offset="20" visible="True" />
</struct>
</struct>

Default Screen Effect (seems to be null by default in H4, unlike Reach)


<tagref name="Default Screen Effect" offset="1848" visible="True" />

Sefc

Screen Effects (names improper)


<struct name="Screen Effects" offset="4" visible="true" size="280">
<float name="Bright Light" offset="128" visible="true" />
<float name="Dark Light" offset="132" visible="true" />
<float name="Sky Green" offset="136" visible="true" />
<float name="Sky Red" offset="140" visible="true" />
<float name="Saturation" offset="144" visible="true" />
<float name="Color Range" offset="148" visible="true" />
<float name="Light Intensity" offset="152" visible="true" />
<float name="Darkness" offset="156" visible="true" />
<float name="Brightness" offset="160" visible="true" />
<Float name="Screen Grains Black" offset="164" visible="true" />
<float name="Screen Grains White" offset="168" visible="true" />
<float name="Red" offset="172" visible="true" />
<float name="Green" offset="176" visible="true" />
<float name="Blue" offset="180" visible="true" />
<float name="Cyan" offset="184" visible="true" />
<float name="Violet" offset="188" visible="true" />
<float name="Lime Green" offset="192" visible="true" />
<float name="Unknown" offset="196" visible="true" />
<float name="Blur X?" offset="236" visible="true" />
<float name="Blur Y?" offset="240" visible="true" />
<float name="Hud Transparency?" offset="248" visible="true" />
<float name="Screen Zoom In" offset="252" visible="true" />
<float name="Screen Zoom Out" offset="256" visible="true" />
<float name="Screen Shake" offset="260" visible="true" />
<tagref name="Screen Shader?" offset="264" visible="true" />
</struct>

Vehi [most of these structures have only 1 block so I guarantee their size values will be horribly wrong (other than Seats and Weapons, which should be fine)]

Object Properties / Collsion Damage tagrefs


<tagref name="Object Properties" offset="136" visible="True" />
<tagref name="Collision Damage" offset="168" visible="True" />

Boost Values


<float name="Boost Peak Power" offset="1428" visible="True" />
<float name="Boost Peak Warmup Rate" offset="1432" visible="True" />
<float name="Boost Peak Cooldown Rate" offset="1436" visible="True" />
<float name="Boost Gauge Decay Rate" offset="1440" visible="True" />
<float name="Boost Gauge Warning Point" offset="1444" visible="True" />
<float name="Boost Gauge Recharge Delay" offset="1448" visible="True" />
<float name="Boost Gauge Recharge Rate" offset="1452" visible="True" />

Weapons


<struct name="Weapons" offset="1340" visible="True" size="168">
<tagref name="Weapon" offset="0" visible="True" />
<int32 name="Parent Marker" offset="16" visible="False" />
</struct>

Seats (bitmask names not...renamed)


<struct name="Seats" offset="1364" visible="True" size="364" label="" >
<bitmask32 name="Flags" offset="0" visible="True">
<option name="Invisible" value="0" />
<option name="Locked" value="1" />
<option name="Driver" value="2" />
<option name="Gunner" value="3" />
<option name="3rd Person Camera" value="4" />
<option name="Allows Weapons" value="5" />
<option name="3rd Person On Enter" value="6" />
<option name="1st Person Camera Slaved To Gun" value="7" />
<option name="Allow Vehicle Communication Animations" value="8" />
<option name="Not Valid Without Driver" value="9" />
<option name="Allow AI NonCombatants" value="10" />
<option name="Boarding Seat" value="11" />
<option name="AI Firing Disabled By Max Acceleration" value="12" />
<option name="Boarding Enters Seat" value="13" />
<option name="Boarding Need Any Passenger" value="14" />
<option name="Invaild For Player" value="15" />
<option name="Invaild For Non-Player" value="16" />
<option name="Gunner (Player Only)" value="17" />
<option name="Invisible Under Major Damage" value="18" />
</bitmask32>
<int32 name="Seat Animation" offset="8" visible="True" />
<int32 name="Sitting Postion Marker" offset="12" visible="True" />
<int32 name="Entry Point Marker" offset="16" visible="True" />
<int32 name="Unknown" offset="20" visible="True" />
<int32 name="Unknown" offset="24" visible="True" />
<int32 name="Unknown" offset="28" visible="True" />
<int32 name="Boarding Grenade Marker" offset="32" visible="True" />
<int32 name="Boarding Grenade String" offset="36" visible="True" />
<int32 name="Boarding Melee String" offset="40" visible="True" />
<float name="Ping Scale" offset="44" visible="True" />
<float name="Turnover Time (sec)" offset="48" visible="True" />
<tagref name="Acceleration" offset="52" visible="True" />
<float name="AI Scariness" offset="68" visible="False" />
<enum16 name="AI Seat Type" offset="72" visible="False">
</enum16>
<short name="Boarding Seat #" offset="86" visible="False" />
<float name="Listener Interpolation Factor" offset="88" visible="False" />
<float name="Yaw Rate Bounds (min)" offset="92" visible="True" />
<float name="Yaw Rate Bounds (max" offset="96" visible="True" />
<float name="Pitch Rate Bounds (min)" offset="100" visible="True" />
<float name="Pitch Rate Bounds (max)" offset="104" visible="True" />
<float name="Unknown" offset="96" visible="False" />
<float name="Min Speed Reference" offset="112" visible="True" />
<float name="Max Speed Reference" offset="116" visible="True" />
<float name="Speed Exponent" offset="120" visible="True" />
<int32 name="Camera Marker Name" offset="116" visible="True" />
<float name="Pitch Auto-Level" offset="132" visible="True" />
<float name="Pitch Range (min)" offset="136" visible="True" />
<float name="Pitch Range (max)" offset="140" visible="True" />
<struct name="Camera Tracks" offset="144" visible="True" size="32">
<tagref name="Track" offset="0" visible="True" />
</struct>
<int32 name="Enter Seat String" offset="292" visible="False" />
<float name="Yaw Minimum" offset="296" visible="True" />
<float name="Yaw Maximum" offset="300" visible="True" />
</struct>

Note: Motion properties, here's where the sizes are definitely wrong. At least flying vehicles works this way.

Scorpion Motion


<struct name="Scorpion Motion Properties" offset="1556" visible=" True" size="112">
<float name="Unknown" offset="0" visible="False" />
<float name="Unknown" offset="4" visible="False" />
<float name="Unknown" offset="8" visible="False" />
<float name="Unknown" offset="12" visible="False" />
<float name="Turn Rate" offset="16" visible="True" />
<float name="Speed Back" offset="20" visible="True" />
<float name="Speed Left" offset="24" visible="True" />
<float name="Speed Right" offset="28" visible="True" />
<float name="Turning Speed Right" offset="32" visible="True" />
<float name="Turning Speed Left" offset="36" visible="True" />
<float name="Speed Left 2?" offset="40" visible="True" />
<float name="Speed Right 2?" offset="44" visible="True" />
<float name="Turning Speed Right 2?" offset="48" visible="True" />
<float name="Turning Speed Left 2?" offset="52" visible="True" />
<float name="Horse Power" offset="56" visible="True" />
<float name="Speed Forward" offset="60" visible="True" />
</struct>

Human Motion


<struct name="Human Motion properties" offset="1568" visible="True" size="88">
<float name="Unknown" offset="0" visible="False" />
<float name="Unknown (turning related)" offset="4" visible="False" />
<float name="Maximum Left Turn" offset="8" visible="True" />
<float name="Maximum Right Turn (negative)" offset="12" visible="True" />
<float name="Turn Rate" offset="16" visible="True" />
<float name="Horse Power?" offset="20" visible="True" />
<float name="Vehicle Speed" offset="24" visible="True" />
</struct>

Covy Motion


<struct name="Covenant Motion Proprties" offset="1604" visible="True" size="116">
<float name="Unknown" offset="0" visible="True" />
<float name="Turning Related" offset="4" visible="True" />
<float name="Speed Front" offset="8" visible="True" />
<float name="Speed Back" offset="12" visible="True" />
<float name="Turning Speed" offset="16" visible="True" />
<float name="Braking Force Front/ Back" offset="20" visible="True" />
<float name="Speed Left" offset="24" visible="True" />
<float name="Speed Right" offset="28" visible="True" />
<float name="Acceleration Side" offset="32" visible="True" />
<float name="Braking Force Side" offset="36" visible="True" />
<undefined name="Unknown" offset="40" visible="True" />
<float name="Direction Change?" offset="44" visible="True" />
<float name="Traction?" offset="52" visible="True" />
<undefined name="Unknown" offset="56" visible="False" />
<float name="Turning Rate" offset="60" visible="True" />
</struct>

Banshee Motion


<struct name="Banshee Motion Properties" offset="1616" visible="True" size="104">
<float name="Unknown" offset="0" visible="False" />
<float name="Turning Related" offset="4" visible="True" />
<float name="Max Left Turn" offset="8" visible="True" />
<float name="Max Right Turn" offset="12" visible="True" />
<float name="Turn Rate" offset="16" visible="True" />
<float name="Flying Speed" offset="20" visible="True" />
<float name="Acceleration" offset="24" visible="True" />
<float name="Speed Related 1" offset="28" visible="True" />
<float name="Speed Related 2" offset="32" visible="True" />
<float name="Pitch Left Speed" offset="36" visible="True" />
<float name="Pitch Right Speed" offset="40" visible="True" />
<float name="Pitch Rate" offset="44" visible="True" />
<float name="Unpitch Rate" offset="48" visible="True" />
<float name="Flight Stability" offset="52" visible="False" />
<undefined name="unknown" offset="56" visible="False" />
<float name="Up/Down Tendency" offset="60" visible="False" />
<float name="Unknown" offset="64" visible="False" />
<float name="Unknown" offset="68" visible="False" />
<float name="Unknown" offset="72" visible="False" />
<float name="Unknown" offset="76" visible="False" />
<float name="Falling Speed" offset="80" visible="True" />
<float name="Falling Speed 2" offset="84" visible="True" />
<float name="Unknown" offset="88" visible="False" />
<float name="Unknown" offset="92" visible="False" />
<float name="Unknown" offset="96" visible="False" />
<float name="Force Direction?" offset="100" visible="False" />
</struct>

Weap

Object Properties


<int32 name="Default Variant" offset="132" visible="True" />
<tagref name="Object Properties" offset="136" visible="True" />

Weapon Flags (names from Reach, some work like 3rd person, but some have been changed)


<bitmask32 name="Flags" offset="720" visible="True">
<option name="vertical heat display" value="0" />
<option name="mutually exclusive triggers" value="1" />
<option name="attacks automatically on bump" value="2" />
<option name="must be readied" value="3" />
<option name="doesn't count towards maximum" value="4" />
<option name="aim assists only when zoomed" value="5" />
<option name="prevents grenade throwing" value="6" />
<option name="must be picked up" value="7" />
<option name="holds triggers when dropped" value="8" />
<option name="prevents melee attack" value="9" />
<option name="detonates when dropped" value="10" />
<option name="cannot fire at maximum age" value="11" />
<option name="secondary trigger overrides grenades" value="12" />
<option name="(OBSOLETE)does not depower" value="13" />
<option name="enables integrated night vision" value="14" />
<option name="AIs use weapon melee damage" value="15" />
<option name="forces no binoculars" value="16" />
<option name="loop fp firing animation" value="17" />
<option name="prevents sprinting" value="18" />
<option name="cannot fire while boosting" value="19" />
<option name="Prevents Driving" value="20" />
<option name="is 3rd person" value="21" />
<option name="can be dual wielded" value="22" />
<option name="can only be dual wielded" value="23" />
<option name="melee only" value="24" />
<option name="can't fire if parent dead" value="25" />
<option name="weapon ages with each kill" value="26" />
<option name="weapon uses old dual fire error" value="27" />
<option name="primary trigger melee attacks" value="28" />
<option name="cannot be used by player" value="29" />
</bitmask32>

Melee Damage (size shouldn't matter I don't think)


<struct name="Melee Damage" offset="912" visible="True" size="200">
<float name="Damage Pyramid Angle Yaw" offset="0" visible="True" />
<float name="Damage Pyramid Angle Pitch" offset="4" visible="True" />
<float name="Damage Pyramid Depth" offset="8" visible="True" />
<float name="Unknown" offset="12" visible="false" />
<undefined name="Unknown" offset="16" visible="false" />
<float name="Unknown" offset="20" visible="false" />
<tagref name="1st Hit Damage" offset="24" visible="true" />
<tagref name="1st Hit Response" offset="40" visible="true" />
<tagref name="2nd Hit Damage" offset="56" visible="true" />
<tagref name="2nd Hit Response" offset="72" visible="true" />
<tagref name="3rd Hit Damage" offset="88" visible="true" />
<tagref name="3rd Hit Response" offset="104" visible="true" />
<tagref name="Gun/Gun Clang Damage" offset="120" visible="true" />
<tagref name="Gun/Gun Clang Response" offset="136" visible="true" />
<tagref name="Gun/Sword Clang Damage" offset="152" visible="true" />
<tagref name="Gun/Sword Clang Response" offset="168" visible="true" />
<tagref name="Melee Effect" offset="184" visible="true" />
</struct>

Zoom Values


<int16 name="Zoom Levels" offset="942" visible="True" />
<float name="Min Zoom" offset="944" visible="True" />
<float name="Max Zoom" offset="948" visible="True" />

First Person


<struct name="First Person" offset="1284" visible="true" size="32">
<tagref name="Model" offset="0" visible="true" />
<tagref name="Animation" offset="16" visible="true" />
</struct>

Magazine (there are a bunch of floats leading up to the ammo sub-structure, if anyone feels curious and wants to see what they do)


<struct name="Magazines" offset="1340" visible="True" size="132">
<bitmask32 name="flags" offset="0" visible="True">
<option name="Wastes Rounds When Reloaded" value="1" />
<option name="Every Round Must Be Chambered" value="2" />
</bitmask32>
<int16 name="Rounds Recharged" offset="4" visible="True" />
<int16 name="Initial Rounds" offset="6" visible="True" />
<int16 name="Initial Max Rounds (Unused?)" offset="8" visible="True" />
<int16 name="Clip Size" offset="10" visible="True" />
<int16 name="Max Rounds" offset="12" visible="True" />
<int16 name="Initial Rounds (Upgrade)" offset="14" visible="true" />
<int16 name="Max Rounds (Upgrade)" offset="16" visible="true" />
<int16 name="Unknown" offset="18" visible="false" />
<float name="Reload Time" offset="20" visible="true" />
<int16 name="Rounds Reloaded" offset="24" visible="true" />
<int16 name="Unknown" offset="26" visible="false" />
<float name="Chamber Time" offset="28" visible="true" />
<tagRef name="Reloading Effect" offset="56" visible="true" />
<tagRef name="Reloading Damage Effect" offset="72" visible="true" />
<tagRef name="Chambering Effect" offset="88" visible="true" />
<tagRef name="Chambering Damage Effect" offset="104" visible="true" />
<struct name="Ammo" offset="120" visible="True" size="20">
<int16 name="Rounds Given (0 for Max)" offset="0" visible="True" />
<int16 name="Unknown" offset="2" visible="False" />
<tagref name="Gets Ammo From..." offset="4" visible="True" />
</struct>
</struct>

Triggers (enum names from Reach)


<struct name="Triggers" offset="1352" visible="True" size="168">
<bitmask32 name="Flags" offset="0" visible="True">
<option name="Autofire Single Action Only" value="0" />
</bitmask32>
<enum16 name="Button used" offset="4" visible="True" >
<option name="Right Trigger" value="0" />
<option name="Left Trigger" value="1" />
<option name="Melee Attack (SP Only)" value="2" />
<option name="Automated Fire (Unassigned)" value="3" />
<option name="Right Bumper" value="4" />
</enum16>
<enum16 name="Behavior" offset="6" visible="true" >
<option name="Spew" value="0" />
<option name="Latch" value="1" />
<option name="Latch-Autofire" value="2" />
<option name="Charge" value="3" />
<option name="Latch-Zoom" value="4" />
<option name="Latch-Lockon" value="5" />
<option name="1-Charge/Spew 2-Latch" value="6" />
</enum16>
<short name="Primary Barrel" offset="8" visible="True" />
<short name="Secondary Barrel" offset="10" visible="True" />
<enum16 name="Prediction" offset="12" visible="True">
<option name="None" value="0" />
<option name="Spew" value="1" />
<option name="Charge" value="2" />
</enum16>
<int16 name="Unknown" offset="14" visible="False" />
<float name="Autofire Time" offset="16" visible="True" />
<float name="Autofire Throw" offset="20" visible="True" />
<enum16 name="Secondary Action" offset="24" visible="True">
<option name="Fire" value="0" />
<option name="Charge" value="1" />
<option name="Track" value="2" />
<option name="Fire Other" value="3" />
</enum16>
<enum16 name="Primary Action" offset="26" visible="True">
<option name="Fire" value="0" />
<option name="Charge" value="1" />
<option name="Track" value="2" />
<option name="Fire Other" value="3" />
</enum16>
<float name="Charging Time" offset="28" visible="True" />
<float name="Charged Time" offset="32" visible="True" />
<enum32 name="Overcharged Action" offset="36" visible="True">
<option name="None" value="0" />
<option name="Explode" value="1" />
<option name="Discharge" value="2" />
<option name="Fire" value="33554432" />
<option name="Launch" value="33620064" />
<option name="Secondary" value="16" />
</enum32>
<float name="Charged Illumination (0,1)" offset="40" visible="True" />
<tagref name="Unknown" offset="44" visible="False" />
<tagref name="Unknown" offset="60" visible="False" />
<tagref name="Charging Damage Response" offset="76" visible="True" />
<float name="Charge degeneration" offset="92" visible="True" />
</struct>

Barrels (again, idk how accurate the names under the Flags bitmask are)


<struct name="Barrels" offset="1364" visible="true" size="400">
<bitmask32 name="Flags" offset="0" visible="False">
<option name="Tracks Fired Projectile" value="0" />
<option name="Random Firing Effects" value="1" />
<option name="Can Fire With Partial Ammo" value="2" />
<option name="Projectiles use Weapon Origin" value="3" />
<option name="Ejects During Chamber" value="4" />
<option name="Use Error When Unzoomed" value="5" />
<option name="Projectile Vector Cannot Be Adjusted" value="6" />
<option name="Projectiles Have Identical Error" value="7" />
<option name="Projectiles Fire Parallel" value="8" />
<option name="Cant Fire When Others Firing" value="9" />
<option name="Cant Fire When Others Recovering" value="10" />
<option name="Don't Clear Fire Bit After Recovering" value="11" />
<option name="Stagger Fire Across Multiple Markers" value="12" />
<option name="Fires Locked Projectiles" value="13" />
</bitmask32>
<float name="rounds per second (min)" offset="4" visible="true" />
<float name="rounds per second (max)" offset="8" visible="true" />
<float name="Acceleration Time" offset="16" visible="True" />
<float name="Deceleration Time" offset="24" visible="True" />
<float name="Barrel Spin Scale" offset="28" visible="True" />
<float name="Blurred Rate of Fire" offset="32" visible="True" />
<int16 name="Shots Per Fire Min" offset="36" visible="true" />
<int16 name="Shots Per Fire Max" offset="38" visible="true" />
<float name="Fire Recovery Time" offset="40" visible="true" />
<float name="Soft Recovery Fraction" offset="44" visible="True" />
<short name="Magazine Chunk" offset="56" visible="true" />
<short name="Rounds Per Shot" offset="58" visible="true" />
<short name="Minimum Rounds Loaded" offset="60" visible="true" />
<short name="Rounds Between Tracers" offset="62" visible="true" />
<int32 name="Optional Barrel" offset="64" visible="True" />
<enum16 name="Prediction Type" offset="68" visible="False">
<option name="0" value="0" />
</enum16>
<enum16 name="Firing Noise" offset="70" visible="False">
<option name="0" value="0" />
</enum16>
<float name="Error Acceleration Time" offset="76" visible="True" />
<float name="Error Deceleration Time" offset="80" visible="True" />
<float name="Damage Error Lower" offset="84" visible="True" />
<float name="Damage Error Upper" offset="88" visible="True" />
<float name="Dual Weapon Error Acceleration Time" offset="92" visible="True" />
<float name="Dual Weapon Error Deceleration Time" offset="96" visible="True" />
<float name="Unknown" offset="100" visible="False" />
<enum16 name="Distribution Function" offset="104" visible="True">
<option name="Point" value="0" />
<option name="Fan" value="1" />
</enum16>
<short name="Projectiles per Shot" offset="106" visible="True" />
<float name="Error Angle" offset="112" visible="True" />
<float name="Base Bloom Amount" offset="128" visible="True" />
<float name="Bloom Increment Per-Shot" offset="132" visible="True" />
<float name="Reload Bloom Reset Time" offset="136" visible="True" />
<float name="Weapon Switch Bloom Reset Time" offset="140" visible="True" />
<float name="Zoom Bloom Reset Time" offset="144" visible="True" />
<float name="Jump Bloom Reset Time" offset="148" visible="True" />
<enum8 name="Reported Weapon" offset="268" visible="False">
<option name="0" value="0" />
</enum8>
<tagref name="Inital Projectile" offset="272" visible="true" />
<tagref name="Trailing Projectile" offset="288" visible="true" />
<tagref name="Unknown" offset="304" visible="true" />
<tagref name="Forced Projectile?" offset="324" visible="true" />
<float name="Ejection Port Recovery Time" offset="340" visible="True" />
<float name="Illumination Recovery Time" offset="344" visible="True" />
<float name="Heat Generated Per Round" offset="348" visible="True" />
<float name="Charge Percentage Subtraction" offset="356" visible="True" />
<float name="Age Generated Per Round" offset="360" visible="True" />
<float name="Firing Effect Reset Speed" offset="368" visible="True" />
<float name="Bloom Reset Speed" offset="384" visible="True" />
</struct>

]]>
2964Thu, 01 Nov 2012 05:37:47 +0000
Commonly used enums ready for Copy-Pastahttps://www.xboxchaos.com/topic/4243-commonly-used-enums-ready-for-copy-pasta/I have a handy dandy file with all of my most used enums ready with all of the repetitive syntax already filled in so I rarely have to type more than a few words when writing for KSoft. I think I'll make this available to all who still write gametypes (You lovely people) and things can be made much faster.


 


So here is the dropbox link for the spicy Italiano copy Pasta file!


https://www.dropbox.com/s/y4ql8dskm1zhnau/Enums.xml


Enjoy :)


]]>
4243Thu, 19 Jun 2014 22:28:16 +0000
Team-Based Kill Barriershttps://www.xboxchaos.com/topic/4242-team-based-kill-barriers/I have been asked enough if it's possible to create team-based kill zones, so I decided to just write it up really fast so that if anyone needs, it's right here and ready to implement.

 

Put this in the string table:

      <String name="team_kill">        <String>team_kill</String>      </String>

Put this in Object Filters:

    <ObjectFilters>      <Filter labelIndex="team_kill" name="team_kill" />    </ObjectFilters>

...and put this trigger, well, in the triggers:

      <Trigger execMode="OnObjectFilter" objectFilter="team_kill">        <Elements>          <E type="Action" name="VariableOperation">            <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />            <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="NONE" />            <Param type="OperationType">Set</Param>          </E>          <E type="Action" name="ActivateTrigger">            <Param type="TriggerReference">              <T type="Trigger" trigType="Subroutine" execMode="OnEachPlayer">                <Elements>                  <E type="Condition" name="Comparison">                    <Param type="VarReference" varRefKind="Team" varRefType="Player.OwnerTeam" dataType="Iterator.Player" />                    <Param type="VarReference" varRefKind="Team" varRefType="Object.OwnerTeam" dataType="Iterator.Object" />                    <Param type="ComparisonType">NotEqual</Param>                  </E>                  <E type="Condition" name="ObjectIsInBoundary">                    <Param type="ObjectReference" varRefType="Player.SlaveObject" dataType="Iterator.Player" />                    <Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="Iterator.Object" />                  </E>                  <E type="Action" name="VariableOperation">                    <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                    <Param type="OperationType">Set</Param>                  </E>                </Elements>              </T>            </Param>          </E>          <E type="Condition" name="Comparison">            <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />            <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="NONE" />            <Param type="ComparisonType">NotEqual</Param>          </E>          <E type="Action" name="ObjectKillInstantly">            <Param type="ObjectReference" varRefType="Player.SlaveObject" dataType="PlayerScratch0" />            <Param type="Bool">False</Param>          </E>        </Elements>      </Trigger>

This is untested so tell me if it doesn't work. It certainly should.

How it should work is it will kill anyone who isn't on the same team as it, and is in the boundary.

]]>
4242Thu, 19 Jun 2014 22:23:22 +0000
Halo 4 Assembly Memory Editing [UPDATED 30/5/14]https://www.xboxchaos.com/topic/3878-halo-4-assembly-memory-editing-updated-30514/ Hi decided to do a small tutorial for a few things i like doing in halo 4 customs with afew mates or XBC, Most of this will work in Halo 3 and reach also.

Enjoy!!. 

 

Note: you need a JTAG/RGH and Assembly

 

Thanks to Lord Zedd helping me over the years

 

Flying Vehicles

 

1. Open the .map file and click tags (tags located top left of screen)

2. Scroll down and find the tag -Vehi

3. Click the Storm_Banshee_mp

4. Using the search bar search for "Jet engine" and you should find Jet Engine motion properties

5. Click the Information drop down arrow and copy the text/numbers in the address EG (0xBEFF0C00)

ed3cd027849ce0fac7aef3c6f4749c19.png

6. Now in the -Vehi tag click the vehicle you would like to fly and repeat Step 4.

7. Click the information drop down arrow and Paste the text you copied from Step 5. and set the Count text to 1

8. Now depending on what vehicle your motion swapping, you will have to search for a different names. Use the list below to search for the vehicle your using

 

Vehicles     |   Search with these names

--------------+-----------------------------------

Warthog - Engine Motion Properties

Mongoose - Engine Motion Properties 

Ghost - Antigravity Motion Properties

wraith - Antigravity Motion Properties

Scorpion - Tank Engine Motion Properties

Warthog - Engine Motion Properties

Banshee - Jet engine motion properties

 

9. Now that you have searched for your vehicles motion properties, Click the information drop down arrow and Nill out the address and the Count to 1

 

4dd5e38ce350a279ab7560ca5f9fff2a.png10. Click the Quick Poke button and spawn your vehicle and it should fly

NOTE: If you or any player is in the vehicle you have changing you will freeze your console so delete all vehicles if possible

 

 

 

Projectile Swapping

 

1. Open the .map file and click tags (tags located top left of screen)

2. Scroll down and find the tag -weap

3. Click the weapon you want to modify in my case the Storm_covenant_Carbine

4. Using the search bar search for " initial projectile " and you should find a drop down box switch the projectile in the box to your selected projectile

5. Click Quick Poke and fire away 

 

5279c1052eb303d148db400c8baceedb.png

 

 

Rocket Launcher - Heat Seeking Rockets

 

Ok by now i think i don`t need to tell you how to find the tags i`m using, So i`m going to shorten up the steps.

 

1. Go to the Tag -Weap

2. Find the rocket launcher and click it

3. Now search for "tracking"

4. again in the -Weap tag find the needler and search for tracking and copy the text in the address box

5. paste the text you copied from step 4 into the rocket launcher tracking address  

6. Click Quick Poke and enjoy

 

ad2cf1bc2086df19944efbf39d76a710.png7b615e1ae6bdb368d93dc1af5349cc88.png

 

 

 

TankHog / Child Object swapping

 

1. Go to the Tag -HLMT

2. Find the Storm_warthog.hlmt and click it

3. Now search for "child object"

4. Click the drop down box and select the Storm_scorpion_cannon or your selected Object EG: you can also use the tag -Bloc and spawn these object

6. Click Quick Poke and enjoy

511b4e511e.png

 

NOTE: You cant change the child object to itself as it will freeze the game, So don't make a warthog turret a warthog

 

Using -Effe to spawn objects (all players can see this. also good for projectile modding)

 

1. Go to the Tag -Effe

2. Find your weapons firing effect Storm_br\fx\Firing and click it

3. Scroll down to Anticipated class tag and rename this to obje

4. Click the drop down box for Spawned tag and select the Proj

5. Select a projectile in the drop-down box you would like to shoot

6. Click Quick Poke and enjoy

eb1fa4a58a.png

03c42d94dc.png

 

 

Flying Warthog for all players

 

SAME STEPS AS FLYING WARTHOG MOSTLY

 

1. Open the .map file and click tags (tags located top left of screen)

2. Scroll down and find the tag -Vehi

3. Click the Storm_Banshee_mp

4. Using the search bar search for "Jet engine" and you should find Jet Engine motion properties

5. Click the Information drop down arrow and copy the text/numbers in the address EG (0xBEFF0C00)

ed3cd027849ce0fac7aef3c6f4749c19.png

6. Now in the -Vehi tag click the vehicle you would like to fly and repeat Step 4.

7. Click the information drop down arrow and Paste the text you copied from Step 5. and set the Count text to 1

8. Now depending on what vehicle your motion swapping, you will have to search for a different names. Use the list below to search for the vehicle your using

 

Vehicles     |   Search with these names

--------------+-----------------------------------

Warthog - Engine Motion Properties

Mongoose - Engine Motion Properties 

Ghost - Antigravity Motion Properties

wraith - Antigravity Motion Properties

Scorpion - Tank Engine Motion Properties

Warthog - Engine Motion Properties

Banshee - Jet engine motion properties

 

9. Now that you have searched for your vehicles motion properties, Click the information drop down arrow and Nill out the address and the Count to 1

 

4dd5e38ce350a279ab7560ca5f9fff2a.png10. Ok, so now we are going to change the jet Engine motion properties on the vehicle we want all players to fly.

      So search for acceleration and change this to -500

0eae3d3c3f.png

11. Click Quick poke and done (Other Players have to pull back on the left stick then push forward to start flying)

 

NOTE: If you or any player is in the vehicle you have changing you will freeze your console so delete all vehicles if possible

 

Remove barriers:

Open up the map you wish to edit in assembly
Search for the tag sddt, > search Design MOPP Codes, > show information (i), > under count, change the value to 0

Search for the tag scnr > select your map file, > search Scenario Kill Trigger  > show information (i), > under count, change the value to 0 for anything labelled trigger

                                                                                                                                                                                                                                                                                                                                 Note: Dont change "Trigger Volumes" values

                                                                                        >Search Scenario Safe Trigger > show information (i), > under count, change the value to 0 for anything labelled trigger

 
 
More Coming Soon

 

 

]]>
3878Thu, 30 Jan 2014 11:47:26 +0000
Adding A Custom Load Screenhttps://www.xboxchaos.com/topic/3221-adding-a-custom-load-screen/Something recently figured out was how the load screen models were stored/used. It uses a voxel format made up of thousands of single XYZ points that when put together create your model. Think Minecraft.
 
So to pull this off yourself you'll want the following:

Assembly
Your model in .OBJ or .DXF format. (This tutorial will only point out the correct orientation for export in, nothing else)
This site for the conversion because it can export to a simple xml format that is easy to "translate" for H4 usage.
A map(s) you wish to put the new model into. BACKUP YOUR ORIGINAL. This tutorial will use mainmenu.map.
 
**The Main Menu's load screens (Cryptum for Campaign, UNSC Logo for Everything Else) handle the transition TO another map and not FROM. The model shown when going BACK to the Main Menu is read from the current individual map, and is always the UNSC Logo.**
 
So first off you want to create/get your new model and open it in your preferred editor. I'm using a big Lord Zedd Z symbol.
ldsctut1.jpg
 
To orient the model correctly, you want the top of the model facing you from the front, and the face of the model pointing to the left from the front. Here is my "Z" oriented correctly and illustrated:
ldsctut2.jpg
 
It may also be helpful to enlarge your model 200-300% depending on the original size, though you'll be able to zoom in at the end when you are tweaking the LDSC meta.
 
Once you are happy with your model's size and orientation, export the model as .OBJ or .DXF (I'm using .OBJ) then head to that conversion site.
 
Click the Load File button and select your model. By default the site uses a rather low density, so crank the density slider up.
 
Click the Options button and change "Export File As:" to .XML. Click Done.
 
Now click Save File and pay attention to the first line under the progress bar named Voxels and here is why:
 
1. You'll need that number for later so write it down.
2. You need to check the number against the following. If your model contains more Voxels than one of these you'll have to turn the density down for now until meta page injection is set up for Halo 4:
Cryptum: 44,385 voxels
UNSC Logo: 38,768
If your model is less than 38,768 voxels it can replace either load screen, if between 38,768 and 44,385 it can only replace the cryptum screen. But don't worry if that is the case, as you can swap the offsets later if needed.
 
With that out of the way, hit the Save button in the dialog box and save your voxel model. Remember to keep the xml extension and to note the voxel count.
 
With the model ready, we must "translate" that xml file to a list of floats to easily paste into the .map. Open Assembly and go to TOOLS>Halo 4 Tools>Voxel Converter to bring up the page. Put your .xml file into the input box and click the Convert Voxel Data button. In a few seconds, you should get this success dialog:
ldsctut3.jpg
 
For safe keeping, lets save that output to a file. Open up your hex editor of choice and create a new file. Copy the output hex and paste it into the editor and save. Now you have a file with the raw float in case you ever want to add it to other maps or start over without all the conversion mess. You should include the voxel count in the filename while you are at it.
ldsctut4.jpg
 
Time to add the model to the map. Open your map and navigate to the LDSC tag you are replacing. Scroll down to the Voxel Points reflexive and Right Click>View Value As... on the first X value in chunk 0. A dialog box will appear, and at the top of it is the Meta Offset for that value, which is where we shall be pasting out new model into. Copy it and close the map for now.
ldsctut5.jpg
 
Open the map in a hex editor and jump to the offset you just got. Then open the file you saved containing Assembly's conversion and select everything, note the size of the selection.
ldsctut6.jpg
 
Go back to the map and select a block equal to what you just copied and then paste, save, and exit your Hex Editor. Your model is now injected! Time for cleanup.
ldsctut7.jpg
 
Go back to Assembly and reopen the map. Navigate to your LDSC tag. Expand the Voxel Point reflexive's information and paste your new voxel count to both the Total Voxel Count and the Count Fields (Outlined in red, new value already in.) and Save Changes.
ldsctut8.jpg
 
All done! Copy the map to your Xbox and load something. You should see your hard work:
2013-02-1403-21-22.jpg
 
More than likely however it is going to look a tad small like the above pic (UNSC Logo as a base). To fix change "Zoom Out Amount" to around 20. It will look much better:
2013-02-1403-23-25.png
 
From this point just poke and experiment with the values, saving whatever looks best. Protip: try different Style values! wink.png

Addendum: Colors and Map-Specific Loading

 

A week or so after I wrote this tutorial I learned a few new things about Load Screens. Now that Assembly is out and I just released updated plugins that support these new things, I believe it's time to add to this tutorial a bit.

 

First, You can set the global Load Screen in RASG, in addition to a color! (Kinda)

ldsctutupdate1.jpg

 

The LDSC reference is obvious, but the color needs an explanation;

I am unsure of how exactly the value works as it's not a standard color field of any sort, so the best I can do is paste this basic list of colors that appear at .1 increments. If you have any further info by all means let me know. Apologies for the vagueness in this list.

0 blue
.1 blue
.2 blue
.3 more gold
.4 gold
.5 lime
.6 green
.7 greener
.8 red
.9 red
1 red


Second, is that the LDSC reflexive at the bottom of SCNR is actually used for campaign to assign the Cryptum screen. It assigns via map ID and can easily be changed to any map and screen you choose. There is also a color setting here. Refer to the above.

ldsctutupdate2.jpg


Happy Modding!

]]>
3221Thu, 14 Feb 2013 08:33:14 +0000
All Halo 4 Internal Map Names (Mp,sp,so)https://www.xboxchaos.com/topic/2929-all-halo-4-internal-map-names-mpspso/MP:
ca_blood_cavern - Abandon
ca_blood_crash - Exile
ca_canyon - Meltdown
ca_forge_bonanza - Impact
ca_forge_erosion - Erosion
ca_forge_ravine - Ravine
ca_gore_valley - Longbow
ca_redoubt - Vortex
ca_tower - Solace
ca_warhouse - Adrift
wraparound - Haven
z05_cliffside - Complex
z11_valhalla - Ragnarok

Crimson Map Pack
dlc_dejewel - Shatter
dlc_dejunkyard - Wreckage
zd_02_grind - Harvest

 

Majestic Map Pack

ca_deadlycrossing - Monolith

ca_port - Landfall

ca_rattler - Skyline

 

Castle Map Pack

ca_basin - Outcast

ca_highrise - Perdition

ca_spiderweb - Daybreak

 

Bullseye Pack (Champions Bundle)

ca_creeper - Pitfall

ca_dropoff - Vertigo

 

SO 1.0:
ff81_courtyard - The Gate
ff82_scurve - The Cauldron
ff84_temple - The Refuge
ff86_sniperalley - Sniper Alley
ff87_chopperbowl - Quarry
ff90_fortsw - Fortress
ff91_complex - Galileo Base
ff92_valhalla - Two Giants

SO 1.5:
dlc01_engine - Infinity
dlc01_facory - Lockup
ff151_mezzanine - Control
ff152_vortex - Cyclone
ff153_caverns - Warrens
ff154_hillside - Apex
ff155_breach - Harvester

SP:
m05_prologue - Prologue
m10_crash - Dawn
m020 - Requiem
m30_cryptum - Forerunner
m60_rescue - Infinity (switched around)
m40_invasion - Reclaimer (switched around)
m70_liftoff - Shutdown
m80_delta - Composer
m90_sacrifice - Midnight
m95_epilogue - Epilogue

]]>
2929Mon, 22 Oct 2012 06:02:46 +0000
Enhanced Killfeedhttps://www.xboxchaos.com/topic/3697-enhanced-killfeed/Enhanced Killfeed

This mod displays the tool of destruction in the killfeed.

hjvB6u9.png

  • Add these strings to the string table.
  • If you don't have an IncidentTrigger, then add one.
  • Add the following to the IncidentTrigger's <Elements> tag

              <E type="Action" name="IncidentGetCausePlayer">            <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />          </E>          <E type="Action" name="IncidentGetEffectPlayer">            <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_ar_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k213" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_dmr_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k214" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_pistol_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k215" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_sniper_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k216" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_shotgun_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k217" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_br_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k218" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_lmg_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k219" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_railgun_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k220" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_stickydet_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k221" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_rocketlauncher_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k222" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_splaser_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k223" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_sword_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k224" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_hammer_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k225" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_needler_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k226" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_assaultcarbine_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k227" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_carbine_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k228" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_plasmapistol_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k229" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_fuelrod_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k230" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_beamrifle_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k231" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_concussion_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k232" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_lightrifle_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k233" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_repeater_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k234" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_scattershot_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k235" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_boltpistol_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k236" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_binaryrifle_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k237" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_incinerator_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k238" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_frag_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k243" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_foregrenade_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k244" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_weapon_plasmagrenade_kill_player</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k245" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">comm_vehicle_splatter</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k393" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>          <E type="Action" name="Branch">            <Param type="VirtualTrigger">              <VT type="VirtualTrigger">                <E type="Condition" name="Incident">                  <Param type="IncidentIdRef">hail_mary</Param>                </E>                <E type="Action" name="ChudMessage">                  <Param type="TargetVar" targetType="None" />                  <Param type="SoundIndex">NONE</Param>                  <Param type="Tokens2" stringIndex="k697" tokenCount="2">                    <Token0 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                    <Token1 type="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch1" />                  </Param>                </E>              </VT>            </Param>          </E>
]]>
3697Tue, 03 Dec 2013 22:25:49 +0000
Gametype Iconshttps://www.xboxchaos.com/topic/4053-gametype-icons/Didn't see these on the site anywhere, so I figured I'd post them here for reference.
 
Not Pictured:

15 / 0x0F = Ricochet (blank before TU 6)



Decimal (as ksoft uses):
IKGmFCf.png
 
Hex (actual byte values):
L54sBq4.png

]]>
4053Tue, 01 Apr 2014 04:59:33 +0000
Implementing Bro Traits Into Other Gametypeshttps://www.xboxchaos.com/topic/3617-implementing-bro-traits-into-other-gametypes/Sup guys! In this tutorial, I'll be showing everyone how to implement Bro, or "Proximity" traits into other gametypes.

 

Bro Traits were first seen in Halo 3's VIP mode, which featured an option that gave allies traits if they were near the VIP. They were not featured in Reach as VIP was "removed" (A leaked and broken version exists today). Kornman brought them to Halo 4 and MegaloScript (They weren't even in the leaked Reach gametype) in his Halomods CTF gametype, and they are also in Hostage Rescue as well for allies that are escorting the Hostage.

 

So how do we add them in? It's actually pretty easy. I decided to show the complete process. We need...

 

-Strings

-A Bro Radius option

-The actual coding for bro traits

-A new traitset to be applied to bros

-Some visual indicator that you have them

 

To start off, here's the strings...

    <---Name of UserDefinedOption--->      <String name="Bro Radius">        <String>Bro Radius</String>      </String>    <---Description for UserDefinedOption--->      <String name="Radius around objective player at which Bro Traits apply">        <String>Radius around objective player at which Bro Traits apply</String>      </String>    <---values for UserDefinedOption. They are translated into other languages as well and numbered, so if your gametype has the numbers, change them--->      <String name="String71">        <English>Disabled</English>        <Japanese>オフ</Japanese>        <German>Deaktiviert</German>        <French>Désactivé(e)</French>        <Spanish>Desact.</Spanish>        <Mexican>Desact.</Mexican>        <Italian>No</Italian>        <Korean>끄기</Korean>        <ChineseTrad>停用</ChineseTrad>        <ChineseSimp>Disabled</ChineseSimp>        <Portuguese>Desat.</Portuguese>        <Polish>Wyłączone</Polish>        <Russian>Откл.</Russian>        <Danish>Deaktiveret</Danish>        <Finnish>Pois käytöstä</Finnish>        <Dutch>Uitgeschakeld</Dutch>        <Norwegian>Deaktivert</Norwegian>      </String>      <String name="String85">        <English>3 Units</English>        <Japanese>3号機</Japanese>        <German>3 Stück</German>        <French>3 unités</French>        <Spanish>3 Unidades</Spanish>        <Mexican>3 Unidades</Mexican>        <Italian>3 Unità</Italian>        <Korean>3 대</Korean>        <ChineseTrad>3單位</ChineseTrad>        <ChineseSimp>3单位</ChineseSimp>        <Portuguese>3 unidades</Portuguese>        <Polish>3 Jednostki</Polish>        <Russian>3 единицы</Russian>        <Danish>3 enheder</Danish>        <Finnish>3 Kpl</Finnish>        <Dutch>3 Eenheden</Dutch>        <Norwegian>3 stk</Norwegian>      </String>      <String name="String86">        <English>5 Units</English>        <Japanese>5号機</Japanese>        <German>5 Stück</German>        <French>5 unités</French>        <Spanish>5 Unidades</Spanish>        <Mexican>5 Unidades</Mexican>        <Italian>5 Unità</Italian>        <Korean>5 대</Korean>        <ChineseTrad>5單位</ChineseTrad>        <ChineseSimp>5单位</ChineseSimp>        <Portuguese>5 unidades</Portuguese>        <Polish>5 Jednostki</Polish>        <Russian>5 единицы</Russian>        <Danish>5 enheder</Danish>        <Finnish>5 Kpl</Finnish>        <Dutch>5 Eenheden</Dutch>        <Norwegian>5 stk</Norwegian>      </String>      <String name="String87">        <English>8 Units</English>        <Japanese>8号機</Japanese>        <German>8 Stück</German>        <French>8 unités</French>        <Spanish>8 Unidades</Spanish>        <Mexican>8 Unidades</Mexican>        <Italian>8 Unità</Italian>        <Korean>8 대</Korean>        <ChineseTrad>8單位</ChineseTrad>        <ChineseSimp>8单位</ChineseSimp>        <Portuguese>8 unidades</Portuguese>        <Polish>8 Jednostki</Polish>        <Russian>8 единицы</Russian>        <Danish>8 enheder</Danish>        <Finnish>8 Kpl</Finnish>        <Dutch>8 Eenheden</Dutch>        <Norwegian>8 stk</Norwegian>      </String>      <String name="String88">        <English>10 Units</English>        <Japanese>10号機</Japanese>        <German>10 Stück</German>        <French>10 unités</French>        <Spanish>10 Unidades</Spanish>        <Mexican>10 Unidades</Mexican>        <Italian>10 Unità</Italian>        <Korean>10 대</Korean>        <ChineseTrad>10單位</ChineseTrad>        <ChineseSimp>10单位</ChineseSimp>        <Portuguese>10 unidades</Portuguese>        <Polish>10 Jednostki</Polish>        <Russian>10 единицы</Russian>        <Danish>10 enheder</Danish>        <Finnish>10 Kpl</Finnish>        <Dutch>10 Eenheden</Dutch>        <Norwegian>10 stk</Norwegian>      </String>      <String name="String89">        <English>15 Units</English>        <Japanese>15号機</Japanese>        <German>15 Stück</German>        <French>15 unités</French>        <Spanish>15 Unidades</Spanish>        <Mexican>15 Unidades</Mexican>        <Italian>15 Unità</Italian>        <Korean>15 대</Korean>        <ChineseTrad>15單位</ChineseTrad>        <ChineseSimp>15单位</ChineseSimp>        <Portuguese>15 unidades</Portuguese>        <Polish>15 Jednostki</Polish>        <Russian>15 единицы</Russian>        <Danish>15 enheder</Danish>        <Finnish>15 Kpl</Finnish>        <Dutch>15 Eenheden</Dutch>        <Norwegian>15 stk</Norwegian>      </String>      <String name="String90">        <English>20 Units</English>        <Japanese>20号機</Japanese>        <German>20 Stück</German>        <French>20 unités</French>        <Spanish>20 Unidades</Spanish>        <Mexican>20 Unidades</Mexican>        <Italian>20 Unità</Italian>        <Korean>20 대</Korean>        <ChineseTrad>20單位</ChineseTrad>        <ChineseSimp>20单位</ChineseSimp>        <Portuguese>20 unidades</Portuguese>        <Polish>20 Jednostki</Polish>        <Russian>20 единицы</Russian>        <Danish>20 enheder</Danish>        <Finnish>20 Kpl</Finnish>        <Dutch>20 Eenheden</Dutch>        <Norwegian>20 stk</Norwegian>      </String>      <String name="String91">        <English>25 Units</English>        <Japanese>25号機</Japanese>        <German>25 Stück</German>        <French>25 unités</French>        <Spanish>25 Unidades</Spanish>        <Mexican>25 Unidades</Mexican>        <Italian>25 Unità</Italian>        <Korean>25 대</Korean>        <ChineseTrad>25單位</ChineseTrad>        <ChineseSimp>25单位</ChineseSimp>        <Portuguese>25 unidades</Portuguese>        <Polish>25 Jednostki</Polish>        <Russian>25 единицы</Russian>        <Danish>25 enheder</Danish>        <Finnish>25 Kpl</Finnish>        <Dutch>25 Eenheden</Dutch>        <Norwegian>25 stk</Norwegian>      </String>      <String name="String92">        <English>30 Units</English>        <Japanese>30号機</Japanese>        <German>30 Stück</German>        <French>30 unités</French>        <Spanish>30 Unidades</Spanish>        <Mexican>30 Unidades</Mexican>        <Italian>30 Unità</Italian>        <Korean>30 대</Korean>        <ChineseTrad>30單位</ChineseTrad>        <ChineseSimp>30单位</ChineseSimp>        <Portuguese>30 unidades</Portuguese>        <Polish>30 Jednostki</Polish>        <Russian>30 единицы</Russian>        <Danish>30 enheder</Danish>        <Finnish>30 Kpl</Finnish>        <Dutch>30 Eenheden</Dutch>        <Norwegian>30 stk</Norwegian>      </String>      <String name="String93">        <English>40 Units</English>        <Japanese>40号機</Japanese>        <German>40 Stück</German>        <French>40 unités</French>        <Spanish>40 Unidades</Spanish>        <Mexican>40 Unidades</Mexican>        <Italian>40 Unità</Italian>        <Korean>40 대</Korean>        <ChineseTrad>40單位</ChineseTrad>        <ChineseSimp>40单位</ChineseSimp>        <Portuguese>40 unidades</Portuguese>        <Polish>40 Jednostki</Polish>        <Russian>40 единицы</Russian>        <Danish>40 enheder</Danish>        <Finnish>40 Kpl</Finnish>        <Dutch>40 Eenheden</Dutch>        <Norwegian>40 stk</Norwegian>      </String>      <String name="String94">        <English>55 Units</English>        <Japanese>55号機</Japanese>        <German>55 Stück</German>        <French>55 unités</French>        <Spanish>55 Unidades</Spanish>        <Mexican>55 Unidades</Mexican>        <Italian>55 Unità</Italian>        <Korean>55 대</Korean>        <ChineseTrad>55單位</ChineseTrad>        <ChineseSimp>55单位</ChineseSimp>        <Portuguese>55 unidades</Portuguese>        <Polish>55 Jednostki</Polish>        <Russian>55 единицы</Russian>        <Danish>55 enheder</Danish>        <Finnish>55 Kpl</Finnish>        <Dutch>55 Eenheden</Dutch>        <Norwegian>55 stk</Norwegian>      </String>      <String name="String95">        <English>70 Units</English>        <Japanese>70号機</Japanese>        <German>70 Stück</German>        <French>70 unités</French>        <Spanish>70 Unidades</Spanish>        <Mexican>70 Unidades</Mexican>        <Italian>70 Unità</Italian>        <Korean>70 대</Korean>        <ChineseTrad>70單位</ChineseTrad>        <ChineseSimp>70单位</ChineseSimp>        <Portuguese>70 unidades</Portuguese>        <Polish>70 Jednostki</Polish>        <Russian>70 единицы</Russian>        <Danish>70 enheder</Danish>        <Finnish>70 Kpl</Finnish>        <Dutch>70 Eenheden</Dutch>        <Norwegian>70 stk</Norwegian>      </String>      <String name="String96">        <English>100 Units</English>        <Japanese>100号機</Japanese>        <German>100 Stück</German>        <French>100 unités</French>        <Spanish>100 Unidades</Spanish>        <Mexican>100 Unidades</Mexican>        <Italian>100 Unità</Italian>        <Korean>100 대</Korean>        <ChineseTrad>100單位</ChineseTrad>        <ChineseSimp>100单位</ChineseSimp>        <Portuguese>100 unidades</Portuguese>        <Polish>100 Jednostki</Polish>        <Russian>100 единицы</Russian>        <Danish>100 enheder</Danish>        <Finnish>100 Kpl</Finnish>        <Dutch>100 Eenheden</Dutch>        <Norwegian>100 stk</Norwegian>      </String>      <String name="String97">        <English>150 Units</English>        <Japanese>150号機</Japanese>        <German>150 Stück</German>        <French>150 unités</French>        <Spanish>150 Unidades</Spanish>        <Mexican>150 Unidades</Mexican>        <Italian>150 Unità</Italian>        <Korean>150 대</Korean>        <ChineseTrad>150單位</ChineseTrad>        <ChineseSimp>150单位</ChineseSimp>        <Portuguese>150 unidades</Portuguese>        <Polish>150 Jednostki</Polish>        <Russian>150 единицы</Russian>        <Danish>150 enheder</Danish>        <Finnish>150 Kpl</Finnish>        <Dutch>150 Eenheden</Dutch>        <Norwegian>150 stk</Norwegian>      </String>    <---Name of Traitset--->      <String name="Bro Traits">        <String>Bro Traits</String>      </String>    <---Description of Traitset--->      <String name="Traits applied to bros of the objective player within the bro radius.">        <String>Traits applied to bros of the objective player within the bro radius.</String>      </String>

Now for the UserDefinedOption

   <---All these are numbered to specific strings, so if your gametype has those numbers, change them--->      <entry nameIndex="Bro Radius" descIndex="Radius around objective player at which Bro Traits apply" name="Bro Radius" valueIndex="4">        <Values defaultIndex="3">          <entry nameIndex="String71" descIndex="String15" value="0" />          <entry nameIndex="String85" descIndex="String15" value="3" />          <entry nameIndex="String86" descIndex="String15" value="5" />          <entry nameIndex="String87" descIndex="String15" value="8" />          <entry nameIndex="String88" descIndex="String15" value="10" />          <entry nameIndex="String89" descIndex="String15" value="15" />          <entry nameIndex="String90" descIndex="String15" value="20" />          <entry nameIndex="String91" descIndex="String15" value="25" />          <entry nameIndex="String92" descIndex="String15" value="30" />          <entry nameIndex="String93" descIndex="String15" value="40" />          <entry nameIndex="String94" descIndex="String15" value="55" />          <entry nameIndex="String95" descIndex="String15" value="70" />          <entry nameIndex="String96" descIndex="String15" value="100" />          <entry nameIndex="String97" descIndex="String15" value="150" />        </Values>      </entry>

And the traitset to be applied

      <entry nameIndex="Bro Traits" descIndex="Traits applied to bros of the objective player within the bro radius." name="Bro Traits" />

Finally, the meat of it all! The scripting!

 

Add a boundary to the objective player (I found searching for the HUD banner to be an easy way to know it's placement). Change "Iterator.Player" to whoever the HUD banner is applied to if it is someone else To apply the HUD banner, the Bro Boundary, and other Objective Carrier Traits, gametypes apply the traits to all players BUT will check if the player has met certain conditions. So Iterator.Player should ALWAYS work.

                  <E type="Action" name="ObjectSetBoundary">                    <Param type="ObjectReference" varRefType="Player.SlaveObject" dataType="Iterator.Player" />                    <Param type="Shape" shapeType="Sphere">                      <Radius varRefType="UserDefinedOption">Bro Radius</Radius>                    </Param>                  </E>

Now we add the part that applies the bro traits. This is assuming that the Objective Carrier was already set to PlayerScratch0 in the same Trigger.

                <E type="Action" name="ActivateTrigger">                  <Param type="TriggerReference">                    <T type="Trigger" trigType="Subroutine" execMode="OnEachPlayer">                      <Elements>                <---If a player is on the same team as the objective player--->                        <E type="Condition" name="Comparison">                          <Param type="VarReference" varRefKind="Team" varRefType="Player.OwnerTeam" dataType="Iterator.Player" />                          <Param type="VarReference" varRefKind="Team" varRefType="Player.OwnerTeam" dataType="PlayerScratch0" />                          <Param type="ComparisonType">Equal</Param>                        </E>                 <---AND he is not an Objective Player--->                        <E type="Condition" name="Comparison">                          <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                          <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                          <Param type="ComparisonType">NotEqual</Param>                        </E>                  <---AND he is in the boundary we made earlier (Check if that matches up)--->                        <E type="Condition" name="ObjectIsInBoundary">                          <Param type="ObjectReference" varRefType="Player.SlaveObject" dataType="Iterator.Player" />                          <Param type="ObjectReference" varRefType="Player.SlaveObject" dataType="PlayerScratch0" />                        </E>                   <---Apply these traits--->                        <E type="Action" name="ApplyPlayerTraits">                          <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                          <Param type="PlayerTraitsReference">Bro Traits</Param>                        </E>                      </Elements>                    </T>                  </Param>                </E>

Are done yet? Technically, but it is highly recommended to add some kind of notification telling the player that they're a bro. You can either use a small text widget or a larger one (experimental)

 

Small

 

1. Add all strings as we did above

 

2. Add this to the HUDWidgets database. If you have a widget with the same number, change the number of this one

      <Widget position="10" name="Widget2" />

3. Now we need to make sure this widget is always invisible unless turned visible. There should be a separate trigger that has commands that look similar to this already.

          <E type="Action" name="WidgetSetPlayerVisibility">            <Param type="Widget">Widget2</Param>            <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />            <Param type="Bool">False</Param>          </E>

4. Display the HUD Widget and set the text. Add this to the end of the code above where we applied the traits (we used "applyplayertraits")

                        <E type="Action" name="WidgetSetText">                          <Param type="Widget">Widget2</Param>                          <Param type="Tokens2" stringIndex="You are a bro!" />                        </E>                        <E type="Action" name="WidgetSetPlayerVisibility">                          <Param type="Widget">Widget2</Param>                          <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                          <Param type="Bool">True</Param>                        </E>

Larger Text

 

This one's a bit odd to set up, as it's actually a 2D Navpoint, but when set up correctly, functions as a larger text widget. To use it, follow these steps

 

-Add all strings as we did earlier

-Get a reference to the skybox

-Set the navpoint to the skybox

-Make it visible

 

1. This is basically the name we're using to store the skybox in so it can be referenced later. Add this to the database for Global Objects. If you don't have one, make one under the objectfilters database. Here is what the completed thing looks like.

    <GlobalVariables>      <Objects>        <Var networkState="HighPriority" name="GlobalObject1" />      </Objects>    </GlobalVariables>

2. To get a reference to the skybox, add this as the very first trigger (Sorry for bad spacing)

<Trigger execMode="OnEachObject" name="GetAnObjectForTheHUDTrigger"><Elements><!--Find the first object (usually the skybox)--><E type="Condition" name="Comparison" unionGroupID="-2"><Param name="Result" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="GlobalObject0" /><Param name="OperationVar" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="NONE" /><Param type="ComparisonType">Equal</Param></E><!--use this as our HUD marker--><E type="Action" name="VariableOperation"><Param name="Result" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="GlobalObject0" /><Param name="OperationVar" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="Iterator.Object" /><Param name="Operation" type="OperationType">Set</Param></E><!--Find the first object (usually the skybox)--><E type="Condition" name="Comparison" unionGroupID="-2"><Param name="Result" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param name="OperationVar" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="NONE" /><Param type="ComparisonType">Equal</Param></E><!--use this as our HUD marker--><E type="Action" name="VariableOperation"><Param name="Result" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param name="OperationVar" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="Iterator.Object" /><Param name="Operation" type="OperationType">Set</Param></E></Elements></Trigger>

3. Now to display the navpoint. Add this under the "applyplayertraits" command we added earlier

<E type="Action" name="ObjectSetNavpoint"><Param name="ObjectVar" type="ObjectReference" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param name="NavPointName" type="NameIndex">navpoint_megalo_message_hostile</Param></E><E type="Action" name="ObjectSetNavpointVisibility"><Param name="ObjectVar" type="ObjectReference" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param name="Param1" type="EntityFilter" filterType="Any" /></E><E type="Action" name="ObjectSetPriority"><Param name="ObjectVar" type="ObjectReference" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param name="Priority" type="NetworkPriority">High</Param></E><E type="Action" name="ObjectSetBountyText"><Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param type="Tokens1" stringIndex="You are a bro!" /></E>

Now we're done. And this is why I shouldn't make tutorials, I probably just confused you all.

]]>
3617Wed, 30 Oct 2013 23:43:37 +0000
Object Scalinghttps://www.xboxchaos.com/topic/3902-object-scaling/This is from Abandoned Cashew's Plague gametype. All credit goes to him and Thunder who worked on that gametype together.

 

User data sets scale of object x5%

 

Only works on objects set to normal physics

 

Create/Add to script (after Object Filters, before Triggers):

<ObjectVariables>  <Numeric>    <Var networkState="HighPriority" name="ObjectNumeric0" varRefType="Int16">0</Var>  </Numeric></ObjectVariables>
Add to Strings:

<String name="object_scale">  <String>object_scale</String></String>
Add to Object Filters:

<Filter labelIndex="object_scale" name="object_scale" />
Create Trigger: 

 

<Trigger trigType="Local" name="LocalTrigger">  <Elements>    <E type="Action" name="ActivateTrigger">      <Param type="TriggerReference">        <T type="Trigger" trigType="Subroutine" execMode="OnObjectFilter" name="Trigger46_Subroutine47" objectFilter="object_scale">          <Elements>            <E type="Action" name="VariableOperation">              <Param type="VarReference" varRefKind="Custom" varRefType="Object.NumericVar" dataType="Iterator.Object">ObjectNumeric0</Param>              <Param type="VarReference" varRefKind="Custom" varRefType="UserData" dataType="Iterator.Object" />              <Param type="OperationType">Set</Param>            </E>            <E type="Condition" name="Comparison">              <Param type="VarReference" varRefKind="Custom" varRefType="Object.NumericVar" dataType="Iterator.Object">ObjectNumeric0</Param>              <Param type="VarReference" varRefKind="Custom" varRefType="Int16">0</Param>              <Param type="ComparisonType">GreaterThan</Param>            </E>            <E type="Action" name="VariableOperation">              <Param type="VarReference" varRefKind="Custom" varRefType="Object.NumericVar" dataType="Iterator.Object">ObjectNumeric0</Param>              <Param type="VarReference" varRefKind="Custom" varRefType="Int16">5</Param>              <Param type="OperationType">Multiply</Param>            </E>            <E type="Action" name="ObjectScale">              <Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="Iterator.Object" />              <Param type="CustomReference" varRefType="Object.NumericVar" dataType="Iterator.Object">ObjectNumeric0</Param>            </E>          </Elements>        </T>      </Param>    </E>  </Elements> </Trigger>
]]>
3902Fri, 07 Feb 2014 01:47:44 +0000
Waypoint Appearance Guidehttps://www.xboxchaos.com/topic/3912-waypoint-appearance-guide/<?xml version="1.0" encoding="utf-8" standalone="yes"?> <!--Info in Assembly, WGTZ>Jump To>UI>COMPONENTS>StringID--><msit name="multiplayer\megalo\global"> <names> <entry name="navpoint_ctf_flag_away" /> <!--Says "PROTECT"--> <entry name="navpoint_ctf_flag_carrier" /> <!--Says "KILL" for enemy or neutral team when flag is held, "PROTECT" for friendly--> <entry name="navpoint_ctf_flag_normal" /> <!--Says "CAPTURE" for enemy or neutral team, "DEFEND" for friendly--> <entry name="navpoint_ctf_flag_return" /> <!--Says "PROTECT" - StringID is "deliver"--> <entry name="navpoint_dom_last_stander" /> <!--Says "KILL"--> <entry name="navpoint_flood_player" /> <!--Crimson red downward arrow, no text--> <entry name="navpoint_megalo_extraction" /> <!--Says "EXTRACT"--> <entry name="navpoint_megalo_extraction_blink" /> <!--Blink of above--> <entry name="navpoint_megalo_extraction_beacon" /> <!--Says "DISARM" if on enemy team, "PROTECT" on friendly, "EXTRACT" on neutral--> <entry name="navpoint_megalo_extraction_beacon_blink" /> <!--Blink of above--> <entry name="navpoint_megalo_extraction_se_beacon" /> <!--Says "CONVERT" if on enemy team, "PROTECT" on friendly, "EXTRACT" on neutral--> <entry name="navpoint_megalo_extraction_se_beacon_blink" /> <!--Blink of above--> <entry name="navpoint_megalo_extraction_player_beacon" /> <!--Says "PROTECT" (friendly), "KILL" (enemy), "BEACON" (neutral)--> <entry name="navpoint_megalo_extraction_incoming" /> <!--Says "INCOMING" if neutral, "DEFEND" if friendly, "CAPTURE" if enemy--> <entry name="navpoint_megalo_extraction_red" /> <!--Says "CONVERT" if on enemy team, "PROTECT" on friendly, "EXTRACT" on neutral--> <entry name="navpoint_megalo_flood" /> <!--Seems to be related to safe havens according to Assembly. Should say "HAVEN" when attached to an object. Untested--> <entry name="navpoint_megalo_flood_blink" /> <!--Blink of above--> <entry name="navpoint_megalo_koth" /> <!--Says "CAPTURE" (enemy/neutral) or "DEFEND" (friendly)--> <entry name="navpoint_megalo_koth_blink" /> <!--Blink of above--> <entry name="navpoint_megalo_koth_incoming" /> <!--Says "INCOMING" if neutral, "DEFEND" if friendly, "CAPTURE" if enemy--> <entry name="navpoint_megalo_koth_timer" /> <!--variant of navpoint_megalo_koth with a timer on it--> <entry name="navpoint_megalo_koth_timer_blink" /> <!--Blink of above--> <entry name="navpoint_megalo_oddball" /> <!--A big, white, useless box. Supposed to say "DEFEND" (friendly) or "SCORE" (enemy/neutral)--> <entry name="navpoint_megalo_oddball_blink" /> <!--Blink of above--> <entry name="navpoint_megalo_general" /> <entry name="navpoint_megalo_general_blink" /> <!--Blink of above--> <entry name="navpoint_megalo_message_power" /> <!--Not visible--> <entry name="navpoint_megalo_message_hostile" /> <!--A 2D HUD waypoint, accepts BountyText--> <entry name="navpoint_megalo_one_row" /> <entry name="navpoint_megalo_two_row" /> <entry name="navpoint_megalo_three_row" /> <entry name="navpoint_oddball_player_blink" /> <!--Says "BALL"--> <entry name="navpoint_oddball_player_friendly_only" /> <!--Inherits navpoint_oddball_player, shows to friendly only--> <entry name="navpoint_oddball_goal" /> <!--Says "DEFEND" (friendly), "SCORE" (enemy/neutral)--> <entry name="navpoint_oddball_player" /> <!--Says "BALL" if neutral, "ESCORT" if friendly, "KILL" if enemy--> <entry name="navpoint_oddball_thrown" /> <!--Says "THROWN"--> <entry name="navpoint_oddball_trailing" /> <!--Says "DROPPED"?--> <entry name="navpoint_regicide" /> <!--Says "BOUNTY %n" for enemy team, "PROTECT" for friendly team, no text for a neutral team. Inherits icon from object, no override--> <entry name="navpoint_strong_base" /> <!--Says "CAPTURE"--> <entry name="navpoint_strong_base_countdown" /> <!--Says "FORTIFYING" (friendly) or "CAPTURE" (enemy/neutral), has meter around outer edge--> <entry name="navpoint_strong_base_defend" /> <!--Says "DEFEND" (friendly) or "CAPTURING" (enemy)--> <entry name="navpoint_strong_base_fort" /> <!--Says "CAPTURE"--> <entry name="navpoint_strong_base_fort_countdown" /> <!--Says "RESUPPLYING"or "CAPTURE" (enemy/neutral) - should have a timer???--> <entry name="navpoint_strong_base_fort_defend" /> <!--Says "DEFEND" (friendly) or "CAPTURING" (enemy)--> </names> </msit>

I always have issues finding this so I'm going to post it here. Credits to Teancum for this.

]]>
3912Fri, 07 Feb 2014 18:15:56 +0000
Weaponless Vehicleshttps://www.xboxchaos.com/topic/3548-weaponless-vehicles/Weaponless Vehicles

 

Introduction

 

In this tutorial, I will show you how to implement a Forge label which strips a vehicle of all of its weapons. All vehicles are compatible however note that the horn will also be removed from the Warthog and Mongoose. Vehicles without weapons will not have a reticle on the center of the screen.

Screenshots

 

KzdjbOd.png

>> Click here to see more screenshots

Concept

 

How does it work?

Firstly, the distance between the objects attached to the vehicle regardless of position is zero. Therefore, all we need to do is to create a trigger which loops through each object with the 'weaponless' filter. Store the current object to scratch object variable 0. Inside this trigger, add another trigger looping through each game object.

Next, we need to confirm that the object with the weaponless vehicle is not the same object in second trigger because the distance between an object and itself is zero.

Now we have (in pseudocode):

for each object with weaponless filter:

temp1 = current object

for each object:

temp2 = current object

distance = object_get_distance(temp1, temp2)

if temp2 =/= temp1 and distance = 0

object_delete(temp1)

end

end

end

That's all, right?! Not so fast, Sparky. All objects inside a vehicle will have a distance of zero including the player's biped and the player's equipments meaning they will also get deleted. What you need to do now is to check whether the current object has an owner player and whether the object is a biped.

I understand that you're in a hurry so here's the code.

KSoft Code

1. Add the following to the Megalo string table:

<String name="weaponless">    <String>weaponless</String></String>
2. Add the following to object filters:

<Filter labelIndex="weaponless" name="weaponless" />
3. Add the following trigger:

<Trigger execMode="OnObjectFilter" name="TriggerWeaponless" objectFilter="weaponless">  <Elements>    <E type="Action" name="VariableOperation">      <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="ObjectScratch0" />      <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="Iterator.Object" />      <Param type="OperationType">Set</Param>    </E>    <E type="Action" name="ActivateTrigger">      <Param type="TriggerReference">        <T type="Trigger" trigType="Subroutine" execMode="OnEachObject" name="Trigger0_Subroutine1">          <Elements>            <E type="Action" name="VariableOperation">              <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="ObjectScratch1" />              <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="Iterator.Object" />              <Param type="OperationType">Set</Param>            </E>            <E type="Action" name="VariableOperation">              <Param type="VarReference" varRefKind="Custom" varRefType="Scratch">NumericScratch1</Param>              <Param type="VarReference" varRefKind="Custom" varRefType="Int16">0</Param>              <Param type="OperationType">Set</Param>            </E>            <E type="Action" name="ItemGetOwnerPlayer">              <Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="Iterator.Object" />              <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />            </E>            <E type="Action" name="ActivateTrigger">              <Param type="TriggerReference">                <T type="Trigger" trigType="Subroutine" execMode="OnEachPlayer" name="Trigger0_Subroutine1_Subroutine2">                  <Elements>                    <E type="Condition" name="Comparison" unionGroupID="-2">                      <Param type="VarReference" varRefKind="Object" varRefType="Player.SlaveObject" dataType="Iterator.Player" />                      <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="ObjectScratch1" />                      <Param type="ComparisonType">Equal</Param>                    </E>                    <E type="Action" name="VariableOperation">                      <Param type="VarReference" varRefKind="Custom" varRefType="Scratch">NumericScratch1</Param>                      <Param type="VarReference" varRefKind="Custom" varRefType="Int16">1</Param>                      <Param type="OperationType">Set</Param>                    </E>                  </Elements>                </T>              </Param>            </E>            <E type="Action" name="DistanceBetweenObjects">              <Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="Iterator.Object" />              <Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="ObjectScratch0" />              <Param type="CustomReference" varRefType="Scratch">NumericScratch0</Param>              <Param type="Bool">False</Param>            </E>            <E type="Condition" name="Comparison" unionGroupID="-2">              <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="ObjectScratch0" />              <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="Iterator.Object" />              <Param type="ComparisonType">NotEqual</Param>            </E>            <E type="Condition" name="Comparison" unionGroupID="-2">              <Param type="VarReference" varRefKind="Custom" varRefType="Scratch">NumericScratch0</Param>              <Param type="VarReference" varRefKind="Custom" varRefType="Int16">0</Param>              <Param type="ComparisonType">Equal</Param>            </E>            <E type="Condition" name="Comparison" unionGroupID="-2">              <Param type="VarReference" varRefKind="Custom" varRefType="Scratch">NumericScratch1</Param>              <Param type="VarReference" varRefKind="Custom" varRefType="Int16">0</Param>              <Param type="ComparisonType">Equal</Param>            </E>            <E type="Condition" name="Comparison" unionGroupID="-2">              <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />              <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="NONE" />              <Param type="ComparisonType">Equal</Param>            </E>            <E type="Action" name="DeleteObject">              <Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="Iterator.Object" />            </E>          </Elements>        </T>      </Param>    </E>  </Elements></Trigger>

WumboScript Code

define event tick    for each current_object0 in objects matching filters.weaponless do        for each current_object1 in objects do            skipped = 0            owner = object_get_owner_player(current_object1)            for each current_player0 in players do                if current_player0.biped = current_object1 then                    skipped = 1                end            end            distance = object_get_distance_between(current_object1, current_object0, false)            if current_object0 != current_object1 and distance = 0 and skipped = 0 and owner = none then                object_delete(current_object1)            end        end    endend
]]>
3548Thu, 19 Sep 2013 19:12:26 +0000
Using Special Symbols In Megalo Stringshttps://www.xboxchaos.com/topic/3670-using-special-symbols-in-megalo-strings/Inserting Special Symbols in Megalo Strings

hjvB6u9.png

Here's the locale symbol list for Halo 4 obtained from Assembly.

 

<?xml version="1.0" encoding="utf-8" ?><symbols>  <!-- To add a new locale symbol, just add it's hex value,           and then it's friendly name -->  <symbol code="0xEE8089" display="stick_strafe" />  <symbol code="0xEE808A" display="stick_turn" />    <symbol code="0xEE8182" display="equipment_camo" />  <symbol code="0xEE8186" display="equipment_shield" />  <symbol code="0xEE8189" display="missile" />   <symbol code="0xEE81A3" display="skull_disabled" />  <symbol code="0xEE81A4" display="skull_enabled" />  <symbol code="0xEE81A5" display="unic_infinity" />  <symbol code="0xEE81A8" display="unic_cancel" />   <symbol code="0xEE8480" display="a_button" />  <symbol code="0xEE8481" display="b_button" />  <symbol code="0xEE8482" display="x_button" />  <symbol code="0xEE8483" display="y_button" />  <symbol code="0xEE8484" display="left_bumper" />  <symbol code="0xEE8485" display="right_bumper" />  <symbol code="0xEE8486" display="left_trigger" />  <symbol code="0xEE8487" display="right_trigger" />  <symbol code="0xEE8488" display="dpad_up" />  <symbol code="0xEE8489" display="dpad_down" />  <symbol code="0xEE848A" display="dpad_left" />  <symbol code="0xEE848B" display="dpad_right" />  <symbol code="0xEE848C" display="start_button" />  <symbol code="0xEE848D" display="back_button" />  <symbol code="0xEE848E" display="left_thumb" />  <symbol code="0xEE848F" display="right_thumb" />    <symbol code="0xEE8490" display="left_stick" />  <symbol code="0xEE8491" display="right_stick" />  <symbol code="0xEE8492" display="friends_icon" />  <symbol code="0xEE8493" display="party_icon" />  <symbol code="0xEE8494" display="group_icon" />  <symbol code="0xEE8495" display="controller0" />  <symbol code="0xEE8496" display="controller1" />  <symbol code="0xEE8497" display="controller2" />  <symbol code="0xEE8498" display="controller3" />  <symbol code="0xEE8499" display="voice_state_none" />  <symbol code="0xEE849A" display="voice_state_quite" />  <symbol code="0xEE849B" display="voice_state_speaking" />  <symbol code="0xEE849C" display="voice_state_in_private_chat" />  <symbol code="0xEE849D" display="voice_state_muted" />  <symbol code="0xEE849E" display="assault_rifle" />  <symbol code="0xEE849F" display="ball" />    <symbol code="0xEE84A0" display="battle_rifle" />  <symbol code="0xEE84A1" display="bomb" />  <symbol code="0xEE84A2" display="brute_shot" />  <symbol code="0xEE84A3" display="carbine" />  <symbol code="0xEE84A4" display="claymore_grenade" />  <symbol code="0xEE84A5" display="energy_sword" />  <symbol code="0xEE84A6" display="excavator" />  <symbol code="0xEE84A7" display="firebomb_grenade" />  <symbol code="0xEE84A8" display="flag" />  <symbol code="0xEE84A9" display="flamethrower" />  <symbol code="0xEE84AA" display="frag_grenade" />  <symbol code="0xEE84AB" display="fuel_rod_gun" />  <symbol code="0xEE84AC" display="gravity_hammer" />  <symbol code="0xEE84AD" display="guardian_eye_beam" />  <symbol code="0xEE84AE" display="machinegun_turret" />  <symbol code="0xEE84AF" display="magnum" />    <symbol code="0xEE84B0" display="missile_launcher" />  <symbol code="0xEE84B1" display="needler" />  <symbol code="0xEE84B2" display="particle_beam_rifle" />  <symbol code="0xEE84B3" display="plasma_grenade" />  <symbol code="0xEE84B4" display="plasma_mortar_turret" />  <symbol code="0xEE84B5" display="plasma_pistol" />  <symbol code="0xEE84B6" display="plasma_rifle" />  <symbol code="0xEE84B7" display="plasma_turret" />  <symbol code="0xEE84B8" display="pump_laser" />  <symbol code="0xEE84B9" display="rocket_launcher" />  <symbol code="0xEE84BA" display="sentinel_beam" />  <symbol code="0xEE84BB" display="shotgun" />  <symbol code="0xEE84BC" display="smg" />  <symbol code="0xEE84BD" display="sniper_rifle" />  <symbol code="0xEE84BE" display="spike_rifle" />  <symbol code="0xEE84BF" display="spread_gun" />    <symbol code="0xEE8580" display="assault_carbine" />  <symbol code="0xEE8581" display="attach_beam" />  <symbol code="0xEE8582" display="beam_rifle" />  <symbol code="0xEE8583" display="burst_gun" />  <symbol code="0xEE8584" display="concussion_rifle" />  <symbol code="0xEE8585" display="dmr" />  <symbol code="0xEE8586" display="fuelrod_gun" />  <symbol code="0xEE8587" display="homing_rifle" />  <symbol code="0xEE8588" display="lmg" />  <symbol code="0xEE8589" display="mortar" />  <symbol code="0xEE858A" display="pistol" />  <symbol code="0xEE858B" display="railgun" />  <symbol code="0xEE858C" display="scaleshot" />  <symbol code="0xEE858D" display="splaser" />  <symbol code="0xEE858E" display="stasis_rifle" />  <symbol code="0xEE858F" display="sticky_detonator" />    <symbol code="0xEE8590" display="needle_grenade" />  <symbol code="0xEE8592" display="placeholder_icon" />  <symbol code="0xEE8593" display="pulse_grenade" />  <symbol code="0xEE8594" display="active_camo" />  <symbol code="0xEE8595" display="hologram" />  <symbol code="0xEE8596" display="jetpack" />  <symbol code="0xEE8597" display="pat" />  <symbol code="0xEE8598" display="reflective_shield" />  <symbol code="0xEE8599" display="thruster" />  <symbol code="0xEE859A" display="xray" />  <symbol code="0xEE859B" display="equipment_armor_lock" />  <symbol code="0xEE859C" display="equipment_cloak" />  <symbol code="0xEE859D" display="equipment_evade" />  <symbol code="0xEE859E" display="equipment_hologram" />  <symbol code="0xEE859F" display="equipment_jet_pack" />    <symbol code="0xEE85A0" display="equipment_speed_burst" />  <symbol code="0xEE85A1" display="vehicle_banshee" />  <symbol code="0xEE85A2" display="vehicle_civilian" />  <symbol code="0xEE85A3" display="vehicle_falcon" />  <symbol code="0xEE85A4" display="vehicle_falcon_gunner" />  <symbol code="0xEE85A5" display="vehicle_ghost" />  <symbol code="0xEE85A6" display="vehicle_mongoose" />  <symbol code="0xEE85A7" display="vehicle_revenant" />  <symbol code="0xEE85A8" display="vehicle_sabre" />  <symbol code="0xEE85A9" display="vehicle_scorpion" />  <symbol code="0xEE85AA" display="vehicle_scorpion_gunner" />  <symbol code="0xEE85AB" display="vehicle_warthog" />  <symbol code="0xEE85AC" display="vehicle_warthog_driver" />  <symbol code="0xEE85AD" display="vehicle_gauss" />  <symbol code="0xEE85AE" display="vehicle_rocket" />  <symbol code="0xEE85AF" display="vehicle_turret" />    <symbol code="0xEE85B0" display="vehicle_wraith" />  <symbol code="0xEE85B1" display="vehicle_wraith_gunner" />  <symbol code="0xEE85B2" display="laser_designator" />  <symbol code="0xEE85B3" display="shade_turret" />  <symbol code="0xEE85B4" display="armor_ability_specialist" />  <symbol code="0xEE85B5" display="assassin" />  <symbol code="0xEE85B6" display="enhanced_sensors" />  <symbol code="0xEE85B7" display="explosives_expert" />  <symbol code="0xEE85B8" display="grenadier" />  <symbol code="0xEE85B9" display="high_potential" />  <symbol code="0xEE85BA" display="inside_info" />  <symbol code="0xEE85BB" display="marksmen" />  <symbol code="0xEE85BC" display="nemesis" />  <symbol code="0xEE85BD" display="ordinance_priority" />  <symbol code="0xEE85BE" display="quick_reflex" />  <symbol code="0xEE85BF" display="resourceful" />    <symbol code="0xEE8680" display="second_chance" />  <symbol code="0xEE8681" display="shield_specialist" />  <symbol code="0xEE8682" display="situational_report" />  <symbol code="0xEE8683" display="sprinter" />  <symbol code="0xEE8684" display="steady_scope" />  <symbol code="0xEE8685" display="weapons_officer" />  <symbol code="0xEE8686" display="well_equipped" />  <symbol code="0xEE8687" display="wheelman" />  <symbol code="0xEE8688" display="knight_rifle" />  <symbol code="0xEE8689" display="ammo_pack" />  <symbol code="0xEE868A" display="regen_field" />  <symbol code="0xEE868B" display="empty" />  <symbol code="0xEE868C" display="beacon" />  <symbol code="0xEE868D" display="sr" />  <symbol code="0xEE868E" display="spartan_points" />  <symbol code="0xEE868F" display="m90_nuke" />    <symbol code="0xEE8690" display="mantis_machinegun" />  <symbol code="0xEE8691" display="mantis_rocketlauncher" />  <symbol code="0xEE8692" display="vehicle_broadsword" />  <symbol code="0xEE8693" display="vehicle_mantis" />  <symbol code="0xEE8694" display="vehicle_warthog_machinegun" />  <symbol code="0xEE8695" display="ord_active_camo" />  <symbol code="0xEE8696" display="ord_active_shield" />  <symbol code="0xEE8697" display="ord_armor_boost" />  <symbol code="0xEE8698" display="ord_assault_rifle" />  <symbol code="0xEE8699" display="ord_battle_rifle" />  <symbol code="0xEE869A" display="ord_beam_rifle" />  <symbol code="0xEE869B" display="ord_bolt_pistol" />  <symbol code="0xEE869C" display="ord_carbine" />  <symbol code="0xEE869D" display="ord_concussion_rifle" />  <symbol code="0xEE869E" display="ord_custom_powerup" />  <symbol code="0xEE869F" display="ord_damage_boost" />    <symbol code="0xEE86A0" display="ord_dmr" />  <symbol code="0xEE86A1" display="ord_drop" />  <symbol code="0xEE86A2" display="ord_energy_sword" />  <symbol code="0xEE86A3" display="ord_forerunner_rifle" />  <symbol code="0xEE86A4" display="ord_forerunner_sniper" />  <symbol code="0xEE86A5" display="ord_forerunner_vision" />  <symbol code="0xEE86A6" display="ord_fuelrod_launcher" />  <symbol code="0xEE86A7" display="ord_gravity_hammer" />  <symbol code="0xEE86A8" display="ord_grenade_frag_2x" />  <symbol code="0xEE86A9" display="ord_grenade_frag_3x" />  <symbol code="0xEE86AA" display="ord_grenade_plasma" />  <symbol code="0xEE86AB" display="ord_grenade_plasma_2x" />  <symbol code="0xEE86AC" display="ord_grenade_plasma_3x" />  <symbol code="0xEE86AD" display="ord_grenade_pulse" />  <symbol code="0xEE86AE" display="ord_grenade_pulse_2x" />  <symbol code="0xEE86AF" display="ord_grenade_pulse_3x" />    <symbol code="0xEE86B0" display="ord_hologram" />  <symbol code="0xEE86B1" display="ord_incineration_cannon" />  <symbol code="0xEE86B2" display="ord_jetpack" />  <symbol code="0xEE86B3" display="ord_magnum" />  <symbol code="0xEE86B4" display="ord_marker" />  <symbol code="0xEE86B5" display="ord_needler" />  <symbol code="0xEE86B6" display="ord_pat" />  <symbol code="0xEE86B7" display="ord_plasma_pistol" />  <symbol code="0xEE86B8" display="ord_railgun" />  <symbol code="0xEE86B9" display="ord_regen_field" />  <symbol code="0xEE86BA" display="ord_rocket_launcher" />  <symbol code="0xEE86BB" display="ord_saw" />  <symbol code="0xEE86BC" display="ord_scattershot" />  <symbol code="0xEE86BD" display="ord_shotgun" />  <symbol code="0xEE86BE" display="ord_shuffle" />  <symbol code="0xEE86BF" display="ord_smg" />    <symbol code="0xEE8780" display="ord_sniper_rifle" />  <symbol code="0xEE8781" display="ord_spartan_laser" />  <symbol code="0xEE8782" display="ord_speed_boost" />  <symbol code="0xEE8783" display="ord_sticky_launcher" />  <symbol code="0xEE8784" display="ord_storm_rifle" />  <symbol code="0xEE8785" display="ord_thruster_pack" />  <symbol code="0xEE8786" display="rocket_turret" />  <symbol code="0xEE8787" display="button_left_thumb_a" />  <symbol code="0xEE8788" display="button_left_thumb_b" />  <symbol code="0xEE8789" display="button_left_thumb_c" />  <symbol code="0xEE878A" display="button_right_thumb_a" />  <symbol code="0xEE878B" display="button_right_thumb_b" />  <symbol code="0xEE878C" display="button_right_thumb_c" />  <symbol code="0xEE878D" display="button_left_trigger_a" />  <symbol code="0xEE878E" display="button_left_trigger_b" />  <symbol code="0xEE878F" display="button_right_trigger_a" />    <symbol code="0xEE8790" display="button_right_trigger_b" />  <symbol code="0xEE8791" display="button_dpad_left_a" />  <symbol code="0xEE8792" display="button_dpad_left_b" />  <symbol code="0xEE8793" display="button_dpad_right_a" />  <symbol code="0xEE8794" display="button_dpad_right_b" />  <symbol code="0xEE8795" display="button_dpad_up_a" />  <symbol code="0xEE8796" display="button_dpad_up_b" />  <symbol code="0xEE8797" display="button_dpad_down_a" />  <symbol code="0xEE8798" display="button_dpad_down_b" />  <symbol code="0xEE8799" display="button_start_a" />  <symbol code="0xEE879A" display="button_start_b" />  <symbol code="0xEE879B" display="button_back_a" />  <symbol code="0xEE879C" display="button_back_b" />  <symbol code="0xEE879D" display="button_a_a" />  <symbol code="0xEE879E" display="button_a_b" />  <symbol code="0xEE879F" display="button_b_a" />    <symbol code="0xEE87A0" display="button_b_b" />  <symbol code="0xEE87A1" display="button_x_a" />  <symbol code="0xEE87A2" display="button_x_b" />  <symbol code="0xEE87A3" display="button_y_a" />  <symbol code="0xEE87A4" display="button_y_b" />  <symbol code="0xEE87A5" display="button_lb_a" />  <symbol code="0xEE87A6" display="button_lb_b" />  <symbol code="0xEE87A7" display="button_rb_a" />  <symbol code="0xEE87A8" display="button_rb_b" />    <symbol code="0xEE908B" display="mapname" />  <symbol code="0xEE908D" display="variant" />  <symbol code="0xEE908E" display="motion_sensor_enabled" />  <symbol code="0xEE908F" display="teams_enabled" />    <symbol code="0xEE9090" display="vehicle_set" />  <symbol code="0xEE9091" display="weapon_set" />  <symbol code="0xEE9092" display="player0_profile_name" />  <symbol code="0xEE9093" display="player1_profile_name" />  <symbol code="0xEE9094" display="player2_profile_name" />  <symbol code="0xEE9095" display="player3_profile_name" />  <symbol code="0xEE9096" display="countdown" />  <symbol code="0xEE9097" display="name_of_last_person_to_delay_countdown" />  <symbol code="0xEE9098" display="build_number" />  <symbol code="0xEE9099" display="leader" />  <symbol code="0xEE909A" display="qprs" />  <symbol code="0xEE909B" display="qprr" />  <symbol code="0xEE909C" display="qpimi" />  <symbol code="0xEE909D" display="qpime" />  <symbol code="0xEE909E" display="qbwd" />  <symbol code="0xEE909F" display="qbwu" />    <symbol code="0xEE90A0" display="qnat" />  <symbol code="0xEE90A4" display="hud_quantity" />  <symbol code="0xEE90A5" display="ge_round_time_left" />  <symbol code="0xEE90A6" display="target_player_gamertag" />  <symbol code="0xEE90A7" display="game_player_count" />  <symbol code="0xEE90A8" display="coop_level_name" />  <symbol code="0xEE90A9" display="coop_level_description" />  <symbol code="0xEE90AA" display="coop_difficulty" />  <symbol code="0xEE90AB" display="player0_gamertag" />  <symbol code="0xEE90AC" display="player1_gamertag" />  <symbol code="0xEE90AD" display="player2_gamertag" />  <symbol code="0xEE90AE" display="player3_gamertag" />  <symbol code="0xEE90AF" display="hud_scoreboard_player_score" />    <symbol code="0xEE90B0" display="hud_scoreboard_other_player_score" />  <symbol code="0xEE90B1" display="hud_scoreboard_variant_name" />  <symbol code="0xEE90B2" display="hud_scoreboard_time_left" />  <symbol code="0xEE90B4" display="qebw" />  <symbol code="0xEE90B8" display="hopper_name" />  <symbol code="0xEE90B9" display="hopper_description" />  <symbol code="0xEE90BC" display="hour_12" />  <symbol code="0xEE90BD" display="hour_24" />  <symbol code="0xEE90BE" display="minute" />  <symbol code="0xEE90BF" display="day" />    <symbol code="0xEE9180" display="month" />  <symbol code="0xEE9181" display="year" />  <symbol code="0xEE9182" display="button_jump" />  <symbol code="0xEE9183" display="button_sprint" />  <symbol code="0xEE9184" display="button_switch_grenade_prev" />  <symbol code="0xEE9185" display="button_switch_grenade_next" />  <symbol code="0xEE9186" display="button_switch_weapon" />  <symbol code="0xEE9187" display="button_action_reload" />  <symbol code="0xEE9188" display="button_action_generic" />  <symbol code="0xEE9189" display="button_action_weapon_primary" />  <symbol code="0xEE918A" display="button_melee_attack" />  <symbol code="0xEE918B" display="button_equipment" />  <symbol code="0xEE918C" display="button_throw_grenade" />  <symbol code="0xEE918D" display="button_fire" />  <symbol code="0xEE918E" display="button_crouch" />  <symbol code="0xEE918F" display="button_scope_zoom" />    <symbol code="0xEE9190" display="button_dual_fire" />  <symbol code="0xEE9191" display="button_fire_secondary" />  <symbol code="0xEE9192" display="button_fire_tertiary" />  <symbol code="0xEE9193" display="button_vehicle_trick_primary" />  <symbol code="0xEE9194" display="button_vehicle_trick_secondary" />  <symbol code="0xEE9195" display="button_action_weapon_secondary" />  <symbol code="0xEE9196" display="button_radio_message" />  <symbol code="0xEE9197" display="button_start" />  <symbol code="0xEE9198" display="button_back" />  <symbol code="0xEE9199" display="button_lean_left" />  <symbol code="0xEE919A" display="button_lean_right" />  <symbol code="0xEE919B" display="button_flashlight" />  <symbol code="0xEE919C" display="button_accept" />  <symbol code="0xEE919D" display="button_cancel" />  <symbol code="0xEE919E" display="button_push_to_talk" />  <symbol code="0xEE919F" display="button_requisition_menu" />    <symbol code="0xEE91A0" display="button_loadout_menu" />  <symbol code="0xEE91A1" display="button_respawn" />  <symbol code="0xEE91A2" display="stick_move" />  <symbol code="0xEE91A3" display="stick_look" />  <symbol code="0xEE91A4" display="hud_betraying_player" />  <symbol code="0xEE91A5" display="animating_left_thumbstick" />  <symbol code="0xEE91A6" display="animating_right_thumbstick" />  <symbol code="0xEE91A7" display="matchmaking_countdown" />  <symbol code="0xEE91A9" display="map_load_percent" />  <symbol code="0xEE91AA" display="animating_button_action_generic" />  <symbol code="0xEE91AB" display="animating_left_trigger" />  <symbol code="0xEE91AC" display="animating_right_trigger" />  <symbol code="0xEE91AD" display="animating_dpad_left" />  <symbol code="0xEE91AE" display="animating_dpad_right" />  <symbol code="0xEE91AF" display="animating_dpad_up" />    <symbol code="0xEE91B0" display="animating_dpad_down" />  <symbol code="0xEE91B1" display="animating_start_button" />  <symbol code="0xEE91B2" display="animating_back_button" />  <symbol code="0xEE91B3" display="animating_a_button" />  <symbol code="0xEE91B4" display="animating_b_button" />  <symbol code="0xEE91B5" display="animating_x_button" />  <symbol code="0xEE91B6" display="animating_y_button" />  <symbol code="0xEE91B7" display="animating_left_bumper" />  <symbol code="0xEE91B8" display="animating_right_bumper" /></symbols>

Use this tool to convert the UTF-8 bytes from the list above into a 2-byte hex code point.

Ensure that the "Hex UTF-8 bytes" option is selected. Now, enter the value without the '0x' prefix and with spaces in between each pair (byte). For example: If I want to use the symbol represented by 0xEE91B8, I would enter EE 91 B8 in the textbox and then press "Go". You want the hex code point value.

Assuming you're using KSoft.Tool, insert ----; where you want the symbol to be. Replace the four dashes (----) with the Hex Code Point value.

B)

]]>
3670Tue, 26 Nov 2013 02:35:33 +0000
Tactical Package/support Upgrade Trait Valueshttps://www.xboxchaos.com/topic/3668-tactical-packagesupport-upgrade-trait-values/

Sensor - app_enhanced_sensors2

motion tracker range 60

Mobility - app_sprinter

sprint usage rate 0.00

sprint recharge delay 0.66

sprint recharge rate 1.35

Grenadier - app_grenadier2

grenadier enabled

Dexterity - app_quick_reflexes

weapon switch speed 1.15

weapon reload speed 1.66

Ordnance Priority - app_ordinance_priority

ordnance pts multiplier 1.40

Awareness - app_marksmen

motion tracker scoped enabled

Shielding - app_shield_specialist

shield stun duration 6.0

shield recharge rate 2.0

AA Efficiency - app_aa_specialist

AA recharge delay 1.0

AA recharge rate 2.0

AA initial energy 1.0

Resupply - app_resourceful

grenade pickup enabled

Firepower - app_well_equipped

two primary weapons enabled

Old Drop Recon (Cut) - app_situational_report

drop recon duration 5

drop recon distance 1.2

Ammo - app_ammo_pack

extra ammo enabled

Stealth - app_assassin

assassination speed 1.20

stealthy enabled

Stability - app_steady_scope

stability multiplier 0.50

Nemesis - app_nemesis

nemesis duration 4.5

nemesis enabled

Drop Recon - app_inside_info

drop recon duration 12

drop recon distance 1.50

Wheelman - app_wheelman

vehicle stun time 0.50

vehicle recharge time 1.50

vehicle emp disable time 0.50

Gunner - app_weapons_officer

gunner multiplier 0.66

Requisition - app_second_chance

requisition enabled

Explosives - app_explosives_expert

explosive resistance 0.25

explosion radius 1.25

]]>
3668Mon, 25 Nov 2013 03:12:16 +0000
Timer Rateshttps://www.xboxchaos.com/topic/3614-timer-rates/Note: The latest KSoft.Tool release has this enum built-in. This post is for legacy reasons.

 

0 = 0x1 = 0.1x2 = 0.25x3 = 0.5x4 = 0.75x5 = 1x6 = 1.25x7 = 1.5x8 = 1.75x9 = 2x10 = 3x11 = 4x12 = 5x13 = 10x14 = -0.1x15 = -0.25x16 = -0.5x17 = -0.75x18 = -1x19 = -1.25x20 = -1.5x21 = -1.75x22 = -2x23 = -3x24 = -4x25 = -5x26 = -10x
:smile: ]]>
3614Sun, 06 Oct 2013 23:30:19 +0000
The Object Death Event Triggerhttps://www.xboxchaos.com/topic/3650-the-object-death-event-trigger/I'm sure you all know about the other triggers such as on init, local, host migration, pregame, incident, etc. But there's one useful trigger not many people know about: the Object Death event. This trigger is executed whenever an object is destroyed. (By the way, I never checked if an object despawning will execute the trigger).

 

Now, Matt, why would I want to use this trigger? Well, my friend, this trigger allows you to get the exact cause of an object's demise including who or what destroyed the object, if any. Incidents are alright for many things but this trigger gives you significantly more control of what's going on in the game.

 

You know how certain triggers offer data types such as Iterator.Player? The Object Death Event has something special for you too. Not just one but three special data types!

 

 

ExplicitObjectType ObjectDeathEvent.KillerObject

References the object responsible for the demise of another object.

ExplicitObjectType ObjectDeathEvent.DeadObject

References the object which was destroyed.

Custom ObjectDeathEvent.DamageType

Provides an integer value specifying the damage type (list below).

Fantastic! How do I use this in my gametype? You will need to create an ObjectDeathEvent trigger and add it to the EntryPoints table.

      <!-- Add this to the Triggers element -->      <Trigger trigType="ObjectDeathEvent" name="ObjectDeathEventTrigger">        <Elements>          <!-- actions and conditions go here -->        </Elements>      </Trigger>     <!-- Add this to the EntryPoints element -->      <ObjectDeathEvent>ObjectDeathEventTrigger</ObjectDeathEvent>
That's all folks! Alright, alright... I'll be practical here. Here's a bunch of example actions using the aforementioned data types:

          <!-- Store the damage type to temporary integer variable 0 -->          <E type="Action" name="VariableOperation">            <Param type="VarReference" varRefKind="Custom" varRefType="Scratch">NumericScratch0</Param>            <Param type="VarReference" varRefKind="Custom" varRefType="ObjectDeathEvent.DamageType" />            <Param type="OperationType">Set</Param>          </E>           <!-- Store the destroyed object to temporary object variable 0 -->          <E type="Action" name="VariableOperation">            <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="ObjectScratch0" />            <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="ObjectDeathEvent.DeadObject" />            <Param type="OperationType">Set</Param>          </E>           <!-- Store the destroyed object to temporary object variable 1 -->          <E type="Action" name="VariableOperation">            <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="ObjectScratch1" />            <Param type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="ObjectDeathEvent.KillerObject" />            <Param type="OperationType">Set</Param>          </E>
The damage type is a number referencing the position of the damage type in the damage reporting type list which is as follows. Although I've renamed many internal codenames, you'll have to figure out which weapon is which if it's not explicitly stated in the list, sorry.

 

0   Unknown1   Guardians2   Scripting (includes Megalo)3   AI Suicide4   Burst Gun5   Spread Gun6   Homing Rifle7   Attach Beam8   Bishop Beam9   Stasis Gun10  Hard Light Grenade11  Incineration Cannon12  Magnum13  Assault Rifle14  DMR15  Shotgun16  Battle Rifle17  Sniper Rifle18  Rocket Launcher19  Spartan Laser20  Frag Grenade21  Sticky Detonator22  SAW23  Railgun24  Plasma Pistol25  Needler26  Gravity Hammer27  Energy Sword28  Plasma Grenade29  Covenant Carbine30  Beam Rifle31  Storm Rifle32  Concussion Rifle33  Fuel Rod Cannon34  Ghost35  Revenant Driver36  Revenant Gunner37  Wraith38  Wraith Anti-Infantry39  Banshee40  Banshee Bomb41  Seraph42  Revenant Deux Driver43  Revenant Deux Gunner44  Lich Driver45  Lich Gunner46  Mongoose47  Warthog Driver48  Warthog Gunner (Chaingun)49  Warthog Gunner (Gauss)50  Warthog Gunner (Rocket)51  Scorpion52  Scorpion Anti-Infantry53  Falcon Driver54  Falcon Gunner55  Wasp Driver56  Wasp Gunner57  Wasp Gunner (Heavy)58  Mantis Melee59  Mantis Chaingun60  Mantis Cannon61  Mantis Rocket62  Broadsword63  Broadsword Missiles64  Tortoise Driver65  Tortoise Gunner66  MAC Cannon67  Target Designator68  Ordnance Drop Pod69  Orbital Cruise Missile70  Hardlight Shield71  Autoturret72  Thruster Pack73  Fall Damage74  Generic Collision Damage75  Generic Melee Damage76  Generic Explosion77  Unknown78  Birthday Party Explosion79  Frag Melee80  Bomb Melee81  Bomb Explosion82  Ball Melee83  Telefragged84  Damage Transfer85  Armor Lock Crush86  Human Turret87  Plasma Cannon88  Plasma Mortar89  Plasma Turret90  Shade Turret91  Unknown92  Tank93  Chopper94  Hornet95  Mantis96  Flagnum97  Flood Talons
]]>
3650Thu, 14 Nov 2013 05:46:01 +0000