Skip to main content

ImmediateIrisInstall

Runtime decorator: adds rt.iris, and optionally registers scheduler middleware so Iris shares the immediate tick.

preTick lazily calls Iris.Init(parent, false) so Iris does not hook Heartbeat. Gameplay systems declare widgets. postTick calls Iris.Internal._cycle().

If rt.irisParent is nil, Iris lives in a dedicated ScreenGui (ImmediateIrisHost) under PlayerGui: ResetOnSpawn = false so it survives death, and a high DisplayOrder so it draws over other UI. Windows are Frames in that host (UseScreenGUIs = false); Iris's own ScreenGuis would ignore the host and reset on spawn.

Set rt.irisParent to parent under a custom Gui instead. Read every preTick: if it changes, is destroyed, or goes nil, the Iris root is reparented (nil snaps back to the host). Iris has no public setter; this writes Internal.parentInstance and _rootInstance.Parent.

rt.iris is nil until Init has produced a parented root, and is cleared if Iris is Disabled, shut down, or the root is destroyed. Consumer systems should treat a non-nil rt.iris as drawable.

Client-only. Stacking this on a server scheduler is a no-op for Init/cycle.

Show raw api
{
    "functions": [],
    "properties": [],
    "types": [],
    "name": "ImmediateIrisInstall",
    "desc": "Runtime decorator: adds `rt.iris`, and optionally registers scheduler\nmiddleware so Iris shares the immediate tick.\n\npreTick lazily calls `Iris.Init(parent, false)` so Iris does not hook\nHeartbeat. Gameplay systems declare widgets. postTick calls\n`Iris.Internal._cycle()`.\n\nIf `rt.irisParent` is nil, Iris lives in a dedicated ScreenGui\n(`ImmediateIrisHost`) under PlayerGui: `ResetOnSpawn = false` so it\nsurvives death, and a high DisplayOrder so it draws over other UI.\nWindows are Frames in that host (`UseScreenGUIs = false`); Iris's own\nScreenGuis would ignore the host and reset on spawn.\n\nSet `rt.irisParent` to parent under a custom Gui instead. Read every\npreTick: if it changes, is destroyed, or goes nil, the Iris root is\nreparented (nil snaps back to the host). Iris has no public setter;\nthis writes Internal.parentInstance and `_rootInstance.Parent`.\n\n`rt.iris` is nil until Init has produced a parented root, and is\ncleared if Iris is Disabled, shut down, or the root is destroyed.\nConsumer systems should treat a non-nil `rt.iris` as drawable.\n\nClient-only. Stacking this on a server scheduler is a no-op for Init/cycle.",
    "source": {
        "line": 29,
        "path": "src/iris/src/Shared/Immediate/IrisImmediateInstall.lua"
    }
}