INFCheatDetector Alpha V1.4 PUBLIC TEST
----------------------------------------------------------
The main Infiltration package was made by [Sixpack]Cheiz & me, this package is for Infiltration_Standoff (standoff only on this version) & is partly made up of cuts from UCop, made by    Hollebollegijs (ICQ: 35629310, Email: hbg@oldunreal.com) & also a small snippet from UTeamFix, made by }TCP{Wolf (ICQ: 99235738, Email: ChaosWorx@gmx.net) & partially by me [Sixpack]-Shambler-
(ICQ:108730864, Email: shambler@oldunreal.com/Shambler__@Hotmail.com)

IPLogger, made by <NDP>BOZO is also included with ICD as an alternative to my experimental ban code..It uses a completely different method of obtaining IP's and IMO is the most reliable tool out
there :) (Email: bozo@newdefinitionsofpain.com) Thank you Bozo for letting me include it!

Originaly tested by Jus10[Merlin], Hollebollegijs & Smirfitsch[Merlin], this version (1.4) was also tested by SA|BarendB (who is also working on UProtector)

Main thanks to (no order):
Cheiz
LifesBane
Hollebolegijs
DaddyBone
BOZO
BarendB
Jus10
Wolf
Hades
Smirfitsch
Lt.Fuzz
DADSGET'NDOWN
DieHard-Jnr
& all the people who I forgot to mention! (just icq me)

IMPORTANT:
***(
Just add the two included files to your system folder, when starting a server in Unreal use the game tab [INF] StandoffCD & when starting with a command line add this in ?Game=INFCheatDetector.INFIL_StandoffGameCD  . (Remember to make sure you have Infiltration & INFCheatDetector in your server-packages! Also IPC if you use the IPLogger tool..)
You must also add some lines to your .ini file, in your InfStandoff.ini search for the tab [InfCheatDetector.INFIL_StandoffGameCD] & add these lines under it!

bDisableVoting=False
MinTimeBeforeVoting=30
PercentageVotes=50
bDisableIPlogger=False
bKickVoting=True
MinKickVotes=3
MinPercentageKickVotes=75
VoteKickWait=3
bAllowAntiSpam=True
bSpamVoting=True
MinSpamVotes=2
MinPercentageSpamVotes=60
bMonitorSay=True
SayRepeats=5
SayTimeLimit=20
bMonitorTeamSay=True
TeamSayRepeats=10
TeamSayTimeLimit=20
OffencePunishment=OFF_Mute
MaxOffence=5
InitMute=30
MuteIncrease=20
bBigGibbing=True
ScoreDecrement=5
CapitalPunishment=CAP_Mute

If you want you can change these variables to suit your needs, I will explain what they do later..

VERY IMPORTANT: There are people that have password finding scripts for Unreal that work by either cycling through a dictionary or by cycling through every character in the alphabet untill the right combination of letters is found...It's best to set all the admin/moderator passwords so that they are 1: greater than 13 letters (13 just to be sure) 2: words that would not appear in a dictionary (random letters is fine) & 3: Have random numbers & characters placed into the pass   If all those steps are followed it should take someone with a password-finding script a few years to find the server pass!:)

To change moderator passwords go into infstandoff.ini or go to the icon in the taskbar after you've started up the server (only if using Unreal -server) with this update & then (in the .ini) look
for [InfCheatDetector.INFIL_StandoffGameCD] & the list of passwords should be there somewhere (ignore number 0, its not used)..In the taskbar just right-click and goto
Options/Game Types/InfiltrationSOCD/ModeratorPasswords & you can change them there..The number on the moderator password is the same number as the class the will be using it
e.g   ModeratorPasswords[1]=pass   is for class 1 moderators!

""Notes on IPLogger: My original ban code in ICD was very experimental since I was the only one at the time to try and make use of the Sockets command (and so I developed the first IP banning tool
in Unreal1.. which was extremely buggy).. It has now been completely removed since people have made much better tools out of the original code which can be used instead, however IPLogger is unique
because instead of using the Sockets command it uses Unreal1's inbuilt UDP ports to obtain IP's instead..that is why I have included it with ICD v1.4, it was made by <NDP>BOZO and for more info you
should look at it's readme.. (it can also be disabled if you want to use other tools instead, see the configurable variables below)

MODERATOR NOTES:

There are five classes of Moderators going from 5-1 with 5 being the lowest, for every higher class of moderator there are increasing privilages with use of special commands, I've
put a list of options available to certain class's below

Class 5: Can mute people for certain amount of time (maximun 60 seconds) and can put Spam-Control on people
Class 4: Can mute for longer than 60's (anything greater than 4'mins & mute turns permenant) & can mute indefinetly after giving a warning (first mute = warning)
Class 3: All above & can kick
Class 2: All above & can mute without warning, suicide player, stop a player voting
Class 1: All above & can kick-ban, dirty-kick, change players name

