Skip to content

raziel23x/AdKats

 
 

Repository files navigation

AdKats Advanced In-Game Admin Tools

New Extension! Click below to enforce BF4 loadouts on-spawn!

AdKats Thread

Overview

Admin Toolset with a plethora of features, over 100 available in-game commands, and many customization options. AdKats focuses on making in-game admins more efficient and accurate at their jobs, with flexibility for almost any setup. Includes a cross-server ban enforcer with advanced enforcement features, metabans support, global admin management, cross-server player messaging, and the BFAdminCP 2.0+ for web-based control has been released. Designed for groups with high-traffic servers and many admins, but will function just as well for small servers.

  • Extensive In-Game Commands. Commands for player killing, kicking, punishing, banning, unbanning, moving, joining, whitelisting, messaging, etc, etc... Over 100 available in-game commands. Commands can be accessed from in-game, Procon's chat window, database, and from other plugins.
  • Customizable User Roles. Custom user roles can be created for admins and players with each role given access to only the commands you want them to use. Default guest role is given to all players and can be edited to your desired specs. Roles and powers are automatically synced between servers so you only need to change user information once. Soldiers assigned to users will also keep their powers if they change their in-game names.
  • Setting sync between servers. Changes to plugin settings are stored in the database and can be automatically synced between your Procon layers. Setting up new layers or switching layers is a breeze as the settings for existing servers are automatically imported on startup.
  • Infraction Tracking System. Punish/forgive players for breaking rules on your servers. Everything is tracked so the more infractions they commit the worse their punishment automatically gets. Created so all players are treated equally based on their history, regardless of who is issuing punishments against them. Heavily customizable.
  • Player Reputation System. Based on issued commands from and against players they can form a numeric reputation on the server. Documentation below. A local leaderboard for reputation is provided in the BFAdminCP.
  • Quick Player Report and Admin Call Handling with email support. Notification system and quick handling features for all admin calls and player reports. Reports can be referenced by number for instant action. Automatic PBSS are triggered on reported players.
  • Orchestration and Server List Management. Server reserved slots, spectator slots, autobalance whitelist through MULTIBalancer, ping kick whitelists, and several others can be automatically handled through the AdKats user list, role groups, and orchestration commands.
  • AdKats Ban Enforcer. AdKats can enforce bans across all of your servers and can enforce on all identity metrics at the same time. System will automatically import bans from your servers, consolidating them in one place, and can import existing bans from the BF3 Ban Manager plugin's tables. Full documentation below.
  • BF3/BF4 AntiCheat with Whitelist. Battlelog stats can be polled for players in the server, issuing automatic bans for damage mods, aimbots, magic bullet, and several others. The LIVE system can detect damage mods and magic bullet from a single round of play. DPS checks are enabled by default, with others available after a few clicks.
  • Surrender Vote System. When enabled, if players are stuck in their base with no options, they can vote to end the round with the current winning team as winner.
  • Auto-Surrender/Auto-Nuke System. This uses ticket loss rates to detect where teams are on the map, specifically with how many flags are captured. If a team is being base-camped, it can either automatically end the round with current winner, or nuke the team who is causing the base-camp. Optimal values for Metro 2014 and Operation Locker are available, for both surrender and nuke options.
  • Automatic Updates. AdKats automatically updates itself when stable releases are made, only requiring a Procon instance reboot to run updated versions. This can be disabled if desired, but is required if running TEST versions.
  • Ping Enforcer. Automated kick system based on ping, with moving average calculation, modifiers based on time of day and server population, customizable messages, logged kicks, and manual ping options.
  • AFK Manager. Automated kick system based on player AFK time, with manual kick command. Customizable durations, and option to ignore chat messages counting toward active time.
  • SpamBot with Whitelist. SpamBot with options for simultaneous say, yell, and tell. Customizable intervals between each type of message, and ability to whitelist players/admins from seeing spambot messages. Rules can also be made map and mode specific.
  • Commander Manager. Commanders can cause team imbalance when servers are in low population. This manager can forbid commanders before a certain player count is active.
  • Cross-Server Player Messaging. Private conversations between players can operate not only within the same server, but will work between any online server in the database, and even between any AdKats supported game.
  • Admin Assistants. When fully used this can turn your regular player base into a human autoadmin. Trusted players fill the gaps normal autoadmins don't see by utilizing the report system and keeping your server under control even when normal admins are offline.
  • Email Notification System. Email addresses can be added to every user, and once enabled they will receive emails for player reports and admin calls.
  • TeamSpeak and Discord Integration. AdKats can be connected to teamspeak or discord to apply perks and monitoring to players in VOIP.
  • Fuzzy Player Name Completion. Fully completes partial or misspelled player names. I've been consistently able to find almost any player only a few characters from their name. Can also fetch players who have left the server, are in another server of yours on the same database, or have been in your servers at any point in time.
  • Player Muting. Players can be muted if necessary, giving warnings and kicks if they talk. Automatic mute in specific cases like language can be orchestrated by other plugins like Insane limits.
  • Player Joining. Player's squads can be joined via command, and locked squads can be unlocked for admin entry.
  • Player Locking. Players can be locked from admin commands for a specific timeout, the main purpose is if a certain admin is handling them (checking stats for cheat detection, records, etc.) they shouldn't be interrupted by another admin acting on the player.
  • Player Assist. Player's want to play with their friends, but you don't want to imbalance the teams? The assist command lets any player join the weak team to help them out and squad up with friends without hurting server balance.
  • Yell/Say Pre-Recording. Use numbers to reference predefined messages. Avoid typing long reasons or messages. e.g. /kill player 3
  • Server Rule Management. Server rules can be listed, requests for rules logged, rules targeted at other players, and rules can be distributed between servers automatically. Rules can also be made map and mode specific.
  • External Controller API. AdKats can be controlled from outside the game through systems like the BFAdminCP and through other plugins like Insane Limits. For example, you can issue AdKats punish commands from Insane Limits or ProconRulz and have them logged against the player's profile like any other admin command.
  • TeamSwap. Queued move system for servers that are consistently full, players can be queued to move to full teams once a slot opens.
  • Metabans Support. When using ban enforcer all bans can be submitted to metabans and removed if the player is unbanned.
  • Editable In-Game Commands. Command text, logging options, chat access types, and enable options can be edited to suit your needs.
  • Configurable automatic server restarts. AdKats can automatically reboot your game server when it's empty.
  • Full Logging. All admin activity is tracked via the database per your custom settings for every command, so holding your admins accountable for their actions is quick and painless. If you are using the BFAdminCP nobody but your highest admins will need manual Procon access.
  • Setting Lock. The settings page in AdKats can be locked with a password. This means even admins with access to plugin settings can be blocked from changes using the password.
  • Performance. All actions, messaging, database communications, and command parsing take place on their own threads, minimizing performance impacts. However, AdKats is still almost the size of procon itself (logically anyway), and as such it's not suggested to run multiple instances of AdKats on a single procon layer.

AdKats Thread

AdKats was inspired by the gaming community A Different Kind (=ADK=)
Visit ADKGamers.com to say thanks!

Development by Daniel J. Gradinjan (ColColonCleaner)

If you find any bugs, please submit them HERE and they will be fixed ASAP.




AdKats User Manual

AdKats User Manual

1. A MySQL Database

A MySQL database accessible from your Procon layer is required. AdKats checks the database for needed tables on connect.

Getting a Database: This plugin requires a MySQL database, and XpKiller's Stat logger plugin to operate. If you do not have an existing database and/or a Procon layer we suggest using Branzone's hosting services. Our group has been with them across BF3, BF4, and Hardline with no issues.
Web/Database Hosting Suggestion: Branzone MySQL Databases
Procon Layer Hosting Suggestion: Branzone Procon Layers

2. XpKiller's "Procon Chat, GUID, Stats and Mapstats Logger" Plugin

Stat logger was used for years before AdKats came on the scene so that database structure is used as a base for this plugin. AdKats will only run properly if pointed at the same database that your stat logger plugins are connected to, and also only when stat logger is running on all the servers you plan to install AdKats on. Running AdKats on the same layers as your stat logger instances for each server will ensure these conditions are met.

The latest universal version of XpKiller's Stat Logger can be downloaded from here: Procon Chat, GUID, Stats and Mapstats Logger

The BF3 only version of stat logger CAN be used with AdKats if you don't want to lose your old data, but is not advised.

3. Web Request Access

AdKats uses web statistics and requests to manage players types, hack detection, user lists, and updates. The list of domains/sub-domains AdKats must be able to access for proper function are documented below in the "Web Requests" section. Whitelist these domains in your layer firewall if they cannot be accessed.


AdKats User Manual

WARNINGS. Read these before install.

Running AdKats on a Linux environment is not advised or fully supported. Testing on linux environments has been limited for AdKats. Some issues have been mitigated, namely issues with connecting over HTTPS for plugin documentation, updates, and startup, but this was necessary because the plugin wouldn't start otherwise. However, beyond that there has been very little full fledged testing on linux environments for this plugin, and there are so many facets of the plugin now I cannot guarantee functionality on that platform.

DO NOT run more than one instance of AdKats on a single procon layer at the same time. Procon provides the ability to have a single layer monitor multiple servers at the same time, which is normally a good thing. However, over the years AdKats has grown larger than procon itself logic-wise and running multiple instances of AdKats on the same process can result in heavy performance issues and instability. Do not use procon's multiple-server-per-layer functionality unless only ONE of the servers on the layer has AdKats running. Each server should have its own dedicated layer when using this plugin. Splitting off AdKats into its own admin tool separate from procon has been brought up many times but the effort required at this point would not be worth the benefit.

INSTALL INSTRUCTIONS.

  1. Install XpKiller's Stat logger plugin. Download and install the latest universal version of XpKiller's Procon Chat, GUID, Stats and Mapstats Logger. Make sure stat logger is running without error for a few minutes after its own installation BEFORE you attempt to do anything with AdKats installation. It needs to add an entry to the tbl_server table before AdKats can properly start up. If you are already running the BF3 only version of stat logger, that is fine, but the universal version is preferred for full functionality.
  2. GO BACK TO STEP 1 AND INSTALL STAT LOGGER. Far too many people have posted issues because they refuse to follow instructions. DO NOT attempt to install AdKats until stat logger is running without issue.
  3. Set up the database. Run the contents of the AdKats Database Setup Script on your database, on the same schema stat logger uses. You can do this via PHPMyAdmin or through a client such as MySQL Workbench, either will work just fine. You can use the same database/schema for all of your servers, you don't need a separate database for each server. WARNING: If you already have AdKats installed and running this script will completely wipe your existing data for the plugin and all of your settings. The script must be run by an account with permissions to create tables, triggers, and stored procedures.
  4. Download the plugin. Download the Latest Stable Release of AdKats. If you want to try the latest features/fixes which aren't part of the stable release yet then just use the /pupdate command once your instance of AdKats is running, then reboot your procon layer.
  5. Add the plugin to Procon. Add the plugin file (AdKats.cs) to Procon as you would any other, in either the plugins/BF3 or plugins/BF4 folder depending on which game your layer is running on. No other files are required on the layer side, only the AdKats.cs file in the proper location according to your game.
  6. Enter database credentials. All database connection information must be entered in the settings tab before AdKats can run. The plugin must be able to create/modify/use tables and their data. Using the same credentials as your stat logger plugin should be sufficient.
  7. Enable AdKats. AdKats will confirm all dependencies and show startup information in the console. If startup completes and says the plugin is running then all is well. AdKats will automatically update itself with new stable patches and releases. If you want to update manually just use the /pupdate command. Enjoy your new admin tool!

If you have any problems installing AdKats please let me know on the MyRCON forums or on Github as an issue and I'll respond promptly.


