nocturnal/ docs

start

script_key = "your-key-here"
loadstring(game:HttpGet("https://getnocturnal.cc/loader"))()

set the key before the loader line. it is read from the global.

script_silent = true

set before the loader to suppress all console output. off by default, because a silent loader that hung looks the same as one that worked.

keys

your key binds to one machine on first use. nothing to configure.

changing pc? reset the binding from your panel. resets are rate limited.

keys are stored hashed. a lost key is reissued, not recovered.

rightshift opens and closes it. drag the title bar to move it. the watermark, keybind list and centre panel drag separately.

right-click a keybind to cycle toggle / hold / always.

configs

saved as json in nocturnal/configs/. save, load and delete from the settings tab.

a config named autoload is applied on startup.

addons

a .luau file in nocturnal/addons/. load it from settings > addons. runs once, top to bottom, in its own coroutine. the file name is the addon name.

local tab = api:AddTab("example")
local box = tab:AddLeftGroupbox("demo")

box:AddToggle("enabled", {
    Text = "enabled",
    Default = false,
    Callback = function(v) api:Notify(tostring(v)) end,
})

api is a global. nothing to require.

api

api:AddTab

function api:AddTab(name: string): Tab

creates a tab, or returns the existing one if you already made it.

example:

local tab = api:AddTab("example")

api:GetTab

function api:GetTab(name: string): Tab?

returns a tab you created, or nil.

example:

local tab = api:GetTab("example")

api:OnUnload

function api:OnUnload(callback: () -> ()): nil

runs when your addon is unloaded. disconnect anything you connected here.

example:

local conn = game:GetService("RunService").Heartbeat:Connect(function() end)
api:OnUnload(function() conn:Disconnect() end)

api:GetFlag

function api:GetFlag(id: string): any

current value of one of your elements. ids are scoped to your addon, so two addons can both use enabled.

example:

if api:GetFlag("enabled") then end

api:Notify

function api:Notify(message: string, lifetime: number?): nil

sends a notification. lifetime is optional and defaults to 5 seconds.

example:

api:Notify("hello")
api:Notify("hello", 10)

tab:AddLeftGroupbox

function tab:AddLeftGroupbox(name: string): Groupbox
function tab:AddRightGroupbox(name: string): Groupbox
function tab:GetGroupbox(name: string): Groupbox?

a box on the left or right column of the tab. calling it twice with one name returns the same box.

example:

local box = api:AddTab("example"):AddLeftGroupbox("demo")

box:AddToggle

function box:AddToggle(id: string, opts: {
    Text: string?,
    Default: boolean?,
    Callback: ((value: boolean) -> ())?,
}): Element

a checkbox.

example:

box:AddToggle("enabled", {
    Text = "enabled",
    Default = false,
    Callback = function(v) print(v) end,
})

box:AddSlider

function box:AddSlider(id: string, opts: {
    Text: string?,
    Default: number?,
    Min: number?,
    Max: number?,
    Callback: ((value: number) -> ())?,
}): Element

a number slider.

example:

box:AddSlider("speed", { Text = "speed", Default = 25, Min = 0, Max = 100 })

box:AddDropdown

function box:AddDropdown(id: string, opts: {
    Text: string?,
    Values: { string },
    Default: string?,
    Callback: ((value: string) -> ())?,
}): Element

a list to pick from.

example:

box:AddDropdown("mode", { Values = { "one", "two" }, Default = "one" })

box:AddInput

function box:AddInput(id: string, opts: {
    Text: string?,
    Default: string?,
    Callback: ((value: string) -> ())?,
}): Element

a text box.

example:

box:AddInput("name", { Text = "name", Default = "" })

box:AddColorPicker

function box:AddColorPicker(id: string, opts: {
    Text: string?,
    Default: Color3?,
    Callback: ((color: Color3) -> ())?,
}): Element

a colour picker.

example:

box:AddColorPicker("tint", { Default = Color3.fromRGB(120, 200, 255) })

box:AddKeyPicker

function box:AddKeyPicker(id: string, opts: {
    Text: string?,
    Default: string?,
    Mode: ("Toggle" | "Hold" | "Always")?,
    Callback: ((active: boolean) -> ())?,
}): Element

a keybind.

example:

box:AddKeyPicker("hotkey", { Default = "G", Mode = "Toggle" })

box:AddButton

function box:AddButton(text: string, callback: () -> ()): Groupbox

a button. returns the box, so you can add several in a row.

example:

box:AddButton("say hi", function() api:Notify("hi") end)
   :AddButton("say bye", function() api:Notify("bye") end)

box:AddLabel

function box:AddLabel(text: string): Element
function box:AddDivider(): Element

a line of text, or a separator.

example:

box:AddLabel("some text")
box:AddDivider()

problems

nothing happens on execute. check the console. the loader says why it stopped.

attempt to call a nil value, line 1. your executor did not return a working loadstring or http function. use a different one.

key rejected on a new pc. reset the binding from your panel first.

an addon broke the menu. unload it from settings > addons. if the menu will not open, delete the file from nocturnal/addons/ and rejoin.

homediscordpanel