Plugin for Procon-1 to track and manage team kills.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md
TeamKillTracker.cs

README.md

Stajs.Procon.TeamKillTracker

Description

Track team kill statistics and allow self-management of team killers.

Features

  • Allows victims to forgive or punish (slay) their killers.
  • Optional kick for team killers after reaching a punish limit.
  • Configurable commands and messages.
  • Optionally allow killers to apologize to avoid punishment.
  • Optionally protect admins or whitelisted players from being punished.
  • Shame the worst team killers at the end of the round or on demand.
  • Integration with AdKats.

Install

  1. Download and extract the latest release: https://github.com/stajs/Stajs.Procon.TeamKillTracker/releases.
  2. Move the plugin file TeamKillTracker.cs to your Procon layer under Plugins\BF4 and restart your layer.
  3. Optionally, turn off the built-in team killing management (Warning: this will change your server to the Custom preset):

image

Compatibility

This plugin has only been tested against BF4. It is reported to work with BF3 and Hardline and may work for other games.

Settings

Commands

Commands are case-insensitive and can be issued in global, team, or squad chat. A command can be triggered by more than one matching player message.

Punish  
Description Punish a team killer.
Default value - !p
- !punish
Forgive  
Description Forgive a team killer.
Default value - !f
- !forgive
Allow killers to apologize to avoid punishment?  
Description If set to Yes, the Sorry command is enabled.
Default value No
Sorry  
Description Allows a killer to avoid punishment.
Default value - !sorry
- !mybad
Shame  
Description List the worst team killers.
Default value !shame

Debug

Should suicide count as a team kill?  
Description Useful for testing other plugin settings and messages. Allows a player to trigger a "team kill" by suiciding.
Default value No
Output to Chat  
Description Determines what messages (if any) should appear in the Procon Chat tab.
Default value SayAndYell

Limits

Victim window before auto-action (seconds)  
Description How long (in seconds) to allow a victim to apply an action to their killer before an auto-action is applied. The method used to check for punish actions is updated every ~30 seconds so the actual window may be ~30 seconds longer than specified.
Minimum: 20
Maximum: 120
Default value 45
Auto-action  
Description What should happen to the killer after the victim action window expires.
Default value Forgiven
Kick after punish limit reached?  
Description Should a team killer be kicked after reaching the punish limit? If set to Yes, the following settings are enabled:
- Player count threshold for kick
- Punish limit
Default value Yes
Player count threshold for kick  
Description How many players are required before kicking is active. The method used to count the players is updated every ~30 seconds and includes players joining, but not yet visible in game.
Minimum: 1
Maximum: 64
Default value 1
Punish limit  
Description How many times a killer is allowed to be punished before being kicked.
Minimum: 1
Maximum: 20
Default value 5

Messages

For Killer and Victim messages, the following prefixes may be used.

  • > to say the message if a threshold is required for kick and the threshold has been reached.
  • < to say the message if a threshold is required for kick and the threshold has not been reached.
  • @ to yell the message.
  • >@ to yell the message if a threshold is required for kick and the threshold has been reached.
  • <@ to yell the message if a threshold is required for kick and the threshold has not been reached.
Killer  
Description Sent to the killer when a team kill is detected (one line per message). See note about prefixes above.
Default value - You TEAM KILLED {victim}. Watch your fire!
- @You TEAM KILLED {victim}. Watch your fire!
- >Punishes left before kick: {punishesLeft}.
{killer} Player name of killer.
{victim} Player name of victim.
{victimCount} The number of times the killer has team killed the victim.
{teamCount} The number of times the killer has team killed the team.
{punishedCount} The number of times the victim has previously punished the killer.
{forgivenCount} The number of times the victim has previously forgiven the killer.
{autoForgivenCount} The number of times the victim has previously auto-forgiven the killer.
{sorryCount} The number of times the killer has apologized to the victim.
{punishesLeft} The number of punishes left before the killer is kicked.
Victim  
Description Sent to the victim when a team kill is detected (one line per message). See note about prefixes above.
Default value - TEAM KILLED by {killer}.
- @TEAM KILLED by {killer}.
- Their TK's: you ({victimCount}) team ({teamCount}).
- punished ({punishedCount}) forgiven ({forgivenCount}) auto-forgiven ({autoForgivenCount}) sorry ({sorryCount})
- >Punishes left before kick: {punishesLeft}.
- <Waiting on more players to join before enabling kick.
- !p to punish, !f to forgive.
- @!p to punish, !f to forgive.
{killer} Player name of killer.
{victim} Player name of victim.
{victimCount} The number of times the killer has team killed the victim.
{teamCount} The number of times the killer has team killed the team.
{punishedCount} The number of times the victim has previously punished the killer.
{forgivenCount} The number of times the victim has previously forgiven the killer.
{autoForgivenCount} The number of times the victim has previously auto-forgiven the killer.
{sorryCount} The number of times the killer has apologized to the victim.
{punishesLeft} The number of punishes left before the killer is kicked.
Punished  
Description Sent to both the killer and victim when a punish command is successful.
Default value {killer} punished by {victim}.
{killer} Player name of killer.
{victim} Player name of victim.
Forgiven  
Description Sent to both the killer and victim when a forgive command is successful.
Default value {killer} forgiven by {victim}.
{killer} Player name of killer.
{victim} Player name of victim.
Apologized  
Description Sent to both the killer and victim when a sorry command is successful.
Default value {killer} apologized to {victim}.
{killer} Player name of killer.
{victim} Player name of victim.
Kick  
Description Sent to all players when a player is kicked for reaching the punish limit.
Default value Too many team kills for {killer}. Boot incoming!
{killer} Player name of killer.
No one to punish  
Description Sent to the player who issued a punish command that was unsuccessful.
Default value No one to punish ({window} second window).
{window} Length (in seconds) of the punish window.
No one to forgive  
Description Sent to the player who issued a forgive command that was unsuccessful.
Default value No one to forgive ({window} second window).
{window} Length (in seconds) of the punish window.
No one to apologize to  
Description Sent to the player who issued a sorry command that was unsuccessful.
Default value Apology rejected! No recent kills.
Shame all on round end?  
Description Should a list of the worst team killers be displayed to all players at the end of the round?
Default value Yes
No one to shame on round end message  
Description Displayed to all players if Shame all on round end? is Yes, but no team kills are recorded.
Default value Wow! We got through a round without a single teamkill!
No one to shame message  
Description Sent to the player who issued a shame command.
Default value No team kills so far...

Protection

Who should be protected?  
Description Who, if any, should be protected from punishment. If set to Whitelist or AdminsAndWhitelist, Whitelist is enabled.
Default value Admins
Whitelist  
Description A list of players (one per line) that are protected from punishment.
Use AdKats  
Description Should punishment be handed off to AdKats to handle. This (obviously) requires a working installation of AdKats and only hands off to AdKats once it is fully initialized and ready to receive commands.
Default value No