SkillAgentSearch skills...

Ut99Mods

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

Install / Use

/learn @1337GameDev/Ut99Mods
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <a href="https://github.com/OldUnreal/UnrealTournamentPatches" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/game%20version-GOTY v469c-orange.svg" alt="Game Version" /></a> <a href="https://github.com/1337GameDev/Ut99Mods/stargazers" target="_blank" rel="noopener"><img src="https://img.shields.io/github/stars/1337GameDev/Ut99Mods.svg" alt="Stars" /></a> <a href="https://github.com/1337GameDev/Ut99Mods/blob/main/LICENSE.md" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License" /></a> <a href="https://github.com/1337GameDev/Ut99Mods/releases/" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/latest-v1.2.0-green.svg" alt="Version" /></a> </p>

<p align="center"> <img src="https://github.com/1337GameDev/Ut99Mods/blob/main/Github/Icons/ut_logo.png?raw=true" width="100" height="100" title="Ut99 Logo" alt="Ut99 Logo" height="35px" width="35px"> Ut99Mods <img src="https://github.com/1337GameDev/Ut99Mods/blob/main/Github/Icons/ut_logo.png?raw=true" width="100" height="100" title="Ut99 Logo" alt="Ut99 Logo" height="35px" width="35px"></p>

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

Useage :video_game:

To merely use the pre-compiled packages, navigate to <a href="https://github.com/1337GameDev/Ut99Mods/releases">Releases</a> 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.

:warning: 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).

<span style="font-size:20px;color:#eb7d34"></span> NOTE: <span style="font-size:20px;color:#eb7d34"></span> 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 <a href="https://chaoticdreams.org/chaosut-download/">here (ChaosUT)</a> and <a href="https://community.pcgamingwiki.com/files/file/133-unreal-tournament-bonus-pack-1/">here (Relics - Epic Bonus Pack #1)</a>. 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 :wrench:

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 :page_facing_up:

<details> <summary>Weapons</summary> <blockquote> <details> <summary>C4 (Weapon)</summary> <blockquote>

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

Inventory group: 0 (same as BotPack.Translocator)

<details> <summary>Usage</summary> <blockquote>
  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
</blockquote> </details> </blockquote> <blockquote> <details> <summary>Special Interactions</summary> <blockquote>
  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
</blockquote> </details> </blockquote> <blockquote> <details> <summary>Mutators</summary> <blockquote>
  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)
</blockquote> </details> </blockquote> <blockquote> <details> <summary>Extra Details</summary> <blockquote>
  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)
</blockquote> </details> </blockquote> </details> <details> <summary>The Gibber (Weapon)</summary> <blockquote>

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)

<details> <summary>Usage</summary> <blockquote>
  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)
</blockquote> </details> </blockquote> <blockquote> <details> <summary>Healing</summary> <blockquote>
  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
</blockquote> </details> </blockquote> <blockquote> <details> <summary>Special Interactions</summary> <blockquote>
  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
</blockquote> </details> </blockquote> <blockquote> <details> <summary>Mutators</summary> <blockquote>
  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 **

Related Skills

View on GitHub
GitHub Stars8
CategoryDevelopment
Updated11mo ago
Forks1

Languages

UnrealScript

Security Score

67/100

Audited on Apr 16, 2025

No findings