3rd times a charm they say
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-06 12:40:57 +01:00
.github/workflows initial commit 2026-08-19 00:20:46 +01:00
gradle/wrapper initial commit 2026-08-19 00:20:46 +01:00
src added original svg logo 2026-10-06 12:40:57 +01:00
.gitattributes initial commit 2026-08-19 00:20:46 +01:00
.gitignore initial commit 2026-08-19 00:20:46 +01:00
build.gradle.kts introducing the prelude object! 2026-09-10 00:09:49 +01:00
gradle.properties restructured code 2026-08-22 11:08:14 +01:00
gradlew initial commit 2026-08-19 00:20:46 +01:00
gradlew.bat initial commit 2026-08-19 00:20:46 +01:00
LICENSE minor patches 2026-08-27 23:18:58 +01:00
README.md readme 2026-10-06 12:10:39 +01:00
settings.gradle.kts initial commit 2026-08-19 00:20:46 +01:00

Forgejo (source) | Github (mirror)

Overview

Module system for running scripting languages in Minecraft.

  • Each script file is a module
  • When the game starts, a file called the entry point is ran, and from there
  • Each module can call import to load another module and unimport to undo the import
  • When all importers have unimported a module, the module is automatically unloaded

Features

  • One entry point for each of client and server

    Entry point Start Stop
    Client Client started Client stoping
    Server Server started Server stopping

    Note: the server entry point is also ran for integrated servers (i.e. singleplayer world)

  • Prelude items

    Supports custom prelude - a way to insert arbitrary code before the first line of a script file, so language features (e.g. CommonJS require) can be added.

  • Thread safety

    Module import/unimports are atomic operations and thread safe.

    TLDR: no unexpected behaviour from calling import/unimports in multiple threads at the same time.

  • Multi-language support

    Supports any GraalVM languages, allows importing items from a module written in a different language.

    Note: you need a runtime for the language (e.g. jsc/js-runtime) to run a script file, language is recognised by its file extension.