Skip to main content

Overview

Starting with Build 1.74, Rayfield automatically loads its internal UI images from an external cache — no Roblox asset IDs involved. That alone makes a difference. Secure mode takes it further. It strips out every remaining reference that anti-cheats could use to identify your script:
  • Icons. Lucide names and rbxassetid:// values are removed at runtime.
  • Key system UI. The key prompt loads a detectable model, so it’s blocked entirely.
  • Default model ID. You’re warned if you haven’t set a custom asset ID.
The result: with secure mode on and a custom asset ID set, nothing traces back to Rayfield.

Get started

Set both flags before loading Rayfield:
getgenv().RAYFIELD_SECURE = true
getgenv().RAYFIELD_ASSET_ID = 123456789 -- your re-uploaded model

local Rayfield = loadstring(game:HttpGet("https://sirius.menu/rayfield"))()
If you skip RAYFIELD_ASSET_ID, Rayfield still works — but the default model ID remains detectable. See Anti-Detection for how to upload your own copy.

Icons

In secure mode, Lucide icon names and Roblox image IDs are blocked. They resolve to blank. Use getcustomasset() instead — write your images to the executor filesystem and pass the path:
-- Blocked in secure mode:
Tab:CreateLabel("Hello", "alert-circle")
Tab:CreateLabel("Hello", 12345678)

-- Works in every mode:
Tab:CreateLabel("Hello", getcustomasset("my-icons/alert.png"))
This applies everywhere icons are accepted:
  • CreateWindow({ Icon = ... })
  • CreateTab(Name, Icon)
  • CreateLabel(Text, Icon)
  • LabelValue:Set(Text, Icon)
  • Rayfield:Notify({ Image = ... })

Key system

The key system UI requires a Roblox model to render. In secure mode, that model is never loaded.
  • If the user already has a saved key from a previous session, everything works as expected.
  • If there’s no saved key, the script is blocked. The key prompt can’t be shown.
Secure mode doesn’t bypass the key system — it makes it stricter. Users without a saved key are blocked entirely. If you use KeySystem = true, make sure users enter their key at least once without secure mode first.

Executor requirements

Custom icons with getcustomasset() depend on the executor supporting:
  • getcustomasset
  • writefile / isfile / makefolder / isfolder
If these aren’t available, a notification appears and some icons won’t render.

Example

A complete setup with secure mode, a custom asset ID, and custom icons:
getgenv().RAYFIELD_SECURE = true
getgenv().RAYFIELD_ASSET_ID = 123456789

local Rayfield = loadstring(game:HttpGet("https://sirius.menu/rayfield"))()

local Window = Rayfield:CreateWindow({
    Name = "My Script",
    Icon = getcustomasset("my-icons/icon.png"),
})

local Tab = Window:CreateTab("Main", getcustomasset("my-icons/tab.png"))
Tab:CreateLabel("Status", getcustomasset("my-icons/status.png"))

Rayfield:Notify({
    Title = "Loaded",
    Content = "Script is ready",
    Image = getcustomasset("my-icons/notif.png"),
    Duration = 5,
})

Flags

FlagTypeDescription
RAYFIELD_SECUREbooleanEnables secure mode
RAYFIELD_ASSET_IDnumberCustom asset ID for your copy of the Rayfield model

At a glance

FeatureNormal (1.74+)Secure mode
Internal UI imagesExternal cacheExternal cache
Lucide iconsSupportedBlocked
Roblox image ID iconsSupportedBlocked
getcustomasset() iconsSupportedSupported
Key systemFull UISaved key only
Default model ID warningNoYes