28 July 2026 - Version 38
- Fixed the
/scriptcommand not registering on Paper servers. - The
/script info <path>command now shows more profiling information. - Fixed a compiler bug related to callsite generation in ES6 classes.
- Revised dependency resolution stratigy in cases where one or more child scripts failed to load, but got resurected later.
- Implemented a ton of missing standard libraries for Strings and Arrays.
27 July 2026 - Version 37
- Overhauled the TypeScript toolchain: the old bundled compiler is gone,
tscjniis now pulled from the repo instead. - Fixed
@/imports not resolving in every case. - The loader no longer tries to load candidates it isn’t allowed to (
.d.tsfiles and friends), which cleans up boot noise. - Added a configurable startup timeout for servers that boot terribly slowly.
- The engine is now consumed from the Maven repo instead of being vendored into the build.
10 July 2026 - Version 36
- Internal housekeeping.
7 July 2026 - Version 35
- Added
Script.loadGradleDependency(coord)to resolve Maven/Gradle artifacts at runtime, with type generation for whatever gets loaded. Note that transitive dependencies are not resolved. - TLS is now warmed up on boot, so the first
fetchisn’t slower than the rest. - Broader type inclusion in the generated definitions.
- Cleaned up logging.
4 July 2026 - Version 34
- Improved error logging when a script fails on its initial load.
- Fixed a class loader boundary issue with
Script.loadClass. - Added support for forcing types in the generated definitions, which fixes the hinting on
GlobalNotification.
2 July 2026 - Version 33
- Internal housekeeping.
2 July 2026 - Version 32
The first release since December, so it carries a lot. (mostly because a lot of work has been done on the engine, which is now a separate artifact, and the plugin has been updated to use it.)
s- Added the Java implementation registry: registerImplementation / getImplementation in scripts, and JS.getImplementation on the Java side through the new public dev.pixelib.pixelscript:API artifact. Implementations are validated at registration, and fall back to a throwing placeholder when the script that provided them unloads.
- Rewrote type generation: it moved into the engine, gained a searchable class generator with known types, much better type resolution, types for the database modules, typed command handlers, a
typeofoption, and qualified types for extensions. - Decoupled the import resolver and the database layer from the platform.
- Experimental Hytale platform support.
- Fixed running on Java 25.
- Added missing
$bindings, including enum fields. - Fixed the default chat format in the example scripts.
It also carries six months of engine work:
- Implemented object destructuring and merging.
- Added nullish coalescing (
??) and optional chaining (?.), and fixed the line numbers in errors caused by optional chaining. - Added
Math.toRadians. - Allowed ES2020 trailing commas in method calls (thanks to Gongo’s feedback).
- Fixed a bug (reported by Gongo) where objects from another context could not be used in a rest operation, plus a follow-up runtime bug he reported.
- Dropped the legacy call resolver.
- Updated the engine to Java 17.
20 December 2025 - Version 31
- Added support for destructuring in
forloops. - Removed the bundled library plugins.
- Reworked artifact authentication and set up the publishing workflow.
20 December 2025 - Version 30
- Added
/script tree, which prints the full script dependency hierarchy. - Added protection against circular imports, which are now rejected at load with a readable trace.
- Reworked how script loads are counted and timed, and fixed a leak in the timing data.
- Fixed parent scripts not being resurrected after one of their children failed to load.
- Added
$type generation, so classes resolved through$show up in autocomplete. - The plugin now ships a complete example script project on first boot.
- The data folder is created on start.
- Improved import and linker error messages.
- Engine: unassigned globals can now be read before entering scope.
17 December 2025 - Version 29
- Added
Math.trunc(value)to truncate decimal values. - Improved error logging during script unload handlers.
- Simplified error logging to reduce compiler verbosity on licenced builds.
14 December 2025 - Version 28
- Added support for BigInt math operations, and dashed numeric literals (e.g.,
1_000_000). - Implemented private methods on JS classes using the
#syntax. - Implemented static inheritance for JS classes.
3 December 2025 - Version 27
- Added support for
getandsetaccessors in JS classes. - Implemented “complex” destructuring assignments for arrays and objects, with support for rests and computed property names.
27 November 2025 - Version 26
- Added support for array#findIndex
7 November 2025 - Version 25
- Updated to java 21
- Fixed
dequeuetype on JS array like structures.
6 November 2025 - Version 24
- Implemented fields for JS classes based on the new ecma standard (and private fields, ofc).
- Added runtime support for guarded invocations to obscure access to sensitive private fields/methods.
??
- start of public changelog, taking it out of Cam’s DM, may update entries some day going back to February 2025 -