local OrionLib = loadstring(game:HttpGet(('https://[Log in to view URL]')))()

local Window = OrionLib:MakeWindow({
    Name = "Rodan Hub V1",
    HidePremium = false,
    SaveConfig = true,
    ConfigFolder = "RodanHub"
})

local Players = game:GetService("Players")
local MarketplaceService = game:GetService("MarketplaceService")
local HttpService = game:GetService("HttpService")
local Player = Players.LocalPlayer

-- GamePass Details
local GamePassID = 1004121552 -- Replace with your GamePass ID
local ownsGamePass = false

-- Key System Details
local KeyStorage = {} -- Placeholder key storage (use your backend service in a live system)
local KeyPriceRobux = 1
local DiscordInviteLink = "https://[Log in to view URL]" -- Replace with your Discord link

-- Check GamePass Ownership
local success, result = pcall(function()
    return MarketplaceService:UserOwnsGamePassAsync(Player.UserId, GamePassID)
end)

if success and result then
    ownsGamePass = true
end

-- Key Validation Function
local function validateKey(key)
    -- Placeholder validation logic (replace with actual server/API check)
    return KeyStorage[key] and KeyStorage[key].expires > os.time()
end

-- Save Key Function
local function saveKey(key)
    KeyStorage[key] = {
        expires = os.time() + (3 * 24 * 60 * 60), -- 3 days from now
        owner = Player.UserId
    }
end

-- Prompt for a Key
local function promptForKey()
    local keyInput
    OrionLib:MakeNotification({
        Name = "Key Required",
        Content = "Enter your access key to use Rodan Hub.",
        Image = "rbxassetid://4483345998",
        Time = 5
    })
    
    OrionLib:Prompt({
        Title = "Key System",
        Text = "Enter your key:",
        PlaceholderText = "Enter your key here",
        DefaultText = "",
        Callback = function(input)
            keyInput = input
        end
    })
    
    if keyInput and validateKey(keyInput) then
        OrionLib:MakeNotification({
            Name = "Access Granted",
            Content = "Your key is valid. Enjoy!",
            Image = "rbxassetid://4483345998",
            Time = 5
        })
    else
        OrionLib:MakeNotification({
            Name = "Invalid Key",
            Content = "Your key is invalid or expired. Please renew.",
            Image = "rbxassetid://4483345998",
            Time = 5
        })
        
        -- Offer options to renew
        OrionLib:Prompt({
            Title = "Key Expired",
            Text = "Renew your key through Discord or pay 1 Robux for a new one.",
            PlaceholderText = "Choose an option",
            Options = {"Get Key from Discord", "Pay 1 Robux"},
            Callback = function(choice)
                if choice == "Get Key from Discord" then
                    setclipboard(DiscordInviteLink)
                    OrionLib:MakeNotification({
                        Name = "Discord Link Copied",
                        Content = "The Discord invite link has been copied to your clipboard.",
                        Image = "rbxassetid://4483345998",
                        Time = 5
                    })
                elseif choice == "Pay 1 Robux" then
                    MarketplaceService:PromptProductPurchase(Player, KeyPriceRobux)
                end
            end
        })
    end
end

-- Check Key at Start
promptForKey()

-- Game Tabs
local BloxFruitsTab = Window:MakeTab({
    Name = "Blox Fruits",
    Icon = "rbxassetid://4483345998",
    PremiumOnly = false
})

local Section = BloxFruitsTab:AddSection({
    Name = "Blox Fruits"
})

BloxFruitsTab:AddButton({
    Name = "Redz Hub",
    Callback = function()
        loadstring(game:HttpGet("https://[Log in to view URL]"))()
        print("executed")
    end    
})

-- Premium Tab Logic
local PremiumTab = Window:MakeTab({
    Name = "Premium",
    Icon = "rbxassetid://4483345998",
    PremiumOnly = false
})

if ownsGamePass then
    local Section = PremiumTab:AddSection({
        Name = "Premium Features"
    })

    PremiumTab:AddButton({
        Name = "Exclusive Feature",
        Callback = function()
            print("Premium Feature Executed")
        end    
    })
else
    PremiumTab:AddSection({
        Name = "Premium Access"
    })

    PremiumTab:AddButton({
        Name = "Purchase Premium Access",
        Callback = function()
            MarketplaceService:PromptGamePassPurchase(Player, GamePassID)
        end
    })

    PremiumTab:AddSection({
        Name = "You need to purchase the Premium GamePass to unlock features."
    })
end

OrionLib:Init()

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: