My Progress
Track your progress through the LERP course. Your exercise completions are stored locally in your browser.
Course Progress
0Completed
343Total Items
0%Complete
Exercises:0 / 187 (0%)
Quizzes:0 / 156 (0%)
Progress by Chapter
Introduction
0 / 3Quizzes: 0/3
Quizzes (0/3)
[ ]intro-q1
[ ]intro-q2
[ ]intro-q3
Part 1: Getting Started
0 / 10Exercises: 0/1Quizzes: 0/9
Exercises (0/1)
Quizzes (0/9)
[ ]welcome-q1
[ ]welcome-q2
[ ]why-luau-q1
[ ]why-luau-q2
[ ]why-luau-q3
[ ]how-q1
[ ]how-q2
[ ]how-q3
[ ]how-q4
Part 2: Fundamentals
0 / 76Exercises: 0/43Quizzes: 0/33
Exercises (0/43)
[ ]Character Stats*[ ]Damage Breakdown*[ ]Score Updates*[ ]Status Line Formatting**[ ]Heal Logic**[ ]Type Snapshot*[ ]Truthiness Check*[ ]Label Builder**[ ]Number Formats**[ ]Nil Defaults**[ ]Damage Math*[ ]Comparison Gate*[ ]Access Logic*[ ]Motion Stepper**[ ]UI Label Assembly**[ ]Precedence Check**[ ]Health Tier*[ ]Inline Labels*[ ]Loop Totals*[ ]While Countdown*[ ]Repeat Until**[ ]Break and Continue**[ ]State Switch**[ ]Damage Function*[ ]Typed Formatters*[ ]Closure Counter**[ ]Update Helper**[ ]Lerp Factory**[ ]Clamp Utility**[ ]Array Basics*[ ]Dictionary Lookup*[ ]Insert and Remove*[ ]Copy vs Reference**[ ]Nested Tables**[ ]Sorting Tables**[ ]Range Loop*[ ]Step Loop*[ ]ipairs Total*[ ]pairs Count*[ ]Nested Loop Grid**[ ]Break Search**[ ]Continue Filter**[ ]String Iteration**
Quizzes (0/33)
[ ]vars-q1
[ ]vars-q2
[ ]vars-q3
[ ]vars-q4
[ ]vars-q5
[ ]dt-q1
[ ]dt-q2
[ ]dt-q3
[ ]dt-q4
[ ]dt-q5
[ ]dt-q6
[ ]fn-q1
[ ]fn-q2
[ ]fn-q3
[ ]fn-q4
[ ]fn-q5
[ ]tbl-q1
[ ]tbl-q2
[ ]tbl-q3
[ ]tbl-q4
[ ]tbl-q5
[ ]cf-q1
[ ]cf-q2
[ ]cf-q3
[ ]cf-q4
[ ]cf-q5
[ ]iter-q1
[ ]iter-q2
[ ]iter-q3
[ ]iter-q4
[ ]iter-q5
[ ]iter-q6
[ ]iter-q7
Part 3: Types & Structures
0 / 71Exercises: 0/43Quizzes: 0/28
Exercises (0/43)
[ ]Strict Mode Guard*[ ]Typed Variables*[ ]Typed Function*[ ]Inference Snapshot*[ ]Type Refinement**[ ]Rive State Type**[ ]Exported State Shape*[ ]Typed Range Table*[ ]Input Defaults*[ ]Input to State**[ ]Input Label to Status**[ ]Function Field Annotation**[ ]Parse Text Safely*[ ]Optional Label*[ ]Return Paths*[ ]Literal Union Mode*[ ]Table Shape Enforcement**[ ]Input Safety**[ ]Stats Alias*[ ]Nested Types*[ ]Array Alias*[ ]Optional Field*[ ]Function Alias**[ ]State Alias**[ ]Config Alias**[ ]Generic Pair*[ ]Generic Box*[ ]Input Number*[ ]Input String*[ ]Input Boolean**[ ]Generic Meter**[ ]Intersection Components**[ ]Union ID Format**[ ]Optional Subtitle**[ ]Function Type Alias**[ ]Literal Direction Union**[ ]Multiple Returns**[ ]Computed Total*[ ]Late Path Creation**[ ]Input and Computed State**[ ]Input Defaults Only*[ ]Late Bounds Table**[ ]Late Status String**
Quizzes (0/28)
[ ]types-q1
[ ]types-q2
[ ]types-q3
[ ]types-q4
[ ]strict-q1
[ ]strict-q2
[ ]strict-q3
[ ]strict-q4
[ ]anno-q1
[ ]anno-q2
[ ]anno-q3
[ ]anno-q4
[ ]custom-q1
[ ]custom-q2
[ ]custom-q3
[ ]custom-q4
[ ]gen-q1
[ ]gen-q2
[ ]gen-q3
[ ]gen-q4
[ ]adv-q1
[ ]adv-q2
[ ]adv-q3
[ ]adv-q4
[ ]late-q1
[ ]late-q2
[ ]late-q3
[ ]late-q4
Part 4: OOP & Patterns
0 / 72Exercises: 0/43Quizzes: 0/29
Exercises (0/43)
[ ]Prototype Instance*[ ]Prototype Counter*[ ]Prototype Inheritance**[ ]Dynamic Prototype Update**[ ]Basic Metatable*[ ]Class Pattern*[ ]Shared Methods*[ ]Default Styles**[ ]Computed __index**[ ]__tostring Metamethod**[ ]__index Defaults*[ ]__index Computed**[ ]Lookup Chain**[ ]__newindex Validation**[ ]Lazy Initialization**[ ]Read-Only Table**[ ]Spring Step**[ ]Class Instance*[ ]Sprite Class*[ ]Instance Formatter**[ ]Multiple Constructors**[ ]Class vs Plain Table**[ ]Dot vs Colon Basics*[ ]Why self Matters - Multiple Instances*[ ]Debugging self Errors**[ ]Method Patterns in Rive**[ ]Method Chaining**[ ]Callbacks and self (Binding Problem)**[ ]Drawable Base + Two Shapes**[ ]Override a Method**[ ]Calling Parent Methods**[ ]Complete Drawable Hierarchy***[ ]Encapsulated State Machine**[ ]Encapsulated Animation Controller**[ ]Weak Privacy with Conventions*[ ]Module Pattern**[ ]Read-Only Properties**[ ]Combining Approaches***[ ]Factory Pattern**[ ]Prototype Pattern (Clone)**[ ]Module Pattern (IIFE)**[ ]Singleton Pattern**[ ]Observer Pattern**
Quizzes (0/29)
[ ]meta-q1
[ ]meta-q2
[ ]meta-q3
[ ]meta-q4
[ ]idx-q1
[ ]idx-q2
[ ]idx-q3
[ ]idx-q4
[ ]class-q1
[ ]class-q2
[ ]class-q3
[ ]class-q4
[ ]proto-q1
[ ]proto-q2
[ ]proto-q3
[ ]self-q1
[ ]self-q2
[ ]self-q3
[ ]self-q4
[ ]inherit-q1
[ ]inherit-q2
[ ]inherit-q3
[ ]encap-q1
[ ]encap-q2
[ ]encap-q3
[ ]patterns-q1
[ ]patterns-q2
[ ]patterns-q3
[ ]patterns-q4
Part 5: Rive Integration
0 / 50Exercises: 0/25Quizzes: 0/25
Exercises (0/25)
[ ]Console Exploration*[ ]Understanding the Sandbox*[ ]Type Safety with --!strict*[ ]Working Within the Sandbox**[ ]Size + Color Inputs**[ ]Time-Based Animation**[ ]Input Change Counter**[ ]Progress Bar with Inputs**[ ]Hello Rive*[ ]Frame Timer*[ ]Draw a Simple Shape**[ ]Complete Protocol Example***[ ]Lifecycle Probe*[ ]Rebuild Only on Updates**[ ]Combining Lifecycle Callbacks**[ ]Click Counter**[ ]MathUtils Module**[ ]Exported Types from Util Scripts**[ ]Spring Animation Util***[ ]Basic Event Logger*[ ]Filtered Event Handler**[ ]Click Counter with Visual Feedback**[ ]Drag and Drop***[ ]Input-Driven State Visualization**[ ]Publisher-Subscriber Pattern***
Quizzes (0/25)
[ ]env-q1
[ ]env-q2
[ ]env-q3
[ ]env-q4
[ ]inputs-q1
[ ]inputs-q2
[ ]inputs-q3
[ ]inputs-q4
[ ]lifecycle-q1
[ ]lifecycle-q2
[ ]lifecycle-q3
[ ]lifecycle-q4
[ ]node-protocol-q1
[ ]node-protocol-q2
[ ]node-protocol-q3
[ ]node-protocol-q4
[ ]other-q1
[ ]other-q2
[ ]other-q3
[ ]other-q4
[ ]other-q5
[ ]util-q1
[ ]util-q2
[ ]util-q3
[ ]util-q4
Part 6: Advanced Topics
0 / 43Exercises: 0/24Quizzes: 0/19
Exercises (0/24)
[ ]Draw a Line*[ ]Filled Rectangle with Outline*[ ]Fill vs Stroke*[ ]Gradient Fill**[ ]Paint Variations with copy()**[ ]Translate and Rotate a Shape**[ ]Multiple Instances with save/restore**[ ]Animated Polyline**[ ]Clipping a Region**[ ]Press to Toggle Color**[ ]Track Multiple Pointers***[ ]Spawn Multiple Instances***[ ]Procedural Polygon**[ ]Animated Star**[ ]Sine Wave Path**[ ]Bezier Curves**[ ]Simple Particle System***[ ]Circular Progress Ring**[ ]Data-Driven Bar Chart***[ ]Read and Display ViewModel Data**[ ]Writing to ViewModel Properties**[ ]Listening for Property Changes**[ ]Firing Triggers**[ ]Nested ViewModel Inputs***
Quizzes (0/19)
[ ]core-types-q1
[ ]core-types-q2
[ ]core-types-q3
[ ]core-types-q4
[ ]drawing-api-q1
[ ]drawing-api-q2
[ ]drawing-api-q3
[ ]drawing-api-q4
[ ]drawing-api-q5
[ ]procedural-q1
[ ]procedural-q2
[ ]procedural-q3
[ ]procedural-q4
[ ]procedural-q5
[ ]viewmodels-q1
[ ]viewmodels-q2
[ ]viewmodels-q3
[ ]viewmodels-q4
[ ]viewmodels-q5
Part 7: Best Practices
0 / 18Exercises: 0/8Quizzes: 0/10
Exercises (0/8)
Quizzes (0/10)
[ ]architecture-q1
[ ]architecture-q2
[ ]architecture-q3
[ ]architecture-q4
[ ]debugging-q1
[ ]debugging-q2
[ ]debugging-q3
[ ]debugging-q4
[ ]resources-q1
[ ]resources-q2
How Progress Tracking Works
- Exercise completion is saved automatically when you submit a correct answer
- Progress is stored in your browser's localStorage
- Clear individual chapter progress or all progress using the buttons above
- Clearing progress removes your completion status but does not affect the course content
Data Privacy
All progress data stays on your device. Nothing is sent to any server.
Next Steps
- Continue to Welcome to Rive Scripting
- Need a refresher? Review Quick Reference