Pastebin
Paste #36177: Silent alarm
< previous paste - next paste>
Pasted by Sss
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 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,
OpenedFrames = {};
DependencyBoxes = {};
Signals = {};
ScreenGui = ScreenGui;
};
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;
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:CreateLabel(Properties, IsHud)
local _Instance = Library:Create('TextLabel', {
BackgroundTransparency = 1;
Font = Library.Font;
TextColor3 = Library.FontColor;
TextSize = 16;
TextStrokeTransparency = 0;
});
Library:ApplyTextStroke(_Instance);
Library:AddToRegistry(_Instance, {
TextColor3 = 'FontColor';
}, IsHud);
return Library:Create(_Instance, Properties);
end;
function Library:MakeDraggable(Instance, Cutoff)
Instance.Active = true;
Instance.InputBegan:Connect(function(Input)
if Input.UserInputType == Enum.UserInputType.MouseButton1 then
local ObjPos = Vector2.new(
Mouse.X - Instance.AbsolutePosition.X,
Mouse.Y - Instance.AbsolutePosition.Y
);
if ObjPos.Y > (Cutoff or 40) then
return;
end;
while InputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) do
Instance.Position = UDim2.new(
0,
Mouse.X - ObjPos.X + (Instance.Size.X.Offset * Instance.AnchorPoint.X),
0,
Mouse.Y - ObjPos.Y + (Instance.Size.Y.Offset * Instance.AnchorPoint.Y)
);
RenderStepped:Wait();
end;
end;
end)
end;
function Library:AddToolTip(InfoStr, HoverInstance)
local X, Y = Library:GetTextBounds(InfoStr, Library.Font, 14);
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 = 14;
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()
-- TODO: Could have an 'active' list of objects
-- where the active list only contains Visible objects.
-- IMPL: Could setup .Changed events on the AddToRegistry function
-- that listens for the 'Visible' propert being changed.
-- Visible: true => Add to active list, and call UpdateColors function
-- Visible: false => Remove from active list.
-- The above would be especially efficient for a rainbow menu color or live color-changing.
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)
-- Only used for signals not attached to library instances, as those should be cleaned up on object destruction by Roblox
table.insert(Library.Signals, Signal)
end
function Library:Unload()
-- Unload all of the signals
for Idx = #Library.Signals, 1, -1 do
local Connection = table.remove(Library.Signals, Idx)
Connection:Disconnect()
end
-- Call our unload callback, maybe to undo some hooks etc
if Library.OnUnload then
Library.OnUnload()
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;
-- local Container = self.Container;
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;
});
-- Transparency image taken from https://github.com/matas3535/SplixPrivateDrawingLibrary/blob/main/Library.lua cus i'm lazy
local CheckerFrame = Library:Create('ImageLabel', {
BorderSizePixel = 0;
Size = UDim2.new(0, 27, 0, 13);
ZIndex = 1;
Image = 'http://www.roblox.com/asset/?id=12977615774';
Visible = not not Info.Transparency;
Parent = DisplayFrame;
});
-- 1/16/23
-- Rewrote this to be placed inside the Library ScreenGui
-- There was some issue which caused RelativeOffset to be way off
-- Thus the color picker would never show
local PickerFrameOuter = Library:Create('Frame', {
Name = 'Color';
BackgroundColor3 = Color3.new(1, 1, 1);
BorderColor3 = Color3.new(0, 0, 0);
Position = UDim2.fromOffset(DisplayFrame.AbsolutePosition.X, DisplayFrame.AbsolutePosition.Y + 18),
Size = UDim2.fromOffset(230, Info.Transparency and 271 or 253);
Visible = false;
ZIndex = 1;
Parent = ScreenGui,
});
DisplayFrame:GetPropertyChangedSignal('AbsolutePosition'):Connect(function()
PickerFrameOuter.Position = UDim2.fromOffset(DisplayFrame.AbsolutePosition.X, DisplayFrame.AbsolutePosition.Y + 1);
end)
local PickerFrameInner = Library:Create('Frame', {
BackgroundColor3 = Library.BackgroundColor;
BorderColor3 = Library.OutlineColor;
BorderMode = Enum.BorderMode.Inset;
Size = UDim2.new(1, 0, 1, 0);
ZIndex = 1;
Parent = PickerFrameOuter;
});
local Highlight = Library:Create('Frame', {
BackgroundColor3 = Library.AccentColor;
BorderSizePixel = 0;
Size = UDim2.new(1, 0, 0, 2);
ZIndex = 17;
Parent = PickerFrameInner;
});
local SatVibMapOuter = Library:Create('Frame', {
BorderColor3 = Color3.new(0, 0, 0);
Position = UDim2.new(0, 4, 0, 25);
Size = UDim2.new(0, 200, 0, 200);
ZIndex = 17;
Parent = PickerFrameInner;
});
local SatVibMapInner = Library:Create('Frame', {
BackgroundColor3 = Library.BackgroundColor;
BorderColor3 = Library.OutlineColor;
BorderMode = Enum.BorderMode.Inset;
Size = UDim2.new(1, 0, 1, 0);
ZIndex = 1;
Parent = SatVibMapOuter;
});
local SatVibMap = Library:Create('ImageLabel', {
BorderSizePixel = 0;
Size = UDim2.new(1, 0, 1, 0);
ZIndex = 1;
Image = 'rbxassetid://4155801252';
Parent = SatVibMapInner;
});
local CursorOuter = Library:Create('ImageLabel', {
AnchorPoint = Vector2.new(0.5, 0.5);
Size = UDim2.new(0, 6, 0, 6);
BackgroundTransparency = 1;
Image = 'http://www.roblox.com/asset/?id=9619665977';
ImageColor3 = Color3.new(0, 0, 0);
ZIndex = 1;
Parent = SatVibMap;
});
local CursorInner = Library:Create('ImageLabel', {
Size = UDim2.new(0, CursorOuter.Size.X.Offset - 2, 0, CursorOuter.Size.Y.Offset - 2);
Position = UDim2.new(0, 1, 0, 1);
BackgroundTransparency = 1;
Image = 'http://www.roblox.com/asset/?id=9619665977';
ZIndex = 20;
Parent = CursorOuter;
})
local HueSelectorOuter = Library:Create('Frame', {
BorderColor3 = Color3.new(0, 0, 0);
Position = UDim2.new(0, 208, 0, 25);
Size = UDim2.new(0, 15, 0, 200);
ZIndex = 1;
Parent = PickerFrameInner;
});
local HueSelectorInner = Library:Create('Frame', {
BackgroundColor3 = Color3.new(1, 1, 1);
BorderSizePixel = 0;
Size = UDim2.new(1, 0, 1, 0);
ZIndex = 18;
Parent = HueSelectorOuter;
});
local HueCursor = Library:Create('Frame', {
BackgroundColor3 = Color3.new(1, 1, 1);
AnchorPoint = Vector2.new(0, 0.5);
BorderColor3 = Color3.new(0, 0, 0);
Size = UDim2.new(1, 0, 0, 1);
ZIndex = 1;
Parent = HueSelectorInner;
});
local HueBoxOuter = Library:Create('Frame', {
BorderColor3 = Color3.new(0, 0, 0);
Position = UDim2.fromOffset(4, 228),
Size = UDim2.new(0.5, -6, 0, 20),
ZIndex = 18,
Parent = PickerFrameInner;
});
local HueBoxInner = Library:Create('Frame', {
BackgroundColor3 = Library.MainColor;
BorderColor3 = Library.OutlineColor;
BorderMode = Enum.BorderMode.Inset;
Size = UDim2.new(1, 0, 1, 0);
ZIndex = 18,
Parent = HueBoxOuter;
});
Library:Create('UIGradient', {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.new(1, 1, 1)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(212, 212, 212))
});
Rotation = 90;
Parent = HueBoxInner;
});
local HueBox = Library:Create('TextBox', {
BackgroundTransparency = 1;
Position = UDim2.new(0, 5, 0, 0);
Size = UDim2.new(1, -5, 1, 0);
Font = Library.Font;
PlaceholderColor3 = Color3.fromRGB(190, 190, 190);
PlaceholderText = 'Hex color',
Text = '#FFFFFF',
TextColor3 = Library.FontColor;
TextSize = 14;
TextStrokeTransparency = 0;
TextXAlignment = Enum.TextXAlignment.Left;
ZIndex = 20,
Parent = HueBoxInner;
});
Library:ApplyTextStroke(HueBox);
local RgbBoxBase = Library:Create(HueBoxOuter:Clone(), {
Position = UDim2.new(0.5, 2, 0, 228),
Size = UDim2.new(0.5, -6, 0, 20),
Parent = PickerFrameInner
});
local RgbBox = Library:Create(RgbBoxBase.Frame:FindFirstChild('TextBox'), {
Text = '255, 255, 255',
PlaceholderText = 'RGB color',
TextColor3 = Library.FontColor
});
local TransparencyBoxOuter, TransparencyBoxInner, TransparencyCursor;
if Info.Transparency then
TransparencyBoxOuter = Library:Create('Frame', {
BorderColor3 = Color3.new(0, 0, 0);
Position = UDim2.fromOffset(4, 251);
Size = UDim2.new(1, -8, 0, 15);
ZIndex = 19;
Parent = PickerFrameInner;
});
TransparencyBoxInner = Library:Create('Frame', {
BackgroundColor3 = ColorPicker.Value;
BorderColor3 = Library.OutlineColor;
BorderMode = Enum.BorderMode.Inset;
Size = UDim2.new(1, 0, 1, 0);
ZIndex = 19;
Parent = TransparencyBoxOuter;
});
Library:AddToRegistry(TransparencyBoxInner, { BorderColor3 = 'OutlineColor' });
Library:Create('ImageLabel', {
BackgroundTransparency = 1;
Size = UDim2.new(1, 0, 1, 0);
Image = 'http://www.roblox.com/asset/?id=12978095818';
ZIndex = 20;
Parent = TransparencyBoxInner;
});
TransparencyCursor = Library:Create('Frame', {
BackgroundColor3 = Color3.new(1, 1, 1);
AnchorPoint = Vector2.new(0.5, 0);
BorderColor3 = Color3.new(0, 0, 0);
Size = UDim2.new
New Paste
Go to most recent paste.