Changelog
All notable changes to the LERP (Luau Education for Rive Professionals) course are documented here.
[1.2.4] — 2026-03-23
Added
- Tips and Tricks page — new reference index of proven workarounds and non-obvious patterns: Bus Module Pattern (with use cases for bounds, Input types, and EventBus),
advance()return value gotcha,and/orstring literal type widening, Sustained-Boolean Pattern (with boolean reset and trigger listener bug note), cubic bezier easing in pure Luau, and debug toggle convention - Bus Pattern documentation — new section in Util Protocol explaining intentional shared state via
require()caching for cross-script communication, with production-tested code examples (HitboxBus, PathEffect-to-Node data sharing)
Changed
- Util Protocol reframed — replaced blanket "avoid global state" language with nuanced guidance distinguishing accidental shared state (dangerous) from intentional bus architecture (legitimate pattern); updated quiz explanation, gotcha section, and summary accordingly
- Sidebar — added Tips and Tricks entry between API Reference and Quick Reference
Fixed
- Internal contradiction resolved — Listener Protocol already taught EventBus as legitimate shared state via Util scripts, while Util Protocol labeled all module-level state as BAD/WRONG; both pages now present a consistent position
[1.2.3] — 2026-03-14
Added
- Complete Input type reference — every
Input<T>type now has its own section in the API reference with when-to-use explanation, factory default, how-to-read, complete code example, and editor setup steps (for types that need it) Input<Trigger>documentation — new "Trigger Inputs" section in Inputs guide, empirically validated in the Rive editor with 5 test scripts- Trigger execution order — documented the ground-truth frame order: trigger fn → advance → update (trigger function is called directly, not through update)
- Changelog page — new sidebar entry after Trust & Transparency linking to rendered changelog
Changed
- Input API reference rewritten — replaced bare code-block type list with per-type sections:
Input<number>,Input<boolean>,Input<string>,Input<Color>,Input<Data.X>,Input<Artboard>,Input<Trigger>, and Change Handling — all written for non-programmers - Trigger moved from Events to Data & Input —
Triggeris a data input type, not a pointer event; Events page now redirects to the correct location - Events page — simplified to PointerEvent only, with redirect link for Trigger
- Sidebar author metadata — "Last reviewed" updated to March 14, 2026
Fixed
- Trigger factory default — documented that
late()causes runtime error "expected trigger X to be a function"; must usefunction() end - Removed incorrect claims —
Input<Trigger>?does NOT hide triggers from the UI; you CAN assign to trigger inputs in init (and it sticks) - Removed incorrect claims —
Input<Trigger>?does NOT hide triggers from the UI; you CAN assign to trigger inputs in init (and it sticks)
[1.2.2] — 2026-03-04
Added
- Path winding troubleshooting guidance — added a dedicated section in Procedural Geometry covering even-odd fill behavior, contour winding conflicts, cross-product detection, and strategy tradeoffs for multi-contour paths
- New advanced procedural exercise — added
Exercise 8: Fix Conflicting Winding in a Spike Burstwith validator IDadvanced-procedural-8 - Debugging cross-reference — added a new common error pattern for "shapes disappear with no runtime error" linking to the winding guidance
Changed
- Course snapshot metadata — refreshed intro page "Course at a Glance" counts and update date
- Trust sidebar metadata — updated "Last reviewed" date in the sidebar author meta block
[1.2.1] — 2026-02-27
Added
- Script capability matrix — new cross-protocol reference page summarizing supported callbacks and APIs by script type
- AI agent protocol guidance — added internal protocol notes (32-bit numeric bounds, pure Luau runtime rules,
noneutility semantics, and component-list generation rules)
Fixed
- Exercise expected outputs — replaced 76
ANSWER: <your result>placeholders with exact validator answers across 20 docs pages - ViewModels context API references — removed invalid
context:artboard()/context:node()calls and aligned examples with supported context methods - Exercise and quiz tracking maps — synchronized docs and local registry/index so all exercise and quiz IDs are mapped correctly
Changed
- Course consistency pass — resolved cross-page wording and metadata drift discovered during final v1.2 review
[1.2.0] — 2026-02-23
Added
- Rive AI Agent guide — comprehensive documentation of all 14 tools available to the Rive AI coding assistant, including workflow examples and tips
- ListenerAction protocol — new script protocol page for state machine listener action scripts
- TransitionCondition protocol — new script protocol page for custom state machine transition conditions
- Audio system documentation — AudioSource, AudioSound, and the Audio global API added to API reference
- Blob type documentation — binary data assets in API reference
- DataContext type — hierarchy traversal for data binding contexts
- Vector static methods —
Vector.cross,Vector.scaleAndAdd,Vector.scaleAndSuband other previously undocumented static methods - ImageSampler constructor — proper function constructor documentation replacing placeholder
- CHANGELOG.md — this file, with reconstituted version history
Fixed
- Path Effect scope wording — clarified that path effects apply to both strokes and fills (not strokes-only)
- Vector deprecated methods — instance methods (
vec:length(),vec:dot(), etc.) now marked as deprecated with static alternatives shown - ImageFilter values — corrected
trilineartobilinear(trilinear does not exist in Rive) - ImageSampler API — documented as function constructor
ImageSampler(wrapX, wrapY, filter)instead of opaque object - Context methods — added missing
rootViewModel(),dataContext(),image(),blob(),audio() - BlendMode usage — corrected from namespace access (
BlendMode.multiply) to string literals ("multiply") - PathEffect.update() signature — added missing
node: NodeReadDataparameter - PathCommand point counts — corrected to reflect Vector objects (1, 1, 2, 3) not raw number pairs (2, 2, 4, 6)
- DataValue type-check methods — corrected from property access to method calls (
dv:isNumber()notdv.isNumber) - PropertyList:insert parameter order — corrected to
insert(vm, index)per API - viewModel:getViewModel() return type — corrected to
PropertyViewModel? - artboard:instance() signature — added optional
viewModelparameter - artboard:node() return type — corrected to
NodeData? - Scene Node init() signature — added missing
context: Contextparameter - renderer:drawImageMesh signature — added full parameter list
- ContourMeasure documentation — expanded to show it has full PathMeasure capabilities, not just iteration
- NodeReadData missing methods — added
asPath()andasPaint() - PropertyList missing listeners — added
addListener()andremoveListener()
Changed
- Script types count — updated from 6 to 8 to include ListenerAction and TransitionCondition
- Quick Decision Guide — expanded mermaid chart with new script types
- Factory Functions table — added ListenerAction and TransitionCondition, removed Listener (not a script type)
- Glossary — added 8+ new terms (ListenerAction, TransitionCondition, AudioSource, AudioSound, Blob, DataContext, ImageSampler, Output)
- Strict-mode guidance — removed blanket
--!strictassumptions in docs where runtime behavior makes strict mode optional
[1.1.2] — 2026-02-17
Fixed
- Added
.vercelto.gitignore
[1.1.1] — 2026-01-24
Fixed
- Major audit fixes across documentation based on runtime testing
- Navigation routing improvements for experience-based paths
- Untracked
.claudefolders from the repository - Strict mode optionality wording clarified in docs
[1.1.0] — 2026-01-15
Added
- Rive Luau expert agent with skills integration
- Beginner-friendly "Your First Script" page
- Beginner exercise with proper template format
- Test scripts support added to gitignore
Fixed
- Categorical claims corrected based on runtime testing
[1.0.1] — 2026-01-15
Added
- Glossary expanded with 25+ new terms
- Mat2D wrapped in Term component for consistent linking
Fixed
- API claims corrected and missing documentation added (#87)
- Angle bracket escaped in MDX to fix compilation error
[1.0.0] — 2026-01-14
Added
- Complete exercise system with progress tracking
- Comprehensive lesson improvements with AE/JS comparisons
- All lessons migrated to Rive-first format with dark mode fixes
- Comprehensive lessons for Fundamentals, Types, and OOP modules
- Complete API reference and quick-reference content
- CI/CD deployment pipeline
- LERP brand assets
Fixed
- Exercise expected-output blocks switched from literal answers to guidance placeholders (later reverted in 1.2.1)
- Build warnings resolved across all exercises
[0.8.0] — 2026-01-13
Added
- Migrated to Docusaurus with interactive quizzes
- Loading indicator and fallback links
- Code exercises and quiz reset functionality
[0.5.0] — 2026-01-13
Added
- Split guide into loadable parts
- Navigation links to reference docs
- Improved layout and reference documentation
[0.1.0] — 2026-01-13
Added
- Initial LERP course added to forge platform