Sueta

OpenJavascript

1.5.0

Create custom menus, commands, plugins, systems, basically anything with scripts in Javascript! With multithreading and Folia support! Everything is fully documented in the documentation!

·Plugin
  1. 1.5.0latestOpenJavascript 1.5.0 (NEW Vscode extension)Jul 29, 2026

    Important changes:

    task.repeat(delay, period): period has been changed from ticks to seconds. A new ticks()* method has been added, to use ticks instead of seconds, wrap the value like task.repeat(delay, ticks(period)). * The ticks() method can be used in any task method that takes seconds as an argument, letting you pass tick values instead. * all minecraft versions below 1.18 are no longer supported!

    Welcome OpenJS Intellisense!

    ![Replace this with a description](https://cdn.modrinth.com/data/cached_images/7e3b23f0af21c… * You can now download the extension in VSCode and get full autocompletion for OpenJS scripts! * Simply run /oj generatetypes in the server console and follow the steps shown after the types have been generated. * Search for "OpenJS IntelliSense" in the Extensions marketplace on VSCode, or download it directly from the [marketplace page](https://marketplace.visualstudio.com/items?itemName=Spide…

    Compatibility & Multi-Version Support

    Added support for Minecraft version 26.X*, including full compatibility testing for the Dialog and Inventory APIs. Fixed Cardboard* incompatibility. Fixed Minecraft version detection breaking on Spigot*. Fixed the Inventory API being broken on 26.X and on Spigot*

    Task API

    Rewrote Folia scheduling* to use the Folia scheduler directly, reducing check calls and improving performance. * Fixed task overflow after ~27 days of uptime Allowed 0-second delays* for the task API on Folia servers. * Added ticks(ticks), letting all task API methods work in ticks instead of seconds. * Fixed a memory leak in task.latch.listener() where listeners were never garbage collected without a held reference.

    Dialog API

    * Added tooltip support for dialog buttons: Dialog.baseButton.tooltip(text) and Dialog.setTooltip(buttonId, text). Added a new serverScreen* dialog for showing dialogs when a player joins the server. * Added the ability to pass an Audience into dialog.show() to support serverScreen dialogs.

    Dependency Management

    * Added downloadDependency(), letting scripts pull in dependencies directly from Maven repositories. * Downloaded dependencies are now cached and usable via importClass(). * Added loadDependency(folder) to load a dependency directly from any local path. * Imported libraries and dependencies can now also be loaded through importClass() and Java.type().

    Intellisense Extension

    * Fixed type generation issues in the extension's Typegen. * Removed the leftover $ placeholder from generated types. * Added the plugin global to intellisense. * Added a Typegen entry to the in-game help command. * Added more detailed error logging for the type generator. * Included missing java.lang class types in Typegen, complete with generated Javadocs. * Added a progress bar for Javadoc generation, since it can take a while. * Extension now uses the newly imported java.lang classes instead of relying on pre-built dummy classes. * Generated types now live in plugins/OpenJS/scripts/.openjs-types/generated, and the extension automatically detects and applies them Added a new "Auto Apply Definitions"* command to simplify type detection without needing to open a workspace. * Enabled type checking so the extension can now catch errors, not just autocomplete. * Fixed importClass("") autocomplete not triggering when the quotes were already typed. * Fixed FileManager service methods not autocompleting for existing files.

    Performance & Internal Refactoring

    Scripts now get force-compiled*, with compiled code cached to disk and reloaded on server restart, reducing script load times. * Reduced plugin file size after removing the old Folia scheduler and rewriting it. * Refactored script globals into a unified ScriptGlobals class. * Fixed 5 separate memory leaks, including one in the FoliaSupport class. * Improved overall main-thread performance. * Fixed debug logs not appearing during server initialization. * Added Bstats as a dependency. The goal of this update was to make the plugin more stable and reliable, so there are no more weird crashes or memory leaks. The documentation is still being updated to reflect the changes in this release. Thanks for your patience, everyone. This update took a while, mostly because of the VSCode extension.
    730 downloads
  2. 1.5.0-SpigotOpenJavascript 1.5.0 (Spigot/Bukkit/Cardboard)Jul 29, 2026
    38 downloads
  3. 1.4.0OpenJavascript 1.4.0 (B I G Update!)Mar 31, 2026
    ![updateThumbnail](https://cdn.modrinth.com/data/cached_images/7b67b66e32077…

    General Fixes & Improvements

    Scripts run more than 2.5 times faster than in previous versions now!* No changes needed, just update! You can convert scripts ([scriptPacks](https://openjs.wiki.gd/rescources/advanced-guides/creating-modular-scripts-and-converting-them-to-plugins)) into plugins* now! * Added support for minecraft version 26.1 * Reviewed and fixed numerous bugs across the entire codebase. Added a debug mode* boolean to the config for easier troubleshooting. * Fixed a bug where reloading with the reload command would not update the debug mode boolean until a full restart. * Fixed an issue where deleting folders inside the script folder was not possible due to the file watcher locking them. * Removed all deprecated code and cleaned up a large portion of the codebase.

    Dialog API

    Created a new [DialogApi](https://openjs.wiki.gd/apis-and-tools/services/dialogapi)* for managing in-game graphical dialogs.

    Task API

    Tasks are now shared across all scripts*, meaning they can be cancelled from external scripts using setShared and getShared. * Added task.latch() which returns an object with the following thread-safe methods: .destroy(), .connect(function), .wait(), .invoke(), .fire(), and .invoked. * Added task.threadType() which returns a string indicating the thread type (main, async, or sync). * Enhanced thread safety in DelayTask by properly handling thread interruptions.

    FileManager API

    * Added FileManager.getPath(File), which returns the relative path of a file based on the script's folder. Added support for ZIP files*: any .zip file containing an info.json will automatically be extracted into a folder named after the zip file. * Fixed a bug where the file watcher could receive null paths, causing errors. * Improved watcher robustness by handling OVERFLOW events and adding a null check for the watch service when clearing listeners. This fixed many errors with the file listener, its more reliable now

    ProtocolLib Integration

    * Added the following new ProtocolLib methods: * broadcastServerPacket(packet, source, broadcastRange) broadcasts a packet to nearby players. * sendServerPacket(player, packet) sends a packet directly to a specific player. * createPacket(packetTypePath) creates a packet by type path.

    PlaceholderAPI

    Fixed `parseString` not working correctly when passing an offline player* as the target.

    Inventory API

    * Added the following new methods: * getSlot(slot) retrieves the item in a given slot. * setItemLore(slot, lore) sets the lore of an item in a slot. * setItemName(slot, name) sets the display name of an item in a slot. * Fixed colors not being applied correctly in item lore. Added backwards compatibility for `Inventory.setTitle` via ProtocolLib*.

    Service Objects & Internal Refactoring

    Refactored Folia support* initialisation for improved performance, including a centralised init() method and pre-cached scheduler. * Refactored setShared() & getShared() , replacing complex lock logic with a simpler and safer wait()/notifyAll() approach. * Optimised script preprocessing to read from CODE_CACHE first, avoiding unnecessary disk reads. * Switched import ID generation in importJavaToJsGC from random strings to an AtomicLong counter (__import_0, __import_1, ...) for better performance. * Added player permission verification (openjs.use) at the start of onCommand to prevent unauthorised command execution. * Added Array.from() support. Created custom mappings to support Minecraft 1.13 through the current version*. * Fixed importClass() it now correctly translates Java classes into Javascript objects * Fixed Java.type() it can now correctly read and translate external plugin classes too! This is huge, trust me :)

    Thank you, guys, for downloading this plugin. I’ve poured my heart and a lot of passion into this project 💚

    550 downloads
  4. 1.4.0-SpigotOpenJavascript 1.4.0-SpigotMar 31, 2026
    55 downloads
  5. 1.4.0aOpenJavascript 1.4.0 AlphaMar 22, 2026

    Alpha Build - Use at your own risk! Full release soon!

    Changelog

    General Fixes & Improvements

    * Reviewed and fixed numerous bugs across the entire codebase. Added a debug mode* boolean to the config for easier troubleshooting. * Fixed a bug where reloading with the reload command would not update the debug mode boolean until a full restart. * Fixed an issue where deleting folders inside the script folder was not possible due to the file watcher locking them. * Removed all deprecated code and cleaned up a large portion of the codebase.

    Dialog API

    Created a new DialogService* for managing in-game graphical dialogs. * Added NMS support for the Dialog API. Added backwards compatibility for `Inventory.setTitle` via ProtocolLib*.

    Task API

    Tasks are now shared across all scripts*, meaning they can be cancelled from external scripts using setShared and getShared. * Added task.latch() which returns an object with the following thread-safe methods: .destroy(), .connect(function), .wait(), .invoke(), .fire(), and .Fired. * Added task.threadType() which returns a string indicating the thread type (main, async, or sync). * Enhanced thread safety in DelayTask by properly handling thread interruptions.

    FileManager API

    * Added FileManager.getPath(File), which returns the relative path of a file based on the script's folder. Added support for ZIP files*: any .zip file containing an info.json will automatically be extracted into a folder named after the zip file. * Fixed a bug where the file watcher could receive null paths, causing errors. * Improved watcher robustness by handling OVERFLOW events and adding a null check for the watch service when clearing listeners. This fixed many errors with the file listener, its more reliable now

    ProtocolLib Integration

    * Added the following new ProtocolLib methods: * broadcastServerPacket(packet, source, broadcastRange) — broadcasts a packet to nearby players. * sendServerPacket(player, packet) — sends a packet directly to a specific player. * createPacket(packetTypePath) — creates a packet by type path.

    PlaceholderAPI

    Fixed `parseString` not working correctly when passing an offline player* as the target.

    Inventory API

    * Added the following new methods: * getSlot(slot) retrieves the item in a given slot. * setItemLore(slot, lore) sets the lore of an item in a slot. * setItemName(slot, name) sets the display name of an item in a slot. * Fixed colors not being applied correctly in item lore.

    Service Objects & Internal Refactoring

    Refactored Folia support* initialisation for improved performance, including a centralised init() method and pre-cached scheduler. * Refactored PublicVarManager's waiting mechanism, replacing complex lock logic with a simpler and safer wait()/notifyAll() approach. * Optimised script preprocessing to read from CODE_CACHE first, avoiding unnecessary disk reads. * Switched import ID generation in importJavaToJsGC from random strings to an AtomicLong counter (__import_0, __import_1, ...) for better performance. * Added player permission verification (openjs.use) at the start of onCommand to prevent unauthorised command execution. * Added Array.from() support. Created custom mappings to support Minecraft 1.13 through the current version*. * Fixed importClass() it now correctly translates Java classes into Javascript objects * Fixed Java.type() it can now correctly read and translate external plugin classes too! This is huge, trust me :)
    46 downloads
  6. 1.3.2OpenJavascript 1.3.2 (Hotfix)Jan 30, 2026
    This release is just a hotfix, containing crucial fixes and new features.

    General Fixes & Improvements

    Migrated from Nashorn 15.6 to 15.7* for better JavaScript compatibility and performance. Reduced plugin file size by `~1,000KB`* through code cleanup and a complete rewrite of the UpdateChecker. * Fixed an error where [task.bindToUnload](https://openjs.wiki.gd/apis-and-tools/globals/task#bindto… would crash because the plugin attempted to schedule tasks during the shutdown sequence. * Resolved a ConcurrentModificationException that occurred when destroying an inventory immediately upon a player closing it.

    Custom-Menus Api Updates

    [Menu.setTitle(String):*](https://openjs.wiki.gd/apis-and-tools/services/inventorya… Added the missing setTitle method. [Setting any Menu/Inventory slot](https://openjs.wiki.gd/apis-and-tools/services/inventoryapi#setslot) to `null` now automatically converts it to Air* instead of throwing a null pointer error.

    FileManager Api Updates

    The [FileManager](https://openjs.wiki.gd/apis-and-tools/services/filemanager) service has received a few new methods
    New Methods:
    * getFile(path): Retrieves a specific file. * removeFile(path): Deletes a file. * getFolder(path): Retrieves a directory. * removeFolder(path): Deletes a directory and its contents. * getFiles(path): Returns an array of all files within the specified folder.
    [FileManager](https://openjs.wiki.gd/apis-and-tools/services/filemanager) path prefixes for easier navigation:
    `..` (Parent Directory):* Jump up one level out of the current folder. `/` (Script Root):* Quickly reference the directory where your script is currently located. Example:* FileManager.getFiles("/"); returns everything in the script's local folder.
    237 downloads
  7. 1.3.0OpenJavascript 1.3.0Jan 11, 2026

    Improvements

    - Fixed DiskApi issues that caused unexpected behavior - DiskApi now removes datastore entries when values are NULL - DiskApi now persists active files on script reload - Fixed rare ConcurrentModificationException issues when: - Registering commands - Syncing commands - Improved error handling: script exceptions now log as ERROR instead of WARN - All scripts now unload before any other shutdown logic - Scripts unload asynchronously on the main thread, allowing tasks to finish safely

    Additions

    - Completely rewritten script management & I/O system - Significantly reduces unnecessary disk operations - Added official [folder support](https://docs-mc-1.gitbook.io/openjs-docs/rescources/advan… for scripts - Scripts are automatically loaded when added while the server is running - Added [requireScript](https://docs-mc-1.gitbook.io/openjs-docs/apis-and-tools/g… - Introduced global [[script]](https://docs-mc-1.gitbook.io/openjs-docs/apis-and-tools/g… class - Fixed scripts failing to load via command due to parsing errors - Added [task.bindToUnload(function)](https://docs-mc-1.gitbook.io/openjs-docs/apis-and-tools/g… to register unload handlers - Yielding operations now block unload until execution completes - Cache behavior improved: - Cache drops only after I/O operations complete - Fully handled automatically by scripts

    APIs & Services improvements

    - Introduced [Services](https://docs-mc-1.gitbook.io/openjs-docs/apis-and-tools/s… API - ProtocolLib and PlaceholderAPI are now service-based - PlaceholderAPI improvements: - Fully thread-safe (fixes random unregister issues) - OfflinePlayer support - Parsing support for offline players - Added [FileSystem](https://docs-mc-1.gitbook.io/openjs-docs/apis-and-tools/s… Service - https://gitlab.com/spidermodders/openjs/-/milestones/3#ta… - Added [InventoryApi](https://docs-mc-1.gitbook.io/openjs-docs/apis-and-tools/s… service for simplified menu & inventory management - [Example Menu](https://docs-mc-1.gitbook.io/openjs-docs/example-scripts/… - ![Example menu made with the InvetoryApi](https://cdn.modrinth.com/data/cached_images/311032a2f197e…

    Commands & Runtime fixes

    - Refactored addCommand / registerCommand - Added [removeCommand(commandName)](https://docs-mc-1.gitbook.io/openjs-docs/apis-and-tools/g… - Allows scripts to override existing plugin commands

    Deprecations

    - Added [importClass()](https://docs-mc-1.gitbook.io/openjs-docs/apis-and-tools/g… for runtime class importing - Deprecated //!import xxx.xxx in favor of [importClass()](https://docs-mc-1.gitbook.io/openjs-docs/apis-and-tools/g… - Deprecated feature flags / service flags

    Configuration & Automation

    - Added autoReloadScripts config option - Toggle automatic reload when scripts change or are added

    Threading & more Folia Support

    - Added [task.thread(function)](https://docs-mc-1.gitbook.io/openjs-docs/apis-and-tools/g… for parallel execution - This means you can multithread scripts on non-Folia servers now - Services and PlaceholderAPI are now fully thread-safe

    Documentation

    - Added ["Advanced Guides"](https://docs-mc-1.gitbook.io/openjs-docs/rescources/advan… section that also explains how to use the new folder support - Reconstructed everything to find APIs and Methods faster - Added 3 new example scripts: [Food Bait](https://docs-mc-1.gitbook.io/openjs-docs/example-scripts/… [Nuke Menu](https://docs-mc-1.gitbook.io/openjs-docs/example-scripts/… and [Spawn Menu](https://docs-mc-1.gitbook.io/openjs-docs/example-scripts/… - All old example scripts have been updated to use the latest non deprecated methods
    127 downloads
  8. 1.2.0OpenJavascript 1.2.0Jul 31, 2025

    OpenJS v1.2.0

    Major Changes
    - Added official [internal support for ProtocolLib](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… - Introduced BridgeEngine system for [external plugin bridges](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… - [Task library](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… now supports creating Java listeners/proxies from scripts - Universal cleanup system for listeners and proxies - PlaceholderAPI support now lazy-loads for better performance - Ported [PlaceholderAPI integration](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… to the new BridgeEngine system
    Fixes
    - Commands now properly unregister - Fixed placeholders being unregistered after PlaceholderAPI reload - Fixed nullFailed to unregister all script commands error - Fixed missing script source name in rare ghost error cases - Fixed missing tab-completion for the version command
    Optimizations
    - Minimized IO operations during script loading - Improved error catching to prevent script freezing - Removed [feature flag](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… limitations
    Additions
    - Added [removePlaceholder(String prefix)](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… for scripts - Added new commands: /documentation and /page - Added missing [unregisterEvent()](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… method
    Documentation
    - Updated and extended documentation: - Added missing entries: [getMethod](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… [removePlaceholder](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… [ProtocolLib](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… - Split into cleaner sections to reduce clutter - documented how to make scripts [interact with external plugins](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… - added [script example that modifies packets to create custom fluids](https://docs-mc-1.gitbook.io/openjs-docs/rescources/examp… --- Sorry for the update delay, I'm currently working on my driving license. Thanks for your patience and enjoy the update.
    422 downloads
  9. 1.1.0OpenJavascript 1.1.0 (Huge update)Jun 28, 2025

    Update Log

    - Rewritten the async system for full Folia compatibility - Now finally stable on Folia, a major milestone - Introduced a new [task library](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… simpler, more intuitive, and fully cross-platform compatible - Added support for [loading .jar](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… files directly into scripts - Upgraded from ECMAScript 5.1 to ECMAScript 6.0 (Modern JavaScript features are now available in OpenJS) - Implemented script security enforcement - Completed [documentation](https://docs-mc-1.gitbook.io/openjs-docs) for all previously half-documented components - added [new example script](https://docs-mc-1.gitbook.io/openjs-docs/example-scripts/… that runs a local ai with the new features - [registerEvent](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… can now take functions directly instead of having to put them in a array ---

    We also have a dedicated server now

    Need help or want to share your scripts? [Join our Discord for support and discussion](https://discord.gg/XuRC4at2Ha) ![Discord Server](https://cdn.modrinth.com/data/cached_images/9ed1176972d0d…
    117 downloads
  10. 1.0.7OpenJavascript 1.0.7May 28, 2025

    Small patch with new additions

    - Fixed [Schedules](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… not unregistering on Folia Servers - Fixed Plugin breaking if PlaceholderApi is not installed - Fixed /oj reload command on Folia servers - Added Bstats opt-out option in the [configuration](https://docs-mc-1.gitbook.io/openjs-docs/getting-started/… file - Fixed a few weird errors that only occurred on Folia servers - Fixed the [no hit cooldown](https://app.gitbook.com/o/lJVeDfFucKbRvA1nGFas/s/ninfHRqx… example script causing errors - Added 2 new example scripts: [hitstand script](https://docs-mc-1.gitbook.io/openjs-docs/example-scripts/… & [Knockback-stick script](https://docs-mc-1.gitbook.io/openjs-docs/example-scripts/… to the [documentation](https://docs-mc-1.gitbook.io/openjs-docs) - Fixed Bstats silently failing to load on Folia servers
    102 downloads
  11. 1.0.6OpenJavascript 1.0.6May 25, 2025

    OpenJS Update 1.0.6

    - A [Wiki for OpenJS](https://docs-mc-1.gitbook.io/openjs-docs) has been created. Everything is documented from the ground up, although it is not yet fully complete. - Added [official PlaceholderAPI](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… support. - Introduced a new [DiskAPI system](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… for loading and saving files. - Added a permission system for [custom commands](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component… - Fixed an issue where custom commands were not appearing. - Fixed scheduling not working correctly. - Deprecated getVar and setVar due to a memory leak, in favor of the new [DiskAPI](https://docs-mc-1.gitbook.io/openjs-docs/openjs-component…
    55 downloads
  12. 1.0.5OpenJavascript 1.0.5Jan 27, 2025
    85 downloads

Similar projects

Plugin →