Sirius Developer Suite

website·Indexed 31 days ago

https://docs.sirius.menu/

Documentation and guides for Sirius products, including the RoScripts API and the Rayfield Interface Suite for Roblox. It covers Rayfield (2022) and Rayfield Gen2, featuring tools for creating windows, tabs, and UI elements such as buttons, sliders, and toggles, as well as advanced features like secure mode for anti-cheat evasion, localization, and uptime monitoring via Sentivel heartbeat.

Tokens
27.1K
Snippets
143
Records
195
Agent score
57%

What's inside Sirius Developer Suite

  1. Overview of the RoScripts API

    The RoScripts API is a fast, open, read-only REST API used to access the RoScripts catalogue of Roblox scripts. It allows developers to integrate search, filters, trending scripts, creator profiles, and per-game browsing into script hubs, executors, or websites. The API is open and does not require an API key to start, although optional keys can be used to increase rate limits and page sizes.
  2. Overview of Sirius Developer Suite products

    The Sirius Developer Suite provides documentation and guides for several Roblox-related development tools:

    • Rayfield (2022): A widely used interface suite for Roblox.
    • Rayfield Gen2: A redesigned, next-generation version of the Rayfield interface suite.
    • RoScripts API: An API for script development.
  3. Overview of Rayfield (2022) UI Library

    Rayfield (2022) is an open-source, production-ready UI library for Roblox. It provides a complete set of UI primitives including windows, tabs, elements, notifications, and themes, allowing developers to create polished interfaces for their scripts without building them from scratch. Built-in features include a key system, Discord auto-join, notifications, and configuration saving.
  4. Understand RoScripts API authentication tiers

    The RoScripts API is open by default. You can make requests anonymously (rate-limited by IP) or use an optional API key to increase rate limits and page-size caps.

    • Anonymous: No key required. max page size is capped at 20.
    • Free key: Created in account settings. max page size is up to 100.
    • Partner: High-volume access via contact. max page size is up to 100.

    Note: If an invalid or revoked key is provided, the API does not return a 401 error; instead, it gracefully degrades the request to the Anonymous tier limits.

  5. Rayfield Gen2 Feature Overview

    Rayfield Gen2 includes several core capabilities for Roblox script developers:

    • Secure Mode: Because the UI is built in code without marketplace models, it is designed to be undetectable by anti-cheat fingerprinting.
    • Automatic Saving: By passing a configuration table, values persist and restore their original types across sessions without boilerplate code.
    • Runtime Theming: Supports six built-in themes or custom themes that can be swapped live with tweened color transitions.
    • Localization: Labels can be translated at runtime using a table or a custom resolver.
  6. Display script quality and trust signals

    Surface the following fields to help users make informed decisions about which scripts to run:

    • verified: Display as a verified-creator badge.
    • key: Display a "key system" warning before execution.
    • patched: Display a "may be patched" flag.
    • scriptType: "paid": Provide a price or marketplace link (raw source is unavailable).
    • score, likeCount, views: Use for sorting and providing social proof.
  7. Create and configure a Progress bar

    The Progress element is a read-only bar that visualizes how far a value sits within a specified range. It is read-only, meaning it does not carry a flag or save data. By default, it displays the progress as a percentage unless a custom text or format function is provided.
    -- Standard progress bar
    local download = tab:CreateProgress({
        name = "Download",
        range = { 0, 100 },
        value = 35,
    })
    
    -- Progress bar with segments (stages)
    tab:CreateProgress({ name = "Setup", steps = 5, value = 2 }) -- reads "2/5"
    
    -- Indeterminate progress bar (sweeping animation)
    local syncing = tab:CreateProgress({ name = "Syncing", indeterminate = true })
  8. Use Lucide icons in Rayfield elements

    Rayfield supports Lucide icons. Instead of a Roblox image ID, you can pass the name of a Lucide icon as a string. Note that not all Lucide icons are supported; refer to the compiled list provided by Latte Softworks.

    Security Warning: Lucide icons and Roblox image IDs are detectable by game anti-cheats. For undetectable scripts, use getcustomasset() (see Secure Mode documentation).

    local Label = Tab:CreateLabel("Label Example", "rewind")
  9. Implement page-based pagination for simple result sets

    Use page-based pagination for basic navigation or when you need to display 'Page X of Y'. This method uses page and max query parameters. Note that max is capped at 20 for anonymous callers and 100 for authenticated callers. The meta object in the response provides total, totalPages, and nextPage (which is null on the last page) to determine when to stop.
    curl "https://api.roscripts.io/v1/scripts?page=2&max=50&sortBy=views"
  10. Create a main window with Rayfield

    Rayfield:CreateWindow() is the primary entry point for the UI. It should be called once after the library is loaded to initialize the main interface window.
    local Window = Rayfield:CreateWindow({
       Name = "Rayfield Example Window",
       Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default).
       LoadingTitle = "Rayfield Interface Suite",
       LoadingSubtitle = "by Sirius",
       ShowText = "Rayfield", -- for mobile users to unhide Rayfield
       Theme = "Default",
       ToggleUIKeybind = "K", -- The keybind to toggle the UI visibility (string like "K" or Enum.KeyCode)
       DisableRayfieldPrompts = false,
       DisableBuildWarnings = false,
       ConfigurationSaving = {
          Enabled = true,
          FolderName = nil, -- Custom folder for your hub/game
          FileName = "Big Hub"
       },
       Discord = {
          Enabled = false, 
          Invite = "noinvitelink", -- Discord invite code without discord.gg/
          RememberJoins = true
       },
       KeySystem = false, 
       KeySettings = {
          Title = "Untitled",
          Subtitle = "Key System",
          Note = "No method of obtaining the key is provided",
          FileName = "Key",
          SaveKey = true, 
          GrabKeyFromSite = false, 
          Key = {"Hello"} 
       }
    })
  11. Create and configure a Console element

    The Console is a monospaced block used for live log output or displaying code. It has a fixed height and scrolls internally to prevent pushing other page elements down. By setting follow = true, the console behaves like a standard log, pinning new lines to the bottom and rolling off the oldest lines when the maxLines limit is reached.
    local console = tab:CreateConsole({
        name = "Console",
        height = 130,
        follow = true,
        maxLines = 200,
    })
    
    console:Append("player joined")
  12. Avoid errors when fetching raw script sources

    The /raw endpoint only serves source for free, keyless scripts. Requesting source for paid scripts returns 402 (payment_required) and for key-system scripts returns 403 (forbidden). To avoid these errors, verify that the script is servable before making the request by checking if rawUrl is not null, or by ensuring scriptType === "free" and key === false.
    // Example 402 Paid Script Error
    {
      "error": {
        "code": "payment_required",
        "message": "This is a paid script; source is not available via the API.",
        "details": { "marketplaceUrl": "https://…" }
      }
    }
    
    // Example 403 Key System Error
    {
      "error": {
        "code": "forbidden",
        "message": "This script uses a key system; source is not available via the API.",
        "details": { "keyLink": "https://…" }
      }
    }