promotional bannermobile promotional banner

LiveScript

Unlisted
In-game JavaScript and Lua scripting for NeoForge with a built-in live code editor, hot-reload, autocomplete, and runtime event APIs.
Back to Files

livescript-0.13.10-neoforge-1.21.1.jar

File namelivescript-0.13.10-neoforge-1.21.1.jar
Uploader
Graf_KakashiGraf_Kakashi
Uploaded
May 24, 2026
Downloads
6
Size
1.9 MB
Mod Loaders
NeoForge
File ID
8139459
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:livescript-1552057:8139459"

Learn more about Curse Maven

What's new

v0.13.10 — Major: Instance-wide storage, JSON editing, polished examples

This release rolls up all the v0.13.x improvements into one stable build.

Storage layout reworked

  • Scripts, custom items, and textures all live under <gameDir>/data/livescript/ instead of being scattered between <world>/livescript/ and config/livescript/.
  • Instance-wide: all worlds in the same client install share the same scripts. Server admins continue to have one location at <server-root>/data/livescript/.
  • Automatic non-destructive migration from the old layout on first launch — legacy files are copied, never deleted.

JSON editing in the in-game editor

  • The editor tree now shows .json files alongside .js / .lua.
  • Dedicated JSON tokenizer for syntax highlighting (strings, numbers, true/false/null, punctuation).
  • JSON files are validated on save — invalid JSON is rejected with a precise error like Expected EOF at line 5 column 3 path $.items.magic_dust. Your script files are never overwritten with broken JSON.
  • New + JSON toolbar button creates a fresh config file.
  • Excluded from the tree: .history/ (snapshot sidecar), textures/ (PNGs can't be text-edited).

Examples completely rewritten

First-run seed now includes 8 curated examples, each covering one concept without overlap (no more two files doing the same thing):

  • welcome.js — first-touch intro: print, broadcast, player.join
  • events.lua — chat handler + block-break cancel
  • recipes.js — all 7 recipe types in one reference file
  • custom_results.lua — DataComponents: name, lore, glow on outputs
  • tags.js — tag lookups (itemsIn, itemHas)
  • startup.lua — @startup annotation pattern
  • advanced.lua — multi-event state coordination (block-break counter)
  • items_demo.js — recipes for the three seeded custom items

items.json ships with three active demo items — magic_dust, phoenix_feather, soul_bread — paired with items_demo.js so users see custom items working end-to-end on the first launch.

@startup parser made strict

The @startup annotation must now be on its own comment line (// @startup or -- @startup). Embedded mentions in prose comments no longer trigger detection, so writing about the feature in your own scripts is safe.

Event handlers: print() is now visible

Previously, print() calls inside event handlers landed in a buffer that was only drained on the next manual execute() — effectively invisible to the user. Now print() also writes to the server log, so handler debugging isn't a black box. Handler exceptions get a full stack trace alongside.

Editor: Refresh button

New Refresh toolbar button re-syncs the file tree from disk. Files added externally (VSCode, Notepad, file manager) show up immediately without closing+reopening the editor.

Smaller fixes

  • /scripteditor no longer crashes when reopening a singleplayer world (AsyncIO executor lifecycle).
  • Lua scripts no longer fail to execute with "bad argument: function expected, got table" — debug.sethook signature was wrong.
  • Sanitized version comparison for the update check (0.11.10 > 0.11.2, not lexicographic).
  • README and CurseForge description now clearly state the security model: no filesystem, no subprocesses, no reflection, no network from scripts. Source is at https://github.com/GrafKakashi/livescript.

This mod has no related projects