Installation

One line, no dependencies, no files to download. Get a window on screen in under a minute.

Ember is a single Lua file. There is nothing to install, no folder structure to create, and no other library it depends on. You fetch it, you call it, you have a window.

Luau
local Ember = loadstring(game:HttpGet('https://rbx.lol/ember.lua'))()

That line works in any executor that supports loadstring and game:HttpGet — which is effectively all of them.

Paste this and run it

The snippet below is a complete, working script. Nothing has been left out and nothing needs configuring first.

Luau
local Ember = loadstring(game:HttpGet('https://rbx.lol/ember.lua'))()
 
local win = Ember.new({
    Title = "My Script",
    Subtitle = "v1.0",
})
 
local main = win:Section("Main", "house")
 
main:Toggle({
    Text = "Enabled",
    Default = true,
    Callback = function(on)
        print("toggled:", on)
    end,
})

Run it and you get a window with a sidebar, one section, and a working toggle. Press RightShift to hide and show it.

What you just made#

Three objects, and everything in Ember is built from them:

  • A windowEmber.new returns it. It owns the frame, the sidebar, the keybind and the animations.
  • A sectionwin:Section adds a tab to the sidebar and returns a page you put controls on.
  • A controlmain:Toggle adds a row to that page and returns a handle you can read and write later.

You will spend most of your time on the third one. There are thirteen controls, and they all follow the same shape.

Pinning a version#

https://rbx.lol/ember.lua always serves the current release. If you would rather your script never changes underneath you, host your own copy and point the HttpGet at that instead:

Luau
local Ember = loadstring(readfile("Ember.lua"))()

Loading it twice

By default, running the same script again replaces its previous window rather than adding a second one. That is almost always what you want while you are working — otherwise every re-run leaves another live window behind, each with its own keybind. If you do want two windows on screen at once, see ReplaceExisting.

Requirements#

RequirementNotes
loadstringTo run the library. Every executor has it.
game:HttpGetOnly for loading from a URL. Not needed if you readfile a local copy.
writefile / readfile / isfolderOptional. Only needed for saving settings; without them Ember still runs, it just does not persist.

Nothing else. No syn.request, no Drawing library, no assets to upload.

Where to go next#