KarmaPlugin adds an immersive morality system to your Minecraft server. Your actions change your alignment — Good, Neutral, or Evil — and the world reacts accordingly. You’ll see your karma as a personal BossBar and a small prefix above your name, gain lightweight effects, and even influence mob behavior.
- Alignment system: Good, Neutral, Evil
- Private BossBar showing karma value and alignment
- Above-head name tag prefix (no scoreboard objectives are created)
- Subtle green/red particles by alignment (optional)
- Periodic effects (Good: Regeneration & Speed, Evil: Strength & Speed)
- Hostile mobs (configurable list) ignore Evil players
- Iron golems actively hunt Evil players on sight
- Fully configurable thresholds, values, visuals, and effects
- Optional alignment prefix in vanilla chat
Karma is an integer stored per player (UUID). It starts at 0 and changes based on your actions.
- Killing players: karma decreases (default -20)
- Killing villagers: karma decreases (default -15)
- Killing “evil” mobs: karma increases (default +10)
Your alignment depends on thresholds:
- Good: karma ≥ +50
- Evil: karma ≤ -50
- Neutral: otherwise
All numbers and the “evil mob” list are configurable.
- BossBar: Title, color, and progress map to your alignment and karma. Updated on change and periodically.
- Name tag: A short prefix like [Good] / [Neutral] / [Evil] appears above your head via Scoreboard Teams (no objectives used). Optional color.
- Particles: Small colored dust near you (green=Good, red=Evil). Toggleable.
- Potion effects: Applied gently every few seconds to avoid stacking.
- Evil max health: Evil players' max health can be reduced (default 7 hearts). Configurable.
- Iron golem hunting: Iron golems actively seek out and attack Evil players within 16 blocks every 2 seconds.
- Server: Spigot 1.21.8
- Java: 22
- Place the JAR into your server’s
plugins/folder. - Start the server to generate
plugins/KarmaPlugin/config.ymlandkarma.yml. - Adjust settings in
config.ymlas desired. - Use
/karma reloadto apply changes without restarting.
Everyone
/karma— Show your current karma and alignment
Admin (permission karma.admin)
/karma get <player>— View another player’s karma/karma give <player> <amount>— Add karma/karma take <player> <amount>— Remove karma/karma set <player> <amount>— Set karma exactly/karma reload— Reload configuration and refresh visuals/effects
Tab completion is provided for subcommands and player names.
karma.use— Default: true (everyone may use/karma)karma.view.others— Default: opkarma.admin— Default: op
Config file: plugins/KarmaPlugin/config.yml (created on first run)
thresholds.good— Default: 50thresholds.evil— Default: -50values.kill_player— Default: -20values.kill_villager— Default: -15values.kill_evil_mob— Default: 10values.max_abs_karma— Default: 9999 (hard clamp)values.evil_max_health— Default: 14.0 (7 hearts)interval_seconds— Default: 5 (how often effects and UI update)display.bossbar_enabled— Default: truedisplay.name_tag_enabled— Default: truedisplay.name_color_enabled— Default: truedisplay.particles_enabled— Default: truedisplay.chat_enabled— Default: false (prepend alignment prefix in vanilla chat)display.bossbar_style— e.g.,SEGMENTED_12display.bossbar_titles.good|neutral|evil— BossBar titles;%value%= karmadisplay.name_tag.good_prefix|neutral_prefix|evil_prefix— Prefixes above name (supports&color codes)evil_mobs— List of entity types treated as “evil” for +karmacolors.good|neutral|evil— Default color codes per alignment
After changing, run /karma reload.
- Name tag prefixes are set via Scoreboard Teams and show above heads. Many chat plugins can include team prefixes in chat lines; consult your chat plugin’s format options.
- If your chat plugin doesn’t include team prefixes, enable
display.chat_enabled: trueto prepend the alignment prefix in vanilla chat formatting.
- No BossBar: Ensure
display.bossbar_enabled: trueand your client HUD is visible. - Prefix not colored: Ensure
display.name_tag_enabled: trueanddisplay.name_color_enabled: true. Other plugins that modify scoreboards may interfere. - Evil mobs still attack Evil players: Make sure those mobs are listed under
evil_mobs. If the issue persists for a specific mob, report its exact type. - Health not reducing for Evil: Check
values.evil_max_health, then/karma reload. Some plugins might modify health attributes; try relogging.
- Karma is stored in
plugins/KarmaPlugin/karma.ymlby UUID. Writes are debounced to avoid lag. - No scoreboard objectives are created or modified; only teams for name tag prefix/color are used.
Provided as-is. Always back up your server before adding new plugins. See the license for more details.
Developers: See DEVELOPERS.md for build instructions, architecture, and contribution guidelines.