-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local InputService = game:GetService('UserInputService'); local TextService = game:GetService('TextService'); local CoreGui = game:GetService('CoreGui'); local Teams = game:GetService('Teams'); local Players = game:GetService('Players'); local RunService = game:GetService('RunService') local TweenService = game:GetService('TweenService'); local Lighting = game:GetService('Lighting'); local RenderStepped = RunService.RenderStepped; local LocalPlayer = Players.LocalPlayer; local Mouse = LocalPlayer:GetMouse(); local ProtectGui = protectgui or (syn and syn.protect_gui) or (function() end); local ScreenGui = Instance.new('ScreenGui'); ProtectGui(ScreenGui); ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Global; ScreenGui.Parent = CoreGui; local Toggles = {}; local Options = {}; getgenv().Toggles = Toggles; getgenv().Options = Options; local Library = { Registry = {}; RegistryMap = {}; HudRegistry = {}; FontColor = Color3.fromRGB(255, 255, 255); MainColor = Color3.fromRGB(28, 28, 28); BackgroundColor = Color3.fromRGB(20, 20, 20); AccentColor = Color3.fromRGB(0, 85, 255); OutlineColor = Color3.fromRGB(50, 50, 50); RiskColor = Color3.fromRGB(255, 50, 50), Black = Color3.new(0, 0, 0); Font = Enum.Font.Code, FontSize = 14, OpenedFrames = {}; DependencyBoxes = {}; Signals = {}; ScreenGui = ScreenGui; Toggled = false; WireframeDrag = true; UseBlur = false; BlurSize = 15; KeybindMode = 'All'; NotifyConfig = { Alignment = 'Left'; BarSide = 'Left'; PositionX = 0; PositionY = 40; }; }; Library.KeyPickerList = {}; Library.BlurEffect = Instance.new("BlurEffect") Library.BlurEffect.Name = "LinoriaBlur" Library.BlurEffect.Size = 0 Library.BlurEffect.Enabled = false pcall(function() Library.BlurEffect.Parent = Lighting end) function Library:UpdateBlur() if Library.UseBlur then if Library.Toggled then Library.BlurEffect.Enabled = true TweenService:Create(Library.BlurEffect, TweenInfo.new(0.2, Enum.EasingStyle.Linear), {Size = Library.BlurSize}):Play() end else local tween = TweenService:Create(Library.BlurEffect, TweenInfo.new(0.2, Enum.EasingStyle.Linear), {Size = 0}) tween:Play() task.delay(0.2, function() if not Library.UseBlur then Library.BlurEffect.Enabled = false end end) end end function Library:SetFontSize(Size) Library.FontSize = Size for _, descendant in pairs(ScreenGui:GetDescendants()) do if descendant:IsA("TextLabel") or descendant:IsA("TextBox") or descendant:IsA("TextButton") then local offset = descendant:GetAttribute("FontSizeOffset") if offset then descendant.TextSize = Size + offset end end end local mobileUI = CoreGui:FindFirstChild("LinoriaMobileUI") if mobileUI then for _, descendant in pairs(mobileUI:GetDescendants()) do if descendant:IsA("TextLabel") or descendant:IsA("TextBox") or descendant:IsA("TextButton") then local offset = descendant:GetAttribute("FontSizeOffset") if offset then descendant.TextSize = Size + offset end end end end end local RainbowStep = 0 local Hue = 0 table.insert(Library.Signals, RenderStepped:Connect(function(Delta) RainbowStep = RainbowStep + Delta if RainbowStep >= (1 / 60) then RainbowStep = 0 Hue = Hue + (1 / 400); if Hue > 1 then Hue = 0; end; Library.CurrentRainbowHue = Hue; Library.CurrentRainbowColor = Color3.fromHSV(Hue, 0.8, 1); end end)) local function GetPlayersString() local PlayerList = Players:GetPlayers(); for i = 1, #PlayerList do PlayerList[i] = PlayerList[i].Name; end; table.sort(PlayerList, function(str1, str2) return str1 < str2 end); return PlayerList; end; local function GetTeamsString() local TeamList = Teams:GetTeams(); for i = 1, #TeamList do TeamList[i] = TeamList[i].Name; end; table.sort(TeamList, function(str1, str2) return str1 < str2 end); return TeamList; end; function Library:SafeCallback(f, ...) if (not f) then return; end; if not Library.NotifyOnError then return f(...); end; local success, event = pcall(f, ...); if not success then local _, i = event:find(":%d+: "); if not i then return Library:Notify(event); end; return Library:Notify(event:sub(i + 1), 3); end; end; function Library:AttemptSave() if Library.SaveManager then Library.SaveManager:Save(); end; end; function Library:Create(Class, Properties) local _Instance = Class; if type(Class) == 'string' then _Instance = Instance.new(Class); end; for Property, Value in next, Properties do _Instance[Property] = Value; end; if _Instance:IsA("TextLabel") or _Instance:IsA("TextBox") or _Instance:IsA("TextButton") then if Properties.TextSize then _Instance:SetAttribute("FontSizeOffset", Properties.TextSize - Library.FontSize) else _Instance:SetAttribute("FontSizeOffset", 0) end end return _Instance; end; function Library:ApplyTextStroke(Inst) Inst.TextStrokeTransparency = 1; Library:Create('UIStroke', { Color = Color3.new(0, 0, 0); Thickness = 1; LineJoinMode = Enum.LineJoinMode.Miter; Parent = Inst; }); end; function Library:ApplyGlow(Inst) end; function Library:CreateLabel(Properties, IsHud) local _Instance = Library:Create('TextLabel', { BackgroundTransparency = 1; Font = Library.Font; TextColor3 = Library.FontColor; TextSize = Library.FontSize + 2; TextStrokeTransparency = 0; }); Library:ApplyTextStroke(_Instance); Library:AddToRegistry(_Instance, { TextColor3 = 'FontColor'; }, IsHud); return Library:Create(_Instance, Properties); end; function Library:MakeDraggable(Instance, Cutoff, IsWindow) Instance.Active = true; Instance.InputBegan:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then local StartPos = Instance.Position local DragStart = Input.Position if (DragStart.Y - Instance.AbsolutePosition.Y) > (Cutoff or 40) then return end local Dragging = true local HasMoved = false local Wireframe = nil local ChangedConn, EndedConn ChangedConn = InputService.InputChanged:Connect(function(Change) if Change.UserInputType == Enum.UserInputType.MouseMovement or Change == Input then local Delta = Change.Position - DragStart if IsWindow and Library.WireframeDrag then if not HasMoved and Delta.Magnitude > 2 then HasMoved = true Wireframe = Library:Create("Frame", { Size = Instance.Size, Position = Instance.Position, AnchorPoint = Instance.AnchorPoint, BackgroundTransparency = 1, Active = false, ZIndex = 100000, Parent = ScreenGui }) Library:Create("UIStroke", { Color = Color3.fromRGB(255, 255, 255), Thickness = 1, ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Parent = Wireframe }) end if HasMoved and Wireframe then Wireframe.Position = UDim2.new( StartPos.X.Scale, StartPos.X.Offset + Delta.X, StartPos.Y.Scale, StartPos.Y.Offset + Delta.Y ) end else Instance.Position = UDim2.new( StartPos.X.Scale, StartPos.X.Offset + Delta.X, StartPos.Y.Scale, StartPos.Y.Offset + Delta.Y ) end end end) EndedConn = InputService.InputEnded:Connect(function(EndInput) if EndInput == Input or EndInput.UserInputType == Enum.UserInputType.Touch then Dragging = false ChangedConn:Disconnect() EndedConn:Disconnect() if IsWindow and Library.WireframeDrag and HasMoved and Wireframe then Instance.Position = Wireframe.Position Wireframe:Destroy() Wireframe = nil end end end) end end) end; function Library:MakeResizable(Instance, MinSize, MaxSize) MinSize = MinSize or Vector2.new(400, 300) MaxSize = MaxSize or Vector2.new(1400, 1000) local Grip = Library:Create('TextButton', { Name = 'ResizeGrip', Text = '', AutoButtonColor = false, BackgroundTransparency = 1, Size = UDim2.fromOffset(16, 16), Position = UDim2.new(1, -4, 1, -4), AnchorPoint = Vector2.new(1, 1), ZIndex = 25, Parent = Instance, }) local GripIcon = Library:CreateLabel({ BackgroundTransparency = 1, Size = UDim2.fromOffset(16, 16), Position = UDim2.new(1, 0, 1, 0), AnchorPoint = Vector2.new(1, 1), Text = 'â—¢', TextColor3 = Library.OutlineColor, TextSize = Library.FontSize + 2, ZIndex = 26, Parent = Grip, }) Library:AddToRegistry(GripIcon, { TextColor3 = 'OutlineColor', }) Grip.InputBegan:Connect(function(Input) if Input.UserInputType ~= Enum.UserInputType.MouseButton1 and Input.UserInputType ~= Enum.UserInputType.Touch then return end local StartSize = Instance.Size local DragStart = Input.Position local HasMoved = false local Wireframe = nil local ChangedConn, EndedConn ChangedConn = InputService.InputChanged:Connect(function(Change) if Change.UserInputType ~= Enum.UserInputType.MouseMovement and Change ~= Input then return end local Delta = Change.Position - DragStart if Delta.Magnitude <= 2 then return end HasMoved = true local newW = math.clamp(StartSize.X.Offset + Delta.X, MinSize.X, MaxSize.X) local newH = math.clamp(StartSize.Y.Offset + Delta.Y, MinSize.Y, MaxSize.Y) local newSize = UDim2.fromOffset(newW, newH) if Library.WireframeDrag then if not Wireframe then Wireframe = Library:Create('Frame', { Size = Instance.Size, Position = Instance.Position, AnchorPoint = Instance.AnchorPoint, BackgroundTransparency = 1, Active = false, ZIndex = 100000, Parent = ScreenGui, }) Library:Create('UIStroke', { Color = Color3.fromRGB(255, 255, 255), Thickness = 1, ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Parent = Wireframe, }) end Wireframe.Size = newSize Wireframe.Position = Instance.Position else Instance.Size = newSize end end) EndedConn = InputService.InputEnded:Connect(function(EndInput) if EndInput ~= Input and EndInput.UserInputType ~= Enum.UserInputType.Touch then return end ChangedConn:Disconnect() EndedConn:Disconnect() if Library.WireframeDrag and HasMoved and Wireframe then Instance.Size = Wireframe.Size Wireframe:Destroy() end end) end) end; function Library:AddToolTip(InfoStr, HoverInstance) local X, Y = Library:GetTextBounds(InfoStr, Library.Font, Library.FontSize); local Tooltip = Library:Create('Frame', { BackgroundColor3 = Library.MainColor, BorderColor3 = Library.OutlineColor, Size = UDim2.fromOffset(X + 5, Y + 4), ZIndex = 100, Parent = Library.ScreenGui, Visible = false, }) local Label = Library:CreateLabel({ Position = UDim2.fromOffset(3, 1), Size = UDim2.fromOffset(X, Y); TextSize = Library.FontSize; Text = InfoStr, TextColor3 = Library.FontColor, TextXAlignment = Enum.TextXAlignment.Left; ZIndex = Tooltip.ZIndex + 1, Parent = Tooltip; }); Library:AddToRegistry(Tooltip, { BackgroundColor3 = 'MainColor'; BorderColor3 = 'OutlineColor'; }); Library:AddToRegistry(Label, { TextColor3 = 'FontColor', }); local IsHovering = false HoverInstance.MouseEnter:Connect(function() if Library:MouseIsOverOpenedFrame() then return end IsHovering = true Tooltip.Position = UDim2.fromOffset(Mouse.X + 15, Mouse.Y + 12) Tooltip.Visible = true while IsHovering do RunService.Heartbeat:Wait() Tooltip.Position = UDim2.fromOffset(Mouse.X + 15, Mouse.Y + 12) end end) HoverInstance.MouseLeave:Connect(function() IsHovering = false Tooltip.Visible = false end) end function Library:OnHighlight(HighlightInstance, Instance, Properties, PropertiesDefault) HighlightInstance.MouseEnter:Connect(function() local Reg = Library.RegistryMap[Instance]; for Property, ColorIdx in next, Properties do Instance[Property] = Library[ColorIdx] or ColorIdx; if Reg and Reg.Properties[Property] then Reg.Properties[Property] = ColorIdx; end; end; end) HighlightInstance.MouseLeave:Connect(function() local Reg = Library.RegistryMap[Instance]; for Property, ColorIdx in next, PropertiesDefault do Instance[Property] = Library[ColorIdx] or ColorIdx; if Reg and Reg.Properties[Property] then Reg.Properties[Property] = ColorIdx; end; end; end) end; function Library:MouseIsOverOpenedFrame() for Frame, _ in next, Library.OpenedFrames do local AbsPos, AbsSize = Frame.AbsolutePosition, Frame.AbsoluteSize; if Mouse.X >= AbsPos.X and Mouse.X <= AbsPos.X + AbsSize.X and Mouse.Y >= AbsPos.Y and Mouse.Y <= AbsPos.Y + AbsSize.Y then return true; end; end; end; function Library:IsMouseOverFrame(Frame) local AbsPos, AbsSize = Frame.AbsolutePosition, Frame.AbsoluteSize; if Mouse.X >= AbsPos.X and Mouse.X <= AbsPos.X + AbsSize.X and Mouse.Y >= AbsPos.Y and Mouse.Y <= AbsPos.Y + AbsSize.Y then return true; end; end; function Library:UpdateDependencyBoxes() for _, Depbox in next, Library.DependencyBoxes do Depbox:Update(); end; end; function Library:MapValue(Value, MinA, MaxA, MinB, MaxB) return (1 - ((Value - MinA) / (MaxA - MinA))) * MinB + ((Value - MinA) / (MaxA - MinA)) * MaxB; end; function Library:GetTextBounds(Text, Font, Size, Resolution) local Bounds = TextService:GetTextSize(Text, Size, Font, Resolution or Vector2.new(1920, 1080)) return Bounds.X, Bounds.Y end; function Library:GetDarkerColor(Color) local H, S, V = Color3.toHSV(Color); return Color3.fromHSV(H, S, V / 1.5); end; Library.AccentColorDark = Library:GetDarkerColor(Library.AccentColor); function Library:AddToRegistry(Instance, Properties, IsHud) local Idx = #Library.Registry + 1; local Data = { Instance = Instance; Properties = Properties; Idx = Idx; }; table.insert(Library.Registry, Data); Library.RegistryMap[Instance] = Data; if IsHud then table.insert(Library.HudRegistry, Data); end; end; function Library:RemoveFromRegistry(Instance) local Data = Library.RegistryMap[Instance]; if Data then for Idx = #Library.Registry, 1, -1 do if Library.Registry[Idx] == Data then table.remove(Library.Registry, Idx); end; end; for Idx = #Library.HudRegistry, 1, -1 do if Library.HudRegistry[Idx] == Data then table.remove(Library.HudRegistry, Idx); end; end; Library.RegistryMap[Instance] = nil; end; end; function Library:UpdateColorsUsingRegistry() for Idx, Object in next, Library.Registry do for Property, ColorIdx in next, Object.Properties do if type(ColorIdx) == 'string' then Object.Instance[Property] = Library[ColorIdx]; elseif type(ColorIdx) == 'function' then Object.Instance[Property] = ColorIdx() end end; end; end; function Library:GiveSignal(Signal) table.insert(Library.Signals, Signal) end function Library:Unload() for Idx = #Library.Signals, 1, -1 do local Connection = table.remove(Library.Signals, Idx) Connection:Disconnect() end if Library.OnUnload then Library.OnUnload() end if Library.BlurEffect then Library.BlurEffect:Destroy() end ScreenGui:Destroy() end function Library:OnUnload(Callback) Library.OnUnload = Callback end Library:GiveSignal(ScreenGui.DescendantRemoving:Connect(function(Instance) if Library.RegistryMap[Instance] then Library:RemoveFromRegistry(Instance); end; end)) local BaseAddons = {}; do local Funcs = {}; function Funcs:AddColorPicker(Idx, Info) local ToggleLabel = self.TextLabel; assert(Info.Default, 'AddColorPicker: Missing default value.'); local ColorPicker = { Value = Info.Default; Transparency = Info.Transparency or 0; Type = 'ColorPicker'; Title = type(Info.Title) == 'string' and Info.Title or 'Color picker', Callback = Info.Callback or function(Color) end; }; function ColorPicker:SetHSVFromRGB(Color) local H, S, V = Color3.toHSV(Color); ColorPicker.Hue = H; ColorPicker.Sat = S; ColorPicker.Vib = V; end; ColorPicker:SetHSVFromRGB(ColorPicker.Value); local DisplayFrame = Library:Create('Frame', { BackgroundColor3 = ColorPicker.Value; BorderColor3 = Library:GetDarkerColor(ColorPicker.Value); BorderMode = Enum.BorderMode.Inset; Size = UDim2.new(0, 28, 0, 14); ZIndex = 6; Parent = ToggleLabel; }); local CheckerFrame = Library:Create('ImageLabel', { BorderSizePixel = 0; Size = UDim2.new(0, 27, 0, 13); ZIndex = 5; Image = 'http://www.roblox.com/asset/?id=12977615774'; Visible = not not Info.Transparency; Parent = Displ