Kode is a plain-text scripting plugin for Minecraft. Drop a .kode file, run /kode reload — done.
# Runs every time a player joins on PlayerJoin: send "&aWelcome, player.name!" to player give player bread 4 title "&6Welcome!" subtitle "&7Enjoy your stay" # Custom command — no plugin.yml needed command /kit: give player iron_sword 1 give player cooked_beef 16 sound BLOCK_CHEST_OPEN send "&aKit delivered!" to player
A complete scripting environment packed into a single drag-and-drop jar.
Edit a .kode file, run /kode reload. Changes go live in seconds with zero server restarts.
Define /kit, /balance, or any command with a simple command /name: block. No plugin.yml required.
Save and load data across restarts with store and load. Per-player data, coin balances, visit counters — all built-in.
if/else, while, for, repeat, switch/case, try/catch, break, continue — a complete language with Python-like indentation.
Define reusable functions with parameters and return values. Namespace them across scripts with define math:clamp().
String and math functions ready out of the box — len, contains, replace, random, round, pow and more. No setup needed.
Call EssentialsX, Vault, or any other plugin's commands with execute (as player) or console (as server).
Drag nodes, connect them, and generate a .kode file — all in your browser. No typing required. Try it online →
The Kode Visual Scripter lets you drag-and-drop nodes, wire them together, and instantly generate a ready-to-use .kode file — no coding knowledge needed, nothing to install.
Listen to 30 built-in Minecraft events — player joins, block breaks, level changes, entity damage, crafting, fishing, and more — with a single line.
on EntityDeath[Zombie]:emit between your own scriptson PlayerLevelChange: switch player.level: case 10: give player iron_sword 1 send "&fLevel 10 reward!" to player case 25: give player diamond_sword 1 title "&bLevel 25!" subtitle "Diamond unlocked" broadcast "&bplayer.name reached level 25!" default: send "&7Level player.level. Keep going!" to player
Create /balance, /kit, /hub — or any command — with a command /name: block. Arguments are automatically available as $arg1, $arg2, $argc.
execute$arg1, $args, $argcstore / loadcommand /balance: load $coins from coins_player.name send "&6Balance: &e$coins coins" to player command /pay: if $argc == 0: send "&cUsage: /pay <amount>" to player return load $coins from coins_player.name if $coins < $arg1: send "&cNot enough coins." to player return store coins_player.name $coins - $arg1 send "&aSpent $arg1 coins!" to player command /hub: execute "warp hub" # runs as the player
Drop the jar in your plugins folder and write your first script in under a minute.