Skip to content

SimpleScripting Getting Started FAQ

Quick answers to help you get started with SimpleScripting.

SimpleScripting is currently in pre-release. Download it from GitHub: SimpleScripting Releases

You need:

  • A Hytale server (not client)
  • Java 25 or higher
  • SimpleScripting plugin JAR

No additional dependencies required.

  1. Download the SimpleScripting JAR
  2. Place it in your server’s plugins/ directory
  3. Start or restart your server
  4. SimpleScripting will create a mods/ directory automatically

After first run, you’ll see:

server/
├── plugins/
│ └── SimpleScripting.jar
└── mods/ (created automatically)
└── (your mods go here)

No. SimpleScripting is server-side only. It runs on the Hytale server, not the game client.

Does SimpleScripting work with other plugins?

Section titled “Does SimpleScripting work with other plugins?”

Yes! SimpleScripting is a standard Hytale plugin and works alongside other native plugins.

Every mod needs:

mods/
└── my-mod/
├── mod.json (required)
└── main.js (or your entry file)

Minimum required fields:

{
"name": "my-mod",
"version": "1.0.0",
"main": "main.js"
}

See Manifest for all available fields.

Your mod’s entry point. Define lifecycle hooks:

function onEnable() {
log.info("My mod is loading!");
}
function onDisable() {
log.info("My mod is unloading!");
}

Do I need build tools (webpack, npm, etc.)?

Section titled “Do I need build tools (webpack, npm, etc.)?”

No! SimpleScripting runs JavaScript files directly. No compilation or bundling needed. Just write .js files and restart your server.

Not directly. SimpleScripting executes JavaScript. You’d need to compile TypeScript to JavaScript yourself before placing files in the mods/ folder.

  1. Place it in mods/yourmod/
  2. Restart the server
  3. Check console logs for errors
  4. Test functionality in-game

Can I organize my code into multiple files?

Section titled “Can I organize my code into multiple files?”

Yes! Use the require() function:

utils.js
module.exports = {
greet: function(name) {
return "Hello, " + name;
}
};
// main.js
const utils = require('./utils.js');
function onEnable() {
log.info(utils.greet("World"));
}

Where do I put additional JavaScript files?

Section titled “Where do I put additional JavaScript files?”

In your mod’s directory:

mods/my-mod/
├── mod.json
├── main.js
├── commands.js
└── utils/
└── helpers.js

Yes! Organize however you want:

const helper = require('./utils/helpers.js');

Place them in your mod directory and read them using the filesystem API (if available) or embed data in JavaScript.

Yes! Create a config.json (or any name) in your mod folder and load it in your code. You’ll need to use file reading APIs.

SimpleScripting doesn’t have built-in config management. You can:

  1. Use JSON files and load them manually
  2. Store settings in the database
  3. Use hardcoded values in your JavaScript

Can I create server owner-editable configs?

Section titled “Can I create server owner-editable configs?”

Yes, by creating a JSON file in your mod directory that server owners can edit before starting the server.

Use log.info(), log.warn(), log.error():

log.info("This is an info message");
log.warn("This is a warning");
log.error("This is an error");

Output appears in the server console.

  1. mod.json syntax - Must be valid JSON (use a JSON validator)
  2. File names - Check case sensitivity and spelling
  3. Main field - Must point to existing file
  4. Server logs - Read error messages carefully
  5. File location - Must be in mods/yourmodname/

Look for log messages in console during server startup. SimpleScripting logs which mods are loaded.

No. SimpleScripting uses GraalVM’s JavaScript engine, not a browser. Use log.* for debugging.

Use log.info() to print variables:

function onEnable() {
let value = calculateSomething();
log.info("Calculated value: " + value);
}

During server startup, after SimpleScripting initializes.

Based on the dependencies field in mod.json. Mods with no dependencies load first.

See Dependencies and Order.

Add it to dependencies:

{
"name": "my-mod",
"dependencies": ["other-mod"]
}

Currently, no. You must restart the server to reload mods.

SimpleScripting logs the error and continues loading other mods. The failed mod won’t be available.

Check:

  • File path in require() is correct
  • File extension is included (.js)
  • Path is relative to current file (./ or ../)

Your JavaScript has syntax errors. Common causes:

  • Missing closing brackets }, ), ]
  • Missing semicolons (usually okay, but can cause issues)
  • Using unsupported JavaScript features

You’re calling a method that doesn’t exist:

  • Check API documentation for correct method names
  • Verify the object has the method
  • Check for typos

Common JSON mistakes:

  • Trailing comma in last property
  • Missing quotes around strings
  • Using single quotes instead of double quotes
  • Comments (JSON doesn’t support comments)

“Permission denied” or file access errors

Section titled ““Permission denied” or file access errors”

Check:

  • Server has permission to read mods/ directory
  • Files aren’t locked by another program
  • File paths are correct for your operating system
  1. Download new version
  2. Stop server
  3. Replace old JAR with new one
  4. Start server

Your mods should continue working (unless breaking changes are announced).

Edit the files, update version in mod.json, and restart the server.

Can players use my mod on their own servers?

Section titled “Can players use my mod on their own servers?”

Yes! Distribute your mod folder (with mod.json and all .js files). They just drop it in their mods/ directory.

Yes! Update the version field in mod.json when you make changes:

{
"version": "1.2.0"
}

Start with:

  1. API Overview - Surface area
  2. Events & Commands - Basic functionality
  3. Inventory & Items - ItemStacks and inventory planning
  4. Database - Data persistence

Start simple:

  • A command that responds with a message
  • A chat listener that modifies messages
  • A welcome message when players join

Check the SimpleScripting documentation for code examples in each API section.

Yes! SimpleScripting is open source: SimpleScripting GitHub


Last updated: February 2026