## Versions

### Latest public finalized build

The latest public version is UTeamFix 9b (dated 2003-01-10) which is now widely used and also widely available. Version 9b has all sources included, mostly for studying purposes for people since I never wanted people to really copy my code or rip it for their own uses. But I left the code in so people could learn... and I usually granted people to use the code for whatever they wanted anyway :)

This will radically change with past 9b versions for private reasons, just head over to the license text (see links on the left side) to update yourself on the new End User License Agreement which will apply to all UTeamFix versions above 9b. 9b itself will remain as is and you can go on to use it for code-studying purposes if you like.

### Development versions

In this paragraph I will be listing all versions in development. Needless to say this page will undergo changes over time.

UTeamFix 9D t-3 (public testing, May 2004)
Issue | Status
--- | ---
Weapon Priority Configuration back-mapping: UTeamFix replaces all guns with its own versions in order for some features to work properly (most aimed at future features to come). Many players, being unaware how Unreal manages weapon priorities by classnames, complained it messed up their chosen preferences. From their point of view, they were right. Technically, they were wrong, because the guns UTeamFix uses only look like Unreal guns, but are not. Normally players would just have to edit their ini file and enter the correct UTeamWeapon classnames into their priorities to fix this. Since all mods behave similar I took it for granted this was public knowledge. Anyway, to help avoid confusion I have installed a mapping table which translates all new gun-class names back to the original ones. This way, players do not notice they are NOT using original Unreal guns, indeed their configuration will be untouched (no UTeamWeapon entries) and all changes to their local configuration in weapons priorities will have immediate online effect due to the translation table. Also, some non-standard guns are now translated back to one old gun, e.g. the "Zark" is mapped on the Rifle, so is the "Dualmag" mapped back to the "Automag" too (just like the normal Automag-replacement). | added
BUG: Forcefield pickup required X+1 inventory copies to be used X times - reported by {hLk}Chris. | fixed
SET / GET / SUMMON auto-resolve: This is a tricky one. For security reasons, the commands SUMMON, SET and GET had to be restricted as to which classes they can access. As a side effect it would always be necessary to specify the FULL classname (e.g. "UnrealShare.Cow", not just "Cow"). This has been improved that you will be good enough with just the classname. In some instances you WILL still have to specify the full classname though ("admin set serverdog.a a command"...). | added
Domination collision height: Players could only capture a Domination Point by walking through them - jumping through would have no effect. | fixed
Domination sounds (nothing fancy | added
Negative score limit (TeamGame only): Game will end also if one team reaches the set fraglimit in negative points. | added
Solo-map-server denial | added
MUTING specific players | added
Vampire bug: Players could get extra health by damaging themselves while having spawnprotection. | Fixed
Domination | added
Player punishment not working while invulnerable, but would still display "punished" message. | Fixed
Master admin password protected from change by individual admins (only master admin can change). | Fixed
Spectator transferred to UTeam fully. | Fixed
log all unspecific admin commands | added
get/set restriction (security feature) | added
Administrators are being told they are admins - that's in case Announce Admins is false... | added
Change Tournament mode from within game. This function was named chris because {hLk}Chris requested it and DONATED! | added
Amplifier bug: wasn't always found in inventory. | Fixed
KOTH bug, King with AMP could lose glow. | Fixed
Ported all guns... | :-/
LOGIN bug: all players are announced as admins (reported by }TCP{Carnage) Cause: Sleepyness again... duh... | fixed
MUTATOR bug: chain break Cause: CheckReplacement() on subsequent mutators always called by the Unreal engine before one mutator can complete its own replacement operation. Remedy: UTeamFix mutators will now deny replacing anything when another mutator is still working on it and checkreplacement will be recalled by the ROOT mutator after the mutator in question is finished. Another perfect example of Epic code screwup... | fixed
Manual errata (reported by Pitbull) Cause: Sleepyness... | fixed
MUTATOR: Rotation bug (reported by Pitbull) Cause: bRotatingPickup and RotationRate are not correctly taken over by Unreal. Settings must be defaulted BEFORE spawning a replacement. The fix is incomplete in so far as this will only check if the default rotationrate is not used, and then put it to not rating at all. Custom rotation rates (rarely used) will not be reused in a replaced item. | fixed

UTeamFix 9c t-3 (given to 7 admins, April 2004)
Issue | Status
--- | ---
SPECTATOR HAS NO ACCESS TO SPECIAL FUNCTIONS Cause: Simple, the spectator hasn't been included in the new class tree alas it's the old spec... | known bug postponed
Sometimes bots still run around even if game has ended. likely cause: wrong state... | known bug needs research
Sometimes the Spawnprotection is still on bots even if they got gun likely cause: pickup happens at spawn-moment, handlepickupquery() called before adddefaultinventory() | known bug needs research
bHumansOnly active, Skaarj can still enter | fixed
bHumansOnly active, Skaarj bots can't enter but no other will either from then on | known bug will be fixed but when??
Immediate join of several players/bots cause kills and wrong scores Causes: stupid StartSpot selection, all bots join at same time, and killed() called BEFORE PlayerReplicationInfo is replaced with correct class | known bug will be fixed
New features require longer init time on the server. If players join too early things may be messed up a bit Resolve Deny entry at prelogin() if init incomplete | fixed
force enable typekills in team | will be added
5000 charge on replaced forcefield | temporary setting for tests
Vampire | added
Added a Debug Assert(false) to the pickup function on playerpawns. Normally, a server will CRASH if the picked up item is None (because of Assert(NewItem!=None)), which is a major flaw in the mutator chain calling hierarchy (see below - grief...). I didn't just fix the mutator chain I also prevented the whole assessment from crashing the server (in case the mutator fix fails at some point). | someone kick Epic Ass
BUG: MUTATORS calling hierarchy interoperation - replaced items would cause a call hierarchy to following mutators (checkreplacement()) BEFORE the original item was destroyed. Chained mutator replacements would cause havok and crash the server. I think that's why Epic never bothered fixing the mutators in Unreal because they are lousy morons when it comes to efficient algorithms - AT LEAST HERE! I-D-I-O-T-S!!! If you just leave in the original item (as Epic did it) you won't get this bug of course since the reference remains in the chain, but that's where you get double items on Terran Weapon Matches which is just plain DUMB! Sorry for ranting but they REALLY REALLY REALLY screwed up there! | FIXED!
Zark | added
Dark Match support | added
BUG: no more messages sendable after a bit when server is PAUSED | fixed
KOTH bAlwaysRelevant to KING | added
HUD team game - Gold Skull no show | fixed
HUD reworked and modulized | added
King Of The Hill support | added
IllegalStringResolve in Tech settings | fixed
bMegaSpeed working? | needs testing
bMultiPlayerBots is obsolete Remedy: Restructuring of base classes | incomplete
broke compatibility with MonsterMash 1.6 :-( Remedy: Integrate MM into UTeamFix | planned
new authorization | added
individual admin authorization Administrators can now login either by using the master administration password -OR- using a known username/password combination. Admins using a personalized "account" logging in to a completely password protected server MUST use the registered username as playername. Passwords are case-sensitive, user names are NOT! | added
individual player authorization | planned
LAG TEST!!!!!! GO TESTING PEEPS | unresolved
Readme: aircontrol missing | fixed
Readme: admins are not idle kicked | fixed
Readme: Prowler credits noobdm | fixed
Readme: missing command ktbanshow | fixed
Readme: missing command ktunban | fixed
HUD 224 client Accessed None on DrawTeamGameSynopsis() | fixed
Configurations split and externalized | added
Tons of bugs (old Unreal) in damage assessment against critters in teamgames | fixed
Scoring bugs (old Unreal) vs critters in teamgames | fixed
9b BUG: ForceRespawnTimer did not destroy itself when player was leaving before respawn | fixed
Powerful new mutator base class enables for a lot better mutator customizing | added to grow :)
Administration login during game | added
Announcenment of admins (optional) - logging of admin logins (during game) and FAILED ADMIN LOGIN ATTEMPTS | added

UTeamFix 9 to 9b (2003-01-10) - final public release
Issue | Status
--- | ---
Scoreboard now shows Team Kills (not in DM mode) | added
Team Change does not influence scores | added
Typekills can be turned off (DM only, not team!) | added
Scoreboard now shows MOTD (Message Of The Day) if display bigger or equal to 800x600 and you're actually on a server | added
alternate human skin package replaced with the missing skins filled with Infiltration team skins. Big thanks to [Sixpack]Shambler and all people involved in Infiltration development (lol that would include even me haha) | added
FairPlay options added: TypeKills can be turned off (ignored), DM only Spawnkills can be turned off | added
Admin command to mute/unmute spectators during game | added
all new spectator HUD displays name and health of anyone in the display displays name and health of player in chasecam has the improved message display of the player HUDS :-D | added
Scoreboard now displays Timelimit and Fraglimit | added
Command "viewid" for spectators | added
IP Address is logged AFTER a player enters (only as convenience) The logging BEFORE login is complete can be inaccurate :/ | added
Networking settings "FastTimeOut" and "MinTimeBetweenLogins" | added
no eyeball / pawn joins (except for admins if they REALLY want 8) | fixed
admin messages | added
admins can see IPs manually in game (without ServerDog) | added
forced respawn (optional) - requested by WingZero | added
temporary kickban feature (based on mapchanges as "time") | added
automatical team balance (Team only) | fixed
setfraglimit / settimelimit for admins during game | added
BUGFIX on Unreal 224 in teamgame, suicides (killer==none) hurt wrong teamscore! | fixed
LIELite | added
BUG - 224 standard skins selection would not work in team | fixed
added communication interfaces for Smartball's Antibot, BOZO's IPLogger and Lesser Talent's KickBan utility | added
more admin commands | added
Scoreboard will now always show teamscores of existing teams, even if no players are on one of those teams | fixed
invul delay for picking up a GUN first instead of other items | added
Scoreboard now shows Score and frags separated | added fixed
Scoreboard now shows online time of players - requested by WingZero | added
in DM when game ends, you now see the WINNER instead of yourself, (basic code idea by Smartball) this also works for bots :-D In TEAM game, you see the player with the highest score of the winning team. In all cases, if 2 players have the same score, the one with less deaths is assumed winner (no further breakdown on teamkills and frags...) - requested by WingZero | added
New Spectator class to use specsay | added
TournamentMode (Simple) | added
People will stay in "non ready mode" when changing team during "non ready" and will NOT be force-respawned | added
Real Tournament mode added - all players click to signal I am ready before match starts | added
killsprees etc (main code by Smartball) | added
Dual Automags (code by Smartball, based on Bane's Akimbo) - requested by WingZero | added
UTFSkaarjPlayer (code by Smartball, sound problem fixed and made Skaarj SLIGHTLY more human like in size, collision etc...) | added
"simplified" scoreboard version (Team Only) - requested by WingZero | added
team color boxes | added
"UT_Style" Tournament Mode | added
new Automags (if used) have all 50 ammo on pickup - requested by WingZero | added

UTeamFix 8 (2002-11-09)
Issue | Status
--- | ---
Scoreboard now displays ID | added
BUG: Bots with wrong ID | fixed
Start-ID is now 1, not 0 | fixed
ScriptWarning when bots are added | fixed
Critical (illegal) String resolve variable | added
Prelogin worked over, new error messages (like Spectator spots all used but you can join as player etc...) | added
hopefully fixed another server crash issue | :-/
Fast rejoin protection | fixed
alternate human skin package | added
HardCoreDamage and HardCoreMode are now independent from one another! | added
Several Scoreboard bugfixes | fixed
Messed up INT file | fixed

UTeamFix 7 (2002-10-10)
Issue | Status
--- | ---
Scoreboard cleanup | fixed
login completely overhauled admins can join full server admins can join full teams admins can join non-existent teams(!!) | added
Spectators can join full servers if MaxSpecators not yet reached and CountSpecsAsPlayer=false | added
Admin / GamePW overriden - YOU NEED TO RESET THEM IF YOU UPGRADED | :-/

UTeamFix 6 (2002-10-07)
Issue | Status
--- | ---
illegal option values will be resolved to <<critical>> now | fixed
server crash issue | fixed

UTeamFix 5 (2002-09-10)
Issue | Status
--- | ---
enhancement: clarified "illegal" team code | added
autokill BOTS on illegal teams | fixed
ecplicit destruction of PlayerReplicationInfo of clean255() killed Players (and Bots) | added
Scoreboard now shows team of spectators in a colored "taint" | added
Scoreboard minor improvement when NOT to show header | fixed

UTeamFix 4 (2002-08-13)
Issue | Status
--- | ---
BUG: Spectators didn't show up correctly in scoreboard if more than 1 spectator was present (silly bug pff...) | fixed
kicked one obsolete reference in the replicationinfo which I just oversaw after optimizing the code a bit :) | fixed

UTeamFix 3 (2002-08-10 to 2002-08-11)
Issue | Status
--- | ---
FAIL teamchange if not allowed and tell player - but normal "teamchange" at login time. Also, Spectators may freely change team. | fixed
"clean255" function added just in case bots or even players somehow still get the illegal team id, just type "admin clean255" to kick all "illegal team players" (including those "ghost" pawns...) | added
Spectators now shown in Scoreboard | added
PLAYERS have improved HUD better teamsay better event display The HUD code was partly originally done by mouse from squirrelsoftware, since I have taken something from the RealCTF HUD code. Big thanks to mouse for allowing me to use any part of RealCTF for non-commercial use. | added
Added SkaarjTrooper skins. As mentioned before, the original red and blue skins were done by squirrelsoftware. The green and gold skin were achieved by changing the palette of the existing ones... | added
BUG: sortscores() doesn't sort | fixed
BUG: Gold Teamskin not shown when players login with "255" team and are then assigned to gold team | fixed
DeathCounter | added
Overrode addbot() function corrected ReplicationInfo corrected log- error-message if Skaarj-bots fail to spawn because "humans only" set | fixed

UTeamFix 2 (2002-08-08)
Issue | Status
--- | ---
BUG: set gold teamskin if gold selected but maxteams lower than 4 | fixed