Skip to content

History / Authoring Lua Items

Revisions

  • Lua Items: lead with the CustomItem SDK base class The Authoring Lua — Lua Items page now leads with the recommended SDK approach (sdk/lua/custom_item in EmoTracker-Service) which provides a CustomItem base class, transaction-backed properties, and a working ToggleItem example. The bare ScriptHost:CreateLuaItem API is documented as a secondary path for when the SDK doesn't fit.

    @claude claude committed Apr 8, 2026
  • Add Authoring Lua Scripts hierarchy - Authoring Lua Scripts: top-level overview of the scripting environment, what Lua does in a pack, the NLua sandbox model (removed os methods, no io for non-unsafe packs, removed import, rewired print), the six injected globals, and a sub-page index - init.lua: entry-point conventions, load-order rules, variant detection via Tracker.ActiveVariantUID, ScriptHost:LoadScript vs require, where to define custom logic and callbacks - Standard Callbacks: every well-known function name the runtime invokes (tracker_on_pack_ready, *_accessibility_*, save load bracket, autotracker_started/stopped), re-entrancy protection, examples - Custom Access Rules: deep dive on the $ prefix dispatch into Lua, the count + AccessibilityLevel return contract, pipe- separated args, where to define functions, caching semantics - Autotracking: lifecycle, ScriptHost:AddMemoryWatch usage, IMemorySegment read API, item-update patterns by item type, multiple watches with per-period polling, removing watches - Lua Items: ScriptHost:CreateLuaItem, full property/callback reference, when to use vs built-in items, complete worked example, save/load via SaveFunc/LoadFunc - API Reference: full reference for Tracker, AutoTracker, Layout, ScriptHost, ImageReference, AccessibilityLevel, NotificationType, and the IMemorySegment interface - Sidebar updated with the full hierarchy under For Developers

    @claude claude committed Apr 8, 2026