Tiberian Technologies Scripts Reference Revision: 9000
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 Cdp88_AI_ChargedTurretCharged Turret AI
 Cdp88_AI_ChargedTurret_AnimationObserverChargeup Animation Observer
 Cdp88_AI_heavyVehicleMarkerDanpaul88's Custom AI Heavy Vehicle Marker
 Cdp88_AI_Marker_BuildingDanpaul88's Custom AI Building Marker
 Cdp88_AI_Marker_HeavyVehicleDanpaul88's Custom AI Heavy Vehicle Marker
 Cdp88_AI_Marker_RepairableDanpaul88's Custom AI Repair Target Marker
 Cdp88_AI_ObjectiveAI Objective
 Cdp88_AI_PopupTurretPopup Turret AI
 Cdp88_AI_PopupTurret_SpotterPopup Turret Spotter
 Cdp88_AI_Tank_OffensiveOffensive Tank AI
 Cdp88_AI_TurretTurret AI
 Cdp88_AI_UnitUnit AI Base Class
 Cdp88_Aircraft_LandingZoneAircraft Landing Zone
 Cdp88_Aircraft_LandingZone_AircraftAircraft Landing Zone Animation
 Cdp88_Ammo_AnimationVehicle Ammo Animation
 Cdp88_AR_Chrono_MinerAR Chrono Miner
 Cdp88_AR_Chrono_Miner_ChronozoneAR Chrono Miner Chronoshift Zone
 Cdp88_AR_GameControllerApocalypse Rising Game Controller
 Cdp88_AR_MirageTankApocalypse Rising Mirage Tank
 Cdp88_AR_ParadropAR Paradrop
 Cdp88_AR_paradrop_ConsoleAR Paradrop Console
 Cdp88_AR_Prism_TowerApocalypse Rising Prism Tower
 Cdp88_AR_RocketeerApocalypse Rising Rocketeer
 Cdp88_AR_Tesla_CoilApocalypse Rising Tesla Coil
 Cdp88_AR_Vehicle
 Cdp88_buildingScripts_baseClassDp88 Building Scripts - Base Class
 Cdp88_buildingScripts_capturePointDp88 Building Scripts - Capture Point
 Cdp88_buildingScripts_componentDp88 Building Scripts - Building Component
 Cdp88_buildingScripts_componentBaseClassDp88 Building Scripts - Component Base Class
 Cdp88_buildingScripts_functionMoneyGrantBuilding function - Grant Money On Capture
 Cdp88_buildingScripts_functionProduceAircraftBuilding function - Produce Aircraft
 Cdp88_buildingScripts_functionProduceInfantryBuilding function - Produce Infantry
 Cdp88_buildingScripts_functionProduceNavalUnitsBuilding function - Produce Naval Units
 Cdp88_buildingScripts_functionProduceVehiclesBuilding function - Produce Vehicles
 Cdp88_buildingScripts_functionProvideHarvesterBuilding function - Provide Harvester
 Cdp88_buildingScripts_functionProvidePowerBuilding function - Provide Power
 Cdp88_buildingScripts_functionProvideRadarBuilding function - Provide Radar
 Cdp88_buildingScripts_functionSpawnZoneBuilding Function - Spawn Zone
 Cdp88_buildingScripts_majorWeakpointDp88 Building Scripts - Major Weakpoint
 Cdp88_buildingScripts_minorWeakpointDp88 Building Scripts - Minor Weakpoint
 Cdp88_Camo_ControllerCamo Controller
 Cdp88_Camo_ObjectCamo Object
 Cdp88_conquestControllerConquest Mode - Controller
 Cdp88_conquestControlObjectConquest Mode - Control Object
 Cdp88_conquestControlZoneConquest Mode - Control Zone
 Cdp88_Create_Object_CinematicCreate Object With Cinematic
 Cdp88_CreateAttachedObjectCreate Attached Object
 Cdp88_customAIDanpaul88's Custom AI Core
 Cdp88_customPointsCustom Unit Points & Credits
 Cdp88_damageAnimationDamage animation script
 Cdp88_DynamicSpawner_ControllerDynamic Spawner - Controller
 Cdp88_DynamicSpawner_SpawnerDynamic Spawner - Simple Spawner
 Cdp88_DynamicSpawner_VehicleSpawnerDynamic Spawner - Vehicle Spawner
 Cdp88_linkHealthObject health linking script
 Cdp88_Ore_Dump_ZoneOre Dump Zone
 Cdp88_Ore_ExtractorOre Extractor
 Cdp88_Ore_FieldOre Field
 Cdp88_Ore_MinerOre Miner
 Cdp88_radarInvisibilityRadar Invisibility
 Cdp88_randomWeatherWeather Randomizer
 Cdp88_RegenerateHitpointsHealth Regeneration
 Cdp88_RemoteControlConsoleRemote Control Vehicle Console
 Cdp88_Set_Team_On_CustomSet Team On Custom
 Cdp88_teleportYet Another Teleport Script
 Cdp88_turretSoundTurret Rotation Sound Effect
 Cdp88_Veterancy_ControllerVeterancy - Controller
 Cdp88_veterancyGrantPoints
 Cdp88_veterancyGrantPowerupVeterancy - Grant Weapon
 CJFW_Attach_Script_CustomAttach Script on Custom
 CJFW_Base_DefenceBase Defence
 CJFW_Base_Defence_Aircraft_Only
 CJFW_Base_Defence_Aircraft_Only_Secondary
 CJFW_Base_Defence_AnimatedPopup Base Defence
 CJFW_Base_Defence_Animated_Aircraft_Only
 CJFW_Base_Defence_Animated_Aircraft_Only_Secondary
 CJFW_Base_Defence_Animated_No_Aircraft
 CJFW_Base_Defence_Animated_No_Aircraft_Secondary
 CJFW_Base_Defence_Animated_No_VTOLGround Only Popup Base Defence
 CJFW_Base_Defence_Animated_No_VTOL_SecondaryGround Only Popup Base Defence (Secondary Fire)
 CJFW_Base_Defence_Animated_SecondaryPopup Base Defence (Secondary Fire)
 CJFW_Base_Defence_Animated_VTOL_OnlyAnti VTOL Popup Base Defence
 CJFW_Base_Defence_Animated_VTOL_Only_SecondaryAnti VTOL Popup Base Defence (Secondary Fire)
 CJFW_Base_Defence_No_Aircraft
 CJFW_Base_Defence_No_Aircraft_Secondary
 CJFW_Base_Defence_No_VTOLGround Only Base Defence
 CJFW_Base_Defence_No_VTOL_No_Stealth
 CJFW_Base_Defence_No_VTOL_SecondaryGround Only Base Defence (Secondary Fire)
 CJFW_Base_Defence_SecondaryBase Defence (Secondary Fire)
 CJFW_Base_Defence_VTOL_OnlyAnti VTOL Base Defence
 CJFW_Base_Defence_VTOL_Only_SecondaryAnti VTOL Base Defence (Secondary Fire)
 CJFW_Blow_Up_On_DeathCreates an explosion when an object is killed
 CJFW_Change_Spawn_CharacterChange Spawn Character
 CJFW_Char_Weapon_SwitcherWeapon Switch on Keyhook - Infantry Character
 CJFW_Clear_WeaponsRemove All Weapons On Zone Entry
 CJFW_Clear_Weapons_CreateRemove All Weapons
 CJFW_Clear_Weapons_On_CustomRemove All Weapons On Custom
 CJFW_Clouds_CustomSet cloud conditions on custom
 CJFW_Death_Send_CustomSend Custom on Death
 CJFW_Destroy_Self_TimerDestroys an object after a fixed period of time
 CJFW_Fog_CustomSet fog conditions on custom
 CJFW_Follow_WaypathFollow Waypath
 CJFW_Give_Points_On_DeathGrants extra points when an object is killed
 CJFW_Lightning_CustomSet lightning conditions on custom
 CJFW_Object_Draw_In_OrderDraw a Series of Models
 CJFW_Object_Draw_In_Order_2Draw a Subset of a Series of Models
 CJFW_Object_Draw_RandomDraw a Randomised Series of Models
 CJFW_Power_OffSet Building Power State On Custom
 CJFW_Precipitation_CustomSet precipitation conditions on custom
 CJFW_Repair_Zone_2Repair Zone (Extended)
 CJFW_Send_Custom_On_DamageSend a custom based on health values
 CJFW_Spawn_Object_Death
 CJFW_Startup_Custom_SelfSend a custom to itself
 CJFW_Timer_Destroy_BuildingDestroys a building by applying damage after a fixed period of time
 CJFW_Timer_Destroy_ObjectDestroys an object by applying damage after a fixed period of time
 CJFW_Turret_Spawn_3Vehicle Turret Spawner Variant (Enter/Exit Customs & Health Link)
 CJFW_Vehicle_Weapon_SwitcherWeapon Switch on Keyhook - Vehicle
 CJFW_War_Blitz_CustomSet war blitz lightning conditions on custom
 CJFW_Wind_CustomSet wind conditions on custom
 CJFW_Zone_WeaponGrant Weapon On Zone Entry
 CJMG_Security_Camera_BehaviorRemake of RMV_Camera_Behavior with more settings and more user control
 CJMG_Security_Camera_Behavior_Target
 CJMG_Send_Custom_When_Custom_Sequence_MatchedSends a custom when customs are sent in a certain order (kind of like a combo lock) \Success_Custom - Message to send when combo is entered correctly \Correct_Step_Custom - Message to send when one part of the combo is correct \Partial_Failure_Custom - Message to send when a digit is entered wrong \Failure_Custom - Message to send when the who combo is considered failed \Send_To_ID - ID of the object to send customs to \Custom_0 - First message needed in the combo \Custom_1 - Second message needed in the combo \Custom_2 - Third message needed in the combo \Custom_3 - Fourth message needed in the combo \Custom_4 - Fifth message needed in the combo \Custom_5 - Sixth message needed in the combo \Custom_6 - Seventh message needed in the combo \Custom_7 - Eighth message needed in the combo \Custom_8 - Ninth message needed in the combo \Custom_9 - Tenth message needed in the combo \Disable_On_Success - Only works once \Disable_On_Failure - Quits working after failure \Starts_Enabled - Is it enabled on script attach \Enable_Custom - Custom to enable this script \Correct_Step_Saftey - Does it send a correct step custom on the Custom0 step \Failure_Saftey - Does it count a wrong Custom0 as a failure \Max_Failures - How many times you can fail before its a complete failure
 CJMG_SinglePlayer_M04_ModifierTweaks M04 so the bubbles work right and infantry carrying the shotgun drop it
 CJMG_Turret_SpawnUse JMG_Utility_Turret_Spawn instead \Turret_Preset - Preset of the turret \Bone_Name - Bone to hook the turret to
 CJMG_Utility_AI_Aggressive_Attack_SpotUsed to designate repair targets for the Engineer AI that are things other than vehicles, turrets, and soldiers \GroupId - Group of attack points to move and fire at, -1 means it can use any attack point group \SecondaryGroupId - Secondary group to atttack if primary is gone \AttackPointSpeed - What speed to move at when moving to attack an attack point \AttackPointDistance - What distance to arrive at when attacking an attack point \RandomAttackPointDistance - What random distance to arrive at when attacking an attack point (only randomly generated once) \AttackSpeed - What speed to move at when moving to attacking a target \AttackDistance - What distance to arrive at when attacking a target \RandomAttackDistance - What random distance to arrive at when attacking a target (only randomly generated once) \ReturnHome - Should it return to its home location if it cannot find any attack points? \ReturnHomeSpeed - Speed it should move at when returning home \ReactToAttackChance - The chance that the AI will react to an attack, the flag to acknowledge the damage is updated once every time the timer expires below \ReactToAttackRate - Rate at which the AI will recalculate whether or not it'll acknowledge attack damage \ShutdownEngineOnArrival - used for vehicles to shut off their engines when they arrive at the point \EnableDebug - If true the bot will print out any points it cannot get to WARNING: this will print off both when the bot can't reach it due to the point being in a bad spot AND the bot being in a bad spot \UseSecondaryFire - Should secondary fire be used when attacking
 CJMG_Utility_AI_Aggressive_Attack_Spot_ControlUsed to clean up the attack point list at gameover
 CJMG_Utility_AI_Aggressive_Attack_Spot_PointUsed to specify a point that JMG_Utility_AI_Aggressive_Attack_Spot should use to attack \GroupId - defines a group id for this point to belong to \AttackOffset - defines an offset for the AI to aim at when it arrives at the point
 CJMG_Utility_AI_Aggressive_Attack_Spot_Point2Used to specify a point that JMG_Utility_AI_Aggressive_Attack_Spot should use to attack, this one sets the absolute position to fire at \GroupId - defines a group id for this point to belong to \AbsolutePosition - defines the exact spot for the AI to aim at when it arrives at the point \ObjectID - ID of an object to use as the absolute position (WARNING: This object is destroyed by this script)
 CJMG_Utility_AI_Aggressive_MeleeMakes the AI run up to an enemy and attack it as close as possible, used for melee AI \ReturnHomeSpeed - How fast it runs home after all enemies are dead \ReturnHomeArriveDistance - How close it goes to its original home location before calling it a day \ChaseSpeed - The speed multiplier for how fast it runs after enemies \AttackArriveDistance - How close it gets to enemies when attempting to attack them \StartAttackDistance - The distance at which it can start attacking \MaxHuntDistance - The max distance it can hunt a target from its home location \MinLooseVisibilityTime - Min amount of time it takes it to forget a target it can't see \MaxLooseVisibilityTime - Max amount of time it takes it to forget a target it can't see \NoPathfindDistance - At what distance to quit using pathfind, useful for making it not take weird paths to get to the player when close
 CJMG_Utility_AI_Control_PointThis script makes the AI seek out the nearest enemy, players are ignored, it works for infantry and vehicles \CaptureCpGroupId - Distance to scan for players to magically find and move to, -1 means infinite range \CaptureCpChance - 0.0-1.0 chance the AI will attempt to capture a control point instead of choosing to defend \CaptureSpeed - Speed at which the bot moves while trying to capture a control point \CaptureDistance - Distance to the wander point the bot will arrive \DefendCpGroupId - Group the AI will run between to defend CPs \DefendSpeed - Speed at which the bot moves while trying to defend a control point \DefendDistance - Distance to the wander point the bot will arrive \CloseDefendDistance - Distance in which defend points are considered close \ChooseFarDefendChance - 0.0-1.0 Chance that the bot will attempt to find a defend point that is further than the CloseDefendDistance \AttackSpeed - Speed to move at once an attack is begun \AttackDistance - Distance to arrive from a target when attacking, -1 uses the weapon effective distance \RandomAttackDistance - Random amount to add or subtract from the Attack distance \AttackDistractFromCaptureChance - Chance seeing an enemy will pull the AI away from charging at a control point to capture it \ChanceToInvestigateLastSeenLocation - The percent chance (0.0-1.0) of checking out the last spot an enemy/target was seen \AttackCheckBlocked - Defines whether they should check if they can actually hit the player before shooting \CanSeeStealth - Can the AI see stealth targets? 0 = No at all, 1 is within the ranges set in LE globals file, 2 means it can see stealth everywhere, think of stock AI. \ShutdownEngineOnArrival - Used for vehicles, turn on if you have issues with your vehicle rolling away from its move positions after it arrives \ChangeDefendSpeedCustom - If this custom is received the defense speed will be updated to the param/100 \ChangeCaptureSpeedCustom - If this custom is received the capture speed will be updated to the param/100 \ChangeAttackSpeedCustom - If this custom is received the attack speed will be updated to the param/100
 CJMG_Utility_AI_Control_Point_Ignore_ObjectTell objects with JMG_Utility_AI_Control_Point to ignore this object
 CJMG_Utility_AI_EngineerBasic Engineer AI that will try to repair all OBJECTs in the patrol range, if an enemy gets close they will also shoot at them with their weapon preset. \ AI is granted the weapons if it does not have them. \RepaiarGun_Preset - Weapon preset to use to repair objects \Weapon_Preset - Weapon preset to use to attack enemies, if null the AI cannot attack enemies \PatrolRange - Area they can wander around in and search for things to repair \BaseCenterPoint - Center of the area they can wander in, if 0 0 0 it defaults to their create location \MinHP[Soldiers|Vehicles|Turrets] - HP must be below this value to be a repaireable target 0 disables the category \MinHP[EngineerTarget|C4|Beacon] - EngineerTarget is designated by any object with the script JMG_Utility_AI_Engineer_Repair_Target attached HP percent must be \ below this value. Beacon C4 means that the engineer will repair enemy beacons and C4 that currently have over this much of their max health, 1 disables it \ (the reason for this is is that you can make more engineers attempt to repair C4 or beacons with higher health this way) \Priority[RepairTargets|C4|Beacons] - This attempts to make some targets more valuable than others by tricking the AI into thinking they are further or nearer \ to it, this would allow you to make the AI always think beacons were super close thus it would always choose those to remove first
 CJMG_Utility_AI_Engineer_Ignore_TargetUsed to designate targets that the engineer AI should ignore
 CJMG_Utility_AI_Engineer_Repair_TargetUsed to designate repair targets for the Engineer AI that are things other than vehicles, turrets, and soldiers
 CJMG_Utility_AI_Follow_Player_On_PokeMakes an AI follow the player that pokes it, if the player dies it goes to its original position \FollowDistance - How far should the AI follow the player \FollowNearSpeed - How fast should the AI follow the player when it is near by \FollowFarDistance - How far must the AI be away in order to run faster to the player \FollowFarSpeed - How fast should the AI follow the player when it is far away \FollowVeryFarDistance - How far must the AI be away in order to run faster to the player \FollowVeryFarSpeed - How fast should the AI follow the player when it is far away \FallBackWhenOutOfArmor - Should the AI return to its spawn location when it runs out of armor \RunHomeSpeed - How fast should the AI run home \HealWhileAtHomeLocation - The amount of health the AI regenerates while at its home location \HUDMessagesColor - Color of the HUD messages that are displayed to the player that the AI is following (0.0 - 1.0) \MessagePokeFollowerID - Message to display when a player pokes a follower, it displays the current number of followers out of total IE: d/d \MessageFollowingYouID - Message to display if the player pokes the bot when it is already following them \MessageFollowingPlayerID - Message to display to the player if they poke a bot that is following someone else \MessageMaxFollowersID - Message to display if the player attempts to have more followers than allowed (message is formatted: You can only have d creaturesfollowing you.) \MessageHealingRequiredID - Message to display when the follower is hurt and has to heal before following again, only available when FallBackWhenOutOfArmor is on \MessageFollowerLostID - Message to display when the player the follower is following wanders out of the pathfind zone or if they follow the player for to long \MessageFollowerInjuredID - Message to display when the follower runs out of armor, FallBackWhenOutOfArmor must be on \MessageFollowerKilledID - Message to display when the follower dies following someone \SendCustomID - ID of the object customs should be sent to \PokedCustom - Custom to send when the follower is poked and starts following \LostCustom - Message to send if the follower gets lost or if they follow the player for to long \InjuredCustom - Message to send when the follower gets injured, requires FallBackWhenOutOfArmor be on \KilledCustom - Message to send if the follower is killed \HealedCustom - Message to send when the follower gets to full health, requires FallBackWhenOutOfArmor be on \MaxFollowTime - Amount of time the AI can follow the player before getting bored and running home (in 10ths of a second) \MaxIdleTime - Max amount of time an AI can stand still while "following" a player before running home (in 10ths of a second)
 CJMG_Utility_AI_Follow_Player_On_Poke_ControllerNeeded for AI using JMG_Utility_AI_Follow_Player_On_Poke, this script controls the limits of how many bots each player can have following them \MaxFollowers - Any value greater than 0 makes it so a player can only have that many followers at a time
 CJMG_Utility_AI_Goto_EnemyThis script makes the AI hunt down the nearest enemy, it works for infantry and vehicles \HuntSearchDistance - Distance to scan for players to magically find and move to, -1 means infinite range \HuntSpeed - Speed at which the bot moves once its moving to a player \HuntArriveDistance - Distance at which to arrive from the player \RandomHuntArriveDistance - Random amount to arrive from the player \HuntStealth - Can the bot magically know where invisible players are \AttackSpeed - Speed to move at once an attack is begun \AttackDistance - Distance to arrive from a target when attacking, -1 uses the weapon effective distance \RandomAttackDistance - Random amount to add or subtract from the Attack distance \ReturnHome - Return to the create location when the action completes? (If wanderpoints are enabled this will never be used) \ReturnHomeSpeed - Speed to move at when going home \WanderingAIGroupID - Group of wander points to use when nothing else is going on \WanderSpeed - Speed to move at between the points \CanSeeStealth - Can the AI see stealth targets? 0 = No at all, 1 is within the ranges set in LE globals file, 2 means it can see stealth everywhere, think of stock AI. \ShutdownEngineOnArrival - Used for vehicles, turn on if you have issues with your vehicle rolling away from its move positions after it arrives \AttackCheckBlocked - Defines whether they should check if they can actually hit the player before shooting \MaxSightRangeFromHome - Maximum range the AI can see from its nearest wander point/home location, useful to keep them from wandering off after a trail of enemies, 0 to not use \WanderDistanceOverride - Overrides the default wander arrive distance (1 meter for infantry and 5 for vehicles) \ChangeWanderGroupCustom - If this custom is received the wander group will be set to the param, -1 param to disable the wander group code \ChangeWanderSpeedCustom - If this custom is received the wander speed will be updated to the param/100 \ChangeHuntDistanceCustom - If this custom is received the hunt range will be updated to the param/100 (-1 means infinite range) \ChangeHuntSpeedCustom - If this custom is received the hunt speed will be updated to the param/100 \ChangeReturnHomeSpeedCustom - If this custom is received the return home speed will be updated to the param/100 \ChangeMaxSightFromHomeLocationCustom - If this custom is received the AI won't be able to see targets past the specified range of the param/100, 0 means don't use \ChangeAttackSpeedCustom - If this custom is received the attack speed will be updated to the param/100 \ChanceToInvestigateLastSeenLocation - The percent chance (0.0-1.0) of checking out the last spot an enemy/target was seen
 CJMG_Utility_AI_Goto_Enemy_Ignore_ObjectTell objects with JMG_Utility_AI_Goto_Enemy_Ignore_Object to ignore this object
 CJMG_Utility_AI_Goto_Enemy_Not_StarThis script makes the AI seek out the nearest enemy, players are ignored, it works for infantry and vehicles \HuntSearchDistance - Distance to scan for players to magically find and move to, -1 means infinite range \HuntSpeed - Speed at which the bot moves once its moving to a player \HuntArriveDistance - Distance at which to arrive from the player \RandomHuntArriveDistance - Random amount to arrive from the player \HuntStealth - Can the bot magically know where invisible players are \AttackSpeed - Speed to move at once an attack is begun \AttackDistance - Distance to arrive from a target when attacking, -1 uses the weapon effective distance \RandomAttackDistance - Random amount to add or subtract from the Attack distance \ReturnHome - Return to the create location when the action completes? (If wanderpoints are enabled this will never be used) \ReturnHomeSpeed - Speed to move at when going home \WanderingAIGroupID - Group of wander points to use when nothing else is going on \WanderSpeed - Speed to move at between the points \CanSeeStealth - Can the AI see stealth targets? 0 = No at all, 1 is within the ranges set in LE globals file, 2 means it can see stealth everywhere, think of stock AI. \ShutdownEngineOnArrival - Used for vehicles, turn on if you have issues with your vehicle rolling away from its move positions after it arrives \AttackCheckBlocked - Defines whether they should check if they can actually hit the player before shooting \MaxSightRangeFromHome - Maximum range the AI can see from its nearest wander point/home location, useful to keep them from wandering off after a trail of enemies, 0 to not use \WanderDistanceOverride - Overrides the default wander arrive distance (1 meter for infantry and 5 for vehicles) \ChangeWanderGroupCustom - If this custom is received the wander group will be set to the param, -1 param to disable the wander group code \ChangeWanderSpeedCustom - If this custom is received the wander speed will be updated to the param/100 \ChangeHuntDistanceCustom - If this custom is received the hunt range will be updated to the param/100 (-1 means infinite range) \ChangeHuntSpeedCustom - If this custom is received the hunt speed will be updated to the param/100 \ChangeReturnHomeSpeedCustom - If this custom is received the return home speed will be updated to the param/100 \ChangeMaxSightFromHomeLocationCustom - If this custom is received the AI won't be able to see targets past the specified range of the param/100, 0 means don't use \ChangeAttackSpeedCustom - If this custom is received the attack speed will be updated to the param/100 \ChanceToInvestigateLastSeenLocation - The percent chance (0.0-1.0) of checking out the last spot an enemy/target was seen
 CJMG_Utility_AI_Goto_Enemy_Not_Star_Ignore_ObjectTell objects with JMG_Utility_AI_Goto_Enemy_Not_Star_Ignore_Object to ignore this object
 CJMG_Utility_AI_Goto_Location_While_Player_NearbyAI that will attempt to go to a location as long as a player is near it \GotoObjectId - Object that the AI will chase around the map, overrides location \GotoLocation - Location the vehicle will attempt to move to \MaxPlayerDistance - Furthest the nearest player can be for the unit to continue to be "escorted" \MinAttackRange - How close can a target be before it can no longer be fired upon, if the target is too close the vehicle will attempt to back up to a previous position or return to a wander point/home position if either are available. \ForceFire - Tells the AI to fire weapons even if the turret isn't aimed at the target, useful for vehicles like the MRLS. \VTOLHover - Used for Aircraft, tells the AI how high to fly above its target spots \vsSoldier - Tells the AI what fire mode to use against infantry, -1 means it can't attack them, 2 means auto, 0 is secondary fire, 1 is primary fire. \vsVehicle - Tells the AI what fire mode to use against vehicles, -1 means it can't attack them, 2 means auto, 0 is secondary fire, 1 is primary fire. \vsAircraft - Tells the AI what fire mode to use against aircraft, -1 means it can't attack them, 2 means auto, 0 is secondary fire, 1 is primary fire. \WeaponError - This tells the max weapon error the vehicle can use, if weapon error is -1 it dynamically determines a weapon error to use, this calculation has to do with bullet speed and enemy distance. \OverrideFireMode - If 1 primary is forced, if 2 secondary is forced, otherwise use built in fire modes \OverrideSpeed - If -1 the default speed calculations take place, if anything else the speed value is used \PlayerType - Requires the team of the closest player to match in order for the script to one 0 Nod 1 GDI 2 Any
 CJMG_Utility_AI_Goto_Location_While_Player_Nearby_IgnoredAny object this is attached to will not be shot at by JMG_Utility_AI_Goto_Location_While_Player_Nearby
 CJMG_Utility_AI_Goto_PlayerThis script makes the AI hunt down the nearest player, it works for infantry and vehicles \HuntSearchDistance - Distance to scan for players to magically find and move to, -1 means infinite range \HuntSpeed - Speed at which the bot moves once its moving to a player \HuntArriveDistance - Distance at which to arrive from the player \RandomHuntArriveDistance - Random amount to arrive from the player \HuntStealth - Can the bot magically know where invisible players are \AttackSpeed - Speed to move at once an attack is begun \AttackDistance - Distance to arrive from a target when attacking, -1 uses the weapon effective distance \RandomAttackDistance - Random amount to add or subtract from the Attack distance \ReturnHome - Return to the create location when the action completes? (If wanderpoints are enabled this will never be used) \ReturnHomeSpeed - Speed to move at when going home \WanderingAIGroupID - Group of wander points to use when nothing else is going on \WanderSpeed - Speed to move at between the points \CanSeeStealth - Can the AI see stealth targets? 0 = No at all, 1 is within the ranges set in LE globals file, 2 means it can see stealth everywhere, think of stock AI. \ShutdownEngineOnArrival - Used for vehicles, turn on if you have issues with your vehicle rolling away from its move positions after it arrives \AttackCheckBlocked - Defines whether they should check if they can actually hit the player before shooting \MaxSightRangeFromHome - Maximum range the AI can see from its nearest wander point/home location, useful to keep them from wandering off after a trail of enemies, 0 to not use \WanderDistanceOverride - Overrides the default wander arrive distance (1 meter for infantry and 5 for vehicles) \ChangeWanderGroupCustom - If this custom is received the wander group will be set to the param, -1 param to disable the wander group code \ChangeWanderSpeedCustom - If this custom is received the wander speed will be updated to the param/100 \ChangeHuntDistanceCustom - If this custom is received the hunt range will be updated to the param/100 (-1 means infinite range) \ChangeHuntSpeedCustom - If this custom is received the hunt speed will be updated to the param/100 \ChangeReturnHomeSpeedCustom - If this custom is received the return home speed will be updated to the param/100 \ChangeMaxSightFromHomeLocationCustom - If this custom is received the AI won't be able to see targets past the specified range of the param/100, 0 means don't use \ChangeAttackSpeedCustom - If this custom is received the attack speed will be updated to the param/100 \ChanceToInvestigateLastSeenLocation - The percent chance (0.0-1.0) of checking out the last spot an enemy/target was seen
 CJMG_Utility_AI_Goto_Player_Ignore_ObjectTell objects with JMG_Utility_AI_Goto_Player to ignore this object
 CJMG_Utility_AI_Goto_Target_ScriptThis script makes the AI hunt down the nearest object with JMG_Utility_AI_Goto_Target_Script_Target attached, it works for infantry and vehicles \HuntSearchDistance - Distance to scan for players to magically find and move to, -1 means infinite range \HuntSpeed - Speed at which the bot moves once its moving to a player \HuntArriveDistance - Distance at which to arrive from the player \RandomHuntArriveDistance - Random amount to arrive from the player \HuntStealth - Can the bot magically know where invisible players are \AttackSpeed - Speed to move at once an attack is begun \AttackDistance - Distance to arrive from a target when attacking, -1 uses the weapon effective distance \RandomAttackDistance - Random amount to add or subtract from the Attack distance \ReturnHome - Return to the create location when the action completes? (If wanderpoints are enabled this will never be used) \ReturnHomeSpeed - Speed to move at when going home \WanderingAIGroupID - Group of wander points to use when nothing else is going on \WanderSpeed - Speed to move at between the points \CanSeeStealth - Can the AI see stealth targets? 0 = No at all, 1 is within the ranges set in LE globals file, 2 means it can see stealth everywhere, think of stock AI. \ShutdownEngineOnArrival - Used for vehicles, turn on if you have issues with your vehicle rolling away from its move positions after it arrives \AttackCheckBlocked - Defines whether they should check if they can actually hit the player before shooting \MaxSightRangeFromHome - Maximum range the AI can see from its nearest wander point/home location, useful to keep them from wandering off after a trail of enemies, 0 to not use \WanderDistanceOverride - Overrides the default wander arrive distance (1 meter for infantry and 5 for vehicles) \ChangeWanderGroupCustom - If this custom is received the wander group will be set to the param, -1 param to disable the wander group code \ChangeWanderSpeedCustom - If this custom is received the wander speed will be updated to the param/100 \ChangeHuntDistanceCustom - If this custom is received the hunt range will be updated to the param/100 (-1 means infinite range) \ChangeHuntSpeedCustom - If this custom is received the hunt speed will be updated to the param/100 \ChangeReturnHomeSpeedCustom - If this custom is received the return home speed will be updated to the param/100 \ChangeMaxSightFromHomeLocationCustom - If this custom is received the AI won't be able to see targets past the specified range of the param/100, 0 means don't use \ChangeAttackSpeedCustom - If this custom is received the attack speed will be updated to the param/100 \ChanceToInvestigateLastSeenLocation - The percent chance (0.0-1.0) of checking out the last spot an enemy/target was seen
 CJMG_Utility_AI_Goto_Target_Script_Ignore_ObjectTell objects with JMG_Utility_AI_Goto_Player to ignore this object
 CJMG_Utility_AI_Goto_Target_Script_TargetTell objects with JMG_Utility_AI_Goto_Target_Script that this is a target
 CJMG_Utility_AI_Guardian_AircraftMakes an aircraft move between wander points, it'll strafe at the target while it has one \WanderingAIGroupID - Group of points to wander between \FlightHeight - How high it should stay above the points \FireRange - Max range that it can use it's guns, if less than 0 it uses the current weapon held's max range \StealthModeOverride - 0 = normal stealth detection, 1 = sees everything, -1 = can't see any stealthed enemies \NewPointDelay - Useful for aircraft with slow acceleration so that it doesn't keep trying to grab new points
 CJMG_Utility_AI_Guardian_Aircraft_IgnoredMakes this unit ignored by JMG_Utility_AI_Guardian_Aircraft
 CJMG_Utility_AI_Guardian_GenericMakes a unit move between wander points, it'll strafe at the target while it has one, clone of JMG_Utility_AI_Guardian_Aircraft but with pathfind enabled \WanderingAIGroupID - Group of points to wander between \WanderSpeed - Speed the unit moves at \FireRange - Max range that it can use it's guns, if less than 0 it uses the current weapon held's max range \CheckBlocked - Whether to check if the target spot is blocked before firing \ArriveDistance - Distance to get close to \FlightHeight - How high should the aircraft fly (use 0 if not an aircraft) \TurnOffEngineOnArrival - Should the vehicle kill its engine when it arrives \UseSecondaryAttack - Should the unit attack with its secondary fire instead \StealthModeOverride - 0 = normal stealth detection, 1 = sees everything, -1 = can't see any stealthed enemies
 CJMG_Utility_AI_Guardian_Generic_IgnoredMakes this unit ignored by JMG_Utility_AI_Guardian_Generic
 CJMG_Utility_AI_Guardian_IgnoredMakes this unit ignored by all the Guardian AI scripts
 CJMG_Utility_AI_Guardian_InfantryMakes a unit move between wander points, it'll strafe at the target while it has one, clone of JMG_Utility_AI_Guardian_Aircraft but with pathfind enabled \WanderingAIGroupID - Group of points to wander between \WanderSpeed - Speed the unit moves at \FireRange - Max range that it can use it's guns, if less than 0 it uses the current weapon held's max range \CheckBlocked - Whether to check if the target spot is blocked before firing \StealthModeOverride - 0 = normal stealth detection, 1 = sees everything, -1 = can't see any stealthed enemies
 CJMG_Utility_AI_Guardian_Infantry_IgnoredMakes this unit ignored by JMG_Utility_AI_Guardian_Infantry
 CJMG_Utility_AI_Guardian_VehicleMakes a unit move between wander points, it'll strafe at the target while it has one, clone of JMG_Utility_AI_Guardian_Aircraft but with pathfind enabled and allows you to turn off the engine on arrival, also well throw itself into reverse if it gets stuck \WanderingAIGroupID - Group of points to wander between \WanderSpeed - Speed the unit moves at \FireRange - Max range that it can use it's guns, if less than 0 it uses the current weapon held's max range \CheckBlocked - Whether to check if the target spot is blocked before firing \AimAtFeet - Should the vehicle aim at the feet of infantry \TurnOffEngineOnArrival - Should the vehicle turn off its engine when it gets to its points (useful for wheeled vehicles that roll away) \StealthModeOverride - 0 = normal stealth detection, 1 = sees everything, -1 = can't see any stealthed enemies
 CJMG_Utility_AI_Guardian_Vehicle_IgnoredMakes this unit ignored by JMG_Utility_AI_Guardian_Vehicle
 CJMG_Utility_AI_Lobbed_Vehicle_Projectile_CustomUses maths to "launch" a vehicle with projectile phyiscs at an enemy's location provided by a spotter object, all effects come from the muzzleA0 bone \TargetCustom - Custom provided by the 'spotter' object, param is the enemy's id, (recommend using JMG_Utility_Enemy_Seen_Send_Custom) \MinDistance - Min distance at which a target can be before it won't be shot at \MinAngle - Max angle the turret can aim (NOTE: Turret isn't actually used for this varrient of the script as it isn't using an actual weapon, turret will still try to aim at the location however). \MaxAngle - Min angle the turret can aim \UseLowAngleMaxDistance - Max distance the turret will try to aim at the low angle before switching the the high arc angle \UseLowAngleTargetAboveHeight - Try to fire the lower angle when above you, this is useful for aircraft and soforth \VehicleProjectilePreset - Vehicle preset that has projectile physics (Created at the FireSpot bone) NOTE: Make sure it is type "flying" so it syncs on the network right \FireVelocity - Speed at which to launch the vehicle preset \GravityScale - Gravity scale setting on the projectile vehicle preset (used for calculations) \BaseMissAmount - How much can the script miss around the target by \MissAmountPerMeter - Max amount of distance the script can aim around the object per meter of distance between the target and firer. \ IE if 0.01 and the target is 150 meters away then the script can aim 1.5 meters infront of, to the left, etc of the target (Defaults to BaseMissAmount if its greater) \ProjectedShotsChance - Chance that the shots will be projected, toggles between the modes every reload (0.0-1.0) \FireRate - howmany in a second to fire \ReloadTime - How long to wait once the clip is empty before firing again \ReloadSound - Sound to play when reloading (Comes from the turret bone) \ClipCount - How many rounds in a clip, if 0 it will never reload \FireSound - Sound to play when the script shoots (Comes from the MuzzleA0 bone) \MuzzleFlashExplosion - Explosion to create when the script shoots (Comes from the MuzzleA0 bone) \ProjectileExplosion - Explosion to create where the vehicle projectile lands \CustomTimeoutTime - If non-zero, this is how long the script will wait before forgetting a target if a custom with the seen id isn't sent again \AimTurret - Being the turret isn't really used at all the AI doens't actually need to aim it, if you want you can make the script aim the turret as if it's actually taking shots (Note: This could inturrupt other AI commands)
 CJMG_Utility_AI_Skittish_Herd_AnimalThe AI attached to this script will flee enemies seen and combat (Like in Deer Hunter mode for ECW) \MinHerdID - Min Herd ID that this object will belong to (max of 128) \MaxHerdID - Max Herd ID that this object will belong to (max of 128) \WanderGroupID - The wander group network the herd will use to run from threats \WanderRadiusAroundHerdCenter - How far can the objects wander around the center of the herd \MinWanderFrequency - Min amount of time a member of the herd can hold still before moving \MaxWanderFrequency - Max amount of time a member of the herd can hold still before moving \MinRetreatTime - Min amount of time that the AI can flee \MaxRetreatTime - Max amount of time that the AI can flee \MinUpdateHerdCenter - Min amount of time required for the center point of the herd to reposition \MaxUpdateHerdCenter - Max amount of time required for the center point of the herd to reposition \RunTowardThreatChance - Chance that it'll flee on purpose toward the threat (0.0 - 1.0) \ActionsCrouched - Chance that it will move and stand crouched 0-1.0
 CJMG_Utility_AI_Skittish_Herd_Animal_ControllerJust used to clean up JMG_Utility_AI_Skittish_Herd_Animal at game end, not required but nice to have
 CJMG_Utility_AI_Skittish_Herd_Animal_IgnorePrevents JMG_Utility_AI_Skittish_Herd_Animal from seening the attached object
 CJMG_Utility_AI_VehicleVehicle AI that can be used for both aircraft and wheeled vehicles, the AI will attempt to backup when stuck and can choose different weapons depending on what foe it faces \MaxRange - How close will the AI drive to a target. \MinAttackRange - How close can a target be before it can no longer be fired upon, if the target is too close the vehicle will attempt to back up to a previous position or return to a wander point/home position if either are available. \FollowTarget - Tells the AI follow its target around while it tries to kill it. \ReturnHome - Tells the AI return to the spot it was created at once it kills a target. \ForceFire - Tells the AI to fire weapons even if the turret isn't aimed at the target, useful for vehicles like the MRLS. \VTOLHover - Used for Aircraft, tells the AI how high to fly above its target spots, if 0 it will attempt to smoosh them. \vsSoldier - Tells the AI what fire mode to use against infantry, -1 means it can't attack them, 2 means auto, 0 is secondary fire, 1 is primary fire. \vsVehicles - Tells the AI what fire mode to use against vehicles, -1 means it can't attack them, 2 means auto, 0 is secondary fire, 1 is primary fire. \vsAircraft - Tells the AI what fire mode to use against aircraft, -1 means it can't attack them, 2 means auto, 0 is secondary fire, 1 is primary fire. \WanderingAIGroupID - Tells the vehicle that it can used JMG_Wandering_AI_Controller and JMG_Wandering_AI_Wander_Point scripts to move around the map randomly. \MinRandWander - The smallest amount of time the AI will wait before attempting to wander. \MaxRandWander - The longest amount of time the AI will wait before attempting to wander. If Min and Max are 0 random wander is disaled \SquishInfantry - Tells the unit to drive over the enemy if it is an infantry. \EnableTransitions - Whether or not players can get in and out of the vehicle. \UsePathfind - Tells the unit whether or not to use pathfind. \DisableEngineOnArrival - Tells the unit whether it should shutdown its engine when it finishes moving, useful for wheeled vehicles so they don't go rolling away. \WeaponError - This tells the max weapon error the vehicle can use, if weapon error is -1 it dynamically determines a weapon error to use, this calculation has to do with bullet speed and enemy distance. \MaxHuntRange - This variable makes it so the AI can't see anything that is further than x meters from the wander point (or home position) it is currently moving too, if 0 this setting is ignored. \NextWanderPointWhenLastReached - When 0 MinRandWander and MaxRandWander are used, when greater than 0 this is the distance the Vehicle must get to a wander point before choosing its next one \OverrideFireMode - If 1 primary is forced, if 2 secondary is forced, otherwise use built in fire modes \RetreatDistance - If the target is closer than this the unit will attempt to move to a random spot further away
 CJMG_Utility_AI_Vehicle_IgnoredMakes this unit ignored by all JMG_Utility_AI_Vehicle
 CJMG_Utility_Animate_While_Moving_Idle_Or_DeadMakes the object or a sub-object of the object animate while moving, dead, or idle. \SubObject - Name of the sub-object if any \IdleAnimation - Name of the idle animation \MoveAnimation - Name of the move animation \DeathAnimation - Name of the death animation \DeathFrame - Last frame of the death animation
 CJMG_Utility_Apply_Damage_On_Timer_BaseApplies damage to object at a specified rate (JMG_Utility_Apply_Damage_On_Timer) \Rate - How often to apply the damage \DamageAmount - How much damage to apply \Warhead - What warhead to use \DamagerId - ID of what is applying the damage, 0 = nothing, -1 = self
 CJMG_Utility_Apply_Damage_While_In_ZoneApplies damage while in the zone by attaching the script below (JMG_Utility_Apply_Damage_While_In_Zone_Attached) \Rate - How often to apply the damage \DamageAmount - How much damage to apply \Warhead - What warhead to use \DamagerId - ID of what is applying the damage, 0 = nothing, -1 = enter, -2 = zone \Team - 2 everyone, 0 Nod, 1 GDI
 CJMG_Utility_Attach_Script_To_All_PlayersAttaches a script to all players in game (can only attach the designated distinct script name once) \Script - Script to attach \Params - Params to use for that script, use a delim instead of a , \Delim - Character to parse out of the params and replace with a ,
 CJMG_Utility_Attach_Script_To_Object_With_WeaponScans the map and attaches the specifed script to all objects that have the specified weapon \WeaponName - Name of the weapon to check for \Script - Name of the script to attach \Params - The parameters to use for the script \Delim - The character to use in place of a ',' swapped at script creation \Rate - Rate at which the script scans \PlayerType - Required team to attach to
 CJMG_Utility_Base_Defense_SimpleVery basic AI that won't reset its attack while still seeing a target, first come first serve \MinAttackDistance - Min range at which it can attack \MaxAttackDistance - Max range at which it can attack \AttackPriority[Car|Tank|Bike] - Higher the value the more the object is prioritized, 0 can't be targeted \AttackPriority[Flying|Turret|Boat] - Higher the value the more the object is prioritized, 0 can't be targeted \AttackPriority[Submarine|Infantry|Unused - Higher the value the more the object is prioritized, 0 can't be targeted \ResetTime - How many seconds should the AI keep its target after losing sight (I highly don't recommend anything less than 2 as the enemy seen function only fires once a second)
 CJMG_Utility_Basic_SpawnerTurns a placed object into a renstyle spawner that can be sent customs like a normal object, don't put this on an object that will fall through the level! \SpawnPreset - Preset to spawn \RespawnTime - Time it takes between spawns after last object was killed \RespawnTimeRandom - Random time to add or subtract from the spawn time \StartsEnabled - Can the object spawn on script create \EnableOrDisableCustom - Message used to enable the spawner, the parameter sent with it tell whether to enable or disable (1 for enable, 0 for disable, -1 disables and kills the spawned object, -2 disables and destroys the spawned object) \SpawnLimit - How many objects can this script spawn \DelayOnStartup - Day to spawn the first object when enabled \Attach_Scripts_Group_ID - Defines what scripts should be attached with JMG_Utility_Basic_Spawner_Attach_Script (-1 attachs all scripts on the spawn controller that can be attached)
 CJMG_Utility_Basic_Spawner_Attach_ScriptAttaches the script supplied to anything spawned by a basic spawner \Script - Name of the script to attach \Params - The parameters to use for the script \Delim - The character to use in place of a ',' swapped at script creation \Scripts_Group_ID - Defines what attach group this is in, if -1 it will attach to all the spawned objects spawned from this object
 CJMG_Utility_Basic_Spawner_In_RadiusSpawns objects randomly in a circle using ray casts to find the ground around the location specified can have scripts attached to the spawned object with JMG_Utility_Basic_Spawner_Attach_Script \Spawn_Preset - Preset to create (can be a twiddler). \Spawn_Rate - Rate at which to spawn more objects (also used to respawn when an object is killed). \Random_Spawn_Rate - Random amount to add or subtract from the spawn time. \Spawn_At_A_Time - Number of instances of the spawned object can exist at once, for example in a traditional spawner only 1 can exist at a time. \Min_Spawn_Radius - The min size of the radius to spawn in, non-zero makes a torus basically \Max_Spawn_Radius - The max size of the radius to spawn in. \Initial_Spawn_Height - Adds this much to the Z axis on object creation. \Max_Total_Spawned - How many times can objects be spawned before being disabled, -1 means no limit. \Spawn_Location - Location in which to spawn the objects, -1 -1 ? (Last value is the height of which to start casting the ray from, -1 makes it the current position) \X_Multiplier - Multiply how the circle is shaped on the X coordinates, default is 1.0. \Y_Multiplier - Multiply how the circle is shaped on the Y coordinates, default is 1.0. \Collision_Check - Check if the spawn location is clear to create the object, 0 means it'll place even if blocked. \Collision_Retry_Attempts - How many times will the script "bump" the object if the collision is blocked. \Collision_Add_Height - Amount of height to add each time if blocked. \Initial_Spawn - Setting the value to -1 will spawn the Spawn_At_A_Time on create, any 0 or above will make the objects slowly spawn in at the spawn rate. \Spawned_Object_Script_ID - Set the id for this script, -1 uses default (only use this if you're going to need to manually add spawned objects to this spawner). \Point_Must_Be_In_Pathfind - Requires the created point to be in the pathfind field, if its outside of the field the point will not be created. \Manual_Facing - If true random facing will not be used, first it will attempt to use Face_Location and if that's all 0's Face_Direction \Face_Location - If anything besides 0,0,0 all objects created will attempt to face the point \Face_Direction - If Face_Location was 0,0,0 then Face_Direction will be used \Ignore_Ray_Cast_Failure - If a ray fails to cast the script will stop by default (this usually means that it cast beyond the terrain) turn this setting on to continue casting \Min_Distance_Between_Objects - If non-zero the script will place objects at least the specified distance away from other objects in the group \Spawn_Group_ID - The spawn group id which these objects belong to, if -1 or 0 the distance will be checked against all spawn groups (-1 adds the objects to a group, 0 does not) \ if the value is above 0 the objects will only be checked against other objects with the same value. \Starts_Disabled - If set to 1 the script won't be able to spawn objects until an Enable_Disable_Custom with a param of 1 is received \Enable_Disable_Custom - Custom used to enable or disable the spawners, if the param is 0 it will be disabled, 1 will attempt to spawn the max, anything else just enables the spawn code \Raycast_Direction_Override[Bottom|Top|Unused] - Specify the Z range in which the ray is cast (Default 0|0 lets the game script decide) \Attach_Scripts_Group_ID - Defines what scripts should be attached with JMG_Utility_Basic_Spawner_Attach_Script (-1 attachs all scripts on the spawn controller that can be attached) \PlayersAddToSpawnAtATime - Each player in game adds to the max number of things this can spawn at a time
 CJMG_Utility_Basic_Spawner_In_Radius_AttachedTells an object that it belongs to a group of the JMG_Utility_Basic_Spawner_In_Radius (normally attached by JMG_Utility_Basic_Spawner_In_Radius) \ A case where manually using this would make sense would be in a drop cinematic, you might have to define on the vehicle object it belongs to the spawn controller. \Controller_ID - ID of the object with JMG_Utility_Basic_Spawner_In_Radius attached. \Script_ID - Manually or automatically set Script_ID on JMG_Utility_Basic_Spawner_In_Radius. \Spawn_Group_ID - Manually or automatically set Spawn_Group_ID on JMG_Utility_Basic_Spawner_In_Radius
 CJMG_Utility_Basic_Spawner_In_Radius_ControllerPlace this script on an object that exists the duration of the map, all it does is deletes the spawn group nodes if you use them on game end
 CJMG_Utility_Basic_Spawner_Set_Prespawn_LocationAllows you to set where the spawner creates the original spawn (this allows you to hide the flash when an object is created before its moved to the actual spawn spot) \OverrideLocation - Allows you to manually set the location to use for the prespawn, if its <0.0 0.0 0.0> it uses the location of the attached object
 CJMG_Utility_Basic_Spawner_Wander_PointSpawns objects randomly in a circle using ray casts to find the ground around the location specified can have scripts attached to the spawned object with JMG_Utility_Basic_Spawner_Attach_Script \Spawn_Preset - Preset to create (can be a twiddler). \WanderingPointGroupID - Group of points to teleport to \SafeTeleportDistance - How far can infantry be moved if the spot is blocked \Spawn_Rate - Rate at which to spawn more objectSpawn_Locations (also used to respawn when an object is killed). \Random_Spawn_Rate - Random amount to add or subtract from the spawn time. \Spawn_At_A_Time - Number of instances of the spawned object can exist at once, for example in a traditional spawner only 1 can exist at a time. \Max_Total_Spawned - How many times can objects be spawned before being disabled, -1 means no limit. \Initial_Spawn - Setting the value to -1 will spawn the Spawn_At_A_Time on create, any 0 or above will make the objects slowly spawn in at the spawn rate. \Spawned_Object_Script_ID - Set the id for this script, -1 uses default (only use this if you're going to need to manually add spawned objects to this spawner). \Point_Must_Be_In_Pathfind - Requires the created point to be in the pathfind field, if its outside of the field the point will not be created. \Spawn_Group_ID - The spawn group id which these objects belong to, if -1 or 0 the distance will be checked against all spawn groups (-1 adds the objects to a group, 0 does not) \ if the value is above 0 the objects will only be checked against other objects with the same value. \Starts_Disabled - If set to 1 the script won't be able to spawn objects until an Enable_Disable_Custom with a param of 1 is received \Enable_Disable_Custom - Custom used to enable or disable the spawners, if the param is 0 it will be disabled, 1 will attempt to spawn the max, anything else just enables the spawn code \Attach_Scripts_Group_ID - Defines what scripts should be attached with JMG_Utility_Basic_Spawner_Attach_Script (-1 attachs all scripts on the spawn controller that can be attached) \PlayersAddToSpawnAtATime - Each player in game adds to the max number of things this can spawn at a time
 CJMG_Utility_Cap_CreditsUsed to cap the credits of a team, can be updated by sending a custom \Credits - What is the max amount of credits the player can have \Team - Team that the script affects \Custom - A custom message that is used to update the max credits, parameter is the amount
 CJMG_Utility_Change_Model_On_TimerChanges a objects w3d model on a timer
 CJMG_Utility_Change_Screen_Color_While_In_ZoneFades screen color to set color while in zone \Color[Red|Green|Blue] RGB value of the color you want it to fade to (0-1.0) \Opacity How opac should the screen get while in the zone \EnterFadeInTime - Amount of time it takes to fade in once zone has been entered \ExitFadeOutTime - Amount of time it takes to fade out once the zone has been exited
 CJMG_Utility_Change_SkinType_To_Blamo_Until_DamagedChanges the SkinType to Blamo until Armor takes any damage, after that it reverts the SkinType back to the original and destroys the script \MinHealthRatio - Hitpoints have to drop below this value before reverting the SkinType from blamo
 CJMG_Utility_Check_If_Script_Is_In_LibraryDisplays a message if the script named isn't in the scripts build on the server. \ScriptName - The name of the script you want to check for \CppName - Name of the cpp file that it is located in, you don't need the extension
 CJMG_Utility_Control_PointSets this control point's default settings \ControlPointName - Name displayed when CP is lost or captured \ControllingTeamID - Owning team when game starts \MaxCapturePoints - How much 'health' the control point has, a normal unit will take 4 points a second when in range \ControlDistance - Max distance units can control this point \ControlHeight[Min|Max] - If non-zero it will limit the vertical scan of the sphere used for detecting units \ZoneID - If specified a script zone will be used as the zone instead of distance from the control point \CaptureScore - Score to grant units in range when captured (divided amongst all units in range) \NeutralizeScore - Score to grant units in range when lost (divided amongst all units in range) \ControlGroupID - Used for organization but can be accessed by external scripts \StartsLocked - Whether it should start with the locked state (no one can capture it) \LockCustom - Custom Message that will lock the CP if the param is 1, or unlock if 0
 CJMG_Utility_Control_Point_Assault_ModeTurns the control point system into something resembling Mutant Assault in ECW, it uses the groupId on the control points to decide which to enable in disable \ In general capture direction is from 0, to 1, to 2, etc. GroupId's below 0 are ignored in the system \TeamID - Team that is on the defensive \ID - ID of the object to send customs to, 0 sends to self. \AdvanceCustom - Custom to send if Team manages to grab a group number that is lower than the current, param is the groupId that was gained \PushBackCustom - Custom to send if Team is pushed back, param is the groupId that was lost \ControlAllCustom - Custom to send if Team has all CPs in the positive groupId range, param is the groupId that was gained \LostAllCustom - Custom to send if Team has none of the CPs in the positive groupId range, param is the groupId that was lost
 CJMG_Utility_Control_Point_ControllerController for the control point system, needed if control points are on the map (NeutralPlayer is -2) \NeutralTeamName - Name of the neutral state of the CP's (normally you'll never see this) \NeutralRadarBlipColor - This sets the color of the control point's radar marker (NOD = 0,GDI = 1,NEUTRAL = 2,MUTANT = 3,RENEGADE = 4,PRIMARY_OBJECTIVE = 5,SECONDARY_OBJECTIVE = 6,TERTIARY_OBJECTIVE = 7) \NeutralPlayerType - Player type to change the CP's to when owned by neutral \NeutralDefaultPointModel - W3D to use for the CP when neutral owns a CP \NeutralDefaultAnimation - Animation to use when neutral owns a CP \NeutralAnimationLength - Length of the animation \NeutralCaptureSound - Capture sound to play when neutral captures it (normally won't ever see this) \NeutralLostSound - Sound to play when neutral loses a CP \NeutralLockedModel - Model to display if the CP is locked while controlled by neutral \NeutralLockedAnim - Animation for the locked state \NeutralLockedAnimLength - Length of the animation \NeutralDefenseMultiplier - Effect a neutral soldier has on an owned CP \NeutralCaptureMultiplier - Effect a neutral solider has on an enemy CP \NeutralUnoccupiedMultiplier - How neutral is modified when no soldiers are guarding it \CustomID - ID of the object customs will be sent to on captures and losses \TeamMemberCaptureCustom - Any team members in the zone of the control point will send this custom to the specified ID on capture \TeamMembmerLostCustom - Any team members in the zone of the control point will send this custom to the specified ID on loss \TeamMemberNeutralize - When the control point is lost all people in range that are not of the losing team will send this to the specified ID \TeamCaptureCustom - When this control point is captured it will send this custom to the specified ID \TeamLostCustom - When this control point is lost it will send this custom to the specified ID
 CJMG_Utility_Control_Point_Select_Spawn_SystemAllows the player to select their spawn location before entering the map much like Mutant Assault in ECW. \SpawnPreset - Preset the player becomes after spawning \TeamID - Team that the player is on, used for selecting controlled control points \SpawnCustom - custom to trigger spawning, spawn time must be 0 \GroupChangeCustom - This custom causes the player to cycle between available control points on the front lines \UngroupedChangeCustom - This custom causes the player to cycle through control points with groups less than 0 \SafeTeleportDistance - the maximum range you will be randomly placed into the map if your spawn location is occupied \SpawnTime - Defines how long in seconds the player must be in spawn mode before being able to spawn \MaxWanderRange - Maximum distance in meters the player can move from a spawn point before being pulled back \StringID - String ID that is used for displaying HUD messages, this value gets updated in the strings table
 CJMG_Utility_Control_Point_Setting_OverrideAllows team specific overrides for a control point, script must be on the control point itself \TeamID - Team this effects \ID - ID to send customs to \CaptureCustom - Custom to send when captured by this team \LostCustom - Custom to send when this team loses this CP \PointModelOverride - W3D model to use when this CP is captured by this team (leave it blank if you want to use the default settings) \AnimationOverride - Animation to use when this CP is captured, only used if PointModelOverride is used \AnimationLength - How many frames is the override animation \LockedPointModelOverride - W3D model to use when this CP is captured by this team and its locked (leave it blank if you want to use the default settings) \LockedAnimationOverride - Animation to use when this CP is captured and locked, only used if LockedPointModelOverride is used \LockedAnimationLength - How many frames is the override animation
 CJMG_Utility_Control_Point_Team_MemberNeeds to be on objects that can affect the control point scripts \TeamID - Team this belongs to \Multiplier - Make this unit weigh more for defnese and capture, 1 is the default
 CJMG_Utility_Control_Point_Team_SettingAdds a team's settings to the game, needs one per team \TeamID - ID of the team, this is used to index the units on the map \TeamName - Name of the team, this is used for capture messages and loss messages \PlayerType - This is the team the CP will be set to when its owned by this team \RadarBlipColor - This sets the color of the control point's radar marker (NOD = 0,GDI = 1,NEUTRAL = 2,MUTANT = 3,RENEGADE = 4,PRIMARY_OBJECTIVE = 5,SECONDARY_OBJECTIVE = 6,TERTIARY_OBJECTIVE = 7) \PointModel - W3D to use for the CP when owned by this team \Animation - Animation to use when owned by this team \AnimationLength - Length of the animation \CaptureSound - Capture sound to play when a CP is captured by this team \LostSound - Sound to play when this team loses a CP \LockedModel - Model to display if the CP is locked \LockedAnim - Animation for the locked state \LockedAnimLength - Length of the animation \DefenseMultiplier - Effect this team's soldiers has on controlled CP's \CaptureMultiplier - Effect this team's soldiers has on an enemy CP \UnoccupiedMultiplier - Rate at which owned CP's regenerate when no one is around \CustomID - ID of the object customs will be sent to on captures and losses \TeamMemberCaptureCustom - Any team members in the zone of the control point will send this custom to the specified ID on capture \TeamMembmerLostCustom - Any team members in the zone of the control point will send this custom to the specified ID on loss \TeamMemberNeutralize - When the control point is lost all people in range that are not of the losing team will send this to the specified ID \TeamCaptureCustom - When this control point is captured it will send this custom to the specified ID \TeamLostCustom - When this control point is lost it will send this custom to the specified ID
 CJMG_Utility_Control_Point_Team_Target_Wander_PointUpdates a wander point's group ID depending on if the attached control point can be spawned at by the specified team \ControlPointID - ID of the control point this wander point is connected to \TeamID - Team that this wander point updates for \TargetGroupID - GroupId the wander point should change to if the control point is the target of the team \NonTargetGroupId - GroupId the wander point should change to if the control point is not the target of the team
 CJMG_Utility_Control_Point_Wander_PointUpdates a wander point's group ID depending on if the attached control point can be spawned at by the specified team \ControlPointID - ID of the control point this wander point is connected to \TeamID - Team that this wander point updates for \SpawnableGroupID - GroupId the wander point should change to if control point is spawnable, -999 doesn't update \UnspawnableGroupId - GroupId the wander point should change to if the team can't spawn at the control point, -999 doesn't update
 CJMG_Utility_Create_Move_To_Nearest_PathfindMoves object to nearest pathfind location on create
 CJMG_Utility_Create_Set_Random_ModelSets a random model on create \BaseName - Base model name in the random set to assign \FinalModelNumber - Latest number in the string of models, used to select the random model range 0-value (IE: BaseModel#)
 CJMG_Utility_Created_Animate_SubObject_On_JoinStarts a looping animation on a sub object when a client joins a game \SubObject - Subobject to play on \Animation - Animation to play
 CJMG_Utility_Created_Destroy_If_Not_In_PathfindDestroys self if not in a pathfind sector
 CJMG_Utility_Created_Disable_FootstepsDisables the footstep effects of the attached infantry
 CJMG_Utility_Created_Fire_RandomlySends a custom message when the attached object moves a distance from its initial spawn location \FireAngle - Random angle off the objects current facing to fire at \MinHeight - Lowest point off the current position to aim at \MaxHeight - Highest point off the current position to aim at \UpdateRate - How long between each aim update to wait \UseFacing - If -999 it will use the current rotation, otherwise the math will be done off the facing you enter here
 CJMG_Utility_Created_Give_WeaponGives a weapon to the player without need of a powerup \WeaponName - Name of the weapon to give \GrantWeapon - Should the weapon be given or just rounds for the weapon \GrantRounds - How many rounds to give (-1 for infintie) \GrantClips - Should rounds be put in your "backpack"
 CJMG_Utility_Created_Override_AI_Soldier_Muzzle_DirectionMakes an AI able to shoot directions the gun isn't aiming
 CJMG_Utility_Created_Play_Locked_Infantry_AnimationPlays a looped animation on the attached infantry, disables all animations \Animation - Animation to play
 CJMG_Utility_Created_Set_Damage_And_Death_PointsSets the damage and death points of an object on attach \Damage_Points - Points to give when damaged, -1 means don't change the value \DeathPoints - Points to give when killed, -1 means don't change the value
 CJMG_Utility_Created_Trigger_Create_VehicleCreates the preset from the specified team's vehicle factory on create \PresetName - Vehicle preset to make \Delay - Creation Delay \OwnerID - ID of the object that ends up owning it, -1 makes it this object \TeamID - Team to build for
 CJMG_Utility_Credit_Trickle_To_AmmountLike any other credit trickle script but it will stop once the amount is reached for the player \Credits - Credits to grant each player every tick \Rate - The grant rate for the credit trickle \TrickleCap - Amount of money a player has to be below to get the trickle (0 means no limit) \Team - Team that the script affects \Custom - A custom message that is used to update the max amount, parameter is the amount
 CJMG_Utility_Credit_Trickle_When_Not_AFKGives players a trickle of credits while they are determined not AFK (requires JMG_Utility_Detect_AFK_Controller on the map) \Credits - Credits to grant each player every tick \Rate - The grant rate for the credit trickle \TrickleCap - Amount of money a player has to be below to get the trickle (0 means no limit) \Team - Team that the script affects \Custom - A custom message that is used to update the max amount, parameter is the amount
 CJMG_Utility_Custom_And_Param_Send_CustomSends a custom on a custom with matching param \Custom - Custom to watch for \Param - Param to watch for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \SendParam - param to send (-1 sends the param that was received) \Delay - delay to add \RandomDelay - Max amount of random delay that can be added to the delay \RandomChance - If non-zero this will be the chance that the custom can send 0.0-1.0, 1 will always send
 CJMG_Utility_Custom_Apply_DamageApplys damage to an object when custom is received \Custom - Custom to trigger on \ID - ID of the object to damage 0 = itself \Damage - Damage to do to the object \Warhead - Warhead to use \DamagerID - ID of what does the damage, -1 = sender, 0 = itself, -2 = object script is attached to
 CJMG_Utility_Custom_Apply_Damage_Closest_Object_To_SelfApplys damage to the closest preset to the attached object (works with powerups and other "dumb" objects, sender is the damager) \Custom - Custom to trigger the script \PresetName - Name of the preset to hunt down and kill \Warhead - Warhead to use \DamageAmount - Amount of damage to apply \MaxDistance - Max distance to scan, 0 = infinite \TriggerOnce - If non-zero the script can only fire once then removes itself
 CJMG_Utility_Custom_Attach_Script_To_PresetsControls if JMG_Utility_Global_Attach_Script_On_Flags can attach scripts, default flag is -1 \Custom - Custom to flip if attaching is allowed, the param is what to set the flag to
 CJMG_Utility_Custom_Change_CharacterChanges the character of the sender object (only works on infantry) \Custom - custom to trigger on (Hint: Picking up a powerup is 1000000025) \Preset - preset to switch to \Cost - price it costs to change character \SuccessSound - Sound to play when purchase was successful \FailSound - Sound to play when purchase failed \AllowRepurchase - If this is 0 the failed sound will play if you already have the char
 CJMG_Utility_Custom_Combination_LockUsed by to make a param send when customs are sent in in the correct order \ID - ID to send the messages to \Combination - Combination that must be entered (25 char max) \Input_Number_Custom - Number from the keypad \Input_Enter_Custom - Enter key pressed \Input_Clear_Custom - Clear key pressed \Success_Custom - Message to send when the combination is matched \Partial_Failure_Custom - Sent until max_failures is meet \Failure_Custom - Message to send when max failures is meet, counter for partial fails is reset upon this \Disable_On_Success - Disable the keypad on a valid entry \Disable_On_Failure - If you completely fail should the keypad disable \Starts_Enabled - Whether the pad can be used from the get-go \Enable_Custom - Turn the number pad on/off \Failure_Safty - Allow partial fail customs to send \Max_Failures - As long as this value is less than the current failed attempt count a partial fail message is sent, once it matches a complete fail message is sent \Sound_Name_Base - Sound that should be played when buttons are pressed, a number 0-9 or ENTER or CLEAR is tacked on to the end
 CJMG_Utility_Custom_Combination_Lock_KeyUsed for pressing keys on the combination lock, script is attached by the code
 CJMG_Utility_Custom_Create_Explosion_At_BoneCreates an explosion at the bone specified on the attached object \Custom - Custom to trigger the explosion on \Explosion - Explosion to create \Bone - Bone to create the explosion at \Owner - Who own's the explosion (-1 = sender, 0 = self, positive numbers = id of object) \Alive - If the owner must be alive to create the explosion
 CJMG_Utility_Custom_Create_Object_At_BoneBasic creates an object at the bone position when a custom is received \Custom - Custom message needed to trigger the script \Preset - Preset to create \Bone - Bone to create the preset at \MaxDistance - Once the object is created it can be displaced if another object is in its position, this is how far it can be moved \Repeat - Allows the script to run more than once
 CJMG_Utility_Custom_Create_Object_At_Random_Wander_PointCreates a specified preset at a random wander point \Custom - Custom to trigger on \Preset - Preset to create \WanderingAIGroupID - Id of the wandering point group to use to place the object
 CJMG_Utility_Custom_Create_Object_In_Front_Of_SelfCreates an object in front of this object \Custom - Custom to trigger the script \PresetName - Name of the preset to create \Distance - Distance in front of the object to place the new object \Height - Height to add to the new object \Rotation - Rotation to add to the new object (base rotation is the same as the old object)
 CJMG_Utility_Custom_Create_Random_ExplosionsCreates random explosions around the attached object within the specified paramaters \Custom - Custom needed to trigger the update \ExplosionPreset - Explosion(s) to create \Count - How many explosions to make \MaxDistance - Maximum distance from the attached object to create explosons \KillerID - Who gets the kill, -1 = sender, 0 = attached, everything else is a lookup ID
 CJMG_Utility_Custom_Create_Sound_At_Object_BoneCreates a 3D sound at the specified bone on custom \Sound - Sound preset to play \Bone - Bone to play the sound from \Custom - Custom message to trigger the sound
 CJMG_Utility_Custom_Damage_All_PresetsDamages all units of a preset type when a custom is received \Custom - Custom to count \PresetName - presets to damage \Damage - how much damage to apply \Warhead - warhead to use
 CJMG_Utility_Custom_Damage_All_Soldiers_On_TeamKills all soldiers on a team when a custom is received \Custom - Custom to count \Team - team to wipe out \Damage - how much damage to apply \Warhead - warhead to use
 CJMG_Utility_Custom_Damage_All_Vehicles_On_TeamDamages all vehicles on a team when a custom is received \Custom - Custom to count \Team - team to wipe out \Damage - how much damage to apply \Warhead - warhead to use
 CJMG_Utility_Custom_Damage_Objects_On_TeamDamages all objects on a team when a custom is received \Custom - Custom to trigger on \Team - Required team, 2 for any \Damage - Amount of damage to apply \Warhead - Warhead to use to damage \Damage[Soldiers|Vehicles|Other] - What type of objects can be damaged \Damager - Object to do the damage, 0 = attached object, -1 = sender, +# = ID \TriggerOnce - Should the script remove itself after firing once
 CJMG_Utility_Custom_Delay_Send_CustomSends a custom after a delay, if the custom being watched for is received again the delay is reset before attempting to send again \Custom - Custom to watch for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to wait before sending \RandomDelay - Random amount of delay that can be added to the delay time \CancelCustom - If this custom is caught the pending custom will be canceled
 CJMG_Utility_Custom_Destroy_All_Presets_By_NameDestroys all the objects on the map with matching preset name \Custom - Custom to trigger the script \PresetName - Name of the preset to hunt down and destroy
 CJMG_Utility_Custom_Destroy_Closest_Model_To_PositionDestroys the closest object with the 3d model to the position (works with powerups and other "dumb" objects) \Custom - Custom to trigger the script \Model - Model of the object to kill \Position - Position to search near \MaxDistance - Max distance to scan, 0 = infinite
 CJMG_Utility_Custom_Destroy_Closest_Object_To_PositionDestroys the closest preset to the position (works with powerups and other "dumb" objects) \Custom - Custom to trigger the script \PresetName - Name of the preset to hunt down and kill \Position - Position to search near \MaxDistance - Max distance to scan, 0 = infinite \TriggerOnce - If non-zero the script can only fire once then removes itself
 CJMG_Utility_Custom_Destroy_Closest_Object_To_SelfDestroys the closest preset to the attached object (works with powerups and other "dumb" objects) \Custom - Custom to trigger the script \PresetName - Name of the preset to hunt down and kill \MaxDistance - Max distance to scan, 0 = infinite \TriggerOnce - If non-zero the script can only fire once then removes itself
 CJMG_Utility_Custom_Destroy_SelfDestroy self when a custom is received \Custom - Custom to trigger on
 CJMG_Utility_Custom_Destroy_SenderDestroys the sender on custom \Custom - custom to destroy the sender on
 CJMG_Utility_Custom_Display_Briefing_MessageReads text from a file and displays it to the screen, \ the text in a file is broken every 150 characters (tries to end the current word) and then delayed by 6 seconds \ Note: This will only work once because of how it works \Custom - Custom to trigger this script on \FileName - Name of the file to read from \TextTag - Name of the tag to grab text from \MessageColor - Color to display the chat message in \LineDelayTime - Delay between each message displayed \UISound - 2D sound to play when custom received \Repeatable - Allows the script to trigger more than once \File Format Example [Tag] Text typed here will be displayed for this tag when the custom is received, the line can be up to 16384 characters long. [AnotherTag] Use this character ' '(there is a character in there, you'll have to copy it out) to end the line, you can also use a bunch of them to add a delay to the message. [LastTag] The expected format of the file is always Tag Line Tag Line, never add blank lines or new line returns in tag text
 CJMG_Utility_Custom_Display_Briefing_Message_StringIDReads text from a file and displays it to the screen, \ the text in a file is broken every 150 characters (tries to end the current word) and then delayed by 6 seconds \ Note: This will only work once because of how it works \Custom - Custom to trigger this script on \StringID - ID of the string from strings.tbl to parse and play out \MessageColor - Color to display the chat message in \LineDelayTime - Delay between each message displayed \UISound - 2D sound to play when custom received \Repeatable - Allows the script to trigger more than once \Special Notes: -String max length is 16384 characters long -Line break/delay - Use this character ' '(there is a character in there, you'll have to copy it out) to end the line, you can also use a bunch of them to add a delay to the message
 CJMG_Utility_Custom_Display_Briefing_PAMSG_Message_To_PlayerReads text from a file and displays it to the screen, as little popup dialogs \ the text in a file is broken every 150 characters (tries to end the current word) and then delayed by 6 seconds \Custom - Custom to trigger this script on, the sender is who will see it \FileName - Name of the file to read from \TextTag - Name of the tag to grab text from \File Format Example [Tag] Text typed here will be displayed for this tag when the custom is received, the line can be up to 16384 characters long. [AnotherTag] Use this character ' '(there is a character in there, you'll have to copy it out) to end the line, you can also use a bunch of them to add a delay to the message. [LastTag] The expected format of the file is always Tag Line Tag Line, never add blank lines or new line returns in tag text
 CJMG_Utility_Custom_Display_Dialog_BoxDisplays a popup dialog to the attached player object \Custom - Custom to trigger the teleport \Message - Text message to display \Delim - Character to use to replace with ,'s
 CJMG_Utility_Custom_Drop_CorpseWorks like JMG_Utility_Killed_Drop_Powerup_Become_Corpse but triggers on custom \Custom - Custom message needed to trigger the script \PowerupName - Powerup to create \Repeat - Allows the script to run more than once
 CJMG_Utility_Custom_Enable_Spawners_In_RangeUsed to enable or disable all spawners within an ID range on zone enter \StartID - ID to start at \EndID - ID to stop at \Custom - Custom used to trigger the enable/disable \Enable - Enable or disable all the spawners in the range, if -1 the param is used to determin this
 CJMG_Utility_Custom_Enable_Spawners_In_Range_ModPlayerWorks exactly like JMG_Utility_Custom_Enable_Spawners_In_Range_Mod but player count subtracts from the mod (min is 1) \StartID - ID to start at \EndID - ID to stop at \Custom - Custom used to trigger the enable/disable \Enable - Enable or disable all the spawners in the range, if -1 the param is used to determin this \Mod - Mod to use, if -1 param will be used instead \PlayerMulti - Multiply the player count by this before subtracting the mod \Invert - if non zero it will disable or enable the ones that don't fit the mod's criteria but are in range
 CJMG_Utility_Custom_Enable_Spawners_In_Range_ModularUsed to enable or disable all spawners within an ID range on zone enter but only enables the IDs that Mod to 0 \StartID - ID to start at \EndID - ID to stop at \Custom - Custom used to trigger the enable/disable \Enable - Enable or disable all the spawners in the range, if -1 the param is used to determin this \Mod - Mod to use, if -1 param will be used instead
 CJMG_Utility_Custom_Enable_Spawners_Incrementally_In_RangeUsed to enable or disable a spawner within an ID range of the script each time a custom is sent (adds one to the id to enable each time) \StartID - ID to start at \EndID - ID to stop at \Custom - Custom used to trigger the enable/disable \Enable - Enable or disable all the spawners
 CJMG_Utility_Custom_Force_All_Players_Into_VehicleWhen the custom is received all players on the map will attempt to enter the vehicle until it is full \Custom - Custom to watch for \ForceOutOfVehicles - Whether players already in other vehicles can be forced out of it first, the script will then attempt to put them in 1/10th of a second later
 CJMG_Utility_Custom_Force_Occupants_Out_And_LockForces all occupants out of the vehicle (taking as many attempts as needed 10 times a second) once finally empty the vehicle will lock. \ Script destroys itself once the action is complete. \Custom - Custom to watch for
 CJMG_Utility_Custom_Grant_Scaled_ScoreScales the given score as players join/leave the match (if no players are in game the score is not updated from the last player count) \GrantCustom - Custom to trigger granting the score \Score - Score to give on custom \ScoreMultiplier - Amount to multiply the score by per player \EntireTeam - Give the score to the whole team 0 no 1 yes \MaxPlayerCount - Max player count allows you to specify a maximum amount of players the script should account for, any above it will be ignored. \Repeat - Should the script check multiple times for player count changes 1 - yes, 0 - no. \GrantToSender - The object to grant to, 0 is itself 1 is the sender \UpdateScaleCustom - If recieved the health will be updated \StopUpdateCustom - Custom to stop updating the score value
 CJMG_Utility_Custom_Grant_Weapon_Destroy_SenderDestroys the sender on custom \Custom - custom to destroy the sender on \Weapon - weapon to grant/add ammo to \FullAmmoString - HUD message to display when no more ammo can be carried
 CJMG_Utility_Custom_Play_Animation_Send_Custom_When_CompleteWhen a specified custom is received it plays an animation, when the animation complete it sends a custom, if applied to a soldier damage animations and other animations are disabled. \ReceivedCustom - Message needed to trigger the script \Animation - Animation to play \StartFrame - First frame of the animation \EndFrame - Last frame of the animation \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Custom_Refect_Custom_If_ModelSends any custom message caught back to the sender \Model - Model this object must be for the script to trigger \SendFromSelf - If one the reflection is sent from the object that originally sent, otherwise sent from the reflector
 CJMG_Utility_Custom_Remove_And_Attach_ScriptRemoves a script and then attaches another script on custom \Custom - Custom that triggers the script \RemoveScript - Script to remove \AttachScript - Script to attach \Params - Params to use for the attached script \Delim - char to use in place of , \Repeat - Should the script fire more than once \RequiresRemoveScript - If the remove script isn't on the object this script can't fire
 CJMG_Utility_Custom_Remove_Weapon_From_All_PlayersRemoves a weapon from all the players in game when a custom is received \Custom - Custom to count \WeaponName - name of the weapon preset to remove
 CJMG_Utility_Custom_Restore_BuildingApplys damage to the closest preset to the attached object (works with powerups and other "dumb" objects, sender is the damager) \Custom - Custom to trigger the script \ID - ID of the building to restore, 0 restores attached, -1 restores sender \TriggerOnce - Only allows this script to fire once
 CJMG_Utility_Custom_Send_CustomSends a custom on a custom \Custom - Custom to watch for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \RandomDelay - Max amount of random delay that can be added to the delay \RandomChance - If non-zero this will be the chance that the custom can send 0.0-1.0, 1 will always send
 CJMG_Utility_Custom_Send_Custom_From_All_PlayersSends a custom on a custom from each of the players on the map \Custom - Custom to watch for \ID - ID to send to, 0 sends to self, -1 sends to sender, -2 sends to the player \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Custom_Send_Custom_If_ModelSends a custom on a custom if the model matches \Model - Model this object must be for the script to trigger \Custom - Custom to watch for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Custom_Send_Custom_If_Occupant_GorESends a custom if the number of occupants in a vehicle is greater than or equal to the value specified \Custom - Custom to watch for \OccupantCount - Number of occupants required to be greater than or equal to not to send the custom \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Custom_Send_Custom_If_Occupant_LorESends a custom if the number of occupants in a vehicle is less than or equal to the value specified \Custom - Custom to watch for \OccupantCount - Number of occupants required to be greater than or equal to not to send the custom \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Custom_Send_Custom_If_Script_AttachedSends a custom on a custom if the specified script is attached \Custom - Custom to count \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \Script - script that must be attached to this object in order to send the custom
 CJMG_Utility_Custom_Send_Custom_If_Script_CountSends a custom on a custom if the count of objects with the specified script is less than the count \Custom - Custom to watch for \Script - Script being scanned for \MaxCount - Max objects with the specified script \PlayerAddMaxCount - Each player adds this much to the max count \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \RandomDelay - Max amount of random delay that can be added to the delay \RandomChance - If non-zero this will be the chance that the custom can send 0.0-1.0, 1 will always send
 CJMG_Utility_Custom_Send_Custom_If_Script_Not_AttachedSends a custom on a custom if the specified script is not attached \Custom - Custom to count \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \Script - script that must not be attached to this object in order to send the custom
 CJMG_Utility_Custom_Send_Custom_No_Presets_Inside_Of_VehicleSends a custom when there are no objects of the preset type inside of the vehicle \Custom - Custom to watch for \Preset - Preset to check for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Custom_Send_Custom_No_Presets_Outside_Of_VehicleSends a custom when there are no objects of the preset type outside of the vehicle \Custom - Custom to watch for \Preset - Preset to check for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Custom_Send_Custom_On_CountSends a custom when a custom has been received x times \Custom - Custom to count \Count - how many customs needed \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \ResetCustom - custom to reset the count
 CJMG_Utility_Custom_Send_Custom_On_Count_From_SenderSends a custom when a custom has been received x times, message comes from sender \Custom - Custom to count \Count - how many customs needed \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \ResetCustom - custom to reset the count
 CJMG_Utility_Custom_Send_Custom_On_Player_CountSends a custom when a custom has been received x times with addition of a player count multiplier, script destroys itself after it triggers once \Custom - Custom to count \BaseCount - how many customs needed \PlayerCount - added to the base count, multiplied by the number of players in game \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \ResetCustom - custom to reset the count
 CJMG_Utility_Custom_Send_Custom_On_Player_Count_AnimationReferences an object with JMG_Utility_Custom_Send_Custom_On_Player_Count_HUD and uses the count to set the animation frame on this object \ (Math is (baseCount+playerCountMultiplier*CurrentPlayers)*MaxFrame \ControllingID - Object with JMG_Utility_Custom_Send_Custom_On_Player_Count_HUD \Animation - Animation to use \MaxFrame - Length of the animation
 CJMG_Utility_Custom_Send_Custom_On_Player_Count_HUDSends a custom when a custom has been received x times with addition of a player count multiplier, script destroys itself after it triggers once, also displays the current count on the HUD \Custom - Custom to count \BaseCount - how many customs needed \PlayerCount - added to the base count, multiplied by the number of players in game \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \ResetCustom - custom to reset the count \HudStringId - stringId for the string to be parsed and displayed on the HUD, formatting goes d/d (current count out of calculated total) \HudStringColor - RGB value for the HUD message (0.0-1.0)
 CJMG_Utility_Custom_Send_Custom_On_Preset_CountSends a custom if the specified preset ID is on the map \Custom - Custom to watch for \PresetID - Preset ID to check for \MinCount - Min number of presets that must exist \MaxCount - Max number of presets that can exist (-1 no limit) \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Custom_Send_Custom_On_Script_CountSends a custom if the specified script is on a preset on the map \Custom - Custom to watch for \Script - Script to check for \MinCount - Min number of presets that must exist \MaxCount - Max number of presets that can exist (-1 no limit) \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Custom_Send_Custom_On_Secondary_CountSends a custom when a custom is received while a secondary count of a secondary custom matches \TriggerCustom - Custom to send on \CountCustom - Custom to count \MatchCount - how many count customs are needed for the trigger custom to send \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send when trigger custom is received and count is matched \Param - param to send (-1 sends the param that was received) \Delay - delay to add \ResetCountCustom - custom to reset the count \OnceMatchedContinue - If non-zero the custom can be sent after the number has been reached and won't stop on additional CountCustoms
 CJMG_Utility_Custom_Send_Custom_Repeat_Ignore_TimeSends a custom when a custom is recieved, ignore time makes it unable to send another custom until timer expires \Custom - Custom to trigger on \ID - ID to send the custom to, 0 sends to self, -1 sends to sender \SendCustom - Custom message to send \Param - Param to send (-1 sends the param that was received) \Delay - Delay to add before sending custom \IgnoreTime - Time during which customs can't be sent again \StartsEnabled - Does the script start enabled \EnableCustom - Custom enables or disables this script, param of 1 = enable
 CJMG_Utility_Custom_Send_Custom_SenderSends a custom on a custom from the sender \Custom - Custom to watch for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \RandomDelay - Max amount of random delay that can be added to the delay \RandomChance - If non-zero this will be the chance that the custom can send 0.0-1.0, 1 will always send
 CJMG_Utility_Custom_Send_Custom_Supress_SpamWhen one of the defined customs is caught it will be instantly sent, after sending a delay timer starts, any custom caught during this time won't be sent until the time runs out, \ when the time runs out only the newest is sent. Also attempts to send from the sender, if the sender no longer exists it sends from itself. \Custom[0-9] - Custom to watch for, if custom 0 is 0 then all customs are caught \ID - ID to send to, 0 sends to self, -1 sends to sender \SpamDelay - Period in which after a custom is sent it must wait to send another \SendDuplicates - If this is 0 the same custom can't be sent twice in a row
 CJMG_Utility_Custom_Send_Custom_To_All_ObjectsSends a to all objects on the map \Custom - Custom to watch for \Team - Required team to send to, 2 for any \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \MaxDistance - 0 send to everyone, otherwise they must be in the range of the attached object
 CJMG_Utility_Custom_Send_Custom_To_All_Objects_SenderSends a to all objects on the map sends from the sender \Custom - Custom to watch for \Team - Required team to send to, 2 for any \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \MaxDistance - 0 send to everyone, otherwise they must be in the range of the attached object
 CJMG_Utility_Custom_Send_Custom_To_PresetSends a custom to all matching presets on the map on custom \ReceivedCustom - Message needed to trigger the script \Preset - Presets to send to \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Custom_Send_Cycled_CustomsSends a custom on a custom, the custom that is sent is cycled through the loop of customs provided (non-zero customs) once it hits the end of non-zero customs it returns to the start of the list \Custom - Custom to watch for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom0 - first custom to send \SendCustom1 - second custom to send \SendCustom2 - third custom to send \SendCustom3 - fourth custom to send \SendCustom4 - fifth custom to send \SendCustom5 - sixth custom to send \SendCustom6 - seventh custom to send \SendCustom7 - eight custom to send \SendCustom8 - ninth custom to send \SendCustom9 - tenth custom to send \Param0 - first param to send (-1 sends the param that was received) \Param1 - second param to send (-1 sends the param that was received) \Param2 - third param to send (-1 sends the param that was received) \Param3 - fourth param to send (-1 sends the param that was received) \Param4 - fifth param to send (-1 sends the param that was received) \Param5 - sixth param to send (-1 sends the param that was received) \Param6 - seventh param to send (-1 sends the param that was received) \Param7 - eighth param to send (-1 sends the param that was received) \Param8 - ninth param to send (-1 sends the param that was received) \Param9 - tenth param to send (-1 sends the param that was received) \Delay0 - first delay to add \Delay1 - second delay to add \Delay2 - third delay to add \Delay3 - forth delay to add \Delay4 - fifth delay to add \Delay5 - sixth delay to add \Delay6 - seventh delay to add \Delay7 - eighth delay to add \Delay8 - ninth delay to add \Delay9 - tenth delay to add \RandomDelay - Max amount of random delay that can be added to the delay \RandomChance - If non-zero this will be the chance that the custom can send 0.0-1.0, 1 will always send
 CJMG_Utility_Custom_Send_Delayed_Ordered_CustomsWatches for specific custom and sends them to the specified id, after each send starts a timer, if another watched custom is received in this time it adds to a list \ The list is processed one by one until empty, using the delays to delay each custom. \ID - ID to send to, 0 = self (not recommended, will start a loop) -1 is sender, everything else is the id \Custom0-9 - Customs to watch for \Time0-9 - Amount of time after sending each custom in which the next custom must be delayed before sending
 CJMG_Utility_Custom_Send_Shuffled_CustomsSends a random custom on a custom, each time the custom is received a custom is sent and removed from the list, error message will be thrown when list is empty \Custom - Custom to watch for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustoms - list of customs that can be sent at random, the delim separates them \Delim - special character used to separate the list IE: @ = 1@3@54545@3 \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Custom_Send_Shuffled_Customs_And_IdsSends a random custom to a random id on a custom, each time the custom is received a custom and id is sent to and removed from the lists, error message will be thrown when the lists are empty \Custom - Custom to watch for \IDs - list of IDs that can be sent at random, the delim separates them \SendCustoms - list of customs that can be sent at random, the delim separates them \Delim - special character used to separate the list IE: @ = 1@3@54545@3 \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Custom_Send_Translated_String_To_All_PlayersSends a chat message to all players on custom \Custom - Custom message to trigger the script on \StringId - String ID to send through the chat console to all players \ColorRGB - Color of the HUD message to display 0-255 \Repeatable - Can the script trigger more than once
 CJMG_Utility_Custom_Set_AnimationSets the animation of an object when a custom is received \Custom - Custom to trigger on \ID - ID of the object to animated \Animation - Animation to play \Looping - Loop the animation \StartFrame - First frame to play \EndFrame - Last frame to play \Blended - Should the animation be blended \TriggerOnce - if 1 the script will be destroyed after being triggered once
 CJMG_Utility_Custom_Set_EngineEnables or disables the attached vehicles engine on custom \Custom - Custom to trigger on \Enable - Whether to enable or disable the engine, -1 uses the param instead
 CJMG_Utility_Custom_Set_Human_Anim_OverrideEnables or disables the human anim override of a soldier \Custom - custom to update the height on \Enable - 1 true (default) 0 false
 CJMG_Utility_Custom_Set_Infantry_HeightSets the height scaler for an infantry on a custom \Custom - custom to update the height on \Height - Height to use, if -9999.0 the param will be used divided by 100
 CJMG_Utility_Custom_Set_Infantry_WidthSets the height scaler for an infantry on a custom \Custom - custom to update the height on \Width - Width to use, if -9999.0 the param will be used divided by 100
 CJMG_Utility_Custom_Set_PositionMoves an object when a custom is received, works on zones \Custom - Custom to trigger on \Position - Spot to place object \ID - ID of the object to use, if 0 use itself
 CJMG_Utility_Custom_Set_Soldier_SpeedSets the speed of the attached soldier on Custom \Custom - Custom needed to trigger script \Speed - Movement speed of the soldier
 CJMG_Utility_Custom_Set_TeamSets the attached object's team when a custom is received \Custom - Custom to trigger on \Team - Team to set
 CJMG_Utility_Custom_Set_Team_And_ModelChanges the model, team, and resets the action of an object on custom. \Custom - Custom to trigger the script \Model - Model to change to on custom \Team - Team to change to on custom \ResetActionPriority - Priority of the action to reset (usually 100)
 CJMG_Utility_Custom_Set_Tile_FrameSets the animation frame of a tile when a custom is received \Custom - Custom to trigger the teleport \ID - Id of the tile to animate \Animation - Animation to use \Frame - Frame to goto
 CJMG_Utility_Custom_Set_Weapon_Hold_SytleSets the hold style for all weapons, if -1 hold style will not be locked \Custom - custom to update the height on \Style - -2 = use param, -1 = no override, 0 = A, 1 = A, 2 = C, 3 = D, 4 = E, 5 = F, 6 = A, 7 = A, 8 = B, 9 = A, 10 = J, 11 = K, 12 = L, 13 = M
 CJMG_Utility_Custom_Set_Weather_CloudsReceiving a custom changes the Clouds on the map \Custom - Custom event to trigger the change \Cover - How thick are the clouds \Gloominess - How dark are the clouds \TransitionTime - Amount of time it takes for the new value to be at full effect
 CJMG_Utility_Custom_Set_Weather_FogReceiving a custom changes the Fog on the map \Custom - Custom event to trigger the change \StartDistance - Range at which the fog starts \EndDistance - Range at which the fog is at its thickest \TransitionTime - Amount of time it takes for the new value to be at full effect
 CJMG_Utility_Custom_Set_Weather_LightningReceiving a custom changes the Lightning on the map \Custom - Custom event to trigger the change \Intensity - How intense the lightning is \StartDistance - How far away is the cloest lightning strikes \EndDistance - How far away is the furthest lightning strikes \Heading - What direction is the lightning \Distribution - How spread out is the lightning \TransitionTime - Amount of time it takes for the new value to be at full effect
 CJMG_Utility_Custom_Set_Weather_PrecipitationReceiving a custom changes the Precipitation on the map \Custom - Custom event to trigger the change \Set[Rain|Snow|Ash|] - The value to set each type of precipitation (yes you can have more than one on at a time) \Change[Rain|Snow|Ash|] - Signals you want to change this value, if you leave it 0 the precipitation type will not be updated \TransitionTime - Amount of time it takes for the new value to be at full effect
 CJMG_Utility_Custom_Set_Weather_War_BlitzReceiving a custom changes the Warblitz on the map \Custom - Custom event to trigger the change \Intensity - How intense the warblitz is \StartDistance - How far away is the cloest warblitz strikes \EndDistance - How far away is the furthest warblitz strikes \Heading - What direction is the warblitz \Distribution - How spread out is the warblitz \TransitionTime - Amount of time it takes for the new value to be at full effect
 CJMG_Utility_Custom_Set_Weather_WindReceiving a custom changes the Wind on the map \Custom - Custom event to trigger the change \Heading - Direction the wind blows \Speed - Speed the wind is blowing \Variability - How much the wind can change direction \TransitionTime - Amount of time it takes for the new value to be at full effect
 CJMG_Utility_Custom_Spawn_SystemA more complicated spawn system, this allows for defining presets you wish to use with precent chances, spawn points are defined with JMG_Utility_Custom_Spawn_System_Point
 CJMG_Utility_Custom_Spawn_System_PointThis defines a spawn point for JMG_Utility_Custom_Spawn_System, each group id defines what group the spawn points belong to, one controller is needed for each group of spawn points (defined by group id)
 CJMG_Utility_Custom_Switch_WeaponSwitches the current weapon to a different weapon on custom \Custom - custom to trigger on \Weapon - name of the weapon to switch to
 CJMG_Utility_Custom_TalkPlays a sound from the position of the attached soldier, also animates their face dynamically \Custom - Message needed to trigger the script \StringID - ID of the string in strings.tbl to play, must have the sound attached to it. (Use // at the front of the string to make it not show up in chat)
 CJMG_Utility_Custom_Teleport_Players_Outside_Range_To_WanderpointsTeleports the object that enters the zone to a random wander point \Custom - Custom to trigger the teleport \ScanTeleportSpot - Center of the area for the distance \TeleportIgnoreDistance - Distance players must be outside of to be teleported \WanderingAIGroupID - Group of points to teleport to \SafeTeleportDistance - How far can infantry be moved if the spot is blocked
 CJMG_Utility_Custom_Teleport_Sender_WanderpointTeleports the sender of a custom to a random wander point \Custom - Custom message to listen for \WanderingAIGroupID - Group of points to teleport to \SafeTeleportDistance - How far can infantry be moved if the spot is blocked \RetryOnFailure - If this is true a script will be attached that will continue to try to teleport the player until successful (Warning: Turning this on hides error messages)
 CJMG_Utility_Custom_Teleport_To_Random_Wander_PointTeleports the object that enters the zone to a random wander point \Custom - Custom to trigger the teleport \WanderingAIGroupID - Group of points to teleport to \SafeTeleportDistance - How far can infantry be moved if the spot is blocked \RetryOnFailure - If this is true a script will be attached that will continue to try to teleport the player until successful (Warning: Turning this on hides error messages)
 CJMG_Utility_Custom_Triggers_Enemy_SeenSets whether AI with Enemy Seen can see this object \Custom - custom to trigger on \Visible - Does enemy seen trigger on this object
 CJMG_Utility_Damage_Send_CustomSends a custom when damaged \MinDamage - min damage required to trigger the script \ID - ID to send the custom to, 0 sends to self, -1 sends to sender \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \SenderID - ID of the object that sent the custom, 0 for itself, -1 for damager \StartsEnabled - Does the script start enabled \EnableCustom - Custom enables or disables this script, param of 1 = enable \Repeat - Can the script trigger more than once
 CJMG_Utility_Damage_SmartGameObjects_In_RangeApplies damage to all smart game objects in range \Range - Range to damage objects inside of \Damage - Damage to do each update \Warhead - warhead to use to apply the damage \Rate - the speed at which to apply the damage
 CJMG_Utility_Damage_Unoccupied_VehicleEmpty vehicles slowly die if not occupied by a player (a player must enter the vehicle once first) \Rate - how fast to damage the vehicle \Delay - how long must it be unoccupied before taking damage \DecreaseTick - how much should be subtracted each update from the delay when unoccupied \IncreaseTick - how much should be added when occupied \Damage - how much damage to do \Warhead - warhead to use
 CJMG_Utility_Damage_Update_Animation_FrameChanges the animation frame as an object is damaged \ (Math is (currentHP/MaxHP)*MaxFrame \Animation - Animation to use \MaxFrame - Length of the animation \Model - Changes the model when attached if not blank
 CJMG_Utility_Damage_When_Outside_Of_RangeFades the screen and applies damage as the player gets further from the spot on the map, kills player if they wander outside a max range, uses JMG_Utility_Set_Screen_Color_Fade_Controller for default screen colors \Warn_Distance - Distance at which the warning message appears on the HUD for infantry \Damage_Distance - Distance at which the infantry starts taking damage \Vehicle_Warn_Distance - Distance at which the warning message appears on the HUD for vehicle \Vehicle_Damage_Distance - Distance at which the vehicle starts taking damage \Aircraft_Warn_Distance - Distance at which the warning message appears on the HUD for aircraft \Aircraft_Damage_Distance - Distance at which the aircraft starts taking damage \Max_Survive_Distance - Distance at which anything the player is in (or the player their self) dies \Warning_StringID - String ID to use for the HUD warning message \Warning_Color - Color to display the warning HUD message \Screen_Fade_Color - Color to fade the screen to \DamageWarhead - Warhead to use to damage the units \InstantKillWarhead - Warhead to use to kill targets instantly
 CJMG_Utility_Damaged_Create_Object_When_Shield_ZeroCreates an object at the location where the attached was when the attached object's shield is zero, removes old object at the second new is created \Preset - Preset to create
 CJMG_Utility_Damaged_Refund_DamageRefunds the damage if the warhead is a match \WarheadName - Warhead to refund the damage from
 CJMG_Utility_Death_Create_Object_At_Bone_PositionBasic turret attach script, turrets match team of vehicle attached to, turrets are destroyed by destroy event \Preset - Preset to create \Bone - Bone to create the preset at \MaxDistance - Once the object is created it can be displaced if another object is in its position, this is how far it can be moved
 CJMG_Utility_Death_Warhead_Create_ObjectSpawns an object if the last warhead that damaged the object matches the specified warhead \Warhead - Name of the warhead \Chance - Chance that object will be spawned (0 - 1.0) \Preset - Object to create
 CJMG_Utility_Death_Weapon_Create_ObjectSpawns an object if the weapon that killed the object matches the specified weapon preset (warhead script is a better choice, less exploitable) \WeaponPreset - Name of the weapon \Chance - Chance that object will be spawned (0 - 1.0) \Preset - Object to create
 CJMG_Utility_Delay_Then_Rotate_CameraRotates the player's camera after a delay \Time - Time amount to wait \Facing - Direction to rotate to
 CJMG_Utility_Destroy_Objects_In_ID_Range_On_KilledSame as JMG_Utility_Destroy_Objects_In_ID_Range_On_Destroy but tiggers on death instead of destroy
 CJMG_Utility_Destroy_Send_CustomSends a custom when an object is destroyed \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Delay - Delay to add to the send
 CJMG_Utility_Destroyed_Apply_DamageApplies damage to the target when DESTROYED \ID - Id of the object to damage \Damage - Amount of damage to apply \Warhead - Warhead to use
 CJMG_Utility_Destroyed_Drop_PowerupCreates a powerup at the objects origin when it is destroyed if it has that weapon \RequiredWeaponPreset - Weapon that is needed to do the drop, if blank always drops \PowerupName - Powerup to create \HeightAdjust - Height to add to the object's origin to create the powerup at
 CJMG_Utility_Detect_AFK_ControllerSets a flag for each player when they are determined to be AFK, the determination is done by if the player continues to do the same actions for a set period of time (or not do actions) \AFKThreshold - Number of seconds a player must continue to do an action
 CJMG_Utility_Display_HUD_Info_Text_All_Players_CustomDisplays a hud message to all players on custom \Custom - Custom message to trigger on \StringId - ID of the string in strings.tbl to display \ColorRGB - Color of the hud message, 0.0-1.0 RGB \Repeatable - Can this show up multiple times
 CJMG_Utility_Display_HUD_Info_Text_All_Players_Custom_Replace_StringDisplays a hud message to all players on custom, allows user to override string with custom string \Custom - Custom message to trigger the script on \StringId - ID of the string to display (Don't use strings used by the game as this will be replaced) \ReplaceString - Message to replace the string ID with \ColorRGB - Color of the hud message to display 0-1
 CJMG_Utility_Display_HUD_Info_Text_To_Sender_On_CustomDisplays a hud message to a player on custom \Custom - Custom message to trigger on \StringId - ID of the string in strings.tbl to display \ColorRGB - Color of the hud message, 0.0-1.0 RGB \Repeatable - Can this show up multiple times
 CJMG_Utility_Display_Message_On_Vehicle_EnterUsed to display a HUD message to a player that enters a vehicle \StringId - ID of the string to display the the player that entered \MessageOverride - Message to override the string with, leave null if you want to use the default string \Color[R|G|B] - Color of the string to display \DriverOnly - Only display this to the driver of the vehicle \ShowOnce - Only display this once to each player that enters this vehicle \PlayerType - Team required for message to display
 CJMG_Utility_Display_Text_Message_To_All_Players_On_CustomDisplays a hud message to all players on custom, allows user to override string with custom string \Custom - Custom message to trigger the script on \Message - Message to display to all players \ColorRGB - Color of the hud message to display 0-255
 CJMG_Utility_Drop_Object_On_Death_And_Attach_ScriptBasically GTH_Drop_Object_On_Death but attaches a script to the dropped object \Drop_Object - Object to drop \Drop_Height - Height to add to dropped object \Probability - Chance to drop \Script - Name of the script to attach to dropped object \Params - The parameters to use for the script \Delim - The character to use in place of a ',' swapped at script creation
 CJMG_Utility_Dynamic_Script_ControllerUsed for cleanup after the level completes, place on an object that will exist the whole level
 CJMG_Utility_Dynamic_Script_Created_Add_Update_ParameterAdds (or updates) a parameter on the specified script ID on create (there is a 0.1 second delay after script has been created, this is to make sure it happens after the script definition is created) \ScriptID - ID that this script is stored under, used to look up the definition when attaching the script to an object or giving it params \Index - Index of the parameter, if the index matches the index of a parameter on the script the param will be updated \Param - Parameter for the index \Delim - Use this in place of ,'s (that way you can have multiple parameters under one parameter as a time saver)
 CJMG_Utility_Dynamic_Script_Custom_Add_Update_ParameterSame as JMG_Utility_Dynamic_Script_Created_Add_Update_Parameter but triggers on custom \Custom - Custom to trigger the add/update on \ScriptID - ID that this script is stored under, used to look up the definition when attaching the script to an object or giving it params \Index - Index of the parameter, if the index matches the index of a parameter on the script the param will be updated \Param - Parameter for the index \Delim - Use this in place of ,'s (that way you can have multiple parameters under one parameter as a time saver)
 CJMG_Utility_Dynamic_Script_Custom_AttachAttaches the script specified by ID and the currently defined parameters \Custom - Custom to trigger the add/update on \ScriptID - ID that this script is stored under, used to look up the definition when attaching the script to an object or giving it params
 CJMG_Utility_Dynamic_Script_DefinitionSetup a dynamic script identity \ScriptID - ID that this script is stored under, used to look up the definition when attaching the script to an object or giving it params \ScriptName - Name of the script that will be attached to the object
 CJMG_Utility_Emulate_DamageableStaticPhysTurns an object into an object that emulates the damange system of DamageableStaticPhysics tiles \Animation - Animation to use for the damage animations \Killed_Explosion - Explosion to create when health hits 0 \Live_Loop_Start - Animation frame to start on when alive \Live_Loop_End - Animation frame to stop on when alive \Live_Twitch_Start - Animation frame to start on when twitching while alive \Live_Twitch_End - Animation frame to stop on when twitching while alive \Death_Transition_Start - Animation frame to start on when transitioning to death \Death_Transition_End - Animation frame to stop on when transitioning to death \Death_Loop_Start - Animation frame to start on when dead \Death_Loop_End - Animation frame to stop on when dead \Death_Twitch_Start - Animation frame to start on when twitching while dead \Death_Twitch_End - Animation frame to stop on when twitching while dead \Live_Transition_Start - Animation frame to start on when transitioning back to life \Live_Transition_End - Animation frame to stop on when transitioning back to life \Repaired_Explosion - Explosion to create when fully repaired \Play_Twitches_To_Completion - Can the twitch animations be interrupted \Send_To_ID - ID to send custom messages to \Death_Custom - Message to send when object dies \Repaired_Custom - Message to send when object repaired \Damage_Points - Points you get for damaging the object \Death_Points - Points you get for killing the object \Heal_Points - Points you get for healing the object \Repair_Points - Points you get for completely repairing the object \Neutral_When_Dead - Does the object's team switch to neutral when dead \Disable_Collision_When_Dead - Disable the object's collision while dead
 CJMG_Utility_Emulate_Sound_Heard_On_FDSThis script makes for a rather cruddy emulation of sound_heard on a dedicated server. The script
\ must be attached to a soldier which can emulate sounds and only notifies to scripts on other objects. \DefaultCrouchMoveSoundID - ID of the footstep sound for crouched movement (I used a dirt sound) \DefaultWalkMoveSoundID - ID of the footstep sound for walk movement (I used a dirt sound) \DefaultRunMoveSoundID - ID of the footstep sound for run movement (I used a dirt sound) \UpdateRate - How often to check if the attached soldier is moving or firing (I used 0.1 by default)
 CJMG_Utility_Enable_LoiterEnables loiter animations
 CJMG_Utility_Enemy_Seen_Send_CustomSends a custom when an enemy is seen, sends a custom again after no enemy in the criteria is visible \Enemy_Preset_ID - Preset ID required to be seen to remove the script, if 0 any enemy will trigger the script \ID - Id of the object to send the custom to, 0 sends to itself, -1 sends to the seen object \Visible_Message - Custom to send when there is a target that is visible \Visible_Param - Param to send when there is a target that is visible, if -1 it's the id of the seen object \Not_Visible_Message - Custom sent when no preset is visible anymore \Not_Visible_Param - Param sent when no preset is visible anymore, if -1 it's the id of the seen object \Max_Lost_Sight_Time - This is the max amount of time an enemy can go without being seen before being lost \ game scans at least once a second so I recommend at least 2.5 seconds if not longer \RepeatSendSeenCustom - If set to true this custom will continue to be fired 10 times a second \AttackPriority[Car|Tank|Bike] - Higher the value the more the object is prioritized, 0 can't be targeted \AttackPriority[Flying|Turret|Boat] - Higher the value the more the object is prioritized, 0 can't be targeted \AttackPriority[Submarine|Infantry|Unused - Higher the value the more the object is prioritized, 0 can't be targeted
 CJMG_Utility_Enemy_Seen_Send_Custom_IgnorePrevents JMG_Utility_Enemy_Seen_Send_Custom from seening the attached object
 CJMG_Utility_Enter_Play_Animation_And_RelocatePlays an animation on the object that enters the zone, the object is also attached to another object (on the "attach" bone) which can be animated to do relocations \PresetName - Preset required to trigger the script \Animation - Animation to play on the object that enters \AttachedModel - Model to use for the object the enterer is attached to \AttachedAnimation - Animation to play to relocate the entering object \Custom - Custom to send to self on animation completion \Param - Param to send to self on animation completion
 CJMG_Utility_Enter_Play_Animation_And_Relocate_AttachedAttached by JMG_Utility_Enter_Play_Animation_And_Relocate, not designed to be used directly
 CJMG_Utility_Fainting_SoldierPlays an animation and locks the soldier in place when they run out of armor, when armor is full again they stand back up \FaintAnimation - Animation to play when the armor hits 0 \LayAnimation - Animation to play while laying on the ground \StandAnimation - Animation to play when armor is full \FaintSound - Sound to play when the soldier faints \StandSound - Sound to play when the soldier stands up \ChangeArmorTypeWhenKnockedOut - Should the armor type change while knocked out \ArmorTypeWhileKnockedOut - What to change the armor type to while knocked out \TeamWhileKnockedOut - What team to change to when knocked out (-99 to make the team not change)
 CJMG_Utility_Flying_Vehicle_Crash_Apply_DamageApplies damage based on speed when a flying vehicle collides with terrain or another object \Min_Collision_Speed - Min speed in M/S to detect collisions \Max_Collision_Speed - Max speed a collision can happen and still survive (assuming full health) \Collision_Sound - Sound to play when colliding \Explosion_Preset - Explosion to create when the vehicle dies from a collision \Subtract_Min_Speed - Use this to subtract the min speed from the actual, thus reducing damage done and increasing the amount of speed needed to die
 CJMG_Utility_Force_Player_Team_At_GameoverPlaces all players on the same team at the end of the round \Team - Team to force all players to
 CJMG_Utility_Give_Weapon_In_RangeGrants specified weapon to all players in range \WeaponName - Name of the weapon to grant to the player \Location - Location to grant the weapon at \Range - Range from the location to grant the weapon \EnableOrDisableCustom - Custom to enable the scanning, parameter determines if its enabled or disabled 1 = enabled, 0 = disabled \StartsEnabled - Should to script start running 1 = true, 0 = false \Rate - Speed at which to scan, 0.0 will disable the repeated scanning and then only enable custom will trigger a scan \SelectWeapon - Should the player pull out the weapon when its granted \WeaponAmmo - Amount of ammo to grant with initial weapon grant \RefillRate - How fast the gun should be refilled while in the zone \RefillAmount - How much ammo to refill
 CJMG_Utility_Global_Armor_ControllerController is required for the global armor system for all objects on the map that have the object script \DefaultMaxArmor - Default max armor when the object spawns into the game \DefaultArmor - Default armor when the object spawns into the game
 CJMG_Utility_Global_Armor_CustomWhen a custom is received it will change the armor of all objects on the map that have the object script \Custom - Custom needed to trigger the update \MaxArmor - New max armor when the object spawns into the game, -1 uses the param \Armor - New armor when the object spawns into the game, -1 uses the param \UpdateAllObjects - Whether the script should update objects that are already spawned
 CJMG_Utility_Global_Armor_ObjectWhen the object is created it will use the armor specified by the controller
 CJMG_Utility_Global_Armor_Scaled_ControllerController is required for the global armor scaled system for all objects on the map that have the object script \Scale - Default scale for the armor when the object spawns into the game, multiplied by 0.01
 CJMG_Utility_Global_Armor_Scaled_CustomWhen a custom is received it will update the scale amount for the scale system \Custom - Custom needed to trigger the update \Scale - New scale for the armor, value is multiplied by 0.01, -1 uses the param
 CJMG_Utility_Global_Armor_Scaled_ObjectWhen the object is created it will scale the objects armor specified by the controller
 CJMG_Utility_Global_Attach_Script_On_FlagAttaches a script on create if the global flag matches \GlobalFlag - Value that must be matched \Script - Name of the script to attach \Params - The parameters to use for the script \Delim - The character to use in place of a ',' swapped at script creation
 CJMG_Utility_Global_Attach_Script_On_Flag_ControllerControls if JMG_Utility_Global_Attach_Script_On_Flags can attach scripts, default flag is -1 \Custom - Custom to flip if attaching is allowed, the param is what to set the flag to
 CJMG_Utility_Global_Attach_Script_On_Flag_CustomChanges what the global flag is on custom \Custom - Custom to flip if attaching is allowed \GlobalFlag - What to set the global flag to
 CJMG_Utility_Global_CSC_With_Global_ParamSends a custom with the global param \Custom - Custom to watch for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Delay - delay to add \RandomDelay - Max amount of random delay that can be added to the delay \RandomChance - If non-zero this will be the chance that the custom can send 0.0-1.0, 1 will always send
 CJMG_Utility_Global_CSC_With_Global_Param_ControllerControls if JMG_Utility_Global_CSC_With_Global_Param can send a custom, default param is -1 \Custom - Custom to flip if sending is allowed, the param is what to set the flag to
 CJMG_Utility_Global_CSC_With_Global_Param_Update_CustomChanges what the global param is on custom \Custom - Custom to flip if sending is allowed \GlobalFlag - What to set the global flag to
 CJMG_Utility_Global_Custom_Send_Custom_FlagSends a custom if the global flag matches the specified \GlobalFlag - Value needed to match in order to send the custom \Custom - Custom to watch for \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add \RandomDelay - Max amount of random delay that can be added to the delay \RandomChance - If non-zero this will be the chance that the custom can send 0.0-1.0, 1 will always send
 CJMG_Utility_Global_Custom_Send_Custom_Flag_ControllerControls if JMG_Utility_Global_Custom_Send_Custom_Flag can send a custom, default flag is -1 \Custom - Custom to flip if sending is allowed, the param is what to set the flag to
 CJMG_Utility_Global_Custom_Send_Custom_Flag_CustomChanges what the global flag is on custom \Custom - Custom to flip if sending is allowed \GlobalFlag - What to set the global flag to
 CJMG_Utility_Global_Health_ControllerController is required for the global health system for all objects on the map that have the object script \DefaultMaxHealth - Default max health when the object spawns into the game \DefaultHealth - Default health when the object spawns into the game
 CJMG_Utility_Global_Health_CustomWhen a custom is received it will change the health of all objects on the map that have the object script \Custom - Custom needed to trigger the update \MaxHealth - New max health when the object spawns into the game, -1 uses the param \Health - New health when the object spawns into the game, -1 uses the param \UpdateAllObjects - Whether the script should update objects that are already spawned
 CJMG_Utility_Global_Health_ObjectWhen the object is created it will use the health specified by the controller
 CJMG_Utility_Global_Health_Scaled_ControllerController is required for the global health scaled system for all objects on the map that have the object script \Scale - Default scale for the health when the object spawns into the game, multiplied by 0.01
 CJMG_Utility_Global_Health_Scaled_CustomWhen a custom is received it will update the scale amount for the scale system \Custom - Custom needed to trigger the update \Scale - New scale for the health, value is multiplied by 0.01, -1 uses the param
 CJMG_Utility_Global_Health_Scaled_ObjectWhen the object is created it will scale the objects health specified by the controller
 CJMG_Utility_Global_Infantry_Speed_ControllerController is required for the global speed system for all infantry on the map that have the object script \Speed - Default speed for infantry when they spawn
 CJMG_Utility_Global_Infantry_Speed_CustomWhen a custom is received it will update the speed amount for the speed system \Custom - Custom needed to trigger the update \Speed - New speed for all global infantry objects created after the script is triggered
 CJMG_Utility_Global_Infantry_Speed_ObjectWhen the infantry is created it will update its movement speed to the global speed
 CJMG_Utility_Global_Keycard_System_ControllerController for the keycard system (Grants Renegade keycards to soldiers that have the soldier scirpt on them (probably works with vehicles but havne't tested how keycards and vehicles interact)
 CJMG_Utility_Global_Keycard_System_Created_Add_KeycardAdds a keycard to the list of keycards to be granted to any global keycard soldier (also grants to any soldier already on the field) \KeycardID - ID of the keycard to add \GroupID - ID of the group this keycard is for
 CJMG_Utility_Global_Keycard_System_Custom_Add_KeycardAdds a keycard to the list of keycards to be granted to any global keycard soldier (also grants to any soldier already on the field) \Custom - Custom needed to trigger script \KeycardID - ID of the keycard to add \GroupID - ID of the group this keycard is for
 CJMG_Utility_Global_Keycard_System_Custom_Remove_KeycardRemoves a keycard to the list of keycards to be granted to any global keycard soldier (also removes from any soldier already on the field) \Custom - Custom needed to trigger script \KeycardID - ID of the keycard to removes \GroupID - ID of the group this keycard is for
 CJMG_Utility_Global_Keycard_System_SoldierThe attached soldier will get and lose keycards whenever the global keycard system is updated or on spawn, only attach one of these per soldier \GroupID - Group that this soldier belongs to for granting keycards
 CJMG_Utility_Global_Set_Random_ModelSets a random model on create, makes use of the global extension \BaseName - Base model name in the random set to assign \FinalModelNumber - Latest number in the string of models, used to select the random model range 0-value (IE: BaseModel::Extension)
 CJMG_Utility_Global_Set_Random_Model_ControllerUsed to set the default extension for the global random model system \DefaultExtension - String to use
 CJMG_Utility_Global_Set_Random_Model_CustomUpdates all objects with JMG_Utility_Global_Set_Random_Model attached to use the new global extension \Custom - Custom message to trigger the update on \Extension - Extension to use
 CJMG_Utility_Grant_Key_On_CreateGrants or removes a key on attach \Key - Key number to grant \Grant - 1 to grant, 0 to remove
 CJMG_Utility_HitPoints_In_Range_Attach_PresetAttaches a preset to the object while its total HitPoint Percent are inside a range (object is destroyed on controller death) \LowerHitPointsPercent - Lower end of the range (percent of HitPoints) \UpperHitPointsPercent - Upper end of the range (percent of HitPoints) \Preset - Name of the preset to attach \BoneName - Name of the bone to attach to
 CJMG_Utility_HitPoints_In_Range_Change_ModelChanges the model of an object when its total HitPoint Percent enters a range \LowerHitPointsPercent - Lower end of the range (percent of HitPoints) \UpperHitPointsPercent - Upper end of the range (percent of HitPoints) \Model - W3d model to switch to
 CJMG_Utility_HitPoints_In_Range_Create_PresetCreates a preset at the location specified while total HitPoint Percent are inside a range (object is destroyed on controller death) \LowerHitPointsPercent - Lower end of the range (percent of HitPoints) \UpperHitPointsPercent - Upper end of the range (percent of HitPoints) \Preset - Name of the preset to attach \Location - Location to place the object \Facing - Direction to face the object
 CJMG_Utility_HitPoints_In_Range_Enable_SpawnerEnables a spawner while the HitPoint Percent is inside a range \LowerHitPointsPercent - Lower end of the range (percent of HitPoints) \UpperHitPointsPercent - Upper end of the range (percent of HitPoints) \SpawnerID - ID of the spawner to enable/disable
 CJMG_Utility_HitPoints_In_Range_Send_CustomSends a custom upon entering the HP range \LowerHitPointsPercent - Lower end of the range (percent of HitPoints) \UpperHitPointsPercent - Upper end of the range (percent of HitPoints) \ID - Id of the object to send the custom to, if 0 sends to self \Custom - Custom to send when within the range \Param - Parameter to send when in the range \Delay - Delay to add to the custom
 CJMG_Utility_HUD_Count_DownDisplays HUD messages once at each hour, 30 min, 20 min, 10 min, 5 4 3 2 1 min, 30 sec 10 9 8 7 6 5 4 3 2 1 seconds. Custom messages can be \ sent by attaching JMG_Utility_HUD_Count_Down_Messages \TimeInSeconds - Time in seconds that the countdown goes for \StringID - ID of the string to replace and use for the HUD message \Color - RGB Color to use for the HUD message \WarningMessage - Message to display on screen as the countdown goes down, format order goes Time then specifier \Delim - Character to swap with a comma in the WarningMessage \HourSingular - This is the part of the message that displays hours singular \HourPlural - This is the part of the message that displays hours plural \MinuteSingular - This is the part of the message that displays minute singular \MinutePlural - This is the part of the message that displays minutes plural \SecondSingular - This is the part of the message that displays second singular \SecondPlural - This is the part of the message that displays seconds plural \StartsPaused - If 0 the countdown will start paused \PauseCustom - If recieved this pauses the countdown when the param is non-zero, unpauses when 0
 CJMG_Utility_HUD_Count_Down_Send_CustomSends a custom when TimeInSeconds (on JMG_Utility_HUD_Count_Down) matches the TriggerTime, only will trigger once even if multiple JMG_Utility_HUD_Count_Downs are placed \ Can be placed before JMG_Utility_HUD_Count_Down is placed. \ If an object with JMG_Utility_HUD_Count_Down is destroyed all currently placed JMG_Utility_HUD_Count_Down_Send_Customs will be removed. \TriggerTime - Time in which to send the custom \ID - ID to send the custom to, if 0 it sends it to the object this script is attached too \Custom - Custom to send \Param - Param to send \Delay - Delay to wait before sending the message
 CJMG_Utility_HUD_Count_Down_Visible_CountdownTies a gameObject to JMG_Utility_HUD_Count_Down \ Can be placed before JMG_Utility_HUD_Count_Down is placed. \ If an object with JMG_Utility_HUD_Count_Down is destroyed all currently placed JMG_Utility_HUD_Count_Down_Visible_Countdown will be removed. \CharPos - Character in the countdown string which this object represents SSMMHH 012345. \BaseModelName - Model name that will be swapped as the counting happens, this model name will have a number appended to the end \ IE: If the model name is number the new model name will be number#, where pound will be the current number to be displayed
 CJMG_Utility_In_Line_Of_Sight_Send_CustomSends a custom when an enemy is in the line of sight, sends a custom again after no enemy in the criteria is visible \Enemy_Preset_ID - Preset ID required to be seen to remove the script, if 0 any enemy will trigger the script \ID - Id of the object to send the custom to, 0 sends to itself, -1 sends to the seen object \Visible_Message - Custom to send when there is a target that is visible \Visible_Param - Param to send when there is a target that is visible \Not_Visible_Message - Custom sent when no preset is visible anymore \Not_Visible_Param - Param sent when no preset is visible anymore \Scan_Rate - This is how often to scan for enemies \Enemy_Only - Only detect enemies
 CJMG_Utility_In_Line_Of_Sight_Send_Custom_IgnorePrevents JMG_Utility_In_Line_Of_Sight_Send_Custom from seening the attached object
 CJMG_Utility_Infantry_Placed_Buildable_ObjectScript used to make placeable/building objects for infantry \WeaponPreset � Weapon that must be selected to deploy/preview \PreviewPreset � Preset that is used to display the preview \DeployPreset - Preset that is placed when the deploy key is pressed \RepairedPreset � Preset that is used when the deployed preset has been fully repaired \PlaceablePreview - 3d model used to show the object can be placed \UnPlaceablePreview - 3d model used to show the object cannot be placed \EnableCustom - Custom message used to enable placement \DisableCustom - Custom message used to disable placement (used by db building checking and water) \DeployCustom � Custom message that is used to place the deploy preset and sets the ammo to 0, also starts the regain time. \RegainTimer - Timer used to give the player the next deployable object after the last was placed \Cost - How much it costs the player to place this object \MessageColor[R|G|B] � Color of messages to display to the player \DeploymentBlockedMessage � Message to display when the object cannot be deployed \PlacementMessage � Message that appears when the reload time has finished \GrantWeapon - If 1 the weapon defined will be granted as soon as the script is attached. \RegenStartsAfterRepair - If 0 regen countdown starts the second you place the object, otherwise it can't start until you repair the object \MatchTeam[Preview|Deployed|Repaired] - Match team controls what teams everything is hooked too when placed, if 1 it matches the player teams, if 0 it keeps it set to whatever the preset has for team \DestroyedRegenTime - This parameter controls how long it takes to get the object back in inventory if its destroyed before being reparied
 CJMG_Utility_Kill_Unit_If_Not_Moving_EnoughKills a unit if it doesn't manage to move more than the specified distance in the specified time \Time - amount of time the unit has to move \Distance - the distance the unit has to move
 CJMG_Utility_Killed_By_Player_Send_CustomSends a custom message when killed by a player \ID - Id of the object to send the custom to, 0 sends to itself, -1 to killer \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Killed_By_Player_Send_Custom_From_PlayerSends a custom message when killed by a player from the player \ID - Id of the object to send the custom to, 0 sends to itself, -1 to killer \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Killed_By_PresetID_Send_CustomSends a custom message when killed by a specific PresetID \PresetID - Preset ID to detect \ID - Id of the object to send the custom to, 0 sends to itself, -1 to killer \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Killed_Create_ObjectCreates an object at the location where the attached was killed, removes old object at the second new is created \Preset - Preset to create
 CJMG_Utility_Killed_Drop_Object_If_Weapon_PresentDrops an object on destroyed/killed/Detached (only drops once, whichever comes first) \Weapon - Weapon the character must have to drop the object \DropPreset - Preset that is dropped \Height - Height to add to the drop preset
 CJMG_Utility_Killed_Drop_Powerup_Become_CorpseCreates a powerup at the objects origin when it is killed, then turns the powerup into the parent object and steals its animation, basically it turns the powerup into the parent's corpse \PowerupName - Powerup to create \RequiredWeaponPreset - Weapon that is needed to do the drop, if blank drops anyways drops \Chance - Chance that the drop will occur
 CJMG_Utility_Killed_Give_MoneyGives money to the player that killed it \Money - Money to give
 CJMG_Utility_Killed_Send_CustomSends a custom message when killed \ID - Id of the object to send the custom to, 0 sends to itself, -1 to killer \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Killed_Send_Custom_From_KillerSends the custom message from the object that killed the attached object \ID - Id of the object to send the custom to, 0 sends to itself, -1 to killer \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Killed_Send_Custom_KillerSends a custom message when killed from the killer \ID - Id of the object to send the custom to, 0 sends to itself, -1 to killer \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Killed_Send_Custom_When_Killed_By_NothingSends the custom message from the itself when its killed by nothing \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Lock_Weapon_Selection_While_Script_AttachedWhile this script is attached it will select the weapon in the player's inventory as long as they have that weapon and it isn't selected \WeaponPreset - Weapon to select while this script is attached
 CJMG_Utility_Objective_System_ControllerUsed to control a basic objective system \ShowMarkersOnRadar - Should stars be shown on the radar \PrimaryObjectiveModel - Visible 3d model to show for Primary Objectives \SecondaryObjectiveModel - Visible 3d model to show for Secondary Objectives \TertiaryObjectiveModel - Visible 3d model to show for Tertiary Objectives \Team - Team to show the objectives for
 CJMG_Utility_Objective_System_Custom_Add_Objective_Send_CustomWorks just like JMG_Utility_Objective_System_Objective_Update_Custom except sends a custom if the objective being added doesn't exist yet \Custom - custom to trigger on \NewObjectiveID - ID of the new objective to add \NewObjectiveStringID - Strings.tbl id for the objective message \ObjectiveMarkerObjectID - ID of the object where the marker should be displayed (-1 sets this object that picked it up as the marker) \CompleteObjectiveID - Objective to complete when this is trigger \Delay - Delay for Objective before adding the new one \NewObjectivePriority - Priority of the new objective {Undefined=-1,Unknown = 0,Primary = 1,Secondary = 2,Tertiary = 3,Quaternary = 4,Quinary = 5,Senary = 6,Septenary = 7,Octonary = 8,Nonary = 9,Denary = 10,Bonus = 11} \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \CustomDelay - How long to delay the send
 CJMG_Utility_Objective_System_Custom_Send_Custom_Does_Not_ExistSame as JMG_Utility_Objective_System_Custom_Send_Custom_Pending but only sends if the objective is removed or not defined \Custom - Custom to watch for \ObjectiveID - Objective that must be removed or not defined in order to send the custom \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Objective_System_Custom_Send_Custom_Not_StatusSends a custom on a custom if the specified objective is not matching the defined status \Custom - Custom to watch for \ObjectiveID - Objective that must be pending in order to send the custom \Status - Status objective must be in (Removed=-2 NotDefined=-1 Pending=0 Accomplished=1 Failed=2 Hidden=3 \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Objective_System_Custom_Send_Custom_StatusSends a custom on a custom if the specified objective is matching the defined status \Custom - Custom to watch for \ObjectiveID - Objective that must be pending in order to send the custom \Status - Status objective must be in (Removed=-2 NotDefined=-1 Pending=0 Accomplished=1 Failed=2 Hidden=3 \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Objective_System_Objective_Failed_CustomUsed to make an objective show up as failed \Custom - Custom to trigger this script \ObjectiveID - ID of the new objective to remove
 CJMG_Utility_Objective_System_Objective_GameObjectCreates a game object at the location of the objective's objective marker while active \ObjectivePriority - Priorities of the objectives that this will create gameobjects for (-2 means ignore requirement) \ObjectiveID - ID of the objective that this will create gameobjects for (-2 means ignore requirement) \Preset - Name of the preset to create \Attach - Should this be attached to the radar marker
 CJMG_Utility_Objective_System_Objective_GameObject_TrackerAttached by the objective controller so the code can remove the object when needed \GameObjectID - ID of the gameobject that was created by the controller \MarkerID - ID of the radar marker that this object is tracking
 CJMG_Utility_Objective_System_Objective_MarkerThis allows the objective system to search through all the game objects to find the object that is needed to be the marker (tell the objective system by using -2 for the marker ID) \ObjectiveID - ID of the objective this belongs to
 CJMG_Utility_Objective_System_Objective_Marker_Update_CustomChanges the location/object of the objective system's marker \Custom - Custom to trigger on \ObjectiveID - ID of the objective to update \NewObjectiveMarkerObjectID - ID of the object where the marker should be displayed (-1 sets the sender as the marker)
 CJMG_Utility_Objective_System_Objective_Remove_CustomUsed to remove an objective on custom \Custom - Custom to trigger this script \ObjectiveID - ID of the new objective to remove \OnlyRemovePending - Can only remove an objective if its pending
 CJMG_Utility_Objective_System_Objective_Status_Update_CustomUsed to update the status of an objective \Custom - Custom to trigger on \ObjectiveID - ID of the new objective to update \NewObjectiveStringID - Strings.tbl id for the objective message \NewObjectiveMarkerObjectID - ID of the object where the marker should be displayed (-1 sets the sender as the marker)
 CJMG_Utility_Objective_System_Objective_Update_CreateUsed to update your objectives \NewObjectiveID - ID of the new objective to add \NewObjectiveStringID - Strings.tbl id for the objective message \ObjectiveMarkerObjectID - ID of the object where the marker should be displayed (-1 sets this object as the marker) \CompleteObjectiveID - Objective to complete when this is trigger \Delay - Delay for Objective before adding the new one \NewObjectivePriority - Priority of the new objective {Undefined=-1,Unknown = 0,Primary = 1,Secondary = 2,Tertiary = 3,Quaternary = 4,Quinary = 5,Senary = 6,Septenary = 7,Octonary = 8,Nonary = 9,Denary = 10,Bonus = 11}
 CJMG_Utility_Objective_System_Objective_Update_CustomUsed to update your objectives \NewObjectiveID - ID of the new objective to add \NewObjectiveStringID - Strings.tbl id for the objective message \ObjectiveMarkerObjectID - ID of the object where the marker should be displayed (-1 sets the sender as the marker) \CompleteObjectiveID - Objective to complete when this is trigger \Delay - Delay for Objective before adding the new one \NewObjectivePriority - Priority of the new objective {Undefined=-1,Unknown = 0,Primary = 1,Secondary = 2,Tertiary = 3,Quaternary = 4,Quinary = 5,Senary = 6,Septenary = 7,Octonary = 8,Nonary = 9,Denary = 10,Bonus = 11}
 CJMG_Utility_Objective_System_Objective_Update_EnterUsed to update your objectives \NewObjectiveID - ID of the new objective to add \NewObjectiveStringID - Strings.tbl id for the objective message \ObjectiveMarkerObjectID - ID of the object where the marker should be displayed (-1 sets the enter as the marker) \CompleteObjectiveID - Objective to complete when this is trigger \Delay - Delay for Objective before adding the new one \NewObjectivePriority - Priority of the new objective {Undefined=-1,Unknown = 0,Primary = 1,Secondary = 2,Tertiary = 3,Quaternary = 4,Quinary = 5,Senary = 6,Septenary = 7,Octonary = 8,Nonary = 9,Denary = 10,Bonus = 11}
 CJMG_Utility_Objective_System_Objective_Update_KilledUsed to update your objectives \NewObjectiveID - ID of the new objective to add \NewObjectiveStringID - Strings.tbl id for the objective message \ObjectiveMarkerObjectID - ID of the object where the marker should be displayed (-1 sets the killer as the marker) \CompleteObjectiveID - Objective to complete when this is trigger \Delay - Delay for Objective before adding the new one \NewObjectivePriority - Priority of the new objective {Undefined=-1,Unknown = 0,Primary = 1,Secondary = 2,Tertiary = 3,Quaternary = 4,Quinary = 5,Senary = 6,Septenary = 7,Octonary = 8,Nonary = 9,Denary = 10,Bonus = 11}
 CJMG_Utility_Objective_System_Objective_Update_PickupUsed to update your objectives \NewObjectiveID - ID of the new objective to add \NewObjectiveStringID - Strings.tbl id for the objective message \ObjectiveMarkerObjectID - ID of the object where the marker should be displayed (-1 sets this object that picked it up as the marker) \CompleteObjectiveID - Objective to complete when this is trigger \Delay - Delay for Objective before adding the new one \NewObjectivePriority - Priority of the new objective {Undefined=-1,Unknown = 0,Primary = 1,Secondary = 2,Tertiary = 3,Quaternary = 4,Quinary = 5,Senary = 6,Septenary = 7,Octonary = 8,Nonary = 9,Denary = 10,Bonus = 11}
 CJMG_Utility_Objective_System_Objectives_Complete_Send_CustomSends a custom once all objectives in the required list are complete, (Not instant, only scans 4 times a second) \CompletedObjectives - Id's that need to be complete \Delim - Character to split the list of objectives with \ID - ID to send to, 0 sends to self \SendCustom - custom to send \Param - param to send \Delay - delay to add \RandomDelay - Max amount of random delay that can be added to the delay \RandomChance - If non-zero this will be the chance that the custom can send 0.0-1.0, 1 will always send \Repeat - Can this script fire more than once
 CJMG_Utility_Objective_System_Override_Visible_SettingsAllows the visible marker, text color, and radar blip color to be overridden for a specific objective \ObjectiveID - ID of the objective to override \MarkerModel - Model to use instead, leave blank if you don't want it to override \MarkerColor - Radar color to make use of, leave -1 if you don't want it to override (RADAR_BLIP_COLOR_NOD = 0, RADAR_BLIP_COLOR_GDI, RADAR_BLIP_COLOR_NEUTRAL, RADAR_BLIP_COLOR_MUTANT, RADAR_BLIP_COLOR_RENEGADE, RADAR_BLIP_COLOR_PRIMARY_OBJECTIVE, RADAR_BLIP_COLOR_SECONDARY_OBJECTIVE, RADAR_BLIP_COLOR_TERTIARY_OBJECTIVE) \AttachBone - Bone to attach to, leave blank if you don't want it to override \OverrideTextColor - 0 means don't override text color, 1 means override, -1 uses default renegade team coloring, specified by MarkerColor \TextColor - Color to use for the objective text, 0-255 \OverrideHudColor - 0 means don't override text color, 1 means override, -1 uses default renegade team coloring, specified by MarkerColor \HudColor - Color to use for the objective HUD message, 0-255
 CJMG_Utility_Objective_System_Send_Random_Objective_As_CustomChooses an non-existant or removed objective from the provided list to send as a custom \Custom - Custom to watch for \ObjectiveID0-9 - Objective choices 0 - 9, -999 means not a choice \ID - ID to send to, 0 sends to self, -1 sends to sender \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Objective_System_Set_Infantry_Attach_BoneSets what bone the visible objective marker attaches to for the objective system \InfantryAttachBone - Bone to attach to
 CJMG_Utility_PCTWorks just like a normal PCT except you can definie zones with JMG_Utility_PCT_Inaccessible_Zone in which the PCT cannot be accessed by players
 CJMG_Utility_PCT_Inaccessible_ZoneIf the player is in this zone they won't be able to access any PCT defined by JMG_Utility_PCT
 CJMG_Utility_PCT_Inaccessible_Zone_AttachScript is attached by JMG_Utility_PCT_Inaccessible_Zone, no need to do anything with this one
 CJMG_Utility_Persistant_Weapon_PowerupAttach this script to the powerup of the weapon you wish not to be lost throughout the game \WeaponName - Name of the weapon the powerup grants \PowerupNameOverride - Use this if you want a different powerup to be used after the initial pickup of this powerup (Default value = null) \DisarmCustom - Sending a soldier that currently has the weapon from this powerup will have the weapon remove and the script as well
 CJMG_Utility_Persistant_Weapon_zAttachedScript used by JMG_Utility_Persistant_Weapon_Powerup
 CJMG_Utility_Persistant_Weapon_zStandinScript used by JMG_Utility_Persistant_Weapon_Powerup
 CJMG_Utility_Pickup_Attach_ScriptAttaches a script to the soldier that picked up the powerup \Script - Script to attach \Params - Params to use \Delim - char to use in place of ,
 CJMG_Utility_Play_Music_On_Join_Change_MusicSwitches what music is playing, you must have a JMG_Utility_Play_Music_On_Join_Controller on the map! \Music - Name of the music file to play, you need the file extension. \FadeOut - Amount of time the last song takes to fade out. \FadeIn - Amount of time the last song takes to fade in
 CJMG_Utility_Play_Music_On_Join_ControllerPlays music for a player on join, the music can be changed for all players by calling JMG_Utility_Play_Music_On_Join::Set_Music \Music - Name of the music file to play, you need the file extension
 CJMG_Utility_Play_Music_On_Join_Custom_Change_MusicSwitches what music is playing on custom, you must have a JMG_Utility_Play_Music_On_Join_Controller on the map! \Custom - Custom event to trigger the change \Music - Name of the music file to play, you need the file extension. \FadeOut - Amount of time the last song takes to fade out. \FadeIn - Amount of time the last song takes to fade in. \Repeat - Can this be triggered more than once
 CJMG_Utility_Play_Music_On_Join_Enter_Change_MusicSwitches what music is playing when an object enters the attached zone, you must have a JMG_Utility_Play_Music_On_Join_Controller on the map! \Music - Name of the music file to play, you need the file extension. \FadeOut - Amount of time the last song takes to fade out. \FadeIn - Amount of time the last song takes to fade in. \PlayerType - The player type the script triggers on \TriggerOnce - Only allow the script to trigger once
 CJMG_Utility_Play_Music_On_Join_Killed_Change_MusicSwitches what music is playing when the attached object is killed, you must have a JMG_Utility_Play_Music_On_Join_Controller on the map! \Music - Name of the music file to play, you need the file extension. \FadeOut - Amount of time the last song takes to fade out. \FadeIn - Amount of time the last song takes to fade in
 CJMG_Utility_Player_Count_Enable_SpawnersEnables spawners when player count meets specified values, disables when outside of values \StartID - ID to start at \EndID - ID to stop at \PlayerCount[eq|<|>] - Set the player count for the conditions to enable the spawners, enter -1 ignores the condition (equal, less than, greater than) \PlayerCount[neq|between(|)] - Set the player count for the conditions to enable the spawners, enter -1 ignores the condition (not equal, between) \EnableOrDisableCustom - Custom pauses the script or unpauses it, param enables/disables (spawner current state is left enabled/disabled) \StartsEnabled - Should this script be running on map load
 CJMG_Utility_Player_Seen_Send_CustomSends a custom when a player is seen, ignores team -4 (spec) and non-visible \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Poke_Grant_WeaponGrants a weapon on poke \Weapon - Weapon to grant \Rounds - Rounds in the gun, -1 = infinite \Backpack - Should it fill the backpack
 CJMG_Utility_Poke_Grant_Weapon_Destroy_SelfGrants a weapon and then destroys self on poke \Weapon - Weapon to grant \Rounds - Rounds in the gun, -1 = infinite \Backpack - Should it fill the backpack
 CJMG_Utility_Poke_Send_CustomSends a custom message on poke, also enables the pokable indicator icon \ID - ID to send the custom to, 0 sends to self, -1 sends to poker \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time all customs are received
 CJMG_Utility_Poke_Send_Custom_From_PokerSends a custom message on poke, also enables the pokable indicator icon, just like JMG_Utility_Poke_Send_Custom but sends from the poker \ID - ID to send the custom to, 0 sends to self, -1 sends to poker \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time all customs are received
 CJMG_Utility_Poke_Send_Custom_If_Has_WeaponSends a custom message on poke if the poker has a specified weapon, the message is sent from the poker \Weapon - Weapon the poker must have \ID - ID to send the custom to, 0 sends to self, -1 sends to poker \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \RemoveWeapon - Whether to remove the poker's weapon on poke \PlayerType - Required player type \TriggerOnce - Allows the script only to trigger the first time all customs are received \MustBeHeld - Player must be holding the weapon out when poking
 CJMG_Utility_Poke_Send_Self_CustomOn Poke sends custom to self \Custom - Message to send when poked \Param - Param to send when poked \Delay - How long to delay the send \LockoutTime - Amount of time that it has to wait before it can send again
 CJMG_Utility_Receive_All_Customs_To_Send_CustomRequires all customs to be received before custom can be sent (unless the custom has a value of 0) \Custom[0-9] - Customs needed, once all have been received send custom triggers \ID - ID to send the custom to, 0 sends to self, -1 sends to sender \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time all customs are received \ResetCustom - Resets the current progress of the script
 CJMG_Utility_Regen_HitPointsRegen's health via set health/shield strength instead of Apply_Damage, useful for infantry if you don't want the Regen affect \ Health (if enabled) must regen all the way before the armor starts coming back, unless regen armor is -1, then armor must be regen'd full before health starts \RegenHealth - Can this regen health \HealthAmount - Amount of health to regen \HealthPerPlayer - Amount of health per player to regen (amount*player count) \RegenArmor - Can this regen armor, if the value here is -1 it'll regen armor first before health \ArmorAmount - Amount of armor to regen \ArmorPerPlayer - Amount of armor per player to regen (amount*player count) \Rate - Speed to regen \DamageDelay - Amount of time regen must wait to start again after taking damage \ScaleHealthPerHeal - With each heal this value is added to HealthAmount, if the value goes negative it stops healing (value is multiplied by 0.00001) \ScaleArmorPerHeal - With each heal this value is added to ArmorAmount, if the value goes negative it stops healing (value is multiplied by 0.00001)
 CJMG_Utility_Remove_Script_If_Doesnt_Have_WeaponRemoves a script while if the attached doesn't have a weapon, gives it back when they have the weapon \WeaponName - Name of the weapon to check for \Script - Name of the script to attach \Params - The parameters to use for the script \Delim - The character to use in place of a ',' swapped at script creation \Rate - Rate at which the script scans
 CJMG_Utility_Remove_Script_While_Has_WeaponRemoves a script while a character has a weapon, gives it back when they lose the weapon \WeaponName - Name of the weapon to check for \Script - Name of the script to attach \Params - The parameters to use for the script \Delim - The character to use in place of a ',' swapped at script creation \Rate - Rate at which the script scans
 CJMG_Utility_Reset_Screen_Color_When_DestroyedResets screen color and opacity on object destruction
 CJMG_Utility_Scale_Damage_By_Player_CountThis script refunds damage on the attached object by a percentage of the number of players there are in game out of the max players supplied as a parameter \Math for this one basically is -PlayerCount/MaxPlayerCount*damage \MaxPlayersToScaleFor - This amount divides the players that are currently in game to get the base scale amount (The number of players is player count - 1, so when its just 1 player in game the scale is normal) \MaxScaleFactor - The maximum percent of damage that can be refunded
 CJMG_Utility_Scale_Damage_Square_By_Player_CountThis script refunds damage on the attached object by a percentage of the number of players there are in game out of the max players supplied as a parameter \Math for this one basically is -(PlayerCount*PlayerCount)/(MaxPlayerCount*MaxPlayerCount)*damage \MaxPlayersToScaleFor - This amount divides the players that are currently in game to get the base scale amount (The number of players is player count - 1, so when its just 1 player in game the scale is normal) \MaxScaleFactor - The maximum percent of damage that can be refunded
 CJMG_Utility_Scale_HP_By_Player_CountScales the HP and armor of the object as players join/leave the match (if no players are in game the HP/Armor is not updated from the last player count) \Health_Multiplier - Amount to multiply the health by per player (keep in mind the max value transmitted across the network is 10k). \Armor_Multiplier - Amount to multiply the armor by per player (keep in mind the max value transmitted across the network is 10k). \Max_Player_Count - Max player count allows you to specify a maximum amount of players the script should account for, any above it will be ignored. \Repeat - Should the script check multiple times for player count changes 1 - yes, 0 - no. \UpdateScaleCustom - If recieved the health will be updated
 CJMG_Utility_Scale_InfantryOnly use this script once unless you want to risk crashing \Scale - Scale to set the infantry to
 CJMG_Utility_Screen_Fade_Red_On_DamageFades the screen red when damage, mixes with colors provided by the swimming script and JMG_Utility_Set_Screen_Color_Fade_Controller (ported from ECW) \FadeColor - Color to fade to when damaged \FadeOpacity - Opacity to fade to when damaged
 CJMG_Utility_Security_System_Fixed_NumberPad_ControlBuilds a keypad using a model with bones named Number(0-9), Clear, and Enter, the buttons it creates to attach to the bones are named PRESETNAME_Key_(0-9), PRESETNAME_Key_Enter, or PRESETNAME_Key_Clear \KeyCode - Code the numpad is looking for \ID - ID to send the messages to \Success_Custom - Message to send when the combination is matched \Partial_Failure_Custom - Sent until max_failures is meet \Failure_Custom - Message to send when max failures is meet, counter for partial fails is reset upon this \Disable_On_Success - Disable the keypad on a valid entry \Disable_On_Failure - If you completely fail should the keypad disable \Starts_Enabled - Whether the pad can be used from the get-go \Enable_Custom - Turn the number pad on/off \Failure_Safty - Allow partial fail customs to send \Max_Failures - As long as this value is less than the current failed attempt count a partial fail message is sent, once it matches a complete fail message is sent \Sound_Name_Base - Sound that should be played when buttons are pressed, a number 0-9 or ENTER or CLEAR is tacked on to the end
 CJMG_Utility_Security_System_Random_NumberPad_ControlBuilds a keypad using a model with bones named Number(0-9), Clear, and Enter, the buttons it creates to attach to the bones are named PRESETNAME_Key_(0-9), PRESETNAME_Key_Enter, or PRESETNAME_Key_Clear \RandomCombinationDigits - How many digits this combination can be \ID - ID to send the messages to \Success_Custom - Message to send when the combination is matched \Partial_Failure_Custom - Sent until max_failures is meet \Failure_Custom - Message to send when max failures is meet, counter for partial fails is reset upon this \Disable_On_Success - Disable the keypad on a valid entry \Disable_On_Failure - If you completely fail should the keypad disable \Starts_Enabled - Whether the pad can be used from the get-go \Enable_Custom - Turn the number pad on/off \Failure_Safty - Allow partial fail customs to send \Max_Failures - As long as this value is less than the current failed attempt count a partial fail message is sent, once it matches a complete fail message is sent \Sound_Name_Base - Sound that should be played when buttons are pressed, a number 0-9 or ENTER or CLEAR is tacked on to the end
 CJMG_Utility_Security_System_Sync_Model_Random_NumberPad_ControlTakes model and replaces it with the number slot generated by JMG_Utility_Security_System_Random_NumberPad_Control \KeypadID - ID of the object that has JMG_Utility_Security_System_Random_NumberPad_Control attached \Index - Index in the combo to use, for example if the combo is 34563 and the index is 2 the model this will display will be 4 \BaseModel - Base name of the model, index is tacked to the end (EX: If the index is 4 and the model is named BaseNumber_ the result will be BaseNumber_4)
 CJMG_Utility_Security_System_Sync_String_Random_NumberPad_ControlTakes a string and replaces the delim with the code generated by JMG_Utility_Security_System_Random_NumberPad_Control \StringID - ID of the string to update \Delim - Character to replace in the string with the code
 CJMG_Utility_Send_Custom_If_Not_Moving_EnoughSends a custom if the unit doesn't manage to move more than the specified distance in the specified time \Time - amount of time the unit has to move \Distance - the distance the unit has to move \ID - ID to send to, 0 sends to self, -1 sends to sender \SendCustom - custom to send \Param - param to send (-1 sends the param that was received) \Delay - delay to add
 CJMG_Utility_Send_Custom_If_Weapon_Held_In_RangeSends a custom message on if a player holds a specified weapon within a range of the attached object \Weapon - Weapon the poker must have \Range - detection range \ID - ID to send the custom to, 0 sends to self, -1 sends to poker \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \RemoveWeapon - Whether to remove the poker's weapon on poke \PlayerType - Required player type \TriggerOnce - Allows the script only to trigger the first time all customs are received \MustBeHeld - Player must be holding the weapon out when poking
 CJMG_Utility_Send_Custom_On_ArmorSends a custom when the object's armor hits zero and then again when it hits full \ID - ID to send the custom to once the team controls the zone \ArmorCustom - Custom to send once the armor is full \ArmorParam - Param to send once the armor is full \NoArmorCustom - Custom to send once the armor is empty \NoArmorParam - Param to send once the armor is empty \Delay - Delay to add to the custom send
 CJMG_Utility_Send_Custom_On_Deaths_ControllerCounts the deaths of any object with the reporter script attached, displays hud messages at a set interval, once the cap is reached a custom is sent \MaxDeaths - Once the death count reaches this a custom is sent \DeathReminder - A hud custom is displayed every time the death count hits a mod of this value \UrgentDeathReminder - Once the death count exceeds this the death messages show up at every death \StringID - ID of the string to replace for the death messages \ReminderMessage - Message to display on the hud as the player lives get low, use d to display the remaining lives and s to add a "s " or " " to the end of the noun. \Delim - Character to swap with a comma in the ReminderMessage \ReminderColor - Color of the warning HUD messages \ReminderMessageOrder - Specifies what order the kill arguments are handed out, 0 = deathCount remainingLives, 1 = remainingLives deathCount, 2 = remainingLives \DeathSingular - Specifies the word or letters to use when only one death has happened \DeathPlural - Specifies the word or letters to use when only many deaths have happened \RemainingSingular - Specifies the word or letters to use when only one life remains \RemainingPlural - Specifies the word or letters to use when only many lives remain \ID - Id to send the message to, if 0 it sends to itself \Custom - Custom to send \Param - Parameter to send with the message \Delay - Time delay to add to the sent message \ReminderCustom - custom to send every time a reminder message shows up, param is the remaining lives, no delay \AddDeathsWhenNoPlayers - Increases the death count (by one) at the rate specified here when no players are in game, if 0 no increase \NoPlayersAddDeathSaftyTime - This amount of time must pass before deaths will start to be added, if a player rejoins the time will reset \RequiresADeathToStartNoPlayerAdd - If true a player must have died once before the death countdown can start \AnnounceOnFirstDeath - Shows the death message the first time any player dies so they are aware of it \OnlyTrackPlayerDeaths - Only track player deaths, not AI
 CJMG_Utility_Send_Custom_On_Deaths_ReporterAttach this to the objects you want the death tracking system applied to, requires JMG_Utility_Send_Custom_On_Deaths_Controller
 CJMG_Utility_Send_Custom_On_Deaths_Reporter_ZoneAttach this to a zone and everytime a unit enters it it will increase the death tracking system, requires JMG_Utility_Send_Custom_On_Deaths_Controller
 CJMG_Utility_Send_Custom_On_Player_CountSends a custom message when the player count condition is hit \PlayerCount - Player count to trigger on \ID - Id to send the message to, if 0 it sends to itself \Custom - Custom to send \Param - Parameter to send with the message \Delay - Time delay to add to the sent message \TriggerOn[eq|<|>] - Defines what to trigger on, putting a 1 in the parameter makes that value checked, (obviously = means equal to the player count, < means less than the player count, > means greater than the player count) \SupressMatchSpam - Makes it so the condition can't trigger again until the condition has not been meet then is meet again, useful for < or > \DestroyAfterTrigger - Makes the script remove itself after it fires once
 CJMG_Utility_Send_Custom_On_Powerup_PickupSends a custom when the attached powerup is collected \ID - Id of the object to send the custom to, 0 sends to itself, -1 sends it to the person who picked it up \Message - Custom to send \Param - parameter to send with the custom \Delay - Delay to add to the send
 CJMG_Utility_Send_Custom_On_Powerup_Pickup_CollectorSends a custom whne the attached powerup is collected from the collector \ID - Id of the object to send the custom to, 0 sends to itself, -1 sends it to the person who picked it up \Message - Custom to send \Param - parameter to send with the custom \Delay - Delay to add to the send
 CJMG_Utility_Send_Custom_On_Preset_EnterSends a custom message when a preset enters the zone \PresetName - preset to trigger on \ID - Id of the object to send the custom to, 0 sends to itself, -1 sends to enterer \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Send_Custom_Player_Count_Matches_Preset_CountSends a custom when the count of presets on the map matches the player count \Preset_ID - Preset ID required to match the count of players on the map \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send when when the count matches \Param - Param to send when when the count matches \Delay - Time to wait before sending the message \Min_Player_Count - Min required players to trigger script, -1 any \Max_Player_Count - Max players allowed to trigger script, -1 any \Rate - Rate to scan for count changes (0.1 - 10 times a second by default). \Repeat - Can the script fire more than once
 CJMG_Utility_Send_Custom_To_Preset_On_MessageSends a custom when the player count condition is hit \TriggerCustom - Custom to trigger the script on \Preset - Preset group to send the message too \Custom - Custom to send to the presets \Param - Param to send to the presets, -1 uses the param of the trigger custom \Delay - Delay to add to the message before sending
 CJMG_Utility_Send_Custom_When_Damage_Exceedes_ThresholdSends a custom when an object has been damaged over a specified amount, also can have a delay how often the custom can be sent again \DamageThreshold - Amount of damage that must be done to trigger the script \LockoutTime - Amount of time that must go by before the script can trigger again \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom
 CJMG_Utility_Send_Custom_When_HP_Crosses_ThresholdSends the matching custom when the units HP drops below the ratio \TargetRatio - (Health+Armor)*THIS VALUE returns the ratio \ID - ID to send to, 0 sends to self, -1 sends to damager, if no damager uses self \AboveCustom - Custom to send when you first go above the ratio \AboveParam - Param to send when you first go above the ratio \BelowCustom - Custom to send when you first go below the ratio \BelowParam - Param to send when you first go below the ratio
 CJMG_Utility_Send_Custom_When_Moved_Distance_From_SpawnSends a custom message when the attached object moves a distance from its initial spawn location \Distance - Distance object has to move \ID - ID to send to, 0 sends to self \Custom - Custom to send \Param - Param to send \StartDelay - amount of time to wait before doing first detection if the object has moved \RequireInPathfind - Only trigger if the object is in a pathfind zone
 CJMG_Utility_Send_Custom_When_Near_BuildingSends a custom when an object gets near a building or moves away from a building \SendCustomObjectID - ID of the object to send the message to, if 0 it sends the messages to itself \NearToBuildingCustom - Message to send when a building is within range \FarFromBuildingCustom - Message to send when buildings are no longer within range \CloseToBuildingDistance - Distance to the nearest POLYGONS CENTER POINT of the building to count as being in range \BuildingPlayerType - Player type required to detect the building \CheckDeadBuildings - If true dead buildings are also checked \CheckRate - How often should the range detection be preformend
 CJMG_Utility_Send_Custom_When_No_More_Presets_Of_Type_ExistSends a custom message when no more objects of the preset name exist on the map, then removes itself \PresetName - preset name to search for \StartsEnabled - If 0 it doesn't start scanning until enabled, otherwise starts scanning on attach \EnableOrDisableCustom - Custom used to enable the script, a param of 0 disables the script again, anything besides 0 enables \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom
 CJMG_Utility_Send_Custom_When_No_More_Units_On_Team_ExistSends a custom message when no more objects on the specified team exist (ignores obelisk and agt) \Team - team that should be scanned for \StartsEnabled - If 0 it doesn't start scanning until enabled, otherwise starts scanning on attach \EnableOrDisableCustom - Custom used to enable the script, a param of 0 disables the script again, anything besides 0 enables \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom \Debug - If set to 1 it will display the first object found on the team
 CJMG_Utility_Send_Custom_When_No_More_Units_On_Team_Exist_IgnoreMakes this unit ignored by JMG_Utility_Send_Custom_When_No_More_Units_On_Team_Exist \Ignore - Does nothing, just here so you can tell which script this is beings the name is cut off
 CJMG_Utility_Send_Custom_When_Not_Team_ZoneSends a custom when any team but the specified team is in the zone (only checks smart game objects and neutral is ignored). \Team - Team to check for \ID - ID to send the custom to once the team controls the zone \InCustom - Custom to send once the team is in the zone \InParam - Param to send once the team is in the zone \OutCustom - Custom to send once the team is out of the zone \OutParam - Param to send once the team is out of the zone \Delay - Delay to add to the custom once the team controls the zone \Rate - How often to check if the team now controls the zone \StartsEnabled - Should the script start running \EnableCustom - Custom to enable/disable the script, param of non-zero enables \SendCustomEveryTick - If non-zero the capture custom will send every tick the team controls the zone
 CJMG_Utility_Send_Custom_When_Not_Team_Zone_IgnoreThe attached object will be ignored from checks by JMG_Utility_Send_Custom_When_Not_Team_Zone
 CJMG_Utility_Send_Custom_When_Player_Between_RangeSends a custom message when a player is detected between the min and max range \MinDistance - How close can the player be \MaxDistance - How far can the player be \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom \TriggerOnce - If true the script can only fire once \SleepTime - Value in 10ths of a second the script must wait before sending the custom again \MaxRange - Players beyond this won't be detected, if 0 the param is ignored
 CJMG_Utility_Send_Custom_When_Player_Inside_Of_RangeSends a custom message when a player comes into range of this object \Distance - how far away can the plaeyrs go \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom \TriggerOnce - If true the script can only fire once \SleepTime - Value in 10ths of a second the script must wait before sending the custom again \MaxRange - Players beyond this won't be detected, if 0 the param is ignored
 CJMG_Utility_Send_Custom_When_Player_Outside_Of_RangeSends a custom message when a player goes beyond a certain range of this object \Distance - how far away can the plaeyrs go \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Delay - Time amount to wait before sending the custom \TriggerOnce - If true the script can only fire once \SleepTime - Value in 10ths of a second the script must wait before sending the custom again \MaxRange - Players beyond this won't be detected, if 0 the param is ignored
 CJMG_Utility_Send_Custom_When_Preset_In_RangeSends a custom message when a preset gets into range \Preset - Preset to detect \Range - Range to detect the preset \Rate - how often to scan for the preset \ID - Id to send the message to, if 0 it sends to itself, if -1 send to the object that triggered it \Custom - Custom to send \Param - Parameter to send with the message \Delay - Time delay to add to the sent message \TriggerOnce - Can the script only trigger once
 CJMG_Utility_Send_Custom_When_Speed_Below_AmountSends a custom if the object's speed is below a certain amount \Speed - speed to watch for \Rate - how long to wait between each speed check \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Repeat - 1 to make it trigger again after sending a custom \StartsEnabled - Non-zero makes the script run on create \EnableCustom - Custom to enable or disable the script, send a non-zero param to enable
 CJMG_Utility_Send_Custom_When_Speed_Exceeds_AmountSends a custom if the object's speed reaches or exceeds a certain amount \Speed - speed to watch for \Rate - how long to wait between each speed check \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Repeat - 1 to make it trigger again after sending a custom \StartsEnabled - Non-zero makes the script run on create \EnableCustom - Custom to enable or disable the script, send a non-zero param to enable
 CJMG_Utility_Send_Custom_When_Team_Dominates_ZoneSends a custom when the specified team holds the zone with more objects than all the other teams combind (only checks smart game objects and neutral is ignored). \Team - Team to check for \ID - ID to send the custom \CaptureCustom - Custom to send once the team controls the zone \CaptureParam - Param to send once the team controls the zone (if -1 sends how many members of the team are in the zone) \LostCustom - Custom to send once the team lost control of the zone \LostParam - Param to send once the team lost control of the zone (if -1 sends how many members of the team are in the zone) \CaptureDelay - Delay to add to the custom once the team controls the zone \Rate - How often to check if the team now controls the zone \StartsEnabled - Should the script start running \EnableCustom - Custom to enable/disable the script, param of non-zero enables \SendCustomEveryTick - If non-zero the capture custom will send every tick the team controls the zone
 CJMG_Utility_Send_Custom_When_Team_Dominates_Zone_IgnoreThe attached object will be ignored from checks by JMG_Utility_Send_Custom_When_Team_Dominates_Zone
 CJMG_Utility_Send_Custom_When_Team_ZoneSends a custom when the specified team is in the zone (only checks smart game objects and neutral is ignored). \Team - Team to check for \ID - ID to send the custom to once the team controls the zone \InCustom - Custom to send once the team is in the zone \InParam - Param to send once the team is in the zone \OutCustom - Custom to send once the team is out of the zone \OutParam - Param to send once the team is out of the zone \Delay - Delay to add to the custom once the team controls the zone \Rate - How often to check if the team now controls the zone \StartsEnabled - Should the script start running \EnableCustom - Custom to enable/disable the script, param of non-zero enables \SendCustomEveryTick - If non-zero the capture custom will send every tick the team controls the zone
 CJMG_Utility_Send_Custom_When_Team_Zone_IgnoreThe attached object will be ignored from checks by JMG_Utility_Send_Custom_When_Team_Zone
 CJMG_Utility_Send_Custom_When_Velocity_Exceeds_AmountSends a custom if the object's speed is below a certain amount when going a direction \MinVelocity[Forward|Backward|Left] - Speed that must be exceeded when going these directions \MinVelocity[Right|Up|Down] - Speed that must be exceeded when going these directions \OnlyTriggerOn - Use this to make it so the script can only trigger if its moving faster horizontal than vertical or vice versia (0 doesn't matter, 1 for horizontal, 2 for vertical) \OnlyTriggerOnMin[Horizontal|Vertical] - Min Speeds required for Only Trigger On to be able to work \OnlyTriggerOnMax[Horizontal|Vertical] - Max Speeds required for Only Trigger On to be able to work \Rate - how long to wait between each speed check \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom, it param is -1 it will send a differnt param for each direction (1 = forward, 2 = backward, 3 = left, 4 = right, 5 = up, 6 = down) \Repeat - 1 to make it trigger again after sending a custom \StartsEnabled - Non-zero makes the script run on create \EnableCustom - Custom to enable or disable the script, send a non-zero param to enable
 CJMG_Utility_Set_Animation_Frame_On_CreationSets the animation of an object to the frame specified on script attach \Animation - Animation to play \Frame - Animation frame to display
 CJMG_Utility_Set_Animation_Frame_To_Match_AmmoMakes the attached object sync its animation frame to the object's clip count
 CJMG_Utility_Set_Bullets_On_Custom_Or_DamageSets the objects bullet count when it is damaged or receives a custom \WeaponName - Name of the weapon to change, if "null" it uses the current weapon on script create \Custom - custom message to trigger on \TriggerOnDamage - Can this script trigger on damage \SetBackpackBullets - bullet count to put in the backpack when damaged or custom received \StartWithNoBullets - If one the object gets set to have no bullets when the script is attached \Repeat - Can it trigger more than once \FullClip - Does the unit automatically have a full clip when the script is triggered
 CJMG_Utility_Set_Collision_GroupLocks the collision mode of an object on create \CollisionGroupID - ID of the collision mode to use
 CJMG_Utility_Set_Innate_Max_Wander_DistanceSets the maximum distance an AI can wander before returning home (the location it was created) \Distance - Max distance to wander to
 CJMG_Utility_Set_Innate_On_CreateAllows you to Enable/Disable an AI's Innate behavior on create \Enable - Should it be enabled
 CJMG_Utility_Set_Model_On_Damage_Percent_3_StatesSwitches the model to different models as the object is damaged (Hint: Use skeleton models to fully support animations being synced across models) \FullShieldModel - Model to display when shield hits 100% \HalfShieldModel - Model to display when shield crosses the 50% mark \NoShieldModel - Model to display when shield hits 0%
 CJMG_Utility_Set_Model_On_Damage_Percent_4_StatesSwitches the model to different models as the object is damaged (Hint: Use skeleton models to fully support animations being synced across models) \FullShieldModel - Model to display when shield hits 100% \TwoThirdsShieldModel - Model to display when shield crosses the 66% mark \ThirdShieldModel - Model to display when shield crosses the 33% mark \NoShieldModel - Model to display when shield hits 0%
 CJMG_Utility_Set_Object_Visibility_For_Player_On_CustomWill change the visibility of an object on custom for the specified player id \Custom - Custom to trigger this script on \PlayerID - What player to make it visible or invisible for \Visible - Should the object be visible or not
 CJMG_Utility_Set_Screen_Color_Fade_ControllerSets the screen opacity and color of all people that join the game, also resets the screen fade for JMG_Utility_Swimming_Zone when exiting the water \Color - color to set the screen (0.0 - 1.0) \Opacity - opacity to set the screen (0.0 - 1.0)
 CJMG_Utility_Set_Screen_Color_Fade_On_CustomSwitches the default screen color and opacity of the map on a custom and updates all players \Custom - custom to trigger on \Color - Color to set (0.0 - 1.0) \Opacity - Opacity to set (0.0 - 1.0) \Transition - how long to fade to the new settings \TriggerOnce- can this script trigger more than once
 CJMG_Utility_Set_Screen_Color_Fade_Reset_Player_CreateUpdates the screen of the attached player when the object is created \Transition - how long to fade to the new settings
 CJMG_Utility_Set_Screen_Color_Fade_Reset_Player_EnterFades the screen back to the values set by JMG_Utility_Set_Screen_Color_Fade_Controller for a specific player \Transition - how long to fade to the new settings \PlayerType - team the player has to be on to trigger the script
 CJMG_Utility_Set_Skin_And_Shield_Type_On_CustomSets the skin type and armor type on a custom \Custom - Custom to trigger setting the armor and skin types \SkinType - Skin Type to switch to \ShieldType - Shield Type to switch to
 CJMG_Utility_Set_Soldier_Damage_AnimationsAllows you to Enable/Disable a soldiers damage animations \Enable - Should it be enabled
 CJMG_Utility_Set_Team_On_CreateSets an object team on attach \PlayerType - Player type to set the object to. \Delay - Amount of time to wait before setting team, default 0
 CJMG_Utility_Set_Team_To_Neutral_When_No_ArmorSets the player type to -2 when no armor, sets player type back to the original player type when armor is full
 CJMG_Utility_Set_Vehicle_Collisions_Ghost_When_UnoccupiedSets the Vehicle's collision to soldier ghost when all players exit (excluding on build) and then sets it back to its original when a player gets in \ Useful on maps that you desire to prevent players from blocking the bots coming out of tunnels
 CJMG_Utility_Silent_Countdown_ControllerControls setup and cleanup for the Silent countdown
 CJMG_Utility_Silent_Countdown_Send_CustomSends a custom when the time on JMG_Utility_Silent_Countdown matches the defined seconds on this script \TimerID - ID of the timer this belongs to \TriggerTime - Time in which to send the custom \ID - ID to send the custom to, if 0 it sends it to the object this script is attached too \Custom - Custom to send \Param - Param to send \Delay - Delay to wait before sending the message
 CJMG_Utility_Silent_Countdown_TimerSends a custom when the time on JMG_Utility_Silent_Countdown matches the defined seconds on this script \TimerID - The ID of the timer \Time - How long in seconds the timer counts down \StartCustom - Custom to start or resume the countdown \PauseCustom - Custom to pause the countdown \CancelCustom - Resets the countdown back to its original time and pauses it
 CJMG_Utility_Simple_MechA simplified script for mech walking animatons, use w3danimsound to provide synced walk sounds \ForwardAnimation - animation to play while going forward \BackwardAnimation - animation to play while going backward \IdleAnimation - animation to play while idle, leave this blank and the animtion will stop on the last frame used \TurnLeftAnimation - animation to play while turning left \TurnRightAnimation - animation to play while turning right \ReleaseDelay - amount of time in 10ths of a second before the animation can chance after a key is released (useful to keep the animaton from skipping)
 CJMG_Utility_Soldier_Transition_On_CustomSoldier well enter the nearest vehicle on custom
 CJMG_Utility_Spawn_With_Last_Selected_Gun_ControlNeeds to be placed on the map to make JMG_Utility_Spawn_With_Last_Selected_Gun_Player work
 CJMG_Utility_Spawn_With_Last_Selected_Gun_IgnoreTells the game that this weapon shouldn't be used with the JMG_Utility_Spawn_With_Last_Selected_Gun system \WeaponPreset - Name of weapon to ignore from the system
 CJMG_Utility_Spawn_With_Last_Selected_Gun_PlayerWhen attached to a player preset, it tracks what weapon the player was holding when they died and tries to select it again when they respawn \GrantWeapon - Grants the weapon they had last with full ammo if they don't have it \GrantDelay - Time to wait before granting the weapon again
 CJMG_Utility_Swimming_InfantryThis script allows a soldier to swim when in a swimming zone. Weapon that is granted should use the Launcher position as
\ Renegade never made use of that animation set. If using my swimming animations make sure there is a plane for infantry \ to stand on 1.466 meters below the water surface. The underwater[playerId] can be accessed from anywhere, allowing you to disable
\ screen fading when underwater from other scripts. \WeaponPreset - Weapon to lock the player to while swimming, make sure its type launcher to make use of my animations \DrownTime - Time it takes before you start taking damage when crouched under water for long periods of time \StarDrownSequence - How long before you start taking damage to start fading the screen red and the heart beat sound \GaspForBreath - This sound is played when you surface from under water after long periods of time \PantingSoundEmitterModel - This 3d object is attached to the player and should be a looped sound effect, it exists while getting close to drowning \HeartBeatSoundEmitterModel - This 3d object is attached to the player and should be a looped sound effect, it exists while catching your breath \DrownDamageRate - Damage applied 10 times a second while drowning \CatchBreathRate - Rate at which a character catches its breath when out of the water, 0.1 would recover 1 second of air every second \WaterDamageAmount - Amount of damage to apply to the character while swimming, is applied 10 tiems a second, default is 0 \WaterDamageWarhead - Warhead to use when in the water, default is None \EnterWaterMessageStringId - ID of the string in strings.tbl to display when a player enters the water, the message only displays once every 10 seconds \WaterEnterMessageColor[R|G|B] - Color of the hud message when entering the water, 0.0-1.0 RGB \WaterDamageDelayTime - Amount of time in tenths of a second before the infantry will start taking damage \WaterDamageDelayTimeRecover - Amount of time that is recovered while out of the water (added 10 times a second) \SwimmingSkin - Skin to use while swimming, blank means ignore \SwimmingArmor - Armor to use while swimming, blank means ignore \SwimmingModel - Model to use while swimming, blank means ignore
 CJMG_Utility_Swimming_Infantry_AdvancedThis script allows a soldier to swim when in a swimming zone. \ If using my swimming animations make sure there is a plane for infantry \ to stand on 1.466 meters below the water surface. The underwater[playerId] can be accessed from anywhere, allowing you to disable
\ screen fading when underwater from other scripts. \WeaponsGroupID - ID to use to look up weapons specified by the weapons group controller \WeaponPreset - Weapon to lock the player to while swimming, make sure its type launcher to make use of my animations, only used if ForceDefinedWeapons is on \ForceDefinedWeapons - If 1 the player won't be able to select weapons that haven't been defined for the weapons group. \DefaultHoldStyle - Default animation set used for weapons that haven't been defined. 0 = A, 1 = A, 2 = C, 3 = D, 4 = E, 5 = F, 6 = A, 7 = A, 8 = B, 9 = A, 10 = J, 11 = K, 12 = L, 13 = M \DefaultSwimSpeed - Default swim speed for weapons that haven't overridden the swim speed. \DrownTime - Time it takes before you start taking damage when crouched under water for long periods of time \StarDrownSequence - How long before you start taking damage to start fading the screen red and the heart beat sound \GaspForBreath - This sound is played when you surface from under water after long periods of time \PantingSoundEmitterModel - This 3d object is attached to the player and should be a looped sound effect, it exists while getting close to drowning \HeartBeatSoundEmitterModel - This 3d object is attached to the player and should be a looped sound effect, it exists while catching your breath \DrownDamageRate - Damage applied 10 times a second while drowning \CatchBreathRate - Rate at which a character catches its breath when out of the water, 0.1 would recover 1 second of air every second \WaterDamageAmount - Amount of damage to apply to the character while swimming, is applied 10 tiems a second, default is 0 \WaterDamageWarhead - Warhead to use when in the water, default is None \WaterDamageDelayTime - Amount of time in tenths of a second before the infantry will start taking damage \WaterDamageDelayTimeRecover - Amount of time that is recovered while out of the water (added 10 times a second) \EnterWaterMessageStringId - ID of the string in strings.tbl to display when a player enters the water, the message only displays once every 10 seconds \WaterEnterMessageColor[R|G|B] - Color of the HUD message when entering the water, 0.0-1.0 RGB \SwimmingSkin - Skin to use while swimming, blank means ignore \SwimmingArmor - Armor to use while swimming, blank means ignore \SwimmingModel - Model to use while swimming, blank means ignore \SwimmingHeightScale - Scale to adjust the infantry with when they enter the water (999.99 disables) \SwimmingWidthScale - Scale to adjust the infantry with when they enter the water (999.99 disables)
 CJMG_Utility_Swimming_Infantry_Advanced_Add_All_Of_StyleAdds all defined weapons of a specific hold style to the JMG_Utility_Swimming_Infantry_Advanced_Controller \WeaponGroupID - Weapon Group to add them to (max of 127) \HoldStyle - Hold style to add the weapons from (C4 = 0, UNUSED = 1, SHOLDER = 2, HIP = 3, LAUNCHER = 4, HANDGUN = 5, BEACON = 6, EMPTY_HANDS = 7, CHEST = 8, HANDS DOWN = 9) \AnimHoldStyle - Animation hold style to use while swimming (0 = A, 1 = A, 2 = C, 3 = D, 4 = E, 5 = F, 6 = A, 7 = A, 8 = B, 9 = A, 10 = J, 11 = K, 12 = L, 13 = M) \MovementSpeed - Movement speed multiplier to use while swimming \Delay - Delay before running the script (if a weapon has already been defined and another script runs trying to add that same weapon it will update the definition of the previously defined)
 CJMG_Utility_Swimming_Infantry_Advanced_Add_WeaponAdds a weapon to JMG_Utility_Swimming_Infantry_Advanced_Controller \WeaponGroupID - Weapon Group to add them to (max of 127) \WeaponName - Name of the weapon definition to add \AnimHoldStyle - Animation hold style to use while swimming (0 = A, 1 = A, 2 = C, 3 = D, 4 = E, 5 = F, 6 = A, 7 = A, 8 = B, 9 = A, 10 = J, 11 = K, 12 = L, 13 = M) \MovementSpeed - Movement speed multiplier to use while swimming \Delay - Delay before running the script (if a weapon has already been defined and another script runs trying to add that same weapon it will update the definition of the previously defined)
 CJMG_Utility_Swimming_Infantry_Advanced_AIThis script allows an AI soldier to swim when in a swimming zone. Attached by JMG_Utility_Swimming_Infantry_Advanced_AI
 CJMG_Utility_Swimming_Infantry_Advanced_ControllerScript must be placed on the map in order to control the advanced swimming scripts
 CJMG_Utility_Swimming_Infantry_AIThis script allows a AI soldier to swim when in a swimming zone. Attached by JMG_Utility_Swimming_Infantry
 CJMG_Utility_Swimming_zDefault_Map_Fog_ValuesUsed to set the default fog values of the map if there is no water but there are soldiers with the swimming script JMG_Utility_Swimming_Zone
 CJMG_Utility_Swimming_ZoneUsed to trigger the simple swimming animation system this is to be used along side JMG_Utility_Swimming_Infantry, \ any soldiers that enter the script zone without JMG_Utility_Swimming_Infantry attached will die. \ JMG_Utility_Swimming_Infantry_AI is now automatically attached to AI infantry 7.1 \WaterColor[R|G|B] - Color to fade the screen while in this swimming zone \WaterOpacity - How transparent the screen is while in this zone \WaterMinViewDistance - The min distance that the fog shows up when underwater \WaterMaxViewDistance - The max distance of the fog when underwater \SwimmingSpeedMultiplier - Speed multiplier when in water
 CJMG_Utility_Switch_Weapon_To_Empty_Hands_Until_CustomSelects empty hands on create, the weapon it was holding before script attach is counted as the primary weapon, \ once a custom is received it switches back to the primary weapon. \Custom - Custom to trigger switching back to the primary weapon on
 CJMG_Utility_Switch_Weapon_While_Primary_EmptyMakes a unit switch its gun to a secondary gun whenever the ammo count in its primary clip runs out \PrimaryWeapon - Weapon that the game watches to see if its clip is empty \SecondaryWeapon - Weapon that is switched to while the primary weapon is "reloading" \ReloadTime - How long it takes to reload the primary weapon \PrimaryToSecondaryTime - Time it takes to play the animation to switch to the secondary weapon \SecondaryToPrimaryTime - Time it takes to play the animation to switch to the primary weapon \IdlePrimaryAnim - Animation to play while using the primary weapon \IdleSecondaryAnim - Animation to play while using the secondary weapon \PrimaryToSecondaryAnim - Animation to play while switching to the secondary weapon \SecondaryToPrimaryAnim - Animation to play while switching to the primary weapon \PrimaryToSecondarySound - Sound to play while switching to the secondary weapon \SecondaryToPrimarySound - Sound to play while switching to the primary weapon
 CJMG_Utility_Sync_Animation_On_JoinSyncs the current animation with any players that join, this is useful if you see objects slowly slide to match their current frame
 CJMG_Utility_Sync_Fog_ControllerSets the level's fog on create, after that point its used to sync up any player that joins with the current fog settings \Min - Min range of the fog \Max - Max range of the fog
 CJMG_Utility_Sync_Fog_Custom_UpdateUpdates the fog controller's fog settings \Custom - Custom to watch for \Min - Min range of the fog \Max - Max range of the fog \Transition - how long it takes the fog to change
 CJMG_Utility_Sync_HP_With_ObjectSyncs the health of an object with the ID of the object specified, object is destroyed if id object doesn't exist \ID - Id of the object to sync with \Rate - How often to sync the HP
 CJMG_Utility_Sync_Object_PeriodicallySyncs object positions between the client and the server \Sync_Rate - How often does this object send out an update across the network
 CJMG_Utility_Sync_System_ControllerControls all objects that have the script JMG_Utility_Sync_System_Object \Sync_Rate - Speed at which to sync up all the objects in the list when a player joins
 CJMG_Utility_Sync_System_ObjectAn object that will have its position synced by JMG_Utility_Sync_System_Controller
 CJMG_Utility_Teleport_If_Not_Moving_To_LocationTeleports a unit to a different location if it hasn't moved for X seconds \Seconds - Time before it must be teleported \Location - Spot to teleport to
 CJMG_Utility_Teleport_On_PickupTeleports a player to a location when they pickup a powerup, will move the player within the range defined if the spot is blocked \ObjectID - Id to teleport to \Position - Position to teleport to if ID isn't supplied \MaxDistance - Max range allowed to move the object if the spot is blocked
 CJMG_Utility_Timer_Change_Character_Models_On_HPChanges the model of any soldier that enters the zone \Time - delay to send the custom \NewModel - W3D Model to change it to \PlayerType - required player type of the enterer \MaxHP - Min Hitpoints required to match to trigger for this character \MinHP - Max Hitpoints required to match to trigger for this character \Repeat - 1 to make it trigger again \StartsEnabled - Should the script be running from the get go? \EnableCustom - custom that should enable/disable the script, non 0 param = enable
 CJMG_Utility_Timer_Change_Character_Models_On_TeamChanges the model of any soldier that enters the zone \Time - delay to send the custom \NewModel - W3D Model to change it to \PlayerType - required player type of the enterer \Repeat - 1 to make it trigger again \StartsEnabled - Should the script be running from the get go? \EnableCustom - custom that should enable/disable the script, non 0 param = enable
 CJMG_Utility_Timer_CustomBasically exactly the same as JFW_Timer_Custom except an id of 0 sends to itself \Time - delay to send the custom \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Repeat - 1 to make it trigger again \EnableCustom - If non-zero the timer won't start until it receives a custom with a param of non 0, if it receives a custom with a param of 0 it will be disabled again
 CJMG_Utility_Timer_Custom_RandomBasically exactly the same as JMG_Utility_Timer_Custom but with a random delay \Time - delay to send the custom \Random - Amount to add or subtract on each run of the timer from the base time \ID - Id of the object to send the custom to, 0 sends to itself \Message - Custom to send \Param - parameter to send with the custom \Repeat - 1 to make it trigger again
 CJMG_Utility_Timer_Damage_And_TeleportDamages the attached object and teleports it after a timed delay \Delay - Amount of time in seconds to wait \TeleportToObjectID - ID of the object to teleport to \Location - Location to teleport to if no object ID was supplied \DamageAmount - Amount of damage to apply \DamageWarhead - Warhead to use to damage the object \DamageSelf - Should the applied damage count for the object the script is attached to
 CJMG_Utility_Timer_Death_If_Not_Damaged_Over_PeroidKills an object after a time period of not being damaged, damage resets the countdown \Time - How long in seconds before death \Damage - How much damage \Warhead - Warhead to use
 CJMG_Utility_Timer_Trigger_Enemy_SeenForces the attached object to scan for enemies more often (server's default rate has a random of 0.5-1.0 seconds added to the last scan) \Scan_Rate - This is how often to scan for enemies
 CJMG_Utility_Toggle_DoorJust like JFW_Toggle_Door except you can't toggle during transition, and the switch object can also be animated \DoorID - ID of the simple object that is the 'door' \Animation - Animation for the door (Hint: Dump a comma delimited string in here to populate all the parameters besides DoorID) \SwitchAnimation - Animation for the switch object \LastFrame - Last frame for the door to goto. \SwitchLastFrame - Last frame to use for the switch \Key - Key needed to open door, 0 for no key \PlayerType - Playertype needed to open door, 2 for anyone \DisableSwitchWhenNoShield - Whether or not the switch can be disabled by being damaged to the point of having 0 shield, can be reenabled by repairing back to full health again \SwitchDisabledModel - Model the switch switches to when destroyed (uses first frame of model's animation) \DoorSound - Sound the door makes when opening/closing, null for no sound \SwitchSound - Sound the switch makes when poked, null for no sound \SwitchBlockedSound - Sound the switch makes when poked and cannot accept command, null for no sound \SwitchDamagedPokeSound - Sound the switch makes when poked while damaged, null for no sound \WrongKeySound - Sound that is played if the person pressing the switch doesn't have the key, null means no sound \WrongPlayerTypeSound - Sound that is played if the palyer type isn't a match for the switch \TextColor[Red|Green|Blue] - Color of the messages that will be displayed when toggling the switch, values are from 0-1.0. \GotoLastFrameMessage - Message displayed when the door goes to the last frame, null for no message \GotoFirstFrameMessage - Message displayed when door goes to the first frame, null for no message \ActionBlockedMessage - Message displayed when door can't be toggled, null for no message \NoDoorMessage - Text message that is displayed if the door id cannot be found (useful if the door can be destroyed) \SwitchDamagedPokeMessage - Message that is displayed if the switch is damaged and cannot operate \WrongKeyMessage - Message that is displayed if the person pressing the switch doesn't have the key, null means no message \WrongPlayerTypeMessage - Message that is displayed if the palyer type isn't a match for the switch \DoorControlCustom - Send this message to the switch to open or close the door, switch must not be damaged, param of 1 goes to last frame 0 to first \SendCustomId - Sends a message to this id when user pokes the switch \SendCustom - Sends this message to the above id, param 0 = close, 1 = open, 2 = blocked, 3 = wrong player type, 4 = wrong key, 5 = damaged, 6 = door destroyed
 CJMG_Utility_Toggle_Flight_On_DelayToggles flight after delay completes \Delay - Time to wait before toggling flight
 CJMG_Utility_Turret_SpawnBasic turret attach script, turrets match team of vehicle attached to, turrets are destroyed by destroy event \Turret_Preset - Preset of the turret \Bone_Name - Bone to hook the turret to
 CJMG_Utility_Turret_Spawn_Global_FlagAttaches turret as long as the global flag is true otherwise is ignored \Turret_Preset - Preset of the turret \Bone_Name - Bone to hook the turret to
 CJMG_Utility_Turret_Spawn_Global_Flag_ControllerControls if JMG_Utility_Turret_Spawn_Global_Flag can attach turrets \Custom - Custom to flip if attaching is allowed, if param is 0 then its false
 CJMG_Utility_Unstick_Infantry_If_StuckUse this script to get AI back out of the ground \Distance - Max distance to try to move the infantry if stuck in the ground \Rate - How often should it check if the infantry is stuck in the ground
 CJMG_Utility_Vehicle_Enter_Send_Custom_From_EntererSends a custom to an object on entry from the enterer \PlayerType - Player type the zone triggers for \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Apply_Damage_On_EnterUsed to apply damage to an object id or the object that entered the zone, damager is the script zone \ID - ID of the object to apply damage to, if ID is 0 damage will be applied to the object entering the zone \DamageAmount - Amount of damage to apply to the object \Warhead - Warhead to use to damage the object \DamageOccupants - If the object is a vehicle the the occupants of the vehicle will be damaged, useful for making a deathzone that kills everything that enters it. \PlayerType - Player type required to trigger the script \OnlyOnce - Does the script fire one time only
 CJMG_Utility_Zone_Change_Character_ModelChanges the model of any soldier that enters the zone \NewModel - W3D Model to change it to \PlayerType - required player type of the enterer
 CJMG_Utility_Zone_Change_Character_On_Preset_EnterChanges the soldier's preset on enter if the original preset matches \EntererPreset - required preset of the soldier that enters \PlayerType - required player type of the enterer \Preset - name of the preset to change to
 CJMG_Utility_Zone_Create_Object_While_OccupiedCreates an object while at least object is in a zone \Preset - Preset to create \Location - Spot to create the object \Facing - Direction the object should face \EnableCustom - Custom that enables the script, a param of non-zero enables, if the custom is 0 then the script is always enabled. \RecreateOnDeath - Can the script zone trigger re-creation if the object was killed
 CJMG_Utility_Zone_Create_Object_While_Occupied_AttachedUsed by JMG_Utility_Zone_Create_Object_While_Occupied, ignore otherwise
 CJMG_Utility_Zone_Create_Object_While_Occupied_Object_AttachedUsed by JMG_Utility_Zone_Create_Object_While_Occupied, ignore otherwise
 CJMG_Utility_Zone_Damage_All_In_ID_Range_On_EnterUsed to damage all objects in an id range on enter \StartID - ID to start at \EndID - ID to stop at \PlayerType - Player type the zone triggers for \Damage - Amount of damage to apply \Warhead - Warhead to use \Damager - Object to do the damage (0 = NULL, 1 = The Enter, 2 = The Zone) \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Enable_Spawners_In_RangeUsed to enable or disable all spawners within an ID range on zone enter \StartID - ID to start at \EndID - ID to stop at \PlayerType - Player type the zone triggers for \Enable - Enable or disable all the spawners in the range \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Screen_FadeFades the screen of a specific player \Color - color to fade to (if Red (X) is set to less than 0 color won't be set)) \Opacity - opacity to fade to (if opacity is less than 0 it won't be set) \Transition - how long to fade to the new settings \PlayerType - team the player has to be on to trigger the script
 CJMG_Utility_Zone_Send_Custom_EnterSends a custom to an object on entry \PlayerType - Player type the zone triggers for \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Send_Custom_Enter_From_EntererSends a custom to an object on entry from the enterer \PlayerType - Player type the zone triggers for \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Send_Custom_Enter_PresetSends a custom to an object on entry if the preset matches \Preset - Preset required \PlayerType - Player type the zone triggers for \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Send_Custom_ExitSends a custom to an object on exit \PlayerType - Player type the zone triggers for \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Send_Custom_If_Has_ScriptSends a custom if the object entering the zone has a weapon \PlayerType - Player type the zone triggers for \ScriptName - Name of the script needed to trigger the zone \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Send_Custom_If_Has_WeaponSends a custom if the object entering the zone has a weapon \PlayerType - Player type the zone triggers for \WeaponName - Name of the weapon needed to trigger the zone \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time the zone is entered \RemoveWeapon - Removes the weapon from the player if true
 CJMG_Utility_Zone_Send_Custom_If_Has_Weapon_AmmoSends a custom if the object entering the zone has a weapon, one custom is sent for each ammo count the weapon has \PlayerType - Player type the zone triggers for \WeaponName - Name of the weapon needed to trigger the zone \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send, -1 sends the object ID \Delay - Delay to add before sending custom \RemoveWeapon - Should the weapon be removed when entering the zone \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Send_Custom_No_WeaponSends a custom if the object entering the zone does not have a weapon \PlayerType - Player type the zone triggers for \WeaponName - Name of the weapon you don't want \ID - ID to send the custom to, 0 sends to self, -1 sends to enter \Custom - Custom message to send \Param - Param to send \Delay - Delay to add before sending custom \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Send_Custom_On_Player_Occupation_ChangeSends a custom when the zone becomes occupied by a player and then sends a custom again when its vacant \OccupiedID - ID of the object to send to, -1 sends to the player that triggered, 0 sends to itself \OccupiedCustom - Custom to send when occupied \OccupiedParam - Param to send when occupied \OccupiedDelay - Delay for the occupied custom \VacantID - ID of the object to send to, -1 sends to the player that triggered, 0 sends to itself \VacantCustom - Custom to send when vacant \VacantParam - Param to send when vacant \VacantDelay - Delay for the vacant custom
 CJMG_Utility_Zone_Send_Custom_On_Player_Occupation_Change_AttachedAttached by JMG_Utility_Zone_Send_Custom_On_Player_Occupation_Change
 CJMG_Utility_Zone_Send_Custom_To_All_With_ScriptSends a custom to all objects with the specified script attached, sender is the enter \PlayerType - Player type the zone triggers for \AttachedScript - Name of the script that must be attached \Custom - Custom to send \Param - Parameter to send \Delay - Delay to wait before sending the customs \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Set_AnimationSets the animation of an object when the script zone is entered \ObjectID - ID of the object to animated \Animation - Animation to play \Looping - Loop the animation \StartFrame - First frame to play \EndFrame - Last frame to play \Blended - Should the animation be blended \TriggerOnce - if 1 the script will be destroyed after being triggered once
 CJMG_Utility_Zone_Set_Player_TeamChanges the player's team the value \RequiredPlayerTeam - Player team that the player has to be in order to be changed \SetPlayerTeam - Player team to change the player to
 CJMG_Utility_Zone_Set_Player_Team2Changes the player's team to the value specified, then kills the player, finally subtracting 1 from the death count \RequiredPlayerTeam - Player team that the player has to be in order to be changed \SetPlayerTeam - Player team to change the player to
 CJMG_Utility_Zone_Set_Player_TypeChanges the player type of the player's game object (not the player's team) \RequiredPlayerType - Player type that the player must be in order to be changed \SetPlayerType - Player type to change the player to once they enter the zone
 CJMG_Utility_Zone_Set_SpawnerUsed to enable or disable a spawner, allows you to only have it trigger the script once \SpawnerID - ID of the spawner to enable/disable \PlayerType - Player type the zone triggers for \Enable - Enable or disable all the spawners in the range \TriggerOnce - Allows the script only to trigger the first time the zone is entered
 CJMG_Utility_Zone_Teleport_To_Non_Visible_Wander_PointTeleports the object that enters the zone to a wander point that isn't visible to players \WanderingAIGroupID - Group of points to teleport to \SafeTeleportDistance - How far can infantry be moved if the spot is blocked \ChangeGroupIDCustom - Changes the wander point group id to a new one, uses the parameter on the custom sent in \PlayerType - Playertype the zone triggers for \RetryOnFailure - If this is true a script will be attached that will continue to try to teleport the player until successful (Warning: Turning this on hides error messages) \AiOnly - Only trigger for AI
 CJMG_Utility_Zone_Teleport_To_Non_Visible_Wander_Point_AttachUsed by JMG_Utility_Zone_Teleport_To_Random_Wander_Point
 CJMG_Utility_Zone_Teleport_To_Random_Wander_PointTeleports the object that enters the zone to a random wander point \WanderingAIGroupID - Group of points to teleport to \SafeTeleportDistance - How far can infantry be moved if the spot is blocked \ChangeGroupIDCustom - Changes the wander point group id to a new one, uses the parameter on the custom sent in \PlayerType - Playertype the zone triggers for \RetryOnFailure - If this is true a script will be attached that will continue to try to teleport the player until successful (Warning: Turning this on hides error messages) \AiOnly - Only trigger for AI
 CJMG_Utility_Zone_Teleport_To_Random_Wander_Point_AttachUsed by JMG_Utility_Zone_Teleport_To_Random_Wander_Point
 CJMG_Utility_Zone_Teleport_To_Random_WP_BossTeleports the object that enters the zone to a random wander point furthest from a boss object \WanderingAIGroupID - Group of points to teleport to \SafeTeleportDistance - How far can infantry be moved if the spot is blocked \ChangeGroupIDCustom - Changes the wander point group id to a new one, uses the parameter on the custom sent in \PlayerType - Playertype the zone triggers for \RetryOnFailure - If this is true a script will be attached that will continue to try to teleport the player until successful (Warning: Turning this on hides error messages) \AiOnly - Only trigger for AI \FaceBoss - Should the enter face the boss object after passing through the teleport?
 CJMG_Utility_Zone_Teleport_To_Random_WP_Boss_ObjectMarks this object as a boss object for the JMG_Utility_Zone_Teleport_To_Random_WP_Boss script, last object made is the one tracked
 CJMG_Wandering_AI_Wander_Point_Follow_Weapon_Or_ObjMakes a wander point follow an object on the map \GroupId - ID of the group the point belongs to \PresetName - Preset to follow by object \WeaponName - Object with weapon to follow
 CLoopedAnimationControllerController for looped animations using a subset of frames
 CMS_AI_BehaviourExtended AI Behaviour
 CMS_AI_Bomb_SpecialistAI Bomb Specialist, helps AI use C4 weapons by faking the placement
 CMS_AI_Bomb_Specialist_ZoneAI Bomb Specialist C4 fake placement trigger zone
 CMS_AI_BuildingAI Building behaviour controller
 CMS_AI_Global_Controller_HelperHelper for MS_AI_Global_Controller
 CMS_AI_Marker_Bomber_AircraftAI Bomber Aircraft marker
 CMS_AI_Marker_DeployableAI Deployable marker
 CMS_AI_Marker_No_JumpAI No Jump marker
 CMS_AI_Marker_Refiller_VehicleAI Refiller Vehicle marker
 CMS_AI_Marker_Transport_Vehicle_OverrideAI Transport vehicle override marker
 CMS_AI_Marker_Vehicle_Repair_ZoneAI Vehicle Repair Zone marker
 CMS_AI_Marker_Vehicle_Search_IgnoreAI Vehicle ignore marker
 CMS_AI_Pathfind_HelperAI Pathfind Helper
 CMS_AI_Player_ControllerAI player controller
 CMS_AI_Player_Controller_Spawned_ObjectAI player controller's spawned object
 CMS_AI_Player_Count_ControllerAI player count controller
 CMS_AI_PreferencesAI Preferences
 CMS_AI_RefineryAI Refinery money distributor
 CMS_AI_Replace_WeaponReplace weapon when the unit is AI controlled
 CMS_AI_SpectatorAI spectator, able to spectate bots
 CMS_AI_Team_ControllerAI team controller
 CMS_Custom_Send_Custom_SwitchSend custom when receive custom conditionally
 CMS_Custom_Set_Max_HealthSet max health on custom
 CMS_Custom_Set_Max_ShieldSet max shield on custom
 CMS_Custom_Toggle_SpawnersGrant credits to an entire team when custom is received
 CMS_Healed_Send_CustomSend custom when fully healed
 CMS_Health_Send_CustomSend custom based on health
 CMS_Powerup_Send_Custom_TeamSend custom when powerup is collected by a member of set team
 CMS_Switch_Skin_And_Shield_TimerParadrop script
 CMS_Vehicle_Death_Kill_PassengersKill passengers on vehicle death
 CMultiKeyHookScriptImpClassScript base class with support for multiple key hooks
 CObserverImpClassGameObject Observer Base Class
 CRA_DriverDeathDriver Death Script
 CUP_Add_Chat_History_Self_On_CustomAdd Chat History to Self On Custom
 CUP_Add_Chat_History_Sender_On_CustomAdd Chat History to Sender On Custom
 CUP_AttachScript_IntervalAttach Script to Target with Interval
 CUP_AttachScript_Interval_SelfAttach Script to Itself with Interval
 CUP_Change_CharacterChange Character
 CUP_Change_Vehicle_WeaponChange Vehicle Weapon
 CUP_Character_Purchase_TerminalInfantry PT
 CUP_Chinook_Reinforcements_ParadropParadrop
 CUP_Disable_Weapon_For_DriverDisable Weapon for Driver
 CUP_FlyMode_DisableDisable Fly Mode
 CUP_FlyMode_EnableEnable Fly Mode
 CUP_GameOver_When_DeathGame Over on Death
 CUP_Grant_Character_Zone_EnterChange Character on Zone Enter
 CUP_Grant_Character_Zone_ExitChange Character on Zone Exit
 CUP_Grant_Credits_Self_On_CustomGrant Credits to Self On Custom
 CUP_Grant_Credits_Sender_On_CustomGrant Credits to Sender On Custom
 CUP_Grant_Credits_Team_On_CustomGrant Credits to Team On Custom
 CUP_Grant_WeaponGrant Weapon
 CUP_Grant_Weapon_Custom_Then_DetachGrant Weapon and Detach on Custom Event
 CUP_Grant_Weapon_Zone_EnterGrant Weapon on Zone Enter
 CUP_Grant_Weapon_Zone_ExitGrant Weapon on Zone Exit
 CUP_Gravity_ZoneGravity Zone
 CUP_HUD_Message_Zone_EnterHUD Message on Zone Enter
 CUP_HUD_Message_Zone_ExitHUD Message on Zone Exit
 CUP_Ion_Explosion_When_DeathIon Explosion on Death
 CUP_Master_Control_TerminalMaster Control Terminal
 CUP_MCT_BuildingMCT Controlled Building
 CUP_No_RefillNo Refill
 CUP_No_Targeting_ZoneNo Targeting Zone
 CUP_Object_Follower_AIObject Follower
 CUP_Print_Console_Self_On_CustomPrint Console of Self On Custom
 CUP_Print_Console_Sender_On_CustomPrint Console of Sender On Custom
 CUP_Private_Color_Message_On_PokePrivate Color Message on Poke
 CUP_Refinery_ObjectRefinery
 CUP_Remove_Bot_TagRemove Bot Tag
 CUP_Seize_All_Weapons_EnterSeize All Weapons on Zone Enter
 CUP_Seize_All_Weapons_ExitSeize All Weapons on Zone Exit
 CUP_Seize_Weapon_EnterSeize Weapon on Zone Enter
 CUP_Seize_Weapon_ExitSeize Weapon on Zone Exit
 CUP_Select_WeaponSelect Weapon
 CUP_Select_Weapon_On_Zone_EnterSelect Weapon on Zone Enter
 CUP_Select_Weapon_On_Zone_ExitSelect Weapon on Zone Exit
 CUP_Send_Message_Self_On_CustomSend Message to Self On Custom
 CUP_Send_Message_Sender_On_CustomSend Message to Sender On Custom
 CUP_Set_Bot_TagSet Bot Tag
 CUP_Set_Bot_Tag_MultiLineSet Bot Tag Multiple Lines
 CUP_Set_Team_When_ExitSet Team on Vehicle Exit
 CUP_Sound_Controller_2D2D Sound Controller
 CUP_Sound_Controller_3D3D Sound Controller
 CUP_Spawn_And_Destroy_When_Fully_RepairedSpawn Object and Destroy Itself When Fully Repaired
 CUP_Spawn_When_DeathSpawn Object on Death
 CUP_SpectateToggle Spectate Mode
 CUP_Spectate_Zone_EnterToggle Spectate Mode on Zone Enter
 CUP_Spectate_Zone_ExitToggle Spectate Mode on Zone Exit
 CUP_Steal_Credits_On_CustomSteal Credits On Custom
 CUP_Stop_SoundStop Sound
 CUP_Stop_Vehicle_EngineStop Vehicle Engine
 CUP_TeleportTeleport
 CUP_Teleport_Killer_ImmunityImmunity for Teleport Killer on Death
 CUP_Teleport_Killer_Immunity_ZoneTeleport on Kill Immunity Zone
 CUP_Teleport_Killer_On_DeathTeleport Killer on Death
 CUP_Teleport_On_Zone_KillTeleport on Kill inside Zone
 CUP_Unkillable_Until_CustomInvincible Until Custom Event
 CUP_Vehicle_Purchase_TerminalVehicle PT