Created
May 16, 2017 03:17
-
-
Save mGm-Lizard/a6952aab4ac8886a25c4a2f56fb2dc52 to your computer and use it in GitHub Desktop.
UAdminModV095b readme file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//============================================================== | |
// UAdminMod | |
// Version: 0.9.5 BETA | |
// | |
// Author: TBone | |
// Email: TBone@Fragskill.com | |
// Web: www.Fragskill.com | |
// | |
// Using this mutator as a base is PROHIBITED. | |
// Reworking and redistributing this mutator is PROHIBITED. | |
// | |
// Copyright (c) 2004. | |
// All rights reserved. | |
//============================================================== | |
This release of UAdminMod is a public beta. There are no known | |
issues with any of the features, however, if you feel you have | |
found a bug, please email me as soon as possible so that it can | |
be investigated and resolved. | |
Ideas for features and feedback on current features is welcome | |
and highly encouraged. If you have something to say, please do | |
so in this thread at the Atari Server Administration forums: | |
[THREAD] | |
1. Description | |
2. Installation | |
3. Configuration (Includes Quickstart) | |
4. General Commands | |
5. Team Balancer | |
6. Reserved Slots | |
7. Server Messages | |
8. Automatic Login for Admins | |
9. Silent Admins | |
10. Name/Nick Filter | |
11. Reserved Nicks | |
12. Ping Watcher | |
13. Known Issues | |
14. Planned Features | |
15. Credits | |
1. Description | |
NOTE: RUNNING THIS MUTATOR WILL *NOT* DISQUALIFY YOUR SERVER | |
AS A "STANDARD SERVER"! DO NOT ADD THIS MUTATOR AS A SERVER | |
ACTOR! IT WILL NOT WORK PROPERLY IF YOU DO THAT! | |
Inspired by the orignal AdminMod from Half-Life, UAdminMod | |
was created to put the control of YOUR server back into | |
YOUR hands. UAdminMod provides Reserved Slot functionality, | |
a custom messaging system for displaying server messages, | |
a slew of commands to help keep your players "in line", a | |
team balancer, chat log, chat filter, nick/name filters, ping | |
watcher, silent administration, and even automatic admin login | |
when an admin joins the server. All of these features are | |
highly configurable and can easily be enabled/disabled. | |
All command usage, blocked nicks, etc, will be logged to | |
/UT2004/UserLogs/UAdminMod.log | |
NOTE: This mutator has a built-in feature to protect against | |
the Unreal Tournament 2004 server exploit detailed here: | |
http://www.securityfocus.com/bid/9840/info/ . There is no | |
guarantee that UAdminMod will protect against this exploit. | |
2. Installation (Server Only) | |
NOTE: This mutator will not load in Single Player/Instant | |
Action. It's sole intended purpose is to be run on a UT2004 | |
server (Listen or Dedicated). | |
To install this mutator, extract the following files to | |
UT2004's 'System' directory: | |
UAdminModV095b.u | |
UAdminModV095b.int | |
UAdminModV095b.ucl | |
The UAdminModV095b.u.uz2 file is simply a compressed version | |
of the .u file. If you have a redirect server, place the | |
.uz2 file in the appropriate directory. Otherwise, discard | |
it. If you have absolutely no idea what I'm talking about, | |
discard it. | |
Next, you need to add the mutator to your ServerPackages. | |
Do this by opening your server's configuration file (usually | |
UT2004.ini) and finding the [Engine.GameEngine] section. | |
Somewhere in this section, add the following line: | |
ServerPackages=UAdminModV095b | |
Once you've done this, you need to tell your server to run | |
UAdminMod. This is just like running any other mutator. Add | |
it to your server's commandline and in the appropriate MapVote | |
settings (if you're using MapVote). | |
Commandline example: | |
ucc server CTF-Maul?game=xGame.xCTFGame?Mutator=UAdminModV095b.UAdminMod,DualAssaultRifles2k4.DualAssaultRifles log=server.log | |
Finally, you need to copy the contents of UAdminModV095bINI.txt | |
to your server's configuration file (UT2004.ini by default). If | |
you don't care about configuring UAdminMod at all, you can skip | |
this step; the settings will automatically be added to the file | |
the next time you start your server and UAdminMod will run with | |
its default settings. | |
3. Configuration (Server Only) | |
QUICKSTART: | |
Nothing *needs* to be configured. By default, all commands | |
will be available to admins and the balance teams command | |
will be available to all players. All command executions | |
will be logged to UT2004/UserLogs/UAdminMod.log, and the | |
rest of the features will be disabled. | |
SLOWSTART: | |
First off, each of the admin commands can be enabled or | |
disabled by setting bEnabled to true or false in their | |
respective section. This is pretty self-explanatory. For | |
instance, to disable the uam_slay command, go to the | |
section labeled [UAdminModV095b.UAMSlay] and change bEnabled | |
to false. | |
Some sections (ie, [UAdminModV095b.UAMBalanceTeams]) have | |
a setting called bAdminCmdOnly. When false, any user can | |
execute the command. When true, a user must be logged in | |
as an admin in order to execute the command. By default, | |
anyone can run the balance teams command, help command, | |
and players command. All other commands are restricted to | |
administrators only. | |
Another item to note is bUseAdminName. This only pertains | |
to punishment commands (slay, slap, llama, etc). It defaults | |
to true, which means that the server message broadcasted | |
will include the admin's name... ie, "Frogger froze TBone". If | |
false, the admin's name will not be revealed (though the log | |
of the command will have the admin's name)... ie, "an Admin | |
froze TBone". | |
Most sections and properties relating to UAdminMod are | |
pretty self-explanatory, but here are some details. The specific | |
sub-systems of UAdminMod are described in their respective | |
sections. | |
[UAdminModV095b.UAdminMod] | |
bNotifyOfUAM=true | |
If true, a message will be broadcast to your players that | |
the server is running UAdminMod. The frequency of this | |
broadcast is determined by iNotifyInterval. | |
iNotifyInterval=300 | |
The frequency (in seconds) that users are notified that | |
your server is running UAdminMod. It is set to every | |
300 seconds by default. | |
[UAdminModV095b.UAMBroadcastHandler] | |
bLogChat=False | |
If true, all chat is logged to /UserLogs/UAdminMod.log. | |
bFilterChat=False | |
If true, chat will be filtered for the words you | |
specify. | |
BadWords=? | |
You can add a BadWords entry for every word you want | |
bleeped out of the chat. You can have up to 50 entries. | |
Adding a BadWords entry is just like a CustomMessages | |
entry or a ServerPackages entry. | |
[UAdminModV095b.UAMSlap] | |
iSlapDamage = 10 | |
This is the amount of damage done to a target player | |
when slapped. | |
fSlapMomentum = 100000.000000 | |
This is the amount of momentum the target player receives | |
from a slap. I do not recommend setting this higher than | |
100000.000000; otherwise, you're pushing people halfway | |
across the map. | |
[UAdminModV095b.UAMFreeze] | |
iMaxFreezeTime=20 | |
This is the maximum amount of time a player will remain | |
frozen. Once this time has elapsed, they will be dealt | |
with in accordance to bDeathAfterFreeze... | |
bDeathAfterFreeze=true | |
If true, the player will be killed if iMaxFreezeTime | |
elapses before someone else kills them. If false, they | |
will be "unfrozen" without being killed at the end of | |
iMaxFreezeTime... but that's no fun, so leave it set to | |
true. | |
[UAdminModV095b.UAMGameRules] | |
bAllowFFAgainstFrozen=true | |
If true, frozen players can be hurt/killed by their team | |
for the duration of their freeze. I put this option in | |
since most times, an unscrupulous player is typically | |
hurting his own team rather than the enemy, so it's his | |
own team who should get the revenge. Setting this to | |
true will not prevent the other team from hurting or | |
killing him - it just also allows his own team to come | |
after him. | |
bAllowFrozenSuicide=false | |
When false, frozen players will not be allowed to suicide. | |
If you set this to true, frozen players will be allowed to | |
kill themselves if they are frozen. That sort of defeats | |
the purpose of being frozen, so I recommend leaving this | |
set to false. | |
[UAdminModV095b.UAMBalanceTeams] | |
bAdminCmdOnly=false | |
If false, any player can execute the command. If true, | |
players must be logged in as an admin to use it. | |
NOTE: bEnabled for UAMBalanceTeams only refers to the enabling | |
of the MUTATE UAM_TEAMS command. This setting is independant | |
from the rest of the UAMBalanceTeams options (aka, Team Balancer). | |
NOTE #2: UAdminMod no longer broadcasts the availability of the | |
balance teams command at a regular interval. The reason for this | |
is I decided that it was only necessary to inform players that | |
the command is even available is if someone is complaining about | |
the teams in the first place. So, if I say "even the stupid teams!" | |
in the chat area, UAdminMod will broadcast the availability of the | |
command to all players. Of course, if I just type "teams", | |
UAdminMod will attempt to balance the teams (if bEnabled is True and | |
bAdminCmdOnly is false; or if I'm an admin). | |
The rest of the configuration deals with each particular section. All | |
of them are disabled by default, so if you don't need/want them, you | |
are finished. | |
4. General Commands | |
When applicable, 'PlayerID' refers to the target player's unique | |
player ID. These IDs can be obtained by typing MUTATE UAM_PLAYERS | |
in your console, or UAM_PLAYERS into your chat. 'PlayerName' refers | |
to the player's name or part of his/her name. Executing a command | |
against 'bon' will match 'TBone', 'Ebony', and 'James_Bond'. | |
When specifying a command by player name, you must specify at least 3 | |
characters of that player's name. Remember: anyone who's name | |
contains those 3 (or more) characters will receive the command. | |
Commands can be issued/executed in two ways: through the console or | |
through your chat. | |
CONSOLE: MUTATE <command> <optional target> | |
CHAT: <command> <optional target> | |
Command: UAM_HELP | |
Description: Displays the list of UAdminMod commands in | |
the console. | |
Command: UAM_PLAYERS | |
Description: Displays a list of players and their player | |
IDs in the console. | |
Command: UAM_SWITCH <TARGET> | |
Description: Moves target to the other team. | |
Command: UAM_FREEZE <TARGET> | |
Description: Prevents target from moving until they respawn. How | |
long they are frozen depends on how you've configured | |
the command. | |
Command: UAM_LLAMA <TARGET> / UAM_UNLLAMA <TARGET> | |
Description Changes name to "Llama" and prevents them from speaking | |
coherently... Oorgle! Players will have the ability to | |
change their names back to whatever they please, but | |
they will not be able to speak "well" until you | |
uam_unllama them. There is a max of 25 entries in the | |
llama list. Once the list is full, the oldest entry is | |
removed to make room for a new entry. If/when you | |
unllama a player, their name will be changed back to | |
their original name. | |
Command: UAM_MUTE <TARGET> / UAM_UNLLAMA <TARGET> | |
Description Changes name to "Muted" and prevents them from speaking | |
at all. Players will have the ability to change their | |
names back to whatever they please, but they will not be | |
able to speak until you uam_unmute them. There is a max | |
of 25 entries in the mute list. Once the list is full, | |
the oldest entry is removed to make room for a new entry. | |
If/when you unmute a player, their name will be changed | |
back to their original name. | |
Command: UAM_RESETSCORE <TARGET> | |
Description: Resets their score to 0. Useful if someone is exploiting | |
a map or something of the like, and is just racking up | |
points. | |
Command: UAM_SLAP <TARGET> | |
Usage: [mutate|Say|TeamSay] uam_slap [PlayerID|PlayerName] | |
Description: Slaps them and detracts a small amount of health | |
(10 hit points by default). | |
Command: UAM_SLAY <TARGET> | |
Description: Kills them. Use with mercy. Between the deafening | |
thunder, the blinding lightning, and the Sphere of Death, | |
getting slayed really sucks. | |
Command: UAM_TEAMS | |
Description: Evens the teams. If one team has 2 or more players than | |
the other team, UAdminMod will begin shifting players over | |
to the shorthanded team, beginning with the newest player | |
to join. By default, this is a public command. You do not | |
need to be logged in as admin to use it, however, admins | |
can disable the public use of this and restrict it to | |
admins only. | |
Command: UAM_VOMIT <TARGET> | |
Description: Causes them to chuck all of his/her inventory. They will | |
not be able to pick up anything until they respawn. | |
Have some cool ideas for more commands? Let me know!!! | |
5. Team Balancer | |
Thanks to excellent community feedback, UAdminMod now has a VERY | |
robust set of features and options for keeping your teams even. | |
Locate the section [UAdminModV095b.UAMBalanceTeams] in your server's | |
configuration file. | |
bBalanceOnPlayerExit=False | |
When true, UAdminMod will examine the teams whenever someone | |
exits. If they are uneven, UAdminMod will balance the teams | |
according to the standard rules (moving the newest player on | |
the overloaded team over to the shorthanded team, wash rinse | |
repeat until teams are even). | |
bMonitorTeamSwitches=False | |
When true, UAdminMod will monitor team switches and take | |
various actions on them depending on the circumstances. What | |
actions are taken depend on bReportOnTeamSwitchesand | |
bUndoBadSwitches. See below; | |
bReportOnTeamSwitches=False | |
If bMonitorTeamSwitches is True and bReportOnTeamSwitches is | |
True, UAdminMod will broadcast team change events to other | |
players to make them aware of what's happened. For instance, | |
if someone changes from the winning team to the losing team, | |
a message will be broadcasted informing other players of his | |
good deed. If a player switches to the winning team, a | |
message will be broadcasted informing players of his treachery. | |
If a player switches teams in an effort to balance them, that | |
will also be broadcast on appropriately. | |
bUndoBadSwitches=False | |
(This is only applicable if bMonitorTeamSwitches is True) If | |
bUndoBadSwitches is True, then UAdminMod will undo team changes | |
that were considered "bad", such as switching to the winning | |
team or unevening the teams. | |
bEnabled=True | |
THIS OPTION ONLY REFERS TO THE AVAILABILITY OF THE UAM_TEAMS | |
COMMAND. IT IS INDEPENDANT OF EVERYTHING MENTIONED ABOVE. | |
bAdminCmdOnly=False | |
THIS OPTION ONLY REFERS TO THE AVAILABILITY OF THE UAM_TEAMS | |
COMMAND. IT IS INDEPENDANT OF EVERYTHING MENTIONED ABOVE. | |
bAdminsImmune=True | |
This option affects everything to do with team balancing, | |
whether it's the uam_teams command or the internal monitoring | |
system. When True, admins will not be evaluated by the system, | |
their switches will not be undone, and they will not be used | |
to help balance the teams. | |
6. Reserved Slots | |
This system is implemented via UAdminMod's custom AccessControl. | |
This is derived from Unreal Tournament 2004's Advanced | |
Administration system and does not modify any existing | |
functionality; it ONLY adds the reserved slots functionality | |
and the ability for admins to be automatically logged in. | |
In order to use this feature, you must first tell your server | |
to use this AccessControl class instead of the default one. | |
Note that by doing this, you will inherently be using the Advanced | |
Administration system. If you do not want to use the Advanced | |
Administration system and only wish to use the Basic | |
Administration system, then ignore this entire section... but you | |
won't be able to use reserved slots or have admins automatically | |
logged in when they enter the server. | |
If you are unsure of which system your server uses, look under | |
the [Engine.GameInfo] section in your server's ini file. If | |
the AccessControlClass is set to Engine.AccessControl, then | |
your server uses the BASIC system. If it is set to | |
XAdmin.AccessControlIni, then your server uses the ADVANCED | |
system. Keep in mind that this can also be set in your | |
server's start-up commandline, and that will override the | |
setting in your ini file. If you find that UAdminMod's | |
access control is not being loaded, make sure you're not | |
overriding the ini setting in the start-up commandline. | |
So, without further ado... | |
Change the AccessControlClass under [Engine.GameInfo] to | |
UAdminModV095b.UAMAccessControlIni | |
If you did this properly, you'll see the following text in your | |
server's log/console at start-up: | |
UAdminMod: ---------------------------------------- | |
UAdminMod: UAMAccessControlIni for UAdminModV095b LOADED | |
UAdminMod: Author: TBone | |
UAdminMod: Email: TBone@Fragskill.com | |
UAdminMod: Web: www.Fragskill.com | |
UAdminMod: ---------------------------------------- | |
You may see additional text inside the block, but that's okay. | |
As long as the block appears, you're good to go. | |
Next, locate the section [UAdminModV095b.UAMAccessControlIni] | |
Here are the settings and their default values: | |
bEnableReservedSlots=False | |
The reserved slots system is off by default. To turn it | |
on, change this to True. | |
bMakeRoomByKicking=True | |
When false, the server will make a reserved slot by adding | |
a slot to the server for the player joining. This new spot | |
will be eliminated automatically when someone leaves. The | |
server will create new slots as long as iMaxExpansion has | |
not been exceeded. Once iMaxExpansion has been reached, | |
even players with reserved slots will be unable to join. | |
If you set this to true, then the reserved slot will be | |
created by kicking the last player to join the server who | |
is not an admin and who does not posses a reserved slot. | |
Folks who rent their servers from a host are advised to | |
use this option to avoid exceeding their agreed upon player | |
limit. That is why True is the default value. | |
bUsePassword=True | |
When true, players will be prompted to enter a password in | |
order to access a reserved slot. | |
When false, reserved slots will only be given to players | |
who's player ID hash is listed in this section | |
(ie, ReservedHash=1234567890, see ReservedHash below if | |
you set this to False). | |
NOTE: When someone enters the server with a reserved slot | |
by entering a password, their hash will be stored to the | |
configuration file. This will prevent them from ever | |
being kicked off the server when other players with | |
reserved slots join. | |
iMaxExpansion=5 | |
This is the max number of additional slots the server will | |
create for reserved slots. If bMakeRoomByKicking is true, | |
this setting is irrelevant. | |
sReservedSlotPW= | |
This is the password for accessing a reserved slot. For | |
your protection, the default value is an empty value and | |
if you don't set it but you set bUsePassword to True, | |
UAdminMod will disable the reserved slots system. If you | |
control access by using the password option | |
(bUsePassword=True), you MUST specify a password. | |
sOldReservedSlotPW= | |
Do not modify this. This is used internally to track | |
changes to sReservedSlotPW. For instance, if you have 10 | |
player hashes in your config file and you want to change | |
sReservedSlotPW, then UAdminMod will detect the password | |
change and reset the ReservedHash values so that players | |
without the new password cannot join. Once they join with | |
the new password, their hash will be re-added to the list. | |
Now, if bUsePassword is false, this is ignored. If | |
bUsePassword is false, changing either of the password | |
values will have no effect. | |
ReservedHash=1234567890 | |
You can add up to 25 ReservedHashes. | |
Adding a new reserved hash is just like adding a | |
ServerPackage: Simply create a new line in | |
[UAdminModV095b.UAMAccessControlIni]: | |
ReservedHashes=23s83s83kdfhfkg83484kdkfg3494 | |
If bUsePassword is true, ReservedHash entries will be made | |
by UAdminMod to track players who have supplied the correct | |
reserved slot password. This ensures that they are never | |
kicked by another player accessing a reserved slot. | |
if bUsePassword is false, these lines are used by you to | |
enter the hashes of players who you want to have reserved | |
slot access. | |
To obtain your hash, open UT2004.log in your /UT2004/System | |
directory. Look for a line like "id=1212445lksdlsdfsfeee". | |
That is your hash. So, let's suppose your hash was | |
1234567890: You would then add the following line: | |
ReservedHash=1234567890 | |
The existing ReservedHash=1234567890 in the file is just | |
an example line. You can change/delete it if you wish. | |
If you exceed 25 ReservedHashes, UAdminMod will begin | |
pruning the oldest entries from the list until it is | |
back to 25. | |
PrivClasses=XAdmin.xKickPrivs | |
PrivClasses=XAdmin.xGamePrivs | |
PrivClasses=XAdmin.xUserGroupPrivs | |
PrivClasses=XAdmin.xExtraPrivs | |
DO NOT MODIFY THESE! | |
bAutoAdminLogin=False | |
See Automatic Login for Admins for more information. | |
NOTE: If your server is already password protected, then the | |
Reserved Slots password will suffice as a game password. For | |
instance, if your server's password is 'abc' and your reserved | |
slots password is '123', then '123' will get you into the server | |
as a catch-all password IF IT'S FULL. If the server is not at | |
capacity, the reserved slot password will not work. | |
If there are additional features you would like added to the | |
reserved slots system, please let me know. I will entertain all | |
(reasonable) requests. | |
7. Server Messages | |
This feature allows you to set your server to broadcast up to 25 | |
messages which rotate at a given interval. You can specify how | |
long they're displayed, their color, and their frequency. | |
To configure Server Messages (aka, Custom Messages), locate the | |
[UAdminModV095b.UAMCustomMessages] section of your server's | |
configuration file. | |
bEnabled=False | |
If True, server messages are enabled. | |
bDspInChat=False | |
If False, server messages will be displayed on their own line | |
just underneath the chat area. If set to True, server messages | |
will be broadcast just like chat messages are, so they will | |
blend in with chat/death messages. I recommend leaving this | |
at False, since your server messages are likely to be more | |
noticed this way. Plus, if you have UAdminMod treat your | |
server messages like regular chat messages, your fMsgDuration | |
and MsgColor settings will not take effect. | |
bMsgBeep=True | |
If True, players will hear a short beep when a server message | |
is displayed. | |
iMsgInterval=240 | |
This is the interval at which server messages are broadcast. | |
fMsgDuration=10.0 | |
If bDspInChat is False, this setting dictates how long a | |
server message is displayed. | |
MsgColor=(R=255,G=255,B=0,A=255) | |
If bDspInChat is False, this setting dictates the color of a | |
server message. | |
CustomMessages=You can add up to 25 of these. | |
These are the actual server messages. To add new messages, | |
just add another CustomMessages=EnterMessageHere line to this | |
section of your config. You can have up to 25 server messages. | |
If you exceed 25, UAdminMod will prune old messages until | |
you're back to 25. | |
8. Automatic Login for Admins | |
This system allows admins to have themselves automatically | |
logged in as admin whenever they join the server. | |
Just like the Reserved Slots sytem, Auto Login for Admins is also | |
dependant on UAdminModV095b.UAMAccessControlIni. Even if you don't | |
want to use Reserved Slots, you'll need to use this access control | |
class to use Auto Login for Admins. Even though the two features | |
are unrelated to eachother, both depend on this class. For | |
information on setting your server up to use this class, see | |
Reserved Slots. | |
So... assuming you've told your server to use UAdminMod's access | |
control class, setting up Automatic Login for Admins is cake. | |
Simply find the [UAdminModV095b.UAMAccessControlIni] section in | |
your server's config and set bAutoAdminLogin to True. This will | |
turn the system on. HOWEVER, a small change has been made to | |
this system in this version. Instead of automatically remembering | |
admins as soon as they log in, admins now have the OPTION of | |
having themselves automatically logged in the next time they | |
join. Make sure you tell your admins about this. | |
To have yourself automatically logged in the next time you join | |
the server: | |
1. Log in as admin like you normally would. | |
2. Enter MUTATE UAM_SAVE in your console (or just uam_save in | |
the chat area). You'll receive a confirmation. | |
To cancel the automatic login for yourself: | |
1. Make sure you're logged in as admin (you normally will be, | |
since it automatically logged you in, but in case you logged | |
yourself out, you'll need to log back in to issue the command). | |
2. Enter MUTATE UAM_FORGET in your console (or just uam_forget | |
in the chat area). You'll receive a confirmation. | |
UAdminMod will remember up to 25 admins' login info. If you | |
exceed 25 AdminRecords, UAdminMod will begin pruning the oldest | |
entries from the list until it is back to 25. | |
9. Silent Admins | |
This system relies on the UAMAccessControlIni class. If your | |
server does not use this class as its AccessControl, you cannot | |
use this feature. See Reserved Slots for more information | |
regarding this. | |
Silent Admins allows you to silently admin your server. When | |
on, players will not be notified when admins log in or log out. | |
Furthermore, the text "ADMIN" will not be displayed on the | |
scoreboard. There will be no way for players to tell if any- | |
one is logged in as admin. | |
To turn this on, find the [UAdminModV095b.UAMAccessControlIni] | |
section of your server's configuration file, and set | |
bEnableSilentAdmin to True. | |
> See Known Issues for information regarding a possible bug in the | |
Silent Admin system. | |
10. Name/Nick Filter | |
UAdminMod has a feature that allows you to prevent players with | |
certain words/characters in their name from joining your server. | |
You can even set UAdminMod to ban such players. | |
This feature requires caution on your part. Be VERY careful | |
about the values you screen from your server. You don't want | |
to accidentally prevent half the players from entering your | |
server because you specified "elf" instead of "[Elf]" in your | |
blocked nicks list. | |
Find the [UAdminModV095b.UAdminMod] section and note these | |
settings: | |
bEnabled=False | |
This feature is off by default. Enable it by setting this | |
to True. | |
BlockedNicks=[Elf] | |
BlockedNicks=[ELF] | |
This is a list of blocked nicks. You can have up to | |
50 nicks in this list. | |
Adding a new nick is just like adding a ServerPackage: | |
Simply create a new line in [UAdminModV095b.UAdminMod]: | |
BlockedNicks=Value | |
Out of the gate, UAdminMod filters the tag [Elf] and [ELF]. | |
If you do not wish to filter Elf members from your server, | |
remove these two lines. They exist as an example of how | |
to use this feature. Note that "[Elf]" and "[ELF]" are | |
not the same. These values are case-sensitive. | |
When entering new values, BE AS SPECIFIC AS POSSIBLE! | |
If you want to prevent a certain clan from entering your | |
server, make sure you enter their tag EXACTLY as they wear | |
it, including the brackets, case, etc. If your values are | |
too non-specific, you'll unintentionally prevent others from | |
entering your server. This is why I only recommend using this | |
feature if you have a very specific person or persons you | |
need to block, but you haven't yet had the chance to ban them. | |
bBanBadNicks=False | |
If False, players who's names match a value in your | |
BlockedNicks list will only be kicked from your server; they | |
will not be banned. They will receive a friendly message | |
explaining exactly why they were prevented from entering, and | |
they will receive the admin's email address. | |
If True, however, players who's names match a value in your | |
BlockedNicks list will be permanently banned from your | |
server. Due to a small bug in Unreal Tournament 2004's | |
ban system, I was unable to present banned players with a | |
custom message explaining why they were banned. As a result, | |
they will receive the generic ban message. However, if they | |
were kicked, they WILL receive the UAdminMod blocked-nick | |
message. | |
Due to the nature of this feature, I urge extreme caution using | |
it. I was very hesitant to include it, but it's here for the sake | |
of completeness. | |
11. Reserved Nicks | |
Reserved Nicks is similar to the Nick Filter, except now we're looking | |
for nicks that belong to specific player id's instead of ones that are | |
forbidden in general. This is really useful if you want to make sure | |
that only your clan members can wear your clan tag, or if you want to | |
make sure no one can impersonate an admin or respected community | |
member. | |
Players are scanned when they first join the game and at a given | |
interval (iScanFrequency) thereafter (to check for mid-game name | |
changes). | |
ReservedNicks=(PlayerHash="1234567890",PlayerNick="TBone") | |
This entry exists by default and is just an example. You can | |
remove it if you'd like. In this example, no one will be permitted | |
to have "TBone" as their nick or have it ANYWHERE IN THEIR NICK. | |
This means that TBone is reserved as well as UberTBone. As you may | |
guess, reserving "bob" or "me" would produce undesireable results. | |
ReservedNicks should be as specific as possible. | |
You can also use this to secure your clan tags. Each member of | |
your clan will need an entry. Let's suppose you want to lock down | |
clan {HTM} on your server AND lock down the master admin nick: | |
ReservedNicks=(PlayerHash="abcdefg",PlayerNick="{HTM}") | |
ReservedNicks=(PlayerHash="abcdefg",PlayerNick="Frogger") | |
ReservedNicks=(PlayerHash="1234567",PlayerNick="{HTM}") | |
ReservedNicks=(PlayerHash="0987654",PlayerNick="{HTM}") | |
No one can use Frogger except abcdefg, and no one can use {HTM} | |
except abcdefg, 1234567, and 0987654. | |
You can have up to 50 entries in this list. Add the entry just like | |
you would a ServerPackage, ServerActor, or ReservedSlot. | |
iScanFrequency=120 | |
This is the frequency, in seconds, that UAdminMod validates every- | |
one's nicks against the ReservedNicks list. | |
iWarnings=1 | |
This is the number of warnings a player will get before they are | |
kicked. For instance, if I join Frogger's server as {HTM}TBone, | |
I will be warned immediately. If iWarnings is 1, I will receive | |
a warning and have iScanFrequency seconds to change it to something | |
else. If iWarnings is 2, I will have 360 seconds to change it and | |
will receive two warnings. Of course, if iWarnings is 0 (not | |
recommended), I'll be kicked as soon as I join. | |
When a player is kicked by the Reserved Nicks system, they will receive | |
the reason in the kick message. | |
12. Ping Watcher | |
PingWatch scans all players' pings every iScanFrequency seconds. | |
For reference: | |
HPB - High Ping Bastard. These are players who's pings are | |
considered high relative to the other players on the server. | |
In some cases, an HPB (or a few of them together) can cause lag | |
for the whole server. | |
LPB - Low Ping Bastard. These are players who's pings are considered | |
really low relative to the other players on the server. Server/ | |
Client netspeeds aside, they don't lag the server... but some feel | |
that they have an unfair advantage. The option is here for the sake | |
of completeness. | |
For any given player, their current ping is stored and an average is | |
established based on the number of scans that have been done for them | |
individually. Once iMinScansForAction has been reached for that player, | |
their average ping is evaluated for being too high or too low. If their | |
AVERAGE ping breaches a threshold, they are kicked (short spikes will | |
not count against them). If they are kicked, the event is logged | |
(/UserLogs/UAdminMod.log) and they are shown a message explaining why | |
they were kicked. | |
Note that if bCheckForServerLag is True (which I highly recommend), the | |
average ping on the server will be taken into account before reviewing | |
anyone's pings. If UAdminMod determines that the server is lagging, the | |
event will be logged and the current scan will be aborted. | |
Lastly, in any given scan, any player with a ping of 999 or 0 will be | |
ignored since 0 or 999 represents other things going on rather than a | |
poor connection. Also, scans will not take place prior to match start or | |
after the match has ended. | |
The settings for Ping Watcher are described below, but aside from setting | |
iMaxPing, I recommend leaving them alone. The defaults have been heavily | |
tested and offer the most accurate calculations on a given player's ping | |
over the course of a game. They've been tweaked to all but eliminate a | |
player from being unfairly kicked while still keeping the pings on your | |
server within a reasonable level. Remember: leaving iMaxPing at 999 | |
effectively disables any checking for high pings, while leaving iMinPing | |
at 0 effectively disables any checking for low pings. I recommend | |
leaving iMinPing at 0 and setting iMaxPing somewhere between 250 and 300. | |
bEnabled=False | |
If True, the utility is enabled. Shocking, I know. | |
bCheckForServerLag=True | |
If True, PingWatch will make sure the server isn't lagging | |
(and thus responsible for players' high pings) before it validates | |
pings. The way it does this is somewhat crude (but effective): It | |
checks everyone's pings, and if the average ping on the server is | |
greater than iMaxPing, it aborts the current scan. I would NEVER | |
set this to False unless you want to be REALLY strict and are | |
POSITIVE your server will never be the cause of lag. | |
bIgnoreHighAndLow=True | |
Similar to bCheckForServerLag, this is a measure designed to prevent | |
people from being kicked when their ping average isn't entirely | |
accurate due to a short spike on their line. By leaving this on, | |
players' high ping and low ping will be removed from their ping | |
average. This results in a more accurate ping average over time. | |
bAdminsImmune=True | |
Self-explanatory. | |
iMaxPing=999 | |
This is the threshold for kicking HPB's. Leaving it at 999 | |
disables checking for HPB's. If you want to enable this, here is | |
a basic set of guidelines: | |
Not Strict: 300 | |
Moderately Strict: 175 - 200 | |
Strict SOB: < 150 | |
If it were my server, I'd probably set it somewhere between 225 | |
and 300, but that's just me. | |
iMinPing=0 | |
This is the threshold for kicking LPB's. Leaving it at 0 | |
essentially disables checking for LPB's. | |
Setting this at all makes no sense to me, so do I can't really | |
offer any guidelines here. | |
iScanFrequency=20 | |
This is the frequency, in seconds, that PingWatch scans players' | |
pings. | |
iMinScansForAction=4 & iWarnings=1 | |
This is the minimum number of scans on a given player before | |
action is taken on them for AVERAGING a too high/low ping. If | |
you leave these two settings at 4 and 1 respectively, then no | |
one player will be kicked until the SIXTH scan. That's 4 | |
scans + 1 warning = 5 scans. After the fifth scan, they are | |
fair game. Let's suppose their average ping doesn't climb | |
above iMaxPing until the 20th scan, but they've had no warnings. | |
Well, they'll receive a warning on the 21st scan and, if their | |
ping hasn't dropped by the 22nd scan, they'll be booted on the | |
22nd scan. | |
iMinPlayers=4 | |
This is the minimum number of players that need to be on the | |
server before Ping Watcher will begin scanning and tracking | |
pings. If you have a large server (say, 10+ players) and | |
decent bandwidth, you may not care to start scanning unless | |
the player count reaches a certain percentage of that. If | |
my server had a capacity of 16 players, I probably wouldn't | |
start scanning pings until it reached 8 players. Why? | |
Because even if someone is lagging, I want them on my server | |
to help attract more players. When more players arrive, then | |
we can let him/her go! If you want to disable this option, | |
just set it to 0. | |
iScanDelay=90 | |
I strongly recommend not altering this setting. This is the | |
amount of time a player can play on a server before they'll | |
be included in the ping scans. Because a lot of information | |
is pushed down to the client when they first connect (this is | |
AFTER they've received any mutators and/or maps), their pings | |
are higher for a short while (30 seconds or less usually) | |
after connecting. This delays scanning them until all of that | |
stuff has been pushed down to them. If you're running a 1-on-1 | |
DM server, you can probably set this to 20 or 30 seconds. For | |
large ONS servers, leave it at 90. | |
A few notes: | |
a. Players are evaluated based on their average ping over time... | |
not one specific ping. For instance, if the server's maximum | |
allowable ping is 200 and I have 6 scans done on myself that found | |
pings of 50, 65, 70, 45, 250 (spike on my ISP), and 60 respectively, | |
my AVERAGE ping would be 90 - I will not be kicked or warned. | |
b. bCheckForServerLag is important. I seriously recommend leaving | |
this alone. Let's take an extreme example: Suppose over the course | |
of 6 scans I have pings of 50, 65, 750, 630, 65, 70... but on the | |
third and forth scans (750 and 630), half of the server's players had | |
similar pings. Well, assuming the server's maximum allowable ping is | |
still set at 200, I might be concerned about getting kicked. Wrong. | |
Those third and forth scans would be completely discarded for everyone, | |
since it's pretty apparent that it was server lag that caused my pings | |
to shoot through the roof. HOWEVER, if the server had disabled | |
bCheckForServerLag, those two scans would be factored in and half the | |
server's players would have artifically inflated average pings (mine | |
would be 272), and we would be kicked if those two scans pushed our | |
averages above the threshold. Now, that's an extreme example... scans | |
take place every 20 seconds by default, so one or two high scans aren't | |
going to impact the average much, but it still helps to keep this | |
option on. | |
c. bIgnoreHighAndLow can be set to false to make your server a little | |
more strict. Setting this to false won't have the landslide negative | |
effects that setting bCheckForServerLag to false could... it just | |
tightens things up a little. To explain how it works, lets use the | |
following example: | |
Suppose I've been on a server for 3 minutes. If iScanFrequency is | |
set at 30 seconds, I will have had 6 scans by now. Here are the | |
results of those scans: | |
1. 60ms | |
2. 100ms | |
3. 70ms | |
4. 80ms | |
5. 850ms | |
6. 75ms | |
AVG: 206ms | |
It's obvious that I had a little spike on my line during the 5th | |
scan, and most server admins probably wouldn't want to have me | |
kicked, even if their threshold is set at 200ms (which, by the | |
way, is a little strict). Well, if you toss out the 1st and 5th | |
scan (remember, both the high and the low are thrown out with this | |
option on), my average is now 81ms - which is a far more accurate | |
representation of my connection than 206ms is. I'm now far from | |
getting kicked. | |
13. Known Issues | |
There *might* be a bug in the silent admin system that can cause a | |
General Protection Fault (GPF) on client machines (not the server). | |
The testers and myself have not been able to reproduce this on more | |
than one server, let alone at will. Three servers ran fine with no | |
issues, while one server caused clients to experience the GPF. Because | |
of this, I have not been able to determine the origin of the bug, or | |
even determine if the bug is a result of UAM or a configuration setting | |
on the server that experienced it. | |
If you are concerned about this and do not wish to be a guinea pig, | |
simply leave bSilentAdmin set to FALSE. If the bug is in fact due | |
to UAdminMod, leaving bSilentAdmin set to false will bypass it. | |
I would be grateful to anyone who chooses to turn this feature on in | |
order to help determine if this is a bug in UAdminMod. If you decide | |
to turn it on, please email me and let me know the results. I've been | |
unable to duplicate the problem on my own server or three out of four | |
of our beta testers' servers. Additional input from you would be very | |
beneficial to the development of this feature. | |
Other than that, there are no known issues. | |
14. Planned Features | |
a. Issue commands from server console/web admin. | |
b. Menu system for quick command execution. | |
c. Optional auto-demorec. | |
d. uam_clan TeamID Tag: This will move everyone with Tag over | |
to team TeamID, and the rest of the server to the other team. | |
Calling this command will automatically disable team balancing, | |
since the teams will likely be thrown out the window when this | |
command is issued. | |
e. Web Admin interface for all configurable options. | |
f. Have an idea? Email me! I will cater to any request that is | |
applicable to the majority of servers/admins. | |
15. Credits | |
Frogger, Nihilist, and J4K0BYT3 for assisting with the closed BETA | |
testing. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment