About Karma
Karma is a configurable reputation/karma system for that rewards positive behavior (revive, heal, build/repair help, donation, passive peace, redemption) and punishes negative behavior (unprovoked kills, repeated kills, naked kills, raiding others).
It also includes anti-abuse protections for teams/clans (maturity + recent-group grace) and optional integrations (BetterChat, SimpleStatus, Clans, NTeleportation, Economics, ImageLibrary).
Key Features:
- Fully configurable positive and negative karma actions
- Anti-abuse protections for team/clan farming (maturity + grace windows)
- Optional teleport restrictions and safe-zone hostility based on rank
- Rank system with colors and metabolism effects (hunger/thirst)
- Optional chat/UI integrations (BetterChat, SimpleStatus)
- Built-in Top/Bottom lists
- Optional API for other plugins
Permissions:
- karma.use - Allows player/group to use the /karma command.
- karma.others - Allows player/group to check other players (/karma check <name|steamid>).
Chat Commands:
- /karma - Shows help and what actions are currently enabled (requires karma.use).
- /karma check - Shows your karma + rank (requires karma.use).
- /karma check <name|steamid> - Shows karma + rank for another player (requires karma.others).
- /karma top - Shows top karma players (requires karma.use).
- /karma bottom - Shows lowest karma players (requires karma.use).
Sever Commands:
- karma.add <steamId64|name> <amount>
- karma.remove <steamId64|name> <amount>
- karma.set <steamId64|name> <amount>
Debug/maintenance:
- karma.dump <steamid|name>
- karma.redeem <steamid|name>
- karma.caches
- karma.resetstate <steamid|name>
- karma.cleartc
- karma.debug.set <steamid|name> <karma>
Configuration:
{
"General": {
"Save interval seconds (min 10)": 120,
"Save on server save": true,
"Debug": false,
"Reset on wipe": false,
"Reset karma on wipe to": 0,
"Announce rank changes in chat": true,
"Notify player when karma changes": true,
"Karma notify includes reason": false,
"Use team": true,
"Use clan": false,
"Team maturity seconds for combat/raid grouping (0 = instant)": 60,
"Team stamp keep minutes (prevents false positives for offline teammates)": 360,
"Clan maturity seconds for combat/raid grouping (0 = instant)": 120,
"Clan stamp keep minutes (prevents false positives for offline clanmates)": 360,
"Positive actions: block if recently same team/clan (seconds)": 600,
"Safe zone hostile warning cooldown seconds (min 5)": 60,
"Karma hostile refresh seconds (max 15)": 5.0,
"Karma hostile seconds (max 3600)": 600.0,
"Drain metabolism tick seconds (min 1, max 30)": 5.0
},
"Combat logic": {
"Combat window seconds": 60,
"Min damage to count as aggression": 5.0,
"Ignore trap damage as first hit": true,
"Ignore bleed damage as first hit": true,
"Ignore radiation as first hit": true,
"Ignored first-hit initiator prefabs (paths)": [
"assets/prefabs/deployable/bear trap/beartrap.prefab",
"assets/prefabs/deployable/landmine/landmine.prefab",
"assets/prefabs/deployable/single shot trap/guntrap.deployed.prefab",
"assets/prefabs/deployable/floor spikes/spikes.floor.prefab",
"assets/prefabs/deployable/playerioents/teslacoil/teslacoil.deployed.prefab"
],
"Count projectile only": false,
"Consider victim team/clan aggression as self defense": true,
"Victim group aggression requires victim engaged": true,
"Victim engaged window seconds (min 1)": 12,
"Consider raid window as provocation": true
},
"Negative actions": {
"Unprovoked kill": {
"Enabled": true,
"Karma to remove": 8
},
"Self defense kill": {
"Enabled": false,
"Karma to remove": 0
},
"On same player repeated kills": {
"Enabled": true,
"Karma to remove": 10,
"Window minutes": 30,
"Free kills per pair": 1
},
"Naked kill penalty": {
"Enabled": true,
"Karma to remove": 4,
"Detect": {
"Max clothing slots used": 1,
"Max weapons in belt": 0,
"Ignore if holding weapon": true,
"Ignore if has ranged weapon in belt": true,
"Max minutes since spawn (0=disabled)": 60
}
},
"On raid others": {
"Enabled": true,
"Karma to remove": 2,
"Max distance from tc": 160.0,
"Raid window seconds": 900,
"Cooldown seconds per tc": 180
}
},
"Positive actions": {
"Self defense kill": {
"Enabled": false,
"Karma to add": 1
},
"Revive player": {
"Enabled": true,
"Karma to add": 6,
"Per target cooldown seconds": 900
},
"Heal other": {
"Enabled": true,
"Karma to add": 2,
"Min healed amount": 20.0,
"Per target cooldown seconds": 300,
"Accumulate heal window seconds (0 = per-scan delta)": 5,
"Recent medical use seconds (healer detection)": 2,
"Scan radius meters": 3.0,
"Scan every seconds": 1.0,
"Require recent damage seconds": 20
},
"Kill negative player": {
"Enabled": true,
"Karma to add": 2,
"Cooldown seconds per target": 600
},
"On kill while raid defending": {
"Enabled": false,
"Karma to add": 2,
"Max distance from own tc": 160.0,
"Raid window seconds": 900
},
"Help build for others": {
"Enabled": true,
"Karma to add": 1,
"Per target cooldown seconds": 1800
},
"Repair others builds": {
"Enabled": true,
"Karma to add": 1,
"Per target cooldown seconds": 1800
},
"On rescue monument": {
"Enabled": true,
"Karma to add": 3,
"Per target cooldown seconds": 900
},
"Passive peace bonus": {
"Enabled": true,
"Karma to add": 1,
"Award every minutes": 60
},
"Donation to naked": {
"Enabled": true,
"Karma to add": 2,
"Per target cooldown seconds": 1800
},
"Redemption bonus": {
"Enabled": true,
"Karma to add": 3,
"Cooldown seconds": 43200,
"Require no player kills minutes": 180,
"Require no pvp damage minutes": 120,
"Require no raid damage minutes": 180,
"Require no combat minutes": 30
}
},
"Ranks": {
"Negative": [
{
"Name": "Troublemaker",
"Negative threshold": 25,
"Color": "#ffb300",
"Metabolism": {
"Hunger per tick": 1.0,
"Thirst per tick": 1.0
},
"Block teleport to home": false,
"Block teleport to tpr": true,
"Block teleport to town": false,
"Block teleport to outpost": false,
"Block teleport to bandit": false,
"Block teleport to island": false,
"Hostile in safe zone": false
},
{
"Name": "Dishonorable",
"Negative threshold": 100,
"Color": "#ff7043",
"Metabolism": {
"Hunger per tick": 2.0,
"Thirst per tick": 2.0
},
"Block teleport to home": true,
"Block teleport to tpr": true,
"Block teleport to town": false,
"Block teleport to outpost": false,
"Block teleport to bandit": false,
"Block teleport to island": false,
"Hostile in safe zone": false
},
{
"Name": "Bandit",
"Negative threshold": 200,
"Color": "#ff3d00",
"Metabolism": {
"Hunger per tick": 2.0,
"Thirst per tick": 2.0
},
"Block teleport to home": true,
"Block teleport to tpr": true,
"Block teleport to town": true,
"Block teleport to outpost": true,
"Block teleport to bandit": true,
"Block teleport to island": true,
"Hostile in safe zone": true
},
{
"Name": "Nemesis",
"Negative threshold": 400,
"Color": "#b71c1c",
"Metabolism": {
"Hunger per tick": 3.0,
"Thirst per tick": 3.0
},
"Block teleport to home": true,
"Block teleport to tpr": true,
"Block teleport to town": true,
"Block teleport to outpost": true,
"Block teleport to bandit": true,
"Block teleport to island": true,
"Hostile in safe zone": true
}
],
"Positive": [
{
"Name": "Friendly",
"Positive threshold": 25,
"Color": "#7cb342",
"Metabolism": {
"Hunger reduction percent": 20.0,
"Thirst reduction percent": 20.0
}
},
{
"Name": "Honorable",
"Positive threshold": 100,
"Color": "#43a047",
"Metabolism": {
"Hunger reduction percent": 30.0,
"Thirst reduction percent": 30.0
}
},
{
"Name": "Guardian",
"Positive threshold": 200,
"Color": "#1e88e5",
"Metabolism": {
"Hunger reduction percent": 40.0,
"Thirst reduction percent": 40.0
}
},
{
"Name": "Protector",
"Positive threshold": 400,
"Color": "#1565c0",
"Metabolism": {
"Hunger reduction percent": 60.0,
"Thirst reduction percent": 60.0
}
}
]
},
"BetterChat": {
"Enabled": true,
"Format": "[{KarmaRank}]",
"Font size": 15
},
"SimpleStatus": {
"Enabled": true,
"Left side mode (karma|rank)": "karma",
"Hide when neutral": true,
"Use karma ranks color": false,
"Use vanilla tint": false,
"Status id": "karma.rank",
"Positive background": "#738D45",
"Negative background": "#C74A37",
"Neutral background": "#6B6B6B",
"Positive icon color": "#A3FE03",
"Negative icon color": "#782600",
"Neutral icon color": "#E0E0E0",
"Positive label color": "#FFFFFF",
"Negative label color": "#DEDEDE",
"Neutral label color": "#FFFFFF",
"Positive value color": "#FFFFFF",
"Negative value color": "#DEDEDE",
"Neutral value color": "#FFFFFF",
"Icon (/oxide/data/Karma/images/<name>.png for local)": "https://i.ibb.co/7tspt4MD/karma.png"
},
"Integrations": {
"Ignore players in Godmode (Vanilla God/Godmode)": true,
"Ignore vanished players (Vanilla Vanish/Vanish/BetterVanish)": true
}
}
Languages:
Karma includes two languages by default (English and Romanian), but you can add more in Oxide lang folder.
API Hooks:
int API_GetKarmaPoints(ulong userId) object API_GetRankInfo(ulong userId) string API_GetRankName(ulong userId) int API_GetRankType(ulong userId) void API_SetKarmaPoints(ulong userId, int value, string reason = null) void API_AddKarmaPoints(ulong userId, int amount, string reason = null) void API_RemoveKarmaPoints(ulong userId, int amount, string reason = null)
