Plugins - RaidMax/IW4M-Admin GitHub Wiki
IW4MAdmin supports plugins to extend functionality. Plugins are automatically loaded from the Plugins directory.
Track player performance, statistics, and rankings.
Features:
- Kill/death ratio tracking
- Score per minute calculations
- Skill rating (based on KDR and SPM)
- Elo rating (based on encounter wins)
- Performance rating (average of Skill + Elo)
- Global and per-server leaderboards
- Performance buckets for isolated ranking pools
Qualification Requirements:
- Minimum 3 hours playtime (configurable per bucket)
- Connected within past 15 days (configurable per bucket)
Performance buckets let you group servers into isolated ranking pools. Players are ranked independently within each bucket, so leaderboards and Z-scores are computed separately. This is useful when you want to separate different play styles or game modes (e.g. competitive vs casual, or zombie servers vs multiplayer).
How it works:
- Set
PerformanceBucketCodeon each server inIW4MAdminSettings.json(see Configuration) - Servers with the same code share a ranking pool
- Servers without a code use the global (default) pool
- If a code doesn't exist in the database yet, it is auto-created on server startup
Per-bucket configuration is set in StatsPluginSettings.json under PerformanceBuckets:
{
"PerformanceBuckets": [
{
"Code": "competitive",
"ClientMinPlayTime": "03:00:00",
"RankingExpiration": "15.00:00:00"
}
]
}| Setting | Description | Default |
|---|---|---|
Code |
Bucket identifier (matches server config) | — |
ClientMinPlayTime |
Minimum playtime before a player appears on leaderboards |
03:00:00 (3 hours) |
RankingExpiration |
How far back rankings are computed |
15.00:00:00 (15 days) |
If a server's bucket code has no matching entry in PerformanceBuckets, the defaults above are used.
Commands:
| Command | Alias | Description | Level |
|---|---|---|---|
| stats | xlrstats |
View player stats | User |
| topstats | ts |
View top 5 players on server | User |
| mostplayed | mp |
View top 5 by playtime | User |
| mostkills | mk |
View top players by kills | User |
| resetstats | rs |
Reset your stats | User |
| resetanticheat | rsa |
Reset anticheat metrics | Owner |
Silence players in chat.
Commands:
| Command | Alias | Description | Level |
|---|---|---|---|
| mute | mu |
Mute a player | Moderator |
| tempmute | tm |
Temporarily mute | Moderator |
| unmute | um |
Unmute a player | Moderator |
| muteinfo | mi |
View mute information | Moderator |
Password-based authentication for privileged users. Deters GUID spoofing by requiring login before commands work.
Setup:
- Set password using
!setpassword <password> - Login using
!login <password>
Commands:
| Command | Alias | Description | Level |
|---|---|---|---|
| login | li |
Login with password | Trusted |
Geo-location based welcome messages.
Features:
- Welcome players based on country of origin
- Special messages for privileged users (Trusted+)
- Customizable messages
Configuration: WelcomePluginSettings.json
Automated profanity filtering.
Features:
- Warn and kick players for profanity
- Immediate kick for profane names
- Customizable word list
Configuration: ProfanityDetermentSettings.json
JavaScript-based plugins for extended functionality.
Detect and kick VPN users.
| Setting | Description |
|---|---|
vpnExceptionIds |
Client IDs exempt from VPN kicks |
Configuration Examples:
// Single user
vpnExceptionIds: [123456]
// Multiple users
vpnExceptionIds: [1, 2, 345678]Disable: Delete Plugins\VPNDetection.js
Commands:
| Command | Alias | Description | Level |
|---|---|---|---|
| whitelistvpn | wv |
Whitelist from VPN detection | Senior Admin |
| disallowvpn | dv |
Disallow VPN for player | Senior Admin |
Automated action when report threshold is reached.
| Setting | Description | Values |
|---|---|---|
enabled |
Enable plugin |
true/false
|
reportAction |
Action to perform |
Ban/TempBan
|
maxReportCount |
Reports before action | > 0 |
tempBanDurationMinutes |
Temp ban duration | > 0 |
Configuration: ActionOnReport.js
Kicks users using known shared GUIDs.
Purpose: Block players using torrented game copies with shared GUID F4D2C30B712AC6E3.
Ban entire IP ranges.
Commands:
| Command | Alias | Description | Level |
|---|---|---|---|
| bansubnet | bs |
Ban IPv4 subnet (CIDR) | Senior Admin |
| unbansubnet | ubs |
Unban IPv4 subnet | Senior Admin |
Additional IW4x integration.
Setup: Copy userraw folder to IW4x server directory.
Commands (IW4/IW5/T5/T6):
| Command | Alias | Description | Level |
|---|---|---|---|
| giveweapon | gw |
Give weapon to player | Senior Admin |
| takeweapons | tw |
Remove all weapons | Senior Admin |
| noclip | nc |
Enable noclip | Senior Admin |
| hide | hi |
Hide yourself in-game | Senior Admin |
| alert | alr |
Alert a player | Senior Admin |
| gotoplayer | g2p |
Teleport to player | Senior Admin |
| playertome | p2m |
Teleport player to you | Senior Admin |
| goto | g2 |
Teleport to coordinates | Senior Admin |
| kill | kpl |
Kill a player | Senior Admin |
| switchteam | st |
Switch player's team | Administrator |
| lockcontrols | lc |
Lock player controls | Administrator |
| setspectator | spec |
Set as spectator | Administrator |
Create custom plugins using C# or JavaScript.
Browse community plugins at store.raidmax.org