Home›Java›Mods›HimDSL
HimDSL
ModsJava

HimDSL

Java mod listed for Minecraft 1.21–26.x. Downloads from the MC Java Mods app on Android.

by HimxhMC · on Modrinth

⬇ Download on Modrinth
HimDSL — screenshot 1

HimDSL

HimDSL is a scripting language plugin for Minecraft Java servers. It lets server administrators and map makers write event listeners, scheduled tasks, GUI menus, numeric logic, and state machines using a concise, Java-like syntax — without writing or compiling a Java plugin.

Scripts use the .himdsl extension, live in plugins/HimDSL/, and run through a single command or automatically on server startup and shutdown.


Why HimDSL?

Most Minecraft servers need small pieces of logic all the time: welcome new players, autosave data, build a shop menu, run a countdown, check health. Writing a Java plugin for each of these is overkill. Existing scripting options are either too limited, too tied to a specific feature, or too far from a language you already know.

HimDSL sits in the middle. It gives you real variables, typed functions, structs, enums, lambdas, and function overloading — pieces Java programmers already know — plus Minecraft-aware tools built into the language itself:


Features

Language

Minecraft integration

Built-ins

Reliability


Example: Welcome new players

plugins/HimDSL/onServerLoad.himdsl:

@EventHandler
void onJoin(event(PlayerJoinEvent)) {
    player p = @s;
    runcmd("CONSOLE", "say Welcome " + p.name + " to the server!");
    runcmd(p.name, "title @s title {\"text\":\"Welcome\"}");
}

int main() {
    start("onJoin");
}

Example: Scheduled autosave

@BukkitRunnable
void autosave() sche = 300s {
    var lines = vector();
    lines.add("saved at tps=" + $server(tps)$);
    fwritelines("last_save.txt", lines);
}

int main() {
    start("autosave");
}

Example: Simple shop GUI

int main() {
    var gui = new GUI(3, "§6Shop");

    var diamond = new GUISlot(Material.DIAMOND);
    diamond.name = "§bDiamond";
    diamond.lore = {"§7Price: §e100", "§aLeft-click to buy"};
    diamond.onLeftClick = () -> {
        player p = @s;
        runcmd("CONSOLE", "eco take " + p.name + " 100");
        runcmd("CONSOLE", "give " + p.name + " diamond 1");
        runcmd(p.name, "msg §aPurchased");
        gui.close(p);
    };
    gui[1][4] = diamond;

    gui.updateAll();
    gui.open(@p);
}

Commands and Permissions

Command Description Permission
/himdsl compile <path> Syntax check only himdsl.use
/himdsl run <path> [args] Execute a script himdsl.run
`/himdsl debug on\ off` Toggle verbose logs
`/himdsl debug codeon\ codeoff` Print script content before each run

All paths are relative to plugins/HimDSL/. All three permissions default to OP.


Requirements


Auto-run Scripts

Drop these files into plugins/HimDSL/ and they run automatically:


Documentation

Full documentation is available on the project Wiki:


For Java Developers

HimDSL exposes a HimDSLAPI through Bukkit's ServicesManager so other plugins can compile, run, and generate scripts:

HimDSLAPI api = Bukkit.getServicesManager().load(HimDSLAPI.class);
if (api != null) {
    api.run(new File(himdslFolder, "script.himdsl"));
}

Add softdepend: [HimDSL] to your plugin.yml.

You can see the whole wiki at https://github.com/HimxhMC/HimDSL/wiki


License

See the LICENSE file.

Issues & Feedback

Bug reports and feature requests are welcome on the issue tracker.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

File checked by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more