A luau library to manipulate roblox place/model files
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-02-07 11:04:43 -05:00
rbx-test-files@53d2ca8bb1 Update to 0.677.0.6770761, updated requires, polyfill, and binary format 2025-06-11 17:48:52 -04:00
scripts update scripts 2025-09-09 13:11:48 -04:00
src update to 0.689.0.6890885 2025-09-09 13:16:14 -04:00
test update tests 2025-09-09 13:14:50 -04:00
.gitignore Upstream changes 2024-12-03 21:48:04 -05:00
.gitmodules Initial Commit 2024-11-26 19:14:09 -05:00
.luaurc Update to 0.677.0.6770761, updated requires, polyfill, and binary format 2025-06-11 17:48:52 -04:00
default.project.json add wally manifest 2025-09-13 20:38:54 +01:00
LICENSE update copyright year in LICENSE 2025-09-10 02:23:37 -04:00
README.md Update README.md and Add test/README.md 2024-12-24 14:53:57 -05:00
wally.toml update package name and version 2026-02-07 11:04:43 -05:00
zune.toml Initial Commit 2024-11-26 19:14:09 -05:00

luau-roblox

A luau library to manipulate Roblox instances from place/model files, powered by Zune.

Usage

Setup the library, ideally with .luaurc.

Virtual DataModel

Using the Virtual DataModel is easier, but it has overhead. Equivalent to Lune's roblox module.

local roblox = require("@roblox");

local placeContents = ...; -- read the place file
local game = roblox.deserializePlace(placeContents);

-- do something with the game

local content = roblox.serializePlace(game);

DOM

Using the DOM over the Virtual DataModel is ideally faster, with zero overhead. The downside is that you have to manually handle the instances, parents, and references.

local roblox = require("@roblox");

local dom = roblox.dom;

local placeContents = ...; -- read the place file
local doc = dom.deserialize(placeContents);

-- do something with the doc

local content = dom.serialize(doc, "BINARY");

Information

DOM Supported:

  • Binary (.rbxl, .rbxm)
    • deserialization
    • serialization
  • XML (.rbxlx, .rbxmx)
    • deserialization
    • serialization

Warnings:

  • 64-bit integer data could not be represented fully due to luau's number limitations, the max precision is 2^53.

Goals:

  • High performance
  • Support most Runtimes with Luau(0.650+)
  • Up to date Roblox instances