Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local player = game:GetService("Players").LocalPlayer
- local weapon_attr = player:WaitForChild("WeaponsAttributes")
- local humanoid = player.Character and player.Character:FindFirstChildOfClass("Humanoid")
- local RunService = game:GetService("RunService")
- local maceMod = weapon_attr:WaitForChild("Mace")
- local raygunMod = weapon_attr:WaitForChild("RayGun")
- local staffMod = weapon_attr:WaitForChild("Staff")
- local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
- local SaveManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/SaveManager.lua"))()
- local InterfaceManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/InterfaceManager.lua"))()
- local NotificationHolder = loadstring(game:HttpGet("https://raw.githubusercontent.com/BocusLuke/UI/main/STX/Module.Lua"))()
- local Notification = loadstring(game:HttpGet("https://raw.githubusercontent.com/BocusLuke/UI/main/STX/Client.Lua"))()
- _G.PlayerChams = false
- _G.RainbowLine = false
- _G.PlayerText = false
- _G.RainbowText = false
- -- Constants
- local FillColor = Color3.fromRGB(154, 215, 255)
- local DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
- local FillTransparency = 0.5
- local OutlineColor = Color3.fromRGB(0, 0, 0)
- local OutlineTransparency = 0.4
- local CoreGui = game:GetService("CoreGui")
- local Players = game:GetService("Players")
- local lp = Players.LocalPlayer
- local Storage = CoreGui:FindFirstChild("OmniShieldChams") or Instance.new("Folder", CoreGui)
- Storage.Name = "OmniShieldChams"
- local playerHighlights = {}
- local playerTexts = {}
- local connections = {}
- -- Generate Smooth Rainbow Color
- local function getRainbowColor()
- return Color3.fromHSV((tick() % 5) / 5, 1, 1)
- end
- -- Update Highlight Function
- local function updateHighlight(plr)
- local highlight = playerHighlights[plr.UserId]
- if not highlight then
- highlight = Instance.new("Highlight")
- highlight.Name = plr.Name
- highlight.FillColor = FillColor
- highlight.DepthMode = DepthMode
- highlight.FillTransparency = FillTransparency
- highlight.OutlineColor = OutlineColor
- highlight.OutlineTransparency = OutlineTransparency
- highlight.Parent = Storage
- playerHighlights[plr.UserId] = highlight
- end
- local function updateHighlightLoop()
- while highlight and highlight.Parent do
- local char = plr.Character
- if char then
- highlight.Adornee = char
- if _G.RainbowLine then
- highlight.OutlineColor = getRainbowColor()
- end
- end
- task.wait(0.5)
- end
- end
- task.spawn(updateHighlightLoop)
- end
- -- Update Text Label Function
- local function updateTextLabel(plr)
- local char = plr.Character
- if not char then return end
- local head = char:FindFirstChild("Head")
- if not head then return end
- local billboard = head:FindFirstChild("BillboardGui")
- if not billboard then
- billboard = Instance.new("BillboardGui")
- billboard.Name = "BillboardGui"
- billboard.Size = UDim2.new(0, 200, 0, 50)
- billboard.Adornee = head
- billboard.AlwaysOnTop = true
- billboard.StudsOffset = Vector3.new(0, 3, 0)
- billboard.Parent = head
- end
- local textLabel = billboard:FindFirstChild("TextLabel")
- if not textLabel then
- textLabel = Instance.new("TextLabel")
- textLabel.Name = "TextLabel"
- textLabel.Size = UDim2.new(1, 0, 1, 0)
- textLabel.BackgroundTransparency = 1
- textLabel.TextColor3 = Color3.new(1, 1, 1)
- textLabel.TextStrokeTransparency = 1
- textLabel.TextScaled = true
- textLabel.TextStrokeColor3 = Color3.new(0, 0, 0)
- textLabel.Parent = billboard
- playerTexts[plr.UserId] = textLabel
- end
- local function updateTextLabelLoop()
- while textLabel and textLabel.Parent do
- if plr.Character and plr.Character:FindFirstChild("Humanoid") then
- textLabel.Text = plr.Name .. "\nHealth: " .. math.ceil(plr.Character.Humanoid.Health)
- if _G.RainbowText then
- textLabel.TextColor3 = getRainbowColor()
- end
- end
- task.wait(0.5)
- end
- end
- task.spawn(updateTextLabelLoop)
- end
- -- Handle Player and Local Player Respawns
- local function onPlayerRespawn(plr)
- if _G.PlayerChams then
- updateHighlight(plr)
- end
- if _G.PlayerText then
- updateTextLabel(plr)
- end
- end
- local function onLocalPlayerRespawn()
- local localPlayerHighlight = playerHighlights[lp.UserId]
- if localPlayerHighlight then
- localPlayerHighlight:Destroy()
- playerHighlights[lp.UserId] = nil
- end
- if _G.PlayerChams then
- updateHighlight(lp)
- end
- end
- -- Toggle ESP and Text
- local function toggleESP(enabled)
- if enabled then
- for _, plr in ipairs(Players:GetPlayers()) do
- if plr ~= lp and not playerHighlights[plr.UserId] then
- updateHighlight(plr)
- end
- end
- if not connections["PlayerAdded"] then
- connections["PlayerAdded"] = Players.PlayerAdded:Connect(function(plr)
- if plr ~= lp and not playerHighlights[plr.UserId] then
- updateHighlight(plr)
- end
- end)
- end
- else
- for _, child in ipairs(Storage:GetChildren()) do
- if child:IsA("Highlight") then
- child:Destroy()
- playerHighlights[child.Name] = nil
- end
- end
- if connections["PlayerAdded"] then
- connections["PlayerAdded"]:Disconnect()
- connections["PlayerAdded"] = nil
- end
- end
- end
- local function togglePlayerText(enabled)
- _G.PlayerText = enabled
- if enabled then
- for _, plr in ipairs(Players:GetPlayers()) do
- if plr ~= lp and not playerTexts[plr.UserId] then
- updateTextLabel(plr)
- end
- end
- else
- for _, textLabel in pairs(playerTexts) do
- if textLabel and textLabel.Parent then
- textLabel.Parent:Destroy()
- end
- end
- playerTexts = {}
- end
- end
- -- Refresh ESP Settings
- local function refreshESP()
- toggleESP(_G.PlayerChams)
- togglePlayerText(_G.PlayerText)
- end
- -- Connection to Events
- Players.PlayerAdded:Connect(onPlayerRespawn)
- Players.PlayerRemoving:Connect(function(plr)
- local existingHighlight = playerHighlights[plr.UserId]
- if existingHighlight then
- existingHighlight:Destroy()
- playerHighlights[plr.UserId] = nil
- end
- if playerTexts[plr.UserId] then
- playerTexts[plr.UserId].Parent:Destroy()
- playerTexts[plr.UserId] = nil
- end
- end)
- lp.CharacterAdded:Connect(onLocalPlayerRespawn)
- -- Update Function for Dynamic Changes
- task.spawn(function()
- while true do
- refreshESP()
- task.wait(2)
- end
- end)
- -- Start periodic highlight update and initial setup
- task.spawn(function()
- while true do
- if _G.PlayerChams then
- for _, plr in ipairs(Players:GetPlayers()) do
- if plr ~= lp and not playerHighlights[plr.UserId] then
- updateHighlight(plr)
- end
- end
- end
- task.wait(2)
- end
- end)
- task.spawn(function()
- while true do
- if _G.PlayerText then
- for _, plr in ipairs(Players:GetPlayers()) do
- if plr ~= lp and not playerTexts[plr.UserId] then
- updateTextLabel(plr)
- end
- end
- end
- task.wait(2)
- end
- end)
- refreshESP()
- local Window = Fluent:CreateWindow({
- Title = "Spectral Hub (BBD5 EDITION)",
- SubTitle = " BTSTR",
- TabWidth = 160,
- Size = UDim2.fromOffset(580, 340),
- Acrylic = false,
- Theme = "Amethyst",
- MinimizeKey = Enum.KeyCode.LeftControl
- })
- local Tabs = {
- Main = Window:AddTab({ Title = "Main", Icon = "home" }),
- Player = Window:AddTab({ Title = "Player", Icon = "user" }),
- Esp = Window:AddTab({ Title = "Visual", Icon = "map-pin" }),
- Hitbox = Window:AddTab({ Title = "Hitbox", Icon = "target" }),
- Robots = Window:AddTab({ Title = "Robots", Icon = "bot" }),
- Settings = Window:AddTab({ Title = "Settings", Icon = "settings" })
- }
- Tabs.Main:AddParagraph({
- Title = "Welcome!",
- Content = "Welcome to the Spectral BTSTR\nThank You For Using Spectral Hub!"
- })
- Tabs.Main:AddParagraph({
- Title = "Devs: MurKilDev, BBD5",
- Content = ""
- })
- -- Player Tab
- local speed = 16
- local RunService = game:GetService("RunService")
- local Players = game:GetService("Players")
- local speaker = game:GetService("Players").LocalPlayer
- local Noclipping = nil
- local InfJp = Tabs.Player:AddToggle("InfJump", {Title = "Infinite Jump", Default = false})
- InfJp:OnChanged(function()
- getgenv().infj = InfJp.Value
- local player = game:GetService("Players").LocalPlayer
- local humanoid = player.Character and player.Character:FindFirstChildOfClass("Humanoid")
- if getgenv().infj and humanoid then
- _G.jpbypass = humanoid:GetPropertyChangedSignal("JumpPower"):Connect(function()
- humanoid.JumpPower = 50
- end)
- _G.jumpcheck = game:GetService("UserInputService").JumpRequest:Connect(function()
- if getgenv().infj then
- humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
- end
- end)
- else
- if _G.jpbypass then
- _G.jpbypass:Disconnect()
- _G.jpbypass = nil
- end
- if _G.jumpcheck then
- _G.jumpcheck:Disconnect()
- _G.jumpcheck = nil
- end
- end
- end)
- local InfJp = Tabs.Player:AddToggle("InfJump", {Title = "Infinite Jump", Default = false})
- InfJp:OnChanged(function(NewValue)
- getgenv().infj = NewValue
- if getgenv().infj then
- if not _G.jpbypass then
- _G.jpbypass = humanoid:GetPropertyChangedSignal("JumpPower"):Connect(function()
- humanoid.JumpPower = 50
- end)
- end
- if not _G.jumpcheck then
- _G.jumpcheck = game:GetService("UserInputService").JumpRequest:Connect(function()
- if getgenv().infj then
- humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
- end
- end)
- end
- else
- if _G.jpbypass then
- _G.jpbypass:Disconnect()
- _G.jpbypass = nil
- end
- if _G.jumpcheck then
- _G.jumpcheck:Disconnect()
- _G.jumpcheck = nil
- end
- end
- end)
- -- SpeedWalker WARNING: This is a BETA feature, it may not work properly
- local players = game:GetService("Players")
- local runService = game:GetService("RunService")
- getgenv().Speed = getgenv().Speed or 16 -- Default speed if not set
- getgenv().Enabled = getgenv().Enabled ~= nil and getgenv().Enabled or true -- Default enabled state if not set
- local function setWalkSpeed(character, speed)
- local humanoid = character:FindFirstChildOfClass("Humanoid")
- if humanoid then
- if humanoid.WalkSpeed ~= speed then
- humanoid.WalkSpeed = speed
- end
- end
- end
- local function onCharacterAdded(character)
- local humanoid = character:WaitForChild("Humanoid") -- Fixed missing parenthesis
- setWalkSpeed(character, getgenv().Speed)
- humanoid:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
- if getgenv().Enabled and humanoid.WalkSpeed ~= getgenv().Speed then
- humanoid.WalkSpeed = getgenv().Speed
- end
- end)
- end
- local localPlayer = players.LocalPlayer
- if localPlayer.Character then
- onCharacterAdded(localPlayer.Character)
- end
- localPlayer.CharacterAdded:Connect(onCharacterAdded)
- runService.Heartbeat:Connect(function()
- if getgenv().Enabled and localPlayer.Character then
- setWalkSpeed(localPlayer.Character, getgenv().Speed)
- end
- end)
- local WK = Tabs.Player:AddSlider("WalkSpeed", {
- Title = "Walk Speed",
- Description = "This changes your speed",
- Default = 16,
- Min = 16,
- Max = 52,
- Rounding = 1,
- Callback = function(SliderWalkSpeed)
- getgenv().Speed = SliderWalkSpeed
- end
- })
- local JumpHack = Tabs.Player:AddSlider("JumpPowerChanger", {
- Title = "Jump Power",
- Description = "Change Player Jump Power",
- Default = 50,
- Min = 50,
- Max = 100,
- Rounding = 1,
- Callback = function(jp)
- game.Players.LocalPlayer.Character.Humanoid.JumpPower = jp
- end
- })
- local GravityHack = Tabs.Player:AddSlider("GravityOfP", {
- Title = "Gravity",
- Description = "Change Gravity (Normal - 196.2)",
- Default = 196.2,
- Min = 0,
- Max = 196.2,
- Rounding = 1,
- Callback = function(grav)
- game.Workspace.Gravity = grav
- end
- })
- local OtherP = Tabs.Player:AddSection("Others")
- local NoCD = Tabs.Player:AddButton({
- Title = "No Cooldown (raygun, mace, staff)",
- Description = "No Cooldown on Weapons",
- Callback = function()
- raygunMod:SetAttribute("Cooldown", 0)
- maceMod:SetAttribute("Cooldown", 0)
- staffMod:SetAttribute("Cooldown", 0)
- end
- })
- local GetWeap = Tabs.Player:AddSection("Get Weapons (Beta)")
- local function GetWeapon(weaponName)
- local args = {
- [1] = "Weapons",
- [2] = weaponName
- }
- game:GetService("ReplicatedStorage").Remotes.Shop.EquipItem:InvokeServer(unpack(args))
- end
- local GetSword = Tabs.Player:AddButton({
- Title = "Get Sword",
- Description = "Add Sword to your Backpack",
- Callback = function()
- GetWeapon("Sword")
- end
- })
- local GetSpear = Tabs.Player:AddButton({
- Title = "Get Spear",
- Description = "Add Spear to your Backpack",
- Callback = function()
- GetWeapon("Spear")
- end
- })
- local GetCrossbow = Tabs.Player:AddButton({
- Title = "Get Crossbow",
- Description = "Add Crossbow to your Backpack",
- Callback = function()
- GetWeapon("Crossbow")
- end
- })
- local GetFlamethrower = Tabs.Player:AddButton({
- Title = "Get Flamethrower",
- Description = "Add Flamethrower to your Backpack",
- Callback = function()
- GetWeapon("Flamethrower")
- end
- })
- local GetMace = Tabs.Player:AddButton({
- Title = "Get Mace",
- Description = "Add Mace to your Backpack",
- Callback = function()
- GetWeapon("Mace")
- end
- })
- local GetStaff = Tabs.Player:AddButton({
- Title = "Get Staff",
- Description = "Add Staff to your Backpack",
- Callback = function()
- GetWeapon("Staff")
- end
- })
- local GetRayGun = Tabs.Player:AddButton({
- Title = "Get RayGun",
- Description = "Add RayGun to your Backpack",
- Callback = function()
- GetWeapon("RayGun")
- end
- })
- local GetRocketLauncher = Tabs.Player:AddButton({
- Title = "Get Rocket Launcher",
- Description = "Add Rocket Launcher to your Backpack",
- Callback = function()
- GetWeapon("RocketLauncher")
- end
- })
- --HITBOX
- -- Esp Tab
- -- Global Configuration
- Notification:Notify(
- {Title = "EspEn", Description = "BBD5 SCRIPT EDITON Loaded. (OPENSOURCE)"},
- {OutlineColor = Color3.fromRGB(97, 62, 167),Time = 10, Type = "default"}
- )
- local Toggle = Tabs.Esp:AddToggle("Esp", {Title = "ESP", Default = false })
- Toggle:OnChanged(function(Value)
- _G.PlayerChams = Value
- end)
- local Toggle = Tabs.Esp:AddToggle("Raindbow", {Title = "Rainbow Lines", Default = false })
- Toggle:OnChanged(function(Value)
- _G.RainbowLine = Value
- end)
- local Toggle = Tabs.Esp:AddToggle("Text", {Title = "Users Text", Default = false })
- Toggle:OnChanged(function(Value)
- _G.PlayerText = Value
- end)
- local Toggle = Tabs.Esp:AddToggle("RainbowT", {Title = "Rainbow Text", Default = false })
- Toggle:OnChanged(function(Value)
- _G.RainbowText = Value
- end)
- --HITBOX
- _G.HEnabled = false
- _G.PartSize = Vector3.new(5, 5, 5)
- _G.Transparency = 0.5
- _G.Color = Color3.new(1, 1, 1)
- _G.Update = 5
- local player = game.Players.LocalPlayer
- local function resizePart(part)
- if part then
- part.Size = _G.PartSize
- part.Transparency = _G.Transparency
- if part:IsA("BasePart") then
- part.Color = _G.Color
- end
- end
- end
- local function shouldResize(part)
- return part and (part.Size ~= _G.PartSize or part.Color ~= _G.Color)
- end
- local function updateHitboxes()
- for _, v in ipairs(game.Players:GetPlayers()) do
- if v ~= player and v.Character then
- local rootPart = v.Character:FindFirstChild("HumanoidRootPart")
- if shouldResize(rootPart) then
- resizePart(rootPart)
- end
- end
- end
- end
- -- UI Integration
- local Toggle = Tabs.Hitbox:AddToggle("Hitbox", {Title = "Hitbox", Default = false })
- Toggle:OnChanged(function()
- _G.HEnabled = Toggle.Value
- end)
- local Slider = Tabs.Hitbox:AddSlider("PartSize", {
- Title = "Part Size",
- Description = "Adjust the size of the part",
- Default = 5,
- Min = 0.5,
- Max = 50,
- Rounding = 1,
- Callback = function(Value)
- _G.PartSize = Vector3.new(Value, Value, Value)
- end
- })
- local Slider = Tabs.Hitbox:AddSlider("HitBoxUpdator", {
- Title = "Update hitbox(sec)",
- Description = "When hitbox will update parts",
- Default = 5,
- Min = 1,
- Max = 20,
- Rounding = 1,
- Callback = function(Value)
- _G.Update = Value
- end
- })
- local Colorpicker = Tabs.Hitbox:AddColorpicker("HitboxColor", {
- Title = "Hitbox Color",
- Default = Color3.fromRGB(96, 205, 255)
- })
- Colorpicker:OnChanged(function()
- _G.Color = Colorpicker.Value
- end)
- -- Robots Tab
- local function createButton()
- local ScreenGui = Instance.new("ScreenGui")
- ScreenGui.Name = "ScreenGui"
- ScreenGui.Parent = player:WaitForChild("PlayerGui")
- ScreenGui.ResetOnSpawn = false
- local Toggle = Instance.new("TextButton")
- Toggle.Name = "Toggle"
- Toggle.Parent = ScreenGui
- Toggle.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
- Toggle.Position = UDim2.new(0.5, -90, 0.5, 60)
- Toggle.Size = UDim2.new(0, 90, 0, 38)
- Toggle.Font = Enum.Font.SourceSans
- Toggle.Text = "Explode!"
- Toggle.TextColor3 = Color3.fromRGB(248, 248, 248)
- Toggle.TextSize = 28.000
- Toggle.Draggable = false
- local Corner = Instance.new("UICorner")
- Corner.Name = "Corner"
- Corner.Parent = Toggle
- Toggle.MouseButton1Click:Connect(function()
- game:GetService("ReplicatedStorage").Remotes.Robot.LightFuse:InvokeServer()
- wait(0.5)
- game:GetService("ReplicatedStorage").Remotes.Robot.Explode:InvokeServer()
- end)
- end
- local function removeButton()
- local screenGui = player:FindFirstChild("PlayerGui"):FindFirstChild("ScreenGui")
- if screenGui then
- screenGui:Destroy()
- end
- end
- local function updateButton(toggleState)
- if toggleState then
- createButton()
- else
- removeButton()
- end
- end
- --
- local ChangeRobots = Tabs.Robots:AddSection("Client Robot")
- local Toggle = Tabs.Robots:AddToggle("InstExplode(Button)", {Title = "Will be shown as Robot", Default = false})
- Toggle:OnChanged(function()
- updateButton(Toggle.Value)
- end)
- local function SpawnAsRobot(robot)
- local args = {
- [1] = game:GetService("ReplicatedStorage").Assets.Robots[robot]
- }
- game:GetService("ReplicatedStorage").Remotes.Robot.Spawn:FireServer(unpack(args))
- end
- local ChangeRobots = Tabs.Robots:AddSection("Change Robots")
- local DefaultRobot = Tabs.Robots:AddButton({
- Title = "Default",
- Description = "Change Robot to Default",
- Callback = function()
- SpawnAsRobot("Default")
- end
- })
- local SkirmisherRobot = Tabs.Robots:AddButton({
- Title = "Skirmisher",
- Description = "Change Robot to Skirmisher",
- Callback = function()
- SpawnAsRobot("Skirmisher")
- end
- })
- local JumperRobot = Tabs.Robots:AddButton({
- Title = "Jumper",
- Description = "Change Robot to Jumper",
- Callback = function()
- SpawnAsRobot("Jumper")
- end
- })
- local MarksmanRobot = Tabs.Robots:AddButton({
- Title = "Marksman",
- Description = "Change Robot to Marksman",
- Callback = function()
- SpawnAsRobot("Marksman")
- end
- })
- local TankRobot = Tabs.Robots:AddButton({
- Title = "Tank",
- Description = "Change Robot to Tank",
- Callback = function()
- SpawnAsRobot("Tank")
- end
- })
- local GhostRobot = Tabs.Robots:AddButton({
- Title = "Ghost",
- Description = "Change Robot to Ghost",
- Callback = function()
- SpawnAsRobot("Ghost")
- end
- })
- local SaboteurRobot = Tabs.Robots:AddButton({
- Title = "Saboteur",
- Description = "Change Robot to Saboteur",
- Callback = function()
- SpawnAsRobot("Saboteur")
- end
- })
- -- Addons
- InterfaceManager:SetLibrary(Fluent)
- InterfaceManager:SetFolder("FluentScriptHub")
- InterfaceManager:BuildInterfaceSection(Tabs.Settings)
- SaveManager:LoadAutoloadConfig()
- Window:SelectTab(3)
- player:GetPropertyChangedSignal("Team"):Connect(function()
- if player.Team and player.Team.Name == "Robots" then
- updateButton(Toggle.Value)
- elseif player.Team and player.Team.Name == "Humans" then
- removeButton()
- end
- end)
- while true do
- if _G.HEnabled then
- updateHitboxes()
- end
- wait(_G.Update)
- end
- refreshESP()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement