InputEngine
1.4.0-spigotInputEngine is a cross-platform project designed to capture custom keystrokes from the Minecraft client and transmit them seamlessly to the server.
InputEngine
A seamless cross-platform bridge capturing custom keystrokes from the Minecraft client to the server!📖 Overview
InputEngine is a powerful utility mod/plugin designed to capture custom keystrokes from the Minecraft client and transmit them instantly to the server. It allows server-side plugins to react seamlessly to custom client-side keybinds (e.g., Skill 1, Dodge, Open Custom Menu).
This project acts as a two-part bridge: a Client Mod (Fabric/NeoForge) and a Server Plugin (Spigot/Paper).
✨ Features
Client-Side Keybinding: Registers custom keybinds on the client. Fully supports both Fabric and NeoForge.
Network Bridge: Sends efficient, lightweight payloads to the server whenever a bound key is pressed or released.
Vanilla Server Compatible: The networking channel is optional on the client. You can safely keep the mod installed while joining vanilla servers without being disconnected!
Server-Side API: Exposes a custom Spigot Event (
PlayerKeyPressEvent) for developers so your server-side plugins can easily listen and react to player inputs.
📥 Installation
InputEngine requires both a server-side plugin and a client-side mod to function correctly.
For Players (Client)
- Download the correct version for your mod loader (Fabric or NeoForge).
- Place the downloaded
.jarfile into your Minecraft client'smods/folder. - Fabric Users: Ensure you have the Fabric API installed.
For Server Owners (Plugin)
- Download the Spigot release file.
- Place it in your Spigot/Paper server's
plugins/folder. - Restart your server.
💻 For Developers (API Usage)
If you are developing a Bukkit/Spigot plugin and want to react to a player's key press, you can easily use the API!
Listen to the PlayerKeyPressEvent:
import dev.darkblade.mod.input_engine.server.api.PlayerKeyPressEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class MyPluginListener implements Listener {
@EventHandler
public void onPlayerKeyPress(PlayerKeyPressEvent event) {
if (event.isPressed()) {
event.getPlayer().sendMessage("You pressed: " + event.getAction().name());
} else {
event.getPlayer().sendMessage("You released: " + event.getAction().name());
}
}
}
Full example are in the Example plugin and API Documentation
📜 License
This project is open-source and available under the MIT License.
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta