Paper & Spigot 1.21+

Script your server
without writing Java.

Kode is a plain-text scripting plugin for Minecraft. Drop a .kode file, run /kode reload — done.

No Java required Hot reload Free & open source Visual Scripter online
welcome.kode
# 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
30
Built-in Events
25+
Built-in Actions
1.21+
Minecraft Version
0
Lines of Java needed

Everything you need.
Nothing you don't.

A complete scripting environment packed into a single drag-and-drop jar.

Hot Reload

Edit a .kode file, run /kode reload. Changes go live in seconds with zero server restarts.

🎮

Custom Commands

Define /kit, /balance, or any command with a simple command /name: block. No plugin.yml required.

📦

Persistent Storage

Save and load data across restarts with store and load. Per-player data, coin balances, visit counters — all built-in.

🔁

Full Control Flow

if/else, while, for, repeat, switch/case, try/catch, break, continue — a complete language with Python-like indentation.

🧩

Functions

Define reusable functions with parameters and return values. Namespace them across scripts with define math:clamp().

🔣

Built-in Functions

String and math functions ready out of the box — len, contains, replace, random, round, pow and more. No setup needed.

🔗

Plugin Interop

Call EssentialsX, Vault, or any other plugin's commands with execute (as player) or console (as server).

🖱️

Visual Scripter

Drag nodes, connect them, and generate a .kode file — all in your browser. No typing required. Try it online →

✦ New — Free to use

Don't want to type?
Script visually, right in your browser.

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.

  • 30+ nodes for every action, event, and control flow
  • One click to download your finished script
  • Works on any device with a browser
  • Completely free — no account required
Open the Visual Scripter
Events

React to anything that happens on your server.

Listen to 30 built-in Minecraft events — player joins, block breaks, level changes, entity damage, crafting, fishing, and more — with a single line.

  • PlayerJoin, PlayerInteract, PlayerFish, PlayerConsume
  • BlockBreak, EntityDamageByEntity, EntityDeath, Explode
  • FurnaceSmelt, CraftItem, InventoryClick, WeatherChange
  • Optional entity type filters: on EntityDeath[Zombie]:
  • Custom events via emit between your own scripts
level_rewards.kode
on 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
Custom Commands

Add commands to your server in seconds.

Create /balance, /kit, /hub — or any command — with a command /name: block. Arguments are automatically available as $arg1, $arg2, $argc.

  • No plugin.yml editing, no restart
  • Run other plugins' commands via execute
  • Access arguments with $arg1, $args, $argc
  • Persist data with store / load
commands.kode
command /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

Ready to start scripting?

Drop the jar in your plugins folder and write your first script in under a minute.