The moderating system is to give more people access to admin commands so that the servers can be better policed, I think that if clans go thorugh a system of giving moderating privilages to well known & respected players & promote their class of authority as they get better at the job then there would be lots more people around to keep the peace & to keep the jerks off the servers! (that's just my opinion though, do whatever the hell you like with this :) )

NOTE ON DIRTY-KICKING: The ability to dirty-kick people is NOT TO EVER BE ABUSED!!!!!!
This is an absoloute LAST-RESORT against people that cannot be banned, I do not want this to be used on people unless continuous attempts at banning them are un-successfull..If I ever find that
this feature is being continually abused or used BEFORE trying to ban someone I will remove it from ICD if that situation does not change!!


Configurable variables (serverside):
---------------------------
bDisableVoting			-> If true then the level-voting system is turned off

MinTimeBeforeVoting		-> The minimum time since a level starts before people can begin to vote for a level switch (in seconds), default 30

PercentageVotes			-> The percentage of people that must vote for a level switch before the level ends, this +1 defines a majority..default 50 (which makes a 51% majority)

bDisableIPlogger		-> If true then the integrated IPLogger ban tool is disabled along with the KickBan command, default False

bKickVoting			-> If true the Kick-voting system is enabled, which allows people to vote for other players to be kicked..default True

MinKickVotes			-> The minimum number of people that must vote against a player before he/she is kicked, MinPercentageKickVotes is also taken into account..default 3

MinPercentageKickVotes		-> The percentage of people that must vote against a player before he/she is kicked, this +1 defines a majority..default 75 (which makes a 76% majority)

VoteKickWait			-> The time (in seconds) between a sucessfull kick-voting period and the time the voted player is kicked, if 0 the player had no warning..default 3

bAllowAntiSpam			-> If true the AntiSpam system is activated, this system monitors the amount of times the player talks and punishes the player if he/she spams..default True

bSpamVoting			-> If true people can vote to put Spam-Control on another played, similar in function to the Kick-Voting system

MinSpamVotes			-> The minimum number of people that must vote against a player before he/she has spam-control put upon her, MinPercentageSpamVotes is taken into account..default 2

MinPercentageSpamVotes		-> The percentage of people that must vote against a player before he/she has spam-control put upon her, this +1 defines a majority..default 60 (61% majority)

bMonitorSay			-> If true then the spam-control system will monitor the usage of the say command from it's designated player, default True

SayRepeats			-> If the player uses the say command more than this many times within SayTimeLimit seconds he is punished according to OffencePunishment (below)..default 5

SayTimeLimit			-> If the player uses the say command more than SayRepeats times within this many seconds he is punished according to OffencePunishment (below)..default 20

bMonitorTeamSay			-> As for bMonitorSay except this is used with the Team-Say command..default True

TeamSayRepeats			-> As for SayRepeats except for the Team-Say command..default 10

TeamSayTimeLimit		-> As for SayTimeLimit except for Team-Say command..default 20

OffencePunishment		-> The punishment a player recieves if he spams, OFF_Mute mutes him for so many seconds (calculated like this: MuteTime = InitMute + (MuteIncrease * Spams) ),
					OFF_Suicide makes the player suicide on the spot OR (if he is allready dead) suicides him at the beginning of the next round), OFF_MinusScoreSuicide
					is the same as OFF_Suicide except his score is reduced by ScoreDecrement (below) frags..default OFF_Mute

MaxOffence			-> The maximum amount of allowed times a player can spam before he gets CapitalPunishment (below) imposed upon him..default 5

InitMute			-> If the OffencePunishment is OFF_Mute then this is the initial amount of time a player is muted when he first spams..default 30

MuteIncrease			-> If the OffencePunishment is OFF_Mute and the player has spammed more than once then his muted time has this*Spams added on to it..default 20

bBigGibbing			-> If the OffencePunishment is OFF_Suicide or OFF_MinusScoreSuicide then the player will also pointlessly explode in a mass of gibs when he spams..default True

ScoreDecrement			-> If the OffencePunishment is OFF_MinusScoreSuicide then this is the amount the player has reduced from his score..default 5

CapitalPunishment		-> If the player spams more than MaxOffence times then he recieves this punishment type, it's values can be CAP_Mute (permenant muting for the rest of the game),
					CAP_Kick (the player is instantly kicked), CAP_Ban (the player is kicked and banned, a harsh option but an option none-the-less), CAP_DKick (I don't
					recommend having it set at this, only if you really really really really hate spammers :) the player is Dirty-Kicked)...default CAP_Mute
---------------------------

Configurable variables (clientside):
---------------------------
ConsoleKey			-> This number is a byte representing the key that brings down your console, it's based off the EInputKey list in Console.uc and Actor.uc (best off setting in menu)

bChangedKey			-> If True then the Console uses the ConsoleKey variable to determine what key to use to bring down the console..default False

bUTConsole			-> If True then you use the Unreal Tournament UWindow style console instead of the Unreal1 console (note:name-colours do not work on UT console)..default False

bDisableConsoleColours		-> If True then name-colours are disabled on the console (only valid for Unreal1 console)..default False

bDisableHUDColours		-> If true then name-colours are disabled on the HUD..default False