AdKats User Manual

  • 'You have an error in your SQL syntax' error when running the setup SQL script. This error is due to an issue with the latest version of PHPMyAdmin, not a database or script problem. Please use another tool such as MySQL Workbench or a previous version of PHPMyAdmin to run this script and it will execute without issue.

    The following error:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REPLACE INTO `adkats_commands` VALUES(75, 'Active', 'player_pm_reply', 'Unable',' at line 3
  • Other troubles running the setup SQL script. If this happens it is most likely your database provider has restricted your access to create triggers, stored procedures, or both. These elements are required for AdKats to properly function, and thus it cannot be run without them. Please talk with your database provider and gain access to creation of stored procedures and triggers.
  • "Stat logger tables missing" on first run after setting up the plugin. Confirm you have run the stat logger plugin on the same layer and it is functioning without error. If it is, try rebooting your layer.
  • Suggest more for this list if you run across them.

AdKats User Manual

User Ranks and Roles

AdKats hands out powers based on roles you configure, these are completely separate from the setup you've done for Procon and are not affected by that system in any way. These users are distributed to all AdKats instances you run through your database. On first run of the plugin you will need to add a user before you can access a majority of the in-game commands. You can have as many users as you want. When a user is added you need to assign them a role. The default role is "Default Guest" and the allowed commands for that role are shown to you in the role section. The default guest role cannot be deleted but can be edited to allow any non-admin commands. You can add more roles by typing a new role name in the "add role" field. Any newly added roles duplicate the current allowed commands on the "Default Guest" role so you will need to edit the allowed commands for new roles. When you change a user's role and they are currently in-game they will be told that their role has changed, and what it was changed to.

Once a user is added you need to assign their soldiers. If you add a user with the same name as their soldier(s) their soldier(s) will be added automatically if they are already in the database. Users can have multiple soldiers so if your admins have multiple accounts you can assign all of those soldiers under their user. Soldiers need to be in your database before they can be added to a user, so make sure they have been in the server with AdKats/Stat Logger running before you try to add them to a user. This system tracks user's soldiers so if they change their soldier names they will still have powers without needing to contact admins about the name change. Type a soldier's name in the "new soldier" field to add that soldier to a user. It will error out if it cannot find the soldier in the database. To add soldiers to the database quickly after installing stat logger for the first time, have them join any server you are running this version of AdKats on and their information will be immediately added.

The user list is sorted by role power level and then by username. Power level is a metric for how much a role has access to. For any setting item that says "Delete?" you need to type the word delete in the line and press enter, this avoids accidental deletion of users/roles.

Full Logging

All commands, their usage, who used them, who they were targeted on, why, when they were used, and where from, are logged in the database. All plugin actions are additionally stored in Procon's event log for review without connecting to the database. Player name/IP changes are logged and the records connected to their player ID, so tracking players is easier.

Infraction Tracking System

Infraction Tracking commands take the load off admins remembering which players have broken server rules and how many times. These commands have been dubbed "punish" and "forgive". Each time a player is punished a log is made in the database; The more punishes they get, the more severe the action gets. Available punishments include: warn, kill, kick, temp-ban 60 minutes, temp-ban 2 hours, temp-ban 1 day, temp-ban 2 days, temp-ban 3 days, temp temp-ban 1 week, temp-ban 2 weeks, temp-ban 1 month, and permaban. The order and severity of punishments can be configured to your needs.

Detailed Stuff: After a player is punished, their total infraction points are calculated using this very basic formula: (Punishment Points - Forgiveness Points) = Total Points Then an action is decided using Total Points from the punishment hierarchy. Punishments should get harsher as the player gets more points. A player cannot be punished more than once every 20 seconds; this prevents multiple admins from accidentally punishing a player multiple times for the same infraction.

TeamKilling Management

The punish and forgive commands in AdKats are admin use only. If you would like to integrate a teamkill punish/forgive system with the AdKats punish system, use the Team Kill Tracker Plugin and enable the AdKats integration settings.

IRO Punishments

When a player is punished and has already been punished in the past 10 minutes the new punish counts for 2 infraction points instead of 1 since the player is immediately breaking server rules again. A punish worth 2 points is called an "IRO" punish by the plugin, standing for Immediate Repeat Offence. "[IRO]" will be prepended to the punish reason when this type of punish is activated.

Punishment Hierarchy

The punishment hierarchy is configurable to suit your needs, but the default is below.

Total Points Punishment Outcome Hierarchy String
1 Warn warn
2 Kill kill
3 Kick kick
4 Temp-Ban 1 hour tban60
5 Temp-Ban 2 hours tban120
6 Temp-Ban 1 Day tbanday
7 Temp-Ban 2 Days tbanday
8 Temp-Ban 3 Days tbanday
9 Temp-Ban 1 Week tbanweek
10 Temp-Ban 2 Weeks tban2weeks
11 Temp-Ban 1 Month tbanmonth
12 Perma-Ban ban
Greater Than 12 Perma-Ban ban

Players may also be 'forgiven', which will reduce their infraction points by 1 each time, this is useful if you have a website where players can apologize for their actions in-game. Players cannot be forgiven into negative infraction point values.

Since you can run multiple servers with this plugin on the same database, if you want punishments to increase on the current server when infractions are committed on others (or vice-versa) enable "Combine Server Punishments". Punishments from another server won't cause increase in infractions on the current server if "Combine Server Punishments" is disabled. This is available since many groups run different rule sets on each server they own, so players breaking rules on one may not know rules on another, so they get a clean slate.

Auto-Forgives

Players can optionally be automatically forgiven infraction points after a specified duration of clean play and positive reputation. Settings are available to specify the minimum day count since last forgiven and last punished before an auto-forgive will be issued. The reputation command can be used by players to find out when their next auto-forgive will happen if the auto-forgive system is enabled. Minimum of 7 days for each auto-forgive duration, with suggested/default values of 14 and 30 days for forgive and punish durations respectively.

Suggestions: When deciding to use the infraction system, 'punish' should be the only command used for player rule-breaking. Other commands like kill, or kick are not counted toward infractions since sometimes players ask to be killed, admins kill/kick themselves, or players get kicked for AFKing. Kill and kick should only be used for server management. Direct temp-ban and ban are of course still available for hacking/glitching situations, but that is the ONLY time they should be used.

Player Reputation System

Reputation is a numeric for how helpful a player is to the server. The more they help admins by reporting rule breakers, moreso from spectator, assisting the weak team, or populating the server, the more their reputation increases. Committing infractions, breaking server rules, getting banned, etc, reduces their server reputation.

Reputation starts at zero and moves toward -1000 or 1000 so it's easy to get/lose rep early on but harder near the top/bottom. Players will never reach -1000 or 1000 reputation, but can get close with a lot of effort. Each command a player issues and every command issued against them has a reputation amount; Some good, some bad. Every time a player's reputation changes you are notified of the change in chat.

The following are ways reputation can be gained:

  • Issuing good reports on players. Just reporting someone gives rep but when an admin accepts the report or acts on it it's triple the rep bonus.
  • Reporting from spectator. Reporting from spectator is worth much more than reporting in-game. Players are sacrificing their game time to help a server and should be rewarded.
  • Using !assist. Sometimes teams really need help, and sometimes a player's friends are stuck on the weak team. Helping them and the server out by using this command to switch increases rep greatly.
  • Populating servers. Worth twice that of an assist, populating a server helps more than almost anything else. Players are notified and thanked for populating servers along with the rep bonus.

If a player has infractions on their record that causes a reputation reduction, but the reduction infraction points cause reduces over time. So if they have infractions on their record, simply not committing them for a while reduces the rep loss caused. It does not reduce completely however, they will need to report some rule breakers to get it positive again.

Ban Enforcer

AdKats can enforce bans across all of your servers. The Ban Enforcer will import and consolidate bans from every Procon instance you run. Bans can be made by name, GUID, IP, any combination, or all at once. The default ban is by EA GUID only; this default can be edited but doing so is not recommended. Banned players are told how long their ban will last, and when a banned player attempts to re-join they are told the remaining time on their ban. Using ban enforcer also gives access to the unban and future-permaban commands.

The Enforcer works with existing auto-admins and any bans added manually through Procon will be automatically imported. A mini ban management section is added to the plugin settings when you enable this, however, for full fledged ban management it helps to run the BFAdminCP by Prophet731. Ban enforcer's options are simply too much for the plugin setting interface to house properly. Use of the ban enforcer is optional because of this slight dependency, and is disabled by default.

Ban Enforcer can be enabled with the "Use Ban Enforcer" setting. On enable it will import all bans from your ban list, then clear it. Once you enable the enforcer you will be unable to manage any bans from Procon's banlist tab. Disabling ban enforcer will repopulate Procon's banlist with the imported bans, but you will lose any additional information ban enforcer gathered about the banned players.

Reasoning behind creation, for those interested: We had tried many other ban management systems and they all appeared to have some significant downfalls. Developing this allowed for some nice features not previously available.

  1. I can bypass Procon's banlist completely, this way no data is lost on how/why/who created the ban or on who it's targeted.
  2. I can enforce bans by any parameter combination (Name, GUID, IP), not just one at a time.
  3. Players can now be told how much time is left on their ban dynamically, every time they attempt to join.
  4. Tracking of bans added through in-game commands or autoadmins on any server is a cakewalk now, so clan leaders don't need to go great lengths to look things up.

Report/CallAdmin System w/Email Support

When a player puts in a proper !report or !admin all in-game admins are notified. Reports are logged in the database with full player names for reporter/target and the full reason for reporting. Uses of !report and !admin with this plugin require players to enter a reason, and will tell them if they haven't entered one. It will not send the report to admins unless reports are complete, cleaning up what admins end up seeing for reports.

Using Report IDs

Reports and calls are issued a random three digit ID which expires either at the end of each round, or when it is used. These ID's can be used in any other action command, simply use that ID instead of a player-name and reason (e.g. waffleman73 baserapes, another player reports them and gets report ID 582, admins just use !punish 582 instead of !punish waffleman73 baserape). Confirmation of command with !yes is required before a report ID is acted on. Players are thanked for reporting when an admin uses their report ID. Other online admins are informed when an admin acts on a report by ID, either with action, deny, or accept.

Report Emails

When email usage is enabled, all admins with emails defined will get an email containing the report information.

Report PBSS

Automatic Punkbuster screenshots are triggered on reported players.

Admin Assistants

We utilized this system on our no explosives server with great success, mainly catching things autoadmin cannot. Basically this system automatically tracks who the trusted players in your servers are, and who are reliable sources of reports.

Basic Functionality

The system makes use of the report IDs assigned to each round report. When a player sends a report, and an admin uses the report by ID, the report is logged as confirmed. Once you enable Admin Assistants, AA status is given once the player has X confirmed reports in the past month or 75+ total confirmed reports. A player with AA status is informed of their status on first spawn in the server after joining. If you enable the admin assistant perk, players with AA status are given access to the teamswap and online-admins commands for the duration they maintain AA status. These command perks are basically incentives to report rule-breakers. Whether a player has AA status is calculated when they join the server, and that status will remain for the duration they are in the server. When an admin assistant sends a report, to the admins their name is prefixed with [AA] to note it as a (most likely) reliable report. Likewise if an admin assistant is the target of a report, their name is prefixed with a clan-tag-like code. (e.g. Report [512]: [AA]ColColonCleaner reported [AA]SomeOtherAA for using explosives).

Advanced Usage (Auto-Handling)

The advanced functionality of this system is now released to the public as testing is complete. This subsection uses your AAs as a collective human autoadmin.

Players with AA status can conditionally have their reports acted on by the internal autoadmin. A list of trigger words or phrases of any length can be defined in AdKats settings. If an AA report reason contains any of those trigger words or phrases then autoadmin will act on their report with a punish on the target player, using the reason they entered. This was originally intended for cases when admins are offline and unable to answer reports, but has now been added for all cases.

If admins are offline, and the report matches criteria, autoadmin will punish the target player after 5 seconds. If admins are online, a 45 second window is given for the admin to act on the report before automatic handling fires.

Admins can use any action command just like normal (e.g. !kill ID, !punish ID, etc...), but can also use the new !accept, !ignore, and !deny commands. !accept will confirm the report but take no action against the target player. !ignore is used for bad or invalid reports, the report is removed from the list and no action is taken. !deny is for malicious reports and abuse of the report system, this command will destroy a reporter's reputation and hurt their AA status.

Exceptions and Security Measures: Automatic handling will not be taken if the target of a report is an admin or another AA, a real admin must act on the report. Automatic action will also not be taken if the target player has already been acted on in some way in the past 60 seconds.

Extended Round Statistics

Basic round statistics can be found through stat logger in the tbl_mapstats table, but these stats only give basic information at round end. AdKats adds a table tbl_extendedroundstats, which shows how matches progress while the round is still going, not just at the end. Every 30 seconds, the current round ID, round duration, team counts, ticket counts, ticket difference rates, team total scores, score rates, and a timestamp are logged in the table. A display of this information (in part) can be seen in the BFAdminCP server stats page. Logging starts at the beginning of each round, it will not start immediately for the current round when AdKats enables.

Player Muting

Players can be muted using the mute command. Muting lasts until the end of the round. Players who talk in chat after being muted will be killed each time they talk (up through X chat messages). On the (X+1)th chat message they are kicked from the server. A player coming back during the same round is kicked again on their first chat message. No action other than kill or kick is used by this system. There will be no way to un-mute players, there was a reason they were muted, and they can talk again next round. Admins cannot mute other admins.

Player Joining

Players can be joined using the join command. Joining either works off of player name or report ID. Issuing the command will place you in the targeted player's squad if there is room available. The command is available to all players, but for the general public will only operate for the same team. If user has TeamSwap or higher access, this will work across teams. If user has admin access, the target squad will be unlocked for their entry. NOTE: For cross-team joining, TeamSwap queues are not used, so if there is no room on the target team you will need to retry the command once room is available.

Pre-Messaging

A list of editable pre-defined messages can be added in settings, then admins can use the message ID instead of typing the whole message in. Example: "!say 2" will send the second pre-defined message.

Use !whatis [preMessageID] to find out what a particular ID links to before using it in commands.

Anywhere a reason or message is needed, a preMessage ID can be used instead.
Example: 4th preMessage is "Baserape. Do not shoot uncap."
"!punish muffinman 4" will punish them for the above reason. Even more useful is using report IDs with this, for example someone reports muffinman for "baseraping asshat" and gets report ID 283. You don't want "baseraping asshat" to be the actual reason entered, so you can just do "!punish 283 4", and he will get the proper punish message.

TeamSwap

TeamSwap is NOT an autobalancer (look up other plugins for that functionality), it is for manual player moving only.

TeamSwap is a server-smart player moving system which offers two major benefits over the default system. Normally when trying to move a player to a full team the command just fails at the server level, now the player is dropped on a queue until a slot opens on that side. They can keep playing on their side until that slot opens, since when it does they are immediately slain and moved over to fill it. Secondly it allows whitelisted (non-admin) players the ability to move themselves between teams as often as they want (within a ticket count window). This is currently not an available option in default battlefield aside from Procon commands since the game limits players to one switch per gaming session. Whitelisted players can type '!moveme' and TeamSwap will queue them. This is meant to be available to players outside the admin list, usually by paid usage to your community or to clan members only. Admins can also use '!moveme', and in their case it bypasses the ticket window restriction. When players are moved by admins, use the moveme command, or use assist, they are locked to that team for the current round. When a player is moved by admin, multibalancer unswitcher is disabled for a few seconds to remove the chance of autobalancer fighting admin moves.

Requiring Reasons

Any command which might lead to actions against players are required to have a reason entered, and will cancel if no reason is given. Players (even the most atrocious in some cases) should know what they were acted on for, and it's also a good way to hold admins accountable for their actions. The minimum number of characters for reasons is editable in plugin settings. The editable setting only applies to admin commands, and the default value is 5 characters. Reports and Admin calls are hardcoded to 1 character minimum reason lengths.

Setting Sync

Plugin settings are automatically synced to layers every 5 minutes from their particular server IDs. Settings for each plugin instance are stored in the database by server ID. Enter an existing server ID in the setting import field and all settings from that instance will be imported to this instance. Settings on the current instance will be overwritten by the synced settings. Whenever a setting is changed, that change is persisted to the database.

Special Player Lists

Special player list table "adkats_specialplayers" has been added. In this table, players can be added to any desired group accepted by AdKats. Valid groups can be seen on github, in the adkatsspecialgroups.json file. Players can be added by ID, or by identifier (name, guid, or IP), and can be assigned a game and server to apply them to. If you use player IDs then you won't need to update player names if they change their names, the player names will automatically update when they join the server; This is especially good to use when whitelisting for the AntiCheat system. Leave fields blank to indicate wildcard, for example leaving the server column blank for player will mean it applies to all servers of their game. If you specify the server, the group you have them assigned to will only apply for that one server. Each special player list entry now has an effective and expiration date, stored in UTC time.

3rd Party Plugin Orchestration

Orchestration table "adkats_orchestration" has been added. All entries in this table are polled every 5 minutes and sent to the appropriate plugins. Add entries to that table with a given server ID, plugin name, plugin setting name, and setting value. AdKats will send those settings to the target plugins every 5 minutes.

AntiCheat System with Whitelist

The AntiCheat System is used for automatically catching and acting on players with suspicious or impossible statistics.

The system uses battlelog for player stats, and is able to catch aimbots, damage mods, magic bullet, and other oddities.

DPS Checker [Code 4 Bans]

The damage per shot each player gets with their weapons is calculated from their battlelog stats, bans being issued if a player attains impossible damage. This section is now completely automated and enabled by default without a means to turn it off, any doubt about bans it issues should be taken with extreme caution as this system when properly configured has not issued a false positive ban in the 2 years it has been active on our servers.

The LIVE mods for this section enable it to detect damage mods from round to round, regardless of overall stats. Players using a damage mod during a round should be banned automatically the round after they are detected. The delay is due to battlelog request limits and needing to wait for the battlereport to post.

HSK Checker [Code 6 Bans]

For this check only automatic weapons from specific categories are used in the calculation. This includes Sub Machine Guns, Assault Rifles, Carbines, and Machine Guns. Handguns, snipers, equipment, etc are not included since their HSK values can vary drastically. This limit is simple, if the headshot/kill percentage for any valid weapon is greater than your trigger level, the ban is issued. HSK percentage for even the top competitive players caps at 38%, so we set our value much higher than that. We started with 70% HS/K, and no false positives were found with that value, but lower as desired. The minimum acceptable value we allowed during testing was 50%, and that's where we have it now. 100 kills with the weapon in question are required to trigger this check.

The LIVE mods for this section are enabled when you turn on the 'LIVE system includes mass murder and aimbot checks' setting. Players using a very blatant aimbot for heads in a round should be caught very quickly with this system. It's very difficult to trigger this check normally, so don't worry about causing a large number of false positives by enabling it.

KPM Checker [Code 5 Bans]

Be careful with this one, this is where a lot of legit competitive players reside. This check should only be used to request gameplay video of players to prove their play, then whitelist the player if everything checks out. For this check all weapons aside from melee weapons and equipment are included. This includes Sub Machine Guns, Assault Rifles, Carbines, Machine Guns, Handguns, and Sniper Rifles. This check uses weapon time and total kills, rather simplistic, just kills/total minutes. If that value is greater than your trigger level the ban is issued. After some research and testing the value used on our servers is the default, 5.0. 200 kills with the weapon in question are required to trigger this check.

The LIVE mods for this section are enabled when you turn on the 'LIVE system includes mass murder and aimbot checks' setting. Players who kill an inordinate amount of people in a short period of time will be caught quickly with this system. It's very difficult to trigger this check normally, so don''tt worry about causing a large number of false positives by enabling it.

Special Weapons Checker [Code 8 Bans]

Special weapons bans are issued when a player starts killing with weapons which are normally non-lethal. 3 kills with the given non-lethal item are required in a round to trigger the script.

  • 'BF4 [8-1]' - Portable Ammo Packs
  • 'BF4 [8-2]' - Radio Beacons
  • 'BF4 [8-3]' - SOFLAM Laser
  • 'BF4 [8-4]' - Motion Sensor Throwables
  • 'BF4 [8-5]' - Portable Med Packs
  • 'BF4 [8-6]' - Med Bags
  • 'BF4 [8-7]' - Ammo Bags
  • 'BF3 [8-1]' - Ammo Bags
  • 'BF3 [8-2]' - Radio Beacons
  • 'BF3 [8-3]' - SOFLAM Laser
  • 'BF3 [8-4]' - Med Bags

These special weapon checks are always enabled.

Magic Bullet

The AntiCheat system is able to detect the magic bullet hack and will issue bans accordingly. If any ban it issues is questionable please post about it on MyRCON in the AdKats thread.

Posting Method

The "most hacked" weapon (the one farthest above normal) is the one displayed in the ban reason using the following formats:

Damage Mod Bans:
DPS Automatic Ban [4-WEAPONNAME-DPS-KILLS-HEADSHOTS-HITS]
Aimbot Bans:
HSK Automatic Ban [6-WEAPONNAME-HSK-KILLS-HEADSHOTS-HITS]
KPM Bans:
KPM Automatic Ban [5-WEAPONNAME-KPM-KILLS-HEADSHOTS-HITS]

LIVE ban reasons have the following formats:

LIVE Damage Mod Bans:
DPS Automatic Ban [LIVE][4-WEAPONNAME-DPS-KILLS-HEADSHOTS-HITS]
LIVE Aimbot Bans:
HSK Automatic Ban [LIVE][6-L-KILLS-HSK]
HSK Automatic Ban [LIVE][6-H-KILLS-HSK]
LIVE KPM Bans:
KPM Automatic Ban [LIVE][5-L-KILLS]
KPM Automatic Ban [LIVE][5-H-KILLS]
LIVE Magic Bullet:
Magic Bullet [LIVE][7-KILLS-HITS]
LIVE Special Weapons:
[LIVE][Code 8-" + actedCode + "]: Dispute Requested

  • HSK bans take priority over DPS bans, and DPS over KPM.
  • Whitelisting can either be done using the acwhitelist command, or by entering their player ID, name, guid, or IP in the adkats_specialplayers table using the group "whitelist_anticheat"

Automatic Updates

AdKats is set up to automatically update itself when stable releases are made, so there is no need to upload newer versions to your layer once you are running it. Once the update is automatically downloaded and patched, all it requires is a Procon reboot to run the updated version. Admins will be informed of available updates when they are published, or if the plugin was able to automatically update, that the Procon instance needs to be rebooted. The automatic update process can be disabled for those who want to manually update, but it is enabled by default.

Ping Enforcer

Ping enforcer allows control of players over a certain average ping, with several key options. A linearly interpolated moving average is used to monitor ping of all players in the server, kicking players after a minimum monitor time is reached, and a minimum number of players are in the server. The system can kick for missing ping, and attempt to manually ping players whose pings are not given by the server.

Players who join the server and are over the limit are warned about it in chat. A player whose ping is normal, but spikes over your limit, is warned about the spike.

Admins are automatically whitelisted, but the entire user list can be optionally whitelisted, or a given subset of role keys. Individual players can be whitelisted with the pwhitelist command.

AFK Manager

AFK Manager allows control over players staying in the server without contributing. Kicking AFK players can be done automatically, or via the AFK command. When automatic kick is enabled it will monitor all players in the server, kicking them after the trigger AFK time is reached, but only if the number of players in the server is over a certain amount.

Chat can be optionally ignored, so players just spamming chat without playing can be removed from the server.

Admins are automatically whitelisted, but the entire user list can be optionally whitelisted, or a given subset of role keys. Spectators are immune to AFK kicks.

SpamBot with Whitelist

The SpamBot is much akin to that found in other plugins, with a few added bells and whistles. Automatic messages can be set in separate lists for say, yell, and tell options. Each list has its own interval that can be customized, the defaults being 300, 600, and 900 seconds, respectively.

The key difference is that admins and whitelisted players can be blocked from seeing SpamBot messages. This way your admins' chat are not cluttered with messages meant only for promotion or information they already know. Add [whitelistbypass] to the beginning of any spambot message and it will be sent to all players, ignoring this whitelist. Individual players can be whitelisted from seeing messages using the spamwhitelist command.

Commander Manager

In cases of low population, commanders can mean the difference between a balanced server and baserape. This manager will not allow players to join as commander until a specified minimum number of players are in the server.

We found a good value to be 40 players on 64p servers.

Surrender Vote System

Surrender is used when one team is much stronger than another, to the point of it becoming nearly impossible for the losing team to move around the map. With this system players can vote to end the round with the current winning team as winner, having the running autobalancer scramble teams for a more balanced game next match.

There are 3 commands used for surrender vote, surrender, votenext, and nosurrender. Access to these three commands, or a subset of them, must be given to your "Guest" role in the role settings section before this system can be used.

  • surrender. This command is usable by both teams, but will be translated to votenext if used by the winning team. Players on the losing team don't want to sit through a baserape, this command lets them vote toward round surrender. It adds one vote toward surrender.
  • votenext. This command is usable by both teams, but will be translated to surrender if used by the losing team. Players on the winning team will sometimes find it boring sitting at a baserape, this command lets them place their vote toward ending the round. It adds one vote toward surrender.
  • nosurrender. This command is usable only by the losing team. If someone doesn't think the situation is bad enough to warrant a surrender, they can use this command to vote against it. Removes one vote toward surrender.

Minimum player counts, minimum ticket differences, and minimum ticket difference rates can be added as limits for starting a round surrender. These are important as they prevent players from starting a surrender vote when it's not warranted or necessary.

A timeout can be added to the surrender vote. When enabled and the timeout expires after starting the vote, the vote is canceled and all votes removed.

Auto-Surrender/Auto-Nuke System

This system is based on ticket loss rates and only operates properly on servers running a single map/mode.

Sometimes surrender vote is not enough to help the server. This system uses ticket loss/gain rates to automatically trigger either round surrender on the losing team, or auto-nuke on the winning team. This system should not be used on servers that run mixed mode, as different modes will have drastically different ticket rates.

Do not enable this system until you have analyzed the ticket loss/gain rates that consistently happen during baserape on the particular server you wish to enable this on. Using the 'Display Ticket Rates in Procon Chat' setting in section A12 will display the rates in the Procon chat tab for analysis. Once you have the values you can set the windows for winning/losing team ticket rates, activating auto-surrender or auto-nuke.

Other limits like minimum ticket difference and trigger count help make sure the ticket rates it sees are actually from a baserape and not from any other case.

Once a round matches all of the parameters you set, auto-surrender or auto-nuke is triggered. Auto-surrender will cause the round to end, in favor of the current winning team. Auto-nuke will kill every player on the winning team that is currently alive; It will typically issue 1-3 times, making sure all players are dead.

Challenge System

The challenge system in AdKats is designed to be a multi-server stats-driven way to give players new goals with rewards. You can set up almost any combination of damage types or weapons to be used by players, in multiple tiers.

Definitions (What the player must do.)

Definitions are global, not server specific, the same definitions are visible across all of your servers. They define the base goals that a player must complete to finish a challenge. For example, get 5 kills with 5 different assault rifles. Each definition needs a name to be created. Once created you can define weapons or damage types on the definition, as many as you want. When adding a damage type to a definition the kill count associated with it is for EACH weapon, not the total kill count, the total count in this example would end up being 25. For weapon count in a damage type that means X different weapons of the player’s choosing, with Y kills for each weapon they decide to use. When adding a specific weapon code to a definition the kill count is for that specific weapon only. For a player to complete the resulting challenge they will need to perform all of the kills on the definition for that rule.

Rules (How fast the player must do it.)

Rules are server specific. They define restrictions on how fast players must complete the challenge, what measuring system is used for that, whether the rule is enabled, and the rule's tier. Each rule is created by choosing a definition to base it on. When you select a definition and the rule is created an auto-generated name is created for it which you can edit as desired. THIS NAME, not the one on the definition, is the one shown to players. You can have multiple rules for the same definition if you want. For example, you could have the assault rifle definition above defined in two rules, one completing in 30 minutes, the other completing in 15 minutes for a harder challenge. You can choose between round based completion, minutes based completion, or deaths based completion. A player running this rule will need to complete the defined kills in the given constraint. The 'tier' of a rule is shorthand for how difficult it is.

Rewards (What the player gets for doing it.)

Rewards are defined in tiers, 1 through 10. Supposedly tier 1 rules are the easiest and increase in difficulty through 10 being the hardest possible. You can define as many or few of these as you want. Personally I only have 3 tiers configured, 1 as easy, 2 as medium, and 3 as very hard. All rules of a certain tier will get the same reward. More rewards will be added as they are thought up but right now it's the following:

  • Reserved Slots. Self explanatory, adds a reserved slot for the person completing the challenge. If they already have a reserved slot, the reward time is added to their existing time.
  • Spectator Slots. Self explanatory, adds a spectator slot for the person completing the challenge. If they already have a spectator slot, the reward time is added to their existing time.
  • Autobalance Whitelisting. Players are added to the MULTIBalancer plugin's whitelist. If they already have an autobalance whitelist, the reward time is added to their existing time.
  • Teamkill Whitelisting. Players are added to the TeamKillTracker plugin's whitelist. If they already have a teamkill whitelist, the reward time is added to their existing time.
  • Command Lock. Issues the lock command on players for the specified duration. The lock command blocks admins or autoadmins from acting on a player if the commands are run through AdKats. This essentially lets a player break rules for a specified period of time without penalties. While a player is locked an announcement message is sent to the server every 30 seconds so they know what’s going on. There is a 24 hour timeout on this reward so players cannot grind for it more than once in a given day. The timeout is visible when running /ch rewards, or while playing a challenge with this reward in it. If you are running the loadout enforcer and are integrating with AdKats on that plugin, players who are currently locked will not be loadout enforced.

Example

You want to set up a challenge to be run every round publicly, the challenge expires at the end of every round, and players need to get 10 kills with 3 different assault rifles (totalling 30 kills), and 5 kills with the magnum revolver. A player completing this should get 12 hours added to their reserved slot on the server.

Make sure “server-wide round rules” is enabled.

  • With this setting enabled there will be challenges announced at the start of every round if one is available. Without this setting enabled players would need to choose their own challenge manually.

Make sure “auto-assign round rules” is enabled.

  • With this setting enabled players will automatically be assigned the round challenge if one is running in two cases: They get a kill which fits the challenge, or they use the challenge command (by default !ch) to see the current challenge.

Create a definition for the challenge.

  • In the Add Definition setting type in whatever you want but make it match what you’re trying to make. For this one we’ll type in “30 AR 5 Magnum”.
  • Once that is added you’ll see a definition entry added in the list. Now you need to add the damages/weapons.
  • In the Add Damage Type setting inside this “30 AR 5 Magnum” definition, select “Assault_Rifle”.
  • You’ll see a detail added to the list called “Damage - Assault Rifle” under this definition. It has a default of 1 weapon, and 1 kill.
  • Change that to what we want, 10 kills, 3 weapons. Doing this will make players need to get 10 kills with 3 different assault rifles, totalling 30 kills.
  • Now to add the magnum. In the Add Weapon setting inside this “Magnum ARs” definition, select “Handgun\44 Magnum”.
  • You’ll see another detail added to the list called “Weapon - 44 Magnum” under this definition. It has a default of 1 kill.
  • Change that to what we want, 5 kills.
  • We now have the definition set up with 30 assault rifle kills (3 weapons, 10 kills each), and 5 magnum revolver kills.

Create a rule based on this definition.

  • Collapse the definition section so it’s not in the way.
  • Under the rules section you’ll see an Add Rule setting. Select “30 AR 5 Magnum” in that setting.
  • You’ll see a new rule added with the name “30 AR 5 Magnum Rule X”, X being the next index available for a rule.
  • Rename that rule into something players would recognize, the name on this rule is what gets shown to players, not the definition name. Let’s call this one “Magnum ARs”. Just use the Name setting on the rule to change it.
  • We want this to be a server-wide round rule. (If a rule doesn’t qualify as a server-wide round rule players can still play the challenge but they need to select it manually.) So, this rule needs to have several things set: Completion type of “Rounds”, Round Count of 1, Tier of 1, Enabled = true.
  • Change the completion type on it from “None” to “Rounds”.
  • You’ll see a Round Count setting appear, this needs to be kept at 1 for it to qualify as a server-wide round rule.
  • You see a Tier setting, this needs to be kept at 1 for it to qualify as a server-wide round rule.
  • You see an Enabled setting. Now that is is ready, change that setting to True.

Create a reward for this tier.

  • Collapse the rule section so it’s not in the way.
  • Under the rewards section you’ll see an Add Reward setting. Enter 1 in that setting. This 1 means you are creating a reward for tier 1 challenges.
  • You’ll see several settings appear for the new reward. Select the Reward Type setting and change it to ReservedSlot.
  • Change Duration Minutes to 720.
  • You see an Enabled setting. Now that is is ready, change that setting to True.
  • You now have tier 1 challenges set up to add 12 hours to a player’s reserved slot whenever it is completed. You can add more than one reward to a tier if you want, but not duplicates of the same reward on the same tier.

You are now set up with a new challenge players can use. On the next round it will be announced to the server. To get more info about the challenge system you can use !ch help

Automatic Database Disconnect/Malfunction Handling System

If the connected database goes offline, or becomes over encumbered to the point of being unusable, AdKats will automatically handle that state. If that state is reached, AdKats will temporarily halt all interaction with the database, disable stat logger, and wait for the situation to be rectified. Checks for fixed connection are made every 30 seconds, and once restored stat logger and AdKats connections with the database are re-enabled.

Commanding AdKats from External Source

BFAdminCP can be used for this.

There are currently two ways to interact with AdKats externally. (A third coming soon if possible).

Adding Database Records

Have your external system add a row to the record table with a new record to be acted on. All information is needed in the row just like the ones sent from AdKats to the database. Review the ones already in your database before attempting this, and ask ColColonCleaner any questions you may have. The only exception is you need to make the 'adkats_read' column for that row = "N", this way AdKats will act on that record. Every 5-10 seconds the plugin checks for new input in the table, and will act on them if found.

Using external plugin API

Two available MatchCommands have been added, one for issuing commands through AdKats, and the second for fetching admin lists. These can be called by other plugins to integrate their functionality with AdKats and its database.

FetchAuthorizedSoldiers
Plugin: AdKats
Method: FetchAuthorizedSoldiers
Parameters:
  • caller_identity String with ID unique to the plugin sending the request. No whitespace or special characters. e.g. "InsaneLimits"
  • response_requested true
  • response_class Class/plugin where the callback will be sent.
  • response_method Method within the target plugin that will accept the response
  • user_subset "admin", "elevated", or "all". Admin meaning they have access to player interaction commands, elevated meaning they do not. Returns all soldiers in that subset.
  • user_role Returns all soldiers belonging to users in a specific role.
(user_subset and user_role cannot be used at the same time, pick one or the other.)

Response:
  • caller_identity AdKats
  • response_requested false
  • response_type FetchAuthorizedSoldiers
  • response_value List of soldiers that matched the given parameters. CPluginVariable.EncodeStringArray used to compact into one field. CPluginVariable.DecodeStringArray can be used to parse the field back into an array.
IssueCommand
Plugin: AdKats
Method: IssueCommand
Parameters:
  • caller_identity String with ID unique to the plugin sending the request. No whitespace or special characters. e.g. "InsaneLimits"
  • response_requested true/false. Whether the caller would like a response with the outcome of the command.
  • response_class Only if response_requested is true. Class/plugin where the callback will be sent.
  • response_method Only if response_requested is true. Method within the target plugin that will accept the response.
  • command_type Command key that references the desired command. Examples: player_kill, player_ban_perm, admin_say.
  • command_numeric Used for commands like player_ban_temp that require a numerical input. Currently player_ban_temp is the only command that requires a command numeric, and will throw errors if a numeric is not provided. In all other cases this field is optional.
  • source_name Name of the source you would like database logged. For example an admin name, plugin name, or a custom name like AutoAdmin.
  • target_name The exact name of the target you would like to issue the command against, usually a player name. For commands like admin_nuke which don't accept a player name, special syntax is used, documentation of such is provided in the readme.
  • target_guid Only required when binding to onJoin, onLeave, or other events where the player may not be loaded into AdKats' live player list yet. If the player cannot be found in the live player list by target_name then this guid is used to fetch their information from the database and perform the command.
  • record_message The message or reason that should be used with the command. e.g. Baserape. Message can be up to 500 characters.
Response:
  • caller_identity AdKats
  • response_requested false
  • response_type IssueCommand
  • response_value List of all messages sent for the command, comparable to what an admin would see in-game. CPluginVariable.EncodeStringArray used to compact into one field. CPluginVariable.DecodeStringArray can be used to parse the field back into an array. If the command succeeds without issue there should (generally) only be one message.
If all the required parameters are provided, the command will execute and log to the database. Response sent if it was requested.

Plugin Example:

var requestHashtable = new Hashtable{
     {"caller_identity", "YourPlugin"},
     {"response_requested", false},
     {"command_type", "player_ban_perm"},
     {"source_name", "AutoTest"},
     {"target_name", "ColColonCleaner"},
     {"target_guid", "EA_698E70AF4E420A99824EA9A438FE3CB1"},
     {"record_message", "Testing"}
};
ExecuteCommand("procon.protected.plugins.call", "AdKats", "IssueCommand", "YourPlugin", JSON.JsonEncode(requestHashtable));

InsaneLimits Example (OnKill Activation):

Hashtable command = new Hashtable();
command.Add("caller_identity", "InsaneLimits");
command.Add("response_requested", false);
command.Add("command_type", "player_punish");
command.Add("source_name", "AutoAdmin");
command.Add("target_name", player.Name);
command.Add("target_guid", player.EAGuid);
command.Add("record_message", "Using restricted weapon " + kill.Weapon);
plugin.CallOtherPlugin("AdKats", "IssueCommand", command);


AdKats User Manual

You can edit the text for each command to suit your needs in plugin settings.

Commands can be accessed with '!', '@', '.', '/!', '/@', '/.', or just '/'.

Any action command issued with no parameters (e.g. '!kill') will target the speaker. If admins want to kill, kick, or even ban themselves, simply type the action command without any parameters. Any action command when given a player name (other than moving players) will require a reason.

Universal Commands

Command Default Text Params Description
Confirm Command yes None The in-game command used for confirming other commands when needed. Must be active. Must be accessible under 'Any'. Must use 'yes' as command text. Cannot be denied for any role.
Cancel Command no None The in-game command used to cancel other commands when needed. Must be active. Must be accessible under 'Any'. Must use 'no' as command text. Cannot be denied for any role

Action Commands

Command Default Text Params Description
Kill Player kill None
OR
[player][reason]
OR
[reportID]
OR
[reportID][reason]
The in-game command used for killing players. If the player is dead, they will be killed on spawn.
Kill Player (Force) fkill None
OR
[player][reason]
OR
[reportID]
OR
[reportID][reason]
Bypasses all extra functionality of the regular kill command, issuing admin kill on them immediately.
Kick Player kick None
OR
[player][reason]
OR
[reportID]
OR
[reportID][reason]
The in-game command used for kicking players.
Temp-Ban Player tban [duration]
OR
[duration][player][reason]
OR
[duration][reportID]
OR
[duration][reportID][reason]
The in-game command used for temp-banning players. Default time is in minutes, but the number can have a letter after it designating the units. e.g. 2h for 2 hours. Valid suffixes are m, h, d, w, and y.
Perma-Ban Player ban None
OR
[player][reason]
OR
[reportID]
OR
[reportID][reason]
The in-game command used for perma-banning players.
Future Perma-Ban Player fban [time]
OR
[time][player][reason]
OR
[time][reportID]
OR
[time][reportID][reason]
The in-game command used for future-banning players. Default time is in minutes, but the number can have a letter after it designating the units. e.g. 2h for 2 hours. Valid suffixes are m, h, d, w, and y.

Future ban is the exact opposite of a temp-ban. Enter the time the player has until they are permabanned. This is used for requesting action/videos/etc from players, giving them a time frame to do so. Ban is enforced on-join only, not during gameplay. This command can only be used when ban enforcer is enabled.
Unban Player unban [player] OR
[player][reason]
The in-game command used for unbanning players. This command can only be used when ban enforcer is enabled.
Punish Player punish None
OR
[player][reason]
OR
[reportID]
OR
[reportID][reason]
The in-game command used for punishing players. Will add a Punish record to the database, increasing a player's total points according to your settings, and issue the configured action for that point value.
Forgive Player forgive None
OR
[player][reason]
OR
[reportID]
OR
[reportID][reason]
The in-game command used for forgiving players. Will add a Forgive record to the database, decreasing a player's total points by 1.
Warn Player warn None
OR
[player][reason]
OR
[reportID]
OR
[reportID][reason]
The in-game command used for warning players. This will give them a verbal warning across their screen, and log that they were warned.
Mute Player mute None
OR
[player][reason]
OR
[reportID]
OR
[reportID][reason]
The in-game command used for muting players. Players will be muted till the end of the round, X kills then kick if they keep talking. Admins cannot be muted.
On-Death Move Player move None
OR
[player]
OR
[reportID]
The in-game command used for moving players between teams. Will add players to the "on-death" move list, when they die they will be sent to TeamSwap. If the player is already dead, this command automatically changes to force move.
Force-Move Player fmove None
OR
[player]
OR
[reportID]
The in-game command used for force-moving players between teams. Will immediately send the given player to TeamSwap.
Join Player join [player]
OR
[reportID]
The in-game command used for joining player's squads. Will immediately send the speaker to the target if possible, within access limitations.
Pull Player pull [player] Pulls a player to your current squad, killing them in the process.
Mark Player mark [player] Marks a player for admin notification if they leave the server.
Lock Player lock [player] Locks a player from admin commands for 10 minutes. Only the locking admin will be able to act on them.
Unlock Player unlock [player] Allows the locking admin to unlock a currently locked player.
TeamSwap Self moveme None The in-game command used for moving yourself between teams. Will immediately send the speaker to TeamSwap.
Lead Current Squad lead none
OR
[player]
The in-game command used to the speaker to leader of their current squad. When targeted at a player, that player will be given leader of their current squad. Only available in BF4.
Assist Losing Team assist none The in-game command used to join the weak/losing team. Blocked from usage until 2 minutes into any round. Blocked from usage when teams are within 60 tickets of each other.
Kill Self killme None The in-game command used for killing the speaker. Specific timeout of 10 minutes to avoid abuse.
Server Nuke nuke [US/RU/ALL] The in-game command used for killing all players in a subset. US, RU, or ALL will work.
Server Nuke Winning Team wnuke none The in-game command used for killing all players on the winning team when they also have more map control.
SwapNuke Server swapnuke none The in-game command used for team-switching all players in the server. THIS IS EXPERIMENTAL, AND SHOULD BE USED WITH CAUTION. MULTIBalancer unswitcher is automatically disabled when using this command, and re-enabled once complete.
Kick All Guests kickall None The in-game command used for kicking all players except admins.
Dequeue Player Action deq [player] Canceles all queued actions on the target player. Moves, kills, etc.
Manage AFK Players afk None Calls the AFK Management functionality manually. Cannot be used if AFK payers are being managed automatically.
Force Player Loadout floadout [player] If the loadout enforcer is installd and enabled then this command will force that player up to trigger level enforcement.
Set Own Battlecry battlecry NONE Sets the current player's battlecry. This will be displayed to the server when they spawn for the first time during a session.
Set Player Battlecry setbattlecry [player] Sets a players current battlecry. This will be displayed to the server when they spawn for the first time during a session. This command overrides the word filter for battle cries.
Force Manual Player Ping fping [player] Forces AdKats to ignore what the server claims a player's ping is, instead manually fetching the ping using procon.
Link Player to Discord Member fping [player][discordmember] This command links a player with an active Discord member by ID. Sometimes this is required if their name in game vs discord does not match.

Special Player Group Commands

Command Default Text Params Description
Reserved Slot Player reserved [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to reserved slots for the current server. The setting "Feed Server Reserved Slots" must be enabled to use this command.
Un-Reserved Slot Player unreserved [player] The in-game command used for removing a player from reserved slots for the current server. The setting "Feed Server Reserved Slots" must be enabled to use this command.
Spectator Slot Player spectator [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to spectator list for the current server. The setting "Feed Server Spectator List" must be enabled to use this command.
Un-Spectator Slot Player unspectator [player] The in-game command used for removing a player from spectator slots for the current server. The setting "Feed Server Spectator List" must be enabled to use this command.
Ping Whitelist Player pwhitelist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the ping kick whitelist for all servers.
Un-Ping Whitelist Player unpwhitelist [player] The in-game command used for removing a player from ping kick whitelist for all servers.
AA Whitelist Player aawhitelist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the Admin Assistant whitelist for all servers.
Un-AA Whitelist Player unaawhitelist [player] The in-game command used for removing a player from Admin Assistant whitelist for all servers.
SpamBot Whitelist Player spamwhitelist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the SpamBot whitelist for all servers.
Un-SpamBot Whitelist Player unspamwhitelist [player] The in-game command used for removing a player from SpamBot whitelist for all servers.
Autobalance Whitelist Player mbwhitelist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to MULTIBalancer whitelist for the current server. The setting "Feed MULTIBalancer Whitelist" must be enabled to use this command.
Remove Autobalance Whitelist unmbwhitelist [player] The in-game command used for removing a player from MULTIBalancer whitelist for the current server. "Feed MULTIBalancer Whitelist" must be enabled to use this command.
Autobalance Disperse Player disperse [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to MULTIBalancer even dispersion for the current server. The setting "Feed MULTIBalancer Even Dispersion List" must be enabled to use this command.
Remove Autobalance Dispersion undisperse [player] The in-game command used for removing a player from MULTIBalancer even dispersion for the current server. "Feed MULTIBalancer Even Dispersion List" must be enabled to use this command.
Spectator Blacklist Player specblacklist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the Spectator Blacklist for all servers. Players under this group will not be able to enter the server as a spectator.
Un-Spectator Blacklist Player unspecblacklist [player] The in-game command used for removing a player from Spectator Blacklist for all servers.
Report Whitelist Player rwhitelist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the Report Whitelist for all servers. Players under this group cannot be reported.
Un-Report Blacklist Player unrwhitelist [player] The in-game command used for removing a player from Report Whitelist for all servers.
Populator Whitelist Player popwhitelist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the Populator Whitelist for all servers. Used when only allowing approved populators to be considered for automatic populator perks. Setting section B27-2.
Un-Populator Blacklist Player unpopwhitelist [player] The in-game command used for removing a player from Populator Whitelist for all servers.
TeamKillTracker Whitelist Player tkwhitelist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the TeamKillTracker Whitelist for all servers. "Feed TeamKillTracker Whitelist" must be enabled to use this command.
Un-TeamKillTracker Whitelist Player untkwhitelist [player] The in-game command used for removing a player from TeamKillTracker Whitelist for all servers. "Feed TeamKillTracker Whitelist" must be enabled to use this command.
AntiCheat Whitelist Player acwhitelist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the AntiCheat Whitelist for all servers. A player under AntiCheat whitelist will not be acted on in any way by either the normal AntiCheat scripts or by the LIVE system.
Remove AntiCheat Whitelist unacwhitelist [player] The in-game command used for removing a player from AntiCheat Whitelist for all servers.
Command Target Whitelist Player cwhitelist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the Command Target Whitelist for all servers. A player under Command Target whitelist cannot be targeted by any commands configured in the 'Command Target Whitelist Commands' setting.
Remove Command Target Whitelist uncwhitelist [player] The in-game command used for removing a player from Command Target Whitelist for all servers.
Auto-Assist Blacklist Player auablacklist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the Auto-Assist Blacklist for all servers. A player under Auto-Assist Blacklist will always be checked if they are able to assist the weak team, and if they are they are automatically moved to that team.
Remove Auto-Assist Blacklist unauablacklist [player] The in-game command used for removing a player from Auto-Assist Blacklist for all servers.
All-Caps Chat Blacklist Player allcapsblacklist [duration or 'perm']
OR
[duration or 'perm'][player]
OR
[duration or 'perm'][player][reason]
The in-game command used for adding a player to the All-Caps Chat Blacklist for all servers. A player under All-Caps Chat Blacklist will be specifically enforced by the all-caps monitoring system.
Remove All-Caps Chat Blacklist unallcapsblacklist [player] The in-game command used for removing a player from All-Caps Chat Blacklist for all servers.

Reporting Commands

Command Default Text Params Description
Report Player report [player][reason] The in-game command used for reporting players. Must have a reason, and will inform a player otherwise when used incorrectly. Will log a Report in the database (External GCP pulls from there for external admin notifications), and notify all in-game admins. Informs the reporter and admins of the report ID, which the punish system can use.
Call Admin admin [player][reason] The in-game command used for calling admin attention to a player. Same deal as report, but used for a different reason. Informs the reporter and admins of the report ID, which the punish system can use.
Accept Round Report accept [reportID] The in-game command used for accepting reports as confirmed.
Deny Round Report deny [reportID] The in-game command used for denying reports.
Ignore Round Report ignore [reportID] The in-game command used for ignoring reports.
Contest Report contest None Usable by players to contest round reports before admins act on them.

Communication Commands

Command Default Text Params Description
Admin Say say [message]
OR
[preMessageID]
The in-game command used to send a message through admin chat to the whole server.
Player Say psay [player][message]
OR
[player][preMessageID]
The in-game command used for sending a message through admin chat to only a specific player. Chat access must be AnyHidden.
Admin Yell yell [message]
OR
[preMessageID]
The in-game command used for to send a message through admin yell to the whole server.
Player Yell pyell [player][message]
OR
[player][preMessageID]
The in-game command used for sending a message through admin yell to only a specific player. Chat access must be AnyHidden.
Admin Tell tell [message]
OR
[preMessageID]
The in-game command used for to send a message through both admin say and admin yell to the whole server.
Player Tell ptell [player][message]
OR
[player][preMessageID]
The in-game command used for sending a message through both admin say and admin yell to only a specific player. Chat access must be AnyHidden.
Player Private Message msg [player][message] Opens a conversation with the given player. The player can either be in the current server, or any other BF3/BF4 server on your database.
Player Private Reply r [message] Replies to a currently open conversation with the given message.
Admin Private Message adminmsg [message] Sends a message to all online admins in the server. They can then open a private message with the sender to reply to the admin message.
Server Countdown cdown [seconds] [squad/team/all] [reason] The in-game command used for issuing countdowns on a subset of players.

Information Commands

Command Default Text Params Description
What Is whatis [commandName]
OR
[preMessageID]
The in-game command used for finding out what a particular preMessage ID, or command name, means.
Request Rules rules none
OR
[player]
The in-game command used to request the server rules. When targeted at a player, that player will be told the server rules. When targeted at a player, the command goes on timeout for that player.
Request Online Admins admins none The in-game command used to get the list of current online admins.
Request Uptimes uptime none The in-game command used to get the uptime of the server, procon/layer, AdKats, and several other things.
List Round Reports reportlist none The in-game command used to get the latest 6 unanswered round reports.
VOIP voip None The in-game command used for sending VOIP server info to the speaker.
Fetch Player Info pinfo [player] Fetches extended information about the player. Player name, ID, role, team name, team position, current score, time first seen, amount of time spent on current server, city location, IP change count, reports from/against during current round, infraction points, last punishment time/reason, reputation, and previous names.
Fetch Player Chat pchat None
OR
[chatLines]
OR
[player]
OR
[chatLines][player]
OR
self [player]
OR
[chatLines] self [player]
OR
[player1][player2]
OR
[chatLines][player1][player2]
Fetches chat history or conversation history between players.
Request Reputation rep none
OR
[player]
The in-game command used to request the server reputation. When targeted at a player, you will be told that player's reputation. Requesting a player's reputation other than your own is admin only.
Request Server Commands help None Lists the server commands you can access.
Find Player find [player] Returns the team, position, and score, of the targeted player. Chat access must be AnyHidden.
Player Is Admin isadmin [player] Returns whether the given player is an admin, and states their role.
Fetch Admin Status isadmin [player] Fetches the admin status and current role of the player.
Fetch Player Loadout loadout [player] If the loadout enforcer is installed and enabled this command will return a player's current loadout.
Fetch Player Perks perks None
OR
[player]
Returns a player's current active perks and when they are set to expire.
Fetch Player Ping ping None
OR
[player]
Returns a player's current and average ping.
Debug Assist Losing Team dassist [player] Returns whether a player is able to assist or not, and why.

Logging Commands

Command Default Text Params Description
Log Player Information log [player][message] The in-game command used for logging a message on a player's record. Does not affect their gameplay in any way.
Give Server Feedback feedback message Logs the given message as feedback for the server.

Voting Commands

Command Default Text Params Description
Vote Surrender surrender none The in-game command used for starting/voting for a round surrender. Losing team specific, but either surrender or votenext can be used.
Vote Next Round votenext none The in-game command used for starting/voting for a round surrender. Losing team specific, but either surrender or votenext can be used.
Vote Against Surrender nosurrender none The in-game command used for voting AGAINST a currently active round surrender. This command may only be used by the losing team.

Maintenance Commands

Command Default Text Params Description
Restart Current Round restart None The in-game command used for restarting the round.
Run Next Round nextlevel None The in-game command used for running the next map in current rotation, but keep all points and KDRs from this round.
Restart AdKats prestart none The in-game command used for rebooting the AdKats instance. Requires confirmation.
Shutdown Server shutdown none The in-game command used for shutting down/rebooting the Battlefield server. Requires confirmation.
End Current Round endround [US/RU] The in-game command used for ending the current round with a winning team. Either US or RU.
Plugin Update pupdate None Calls manual update of AdKats source and any connected extensions to their latest versions.

AdKats User Manual

Some layer providers require whitelisting of connections through their firewall.

For AdKats to function properly, requests to the following domains/sub-domains must be allowed from your layer for http and https connections. If you do not understand what this means, please send this instruction and the list below to your layer host:

Domain Usage
battlelog.battlefield.com Player identity tracking and AntiCheat.
raw.github.com Global configuration/documentation fetching, and database updates.
raw.githubusercontent.com Global configuration/documentation fetching, and database updates.
sourceforge.net Source updates.
adkats.gamerethos.net Version management, and backup source for definition files.
ip-api.com Player location tracking.
metabans.com Ban enforcer posting.
www.timeanddate.com Global UTC Timestamp

All are either simple GET or POST requests.

The following URLS are used for reputation stats, special player groups, database updates, and weapon stats for AntiCheat system:

Link Usage
adkatsreputationstats.json Command Reputation Constants
adkatsspecialgroups.json Special Player Group Definitions
adkatsupdates.json Database Updates
adkatsblweaponstats.json Battlefield Weapon Stats (Damages)


AdKats User Manual

AdKats issues specific server commands to execute its functions, and run properly. Below are their listings, usages, and intervals of usage.

Command Usage Interval
serverInfo Fetching server info Plugin start, 10 second interval.
vars.teamFactionOverride Fetching team definitions Plugin start, round start.
punkBuster.pb_sv_command Triggering punkbuster screenshots Admin report and calladmin commands.
squad.private Setting whether a squad should be private or not Admin join and pull commands.
squad.leader Assigning squad leader Admin lead commands.
player.isAlive (BF4 only) Checking if a player is alive Kill and move commands.
admin.killPlayer Killing players Admin kill and nuke commands, either automatic or manual.
admin.movePlayer Moving players between teams Admin move commands, and players attempting to move from locked teams.
admin.kickPlayer Kicking players Admin kick commands, either automatic or manual.
admin.say Sending say to either server or private player Admin say and tell commands, along with any automated functions that require notification to the user.
admin.yell Sending yell to either server or private player Admin yell and tell commands, along with any automated functions that require unavoidable notification to the user.
admin.listPlayers Listing current server players Plugin start, 10 second interval when TeamSwap queues are not empty.
admin.shutDown Shutting down/rebooting the battlefield server Admin shutdown commands.
banList.list Listing current server banlist If Ban Enforcer is enabled, when new ban(s) are added to the server, if not, after adding new bans to the server.
banList.add Adding entries to the server ban list Admin ban commands, either automatic or manual, when ban enforcer is disabled, or when importing bans from ban enforcer back into the server.
banList.save Saving the server ban list After adding new bans to the server, or, if ban enforcer is enabled, after clearing the server ban list.
mapList.restartRound Restarting the current level, removing scores. Admin restartLevel commands.
mapList.runNextRound Running the next map in the list, keeping scores. Admin nextLevel commands.
mapList.endRound Ending the current round with a winner. Admin endLevel commands, round timer, surrender vote, and auto-surrender.
reservedSlotsList.remove Removing entries from the reserved slot list. Reserved slot orchestration.
reservedSlotsList.add Adding entries to the reserved slot list. Reserved slot orchestration.
reservedSlotsList.save Saving the server reserved slot list Reserved slot orchestration.
reservedSlotsList.list Fetching updated server reserved slot list Reserved slot orchestration.
spectatorList.remove (BF4 only) Removing entries from the allowed spectator list. Allowed spectator orchestration.
spectatorList.add (BF4 only) Adding entries to the allowed spectator list. Allowed spectator orchestration.
spectatorList.save (BF4 only) Saving the server allowed spectator list Allowed spectator orchestration.
spectatorList.list (BF4 only) Fetching updated server allowed spectator list Allowed spectator orchestration.


AdKats User Manual

0. Instance Settings:

  • 'Auto-Enable/Keep-Alive' - When this is enabled, AdKats will auto-recover from shutdowns and auto-restart if disabled.
  • 'Lock Settings - Create Password' - Lock settings with a new created password. Must be greater than 5 characters.
  • 'Lock Settings' - Lock settings with the existing settings password.
  • 'Unlock Settings' - Unlock settings with the existing settings password.

1. Server Settings:

  • 'Setting Import' - Enter an existing server ID here and all settings from that instance will be imported here. Settings on this instance will be overwritten.
  • 'Server ID (Display)' - ID of this server. Automatically set by the database.
  • 'Server IP (Display)' - IP address and port of this server. Automatically set by Procon.
  • 'Server Round (Display)' - The current round number as determined by the extended round statistics log.
  • 'Server Game (Display)' - Game version of this server as recognized by AdKats. Automatically set by Procon.
  • 'Low Population Value' - Number of players at which the server is deemed 'Low Population'. Server is considered 'Medium Population' when the number of players is between the low and high population values.
  • 'High Population Value' - Number of players at which the server is deemed 'High Population'. Server is considered 'Medium Population' when the number of players is between the low and high population values.
  • 'Automatic Server Restart When Empty' - Enable/Disable automatically rebooting the server when it is empty. Automatically accounts for seeder players.
  • 'Automatic Restart Minimum Uptime Hours' - When automatically rebooting the server, this is the minimum number of hours that the server must be online before the automatic reboot is triggered.
  • 'Automatic Procon Reboot When Server Reboots' - Only enable this setting if you have procon set up on a service which automatically reboots if it crashes. This setting will cause procon to kill its own process shortly after the server is rebooted.

2. MySQL Settings:

  • 'MySQL Hostname' to- Hostname of the MySQL server AdKats should connect to.
  • 'MySQL Port' - Port of the MySQL server AdKats should connect to. Most of the time it's 3306.
  • 'MySQL Database' - Database name AdKats should use for storage. Creation script given in database section.
  • 'MySQL Username' - Username of the MySQL server AdKats should connect to.
  • 'MySQL Password' - Password of the MySQL server AdKats should connect to.

3. User Settings:

  • 'Add User' - Add a user to the user list by entering their unique username here.
  • *User Email* - Current stored email address of the listed user.
  • *User Expiration* - Date that the user will revert to Default Guest role.
  • *User Notes* - Any notes that are logged for the user.
  • *User Role* - Current role of the listed user.
  • *Delete User?* - Type delete in this line to delete the listed user.
  • *Add Soldier?* - Type a logged soldier name in this line to connect it to the listed user. Unique soldiers cannot be connected to more than one user at a time.
  • *Delete Soldier?* - Type delete in this line to remove the listed soldier connection from the user.

3-2. Special Player Display:

  • *Special Player Group Name* (Display) - Displays all players specifically assigned the given group for either all servers or this server specifically.

3-3. Verbose Special Player Display:

  • *Verbose Special Player Group Name* (Display) - Displays all players assigned to a group, even if they aren't specifically assigned to it. For example admins would be included in this list if you are automatically assigning reserved slot to admins. Many things can cause players to be assigned groups, and this section displays the final result.

4. Role Settings:

  • 'Add Role' - Type a new role name in this line to add a new role. Role names must be unique.

Listed below "Add Role" are all the command assignments for each role. Change Allow/Deny for each command for the different user roles to control their access. Type delete in the "delete?" line to delete the user role. When a user role is deleted, all users on that role are changed to the Default Guest role. You cannot delete the Default Guest role. Commands that are classified as admin commands (commands that when enabled will make a role be considered admin), show up in the list with [ADMIN] next to them. Commands that are causing a role to be considered admin will have a '<---' next to the command, so it's easy to find those commands in the list.

4-2. Role Group Settings:

Listed in this section is an entry for each possible special player group, on every role in your role list. Setting 'Assign' to any entry will place all users/soldiers under that role on the selected special player group. Some groups may be forced to 'Assign' by other options you've set around AdKats, for example if you've fed reserved slots for admins that group is force assigned for all admin roles.

5. Command Settings:

  • 'Minimum Required Reason Length' - The minimum length a reason must be for commands that require a reason to execute. This only applies to admin commands.
  • 'Minimum Report Handle Seconds' - The minimum number of seconds before a report can be acted on by admins using report ID.
  • 'Minimum Minutes Into Round To Use Assist' - The number of minutes that a round needs to be active before players are allowed to use the !assist command.
  • 'Maximum Temp-Ban Duration Minutes' - The maximum number of minutes that a temp-ban can be issued for.
  • 'Countdown Duration before a Nuke is fired' - When an admin or the auto-nuke system issues a nuke on the server, this is the number of seconds warning that the server is given before the nuke is actually fired.
  • 'Allow Commands from Admin Say' - When this is enabled, all admins with procon access have unrestricted access to all enabled commands through procon's chat tab. When issuing commands through procon's chat tab, the commands must be prefixed with a / for them to work.
  • 'Bypass all command confirmation -DO NOT USE-' - Disables all command confirmation. Do not use this setting unless you want to kick/ban the wrong people.
  • 'External plugin player commands' - List of commands from other plugins (with prefixes) that general players can access. Currently used for the help command.
  • 'External plugin admin commands' - List of commands from other plugins (with prefixes) that admins can access. Currently used for the help command.
  • 'Command Target Whitelist Commands' - List of commands that will be blocked when attempted to issue on players which have the command target whitelist group.

6. Command List:

  • *Active* - Globally disable or enable the given command.
  • *Logging* - Set whether usage of this command is logged. All commands log by default.
  • *Text* - Globally change the in-game text for this command. Command text must be unique.
  • *Access Method* - The method that must be used to access this command from in-game. Options are 'Any', 'AnyHidden', 'AnyVisible', 'GlobalVisible', 'TeamVisible', and 'SquadVisible'.

7. Punishment Settings:

  • 'Punishment Hierarchy' - List of punishments in the order you want them to be issued on players. Index in the list is the action taken at that number of infraction points. The default hierarchy is only an example list containing the available options, you should customize it for your server.
  • 'Combine Server Punishments' - Whether to make punishes from all servers on the connected database affect players on this server. Default is false.
  • 'Automatic Forgives' - Whether to enable automatic forgives on players who have infractions on the current server. These automatic forgives are given after they have clean play for a defined amount of time. By default auto-forgives start a month after last punishment, and every 2 weeks thereafter.
  • 'Automatic Forgive Days Since Punished' - The number of days since last punished required for an automatic forgive to be issued. Default is 30 days.
  • 'Automatic Forgive Days Since Forgiven' - The number of days since last forgiven required for an automatic forgive to be issued. Default is 14 days.
  • 'Only Kill Players when Server in low population' - When server population is below 'Low Population Value' only kill players so server does not empty. Player infraction points will be incremented normally.
  • 'Use IRO Punishment' - Whether the IRO punishment described in the infraction tracking docs will be used.
  • 'IRO Timeout Minutes' - Number of minutes after a punish that IRO status expires for the next punish.
  • 'IRO Punishment Overrides Low Pop' - When punishing players if a player gets an IRO punish it will ignore whether server is in low population or not.
  • 'IRO Punishment Infractions Required to Override' - Minimum number of infraction points a player must have for IRO punishments to override low population actions.

8. Email Settings:

  • 'Send Emails.' - Whether sending emails will be enabled.
  • 'Use SSL?' - Whether SSL will be used for connection to the SMTP server.
  • 'SMTP-Server address.' - Address of the SMTP server.
  • 'SMTP-Server port.' - Port to use for the SMTP server.
  • 'Sender address.' - The email address used to send all emails.
  • 'SMTP-Server username.' - The username used to authenticate into the SMTP server.
  • 'SMTP-Server password.' - The password used to authenticate into the SMTP server.
  • 'Custom HTML Addition.' - Custom HTML to add to the end of each email. String replacements include: %player_id%, $player_name%, %player_guid%, %player_pbguid%, %player_ip%
  • 'Extra Recipient Email Addresses.' - List of all extra email addresses beside user email addresses that you would like to blast.
  • 'Only Send Report Emails When Admins Offline.' - Only send report notification emails when there are no admins in the server.

8-2. PushBullet Settings:

  • 'Send PushBullet Reports' - Whether to enable the PushBullet integration for AdKats reports against players.
  • 'PushBullet Access Token' - The access token required for sending notes through the PushBullet service.
  • 'PushBullet Note Target' - Either Private or Channel. Private messages are to a specific person, channel messages need a separate channel tag.
  • 'PushBullet Channel Tag' - If Channel is chosen for the note target this setting takes the required tag to identify which channel to use.
  • 'Only Send PushBullet Reports When Admins Offline' - When this is enabled AdKats will only use the PushBullet system when there are no admins in the server.

9. TeamSwap Settings:

  • 'Ticket Window High' - When either team is above this ticket count, nobody (except admins) will be able to use TeamSwap.
  • 'Ticket Window Low' - When either team is below this ticket count, nobody (except admins) will be able to use TeamSwap.

A10. Admin Assistant Settings:

  • 'Enable Admin Assistants' - Whether admin assistant statuses can be assigned to players.
  • 'Minimum Confirmed Reports Per Month' - How many confirmed reports the player must have in the past month to be considered an admin assistant.
  • 'Enable Admin Assistant Perk' - Whether admin assistants will get the TeamSwap perk for their help.
  • 'Use AA Report Auto Handler' - Whether the internal auto-handling system for admin assistant reports is enabled.
  • 'Auto-Report-Handler Strings' - List of trigger words/phrases that the auto-handler will act on. One per line.

A11. Player Mute Settings:

  • 'On-Player-Muted Message' - The message given to players when they are muted by an admin.
  • 'On-Player-Killed Message' - The message given to players when they are killed for talking in chat after muting.
  • 'On-Player-Kicked Message' - The message given to players when they are kicked for talking more than X times in chat after muting.
  • '# Chances to give player before kicking' - The number of chances players get to talk after being muted before they are kicked. After testing, 4 appears to be the perfect number, but change as desired.
  • 'Ignore commands for mute enforcement' - Whether to ignore commands when enforcing mute status on a player.

A12. Messaging Settings:

  • 'Display Admin Name in Action Announcement' - When players are kicked or banned from the server, the whole server is told. This changes whether the message includes the acting admin name.
  • 'Display New Player Announcement' - Whether to inform admins when a player joins the server for the first time. This message is displayed when the player actually spawns.
  • 'Display Player Name Change Announcement' - Whether to inform admins when a player joins the server with a changed name, or a changed clan tag.
  • 'Display Targeted Player Left Notification' - Whether to inform admins when a player they acted on leaves the server.
  • 'Display Ticket Rates in Procon Chat' - Whether to display team ticket loss/gain rates in the Procon chat tab. Useful for setting values in auto-surrender. This also includes flag estimates for conquest, and estimations of the winning team based on current ticket loss rates.
  • 'Inform players of reports against them' - Whether to inform players when someone reports them.
  • 'Player Inform Exclusion Strings' - List of words or phrases that will cancel informing reported players. For example, use if you don't want players to know if someone reports them with "hack", or "cheat" in the message.
  • 'Inform reputable players of admin joins' - Whether to tell reputable players that an admin joins the server.
  • 'Inform admins of admin joins' - Whether to tell admins that an admin joins the server.
  • 'Yell display time seconds' - The time in seconds that yell messages will be displayed.
  • 'Pre-Message List' - List of messages mapped to IDs that can be used in action commands. e.g. !kill mustardman 23. The !whatis command can be used to check what each ID means.
  • 'Require Use of Pre-Messages' - Whether using pre-messages in commands is required instead of custom messages.
  • 'Use first spawn message' - Whether to use the first spawn message for players.
  • 'First spawn message text' - Message to send players when they first spawn in the server. Uses tell.
  • 'Use First Spawn Reputation and Infraction Message' - Whether to inform players of their current server reputation and infraction count after the first spawn message is shown.
  • 'Use Perk Expiration Notification' - Whether to tell players that they have perks which are expiring soon. This message is sent when they first spawn into the server.
  • 'Perk Expiration Notify Days Remaining' - The number of days before their perks expire that the notification messages start showing.

A12-2. SpamBot Settings:

To bypass any whitelist (aside from the admin whitelist), simply add [whitelistbypass] to the start of any spambot message to make it always display that message. You can also add any map or mode combination to the start of a spambot message to make it specific to that map/mode combination. The mode or map needs to be the exact name as displayed in the procon maplist tab. Examples are below:

  • Operation Metro 2014/Conquest Large/This is my first message which shows on conquest metro only.
  • Operation Locker/Rush/[whitelistbypass]This is my second message which shows on locker rush only, and will bypass whitelist.
  • CTF/This is my third message that shows on capture the flag, regardless of map.
  • Zavod 311/[whitelistbypass]This is my fourth message which shows on zavod, regardless of game mode, and will bypass whitelist.
  • This is my fifth message which shows on every map and mode.

Setting List

  • 'SpamBot Enable' - Whether to enable the SpamBot.
  • 'SpamBot Say List' - List of messages to send to the server as SAY.
  • 'SpamBot Say Delay Seconds' - The number of seconds between each SAY message is sent.
  • 'SpamBot Yell List' - List of messages to send to the server as YELL.
  • 'SpamBot Yell Delay Seconds' - The number of seconds between each YELL message is sent.
  • 'SpamBot Tell List' - List of messages to send to the server as TELL.
  • 'SpamBot Tell Delay Seconds' - The number of seconds between each TELL message is sent.
  • 'Exclude Admins and Whitelist from Spam' - Whether to exclude admins and whitelisted players from seeing any messages sent from the SpamBot.

A12-3. Battlecry Settings - Thanks WDF:

  • 'Player Battlecry Volume' - How 'loud' the player's battlecry will be. Options are Disabled, Say, Yell, and Tell.
  • 'Player Battlecry Max Length' - The maximum number of characters in a battlecry message. Cannot be less than 20 or more than 300.
  • 'Player Battlecry Denied Words' - List of case-insensitive words that are not allowed in battlecry messages. The !setbattlecry command available to admins overrides this list.

A12-4. All-Caps Chat Monitor:

  • 'Use All Caps Limiter' - Toggles the all caps limiter on or off.
  • 'All Caps Limiter Only Limit Specified Players' - When enabled this will make the all caps monitor not look at the entire server, instead only looking at a few choice players assigned the all caps blacklist special player group.
  • 'All Caps Limiter Character Percentage' - The percentage of characters in a given message that must be all caps before the message is considered all caps. This ignores numbers and special characters, so #%28THIS99/$ would be considered 100% all caps.
  • 'All Caps Limiter Minimum Characters' - Minimum length a message needs to be before the all-caps system will examine it.
  • 'All Caps Limiter Warn Threshold' - The number of all caps messages before the player is warned in chat about the limitation. This value must be less than the kill threshold.
  • 'All Caps Limiter Kill Threshold' - The number of all caps messages before the player is killed.
  • 'All Caps Limiter Kick Threshold' - The number of all caps messages before the player is kicked. This value must be greater than the kill threshold.

A13. Banning Settings:

  • 'Use Additional Ban Message' - Whether to have an additional message append on each ban.
  • 'Additional Ban Message' - Additional ban message to append on each ban. e.g. "Dispute at www.yourclansite.com"
  • 'Procon Ban Admin Name' - Admin name that will be used for bans filed via procon.

A13-2. Ban Enforcer Settings:

  • 'Use Ban Enforcer' - Whether to use the AdKats Ban Enforcer.
  • 'Ban Enforcer BF4 Lenient Kick' - On BF4 a lot of players use DICE's new in-game server browser. The bad part of this is that nobody can see kick or ban reasons, they aren't displayed on the game UI. This setting allows the ban enforcer to spam a player with say and yell messages before they are ejected from the server so they know why they were banned. This comes with the side effect that people joining back after being banned may have a few seconds to use the chat window before they are ejected again. After 2 re-join attempts the lenient kick is automatically removed though, so people who take advantage of this should be handled regardless. Despite the handling, this setting is opt-in instead of opt-out.
  • 'Enforce New Bans by NAME' - Whether to use a player's name to ban them. (Insecure, players can change their names)
  • 'Enforce New Bans by GUID' - Whether to use a player's EA GUID to ban them. (Secure, players cannot change their GUIDs)
  • 'Enforce New Bans by IP' - Whether to use a player's IP Address to ban them. (Somewhat secure, experienced players can change their IP, and IP bans can hit multiple players.)
  • 'Use Metabans?' - Whether to use metabans functionality when banning/unbanning in ban enforcer.
  • 'Metabans Username' - Username for authentication to your metabans account.
  • 'Metabans API Key' - API Key for your metabans account.
  • 'Metabans Filter Strings' - List of case-insensitive words/strings that must be in a ban message for it to be posted to metabans.

A13-3. Mini Ban Management:

  • 'NAME Ban Count' - How many NAME bans are currently being enforced by AdKats Ban Enforcer.
  • 'GUID Ban Count' - How many EA GUID bans are currently being enforced by AdKats Ban Enforcer.
  • 'IP Ban Count' - How many IP bans are currently being enforced by AdKats Ban Enforcer.
  • 'Ban Search' - Enter a full or partial player name here and AdKats will display all ACTIVE matching bans.

A14. External Command Settings:

  • 'AdKatsLRT Extension Token' - Usable with AdKatsLRT - On Spawn Loadout Enforcer plugin. Once that plugin is purchased, the token can be placed here for automatic install/updates.

A15. VOIP Settings:

  • 'Server VOIP Address' - String that will be sent to players using the VOIP command.

A16. Orchestration Settings:

  • 'Feed MULTIBalancer Whitelist' - When enabled, the multibalancer whitelist special player group is used to feed MULTIBalancer's player whitelist.
  • 'Automatic MULTIBalancer Whitelist for Admins' - When enabled, all admins in your User List will be given whitelist from balance in MULTIBalancer.
  • 'Feed MULTIBalancer Even Dispersion List' - When enabled, the dispersion blacklist special player group is used to feed MULTIBalancer's even dispersion list.
  • 'Feed TeamKillTracker Whitelist' - When enabled, the TeamKillTracker whitelist special player group is used to feed TeamKillTracker's player whitelist.
  • 'Automatic TeamKillTracker Whitelist for Admins' - When enabled, all admins in your User List will be given an automatic TeamKillTracker whitelist.
  • 'Feed Server Reserved Slots' - When enabled, players in the reserved slot special player group will be given a reserved slot. Any modifications of the reserved slot list outside of Adkats will be erased.
  • 'Automatic Reserved Slot for Admins' - When enabled, all admins in your User List will be given a reserved slot.
  • 'Automatic VIP Kick Whitelist for Admins' - When enabled, all admins in your User List will be given a VIP kick whitelist.
  • 'Feed Server Spectator List' - When enabled, the server's spectator list will include all players given the spectator whitelist special player group.
  • 'Automatic Spectator Slot for Admins' - When enabled, all admins in your User List will be given a spectator slot.
  • 'Feed Stat Logger Settings' - When enabled, stat logger is fed settings appropriate for AdKats, including correct database time offset, instant chat logging, etc.

    The following settings are sent to stat logger when using the "Feed Stat Logger Settings" orchestration option:

    • "Servertime Offset" (TIME OFFSET CONVERSION TO UTC TIME)
    • "Enable Chatlogging?" "Yes"
    • "Instant Logging of Chat Messages?" "Yes"
    • "Enable Statslogging?" "Yes"
    • "Enable Weaponstats?" "Yes"
    • "Enable KDR correction?" "Yes"
    • "MapStats ON?" "Yes"
    • "Session ON?" "Yes"
    • "Save Sessiondata to DB?" "Yes"
    • "Log playerdata only (no playerstats)?" "No"
    "Enable Live Scoreboard in DB" is forced on at all times.

  • 'Post Stat Logger Chat Manually' - Sometimes stat logger chat upload glitches and stops, this overrides that posting and uploads all chat to the database through the AdKats script instead.
  • 'Post Server Chat Spam' - Whether to include server spam messages when posting stat logger chat manually.
  • 'Exclude Commands from Chat Logs' - Whether to exclude messages containing commands from being stored in the database.
  • 'Banned Tags' - List of clan tags which will cause players to be banned from the server.

A17. Round Settings:

  • 'Round Timer: Enable' - When enabled, rounds will be limited to X minutes.
  • 'Round Timer: Round Duration Minutes' - Number of minutes that the round will last before the current winning team wins (Will only work correctly in conquest/domination at the moment).

A18. AntiCheat Settings:

  • 'Use LIVE Anti Cheat System' - The LIVE AntiCheat system looks at active statistics and between round statistics to bolster the abilities of the AntiCheat script. The only downside to this is that it issues more requests to battlelog.
  • 'LIVE System Includes Mass Murder and Aimbot Checks' - When this is enabled then the LIVe system will also act on players using active stats mid-round. Players are acted on if they kill a very large amount of people in a short period of time (standard mass-murder), or if they have an extremely high headshot/kill ratio with non-sniper weapons. The stats used here are leaps and bounds above normal, so they should only trigger for the most blatant hacks, however this is still disabled by default.
  • 'AntiCheat: DPS Checker: Ban Message' - Message prefix to use when banning for damage mod.
  • 'AntiCheat: HSK Checker: Enable' - Whether the Aimbot portion of the AntiCheat system is enabled.
  • 'AntiCheat: HSK Checker: Trigger Level' - The headshot/kill ratio for automatic weapons that will trigger a ban. 100 kills minimum to trigger. After 3 months of testing, we suggest setting between 50 and 70 depending on the severity you want to enforce. You will get some false positives down near 50 but will catch many more aimbotters, setting near 70 will not result in false positives but also won't catch as many bots.
  • 'AntiCheat: HSK Checker: Ban Message' - Message prefix to use when banning for high HSK.
  • 'AntiCheat: KPM Checker: Enable' - Whether the KPM portion of the AntiCheat system is enabled.
  • 'AntiCheat: KPM Checker: Trigger Level' - Kills-per-minute with any included weapon that will trigger the ban.
  • 'AntiCheat: KPM Checker: Ban Message' - Message prefix to use when banning for high KPM.

A19. Server Rules Settings:

You can add any map or mode combination to the start of a rule to make it specific to that map/mode combination. The mode or map needs to be the exact name as displayed in the procon maplist tab. Examples are below:

  • Operation Metro 2014/Conquest Large/This is my first rule which shows on conquest metro only.
  • Operation Locker/Rush/[whitelistbypass]This is my second rule which shows on locker rush only, and will bypass whitelist.
  • CTF/This is my third rule that shows on capture the flag, regardless of map.
  • Zavod 311/[whitelistbypass]This is my fourth rule which shows on zavod, regardless of game mode, and will bypass whitelist.
  • This is my fifth rule which shows on every map and mode.

Setting List

  • 'Rule Print Delay' - Delay in seconds after rules are requested that they start being sent to the player.
  • 'Rule Print Interval' - Delay in seconds between each rule being sent to the player.
  • 'Server Rule List' - List of rules for the server. Raw text can be used here, or alternatively pre-message IDs.
  • 'Server Rule Numbers' - Whether to include rule numbers at the beginning of each line during rule printing.
  • 'Yell Server Rules' - Whether to send rules in both yell and say to players.

B20. AFK Settings:

  • 'AFK System Enable' - Whether to enable the AFK management system.
  • 'AFK Ignore Chat' - Events are used to cancel AFK timeout for players. When this is enabled, players just sitting in the spawn screen chatting will be kicked. They must play in order to stay in the server.
  • 'AFK Auto-Kick Enable' - Whether to automatically kick or not. When disabled the afk command must be used for kicking afk players.
  • 'AFK Trigger Minutes' - The number of minutes a player can do nothing before being considered AFK.
  • 'AFK Minimum Players' - Minimum number of players that must be in the server before the system will kick AFK players.
  • 'AFK Ignore User List' - Whether to ignore all users on the user list.
  • 'AFK Ignore Roles' - Visible when not ignoring all users on the user list. List the role keys that will be ignored.

B21. Ping Enforcer Settings:

  • 'Ping Enforcer Enable' - Whether to enable the Ping Enforcer.
  • 'Current Ping Limit (Display)' - The current ping limit based on all the settings below, showing the formula for how it was calculated.
  • 'Ping Moving Average Duration sec' - The amount of time that should be used to average the player pings. Default is a 3 minute window.
  • 'Ping Kick Low Population Trigger ms' - The minimum ping that will trigger a kick in low population.
  • 'Ping Kick Low Population Time Modifier' - 24 lines, one for each hour of the day. Positive numbers will add to the current ping limit at this population level, negative numbers will take away from it.
  • 'Ping Kick Medium Population Trigger ms' - The minimum ping that will trigger a kick in medium population.
  • 'Ping Kick Medium Population Time Modifier' - 24 lines, one for each hour of the day. Positive numbers will add to the current ping limit at this population level, negative numbers will take away from it.
  • 'Ping Kick High Population Trigger ms' - The minimum ping that will trigger a kick in high population.
  • 'Ping Kick High Population Time Modifier' - 24 lines, one for each hour of the day. Positive numbers will add to the current ping limit at this population level, negative numbers will take away from it.
  • 'Ping Kick Full Population Trigger ms' - The minimum ping that will trigger a kick in full population.
  • 'Ping Kick Full Population Time Modifier' - 24 lines, one for each hour of the day. Positive numbers will add to the current ping limit at this population level, negative numbers will take away from it.
  • 'Ping Kick Minimum Players' - The minimum number of players that must be in the server before ping kicks will happen.
  • 'Kick Missing Pings' - Whether to kick players for having missing ping.
  • 'Attempt Manual Ping when Missing' - If the server does not provide the player a ping, attempt to fetch their ping manually using the Procon instance.
  • 'Ping Kick Ignore User List' - Whether to ignore all users on the user list.
  • 'Ping Kick Ignore Roles' - List the role keys that will be ignored. e.g. full_admin, guest_default.
  • 'Ping Kick Message Prefix' - Custom message to be displayed in ping kicks.
  • 'Display Ping Enforcer Messages In Procon Chat' - Used to enable/disable the display of ping warning messages in the procon chat tab. Kicks for ping are still displayed when this is disabled, but messages for ping spikes and ping being over the limit are not displayed.

B22. Commander Manager Settings:

  • 'Commander Manager Enable' - Whether to enable the Commander Manager.
  • 'Minimum Players to Allow Commanders' - Commanders will be automatically kicked when attempting to join with active player count less than this value. Existing commanders will be kicked if player count drops below 75% of this value.

B23. Player Locking Settings:

  • 'Player Lock Manual Duration Minutes' - When locking players via command, they will be locked for the given duration in minutes.
  • 'Automatically Lock Players on Admin Action' - When a player is acted on by an admin, they will be automatically locked from action by other admins.
  • 'Player Lock Automatic Duration Minutes' - When automatically locking players, they will be locked for the given duration in minutes.

B24. Surrender Vote Settings:

  • 'Surrender Vote Enable' - Whether to enable the Surrender Vote System.
  • 'Percentage Votes Needed for Surrender' - Percentage of a team required for surrender vote to complete.
  • 'Minimum Player Count to Enable Surrender' - The minimum number of players that must be in the server for a surrender vote to be allowed.
  • 'Minimum Ticket Gap to Surrender' - The minimum difference in tickets between teams for a surrender vote to be allowed.
  • 'Enable Required Ticket Rate Gap to Surrender' - Whether to require a minimum ticket loss/gain rate between teams before a surrender vote is allowed. Use 'Display Ticket Rates in Procon Chat' in section A12 to monitor ticket loss/gain rates.
  • 'Minimum Ticket Rate Gap to Surrender' - The minimum difference in ticket rates between teams for a surrender vote to be allowed.
  • 'Surrender Vote Timeout Enable' - Whether to enable a timeout on the surrender vote. After this timeout all votes will be removed, and the surrender vote will be stopped.
  • 'Surrender Vote Timeout Minutes' - The number of minutes after surrender vote start that it will time out and remove all votes.

B25. Auto-Surrender Settings:

  • 'Auto-Surrender Enable' - Whether to enable the Auto-Surrender System. When enabled, all below values must be contained in a round for it to trigger an automatic round surrender.
  • 'Auto-Surrender Use Optimal Values for Metro Conquest' - If you are running Metro 2014 on Conquest, use this setting, it will issue auto-surrender when a baserape happens and the weak team cannot recover.
  • 'Auto-Surrender Use Optimal Values for Locker Conquest' - If you are running Operation Locker on Conquest, use this setting, it will issue auto-surrender when a baserape happens and the weak team cannot recover.
  • 'Auto-Surrender Minimum Ticket Count' - If either team is below this ticket count, auto-surrender will not fire.
  • 'Auto-Surrender Maximum Ticket Count' - If either team is above this ticket count, auto-surrender will not fire.
  • 'Auto-Surrender Minimum Ticket Gap' - The minimum difference in ticket counts between teams for auto-surrender to fire.
  • 'Auto-Surrender Losing Team Rate Window Max' - The losing team's ticket rate must not be greater than this value for auto-surrender to fire.
  • 'Auto-Surrender Losing Team Rate Window Min' - The losing team's ticket rate must not be less than this value for auto-surrender to fire.
  • 'Auto-Surrender Winning Team Rate Window Max' - The winning team's ticket rate must not be greater than this value for auto-surrender to fire.
  • 'Auto-Surrender Winning Team Rate Window Min' - The winning team's ticket rate must not be less than this value for auto-surrender to fire.
  • 'Auto-Surrender Trigger Count to Surrender' - Triggers happen every 10 seconds. The above values must be hit this number of times for auto-surrender to fire. Admins and players are optionally informed of triggers.
  • 'Auto-Surrender Message' - The message that will be sent to the server when an auto-surrender is fired. Place %WinnerName% in the string for the name of the winning team.
  • 'Nuke Winning Team Instead of Surrendering Losing Team' - When an auto-surrender would have been triggered on the losing team due to the settings above, instead, nuke the winning team.
  • 'Start Surrender Vote Instead of Surrendering Losing Team' - When an auto-surrender would have been triggered on the losing team due to the settings above, instead, simply start a surrender vote, with AutoAdmin giving 1 vote toward surrender.

B25-2. Auto Settings:

  • 'Maximum Auto-Nukes Each Round' - The maximum number of nukes that the auto-nuke system can fire before stopping.
  • 'Reset Auto-Nuke Trigger Count on Fire' - When this is enabled, regardless of how many triggers have been fired toward the nuke the number is reset when the actual nuke is fired. Use this if you have many flags in your server which need to stabilize before getting good numbers for ticket loss again.
  • 'Switch to surrender after max nukes' - Instead of completely stopping the script when the max number of nukes is reached, instead revert to using the auto-surrender script.
  • 'Minimum Seconds Between Nukes' - The minimum number of seconds after a nuke is fired before another is able to fire.
  • 'Countdown Duration before a Nuke is fired' - When an admin or the auto-nuke system issues a nuke on the server, this is the number of seconds warning that the server is given before the nuke is actually fired.
  • 'Fire Nuke Triggers if Winning Team up by X Tickets' - An override to fire a nuke if there is too large of a ticket gap between the two teams.
  • 'Announce Nuke Preparation to Players' - Nuke preparation percentages are calculated in the background. Use this setting to display the percentage progress toward firing the next nuke to all players in the server.
  • 'Allow Auto-Nuke to fire on losing teams' - Normally the script completely blocks issuing of nukes on the losing team, this is by design. For the ambitious few however this setting is available to allow nukes on the losing team if they take over the map regardless.
  • 'Maximum Nuke Ticket Difference for Losing Team' - If we are not nuking losing teams, this setting is how many tickets a team must be losing by before a nuke is issued on them.
  • 'Auto-Nuke High Pop Duration Seconds' - The duration of a nuke when the server is in high population. During this time the target team is held dead as the server counts down the number of seconds you define here.
  • 'Auto-Nuke Medium Pop Duration Seconds' - Same as above but for when the server is in medium population.
  • 'Auto-Nuke Low Pop Duration Seconds' - Same as above but for when the server is in low population.
  • 'Auto-Nuke Consecutive Duration Increase' - If a team is clearly overpowered and keeps getting nuked, this setting will increase the number of seconds the nuke is fired for, with no upper limit. For example, if you have this setting at 10 seconds, and a high population nuke is fired for 15 seconds, but this is the 3rd nuke to be fired against this team, the resulting nuke is 35 seconds long.
  • 'Auto-Nuke Duration Increase Minimum Ticket Difference' - The minimum ticket difference between teams before the nuke duration is allowed to increase.
  • 'Auto-Nuke Message' - The message that will be sent to the server when an auto-nuke is fired. Place %WinnerName% in the message for the name of the winning team being nuked.

B26. Statistics Settings:

  • 'Post Map Benefit/Detriment Statistics' - Whether to post statistics on which maps are most beneficial/detrimental to the population of the server. Queries to extract meaning from this information can be acquired in the main AdKats forum thread.

B27. Populator Monitor Settings - Thanks CMWGaming:

  • 'Monitor Populator Players - Thanks CMWGaming' - When enabled, players who help populate servers can be automatically monitored and given perks.
  • 'Populator Players (Display)' - Current display of populator players using the below options.
  • 'Monitor Specified Populators Only' - When enabled, players must be placed under populator whitelist in order to be considered for populator status on this server.
  • 'Monitor Populators of This Server Only' - When enabled, only population counts of this server are used to count toward populator stats on this server.
  • 'Count to Consider Populator Past Week' - Players will be considered populator if they have this many populations in the past week.
  • 'Count to Consider Populator Past 2 Weeks' - Players will be considered populator if they have this many populations in the past 2 weeks.
  • 'Enable Populator Perks.' - When enabled, populator perk options are made visible.
  • 'Populator Perks - Reserved Slot.' - When enabled, populators are given reserved slots.
  • 'Populator Perks - Autobalance Whitelist.' - When enabled, populators are given MULTIBalancer whitelist.
  • 'Populator Perks - Ping Whitelist.' - When enabled, populators are given whitelist from ping kicks.
  • 'Populator Perks - TeamKillTracker Whitelist.' - When enabled, populators are given a whitelist in TeamKillTracker.

B28. Teamspeak Monitor Settings - Thanks CMWGaming:

  • 'Monitor Teamspeak Players - Thanks CMWGaming' - When enabled, the teamspeak player monitor settings will be displayed.
  • 'Teamspeak Players (Display)' - Current display of online players who are matched to teamspeak users.
  • 'Enable Teamspeak Player Monitor' - When enabled, the below settings will be used to monitor players in the targeted teamspeak server.
  • 'Teamspeak Server IP' - IP address of the teamspeak server.
  • 'Teamspeak Server Port' - Public port number of the teamspeak server.
  • 'Teamspeak Server Query Port' - Query port number of the teamspeak server.
  • 'Teamspeak Server Query Username' - Username to use for teamspeak connection.
  • 'Teamspeak Server Query Password' - Password to use for teamspeak connection.
  • 'Teamspeak Server Query Nickname' - Nickname to use for the teamspeak connection.
  • 'Teamspeak Main Channel Name' - Main channel to grab players from. Must be set on connection start, cannot be modified afterwards.
  • 'Teamspeak Secondary Channel Names' - Any additional channels to pull players from.
  • 'Debug Display Teamspeak Clients' - Display console debug when relevant events happen.
  • 'TeamSpeak Player Join Announcement' - Whether to announce players who join in both teamspeak and the game.
  • 'TeamSpeak Player Join Message' - Message to announce joining teamspeak players with.
  • 'TeamSpeak Player Update Seconds' - How often the system will query teamspeak for client updates. Minimum 5 seconds.
  • 'Enable Teamspeak Player Perks' - Whether to give players in teamspeak any automatic perks.
  • 'Teamspeak Player Perks - VIP Kick Whitelist' - When enabled, teamspeak players are given VIP Kick Whitelist.
  • 'Teamspeak Player Perks - Autobalance Whitelist' - When enabled, teamspeak players are given MULTIBalancer whitelist.
  • 'Teamspeak Player Perks - Ping Whitelist' - When enabled, teamspeak players are given whitelist from ping kicks.
  • 'Teamspeak Player Perks - TeamKillTracker Whitelist' - When enabled, teamspeak players are given a whitelist in TeamKillTracker.

B29. Discord Player Monitor Settings:

  • 'Monitor Discord Players' - When enabled, the discord player monitor settings will be displayed.
  • '[#] Discord Players (Display)' - Current display of online players who are matched to discord members.
  • '[#] Discord Channel Members (Display)' - The full list of discord memebers in the list of monitored channels.
  • '[#] Discord All Members (Display)' - List of all members in the discord server.
  • 'Enable Discord Player Monitor' - When enabled, the below settings will be used to monitor players in the targeted discord server.
  • 'Discord Server ID' - The ID of the discord server to monitor. This value can be found in the widget.json URL for the server.
  • 'Discord Channel Names' - The list of discord channels to monitor.
  • 'Require Voice in Discord to Issue Admin Commands' - When this is enabled, a player must be recognized as being online in the discord server in order to issue admin commands. The current issue with this is the 5 minute update frequency from discord because procon with .net 3.5 doesn't have access to websockets.
  • 'Discord Player Join Announcement' - Whether to announce players who join in both discord and the game.
  • 'Discord Player Join Message' - Message to announce joining discord players with.
  • 'Enable Discord Player Perks' - Whether to give players in discord any automatic perks.
  • 'Discord Player Perks - Reserved Slot' - When enabled, discord players are given VIP Kick Whitelist.
  • 'Discord Player Perks - Autobalance Whitelist' - When enabled, discord players are given MULTIBalancer whitelist.
  • 'Discord Player Perks - Ping Whitelist' - When enabled, discord players are given whitelist from ping kicks.
  • 'Discord Player Perks - TeamKillTracker Whitelist' - When enabled, discord players are given a whitelist in TeamKillTracker.
  • 'Debug Display Discord Members' - Display console debug when relevant events happen.

C30. Team Power Monitor:

  • 'Team Power Active Influence' - How much players performance in the current round should be weighted against their overall statistics. I've found the best value for this to be 35.
  • 'Team Power (Display)' - The current power levels of each team and the percentage difference between them.
  • 'Player Power (Display)' - The current list of active players in the server with their team assignments and power levels. A team key with a + after it means they are locked to that team. A team -> team means they are assigned to the other team and waiting to be moved. The first number following their name is the most important, the others are for debug. Player power ranges from 7-35.
  • 'Enable Team Power Scrambler' - Completely experimental system, use with caution. This system uses team power metrics to scramble teams based on their power levels, keeping squads together. Players are then locked to their assigned teams for the duration of the round unless they use assist or are moved by an admin. I've noticed that this system does not work well for metro since the rounds are so volatile and people quit and join at such a high rate. Should be more useful for TDM or conquest vehicles where the player turnover rate is lower during a round.
  • 'Enable Team Power Join Reassignment' - Using team power metrics this system will reassign newly joining players to the weak team. If a 64 man server is nearly full and the weak team needs a lot of help it will allow up to a 4 player advantage for the weak team.
  • 'Team Power Join Reassignment Leniency' - Normally join reassignment only kicks in if a team is weaker, and they have less of the map controlled. This leniency kicks in as an override so that if a team is VERY behind in power it will still get players assigned to it even if they have more map control at the moment. The configuration for this is power ratio percentage a team must be behind before this will activate. For example if it's set to 30, the other team must be a full 30% more powerful before this override will kick in.
  • 'Team Power Join Reassignment Leniency Percent' - The percentage of power that a team must be behind in order to still get players assigned to it when they normally wouldn't be.
  • 'Enable Team Power Unswitcher' - Using team power metrics this system blocks players from moving themselves to the more powerful team. Still allows players to move themselves to the weaker team.
  • 'Enable Team Power Seeder Control' - A basic seeder balancer using team power metrics and placements on the map. Seeders are evenly balanced between teams, and when there is an odd number of seeders the extra seeder is placed on the more powerful team.

C31. Weapon Limiter Settings:

  • 'Use NO EXPLOSIVES Limiter' - Whether to enable the internal no explosives limiter.
  • 'NO EXPLOSIVES Weapon String' - List of weapon codes or partial weapon codes that will cause punishment for a no explosive server.
  • 'NO EXPLOSIVES Exception String' - Any weapon code or partial weapon code previously matched by 'no explosive weapon string' but also matching this setting, will block action on that item. Useful for weapons like the ones ending in SHG, which in BF4 is the dart variant of the M26/M320.
  • 'Use Grenade Cook Catcher' - When the no explosives limiter is enabled, having this setting also enabled will cause AdKats to monitor for grenade cookers. In battlefield when you kill someone who is holding or throwing a grenade, the grenade becomes yours. Some players will take advantage of this to get other players acted on by autoadmins on no explosive servers. This script works to mitigate that problem.

C32. Challenge Settings

  • 'Use Challenge System' - Whether the challenge system is active. On disable any active server-wide round rules are cancelled.
  • 'Challenge System Minimum Players' - The minimum number of players which must be active in the server before challenges will accept any progress. Players can start challenges in low population but they will not gain any progress until the server has more players. Challenges which are death-based will not have deaths counted until this limit is reached either.
  • 'Use Server-Wide Round Rules' - Whether the system will choose a server-wide round rule that all players can join. Valid rules that can be chosen by this system must be enabled, round-based, be tier 1, and have a round count of 1. The current chosen rule will be assigned to any player who is currently not playing a challenge and queries the !ch info command. Round rules are chosen randomly at first until each is played once, then the least played rule is chosen.
  • 'Challenge System Auto-Assign Round Rules' - Whether the system will automatically assign the current round rule to a player when they get a kill that matches the rule.
  • 'Use Different Round Rule For Each Players' - Only visible if you have both above settings enabled. Will automatically assign a random round rule to each player instead of the whole server. Prevents issues where some people could get annoyed by the whole server being told, for example, to use shotguns.
  • '[1] Displays - Active Entries (Display)' - The current challenge entries which are not completed, cancelled, or failed. They are sorted by rule, then by completion percentage. If there is a server-wide round rule, those entries are excluded from this list.
  • '[1] Displays - Current Server-Wide Round Rule (Display)' - The name of the current server-wide round rule, if any.
  • '[1] Displays - Active Round Rule Entries (Display)' - Same as the active entries display, except only for the server-wide round rule.
  • '[2] Actions - Run Round Challenge ID' - Choose a server-wide round rule to run.
  • '[3] Definitions - Add Definition?' - Enter a name for the new definition here to add it. Definitions are visible on all servers and form the basis of WHAT a player must do to complete a challenge.
  • '[3] Definitions - Change Name?' - Change the name of a definition. Note this name is only internal, not shown to players. The rule name is shown to players.
  • '[3] Definitions - Add Damage Type?' - Adds a damage type to the current definition.
  • '[3] Definitions - Add Weapon?' - Adds a specific weapon to the current definition.
  • '[3] Definitions - Delete Definition?' - Enter 'delete' in this setting to delete the definition. All rules and player completions of this definition will also be deleted if you delete this definition.
  • '[3] Definitions - Weapon - Weapon Name' - Change the weapon for a definition detail with this setting. A definition can only have one of each particular weapon at a time.
  • '[3] Definitions - Weapon - Kill Count' - The kill count required with this weapon to complete its part of the challenge.
  • '[3] Definitions - Weapon - Delete Detail?' - Enter 'delete' in this setting to delete the weapon detail.
  • '[3] Definitions - Damage - Damage Type' - Change the damage type for a definition detail with this setting. A definition can only have one of each damage type at a time.
  • '[3] Definitions - Damage - Weapon Count' - A damage type requires a weapon count, specifying how many different weapons must be used to complete it.
  • '[3] Definitions - Damage - Kill Count' - The kill count for each weapon in the damage type to complete the challenge. So if you have 5 weapons, and 5 kills, that means 25 total kills would be required to complete the challenge.
  • '[3] Definitions - Damage - Delete Detail?' - Enter 'delete' in this setting to delete the damage type detail.
  • '[4] Rules - Add Rule?' - Select a definition to create a server-specific rule based on it. Rules are how fast a player must complete a specific challenge, and are server specific.
  • '[4] Rules - Definition' - Change the definition that this rule belongs to with this setting.
  • '[4] Rules - Name' - The name of the rule. This is the name that is shown to players.
  • '[4] Rules - Enabled' - Whether the rule is enabled. Disabled by default.
  • '[4] Rules - Tier' - The tier of the rule. In general lower tier rules should be easier than higher tier rules.
  • '[4] Rules - Completion' - What metric should be used to determine when the challenge ends. Either round count, minute count, or death count.
  • '[4] Rules - Round Count' - The number of rounds that the challenge will run after starting.
  • '[4] Rules - Duration Minutes' - The number of minutes that the challenge will run after starting.
  • '[4] Rules - Death Count' - The number of deaths that the player is allowed after starting.
  • '[4] Rules - Delete Rule?' - Enter 'delete' in this setting to delete the rule.
  • '[5] Rewards - Challenge Command Lock Timeout Hours' - After a player recieves the command lock timeout reward, they cannot get that reward again until this many hours has passed. Any challenges containing the command lock reward can still be completed, and any other rewards on that challenge will still be applied.
  • '[5] Rewards - Add Reward?' - Enter a tier to add a reward to that tier. Each tier can have one of each reward type.
  • '[5] Rewards - Tier Level' - The tier level that this reward belongs to. When a reward of this tier is completed, this reward will be applied if it is enabled.
  • '[5] Rewards - Reward Type' - The type of reward that will be given when this tier is completed.
  • '[5] Rewards - Enabled' - Whether this reward is enabled. Defaults to disabled.
  • '[5] Rewards - Duration Minutes' - The number of minutes length that the reward is applied for.
  • '[5] Rewards - Delete Reward?' - Enter 'delete' in this setting to delete the reward.

D99. Debug Settings:

  • 'Debug level' - Indicates how much debug-output is printed to the plugin-console. 0 turns off debug messages (just shows important warnings/exceptions/success), 7 documents nearly every step. Don't edit unless you really want to be spammed with console logs, it will also slow down the plugin when turned up.
  • 'Debug Soldier Name' - When this soldier issues commands in your server the duration for any command to complete is told in-game. Duration is from the time you entered the message until all aspects of the command have been completed.
  • 'Enforce Single Instance' - Enabled by default, and should remain enabled in almost all cases. This makes sure that only one instance of AdKats is enabled at one time on a single server. This may be disabled if you notice issues with /AdKatsInstanceCheck messages being logged in your external tools like RCONNET.
  • 'Disable Automatic Updates' - Disables automatic updates for the plugin. Should only be disabled if you've modified the plugin code manually.
  • 'Command Entry' - Enter commands here just like in game, mainly for debug purposes. Don't let more than one person use this at any time.

About

Advanced In-Game Admin for Procon Frostbite

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%