Skip to content
Genesis v2.0 and Soteria v7.0 are here. Read the announcement

Decompile Luau bytecode.

Chasing output that is indistinguishable from hand written Luau.

Try GenesisRead the docs

0 scripts decompiled so far

API_KEY = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
loadstring(game:HttpGet("https://genesis.soteria.rip/"))()

Written in Rust

Hundreds of thousands of lines of code and data behind it. Most scripts come back in well under a second, and the large ones stay comfortably inside the request limit.

Names from context

Names come from what a value turns out to be and how it gets used, not from a counter. When the signals disagree it leaves a placeholder rather than a wrong name.

Reachable by API

Post base64 bytecode with your key and readable Luau comes straight back, no dashboard round trip. Call it from a loader, a build step, or your own tooling, with the same output options the dashboard gives you.

Project Holy Grail

The goal was never readable. It is indistinguishable.

A compiler keeps what the machine needs and drops the rest. Names, structure, intent, all of it is gone by the time a script is bytecode. Every decompiler works from what is left.

Genesis is aimed at the far end of that problem, at output you would not guess had been reconstructed. Getting it correct is the part that is solved. Getting a file to read the way a person would have written it is not, here or anywhere else, and that is what the work goes into.

SoteriaSoteria

Secure your Luau scripts and accelerate your developer experience.

Products

  • Oracle
  • Genesis

Tools

  • Script Library
  • DevEx Converter
  • FFlags Directory

Docs & Support

  • Documentation
  • Roblox Status
  • Error Codes
  • Runtimes

Company

  • About
  • Blog
  • Discord
  • Contact

Legal

  • Terms of Service
  • Privacy Policy
  • Cookie Policy
  • Acceptable Use

© 2026 Soteria. All rights reserved.

SoteriaSoteria
Pricing
Get Started