Export to Roblox
AxoGeo exports Roblox natively. You get an .rbxmx model and a generated
Luau runtime that keeps driving it — so the parameters you built the asset with
are still there, as live Instance Attributes, after it lands in your game.
No Blender. No format conversion.
1. Turn on Mesh & Image APIs (once per experience)
In Studio: Game Settings → Security → Allow Mesh & Image APIs → On.
Do this first. Without it your meshes render as a pink and blue checkered placeholder, and it looks like the export failed when it did not. You only need to do it once per experience.
2. Export from AxoGeo
Open the Export dialog and choose Roblox (.rbxmx).
Before you download, the dialog runs the real exporter and shows you any warnings it produced — things like a node that has no Roblox equivalent yet, or a material that will be approximated on this target. Read them. They are the same warnings you would otherwise discover in Studio.
Leave animation on if your graph is animated; turn it off to export a statue of the current frame.
3. Bring it into Studio
Drag the .rbxmx into the Studio viewport, or right-click Workspace →
Insert from File and pick it.
The model arrives with its script inside. Geometry builds once when the script initialises — so re-triggering an effect later costs nothing, and the parts only build inside Workspace.
4. Tune it live
Select the model and look at the Attributes section at the bottom of the Properties panel. Every parameter you exposed in the graph is there.
Change one while the game is running. The runtime re-reads its attributes every frame, so a radius, a colour, a rate or a count updates immediately — no re-export, no going back to the browser.
This is the part worth playing with. It is the difference between shipping a mesh and shipping an asset.
5. Drive it from your game
Attributes are the API. Anything your code can set, the asset responds to:
local effect = workspace.MyEffect
effect:SetAttribute("Glow", 2.5)
effect:SetAttribute("Radius", 12)
And because every part composes onto the model's root frame each frame rather
than writing absolute world coordinates, one PivotTo moves the whole thing:
effect:PivotTo(CFrame.new(target.Position))
Good to know
- Loud, partial failure — each set builds inside its own
pcalland the script reports how many succeeded. A broken piece gives you the rest plus a line saying what went wrong, instead of an empty Workspace. - The parts are client-local — server code cannot reach the generated parts directly. Drive them through Attributes on the model instead.
- Triangle budget — the Decimation node dials a mesh down before you export, in the browser.
- Materials are approximated — Roblox has no emissive channel, so glow is a tint-and-Neon approximation. The Roblox page has the full capability table, including what is partial and why.
Next
Another engine Export to Godot →