bDisableScoreColours		-> If True then name-colours are disabled on the ScoreBoard..default False

NewNameColours			-> An array of colour variables going from 1-60, each array place represents a part of a players name (if your name is Hello: H is array part 0, e is part 1 etc..)

bNoColours			-> If True then you don't use name-colours at all..default True
---------------------------


ConsoleCommands:
--------------------
AdminLogin Password			-> If you put in the correct password you become an admin and a message is broadcast to all players (you are also highlighted on the scoreboard)

SilentAdminLogin Password		-> As for AdminLogin except players recieve no messages

DiscreetAdminLogin Password		-> If the password is correct you are logged in as admin and there is absoloutly no indicated that you are admin to other players

KickBan PlayerName			-> If you an admin or moderator of class 1 then the player specified by PlayerName is banned from the server and kicked

QuickBan				-> Opens up a menu that lets you select and ban player much more easily

DirtyKick PlayerName			-> If your an admin or moderator of class 1 then the player specified by PlayerName is Dirty-Kicked from the server.. (his computer will stall for a while)

QuickDirtyKick				-> Opens up a menu that lets you select and dirty-kick a player much more easily

QuickKick				-> Opens up a menu to let you select a player to be kicked

QuickMOD				-> Opens up a menu with various commands that a moderator can use (except for ban)

ModeratorLogin Password			-> If the password is correct you are logged in as a moderator and higlighted on the scoreboard (a message is also broadcast to other players)

MutePlayer PlayerName,MuteTime		-> If your an admin or moderator you can mute a player (specified by PlayerName) for MuteTime seconds, or try to mute permenantly if you only supply the name

SuicidePlayer PlayerName		-> If your an admin or moderator of class 2 or above you can suicide a player specified by PlayerName

DisallowVote PlayerName			-> If your an admin or moderator of class 2 or above you can stop a player (specified by PlayerName) from voting

ForceNameChange PlayerName,NewName	-> If your an admin or moderator of class 1 you can force a player (specified by PlayerName) to change his name (where NewName is the newly set name)

KickVote PlayerName			-> Lets you try to vote-kick a player who's name is specified by PlayerName

EnforceSpamControl PlayerName		-> If your an admin or moderator of class 5 or above you can put Spam-Control on a player (specified by PlayerName)

SpamVote PlayerName			-> Lets you try to vote Spam-Control onto a person who's name is specified by PlayerName

QuickVote				-> Opens up a menu that makes voting much easier

ChangeNameColours			-> Opens up the Name-Setup menu, where you can change your name and it's colours

InvertScoreboardNames			-> Toggles all the colours on the scoreboard to their inverse or opposite match

WhiteScoreboardNames			-> Toggles all the colours on the scoreboard to white and back

ConsoleColours				-> Enables/Disables colours on the Console and saves to .ini

HUDColours				-> Enables/Disables colours on the HUD and saves to .ini

ScoreboardColours			-> Enables/Disables colours on the Scoreboard and saves to .ini

DisplayFeatures				-> Opens up a menu that lets clients know all the things that they can change

ICDActivateItem ItemName		-> Where ItemName is the name of a specific inventory item (e.g. Infiltration.INFIL_ClayMore), this activates one of those items in your inventory
--------------------



Version Changes:
------------
V1.4 Changes:
Addes shitloads of fixes for new aimbots/cheats/exploits etc., added a Kick-voting system, added a Spam Control and Spam-voting system, added coloured player names, removed ban code and included
IPLogger by <NDP>BOZO instead, fixed scoreboard problems with too many players, added an updated console to fix GPF's and also added lots of options for it, added a DiscreetAdminLogin command
so that admins DO NOT show up on scoreboard and are not broadcast to other players, redid muting system because I found some bugs in it, updated Level-vote system, fixed some problem for when there
are lots of monsters spawned, lots of new console-commands and much improved menus..

V1.3 Changes:
Added moderating system (you can only login by typing ModeratorLogin Password), added ForceNameChange command, added DisallowVote command, 
added SuicidePlayer command, added MutePlayer command, added new Moderator/Admin menu (Type QuickMOD to open)

V1.2 Changes:
Updated the ban code, added Dirty-Kick (just type DirtyKick PlayerName or type QuickDirtyKick to open the menu), added QuickKick command to instantly open menu &
added a limit to the amount of tries a person has when trying to log in as admin!

V1.1 Changes:
Added a test version of Unreal1 ban code, banning a persons IP works exactly like it does in UT (as it's partly copied from UT :) )..To ban someone just type
KickBan PlayersName  or, go to the KickBan menu by typing QuickBan on the console..
Also added a fix for the password server-crash!

V1 Changes:
Along with many cheat detectors admins can login during game by typing   AdminLogin password   or  SilentAdminLogin  password   & the scoreboard has been changed to show people that are typing & will highlight admins......(admins that join the game with the admin pass are not highlighted on the scoreboard)...

------------
All bug reports goto  Shambler@oldunreal.com/Shambler__@Hotmail.com

~[Sixpack]Shambler