Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local OrionLib = loadstring(game:HttpGet(('https://raw.githubusercontent.com/shlexware/Orion/main/source')))()
- local Window = OrionLib:MakeWindow({Name = "Universal Hub by wutdahell510 on Roblox", HidePremium = false, SaveConfig = true, ConfigFolder = "SaveConfig"})
- -- Initialize global user database if it doesn't exist
- if not _G.users then
- _G.users = {}
- end
- local function isOwner()
- return game.Players.LocalPlayer.Name:lower() == "wutdahell510"
- end
- local function getUserRank(player)
- local playerName = typeof(player) == "string" and player or player.Name
- if isOwner() then
- return "Owner"
- elseif _G.users[playerName] then
- return _G.users[playerName].rank
- else
- return "No Rank"
- end
- end
- local function hasAccess(requiredRank)
- local playerRank = getUserRank(game.Players.LocalPlayer)
- return isOwner() or playerRank == requiredRank or (requiredRank == "Premium" and playerRank == "Content Creator")
- end
- -- Function to add new user or update existing user
- local function addOrUpdateUser(username, rank)
- if not isOwner() then
- _G.users[username] = {
- rank = rank or (_G.users[username] and _G.users[username].rank) or "No Rank",
- joinTime = _G.users[username] and _G.users[username].joinTime or os.date("%Y-%m-%d %H:%M:%S"),
- inDiscord = _G.users[username] and _G.users[username].inDiscord or false
- }
- end
- end
- -- Add current player to users when script is executed
- addOrUpdateUser(game.Players.LocalPlayer.Name)
- -- Function to check if a player is online
- local function isPlayerOnline(username)
- for _, player in pairs(game.Players:GetPlayers()) do
- if player.Name == username then
- return true
- end
- end
- return false
- end
- -- Main Tab
- local MainTab = Window:MakeTab({
- Name = "Main",
- Icon = "rbxassetid://4483345998",
- PremiumOnly = false
- })
- MainTab:AddButton({
- Name = "Show My Rank",
- Callback = function()
- local currentRank = getUserRank(game.Players.LocalPlayer)
- OrionLib:MakeNotification({
- Name = "Current Rank",
- Content = "Your current rank is: " .. currentRank,
- Image = "rbxassetid://4483345998",
- Time = 5
- })
- end
- })
- -- No Rank Tab
- local NoRankTab = Window:MakeTab({
- Name = "No Rank Scripts",
- Icon = "rbxassetid://4483345998",
- PremiumOnly = false
- })
- NoRankTab:AddButton({
- Name = "Anti-AFK",
- Callback = function()
- loadstring(game:HttpGet("https://raw.githubusercontent.com/NoTwistedHere/Roblox/main/AntiAFK.lua"))()
- OrionLib:MakeNotification({
- Name = "Anti-AFK",
- Content = "Anti-AFK script has been activated",
- Image = "rbxassetid://4483345998",
- Time = 5
- })
- end
- })
- NoRankTab:AddButton({
- Name = "RemoteSpy",
- Callback = function()
- loadstring(game:HttpGet("https://github.com/exxtremestuffs/SimpleSpySource/raw/master/SimpleSpy.lua"))()
- OrionLib:MakeNotification({
- Name = "RemoteSpy",
- Content = "RemoteSpy has been activated",
- Image = "rbxassetid://4483345998",
- Time = 5
- })
- end
- })
- -- Premium Tab
- local PremiumTab = Window:MakeTab({
- Name = "Premium Scripts",
- Icon = "rbxassetid://4483345998",
- PremiumOnly = false
- })
- PremiumTab:AddButton({
- Name = "AntiKick",
- Callback = function()
- if hasAccess("Premium") then
- loadstring(game:HttpGet("https://raw.githubusercontent.com/Exunys/Anti-Kick/main/Anti-Kick.lua"))()
- OrionLib:MakeNotification({
- Name = "AntiKick",
- Content = "AntiKick script has been activated",
- Image = "rbxassetid://4483345998",
- Time = 5
- })
- else
- OrionLib:MakeNotification({
- Name = "Access Denied",
- Content = "This feature is for Premium users only.",
- Image = "rbxassetid://4483345998",
- Time = 5
- })
- end
- end
- })
- -- Content Creator Tab
- local ContentCreatorTab = Window:MakeTab({
- Name = "Content Creator Scripts",
- Icon = "rbxassetid://4483345998",
- PremiumOnly = false
- })
- ContentCreatorTab:AddButton({
- Name = "Coming Soon...",
- Callback = function()
- OrionLib:MakeNotification({
- Name = "Coming Soon",
- Content = "Content Creator features are coming soon!",
- Image = "rbxassetid://4483345998",
- Time = 5
- })
- end
- })
- -- Databases Tab (Only for owner)
- if isOwner() then
- local DatabasesTab = Window:MakeTab({
- Name = "Databases",
- Icon = "rbxassetid://4483345998",
- PremiumOnly = false
- })
- DatabasesTab:AddTextbox({
- Name = "Add/Update User Rank",
- Default = "",
- TextDisappear = false,
- Callback = function(username)
- DatabasesTab:AddDropdown({
- Name = "Select Rank",
- Default = "No Rank",
- Options = {"No Rank", "Premium", "Content Creator"},
- Callback = function(rank)
- addOrUpdateUser(username, rank)
- OrionLib:MakeNotification({
- Name = "Rank Updated",
- Content = username .. " rank set to: " .. rank,
- Image = "rbxassetid://4483345998",
- Time = 5
- })
- end
- })
- end
- })
- -- Function to get all usernames
- local function getUsernames()
- local usernames = {}
- for username, _ in pairs(_G.users) do
- table.insert(usernames, username)
- end
- return usernames
- end
- -- Dropdown to select and view user information
- DatabasesTab:AddDropdown({
- Name = "Select User to View",
- Default = "",
- Options = getUsernames(),
- Callback = function(selectedUser)
- if _G.users[selectedUser] then
- local userInfo = _G.users[selectedUser]
- local onlineStatus = isPlayerOnline(selectedUser) and "🟢 Online" or "⚫ Offline"
- OrionLib:MakeNotification({
- Name = "User Information",
- Content = string.format("%s\nUser: %s\nRank: %s\nJoin Time: %s\nIn Discord: %s",
- onlineStatus, selectedUser, userInfo.rank, userInfo.joinTime, tostring(userInfo.inDiscord)),
- Image = "rbxassetid://4483345998",
- Time = 10
- })
- else
- OrionLib:MakeNotification({
- Name = "User Not Found",
- Content = "No information available for " .. selectedUser,
- Image = "rbxassetid://4483345998",
- Time = 5
- })
- end
- end
- })
- -- Button to view all users
- DatabasesTab:AddButton({
- Name = "View All Users",
- Callback = function()
- local allUsersInfo = "All Users:\n\n"
- for username, data in pairs(_G.users) do
- local onlineStatus = isPlayerOnline(username) and "🟢" or "⚫"
- allUsersInfo = allUsersInfo .. string.format("%s %s - Rank: %s\n", onlineStatus, username, data.rank)
- end
- OrionLib:MakeNotification({
- Name = "All Users",
- Content = allUsersInfo,
- Image = "rbxassetid://4483345998",
- Time = 15
- })
- end
- })
- -- Button to refresh user list
- DatabasesTab:AddButton({
- Name = "Refresh User List",
- Callback = function()
- DatabasesTab:UpdateDropdown("Select User to View", getUsernames(), "")
- OrionLib:MakeNotification({
- Name = "User List Refreshed",
- Content = "The user list has been updated.",
- Image = "rbxassetid://4483345998",
- Time = 5
- })
- end
- })
- end
- OrionLib:Init()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement