Features

Everything Luanode can do

We built Luanode for ourselves — Roblox indie devs tired of copy-pasting between editors. Here's what comes in the box.

Visual scripting

Build with blocks. Ship real Lua.

Luanode isn't a "kid-mode" wrapper that locks you in. Every node is backed by a real Lua construct — a function, an event, a method call — and the compiler emits the same Lua you'd type by hand.

🧩

50+ block types

Math, control flow, events, UI builders, animations, behaviour trees, dialogue, quests — all native blocks, not "free-text" escape hatches.

🌳

Real expression trees

Operator precedence, associativity, side effects — preserved. math.sin(x) * 0.15 round-trips losslessly, even after a save and reload.

🏗

Full constructor trees

Nested tables, record fields, computed keys, mixed array+record — every shape Roblox Lua supports.

🎯

Type-aware nodes

Drag the Color3 output into a NUMBER input and Luanode tells you. No silent coercion, no runtime surprises.

Roblox Studio integration

The plugin that finally feels native

Install once. It shows up as a toolbar inside Studio with five buttons. Every panel docks like it always belonged there.

📦

One-click install

The desktop app drops a .rbxmx into your Roblox Plugins folder. Restart Studio, you have it. No marketplace, no paid-plugin fees.

📐

Five toolbar buttons

LuaFlow opens the project bridge. Telemetry shows live metrics. Sync toggles the live-edit bridge. Import/Export moves projects in and out.

🛟

Graceful failure

If any plugin module fails to load, the rest stay up. The Output window tells you exactly which require crashed — no silent breakage.

Outliner with live two-way sync

A familiar Explorer-style tree on the desktop side, mirroring Roblox Studio in real time. Create a script here, it appears in Studio. Edit there, it lights up here.

Outliner — Live sync · 127.0.0.1:7777
▾ ServerScriptService
S Main
S Combat
F Systems
S Inventory
S Saving
▾ ReplicatedStorage
M Net
M Constants
▾ StarterGui
L MainMenu
L HUD
-- ServerScriptService.Combat (auto-saving…) local CombatService = {} function CombatService.damage(player, amount) local hum = player.Character and player.Character:FindFirstChildOfClass("Humanoid") if hum then hum.Health = hum.Health - amount end end return CombatService

Two-way, all the time

Type in either editor. Within ~1 second it lands in the other. No "click to save", no "import changes".

📂

Service-aware

Drop a script in StarterPlayerScripts — it becomes a LocalScript. Drop one in ReplicatedStorage — it becomes a ModuleScript. Conventions just work.

🔁

Reconnects automatically

Lost connection? Studio crashes? Plugin reloads? The next heartbeat picks up where you left off. No data loss, no orphan ops.

Runtime profiler

See what every script costs

Roblox Studio's profiler is a maze. Luanode's is a single panel: every script in your place, live memory, live execution time, error count, last error message.

Per-script execution time

Sorted hot-first. See which script is hogging the frame budget before your players feel it.

💾

Memory pressure

Heap delta attributed to the most-active script. Memory-leaky behaviours show up immediately.

📞

Call counts & yields

How many times has each function fired? How many task.waits? Useful for spotting "while true do" disasters.

🐛

Live error feed

Uncaught errors attributed to the right script with the latest stack snippet. No more "wait, which one threw?"

Under the hood

Engineered like a real compiler

We treat the visual-scripting layer like a programming language, because it is. Here's what that gets you.

Multi-stage compiler pipeline

Lua source → AST → typed IR → graph → emitted Lua. Every stage round-trips deterministically. Edit your Lua in Studio, it shows up as nodes; edit the nodes, it shows up as Lua.

Semantic IR (no string flattening)

Expressions, table constructors, assignments, closures, captures, returns — every one of them stays a structured tree from parse to emit. None of the "let's just stash the source as text" cop-outs that other visual scripting tools fall back to.

1000+ automated tests

Every pipeline stage has its own audit suite. Round-trip fuzzers, schema-fidelity guards, no-string-payload assertions. Releases are blocked on green audits — we don't ship if anything regresses.

Translation: if you do decide to outgrow visual scripting, Luanode's output is real Lua that your senior teammates won't laugh at. No "generated-code smell".

Ready to try it?

Luanode hasn't launched yet — but the waitlist is open. We'll email you the day the first build is ready, plus the discount waitlist members get on launch day.