The LSL-to-SLua converter for Second Life. Free mechanical conversion for any script. AI-refined Pro tier that produces idiomatic SLua — state-machine refactoring, LLTimers, full type annotations, explained line-by-line.
Tier 1 gives you syntax-correct SLua that runs. Pro sends the original LSL + Tier 1 output to Claude, which refactors to idiomatic SLua and explains every change. Below: a real capture from our greeter.lsl test fixture.
ll.Say(0, greeting) directly, removed the __rs_state_entry wrapper.state_entry.MANUAL: placeholder with a real LLTimers:every(5.0, ...) block.LLTimers:every is the first-class replacement for LSL's llSetTimerEvent + timer event pair.timer handler from LLEvents:handlers.LLTimers callback above; keeping the handler would be dead code.Mechanical conversion is free forever. Pro tier unlocks Claude refinement with explanations — pay per conversion or go unlimited.
A quick reference for what the free Tier 1 transpiler handles automatically.
llSay(0, msg)ll.Say(0, msg)All ll* functionsinteger / floatlocal x: numberType annotationslist items = []local items: table = {}List to tableif (x > 0) {if x > 0 thenControl flowstate open;__rs_state("open")State simulation!= && ||~= and orOperators"a" + b"a" .. bString concatinteger endlocal end_r: numberKeyword rename<1.0, 0.8, 1.0>vector(1.0, 0.8, 1.0)Vector literalsWe'll email you about new Tier 1 features, SLua release news, and in-world L$ payment support (coming soon).
No spam. Unsubscribe anytime.