1337GameDev / Ut99Mods

A collection of my hand-made mods for one of my my favorite games - Unreal Tournament '99!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Game Version Stars License Version

Ut99 Logo Ut99Mods Ut99 Logo

A collection of my hand-made mods for one of my my favorite games - Unreal Tournament '99!

Useage 🎮

To merely use the pre-compiled packages, navigate to Releases and download the latest zip and extract it over the top of your UT99 directory. If you're asked to merge any folders, answer yes.

⚠️ This has been tested / compiled on v469c GOTY of UT99, but LIKELY would work on prior versions just fine (such as the latest official version of v436).

NOTE: These mods require ChaosUT and Relics to work properly. These are included with the GOTY version of the game. If you have a different version, please download and install these. These can be found here (ChaosUT) and here (Relics - Epic Bonus Pack #1). These are also included in the Dependencies folder for convenience.

Then load up the game, and look at the relevant test map, as well as the included mutators. The mutators should appear in the normal mutator list and be available to play with, as you would any other mutator.

To use them in your own custom maps, they need to be in EditPackages or loaded manually in the editor (or embedded into the map using MyLevel).

To host a server with these, don't forget to add them to ServerPackages otherwise there will be desync / players will fail to join / be kicked from the game randomly (or the server will just crash).

At the bottom of this README, are sections for various objects, and extra information on them / their usage.

Enjoy and frag on!

Compile Setup 🔧

To compile, navigate to the ut99 directory with UCC.exe and run ucc make.

Alternatively

You can set up "doskey" to have macro commands in CMD. Modify macros.doskey to point to your ut99 directories.

Copy macros.doskey file to a location on C:

Run this:

reg add "HKCU\Software\Microsoft\Command Processor" /v Autorun /d "doskey /macrofile=\"C:\[doskey file location]\macros.doskey\"" /f

This will force the doskey script to run on every instance of cmd.

Verify in CMD using:

reg query "HKCU\Software\Microsoft\Command Processor" /v Autorun

Then

Add the relevant packages to your UnrealTournament.ini in the Ut99/System folder.

Look for the [Editor.EditorEngine] section, and the EditPackages entries.

Add the following to the end of them (order matters):

EditPackages=LGDUtilities
EditPackages=HaloAnnouncer
EditPackages=HeadHunter
EditPackages=Gibber
EditPackages=ItemSpawnerWeapon
EditPackages=C4
EditPackages=Juggernaut
EditPackages=EnergySword
EditPackages=Infection
EditPackages=GuidedEnergyLance
EditPackages=DeveloperMutator
EditPackages=KillConfirmed

Extra Documentation 📄

Weapons
C4 (Weapon)

A placeable/throwable explosive weapon with a digital timer that can be changed via secondary fire.

Inventory group: 0 (same as BotPack.Translocator)

Usage
  1. Primary Fire
  • Does different things based on if you're close to what is being aimed at
  • If CLOSE to a wall / actor (with collider), then you can place the C4 (instead of throwing)
  • There is a "ghost" of the C4 of where it'll be placed
  • If FAR from a target, the C4 will be thrown and attach to a surface / actor it collides with
  • After placing / landing from a throw, it'll start counting down from the selected time and then explode
  1. Secondary Fire
  • Increments the timer by C4Weapon.TimerIncrementAmount (defaults to 10 seconds)
  • The timer value rolls over once C4Weapon.MaxTimerSeconds is exceeded
Special Interactions
  1. Damage type names defined in C4Proj.DamageTypesToDisarm[] will disarm the C4 (timer turns off and C4 won't explode)
  • Defaults damage type names: impact, claw, cut, SpecialDamage, slashed, Decapitated, Corroded, Burned, and shredded
  1. C4 will attach to Pawns (but the explosion doesn't follow, so a Pawn can avoid damage if they are moving fast enough)
  2. Explosions, bullets, and other damage inducers will detonate the C4.
  3. The C4 will blink and make noises during countdown
  4. Bots can detect the C4 via a C4Fear if they get close enough
Mutators
  1. C4GiveWeaponMutator
  • Gives each spawning PLAYER (Bots won't get one) a C4 to spawn with (sorry, creating new AI behaviors for this weapon is very complicated and could have taken a very long time to test and tweak)
Extra Details
  1. Created using MilkShape3D with a basic model and different groups for the timer components
  • Timer has a different model group (and texture) for each digit and the ":" separator.
  • Code will update the timer, and then modify each model group's texture for each digit out of the 0-9 digit textures (or a texture the same color as the timer background)
  • Considered having a similar rendered texture to the UT_Eightball ammo counter (via UT_Eightball.RenderOverlays()), but that can ONLY be instanced ONCE per camera (and multiple C4 instances would all have the same timer value displayed)
The Gibber (Weapon)

A weapon that is based around the PulseGun, but instead shoots gibs in a machine gun style or a shotgun shot. Shooting hurts the wielder (if that feature is enabled), and collecting your own gibs will heal you a fraction of the health lost.

Inventory group: 5 (replaces BotPack.PulseGun)

Usage
  1. Primary Fire
  • Fires a random gib as a projectile, and possibly hurts the wielder
  • The wielder is hurt based on Gibber.DoesFiringHurtOwner variable
  • The wielder loses health (if Gibber.DoesFiringHurtOwner is TRUE) according Gibber.PrimaryFireHealthCost's value (defaults to 2)
  1. Secondary Fire
  • Requires the user to HOLD the alt-fire button, for a number of seconds defined by Gibber.AltFireTriggerHoldTime
  • After holding, the firing mode is "charged"
  • When the wielder releases the alt-fire button a shotgun blast of 6 gibs are shot
  • The wielder loses health (if Gibber.DoesFiringHurtOwner is TRUE) according Gibber.AltFireHealthCost's value (defaults to 12)
  • There is then a delay of a number of seconds (defined buy Gibber.AltFireDelay), before the alt-fire can be used (to prevent the weapon from being over-powered and spammed)
Healing
  1. Collecting gibs will heal players (as defined by the Gibber.BaseGibDamage and Gibber.BaseGibHealMultiplier) (defaults to 10 and 0.1 respectively -- 10 damage and 10% of the gib damage as health returned)
  2. Gib damage can vary if it's a boss, big or small gib (and damage is scaled by Gibber.BossGibDamageMultiplier and Gibber.SmallGibDamageMultiplier -- with defaults of 1.5 and 0.8 respectively -- and increase of 50% and reduction of 20% from base damage)
  3. Gibs from an alt-fire shotgun blast deal extra damage based on being close enough to the target, defined by Gibber.ExtraDamageMultiplier and Gibber.DistanceThresholdToAddExtraDamage (with defaults of 10 and 300 -- if enemy is within 300 unreal units they take 10x damage from these gibs)
  4. The extra damage is NOT used in the calculation for how much to heal (the idea was to base it off of the damage the wielder took when firing)
  5. UDamage multiplier does NOT affect health lost or healing gained
Special Interactions
  1. You can still pick up the gibs to heal yourself, even if you're not allowed to pickup weapons or other pickups
  2. The gibs handle damage the same as the root gibs, and can exist in danger areas -- to lure players to try and heal
Mutators
  1. GibberWeaponReplaceMutator
  • Replaces the normal BotPack.PulseGun on the map with the Gibber.
  • Also removes the ammo BotpPack.PAmmo from the map
  1. GibberArena
  • An ARENA mutator that has every player/bot wield The Gibber
Extra Details
  1. The gib projectiles are created from the gibs defined in BotPack -- original gib classes are subclasses of BotPack.UTPlayerChunks
  2. After subclassing, the default properties were overridden: * RemoteRole=ROLE_SimulatedProxy * LifeSpan=240.000000 * bCollideActors=True
  3. Then the method Landed() was changed to allowed collisions with other actors (as original gibs are essentially decoration-only)
  4. The usage of LGDUtilities.PawnHelper.PredictDamageToPawn is used to predict if the damage dealt to a pawn (taking into account armor, reductions, multipliers, etc) would exceed it's health, to determine if the target is GIBBED
  5. The weapon has a custom skin that is based off the base BotPack.PulseGun skin, but blood splatter added
Guided Energy Lance (Weapon)

An heavy energy-based weapon that shoot projectiles that can be fired in "dumb-fire" or "guided" mode, that can bounce and explode on collision with targets.

Inventory group: 9 (replaces BotPack.UT_Eightball)

Usage
  1. Primary Fire
  • When this weapon is in a normal firing mode, it shoots energy balls that bounce and explode after hitting an Actor with a collider or a wall (after bouncing a number of times defined by GuidedEnergyLance.MaxWallHits -- which defaults to 1)
  • When this weapon is in guiding mode, it shoots energy balls that follow the cursor (max lifetime of 20 seconds)
  • Not instant for the change in projectile direction, but enough to use further away from the target
  1. Secondary Fire
  • When held for a number of seconds (defined by GuidedEnergyLance.AltRefireRate -- which defaults to 0.5 seconds) the weapon is set to "guiding mode"
  • The player view is slightly zoomed in to help with the guiding process
  • Also used to coerce the usage of this weapon to be for more long-range encounters
  • AI / Bots don't use the alt-fire mode (sorry, creating new AI behaviors for this weapon is very complicated and could have taken a very long time to test and tweak) -- they use similar firing attitudes as the BotPack.UT_FlakCannon alt-fire mode
Mutators
  1. GuidedEnergyLanceWeaponReplaceMutator
  • Replaces the normal BotPack.UT_Eightball on the map with this weapon.
Extra Details
  1. The weapon was in spired by Halo Infinite's "Cindershot" hardlight grenade-launcher-type weapon
  2. The ammo counter rendering color was changed from RED to RGB(199,36,177), a PURPLE
  3. The projectile damage type is jolted
  4. To achieve the "zoom" effect, the player DesiredFOV variable is set to 50.
ItemSpawnerWeapon (Weapon)

A utility weapon used for testing or fun / random purposes to spawn other Actors.

Inventory group: 0

Usage
  1. Primary Fire
  • Spawns the selected object at the given position of the "placement ghost"
  • Uses DEFAULT values for spawned actors (most of the time isn't a problem, but some Actors -- such as BotPack.Bot expect setup such as team / skins -- but they still work fine, just look odd)
  1. Secondary Fire
  • Selects the next Actor from the ItemSpawnerWeapon.ItemsToSpawn array
  • If the object fails to spawn, a message is displayed (Actors with defaults for bStatic and bNoDelete as TRUE cannot be spawned)
  • The array can be populated via CONFIG entries in it's generated INI
  • A few defaults exist, as examples:
    • LGDUtilities.PracticeBot
    • Botpack.TMale2Bot
    • Botpack.TFemale1Bot
    • UnrealShare.Chest
    • UnrealShare.Candle
    • Botpack.Armor2
    • Botpack.UT_FlakCannon
    • UnrealShare.TorchFlame
    • Class'ChaosUT.ch_WarHeadLauncher
    • UnrealShare.DispersionPistol
Mutators
  1. ItemSpawnerWeaponGiveMutator
  • Gives PLAYERS this weapon (be careful, as this weapon is an admin-weapon meant for testing)
  • AI / BotPack.Bot cannot be given this weapon or pick it up (if they are given this weapon, it'll destroy itself)
WeaponStealingShockRifle (Weapon)

A special shock rifle that shoots energy orbs (modeled after the alt-fire of the shock rifle), or a primary fire beam that STEALS the targets currently selected weapon.

Inventory group: 0

Usage
  1. Primary Fire
  • Fires a shock beam that when hitting a target, will steal the current hit target's weapon.
  1. Secondary Fire
  • Fires a ricochet energy ball, similar to the normal fire of the shock rifle, but this will bounce off walls a number of times defined by RicochetShockProj.MaxWallHits (which defaults to 2)
Mutators
  1. ItemSpawnerWeaponGiveMutator
  • Replaces the normal BotPack.ShockRifle on the map with this weapon.
🚫 Energy Sword (Weapon) 🚫

A custom weapon based on ChaosUT.Sword and inspired by the Energy Sword from the Halo series.

🚫 This class is unfinished and is a work in progress.

Gametypes
HeadHunter (Free-for-all Gametype)
Custom Map Actors
  1. SkullItem * A flaming skull item used for scoring in HeadHunter
Game Options
  1. ShowDroppedSkullIndicators
  • Whether to show indicators for dropped skulls. Defaults to TRUE
  1. ShowPlayersWithSkullThreshold
  • Whether to show indicators for players with a number of skulls (defined by HeadHunter.SkullThresholdToShowPlayers) greater than this. Defaults to TRUE
  1. SkullThresholdToShowPlayers
  • The number of skulls to show indicators for players. Defaults to 4
  1. SkullCarryLimit
  • The number of skulls a player is allowed to carry at once. defaults to 10
  1. SkullCollectInterval
  • The number of seconds between each skull collection (players score points for skulls they are carrying and then ALL skulls are removed / destroyed)
  • Defaults to 180 (3 Minutes)
Extra Details
  1. Created as a clone of the Halo Reach "Headhunter" game mode.
  2. The skulls are 2 Actors -- a skull actor, and a flame mesh actor that is following the skull.
  3. The flame will rotate around the skull, OPPOSITE the velocity of the skull to simulate real flame.
  4. When a skull is stationary, it's a PICKUP, but when it needs to "fly out of a killed enemy" a PROJECTILE is spawned, so gravity can affect it, and once it lands is swapped with the pickup object.
Juggernaut (Free-for-all Gametype)

A gametype modeled after the Halo juggernaut gametype. A person is randomly selected to be the juggernaut, a powerful player with regenerating shields and health. Whomever kills the juggernaut becomes the new juggernaut.

Game Options
  1. RegenSeconds
  • The number of seconds between each regeneration of the juggernaut
  • Defaults to 5
  1. ShieldRegenRate
  • The amount of shield points to replenish per regeneration
  • Defaults to 10
  1. HealthRegenRate
  • The amount of health points to replenish per regeneration
  • Defaults to 10
  1. ShowJuggernautIndicator
  • Whether to show an indicator to all players of the juggernaut
  • Defaults to TRUE
  1. OnlyCountKillsAsJuggernaut
  • Whether kills ONLY count when somebody is the juggernaut
  • Defaults to FALSE
  1. JugJumpModifier
  • Sets a multiplier for the juggernaut jump height (can be a decimal, including 0)
  • Botpack.UT_Jumpboots have a multiplier of 3 (just so you can gauge how much this affects
  • Defaults to 3
  1. JugMovementMultiplier
  • Sets a multiplier for the juggernaut movement speed (can be a decimal, including 0)
  • Defaults to 3
Extra Details
  1. The juggernaut is accomplished via a special inventory item JuggernautBelt
  • It will add a special subclass of BotPack.UT_ShieldBelt to the player called JuggernautShieldBelt (that doesn't generate the shield effect)
  • The JuggernautBelt will generate the shield effect itself
Infection (Team-based Gametype)

Modeled after the Halo infection gametype. A minimum number of zombies are selected to begin the game (configurable) and their goal is to kill and infect every human. Humans are to kill a set amount of zombies, or survive until the timer runs out. The game ends if all humans are infected, humans reach a goal amount of kills or survive the timer countdown.

Weapons
  1. Headshot Enforcer
  • Inventory group: 2 (Meant to replaces BotPack.Enforcer -- but both CAN exist at the same time in a player's inventory)
  • A BotPack.Enforcer that is capable of headshots, and starts with 60 rounds instead of the normal 30
  1. Primary Shot Only Flak Cannon
  • Inventory group: 8 (Meant to replace BotPack.UT_FlakCannon -- but both CAN exist at the same time in a player's inventory)
  • A BotPack.UT_FlakCannon that can ONLY fire the primary firing mode (no flak grenade) and starts with 30 rounds instead of the normal 10
Custom Map Actors
  1. Infection Player Start
  • Subclass of Engine.PlayerStart
  • Has its own custom UnrealEditor Actor icon, based on PlayerStart with a bio icon.
  • Can be used to specify where humans and zombies start for Infection
  • If not used in a map, normal player start logic is used
  • If placed on a map, and at least 1 viable for when a human/zombie is looking for a start location, the InfectionPlayerStart will be used instead.
  1. Infection Spawn Point
  • Subclass of UnrealShare.Spawnpoint
  • Has its own custom UnrealEditor Actor icon, based on Spawnpoint with a bio icon.
  • Can be used to specify where humans and zombies spawn for Infection
  • If not used in a map, normal player spawn logic is used
  • If placed on a map, and at least 1 viable for when a human/zombie is looking for a spawn location, the InfectionSpawnPoint will be used instead.
Game Options
  1. MinimumZombies
  • Sets the minimum number of zombies that should exist at any point during the match
  • If a zombie player leaves, the gametype will ensure this value is honored and selects a new human to become a zombie randomly (sorry to the human that's unlucky here!)
  • If not enough zombies can exist, then all humans will become zombies, and the game ends (zombies win)
  1. ShowZombieIndicators
  • Sets whether HUD indicators for zombies should be shown for humans
  • If true, zombies will have a red triangle above their heads (visible through walls)
  1. ShowHumanIndicators
  • Sets whether HUD indicators for humans should be shown for zombies
  • If true, humans will have a red triangle above their heads (visible through walls)
  1. ZombieMovementModifier
  • Sets a multiplier for the zombie movement speed (can be a decimal, including 0)
  1. ZombieJumpModifier
  • Sets a multiplier for the zombie jump height (can be a decimal, including 0)
  • Botpack.UT_Jumpboots have a multiplier of 3 (just so you can gauge how much this affects jumping)
  1. ZombieDamageMod
  • Sets a multiplier for the zombie damage done by weapons (can be a decimal, including 0)
  • Botpack.UDamage have a multiplier of 3 (just so you can gauge how much this affects damage)
  1. HumanDamageMod
  • Sets a multiplier for the human damage done by weapons (can be a decimal, including 0)
  • Botpack.UDamage have a multiplier of 3 (just so you can gauge how much this affects damage)
  1. HumansPickupWeapons
  • Whether humans are allowed to pickup items on the map
  • bWeaponStay and bMultiWeaponStay can still override this and disable pickups (for humans AND zombies)
  1. ZombiesPickupWeapons
  • Whether zombies are allowed to pickup items on the map
  • bWeaponStay and bMultiWeaponStay can still override this and disable pickups (for humans AND zombies)
  1. InfiniteAmmo
  • Whether weapons have infinite ammo or not
  • This is done via setting every pawn weapon's PickupAmmoCount to be 999 and resetting the current ammo amount every second via InfectionGameInfo.Timer()
  • This applies to all weapons, including ones not selected / able to be selected (so some mods could have odd side effects if they rely on hidden weapons and ammo)
  1. AnyDeathInfects
  • This determines whether ANY death of a human will cause them to become a zombie
  • This is mainly used to include deaths via falling out of bounds, lava, being crushed, map traps (such as DM-Pressure, DM-Conveyer, DM-Cybrosis][, DM-Fractal, DM-HealPod][, DM-Mojo][, etc)
  • This relies on ScoreKill(Pawn Killer, Pawn Other) and uses the logic of IsSuicide = (Killer == Other) || (Killer == None); to determine a suicide / suicide-like death (as Killer is the pawn killed or is None)
Kill Confirmed (Free-for-all Gametype)

Modeled after the Call of Duty Kill Confirmed game mode. Players ONLY score points by collecting Dog Tags items dropped by killed enemies. Points can be denied by picking up Dog Tags of friendlies (including your own).

Game Options
  1. Tag Collect Goal
  • Sets the number of dog tags from enemies a player needs to collect to win.
  1. ShowDogTagIndicatorsText
  • Sets whether HUD indicators for Dog Tag items should be shown
  • If true, Dog Tag items will have a red Dog Tag icon above them (visible through walls)
  1. UseHaloAnnouncer
  • Whether to use the HaloAnnouncer mutator to replace the default announcer
Extra Mutators
Fiesta Map Weapons

This mutator will replace weapons on the map with random ones.

This relies on LGDUtilities.ServerHelper.GetAllWeaponClasses to fetch a list of weapons, and returns a LinkedList.

Fiesta Player Weapons

This mutator will make players spawn with a random weapon every time they respawn.

This relies on LGDUtilities.ServerHelper.GetAllWeaponClasses to fetch a list of weapons, and returns a LinkedList.

General Indicator Mutator

This mutator will add indicators for players, weapons, power weapons, objectives, etc.

This can be configured via the GeneralIndicatorMutator.ini that will be generated when starting a game with this mutator in its default state for the first time.

Mutator INI Options
  1. ShowIndicatorsForTeammates
  • Determines whether indicators should be shown for other members of your team (so you can keep track of them on the map)
  • Defaults to TRUE
  1. ShowIndicatorsForEnemies
  • Determines whether indicators should be shown for enemy players
  • Defaults to TRUE
  1. ShowIndicatorsForHumansOnly
  • Determines if indicators for players should be limited to ONLY PLAYERS
  • Defaults to FALSE
  1. ShowIndicatorsForObjectives
  • Determines whether indicators should be shown for gametype objectives (EG: assault targets, levers, domination points, flags, etc)
  • Defaults to TRUE
  1. OnlyShowObjectivesWithHighestPriority
  • Determines if ONLY the highest priority objective should be shown -- EG: During an assault, ONLY show the current target, instead of all of them.
  • Defaults to TRUE
  1. ShowObjectiveLabels
  • Whether to show objective labels, along with the indicator (such as the objective goal, name, location, etc)
  • Defaults to TRUE
  1. ShowIndicatorsForAllWeapons
  • Determines if ALL weapons, regardless of settings for power weapons, being held, etc should be shown
  • Defaults to TRUE
  1. ShowIndicatorsForPowerWeapons
  • Whether to show indicators for power weapons on the map
  • Defaults to TRUE
  1. ShowIndicatorsForAllWeaponsWhenHeld
  • Whether to show indicators for weapons when they are held by players
  • Defaults to TRUE
  1. ShowIndicatorsForAllWeaponsWhenDropped
  • Whether to show indicators for weapons when they are dropped by players
  • Defaults to TRUE
  1. ShowWeaponLabels
  • Whether to show labels for weapons along with their indicator
  • Defaults to TRUE
  1. ShowIndicatorsForPowerups
  • Whether to show indicators for power-ups on the map (EG: ChaosUT relics, GravBoots, ShieldBelt, UDamage, Invisbility, JumpBoots, HealthPack, etc)
  • Defaults to TRUE
  1. ShowPowerupsWhenPickedUp
  • Whether to show power-ups that have been picked up (showing where they will respawn)
  • Defaults to FALSE
  1. ShowPowerupLabels
  • Whether to show labels for power-ups, along with their indicators
  • Defaults to TRUE
  1. ShowTeamateLabels
  • Whether to show labels for team members (defaults the label to their name)
  • Defaults to TRUE
  1. ShowEnemyLabels
  • Whether to show labels for enemies (defaults the label to their name)
  • Defaults to TRUE
Player Death Location Mutator

This mutator will enable an X indicator where a player dies.

Mutator INI Options
  1. ShowAllyIndicators
  • Whether to show the death indicator for allies
  • Defaults to TRUE
  1. ShowEnemyIndicators
  • Whether to show the death indicator for enemies
  • Defaults to FALSE
  1. ShowNeutralIndicators
  • Whether to show the death indicator for neutral players
  • Defaults to FALSE
Radar HUD Mutator

Shows a radar element on the HUD, that shows allies / enemies.

Mutator INI Options
  1. RadarDistanceMeters
  • The range of the radar, in METERS
  • Defaults to 30
  1. RadarAlpha
  • The alpha transparency of the radar on the HUD
  • Defaults to 0.4
  1. RadarCenterDotColor
  • The color of the central dot on the radar
  • Defaults to RGBA(0,0,0,0)
  1. RadarGUICircleRadius
  • The radius of the hud circle on the HUD, in pixels
  • Defaults to 110
  1. RadarGUICircleOffsetX
  • The X position offset (from the center of the GUI texture) for the center of the radar display
  • Defaults to 0
  1. RadarGUICircleOffsetY
  • The Y position offset (from the center of the GUI texture) for the center of the radar display
  • Defaults to 0
  1. RadarBlipSize
  • The size of the blips on the radar, in pixels
  • Defaults to 15
  1. ShowAlliesAndEnemiesAsDifferentColors
  • Whether to show allies and enemies with different colored blips
  • Defaults to TRUE
  1. RadarHudGuiWidth
  • The width of the entire background of the radar on the HUD, in pixels
  • Defaults to 150
  1. InitiallyPositionAbovePlayerHUDOnLowerLeft
  • Whether to default the position of the radar on the player HUD over the lower left part of the existing HUD (where to calculate position when factoring in offsets)
  • Defaults to TRUE
  1. RadarHUDOffsetX
  • The X position offset of the entire radar on the HUD
  • Defaults to 0
  1. RadarHUDOffsetY
  • The Y position offset of the entire radar on the HUD
  • Defaults to 0
  1. RadarVelocityThreshold
  • The velocity magnitude a player has to be moving to show up on the radar, in unreal units
  • Defaults to 200 (120 is crouch, and 400 is running for unreal player movement speed defaults)
  1. RadarSameLevelThreshold
  • The threshold a player has to be, vertically, in unreal units, to be considered to be on the same level as the radar owner
  • Defaults to 83 (a player is 78 unreal units tall, and can jump 64->72 unreal units)
  1. ShowTargetsIfBelowVelocityThreshold
  • Whether to show targets if they are below the velocity magnitude threshold defined by RadarVelocityThreshold
  • Defaults to FALSE
  1. ShowTargetsIfCrouching
  • Whether to show targets on radar if they are crouching
  • Defaults to FALSE
  1. IndicateTargetOnDifferentLevel
  • Whether to change the blip icon if the target is considered on another level (as defined by RadarSameLevelThreshold).
  • The blip texture changes to a "hollow circle" when targets are considered on different levels
  • Defaults to TRUE
Developer Mutator

This mutator will adjust the local player's properties (or bot properties) to assist in development.

Mutator INI Options
  1. LocalPlayerDamageMultiplier
  • The multiplier for any damage that comes from the local player
  • Defaults to 10000
  1. LocalPlayerDamageReduction
  • The reduction multiplier for any damage the local player recieves.
  • Defaults to 0
  1. LocalPlayerMomentumMultiplier
  • The multiplier for momentum the local player recieves
  • Defaults to 0
  1. BotDamageMultiplier
  • The multiplier for any damage that comes from a bot
  • Defaults to 0
  1. BotDamageReduction
  • The reduction multiplier for any damage a bot recieves
  • Defaults to 1.0
  1. BotMomentumMultiplier
  • The multiplier for momentum a bot recieves
  • Defaults to 1.0
  1. BotGibsWhenShooting
  • Whether damage from the bot is considered an instagib
  • Defaults to FALSE
  1. LocalPlayerInvincible
  • Whether the local player is considered invincible (health is never allowed to be reduced below 1)
  • Defaults to TRUE
  1. LocalPlayerGibsWhenShooting
  • Whether damage from the local player is considered an instagib
  • Defaults to TRUE
  1. ApplyLocalModifiersToAllHumanPlayers
  • Whether to apply any all local player modifiers to ALL human players (eg: all human players in a network game)
  • Defaults to FALSE
Utility Classes

The namespace LGDUtilities is used for various helper / utility classes, designed for scripting or adding to maps as actors.

Scripting Classes
ActorHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.ActorHelper'.static.functionName();

Available Functions

  1. getNetSafeVal(Actor actor, string prop); * Returns string * Get a value from the given actor parameter actor and get the property denoted by the parameter prop in a network reliable manner (forces the actor to a network authority to get the replicated value)
  2. FindActor(Actor context, name ActorName, optional name ActorTag); * Returns Actor * Finds an actor with the given tag AND name
  3. FindAllActorsByTag(Actor context, name ActorTag); * Returns LGDUtilities.LinkedList * Gets a LinkedList of all actors that match the given tag
  4. HSize(Vector aVec); * Returns float * Gets the *horizontal size of a given vector (essentially removes the vertical Z component)
  5. InCylinder(Vector aVec, float R, float H); * Returns bool * Returns if the given vector falls within the cylinder given by the height (parameter H) and radius (parameter R) assuming the cylinder is center at the vector origin
  6. ActorsTouching(Actor A, Actor B); * Returns bool * Returns if 2 given actors are considering touching, based on colliders
  7. ActorsTouchingExt(Actor A, Actor B, float ExtraR, float ExtraH); * Returns bool * Returns if 2 given actors are considering touching, based on colliders * Also allows extra radius / height to allow variance in collision checks
  8. AnnounceAll(Actor Broadcaster, string Msg); * Calls Pawn.ClientMessage(string Msg) on every pawn * Uses the Broadcaster parameter to just get access to Actor.ForEach
  9. GetDirectionRelationOfSourceToTarget(Actor Source, Actor Target, bool ConsiderSourcePawnViewRotation); * Returns LGDUtilities.ActorDirectionRelationResult * Compares Target to Source and returns an object that describes it's direction * Checks the following: Target in front/behind of Source and if the Target to the left/right of Source
  10. CheckActorRelevance(Actor A); * Returns bool * Checks if the given actor is relevant, based on GameInfo.IsRelevant and Actor.bDeleteMe
  11. CheckSpawnedActorArrayRelevance(Actor context, LinkedList ActorList); * Checks a LGDUtilities.LinkedList of actors if they are considered relevant
  12. SpawnActor(Actor context, Class SpawnClass, optional Actor SpawnOwner, optional Name SpawnTag, optional Vector SpawnLocation, optional Rotator SpawnRotation); * Returns Actor * Spawns an actor given the common parameters
  13. ReplaceWith(Actor Other, string aClassName); * Replaces an Actor with another given by a class name (uses default values for spawning) * Calls Actor.Level.Game.BaseMutator.ReplaceWith to perform normal replacement
AssaultHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.AssaultHelper'.static.functionName();

Available Functions

  1. IsFortNameFriendly(string fortName); * Returns bool * Checks if an Assault fort name has a name that is decent to display (eg: dictates some kind of action for the attackers / defenders)
  2. GetFriendlyFortName(FortStandard fort); * Returns string * Filters a given FortStandard's name, to attempt to display something nice for showing labels and indicators for the objective
AttachIndicatorHudCallback

An example subclass of LGDUtilities.PlayerSpawnMutatorCallback for using LGDUtilities.PlayerSpawnMutator to execute code whenever a player is spawned.

BoolObj

A subclass of LGDUtilities.ValueContainer, which is a wrapper class for non-object values to be used in LGDUtilities.LinkedList and LGDUtilities.ListElement. This subclass is for bool values.

BotHelper

A class with helper functions specific to Bot and subclasses. Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.BotHelper'.static.functionName();

Available Functions

  1. AddBots(Actor context, int N);
  • Adds N number of bots, using Actor.Level.Game.ForceAddBot()
  • context parameter is only for being able to get a reference to LevelInfo
ByteObj

A subclass of LGDUtilities.ValueContainer, which is a wrapper class for non-object values to be used in LGDUtilities.LinkedList and LGDUtilities.ListElement. This subclass is for byte values.

CallbackFnObject

An object that is used to represent a callback function (or chain of them). UnrealScript doesn't support anonymous functions (or c#-like delegates / js-like functions as first-class-values) so this object was made to support that.

ChaosWeapons.int

An Unreal int definition file. Officially registers the ChaosUT weapons, so that Actor.GetNextIntDesc can be used to include them in loading all weapons UT is aware of.

Weapons Registered

  1. ChaosUT.ch_WarHeadLauncher
  2. ChaosUT.Crossbow
  3. ChaosUT.poisoncrossbow
  4. ChaosUT.explosivecrossbow
  5. ChaosUT.Sniper2
  6. ChaosUT.sniper_rpb
  7. ChaosUT.Flak2
  8. ChaosUT.ProxyArm
  9. ChaosUT.Sword
  10. ChaosUT.TurretLauncher
  11. ChaosUT.VortexArm
ClassObj

A subclass of LGDUtilities.ValueContainer, which is a wrapper class for non-object values to be used in LGDUtilities.LinkedList and LGDUtilities.ListElement. This subclass is for class values.

ColorHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.ColorHelper'.static.functionName();

Available Functions

  1. SColor(Color C, float S);
  • Returns Color
  • Scales a color value by a given float (and clamps each component between 0 - 255)
  1. RColor(float R, float G, float B, optional float A);
  • Returns Color
  • Constructs a Color struct from float values (and clamps each component between 0 - 255)
  1. GetTeamColor(byte TNum);
  • Return Color
  • Gets a color value for a given team index (based on the array of BotPack.TeamGamePlus.Teams[])
  1. GetRedColor();
  • Returns Color
  • Gets a RED color
  1. GetBlueColor();
  • Returns Color
  • Gets a BLUE color
  1. GetTurqColor();
  • Returns Color
  • Gets a TURQUOISE color
  1. GetGreenColor();
  • Returns Color
  • Gets a GREEN color
  1. GetGoldColor();
  • Returns Color
  • Gets a GOLD color
  1. GetWhiteColor();
  • Returns Color
  • Gets a WHITE color
  1. GetGrayColor();
  • Returns Color
  • Gets a GRAY color
  1. hsbToColor(byte hue, byte saturation, byte brightness);
  • Returns Color
  • Constructs a Color struct from given HSB values (Hue, Saturation, and Brightness)
ColorObj

A subclass of LGDUtilities.ValueContainer, which is a wrapper class for non-object values to be used in LGDUtilities.LinkedList and LGDUtilities.ListElement. This subclass is for Color values.

CustomTrigger

A trigger class that is meant to handle trigger events, initiated and "wired up" via script. When triggered, this class will invoke the LGDUtilities.CallbackFnObject denoted by the variable CustomTrigger.triggerCallback.

DroppedInventoryMarkerMutator

A mutator class that's loaded by LGDUtilities.IndicatorHUD to help facilitate in marking inventory items dropped by a player upon death (using Inventory.PlayerLastTouched).

EffectFollower

A class used to have an effect follow / attach to another actor and rotate/respond to velocity changes to appear to be "behind" the object -- such as a tail mesh / flame (such as HeadHunter.SkullItem).

🚫 ExtraUseTriggerBindings 🚫

A test class to try and add keybindings that the LGDUtilities.UseTrigger could be bound to and recieve events to be triggered by a keypress.

🚫 This class was a test and is currently unused (unable to get a custom action/key binding in the UT99 control preferences window to show up)

FlameFollower

A class used to have a fire effect follow / attach to another actor and rotate/respond to velocity changes to appear to be "behind" the object (such as HeadHunter.SkullItem).

FloatObj

A subclass of LGDUtilities.ValueContainer, which is a wrapper class for non-object values to be used in LGDUtilities.LinkedList and LGDUtilities.ListElement. This subclass is for float values.

GeometryHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.GeometryHelper'.static.functionName();

Available Functions

  1. areaOfTriangle(int x1, int y1, int x2, int y2, int x3, int y3);
  • Returns float
  • Calculates the area of a triangle given 3 coordinate x/y values.
  1. isInsideTriangle(int vertex1x, int vertex1y, int vertex2x, int vertex2y, int vertex3x, int vertex3y, int testPointX, int testPointY);
  • Returns bool
  • Given 3 points of a triangle, and a test point, determines if the test point is contained inside the triangle.
  1. RectanglesOverlap(Vector RectATopLeft, Vector RectABottomRight, Vector RectBTopLeft, Vector RectBBottomRight);
  • Returns bool
  • Given 2 Rectangles, Rectangle A and Rectangle B, this method checks if the rectangles overlap. The rectangles are defined by their Top-Left and Bottom-Right coordinates. Rectangles overlap if either rectangle are not explicitly above, or to the side of the other.
GreenTrigger

A test class for demonstrating basic trigger functionality via the LGDUtilities.CallbackFnObject class -- used in the 1HH-TestBox-Large.unr map file included in this collection of mods.

HealMessage

A class used to display a message on a player's HUD when they are healed via the function: LGDUtilities.PawnHelper.HealPawn();

HUDHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.HUDHelper'.static.functionName();

Available Functions

  1. getXY(Canvas C, vector location, out int screenX, out int screenY);
  • Given a location in the game world, and output x/y variables, this will transform the position to screen coordinates.
  1. getActorSizeOnHudFromCollider(Canvas C, Actor target, optional bool getMinSize, optional bool showColliderDebugIndicators);
  • Returns float
  • Calculates the size of the given Actor on a player's screen, based on the given Canvas.
  • Defaults to using the MAXIMUM dimension of the Actor's collider, unless getMinSize is TRUE.
  • Debug can be shown on screen by passing TRUE for the parameter showColliderDebugIndicators
  1. getActorVerticalSizeOnHudFromCollider(Canvas C, Actor target, optional bool showColliderDebugIndicators);
  • Returns float
  • Calculates the size of the given Actor on a player's screen, VERTICALLY, based on the given Canvas.
  1. getActorHorizontalSizeOnHudFromCollider(Canvas C, Actor target, optional bool showColliderDebugIndicators);
  • Returns float
  • Calculates the size of the given Actor on a player's screen, HORIZONTALLY, based on the given Canvas.
  1. getActorSizeOnHudFromColliderWithPoints(Canvas C, Actor target, out Vector ActorSidePoint1, out Vector ActorSidePoint2, optional bool getMinSize, optional bool showColliderDebugIndicators);
  • Returns float
  • Calculates the size of the given Actor on a player's screen, based on the given Canvas.
  • Defaults to using the MAXIMUM dimension of the Actor's collider, unless getMinSize is TRUE.
  • Debug can be shown on screen by passing TRUE for the parameter showColliderDebugIndicators
  • Extra output parameters ActorSidePoint1 and ActorSidePoint2 used to get the sides of the actor for use outside this function
  1. getActorVerticalSizeOnHudFromColliderWithPoints(Canvas C, Actor target, out Vector topOfActor, out Vector bottomOfActor, optional bool showColliderDebugIndicators);
  • Returns float
  • Calculates the size of the given Actor on a player's screen, VERTICALLY, based on the given Canvas.
  • Debug can be shown on screen by passing TRUE for the parameter showColliderDebugIndicators
  • Extra output parameters topOfActor and bottomOfActor used to get the sides of the actor for use outside this function
  1. getActorHorizontalSizeOnHudFromColliderWithPoints(Canvas C, Actor target, out Vector RSideOfActor, out Vector LSideOfActor, optional bool showColliderDebugIndicators);
  • Returns float
  • Calculates the size of the given Actor on a player's screen, HORIZONTALLY, based on the given Canvas.
  • Debug can be shown on screen by passing TRUE for the parameter showColliderDebugIndicators
  • Extra output parameters RSideOfActor and LSideOfActor used to get the sides of the actor for use outside this function
  1. IsOffScreen(Canvas C, int screenPosX, int screenPosY, out int offLeft, out int offRight, out int offTop, out int offBottom, optional int margin);
  • Returns bool
  • Given a screen position x/y, determine if that point is off the screen, and which side it is off of (using the given output int parameters -- because bools cannot be used with the "out" keyword)
  • Also takes into account a screen margin to help with minor edge cases if need be
  1. IsOffScreenNoReturnValues(Canvas C, int screenPosX, int screenPosY, optional int margin);
  • Returns bool
  • Effectively the same as LGDUtilities.HUDHelper.IsOffScreen() but omits the integer output parameters
  • Given a screen position x/y, determine if that point is off the screen, and which side it is off of (using the given output int parameters -- because bools cannot be used with the "out" keyword)
  • Also takes into account a screen margin to help with minor edge cases if need be
  1. DrawTextClipped(Canvas C, int X, int Y, string text, color outline);
  • Draw text on the given Canvas, at the coordinates, with the given color outline
  1. DrawLine(Canvas Canvas, int x1, int y1, int x2, int y2);
  • Draw a line on the given Canvas with the specified points
  1. DrawLine3D(Canvas C, vector P1, vector P2, float R, float G, float B);
  • Draw a line on screen, in 3d space (translated to 2d screen coordinates), given 2 points and a color
  1. DrawTextureAtXY(Canvas canvas, Texture tex, int screenX, int screenY, float texScale, float playerHudScale, bool centerIcon, optional bool excludePlayerHUDScaleFromOffset);
  • Draws a given Texture on the given Canvas, with the given texture scale, and player HUD scale
  • Can also CENTER the given texture at the x/y coordinates for easier rendering
  • Can also omit the player HUD scale from any centering offsets if excludePlayerHUDScaleFromOffset is TRUE
  1. DrawTextureAtXY_OutputEdgeCordinates(Canvas canvas, Texture tex, int screenX, int screenY, float texScale, float playerHudScale, bool centerIcon, bool excludePlayerHUDScaleFromOffset, out Vector TopL, out Vector TopR, out Vector BottomL, out Vector BottomR, optional bool IgnoreDrawOnlyOutputCordinates);
  • Similar to LGDUtilities.HUDHelper.DrawTextureAtXY() but also outputs the texture edge cordinates for use outside of this function
  • Draws a given Texture on the given Canvas, with the given texture scale, and player HUD scale
  • Can also CENTER the given texture at the x/y coordinates for easier rendering
  • Can also omit the player HUD scale from any centering offsets if excludePlayerHUDScaleFromOffset is TRUE
  • If IgnoreDrawOnlyOutputCordinates is set to TRUE then the texture is NOT drawn, but coordinates are still calculated -- useful if you want to know where it would be drawn, to simplify other calculations of texture drawing
  1. DrawTextureCenteredAboveAtXY(Canvas canvas, Texture tex, int screenX, int screenY, float texScale, float playerHudScale, optional bool excludePlayerHUDScaleFromOffset);
  • Draws a given Texture on the given Canvas, with the given texture scale, and player HUD scale
  • Draws a texture CENTERED and ABOVE the given x/y (the texture will be drawn such that the x/y is on the bottom center of the texture)
  • Can also omit the player HUD scale from any positioning offsets if excludePlayerHUDScaleFromOffset is TRUE
  1. DrawCircleMidScreenWithWidth(Actor context, Canvas canvas, float wantedWidth, float playerHudScale);
  • Draws a circle in the middle of the screen, given the desired circle width (diameter) and player HUD scale
  1. DrawCircleAtPosWithWidth(Actor context, Canvas canvas, int screenX, int screenY, float wantedWidth, float playerHudScale);
  • Draws a circle at the given x/y position of the screen, given the desired circle width (diameter) and player HUD scale
  1. DrawTextAtXY(Canvas canvas, Actor context, string text, int screenX, int screenY, optional bool centerText);
  • Draw text on screen, at the given x/y coordinates
  • Optionally can CENTER the text at the given x/y instead (normally the x/y is the top left coordinate of the text to be drawn)
  1. GetScreenTrianglesPointIsIn(Canvas canvas, int pointX, int pointY, out int inTop_int, out int inBottom_int, out int inLeft_int, out int inRight_int);
  • Returns bool
  • Given a model of the screen, where it's divided into 4 triangles, will determine where the given x/y resides in
  • The screen model is similar to: `

|\ /| | \ / | | \ / | | * | | / \ | | / \ | |/____________| ` 20. GetScreenPointOutsideCenterCircle(Canvas canvas, int pointX, int pointY, int centerCircleRadius);

  • Returns bool
  • Given a point x/y, and a circle radius, returns whether the point is outside the circle centered in the middle of the screen
  1. getScaleForTextureToGetDesiredWidth(Texture tex, float wantedWidth);
  • Returns float
  • Given a texture, and a desired width, calculates the scale needed for the texture to achieve the desired width
  1. getScaleForTextureToGetDesiredHeight(Texture tex, float wantedHeight);
  • Returns float
  • Given a texture, and a desired height, calculates the scale needed for the texture to achieve the desired height
  1. getScaleForTextureFromMaxTextureDimension(Texture tex, float wantedMaxDimensionSize);
  • Returns float
  • Given a texture, and a desired max dimension, calculates which dimension is the maximum for the texture and what scale is needed to get the size wanted.
  • Useful for fitting an arbitrary texture into a given space on screen, as a constraint for the texture
  1. HUDCanvasRectanglesOverlap(Canvas C, Vector RectATopLeft, Vector RectABottomRight, Vector RectBTopLeft, Vector RectBBottomRight, optional bool DisplayDebugPoints);
  • Returns bool
  • Given 2 Rectangles (via HUD Canvas coordinates), Rectangle A and Rectangle B, this method checks if the rectangles overlap. The rectangles are defined by their Top-Left and Bottom-Right coordinates. This will RETAIN the current canvas's color and position (it'll store, modify and then set them to their prior values). This will use the canvas's CURRENT values for FONT and STYLE (value from ENUM of Actor.ERenderStyle).
  • The coordinates are translated by subtracting the Y-coordinate of each given coordinate from Canvas.ClipY. This essentially re-orients the coordinate's origin from the top-left to the bottom-left as normal coordinate systems use.
  • DisplayDebugPoints - This determines if debug text is drawn on the given cordinates for debug reasons.
  • If these debug points don't render correctly, these are likely incorrectly set. Rectangles overlap if either rectangle are not explicitly above, or to the side of the other.
  • Useful for checking if 2 rectangles (defined by Canvas screen cordinates) overlap or not. Good for checking if HUD components overlap and need adjustment.
  1. getValueFromActor(UWindowRootWindow context, Actor actor, string prop);
  • Returns string
  • Gets a value from an Actor, in a context of rendering an Unreal window, with respect to network replication reliability
  1. PlayerHasHUDMutator(PlayerPawn p, name mutClass);
  • Returns Mutator
  • Determines if the given PlayerPawn has the given class, by a NAME variable
  • Uses Actor.IsA() for comparison to avoid needing class references at compile time
  1. RenderLEDTimerToHUD(Canvas c, float xPos, float yPos, Color col, byte drawStyle, float hudScale, int timerSeconds);
  • Renders a LED-Style timer on screen, such as the ASSAULT countdown
  • An example of this can be found in HeadHunter.HeadHunterGameInfo and Infection.InfectionGameInfo
HUDMutator

A helper class to assist in managing mutators that are explicitly for modifying the HUD.

Instance Functions

  1. RegisterThisHUDMutator()
  • Used to register the HUD mutator with an active PlayerPawn's HUD so it can be rendered
  1. GetThisHUDMutatorFromAnyPlayerPawn()
  • Returns Mutator
  • Finds an instance of this mutator amongst the PlayerPawns in the game scene, and ONLY one should be returned as only one has an active HUD per game instance
  1. GetThisHUDMutatorFromPlayerPawn(PlayerPawn p);
  • Returns Mutator
  • Gets an instance of this HUD mutator from the given PlayerPawn

Static Helper Functions

Static Helper Class To access STATIC functions in this class use the following syntax: class'LGDUtilities.HUDMutator'.static.functionName();

  1. GetHUDMutatorFromAnyPlayerPawnByClass(Actor context, class mutClass);
  • Returns Mutator
  • Looks through all PlayerPawns, and find the given Mutator class
  1. GetHUDMutatorFromPlayerPawnByClass(PlayerPawn p, class mutClass);
  • Returns Mutator
  • Looks through the given PlayerPawn, and find the given Mutator class
  1. GetHUDMutatorFromPlayerPawnByClassName(PlayerPawn p, name className);
  • Returns Mutator
  • Looks through the given PlayerPawn, and a Mutator class that matches the given NAME
  • Uses Actor.IsA() to compare the class name
IndicatorHud

A class used to draw indicators on the active player's HUD. Checks a client-side LGDUtilities.LinkedList variable, as well as finds the singleton LGDUtilities.IndicatorHudGlobalTargets for game-wide GLOBAL targets (replicated between clients).

This class can cause performance issues on very low-end systems due to the number of canvas draw calls, and iterating over targets. On modern systems, this shouldn't be an issue.

Static Helper Functions To access STATIC functions in this class use the following syntax: class'LGDUtilities.IndicatorHud'.static.functionName();

  1. GetBuiltinTextureByte(HUDIndicator_Texture_BuiltIn tex);
  • Used to get a byte value, which represents an enum value of LGDUtilities.IndicatorHUD.HUDIndicator_Texture_BuiltIn
  1. GetCurrentPlayerIndicatorHudInstance(Actor context);
  • Returns LGDUtilities.IndicatorHUD
  • Returns the active indicator HUD instance for this client (as each client only have 1 HUD active at a time)
  1. SpawnAndRegister();
  • Returns LGDUtilities.IndicatorHUD
  • Used to instantiate and register the given instance to receive PostRender function calls to the current player's HUD

Instance Functions These require an instance of IndicatorHUD to be used. This is usually obtained by the following:

  • static LGDUtilities.IndicatorHUD.SpawnAndRegister()
  • static class'LGDUtilities.HUDMutator'.static.GetHUDMutatorFromAnyPlayerPawnByClass(AnActorInstance, class'LGDUtilities.IndicatorHud');
  1. AddBasicTarget(Actor target, optional bool globalTarget, optional object SourceToLimit, optional bool replaceExistingTarget);
  • Adds a target to global/client lists to have an indicator -- using BASIC settings
  • Can also set an optional bool replaceExistingTarget that will look for the target actor, and replace it in the global/client lists (to avoid multiple indicators for the same target)
  • Can also supply an OBJECT for SourceToLimit that is used for identifying the source that added the target, so your code ONLY removes targets you've added
  1. AddAdvancedTarget(IndicatorHudTargetListElement element, bool globalTarget, optional bool replaceExistingTarget);
  • Adds a target to global/client lists to have an indicator -- using ADVANCED settings
  • Settings are configured via the supplied LGDUtilities.IndicatorHudTargetListElement parameter
  • Can also set an optional bool replaceExistingTarget that will look for the target actor, and replace it in the global/client lists (to avoid multiple indicators for the same target)
  • Can also supply an OBJECT for IndicatorSource (via the element.IndicatorSource parameter value) that is used for identifying the source that added the target, so your code ONLY removes targets you've added
  1. RemoveTarget(Actor targetToRemove, optional object SourceToLimit);
  • Can remove a specified actor target (from global and client lists)
  • Can also conditionally remove the actor target if SourceToLimit matches (to ensure you only remove targets added via your own code)
  1. IfTargetInList(Actor targetToFind, optional bool CheckGlobal, optional object SourceToLimit);
  • Returns bool
  • Checks in global/client lists (based on CheckGlobal) and returns whether the target exists in that list
  • Can also limit the search to actors added with the same SourceToLimit object (to check for targets added via your own code)
  1. GetTargetElementFromList(Actor targetToFind, optional bool CheckGlobal, optional object SourceToLimit);
  • Returns LGDUtilities.ListElement
  • Fetches the list element for a given target
  • This list element can ACTUALLY be a LGDUtilities.IndicatorHudTargetListElement
  • Used to modify elements / settings and keep existing ones without having to manually set everything again (great for filters)
  1. ResetAllTargets();
  • Returns int
  • Removes all targets from all lists, and returns the number removed
  • Useful for init / travel functions
  1. ResetAllTargetsForSource(object SourceToLimit);
  • Returns int
  • Removes all targets from all lists, and returns the number removed
  • Limits the removed elements to having the matching SourceToLimit value ONLY
  • Useful for init / travel functions
  • Useful for resetting targets added by YOUR code, or a specified class / context
  1. VerifyTargets();
  • Iterates and verifies each target is still valid (not None and doesn't have Actor.bDeleteMe set to true)
  1. GetTexturesForBuiltInOption(byte wantedBuiltinTex, optional byte offScreenTexDesired);
  • Returns LGDUtilities.IndicatorTextureVariations
  • A texture variations struct has 6 textures referenced in it -- each for the given target conditions -- on screen, off the top, bottom, left, and right of the screen, and behind the player
  • Returns a texture variations object for a given enum value (from the enum LGDUtilities.IndicatorHUD.HUDIndicator_Texture_BuiltIn) and another given enum of type LGDUtilities.IndicatorHUD.HUDIndicator_Texture_BuiltIn for the offScreenTexDesired parameter
  • Combines both texture variations objects, taking the one found by wantedBuiltinTex and adding the off screen textures specified by offScreenTexDesired
  • Is a nice and easy way to configure behaviors/visuals for when a target is on screen / off the edge of the screen and textures should vary for the user -- without the calling code needing to know of each and every texture if they don't want to deal with that

Do NOT modify LGDUtilities.IndicatorHUD.PlayerIndicatorTargets and LGDUtilities.IndicatorHUD.GlobalIndicatorTargets manually unless you take great care -- it's easy to mess up visuals used by other code, as well as adding duplicate targets.

The variables exposed in this class are generally overridden by indicator settings for each target, unless none are specified (eg: a basic target), then defaults are used. If you want to modify the defaults, use this code: LGDUtilities.IndicatorHUD.default.VariableName = NewValue to set defaults -- but be warned this sets defaults for ALL targets.

If you need to debug different things, you can set LGDUtilities.IndicatorHUD.bLogToGameLogfile to true and basic debug statements will be output to the UnrealTournament.log file (Located in UT99/System directory)

IndicatorHudGlobalTargets

A Singleton class modeled after LGDUtilities.SingletonActor that ensures only ONE instance of the given actor exists in the game at one time.

Static Helper Class To access STATIC functions in this class use the following syntax: class'LGDUtilities.IndicatorHudGlobalTargets'.static.functionName();

Available Functions

  1. GetRef();
  • Returns LGDUtilities.IndicatorHudGlobalTargets
  • Used to get an instance of this class (or create one if it doesn't exist)
  • Uses a "hack" by spawning an instance, and then setting the DEFAULT for that field to the reference spawned (if the default value doesn't contain a reference already)
  1. SetRef();
  • Sets the given DEFULT reference field for the singleton
  • ONLY use this if you understand what you're doing -- otherwise let the GetRef function manage the instance
IndicatorHudMapTargetHUDMutator

A callback of type LGDUtilities.PlayerSpawnMutatorCallback and used by the class LGDUtilities.IndicatorHudMapTarget to trigger when a player spawns. When a player spawns, an IndicatorHUD instance is spawned and registered. An IndicatorHUD instance is looked for and if not found, THEN is spawned.

IndicatorHudMapTargetModifierFn

A class used when setting up LGDUtilities.IndicatorSettings to modify settings of indicators during runtime. Used by the class LGDUtilities.IndicatorHudMapTarget.

IndicatorHudTargetListElement

A class used when adding new targets / indicators. It holds references to IndicatorSource, IndicatorSettings, and IndicatorSettingsModifier.

A few examples of this class being used:

  1. LGDUtilities.InfectionGameInfo.AddPlayerIndicator()
  2. Juggernaut.JuggernautGameInfo.AddPlayerIndicator()
  3. LGDUtilities.GeneralIndicatorMutator.AddConfiguredTargets()
  4. LGDUtilities.PlayerDeathLocationMarker.SpawnAtPlayerLocation()
IndicatorSettings

A class used to configure settings to use for a given target / indicator for LGDUtilities.IndicatorHUD.

Object Variables

  1. ReplaceExisting
  • Whether to replace an existing element to show an indicator for in client/global lists for LGDUtilities.IndicatorHUD.
  1. TextureVariations
  • A LGDUtilities.IndicatorTextureVariations object that specifies a set of texture to use for an indicator (on screen, off to left/right/bottom/top, or behind the player).
  • You can use LGDUtilities.GetTexturesForBuiltInOption() to get an instance of LGDUtilities.IndicatorTextureVariations, by providing a combination of wantedBuiltinTex and offScreenTexDesired
  • The byte value of the enum LGDUtilities.IndicatorHUD.HUDIndicator_Texture_BuiltIn can be used for these parameters
  1. DisableIndicator
  • Whether to disable this indicator (such as if it's to be enabled later)
  1. MaxViewDistance
  • The maximum distance the indicator is visible
  1. IndicatorOffsetFromTarget
  • The Vector offset of the indicator from the target(s)
  1. UseHUDColorForIndicator
  • Whether to use the player's HUD color for the indicator color
  1. UseCustomColor
  • Whether to use a custom color for the indicator(s)
  1. IndicatorColor
  • The Color of the indicator to use, if UseCustomColor is TRUE
  1. ShowTargetDistanceLabels
  • Whether to show an extra label denoting the distance to the target from the owner of the given HUD
  • Only shown if ShowIndicatorLabel is TRUE
  1. IndicatorLabel
  • The text of the label for the indicator(s)
  1. ShowIndicatorLabel
  • Whether to show a label for the indicator(s)
  • Only shown if ShowIndicatorLabel is TRUE
  1. UseTargetNameForLabel
  • When showing a label for the indicator(s), whether to use the target's name
  1. ScaleIndicatorSizeToTarget
  • Whether to scale the indicator(s) to each target's size on the HUD (to have a nice size aligned to the target)
  1. StaticIndicatorPercentOfMinScreenDimension
  • Used to ensure the scale of the indicator is a STATIC percentage of the screen's MINIMUM/SMALLEST dimension.
  • Only takes affect if LGDUtilities.IndicatorHudMapTarget.ScaleIndicatorSizeToTarget is FALSE
  1. StaticIndicatorPercentOfMinScreenDimensionWhenOffScreen
  • Used to ensure the scale of the indicator is a STATIC percentage of the screen's MINIMUM/SMALLEST dimension, when the target is OFF SCREEN.
  • Only takes affect if LGDUtilities.IndicatorHudMapTarget.ScaleIndicatorSizeToTarget is FALSE
  1. ShowIndicatorWhenOffScreen
  • Whether to show the indicator when the target is OFF SCREEN or not
  1. ShowIndicatorIfTargetHidden
  • Whether to show the indicator if the target actor is hidden
  1. ShowIndicatorIfInventoryHeld
  • Whether to show the target inventory indicator if a player is holding it
  1. ShowIndicatorIfInventoryNotHeld
  • Whether to show the target inventory indicator if a player is NOT holding it (but NOT dropped by a player)
  1. ShowIndicatorIfInventoryDropped
  • Whether to show the target inventory indicator if it was DROPPED by a player
  1. ShowIndicatorsThatAreObscured
  • Whether to show indicators from targets that are NOT in eye-sight of the player
  1. BlinkIndicator
  • Whether to blink the indicator on the player's HUD
  1. BaseAlphaValue
  • The default ALPHA value for the given indicator
  1. ShowIndicatorAboveTarget
  • Whether to show the indicator above the target (instead of centered on it)
  1. IndicatorLabelsAboveIndicator
  • Whether to show indicator labels ABOVE the indicator (instead of below, the default)
IndicatorSettingsModifierFn

An object used as a callback for LGDUtilities.IndicatorHudTargetListElement for the variable IndicatorSettingsModifier. This object has a function that is to be OVERRIDDEN in subclasses, and is used to modify LGDUtilities.IndicatorHudTargetListElement.IndicatorSettings in realtime for changing what settings an indicator for the given target has.

IndicatorTextureVariations

An object that represents a set of textures for an indicator to be drawn on the screen via LGDUtilities.IndicatorHud. It includes textures for when the indicator is in view on the player HUD, behind the player, and off to the left,right,top,bottom (and the 4 corners too).

This object is usually constructed via LGDUtilities.IndicatorHud.GetTexturesForBuiltInOption().

IntObj

A subclass of LGDUtilities.ValueContainer, which is a wrapper class for non-object values to be used in LGDUtilities.LinkedList and LGDUtilities.ListElement. This subclass is for int values.

InventoryHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.InventoryHelper'.static.functionName();

Available Functions

  1. GetNiceRelicName(TournamentPickup relic)
  • Returns string
  • Gets a nice name for a given relic. This function ONLY applies to TournamentPickups that are of one of the relic classes -- subclasses of Relic.RelicInventory -- the standard relic mod that comes with UT99 GOTY.
  1. IsInventoryDropped(Inventory inv)
  • Returns bool
  • Checks a given Inventory for the variable inv.bTossedOut and inv.PlayerLastTouched == 'Dropped'
  • Relies on LGDUtilities.DroppedInventoryMarkerMutator having marked inventory items when a player dies.
  1. GetItemCountInInventory(Pawn pawn, bool IncludeCopies)
  • Returns int
  • Gets the count of ALL copies of ALL inventory for a given pawn
  • Can optionally include copies of each inventory object too
  1. GetAllItemsOfTypeInInventory(Pawn pawn, class invClass)
  • Returns LGDUtilities.LinkedList
  • Gets all items of a given class from a pawn's inventory chain
  1. DeleteInventoriesOnGround(Actor context, name invClass)
  • Returns int
  • Deletes all inventory items on the ground (not carried and Actor.Owner is None), of a given class name
  1. IsAPowerup(Inventory Item, bool includeArmor, bool includeHealth, bool includePowerItems)
  • Returns bool
  • Checks if a given Inventory is to be considered a power-up or not
IterativeLocalMessageSender

A singleton class that initializes and caches LGDUtilities.LocalMessageQueue objects to disptch LocalMessages to PlayerPawns.

Static Functions

To access functions in this class use the following syntax: class'LGDUtilities.IterativeLocalMessageSender'.static.functionName();

  1. GetRef(Actor referenceToUseForSpawn)
  • Returns LGDUtilities.IterativeLocalMessageSender
  • Gets a singleton reference without instantiating multiple

Instance Functions

  1. GetLocalMessageQueueForPlayerPawn(PlayerPawn p)
  • Returns LGDUtilities.LocalMessageQueue
  • Gets a LocalMessageQueue reference that is stored inside an array within the singleton
IterativeSoundPlayer

A singleton class that initializes and caches LGDUtilities.SoundQueue objects to disptch to help play sounds for PlayerPawns.

Static Functions

To access functions in this class use the following syntax: class'LGDUtilities.IterativeSoundPlayer'.static.functionName();

  1. GetRef(Actor referenceToUseForSpawn)
  • Returns LGDUtilities.IterativeSoundPlayer
  • Gets a singleton reference without instantiating multiple

Instance Functions

  1. GetSoundQueueForPlayerPawn(PlayerPawn p)
  • Returns LGDUtilities.SoundQueue
  • Gets a SoundQueue reference that is stored inside an array within the singleton
🚫 InventoryToolbelt 🚫

A class to show a handful of extra "unique inventory items" on a player's hud, and that they are held and a count of each.

EG: This would be used to show items such as keys / keycards for special cases when a player should know they have them, and how many.

🚫 This class is unfinished and is a work in progress.

Static Helper Functions To access functions in this class use the following syntax: class'LGDUtilities.InventoryToolbelt'.static.functionName();

  1. GetCurrentPlayerInventoryToolbeltHudInstance(Actor context, PlayerPawn pp)
  • Returns LGDUtilities.InventoryToolbelt
  • Finds the current instance of the given PlayerPawn's InventoryToolbelt
  1. SpawnAndRegister(Actor context)
  • Returns LGDUtilities.InventoryToolbelt
  • Spawns this HUDMutator and registers it to the current client player's HUD

Instance Functions

  1. AddInventoryToToolbelt(object inv)
  • Returns bool
  • Adds a given Inventory or LGDUtilities.ToolbeltInvItem to the current toolbelt instance
  • Returns if the inventory item was successful in adding to the toolbelt (if the provided parameter provided isn't a valid type, it'll fail to be added)
  1. RemoveInventoryFromToolbelt(object inv)
  • Returns bool
  • Removes a given Inventory or LGDUtilities.ToolbeltInvItem from the current toolbelt instance
  • Returns if the inventory item was successful in removing from the toolbelt (if the provided parameter provided isn't a valid type, it'll fail to be added)
LevelHelper

Static Helper Functions To access functions in this class use the following syntax: class'LGDUtilities.LevelHelper'.static.functionName();

  1. GetDetailMode(LevelInfo Level)
  • Returns int
  • Get level detail value, 3 is max, 0 is min
  • Based on player preferences / ini config
LinkedList

A classic data structure of linked nodes, in a sequential fashion.

Looping

To iterate over the list, use the following:

      //given a LinkedList instance -- "theList"
      ListElement le = theList.Head;

      while(le != None) {
        //do something with the current "le" value
        le = le.Next;//forgetting this would result in an infinite loop
      }

Instance Functions

  1. Push(object value)
  • Puts an object at the BEGINNING of the list, so LinkedList.Head references the new element
  • If the value parameter is of type LGDUtilities.ListElement, it'll be added to the list
  • If the value parameter is NOT, it'll be boxed into an element, and then added to the list
  1. Pop()
  • Returns LGDUtilities.ListElement
  • Removes the head from the list, and returns it
  1. Enqueue(object value)
  • Puts an object at the END of the list, so LinkedList.Head references the new element
  • If the value parameter is of type LGDUtilities.ListElement, it'll be added to the list
  • If the value parameter is NOT, it'll be boxed into an element, and then added to the list
  1. Dequeue()
  • Returns LGDUtilities.ListElement
  • Removes the head from the list, and returns it (yup, same as Pop())
  1. GetElementAt(int idx)
  • Returns LGDUtilities.ListElement
  • Gets an element at the given index idx
  • If the idx is out of range of the list (< 0 OR >= LGDUtilities.LinkedList.Count)
  • This is NOT random access to the lsit (like an array), and is linear using a loop from the head of the list (This operates in linear time -- (N) complexity) -- So use this sparingly.
  1. GetRandomElement()
  • Returns LGDUtilities.ListElement
  • Gets a random element from the list (WITHOUT removing it)
  • This is NOT random access to the list (like an array), and is linear using a loop from the head of the list (This operates in linear time -- (N) complexity) -- So use this sparingly.
  1. ContainsValue(object val)
  • Returns bool
  • Returns whether the list has a given value
  • This is NOT random access to the list (like an array), and is linear using a loop from the head of the list (This operates in linear time -- (N) complexity) -- So use this sparingly.
  1. GetElementByValue(object val)
  • Returns LGDUtilities.ListElement
  • Checks the list for a given value, and returns the element (WITHOUT removing it)
  • This is NOT random access to the list (like an array), and is linear using a loop from the head of the list (This operates in linear time -- (N) complexity) -- So use this sparingly.
  1. GetElementIdxByValue(object val)
  • Returns int
  • Gets the index of an element in the list, with the given value
  • If the object val is None or not found, -1 will be returned
  • This is NOT random access to the list (like an array), and is linear using a loop from the head of the list (This operates in linear time -- (N) complexity) -- So use this sparingly.
  1. GetElementIdx(ListElement elementToFind)
  • Returns int
  • Gets the index of a given element instance, in the list
  • If the element elementToFind is None or not found, -1 will be returned
  • This is NOT random access to the list (like an array), and is linear using a loop from the head of the list (This operates in linear time -- (N) complexity) -- So use this sparingly.
  1. RemoveAt(int idx)
  • Returns LGDUtilities.ListElement
  • Removes an element at the given index idx from the list, and returns it
  1. RemoveElement(ListElement le)
  • Returns LGDUtilities.ListElement
  • Removes an element le from the list, and returns it (returns the original reference)
  1. RemoveElementByValue(object val)
  • Returns bool
  • Removes an element from the list, by the given value
  • Returns whether an element was removed
  1. RemoveAll()
  • Returns int
  • Removes EVERY element from the list, and returns the number removed
  1. InsertAt(object value, int idx)
  • Returns LGDUtilities.ListElement
  • Inserts the given value (or element) at the given index idx in the list
  • If the index is <= 0, then the element is inserted at the beginning of the list
  • If the index is >= Count of the list, then the element is inserted at the end of the list
  1. Concat(LinkedList otherList)
  • Returns `LGDUtilities.LinkedList
  • Combines THIS list with another -- with all elements of otherList at the end
  • Order of otherList is maintained when adding
  • The list elements of otherList are CLONED (but their values are NOT)
  1. Clone()
  • Returns `LGDUtilities.LinkedList
  • Clones this list, and returns the copy
  • Each element is CLONED (but their values are NOT)
  1. InOrderLog()
  • Iterates over each element, in order, and calls Log() with a basic string representation of each

Object Operator Overloads

  1. +
  • [LinkedList A, LinkedList B] Combines 2 lists (put list B at the end of A in order)
  • [LinkedList A, ListElement B] Adds an element B to the end of list A
  • [ListElement A, LinkedList B] Adds an element A to the beginning of list B
  1. -
  • [LinkedList A, ListElement B] Removes the element B from list A
  1. +=
  • [LinkedList A, ListElement B] Adds an element B to the end of list A
    • Modifies the original list A
  • [LinkedList A, LinkedList B] Combines both lists (put list B at the end of A in order)
    • Modifies the original list A
  1. -=
  • [LinkedList A, ListElement B] Removes the element B from list A
    • Modifies the original list A
  • [LinkedList A, LinkedList B] Removes the elements of B from list A
    • Modifies the original list A
ListElement

An element of a LGDUtilities.LinkedList.

  1. AddBefore(ListElement el)
  • Adds the given element el BEFORE this one by modifying each element's next/previous variables.
  • Changes el.ListOwner to self.ListOwner (but if el had a prior ListOwner, it will NOT modify that list if it was head/tail)
  • Does NOT update self.ListOwner.Count
  • Do NOT use this method unless you are careful about modifying the necessary linked lists (this method is mainly a helper for LGDUtilities.LinkedList)
  1. AddAfter(ListElement el)
  • Adds the given element el AFTER this one by modifying each element's next/previous variables.
  • Changes el.ListOwner to self.ListOwner (but if el had a prior ListOwner, it will NOT modify that list if it was head/tail)
  • Does NOT update self.ListOwner.Count
  • Do NOT use this method unless you are careful about modifying the necessary linked lists (this method is mainly a helper for LGDUtilities.LinkedList)
  1. Destroy()
  • This voids all reference variables from this list element
  • Do NOT use this method unless you are careful about modifying the necessary linked lists (this method is mainly a helper for LGDUtilities.LinkedList)
  1. RemoveFromList()
  • Returns LGDUtilities.ListElement
  • Removes this element from the element's ListOwner
  1. ToString()
  • Returns string
  • Returns a string representation of this element
  1. ElementValueEquals(object objVal)
  • Returns bool
  • Checks if this given element's value is considered equal to the provided objVal
  • If the provided objVal and this element's value are a subclass of LGDUtilities.ValueContainer, then LGDUtilities.ValueContainer.Equals() is invoked.
  • If only one is a LGDUtilities.ValueContainer, then the comparison is FALSE
  • If both are NOT a LGDUtilities.ValueContainer, then == is used
  1. Clone()
  • Returns LGDUtilities.ListElement
  • Creates a new instance of this element

Object Operator Overloads

  1. +
  • [ListElement A, ListElement B] Combines both elements into a LGDUtilities.LinkedList (with A before B)
  1. ==
  • [ListElement A, ListElement B] Compares if two list elements are EQUAL using A.ElementValueEquals(B)
  1. !=
  • [ListElement A, ListElement B] Compares if two list elements are NOT equal using !A.ElementValueEquals(B)
LocalMessageQueue

A class that dispatches LocalMessage objects to PlayerPawns and avoids overlaps if display of the messages.

Static Functions

To access functions in this class use the following syntax: class'LGDUtilities.LocalMessageQueue'.static.functionName();

  1. GetInstance(PlayerPawn pawnOwner)
  • Returns LGDUtilities.LocalMessageQueue
  • Gets a singleton reference without instantiating multiple

Instance Functions

  1. AddMessageToQueue(LocalMessageToSendSettings messageData)
  • Returns Void
  • Adds a LocalMessage to be dispatched to a PlayerPawn, given the specified settings
LocalMessageToSendSettings

A struct that describes a LocalMessage to dispatch to a PlayerPawn. Is a parameter to the function LGDUtilities.LocalMessageQueue.AddMessageToQueue()

LookTriggerHUDMutator

The HUDMutator for LGDUtilities.LookTrigger being able to show the look target indicator. The trigger will set up this mutator for you, so this shouldn't need to be interacted with.

Static Helper Functions To access functions in this class use the following syntax: class'LGDUtilities.LookTriggerHUDMutator'.static.functionName();

  1. GetCurrentPlayerLookTriggerHudInstance(Actor context, PlayerPawn pp)
  • Returns LGDUtilities.LookTriggerHUDMutator
  • Used to get the current LookTriggerHUDMutator for the given player pawn
  1. SpawnAndRegister(Actor context)
  • Returns LGDUtilities.LookTriggerHUDMutator
  • Spawns and registers this HUDMutator with the player's HUD (so it receives draw calls)
ManualTrigger

A trigger actor that is meant to be subclassed and used for other triggers, and activated programmatically.

How to subclass

  1. Override Touch() and UnTouch() to execute code when an Actor collides with this trigger and leaves the collider.

  2. Call ActivateTrigger() programmatically when you want the trigger activated.

  • This calls CanActivateTrigger() before activating
  1. Override CanActivateTrigger() to change what logic is used to determine if the trigger can be activated.
  • Call Super.CanActivateTrigger() to also check bTriggerOnceOnly and ReTriggerDelay
  1. Set CanBeTriggeredExternally accordingly
  • This determines if external actors can trigger this actor (or if ONLY the logic of this trigger can)

Subclasses

  1. ActorNearbyTrigger
  2. InventoryTrigger
  3. LookTrigger
  4. RandomTrigger
  5. UseTrigger
  6. WaitTrigger
MatchBeginMutator

A mutator used to register code to execute when a match is considered to have been started. This class is meant to be used with unique subclasses of LGDUtilities.MatchBeginMutatorCallback.

Static Helper Functions To access functions in this class use the following syntax: class'LGDUtilities.MatchBeginMutator'.static.functionName();

  1. RegisterToMatchBegin(Actor context, MatchBeginMutatorCallback callback)
  • Returns LGSUtilities.MatchBeginMutator
  • Registers the mutator, and thr associated LGDUtilities.MatchBeginMutatorCallback instance -- a callback object -- to be ran when the match begins
MatchBeginMutatorCallback

A callback to be used for executing code when a match begins. Subclass this to create your own function to be passed to LGDUtilities.MatchBeginMutator.RegisterToMatchBegin()

MathHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.MathHelper'.static.functionName();

Available Functions

  1. acos(float x)
  • Returns float
  • The math function of arccosine.
  1. asin(float a)
  • Returns float
  • The math function of arcsine.
  1. atan2(float y, float x)
  • Returns float
  • The math function of atan2.
  1. UUtoMeters(float unrealUnits)
  • Returns float
  • Converts a given numeric value of UnrealUnits, to real-world meters
  1. GetNumberEquadistantPointsAroundCircleCenter(Vector CircleCenter, float Radius, int NumPoints, Vector alignToDir)
  • Returns 'LGDUtilities.LinkedList'
  • Calculates a circle with given radius, and then positions a set number of points, given by the parameter NumPoints, at the circle radius, equally-spaced apart.
  • The given parameter alignToDir will ensure the points get created, with the circle rotated perpindicular to given vector (a vector extending from the circle cneter will point in this direction)
  1. Get3DigitTimerPartsFromSeconds(int TotalSeconds, out int ResultMinutes, out int ResultTens, out int ResultOnes)
  • Calculates 3 parts of a timer (mins, # of tens, and # of ones) given a number of seconds
  • Output variables are used to return these three components
  • These can be used to render a timer that has the format of: [MM]:[ss][s]
  1. GetDigitsOfInteger(int TargetInteger, out int DigitsArray[])
  • Returns the digits of an integer into an array (up to 11 places)
  • Used for formatting or "binning" of an integer
  1. Round(float val, optional float midpoint)
  • Returns int
  • Rounds a given float, based on the midpoint (if decimal part of float above/equal, round up, otherwise round down)
  • The midpoint is a float within the range of [0.0 -> 1.0]
  1. RoundGivenLimits(float val, optional float roundUpLimit, optional float roundDownLimit)
  • Returns int
  • Rounds a given float, based on each rounding limit (if decimal part of float above/equal to roundUpLimit round up, otherwise if below roundDownLimit then round down -- if between these, then don't round)
  • Each rounding limit is a float within the range of [0.0 -> 1.0]
  • This is the same as LGDUtilities.MathHelper.Round() if you supplied the same value for each limit

Useful Conversion Constants

To use these constants, use this code: class'LGDUtilities.MathHelper.default.constantName'.

These constants convert from one unit to another merely by multiplying them to the source unit value.

EG: 100 degrees as radians is: 100 * class'LGDUtilities.MathHelper.default.DegToRad'

  1. RadToDeg
  2. DegToRad
  3. UnrRotToRad
  4. RadToUnrRot
  5. DegToUnrRot
  6. UnrRotToDeg
  7. UnrSizeToMeters
  8. MetersToUnrSize
Matrix3x3

Represents a 3x3 matrix of float values.

Supports the * operator between a Matrix3x3 and a vector type.

MutatorHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.MutatorHelper'.static.functionName();

Available Functions

  1. GetHUDMutatorFromActivePlayerPawnByClass(Actor context, name className)
  • Returns Mutator
  • Gets an instance of a mutator, via class name comparison using Actor.IsA()
  1. GetGameMutatorByClass(Actor context, class mutatorClass)
  • Returns Mutator
  • Gets a mutator from the game mutator chain
  • Uses Actor.Level.Game.BaseMutator
  1. GetGameDamageMutatorByClass(Actor context, class mutatorClass)
  • Returns Mutator
  • Gets a mutator from the game damage mutator chain
  • Uses Actor.Level.Game.DamageMutator
  1. GetGameMessageMutatorByClass(Actor context, class mutatorClass)
  • Returns Mutator
  • Gets a mutator from the game message mutator chain
  • Uses Actor.Level.Game.MessageMutator
  1. GetMutatorBeforeMutatorInChain(Mutator mut)
  • Returns Mutator
  • Gets a mutator that is registered before this one from the game mutator chain
  • Uses Actor.Level.Game.BaseMutator
MyFontsSingleton

A singleton class that initializes and caches an instance of Botpack.FontInfo.

Static Functions

To access functions in this class use the following syntax: class'LGDUtilities.MyFontsSingleton'.static.functionName();

  1. GetRef(Actor referenceToUseForSpawn)
  • Returns Botpack.FontInfo
  • Gets a singleton reference without instantiating multiple
NameObj

A subclass of LGDUtilities.ValueContainer, which is a wrapper class for non-object values to be used in LGDUtilities.LinkedList and LGDUtilities.ListElement. This subclass is for Name values.

NetworkHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.NetworkHelper'.static.functionName();

Available Functions

  1. GetNMT(float f)
PawnHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.PawnHelper'.static.functionName();

Available Functions

  1. GetEyeHeight(Pawn Other)
  • Returns float
  • Calculates the eye-height of a given Pawn
  1. GetOffsetAbovePawn(Pawn p)
  • Returns Vector
  • Calculates the position ABOVE a given pawn based on colliders (relative to the pawn location)
  1. GetAbovePawn(Pawn p)
  • Returns Vector
  • Calculates the position ABOVE a given pawn based on colliders in global space
  1. HealPawn(Pawn p, int HealingAmount, sound HealSound, string HealMessage)
  • Heals a given Pawn by the given HealingAmount, and plays a sound with a given message when healed
  • Based o code from Botpack.TournamentHealth[State=Pickup].Touch
  1. IsBoss(Pawn p)
  • Returns bool
  • Determines if the given Pawn is a considered a BOSS by ut99.
  • This is generally used to check for XAN
  1. PredictDamageToPawn(Pawn Target, int Damage, Pawn InstigatedBy, Vector HitLocation, Vector Momentum, name DamageType)
  • Returns int
  • Using given variables, will PREDICT damage a pawn will take
  • Generally used to see if a particular damage conext will kill a pawn
  • Based on code from Pawn.TakeDamage()
  1. GetPawnFromPlayerID(Actor context, int PlayerID)
  • Returns Pawn
  • Iterates through all pawns, looking for one with the given PlayerID
  1. GetRandomPlayerPawnOrBot(Actor context, optional LinkedList PlayerIDsToExclude, optional bool IncludeSpectators)
  • Returns Pawn
  • Randomly selects a pawn / bot amongst all currently in the match
  • Can EXCLUDE specific pawns from consideration based on a list of PlayerIDs (denoted by the parameter PlayerIDsToExclude)
  • Can specify an optional boolean to indicate whether spectators (checked using Pawn.PlayerReplicationInfo.bIsSpectator)
  1. GetAllPawnsOfTeam(Actor context, byte Team, optional bool IncludeSpectators)
  • Returns LGDUtilities.LinkedList
  • Gets all pawns with a given team byte value (checked using: PlayerReplicationInfo.Team)
  • Can specify an optional boolean to indicate whether spectators (checked using Pawn.PlayerReplicationInfo.bIsSpectator)
  1. GetBestScoringPawnOfTeam(Actor context, byte Team, optional bool limitByIsPlayer)
  • Returns Pawn
  • Gets the pawn on a given team, with the highest score
  • Can optionally limit all p[awns by Pawn.bIsPlayer
  1. GetAllPlayeIDsOfTeam(Actor context, byte Team)
  • Returns LGDUtilities.LinkedList
  • Gets every PlayerID of all Pawns on a given team (checked using: PlayerReplicationInfo.Team)
  1. IsPawnDead(Pawn p)
  • Returns bool
  • Returns whether the pawn is considered dead
  • Is useful for when a pawn isn't deleted, but is hidden / is a spectator
PlayerDeathLocationMarker

A class that will be spawned by LGDUtilities.PlayerDeathLocationMutator when a player dies.

This will use LGDUtilities.IndicatorHUD to display this marker to others.

PlayerModifier

An Actor meant to test modifying player variables during a match / on a map.

Is a config object used for setting up 'LGDUtilities.TestPlayerModifierMutator'.

PlayerSpawnMutatorCallback

A callback object used for LGDUtilities.PlayerSpawnMutator to execute code based on login / spawn of a player in a match.

Is meant to be subclassed.

PlayerSpawnNotify

An actor that is meant to be used programmatically to listen for spawn events of Engine.PlayerPawn.

Static Fuctions To access functions in this class use the following syntax: class'LGDUtilities.PlayerSpawnNotify'.static.functionName();

Available Functions

  1. RegisterForPlayerSpawnEvent(Actor context, PlayerSpawnNotifyCallback callback)
  • Registers the given callback object to be executed when a PlayerPawn is spawned
PlayerSpawnNotifyCallback

A callback for LGDUtilities.PlayerSpawnNotify for executing code when a PlayerPawn spawns.

Is meant to be subclassed.

PracticeBot

A test bot to be able to spawn with custom behaviors.

Not much is different from Botpack.TMale2Bot.

ProjectileHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.ProjectileHelper'.static.functionName();

Available Functions

  1. DeleteProjectilesOfClass(Actor context, name projClass)
  • Returns int
  • Destroys all projectiles of a given class using Actor.IsA()
  • Is generally used for cleanup of projectiles that are not wanted for a weapon
  • Used also for HeadHunter.HeadHunterGameInfo to clean up 'HeadHunter.SkullItemProj'
Quat

An object that represents a Quaternion.

QuatHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.QuatHelper'.static.functionName();

Available Functions

  1. RotationToQuat(Vector Axis, float Theta)
  • Returns LGDUtilities.Quat
  • Converts an UnrealRotation to a Quaternion
RandomHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.RandomHelper'.static.functionName();

Available Functions

  1. fRandom_Seed(float Scale, out int RandomSeed)
  • Returns float
  • Generates a semi random number based on a given seed
  • The seed is updated
  • Range is from -1 to 1
  1. GetRandomRotation()
  • Returns Rotation
  • Generates a random UnrealRotation.
  1. GetRandomRotationWithLimits(optional int maxPitch, optional int maxYaw, optional int maxRoll)
  • Returns Rotation
  • Generates a random UnrealRotation.
  • Limits the rotation based in given max values for pitch, yaw, and roll
RandomTrigger

A custom trigger for randomly activating itself given configured variables for the ratio of Successes out of OutOfTotal.

RedTrigger

Is merely a test of LGDUtilities.CallbackFnObject for use in the test map 1HH-TestBox-Large.unr.

RicochetShockProj

The alt-fire projectile class of LGDUtilities.WeaponStealingShockRifle.

RotatorHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.RotatorHelper'.static.functionName();

Available Functions

  1. AlphaRotation(Rotator End, Rotator Start, float Alpha)
  • Returns Rotator
  • Calculates a mid-point rotation between 2 given rotations
  • The alpha value ranges from 0.0 -> 1.0 and is a blend variable of what percentage to go from Start and to End (similar to other Lerp functions)
  1. RandomlyVaryRotation(Rotator RotationToVary, float VaryYawByDegrees, float VaryPitchByDegrees, float VaryRollByDegrees)
  • Returns Rotator
  • Will randomly vary a given rotation by a certain amount of degrees for each pitch, yaw, and roll
  1. RandomRotationByDegrees(float MaxYawByDegrees, float MaxPitchByDegrees, float MaxRollByDegrees)
  • Returns Rotator
  • Creates a random rotation, limited by maximum degrees of pitch, yaw and roll
  1. RotatorToString(Rotator r, optional bool convertToDegrees)
  • Returns string
  • Converts a given rotator to a string representation
  1. LerpRotation(Rotator From, Rotator To, float Percent)
  • Returns Rotator
  • Linearly Interpolates a given rotator From a % closer to To based on Percent
  1. rTurn(Rotator rHeading, Rotator rTurnAngle)
  • Returns Rotator
  • Rotates one rotator by another.
  1. RotateActorUpDownLeftRightByDegrees(Actor Target, int DegreesUp, int DegreesRight)
  • Rotates a given Actor denoted by Target up/down by given degrees
  1. RotatorFromVectorOfDegrees(Vector VectorOfDegrees)
  • Returns Rotator
  • Constructs a Rotator given a Vector
  • Uses the vector components in the order of (X, Y, Z) as a Rotators components (Pitch, Roll, and Yaw) -- In that order.

Also defines operators string concatenations of Rotators

  • $=, @=, $ and @
SawtoothFunction

A subclass of LGDUtilities.TimeFunction for use with LGDUtilities.PatternLight.

This function is a standard sawtooth function: /| /| /|

ServerHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.ServerHelper'.static.functionName();

Available Functions

  1. IsPackageNameInServerPackages(Actor context, string PackageNameToLookFor)
  • Returns bool
  • Checks if a given package name, given by PackageNameToLookFor is available in ServerPackages.
  1. GetAllWeaponClasses(Actor context, optional bool OnlyIncludeBaseWeapons, optional bool ExcludeChaosUTWeapons, optional bool bLogToGameLogfile)
  • Returns LGDUtilities.LinkedList
  • Gets a list of all weapon classes the game is aware of
  1. GetClassesLoadedFromIntFiles(Actor context, string IntMetaClassToCompareTo, optional bool LoadClasses, optional int MaxClassIntNum, optional bool bLogToGameLogfile)
  • Returns LGDUtilities.LinkedList
  • Gets classes that are defined in Unreal .int files
SinFunction

A subclass of LGDUtilities.TimeFunction for use with LGDUtilities.PatternLight.

This function is a standard sign function

SingletionActor

An actor that can be used as a singleton (ensures ONLY ONE instance exists at one time).

This actor takes advantage of a "hack" by modifying the DEFAULT value of a variable.

Static Methods To access functions in this class use the following syntax: class'LGDUtilities.SingletionActor'.static.functionName();

Available Functions

  1. GetRef(Actor referenceToUseForSpawn)
  • Returns LGDUtilities.SingletionActor
  • Gets s reference to this singleton, and ensures only one instance is active at one time.
SoundHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.SoundHelper'.static.functionName();

Available Functions

  1. DynamicLoadSound (out Sound SoundObj, string SoundPackage, string SoundName)
  • Returns Sound
  • Loads a sound given a package name and sound name as a string
  1. ClientPlaySound(PlayerPawn pp, sound ASound, optional bool bInterrupt, optional bool bVolumeControl, optional float VolumeLevel)
  • Play a sound client side (so only client will hear it) -- this is forced due to this function being simulated
  1. GlobalPlaySound(PlayerPawn pp, sound ASound, optional bool bInterrupt, optional bool bVolumeControl, optional float VolumeLevel)
  • Play a sound that can be replicated (so ALL clients will hear it)
SoundToPlaySettings

A struct that describes a Sound to play for a PlayerPawn. Is a parameter to the function LGDUtilities.SoundQueue.AddSoundToQueue()

SoundQueue

A class that is used to help play sounds for PlayerPawns.

Static Functions

To access functions in this class use the following syntax: class'LGDUtilities.SoundQueue'.static.functionName();

  1. GetInstance(PlayerPawn pawnOwner)
  • Returns LGDUtilities.SoundQueue
  • Gets a singleton reference without instantiating multiple

Instance Functions

  1. AddSoundToQueue(SoundToPlaySettings soundDataToPlay)
  • Returns Void
  • Adds a LGDUtilities.SoundToPlaySettings so that a sound can play for a PlayerPawn
SqWaveFunction

A subclass of LGDUtilities.TimeFunction for use with LGDUtilities.PatternLight.

This function is a square wave function: |-||-|

StealShockBeam

A primary-fire projectile for the weapon LGDUtilities.WeaponStealingShockRifle.

StringHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.StringHelper'.static.functionName();

Available Functions

  1. ReplaceText(out string Text, string Replace, string With)
  • Replaces text in the given string Text that matches Replace with the string value of With
  1. Split(string str, string div, bool bDiv)
  1. ClearSpaces(string Text)
  1. GetPackageNameFromQualifiedClass(string ClassNameStr)
  • Returns String
  • Given a fully qualified class name, will return the package name
  1. RemovePackageNameFromQualifiedClass(string ClassNameStr)
  • Returns String
  • Given a fully qualified class name, will REMOVE the package name
StringObj

A subclass of LGDUtilities.ValueContainer, which is a wrapper class for non-object values to be used in LGDUtilities.LinkedList and LGDUtilities.ListElement. This subclass is for String values.

StringToNameHelper

An Actor that is used to convert a String value to a Name type.

This uses a "hack" by Actor.SetPropertyText() and setting a Name type variable of an instance of an Actor.

Tester

A class to be used for setting up tests, in a test map, for mods, scripts, interactions, etc.

Is meant to be subclassed, and invokes tests in the following methods, and in the order:

  1. PreBeginPlay
  • StandUp() is executed here
  • PreBeginPlayTests() is executed next
  1. BeginPlay
  • BeginPlayTests() is executed here
  1. PostBeginPlay
  • PostBeginPlayTests() is executed here

When Actor is destroyed, Destroyed() is called and then Teardown() is invoked to cleanup tests

Tester1

A tester class in use on the mod map 1HH-TestBox-Large.unr for basic tests.

Is meant to demonstrate basic usage of the LGDUtilities.Tester class.

TesterCache

Is a singleton class meant to cache and be aware of test class instances. Is meant for easy signaling / instance management during testing.

Static Functions To access functions in this class use the following syntax: class'LGDUtilities.TesterCache'.static.functionName();

  1. GetRef(Actor referenceToUseForSpawn)
  • Returns LGDUtilities.TesterCache
  • Gets and manages the instance of this classs in a game match
  • Ensures only one instance is available at one time
  1. HasATesterLoaded(Actor context)
  • Returns bool
  • Checks if a tester has been found on the map
  • Is meant for logic to check if it's in a testing context (so it can know to avoid certain actions / affect the game state)
TestMatchMessage

Is the game message class for 'LGDUtilities.TestMatchPlus'.

TestMatchPlus

A copy of Botpack.DeathMatchPlus that is used for testing out different ideas.

🚫 Is not currently different than Botpack.DeathMatchPlus, and is meant as a starting point for future testing-oriented gametypes.

TestMessagePlus

Is the player death message class for LGDUtilities.TestMatchPlus.

TestPlayerModifierMutator

Is a player mutator for testing purposes. Can modify damage between players, bots and various scenarios.

Uses an instance of 'LGDUtilities.PlayerModifier' as settings for what behavior to modify about p[layers in the match.

Static Functions To access functions in this class use the following syntax: class'LGDUtilities.TestPlayerModifierMutator'.static.functionName();

  1. SpawnAndRegister(Actor context, PlayerModifier modifierActor)
  • Returns LGDUtilities.TestPlayerModifierMutator
  • Is to be used programmafically (eg: in a gametype / mutator / in an Actor's PreBeginPlay()) to instantiate and register this mutator.
  • Instantiate LGDUtilities.PlayerModifier and change its variables to configure how this mutator behaves.

Be aware that it can get tricky if you register multiple of this mutator -- This is NOT a Singleton

TimeFunction

A class meant to be subclassed and used with LGDUtilities.PatternLight.

Represents a function, if given an X input, which is represented via a time value, and outputs a Y value. This value is used to "lerp" between a start / end value.

The function should be continuous or issues can arise.

The time function's output should be in the range of: [0.0, 1.0].

Values outside of this rangfe can yield odd results. Be wary of that when creating functions.

ToolbeltInvItem

A class to be used as a wrapper around Inventory classes, so they can be used with LGDUtilities.InventoryToolbelt to render icons on the player HUD.

  1. GetInstanceForInvItem(Inventory inv)
  • Return LGDUtilities.ToolbeltInvItem
  • Creates an instance of this class with a reference to the Inventory item.
TypeHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.TypeHelper'.static.functionName();

Available Functions

  1. classIsRelatedTo(class firstClass, class secondClass, optional bool bNoSubClass)
  • Returns int
  • Returns how the classes firstClass and secondClass are related to each other
    • -1 - if firstClass is not relationed to secondClass
    • 0 - if firstClass is the same class as secondClass
    • 1 - if firstClass is a child of secondClass
    • 2 - if firstClass is a parent of secondClass
  1. StringToName(Actor context, string str)
  • Returns Name
  • An easy method to convert a String type to a Name type
  • Is a convenience method for LGDUtilities.StringToNameHelper.StringToName()
UseTriggerHUDMutator

The HUDMutator for LGDUtilities.UseTrigger being able to show the look target indicator. The trigger will set up this mutator for you, so this shouldn't need to be interacted with.

Static Functions To access functions in this class use the following syntax: class'LGDUtilities.UseTriggerHUDMutator'.static.functionName();

  1. GetCurrentPlayerUseTriggerHudInstance(Actor context, PlayerPawn pp)
  • Returns LGDUtilities.UseTriggerHUDMutator
  • Used to get the current UseTriggerHUDMutator for the given player pawn
  1. SpawnAndRegister(Actor context)
  • Returns LGDUtilities.UseTriggerHUDMutator
  • Spawns and registers this HUDMutator with the player's HUD (so it receives draw calls)
UseTriggerHUDWeaponCallback

A callback object to be used with LGDUtilities.UseTrigger.

This callback object CAN be subclassed to change logic for activating the trigger when a Player tries using it.

If you subclass this, ensure you have this code somewhere: Super.CallbackFunc(). Without this code, the trigger will never be activated.

ValueContainer

An object used as a wrapper for various value types. It's meant to allow the ability to store a primitive as an object.

This is used with LGDUtilities.ListElement and is subclassed to acomodate primitive types of the UnrealEngine.

VectorHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.VectorHelper'.static.functionName();

Available Functions

  1. VectorFromComponents(float x, float y, float z)
  • Returns Vector
  • Constructs a Vector from given x, y and z float values.
  1. RandomVelocity(vector ExistingVelocity, bool bWaterZone)
  • Returns Vector
  • Randomly varies a given velocity ExistingVelocity by magnitude and direction.
  • If bWaterZone is TRUE then the velocity magnitude is reduced by 50%.
  1. GetBounceVelocity(vector CurrentVelocity, vector HitNormal, float CoefOfRestitution)
  • Returns Vector
  • Calculates a resulting velocity that is "bounced" along the normal, and accounts for the CoefOfRestitution parameter.
  1. isBehind(vector position, vector forward, vector target)
  • Returns bool
  • Determines if a given position (denoted by target) is considered BEHIND the given position (and the direction forward)
  1. IsDistanceLessThan(vector a, vector b, float distance)
  • Returns bool
  • Determines if a given distance between 2 Vectors is strictly less than the given distance
  • This is meant to skip the normal SquareRoot operation, and instead squares magnitudes instead.
  1. VSizeSq(Vector a)
  • Returns float
  • Calculates the SQUARE magnitude of a given vector
  1. WallFacing(Actor A)
  • Returns bool
  • Calculates if a given Actor is facing wall geometry or not
  1. VectorToString(Vector v)
  • Returns String
  • Constructs a string representation of a given vector
  1. RotateVector(out vector A, vector B, float Degree)
  1. RotBetweenVect(Vector A, Vector B)
  1. LerpVector(Vector From, Vector To, float PercentDecimal)
  1. SLerpVector(Vector From, Vector To, float PercentDecimal)
  1. GetRadiansBetweenNormalizedVectors(Vector A, Vector B)
  • Returns float
  • Calculates the number of RADIANS between 2 given vectors
  1. GetDegreesBetweenNormalizedVectors(Vector A, Vector B)
  • Returns float
  • Calculates the number of DEGREES between 2 given vectors
  1. GetAnglesBetweenVectorsAsRotator(Vector A, Vector B)
  • Returns Rotator
  • Calculates the number of DEGREES between 2 given vectors
  • Constructs a ROTATOR of the given degrees
  1. GetAnglesBetweenVectorsAsVector(Vector A, Vector B)
  • Returns Vector
  • Gets the number of DEGREES between 2 vectors
  • Constructs a VECTOR of the given degrees
  1. isPointCLeftOfLinePointsAB(float PointAX, float PointAY, float PointBX, float PointBY, float PointCX, float PointCY)
  • Returns bool
  • Given Points A,B and C (where A & B are points for a line) determines if Point C is on the left side of the line (Line is FROM point A TOWARDS point B)
  1. TwoDimensionalVectorBRelationToA(Vector A, Vector B)
  • Returns int
  • Calculates if a vector is left or right (ignoring the Z dimension) of another vector
  • < 0 : left side
  • 0 : right side

  • == 0 : in front of
  1. ClampNormalVectorAxisAnglesInRelationToAnother(Vector A, Vector B, float MaxXAngleDeviation, float MaxYAngleDeviation, float MaxZAngleDeviation, optional bool bLogToGameFile)
  • Returns Vector
  • Ensures the B vector is constrained within +- the degress in relation to the first vector A
  1. ClockwisePerpindicular2D(Vector A)
  • Returns Vector
  • Calculates the 2D clockwise perindicular vector to the given vector (ignoring the Z value)
  1. CounterClockwisePerpindicular2D(Vector A)
  • Returns Vector
  • Calculates the 2D clockwise perindicular vector to the given vector (ignoring the Z value)
  1. RoundValuesOfVector(Vector v, optional float upperLimit, optional float lowerLimit)
  • Returns Vector
  • Rounds each component of the given vector v based on the upper/lower limits
  • Used to assist with floating point rounding/conversion errors

Also defines operators string concatenations of Rotators

  • $=, @=, $ and @
VectorObj

A subclass of LGDUtilities.ValueContainer, which is a wrapper class for non-object values to be used in LGDUtilities.LinkedList and LGDUtilities.ListElement. This subclass is for Vector values.

WaitTrigger

A custom trigger that requires the colliding player to WAIT before the trigger activates.

WaitTriggerHUDMutator

The HUD Mutator that the custom trigger LGDUtilities.WaitTrigger uses to show messages on the colliding player's HUD.

Static Functions To access functions in this class use the following syntax: class'LGDUtilities.WaitTriggerHUDMutator'.static.functionName();

  1. GetCurrentPlayerWaitTriggerHudInstance(Actor context, PlayerPawn pp)
  • Returns LGDUtilities.WaitTriggerHUDMutator
  • Used to get the current WaitTriggerHUDMutator for the given player pawn
  1. SpawnAndRegister(Actor context)
  • Returns LGDUtilities.WaitTriggerHUDMutator
  • Spawns and registers this HUDMutator with the player's HUD (so it receives draw calls)
WeaponHelper

Static Helper Class To access functions in this class use the following syntax: class'LGDUtilities.WeaponHelper'.static.functionName();

Available Functions

  1. SwitchPlayerPawnWeapon(Pawn p, Weapon wep)
  • Returns bool
  • Switches the given Pawn's weapon to the given weapon
  1. StealWeapon(Pawn thief, Pawn victim, out Weapon PreviouslyHeldWeapon, out Weapon WeaponStolen)
  • Returns bool
  • Transfers a weapon (and current ammo) from the Pawn denoted by victim to the thief.
  • Output variables keep track of the previous weapon the thief held and the weapon that was stolen
  1. FindBasedWeapon(Pawn Other, class WC)
  1. FindTracePointsOfWeapon(Weapon wep, float TraceLength, out Vector TraceStartLoc, out Vector TraceEndLoc)
  • Calculates positions in GLOBAL space for a weapon's trace
  • Uses output variables to return the resulting start and end positions
WeaponStolenMessage

The message class used by 'LGDUtilities.WeaponStealingShockRifle' to display a message when a weapon is stolen.

WeaponUseCallback

A callback object used by LGDUtilities.WeaponEventListenerWeapon for responding to primary, alt, activate and use events.

This class is meant to be subclassed for custom callbacks to respond to the above mentioned events.

Map Actors
ActorNearbyTrigger

Given an actor, a number, and a "comparison" denoted by variable QuantityComparison (which is an enum of type ActorNearbyTrigger.ANT_COMPARISON), this trigger will use it's collider dimensions to check if the actor exists nearby with the specified quantity comparison (once a second).

Actor Parameters

  1. ActorsNeeded
  • Array of struct ActorNearbyTrigger.ActorNeeded
  • Has fields for ActorClass, ActorTag, NumberNeeded, QuantityComparison
IndicatorHudMapTarget

An Actor that can be added to a map to set up a target for LGDUtilities.IndicatorHUD. Has same variables as LGDUtilities.IndicatorSettings.

Actor Variables

  1. ShowIndicatorToHudOwnerTeamNum
  • Whether to show the indicator to player HUDs that are the same team as specified by LGDUtilities.IndicatorHudMapTarget.IndicatorVisibleToTeamNum
  1. IndicatorVisibleToTeamNum
  • The team number (Range: 0 - 255) to limit the visibility of the indicator to
  1. TargetsWithGroup
  • The group to find targets to show an indicator for
  1. TargetsWithTag
  • The tag to find targets to show an indicator for
  1. TargetsWithName
  • The name to find targets to show an indicator for
  1. TargetsOfClassType
  • The class to find targets to show an indicator for

The group, tag, name and class type are all combined using AND to find targets

  1. GlobalIndicator
  • Whether the indicator for the target(s) is GLOBAL or not
  1. BuiltinIndicatorTexture
  • The byte value of the enum LGDUtilities.IndicatorHUD.HUDIndicator_Texture_BuiltIn
  1. MaxViewDistance
  • The maximum distance the indicator is visible
  1. IndicatorOffsetFromTarget
  • The Vector offset of the indicator from the target(s)
  1. UseHUDColorForIndicator
  • Whether to use the player's HUD color for the indicator color
  1. UseCustomColor
  • Whether to use a custom color for the indicator(s)
  1. IndicatorColor
  • The Color of the indicator to use, if UseCustomColor is TRUE
  1. ShowTargetDistanceLabels
  • Whether to show an extra label denoting the distance to the target from the owner of the given HUD
  • Only shown if ShowIndicatorLabel is TRUE
  1. IndicatorLabel
  • The text of the label for the indicator(s)
  1. ShowIndicatorLabel
  • Whether to show a label for the indicator(s)
  • Only shown if ShowIndicatorLabel is TRUE
  1. UseTargetNameForLabel
  • When showing a label for the indicator(s), whether to use the target's name
  1. ScaleIndicatorSizeToTarget
  • Whether to scale the indicator(s) to each target's size on the HUD (to have a nice size aligned to the target)
  1. StaticIndicatorPercentOfMinScreenDimension
  • Used to ensure the scale of the indicator is a STATIC percentage of the screen's MINIMUM/SMALLEST dimension.
  • Only takes affect if LGDUtilities.IndicatorHudMapTarget.ScaleIndicatorSizeToTarget is FALSE
  1. StaticIndicatorPercentOfMinScreenDimensionWhenOffScreen
  • Used to ensure the scale of the indicator is a STATIC percentage of the screen's MINIMUM/SMALLEST dimension, when the target is OFF SCREEN.
  • Only takes affect if LGDUtilities.IndicatorHudMapTarget.ScaleIndicatorSizeToTarget is FALSE
  1. ShowIndicatorWhenOffScreen
  • Whether to show the indicator when the target is OFF SCREEN or not
  1. ShowIndicatorIfTargetHidden
  • Whether to show the indicator if the target actor is hidden
  1. ShowIndicatorIfInventoryHeld
  • Whether to show the target inventory indicator if a player is holding it
  1. ShowIndicatorIfInventoryNotHeld
  • Whether to show the target inventory indicator if a player is NOT holding it (but NOT dropped by a player)
  1. ShowIndicatorIfInventoryDropped
  • Whether to show the target inventory indicator if it was DROPPED by a player
  1. ShowIndicatorsThatAreObscured
  • Whether to show indicators from targets that are NOT in eye-sight of the player
  1. BlinkIndicator
  • Whether to blink the indicator on the player's HUD
  1. BaseAlphaValue
  • The default ALPHA value for the given indicator
  1. ShowIndicatorAboveTarget
  • Whether to show the indicator above the target (instead of centered on it)
  1. IndicatorLabelsAboveIndicator
  • Whether to show indicator labels ABOVE the indicator (instead of below, the default)
InventoryTrigger

A trigger actor that when a player/pawn collides with it, it will check their inventory for items/counts (based on a InventoryObjectsNeeded parameter).

Actor Custom Enum

  1. IT_COMPARISON
  • IT_EQUALS
  • IT_LESS_THAN
  • IT_GREATER_THAN
  • IT_LESS_THAN_OR_EQUALS
  • IT_GREATER_THAN_OR_EQUALS

Actor Custom Structs

  1. InventoryObjectNeeded
  • class InvClass
  • int NumberNeeded
  • bool RemoveUponTrigger
  • bool CompareAmmoInstead
    • If a weapon with ammo, how much is needed
  • IT_COMPARISON QuantityComparison
    • How to compare the given item / NumberNeeded

Actor Variables

  1. InventoryObjectsNeeded[32]
  • The config of objects needed for a pawn to activate this trigger
  1. InsufficientCountMessage
  • The message that's displayed when a player doesn't have the necessary items/counts
  1. Message (provided by Trigger super-class)
Key

A basic object, with a key mesh. Is made to add unique items to maps, and used in conjunction with the LGDUtilities.InventoryTrigger. Also planned to be used with LGDUtilities.InventoryToolbelt.

Keycard

A basic object, with a keycard mesh. Is made to add unique items to maps, and used in conjunction with the LGDUtilities.InventoryTrigger. Also planned to be used with LGDUtilities.InventoryToolbelt.

LookTrigger

A trigger actor that relies on the user colliding with it to trigger a HUD indicator, for which if looked at for a certain time, will activate the trigger.

Actor Variables

  1. ScaleIndicatorSizeToTarget
  • Whether to scale the look indicator to the target
  • Same as LGDUtilities.IndicatorSettings.ScaleIndicatorSizeToTarget
  1. StaticIndicatorPercentOfMinScreenDimension
  • Used to ensure the scale of the indicator is a STATIC percentage of the screen's MINIMUM/SMALLEST dimension.
  • Same as LGDUtilities.IndicatorSettings.StaticIndicatorPercentOfMinScreenDimension
  1. UseHudColorForIndicator
  • Whether to use the player's HUD for the indicator color
  1. ShowIndicatorWhenObscured
  • Whether to show the indicator if the target is not in line of site
  1. IndicatorOffsetFromTriggerActor
  • The offset from the target that the indicator should be displayed
  1. IndicatorColor
  • The color of the indicator (unless overridden by UseHudColorForIndicator)
  1. ShowLookMessage
  • Whether to show a message to explain / help the user look at the target
  1. LookMessage
  • The message to show if ShowLookMessage is true
  1. ShowTargetLookCircle
  • Show a small circle for the player, so they can use that to center inside the indicator to activate the trigger (like a crosshair / reticle)
  1. ShowTimeLookedAt
  • Show the elapsed time the player has looked at the target
  1. ShowTimeRemaining
  • Show time remaining to look, in order to activate the trigger
  1. ShowTimeCountingDown
  • Show the time remaining as a counter, counting down
  1. ShowMessagesAfterActivated
  • Show the player a message after the trigger is activated
  1. ShowRetriggerCooldownMessage
  • Show a message when the trigger needs to cooldown before attempting to reactivate
  1. ShowCooldownTime
  • Show the time to cooldown, before allowing the trigger to be looked at / trigger activation
  1. ShowCooldownTimeRemaining
  • Show the cooldown time as time remaining
  1. LookTimeToTrigger
  • How long a player needs to look at the indicator to activate the trigger
  1. BaseAlphaValue
  • The base / default alpha value for the indicator the player is supposed to look at
PatternLight

An actor that is used to blink a light based upon a pattern specified by a LGDUtilities.TimeFunction object.

UseTrigger

A custom trigger where the PlayerPawn who collides has an option to USE the trigger, which activates it.

The PlayerPawn's weapon is lowered, and replaced with a unique weapon without a model, where if you "fire" this wepaon and are aimed at the target, the trigger is considered "used" and activates.

Actor Variables

  1. ScaleIndicatorSizeToTarget
  • Whether to scale the look indicator to the target
  • Same as LGDUtilities.IndicatorSettings.ScaleIndicatorSizeToTarget
  1. StaticIndicatorPercentOfMinScreenDimension
  • Used to ensure the scale of the indicator is a STATIC percentage of the screen's MINIMUM/SMALLEST dimension.
  • Same as LGDUtilities.IndicatorSettings.StaticIndicatorPercentOfMinScreenDimension
  1. UseHudColorForIndicator
  • Whether to use the player's HUD for the indicator color
  1. ShowIndicatorWhenObscured
  • Whether to show the indicator if the target is not in line of site
  1. IndicatorOffsetFromTriggerActor
  • The offset from the target that the indicator should be displayed
  1. IndicatorColor
  • The color of the indicator (unless overridden by UseHudColorForIndicator)
  1. ShowUseMessage
  • Whether to show a message to explain / help the user the trigger
  1. UseMessage
  • The message to show if ShowUseMessage is true
  1. ShowIndicator
  • Whether to show an indicator for the user to aim at to use this trigger
  1. BaseAlphaValue
  • The base / default alpha value for the indicator the player is supposed to look at
  1. TriggerCallback
  • A use callback object to execute when a use attempt is attempted
  • Defaults to LGDUtilities.UseTriggerHUDWeaponCallback

About

A collection of my hand-made mods for one of my my favorite games - Unreal Tournament '99!

License:Other


Languages

Language:UnrealScript 99.9%Language:Batchfile 0.1%