Features
- Enable/disable PvP damage on the server
- Enable/disable friendly fire damage on the server
- Enable/disable scaling of PvP damage by online team sizes
- Adjust per-hit penalties for each body part
- Scale per-hit penalties by weapon range
- Scale per-hit penalties by movement speed
- Scale per-kill and per-assist handicaps (handicapped players have reduced PvP damage multipliers)
- Scale per-kill handicaps while building priveliged
- Broadcast penalty warnings, to admins, by threshold
- Auto-ban players permanently, by temporary ban count
- Auto-ban players for a given time, by threshold or cripple count
- Auto-cripple players for a given time, by threshold or warning count (crippled players can not PvP or loot other players)
- Auto-inherit handicap/cripple/ban from alternate accounts that share the same IP address
- Auto-whitelist players that share the same IP address (disables handicap/cripple/ban inheritance)
- Adjust the handicap decay amount/rate
- Ban individual players, ipshares and/or teams (permanently or timed)
- Cripple individual players and/or teams (permanently or timed)
- Reset handicaps for individual players, teams, and/or all players
- Unban individual players, ipshares, teams, and/or all players
- Uncripple individual players, teams, and/or all players
- List team members
- List alternate accounts from the same IP address
Permissions
This plugin uses the permission system. To assign a permission, use oxide.grant <user or group> <name or steam id> <permission>. To remove a permission, use oxide.revoke <user or group> <name or steam id> <permission>.- pvpcaps.admin -- Required to be able to pass arguments to the /pvp command
- pvpcaps.excluded -- Excludes the player from PvP damage handicaps
- pvpcaps.use -- Required to see handicaps and to use the /pvp command without arguments
Console Commands
Console commands are limited to rcon users. All console command variants behave indentically to those described in the Chat Commands section, unless noted otherwise. Console command syntax and variants are the same as the Chat Commands syntax and variants, without the preceding /.Chat Commands
Replace <name/id> with the player's name or 64-bit Steam ID. Arguments listed within square braces [] are optional and may be omitted or replaced (e.g omit [minutes] to specify forever; replace [minutes] with 60 to specify one hour). All command variants that affect a configuration option are persistent (saved to the configuration file).The following command variants require the pvpcaps.use permission:
- /pvp -- Show your current PvP damage modifier (console variant -- lists all active handicaps)
- /pvp * -- Report the PvP damage enabled/disabled state
- /pvp * ff -- Report the friendly fire enabled/disabled state
- /pvp * ff off -- Disable friendly fire on the server
- /pvp * ff on -- Enable friendly fire on the server
- /pvp * list -- List all crippled players
- /pvp * off [message] -- Disable PvP damage on the server (optional message)
- /pvp * on -- Enable PvP damage on the server
- /pvp * reset -- Reset all handicaps on the server
- /pvp * team -- Report the team damage scaling enabled/disabled state
- /pvp * team off -- Disable team damage scaling on the server
- /pvp * team on -- Enable team damage scaling fire on the server
- /pvp * unban -- Unban all players on the server
- /pvp * uncripple -- Uncripple all players on the server
- /pvp <name/id> -- Report the player's handicap status
- /pvp <name/id> ban [hours] [reason] -- Ban the player (optional hours/reason)
- /pvp <name/id> cripple [minutes] -- Cripple the player (optional minutes)
- /pvp <name/id> ipshare -- Report the player's IP address sharing whitelist status
- /pvp <name/id> ipshare ban [hours] [reason] -- Ban players sharing this IP address (optional hours/reason)
- /pvp <name/id> ipshare list -- List players sharing this IP address
- /pvp <name/id> ipshare off -- Disable whitelisting for this IP address
- /pvp <name/id> ipshare on -- Enable whitelisting for this IP address
- /pvp <name/id> ipshare unban -- Unban players sharing this IP address
- /pvp <name/id> reset -- Reset the player's PvP handicap
- /pvp <name/id> team -- List the player's team members
- /pvp <name/id> team ban [hours] [reason] -- Ban all players in this team (optional hours/reason)
- /pvp <name/id> team cripple [minutes] -- Cripple the player's team (optional minutes)
- /pvp <name/id> team reset -- Reset the player's team members' handicaps
- /pvp <name/id> team unban -- Unban the player's team members
- /pvp <name/id> team uncripple -- Uncripple the player's team members
- /pvp <name/id> unban -- Unban the player
- /pvp <name/id> uncripple -- Uncripple the player
Configuration
The settings and options can be configured in the PVPCaps file under the config directory. The use of an editor and validator is recommended to avoid formatting issues and syntax errors.General
- general_pvp_enabled -- (true/false)
- general_pvp_ff_enabled -- (true/false)
- general_pvp_team_scale -- (true/false)
Handicaps
- handicap_assist_scale -- [0.0, 1.0] (0.0 = no damage reduction; 1.0 = normal damage reduction)
- handicap_ban_count -- [0, 100] (0 = disabled; number of timed bans to trigger a permanent ban)
- handicap_ban_time -- (hours >= 0; 0 = permanent)
- handicap_build_authed -- [0.0, 1.0] (0.0 = no damage reduction; 1.0 = normal damage reduction)
- handicap_cripple_count -- [0, 100] (0 = disabled; number of cripples to trigger a ban)
- handicap_cripple_limit -- [0.0, 1.0] (0.0 = disabled; higher values will cause false positives)
- handicap_cripple_time -- (minutes >= 0; 0 = permanent)
- handicap_damage_max -- (0.0, 1.0] (1.0 = normal damage)
- handicap_damage min -- (0.0, 1.0]
- handicap_decay_amount -- (0.0, 1.0] (0.0 = disabled)
- handicap_decay_time -- (seconds >= 15)
- handicap_killer_scale -- [0.0, 1.0] (0.0 = no damage reduction; 1.0 = normal damage reduction)
- handicap_penalty_arm -- [0.0, 1.0] (0.0 = disabled)
- handicap_penalty_chest -- [0.0, 1.0] (0.0 = disabled)
- handicap_penalty_foot -- [0.0, 1.0] (0.0 = disabled)
- handicap_penalty_generic -- [0.0, 1.0] (0.0 = disabled)
- handicap_penalty_hand -- [0.0, 1.0] (0.0 = disabled)
- handicap_penalty_head -- [0.0, 1.0] (0.0 = disabled)
- handicap_penalty_leg -- [0.0, 1.0] (0.0 = disabled)
- handicap_penalty_stomach -- [0.0, 1.0] (0.0 = disabled)
- handicap_movement_rate -- (rate >= 1.5 meters/second)
- handicap_range_normal -- (0.0, 1.0] (setting this value too low will cause false positives)
- handicap_warning_count -- [0, 100] (0 = disabled; number of warnings to trigger a cripple)
- handicap_warning_limit -- [0.0, 1.0] (0 = disabled; higher values will cause false positives)
Output
- output_console -- (true/false)
- output_logfile -- (true/false)
Notes
- To disable all damage reduction:
- Set handicap_assist_scale to 0.0
- Set handicap_killer_scale to 0.0
- Set general_pvp_team_scale to false
- To disable building privelige penalty reduction:
- Set handicap_build_authed to 1.0
- Penalties are calculated based on active weapon and attachment characteristics, aim state, movement rates, and the handicap_penalty_*, handicap_movement_rate, and handicap_range_normalsettings. Changing drastically any of these settings will cause false positives/negatives. Although these values affect the resulting damage reduction for a kill (or assist), it is better to adjust damage reduction values by changing:
- handicap_assist_scale
- handicap_killer_scale