d2ead61061
EF optimizations for webfront requests removed FindAll command and moved it's functionality into find fixed undefined link on admin page |
||
---|---|---|
.vs/config | ||
Admin | ||
Database | ||
Lib | ||
Plugins | ||
SharedLibrary | ||
_customcallbacks.gsc | ||
.gitattributes | ||
.gitignore | ||
IW4MAdmin.sln | ||
LICENSE | ||
README.md |
IW4MAdmin
Quick Start Guide
Version 1.5
Setup
IW4MAdmin requires minimal configuration to run. There is only one prerequisite.
- .NET Framework 4.5 or newer
Extract IW4MAdmin.zip
Run IW4MAdmin.exe
Configuration
If you wish to customize your experience of IW4MAdmin, the following configuration files will allow you to changes core options.
maps.cfg
- This is the configuration file that links an IW4 map file name to its common/in-game name
- This can be safely modified to add additional SP/DLC maps
messages.cfg
- This is the configuration file that broadcasts messages to your server at a set time
- The first line specifies the amount of time between messages (in seconds)
- Every new line is interpreted as a new message
- Color codes are allowed in the messages
- Tokens are denoted by double braces: {{TOKEN}}
rules.cfg
- This is the configuration file that sets the server's rules.
- Every new line is interpreted as a new rule
- All rules are global across servers
web.cfg
- This is the configuration file that specifies the web front bindings
- The first line specifies the
IP
orHostname
to bind to - The second line specifies the
port
to bind to
Commands
Name | Alias | Description | Requires Target | Syntax | Required Level |
---|---|---|---|---|---|
disabletrusted | dt | disable trusted player group for the server | False | !dt | Owner |
enabletrusted | et | enable trusted player group for the server | False | !et | Owner |
prune | p | demote any admins that have not connected recently (defaults to 30 days) | False | !p <optional inactive days> | Owner |
quit | q | quit IW4MAdmin | False | !q | Owner |
rcon | rcon | send rcon command to server | False | !rcon <command> | Owner |
reload | rl | reload configuration files | False | !rl | Owner |
setlevel | sl | set player to specified administration level | True | !sl <player> <level> | Owner |
ban | b | permanently ban a player from the server | True | !b <player> <reason> | SeniorAdmin |
fredisable | frd | disable fast restarting at the end of a map | False | !frd | SeniorAdmin |
frenable | fre | enable fast restarting at the end of a map | False | !fre | SeniorAdmin |
unban | ub | unban player by database id | True | !ub <databaseID> | SeniorAdmin |
find | f | find player in database | False | !f <player> | Administrator |
findall | fa | find a player by their aliase(s) | False | !fa <player> | Administrator |
map | m | change to specified map | False | !m <map> | Administrator |
maprotate | mr | cycle to the next map in rotation | False | !mr | Administrator |
mask | hide | hide your online presence from online admin list | False | !hide | Administrator |
plugins | p | view all loaded plugins | False | !p | Administrator |
alias | known | get past aliases and ips of a player | True | !known <player> | Moderator |
baninfo | bi | get information about a ban for a player | True | !bi <player> | Moderator |
fastrestart | fr | fast restart current map | False | !fr | Moderator |
flag | fp | flag a suspicious player and announce to admins on join | True | !fp <player> <reason> | Moderator |
list | l | list active clients | False | !l | Moderator |
reports | reps | get or clear recent reports | False | !reps <optional clear> | Moderator |
say | s | broadcast message to all players | False | !s <message> | Moderator |
tempban | tb | temporarily ban a player for specified time (defaults to 1 hour) | True | !tb <player> <duration (m|h|d|w|y)> <reason> | Moderator |
uptime | up | get current application running time | False | !up | Moderator |
usage | us | get current application memory usage | False | !us | Moderator |
kick | k | kick a player by name | True | !k <player> <reason> | Trusted |
warn | w | warn player for infringing rules | True | !w <player> <reason> | Trusted |
warnclear | wc | remove all warning for a player | True | !wc <player> | Trusted |
admins | a | list currently connected admins | False | !a | User |
getexternalip | ip | view your external IP address | False | !ip | User |
help | h | list all available commands | False | !h <optional command> | User |
privatemessage | pm | send message to other player | True | !pm <player> <message> | User |
report | rep | report a player for suspicious behavior | True | !rep <player> <reason> | User |
resetstats | rs | reset your stats to factory-new | False | !rs | User |
rules | r | list server rules | False | !r | User |
stats | xlrstats | view your stats | False | !xlrstats <optional player> | User |
topstats | ts | view the top 5 players on this server | False | !ts | User |
vote | v | vote for the next map | False | !v <map> | User |
votecancel | vc | cancel your vote for the next map | False | !vc | User |
whoami | who | give information about yourself. | False | !who | User |
Player Identification
All players are identified 4 seperate ways
npID/GUID/XUID
- The ID corresponding to the player's hardware or forum accountIP
- The player's IP AddressDatabase ID
- The internal reference to a player, generated by IW4MAdminName
- The visible player name as it appears in game
For most commands players are identified by their Name
However, if they are currently offline, or their name contains un-typable characters, their Database ID
must be used
The dbID
is specified by prefixing a player's reference number with @
.
For example, @123
would reference the player with a dbID
of 123.
Players can also be referenced by clientID
, which is simply their slot (0 - 17)
All commands that require a target
look at the first argument
for a form of player identification
Additional Command Parameters
setlevel
- shortcut -
sl
- Parameter 1 - Player to modify level of
- Parameter 2 - Level to set the player to
[ User, Trusted, Moderator, Administrator, SeniorAdmin ]
- Example -
!setlevel Player1 SeniorAdmin
,!sl @123 Moderator
- NOTE - It has been purposefully designed that there should only be 1 Owner ( owner cannot set another player's level to owner unless the configuration option is enabled during setup)
ban
- Shortcut -
b
- Parameter 1 - Player to ban
- Parameter 2 - Reason for ban
- Example -
!ban Player1 caught cheating
,!b @123 GUID Spoofing
tempban
- Shortcut -
tb
- Parameter 1 - Player to ban
- Parameter 2 - Ban length (minutes|hours|days|weeks|years)
- Parameter 3 - Reason for ban
- Example -
!tempban Player1 3w racism
,!tb @123 8h Abusive behaivor
reports
- Shortcut -
reps
- Optional Parameter 1 -
clear
(erases reports for current server)
Plugins
EventAPI
- This plugin adds a page to the webfront that serves JSON content in the form of server events
- The page is located at 127.0.0.1/api/events
- JSON Object Structure
- eventCount - Number of events in the generated response ( 0 or 1 )
- Event - The event object corresponding to generated event ( will be null if eventCount = 0 )
- Version - The supported version of the Event Object ( IW4MAdmin = 0 )
- Type - The type of Event Object ( Notification = 0, Status = 1, Alert = 2 )
- Message - The string contents of the Event Object ( ie chat message text )
- Title - The string header/title of the Event Object ( optional )
- Origin - The string origin of the Event Object ( ie player name or sv_hostname )
- Target - The string target of the Event Object ( ie reported player's name )
- ID - The int ID of the Event Object ( will be unique unless two events are generated simultaneously )
- Optional Parameters
- appending a
GET
parameter ofstatus=1
to your request will generate a list of currently monitored servers - For example: 127.0.0.1/api/events?status=1
- The contents of the response will be in the
Message
property of the response
- appending a
- Each event will be consumed ( eaten by the request, so save the event if you need to use it later )
- The plugin additionally scans chat messages for phrases that indicate a cheater on the server
- If enough matching phrases are detected, an alert will be generated
- No commands are added by this plugin
- Additional Features will be added in the future
Welcome
- This plugin uses geolocation data to welcome a player based on their IP's country
- All privileged users ( Trusted or higher ) recieve a specialized welcome message as well
Stats
- This plugin calculates basic player performance, skill approximation, and kill/death ratio
- Total play-time is stored by this plugin
- After 3 days ( 36 hours ) of total play-time, a user earns the
Trusted
rank ( will be optional in a later release )
Commands added by this plugin
Name | Alias | Description | Requires Target | Syntax | Required Level |
---|---|---|---|---|---|
disabletrusted | dt | disable trusted player group for the server | False | !dt | Owner |
enabletrusted | et | enable trusted player group for the server | False | !et | Owner |
prune | p | demote any admins that have not connected recently (defaults to 30 days) | False | !p <optional inactive days> | Owner |
resetstats | rs | reset your stats to factory-new | False | !rs | User |
stats | xlrstats | view your stats | False | !xlrstats <optional player> | User |
topstats | ts | view the top 5 players on this server | False | !ts | User |
-
To qualify for top stats, a player must meet the following criteria
Skill
> 10Kills
> 150Play Time
> 1 hour
-
Each server has seperated stats and can be reset by deleting
stats_<port>.rm
Misc
Database Storage
All unique client information is stored in clients.rm
. Should you need to reset your database, this file can simply be deleted.
Player aliases and previous ips are stored in aliases.rm
.