I've been evolving my lsl script conversion process for a few scripts now. My process looks like:
  1. Run the LSL script thru sed scripts 1-semicolens through 6-syntax
  2. Fix all reported syntax errors, type errors, and warnings generated by luau-lsp
  3. I now have a working script, but using llcompat. This
  4. Run the lua script thru sed script 7-index . This removes llcompat and autofixes some indexing
  5. Fix up the script to remove all uses of ll.SetTimerEvent and all off by one errors
  6. I now have a working script without llcompat
  7. Run the lua script thru sed script 8-semantics to get rid of some deprecated function warnings
Rough timeline
  1. I get my first working script with llcompat (step 3), after about 4 hours.
  2. I get my second working script without llcompat (step 6), after 1-4 days, depending on how much I abused timer and lists
Tools used:
  1. The above script converter
  2. vscode with luau-lsp plugin
  3. luau-lsp configured manually from https://github.com/secondlife/lsl-definitions/blob/main/generated/secondlife.d.luau
  4. luau-lsp has this custom patch applied: https://github.com/luau-lang/luau/pull/2184