{"id":91072,"date":"2026-06-05T07:49:48","date_gmt":"2026-06-05T04:49:48","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/"},"modified":"2026-06-05T07:49:48","modified_gmt":"2026-06-05T04:49:48","slug":"krepapi-pl","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/","title":{"rendered":"KrepAPI (Plugin)"},"content":{"rendered":"<p>![github](https:\/\/github.com\/RafaelK-F\/KrepAPI-Plugin)<\/p>\n<p>> **IMPORTANT:**<br \/>\n> Changes to the config file will not take effect until the server is restarted<\/p>\n<p># KrepAPI-Plugin<\/p>\n<p>**Run server commands when a player presses a key**\u2014configured in a simple YAML file, no programming required.<\/p>\n<p>This plugin is the \u201cserver side\u201d of KrepAPI. It talks to the official **KrepAPI mod** on the player\u2019s game client, registers your custom keys, and when someone presses a key you assigned, it runs the command **as that player** (same permissions as if they typed it in chat).<\/p>\n<p>&#8212;<\/p>\n<p>## Is this for me?<\/p>\n<p>| You want\u2026 | This plugin |<br \/>\n|&#8212;&#8212;&#8212;&#8211;|&#8212;&#8212;&#8212;&#8212;-|<br \/>\n| Extra keys that run `\/menu`, `\/warp shop`, etc. | Yes |<br \/>\n| A server where **everyone can join with a plain vanilla client** | Only if you turn off strict mod checks (see below); otherwise players need the **KrepAPI mod** |<br \/>\n| Something that works on **Spigot** only, or without Fabric + KrepAPI on the client | No\u2014players need the matching **KrepAPI** mod for their Minecraft version |<\/p>\n<p>&#8212;<\/p>\n<p>## What you need<\/p>\n<p>&#8211; **Paper** server, roughly **1.21.4 through 26.1.1** (one plugin JAR for that range; always **test on your exact Paper build** after updates).<br \/>\n&#8211; **Java** version required by **your** Paper download (often 21; newer Minecraft lines may ask for a newer Java\u2014follow Paper\u2019s download page).<br \/>\n&#8211; On each **player\u2019s PC**: **Minecraft + Fabric + the KrepAPI mod** build that matches **their** game version (e.g. different mod files for 1.21.x vs 26.x\u2014see the KrepAPI project).<\/p>\n<p>**Straight talk:** we aim for one JAR across many Paper versions by using only common, stable APIs. If a future Paper update breaks something, you may need a plugin update\u2014report it if that happens.<\/p>\n<p>&#8212;<\/p>\n<p>## Install (normal server owner)<\/p>\n<p>1. Download **`KrepAPI-Plugin-*.jar`** (from releases or build it yourself\u2014see below).<br \/>\n2. Put it in your server\u2019s **`plugins`** folder.<br \/>\n3. Start the server once so **`config.yml`** is created.<br \/>\n4. Edit **`plugins\/KrepAPI\/config.yml`** (bindings, timeouts, etc.).<br \/>\n5. **Restart** the server so changes apply reliably (avoid `\/reload` unless you know what you\u2019re doing).<\/p>\n<p>&#8212;<\/p>\n<p>## Configure (`config.yml`)<\/p>\n<p>**Global options**<\/p>\n<p>| Setting | Default | In plain English |<br \/>\n|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `require-krepapi` | `true` | If `true`, players **without** the mod (or who don\u2019t finish setup in time) can be **kicked**. Set `false` only if you accept vanilla clients or incomplete handshakes. |<br \/>\n| `minimum-mod-version` | `&#8221;1.0&#8243;` | Lowest KrepAPI **mod** version you allow. Wrong syntax here **disables** the plugin at startup\u2014check the server log. |<br \/>\n| `handshake-timeout-ticks` | `200` | How long to wait for the client to answer before kicking (20 ticks \u2248 1 second). |<\/p>\n<p>**Per key: `bindings.<your-id>`**<\/p>\n<p>| Setting | Default | In plain English |<br \/>\n|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `key` | *(required)* | Keyboard code used by the game (GLFW). Many lists exist online (e.g. `71` is often **G**). |<br \/>\n| `display-name` | *(required)* | Name players see in the **Controls** screen. |<br \/>\n| `command` | *(required)* | Command that runs **when the key is pressed** (with or without `\/`). Runs **as the player**, so permissions are the same as normal chat commands. |<br \/>\n| `override-vanilla` | `false` | If `true`, tries to stop Minecraft from using that key for its normal job (where the client supports it). |<br \/>\n| `category` | `server` | Group in the controls menu. |<\/p>\n<p>**Example**<\/p>\n<p>&#8220;`yaml<br \/>\nbindings:<br \/>\n  open_menu:<br \/>\n    key: 71<br \/>\n    display-name: &#8220;Open server menu&#8221;<br \/>\n    override-vanilla: false<br \/>\n    category: server<br \/>\n    command: &#8220;menu&#8221;<br \/>\n&#8220;`<\/p>\n<p>Broken binding blocks are skipped and **logged** in the console. There is a **large upper limit** on how many bindings you can define (thousands); you won\u2019t hit it on a normal server.<\/p>\n<p>&#8212;<\/p>\n<p>## Safety (read this)<\/p>\n<p>&#8211; Keys only run commands you **listed in `config.yml`**. Random or forged packets can\u2019t trigger other commands through this plugin.<br \/>\n&#8211; There is a **short cooldown** per player so repeated packets can\u2019t spam commands.<br \/>\n&#8211; Still: a command runs **with that player\u2019s permissions**. Don\u2019t map a key to dangerous commands unless only trusted players have those permissions.<\/p>\n<p>&#8212;<\/p>\n<p>## Building from source (optional)<\/p>\n<p>Only needed if you develop or don\u2019t use a prebuilt JAR.<\/p>\n<p>&#8211; You need the **KrepAPI** source repo **next to** this folder (default: `..\/KrepAPI`) so Gradle can pull the shared **protocol** module.<br \/>\n&#8211; Run `.\/gradlew build`. Output: `build\/libs\/KrepAPI-Plugin-1.0.0.jar`.<br \/>\n&#8211; The **`net.shik:protocol:\u2026`** version in `build.gradle` must match **`mod_version`** in `KrepAPI\/gradle.properties`.<\/p>\n<p>&#8212;<\/p>\n<p>## For plugin developers<\/p>\n<p>The main class is `net.shik.krepapi.plugin.KrepAPIPlugin`. Plugin name in Bukkit is **`KrepAPI`**. Other plugins can add **extra** minimum client versions:<\/p>\n<p>&#8220;`java<br \/>\nPlugin k = getServer().getPluginManager().getPlugin(&#8220;KrepAPI&#8221;);<br \/>\nif (k instanceof KrepAPIPlugin krep) {<br \/>\n    krep.versionGate(this).requireMinimumBuildVersion(&#8220;1.3.0&#8221;);<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>Protocol and version syntax: see the KrepAPI repo (`docs\/protocol.md`, `docs\/paper-plugin.md`). The source here is commented as a **template** for your own KrepAPI integrations.<\/p>\n<p>&#8212;<\/p>\n<p>## License \/ authors<\/p>\n<p>See this repository and `plugin.yml` for credits and licensing.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Run server commands when a player presses a key- configured in a simple YAML file, no programming required.<\/p>\n","protected":false},"featured_media":91073,"template":"","meta":{"_minecraft_slug":"krepapi-pl","_minecraft_project_id":"fT3cXvWV","_minecraft_author":"ShinKuyomi","_minecraft_license":"Apache-2.0","_minecraft_downloads":13,"_minecraft_follows":0,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"krepapi-pl.zip","_minecraft_size_bytes":106277,"_minecraft_version_count":2,"_minecraft_updated_at":"2026-05-15T22:56:57.242310Z","_minecraft_date_created":"2026-04-11T19:15:43.698469Z","_minecraft_date_modified":"2026-04-06T18:58:35.200899Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/krepapi-pl","_minecraft_icon_attachment_id":91073,"_minecraft_imported_at":"2026-06-05T04:49:49+00:00","_minecraft_import_hash":"8775a7e3f3cce043ac4c14f1ca4bd648","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[89,873,126,127,128,123,92],"mod_loader":[132,133],"minecraft_version":[40,41,38,78,79,80,81,82,83,167],"class_list":["post-91072","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-game-mechanics","mod_category-library","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-technology","mod_category-utility","mod_loader-paper","mod_loader-purpur","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1","minecraft_version-26-1-1"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>KrepAPI (Plugin) - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"KrepAPI (Plugin) - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Run server commands when a player presses a key- configured in a simple YAML file, no programming required.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/krepapi-pl\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/krepapi-pl\\\/\",\"name\":\"KrepAPI (Plugin) - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/krepapi-pl\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/krepapi-pl\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/krepapi-pl-icon-e3e50e84422568a1069e15968102711917db1c81_96.webp\",\"datePublished\":\"2026-06-05T04:49:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/krepapi-pl\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/krepapi-pl\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/krepapi-pl\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/krepapi-pl-icon-e3e50e84422568a1069e15968102711917db1c81_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/krepapi-pl-icon-e3e50e84422568a1069e15968102711917db1c81_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/krepapi-pl\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"KrepAPI (Plugin)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"KrepAPI (Plugin) - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/","og_locale":"en_US","og_type":"article","og_title":"KrepAPI (Plugin) - Minecraft","og_description":"Run server commands when a player presses a key- configured in a simple YAML file, no programming required.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/","name":"KrepAPI (Plugin) - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/krepapi-pl-icon-e3e50e84422568a1069e15968102711917db1c81_96.webp","datePublished":"2026-06-05T04:49:48+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/krepapi-pl-icon-e3e50e84422568a1069e15968102711917db1c81_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/krepapi-pl-icon-e3e50e84422568a1069e15968102711917db1c81_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/krepapi-pl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"KrepAPI (Plugin)"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/91072","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/91073"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=91072"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=91072"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=91072"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=91072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}