Home›Java›Mods›JS Runner
JS Runner
ModsJava

JS Runner

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

by Bunnyking · on Modrinth

⬇ Download on Modrinth
JS Runner — screenshot 1

Description

This project was inspired by ScriptCraft. ScriptCraft is a plugin that allows JavaScript files to be ran on a Minecraft server, but sadly ScriptCraft is no longer being updated and only supports 1.8. This plugin aims to bring the function of ScriptCraft back to modern day Minecraft. This project includes custom JavaScript API to interact with the game server.

Setup

Put the .jar file into the server plugins folder and restart it. A new folder will pop up with the name: "JSRunner" and inside that folder will be another folder named: "scripts." You can put .js files into the scripts folder and use the appropriate command to execute it.

Commands

/js run <filename>

runs a Javascript file located in JSRunner/Scripts

/js stop <filename>

stops a Javascript file

/js reload

stops all JavaScript files

JavaScript API

Server

server.log()

logs a message to the server console

server.command()

runs a command as the console

Timers

timers.setTimeout(fn, ticks)

run fn once after ticks

timers.setInterval(fn, ticks)

run fn repeatedly every ticks

timers.clear(id)

cancels a timeout/interval

timers.clearAll()

cancels all timers.

Events

events.on(event, callback)

listens for an event

playerJoin

parameter: PlayerWrapper

playerQuit

parameter: PlayerWrapper

blockBreak

BlockWrapper

Block Wrapper

getType()

returns block type as string

getX()

get X position

getY()

get Y position

getZ()

get Z position

getPlayerName()

name of the player who broke the block

Player Wrapper

getName()

gets the players name

getUUID()

gets the players UUID

Sample Code (Requires latest version to work)

This sample code welcomes a player who joined the server.

server.log("Hello from JSRunner!");

events.on("playerJoin", function(player) {
    server.log("Welcome " + player.getName());
});

var intervalId = timers.setInterval(function() {
    server.log("Repeating message every 100 ticks");
}, 100);

This sample code clears the invenory of a player who breaks bedrock with their hands (not TNT).

events.on("blockBreak", function(block) {
    if (block.getType() === "BEDROCK") {
        server.command("clear " + block.getPlayerName());
        server.command("tell " + block.getPlayerName() + " Your inventory was cleared!");
    }
});
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