Message
Message
--[[
ANCHOR Note
The entire script will be module-based.
Example : ragebot = {} and everything about ragebot will be contained
there.
Invaded please ask me if you're gonna add new stuff, cuz i might be
able to optimize them first (even though its a bad practice don't care fuck you).
Few notes :
1. UI library will be seperated from the main script.
2. Esp will be connected to heartbeat.
3. If you want to add something, do stuff seperately and then tell me
to merge it.
4. In order to anticipate synapse v3's release and the fact that this
will (i hope :>) support scriptware, we dont need to cache functions :D (luau
optimizations).
5. I can take my hrts at any time during the development of this cheat
(Invaded#5143)
]]
local Signal =
loadstring(game:HttpGet("https://raw.githubusercontent.com/Quenty/NevermoreEngine/
version2/Modules/Shared/Events/Signal.lua"))()
function UILibrary:Start(Parameters)
local UIStyle = Parameters
local ClipboardColor
-- Important Bullshit
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
local HttpService = game:GetService("HttpService")
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local Plr = Players.localPlayer
local Mouse = Plr:GetMouse()
local fading = false
local valid_chars = {}
set_valid('a', 'z')
set_valid('A', 'Z')
set_valid('0', '9')
function UIUtilities:random_string(length)
local s = {}
for i = 1, length do s[i] = valid_chars[math.random(1,
#valid_chars)] end
return table.concat(s)
end
function UIUtilities:Tween(...)
TweenService:Create(...):Play()
end
Core.Parent = game.CoreGui
local isColorThingOpen
local isColorThingOpen2
local isDropDownOpen
UILibrary.tooltip = {}
do
local FakeBackGround = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0, 0),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BackgroundTransparency = 1,
BorderColor3 = UIStyle.UIcolors.FullWhite,
BorderMode = Enum.BorderMode.Outline,
BorderSizePixel = 0,
Name = "Event",
Parent = Core,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(0, 0, 0, 0),
ZIndex = 29
})
local EventLogContainer = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0, 0),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BackgroundTransparency = 1,
BorderColor3 = UIStyle.UIcolors.FullWhite,
BorderMode = Enum.BorderMode.Outline,
BorderSizePixel = 0,
Name = "Event",
Parent = FakeBackGround,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(1, 0, 1, -4),
ZIndex = 29
})
local fuckingFolder, fuckingThing, fuckingOtherThing =
AutoApplyBorder(EventLogContainer, "a", 29, UIStyle.UIcolors.ColorG,
UIStyle.UIcolors.ColorH)
local BackGroundStyling = UIUtilities:Create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(1, UIStyle.UIcolors.ColorA)
}),
Rotation = 90,
Parent = EventLogContainer
})
local BackGroundAccent = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0, 0),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BorderSizePixel = 0,
BackgroundTransparency = 1,
Name = "UI",
Parent = EventLogContainer,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(0, 2, 1, 0),
ZIndex = 30
})
local Hue, Sat, Val = RGBtoHSV(UIStyle.UIcolors.Accent)
local BackGroundAccentStyling = UIUtilities:Create("UIGradient",
{
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHSV(Hue, Sat,
Val - 0.1)),
ColorSequenceKeypoint.new(1,
Color3.new(UIStyle.UIcolors.Accent.R, UIStyle.UIcolors.Accent.G,
UIStyle.UIcolors.Accent.B))
}),
Rotation = 180,
Parent = BackGroundAccent
})
local BackGroundText = UIUtilities:Create("TextLabel", {
AnchorPoint = Vector2.new(1, 0),
BackgroundTransparency = 1,
Position = UDim2.new(1, 0, 0, 0),
Parent = EventLogContainer,
Size = UDim2.new(1, -6, 1, 0),
ZIndex = 31,
Font = UIStyle.HeaderFont.Font,
LineHeight = 1.1,
Text = "idiot",
TextColor3 = UIStyle.UIcolors.FullWhite,
TextSize = UIStyle.HeaderFont.WatermarkTxtSize,
TextTransparency = 1,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 1,
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Center
})
local currentTrans = 1
local hoverTime = 0
local bounds = Vector2.new(0, 0)
local objectPos = Vector2.new(0, 0)
local loop; loop =
RunService.Heartbeat:Connect(function(deltaTime)
local hovering = Mouse.X > objectPos.X and Mouse.X < objectPos.X +
bounds.X and Mouse.Y > objectPos.Y and Mouse.Y < objectPos.Y + bounds.Y and not
(isColorThingOpen or isColorThingOpen2 or isDropDownOpen)
if hovering then
if hoverTime > 2 then
currentTrans = math.max(0, currentTrans - deltaTime * 4)
else
hoverTime = hoverTime + deltaTime
currentTrans = 1
end
else
hoverTime = 0
currentTrans = math.min(1, currentTrans + deltaTime * 8)
end
EventLogContainer.BackgroundTransparency = currentTrans
BackGroundAccent.BackgroundTransparency = currentTrans
BackGroundText.TextTransparency = currentTrans
fuckingThing.BackgroundTransparency = currentTrans
fuckingOtherThing.BackgroundTransparency = currentTrans
BackGroundAccentStyling.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHSV(Hue, Sat, Val -
0.1)),
ColorSequenceKeypoint.new(1,
Color3.new(UIStyle.UIcolors.Accent.R, UIStyle.UIcolors.Accent.G,
UIStyle.UIcolors.Accent.B))
})
end)
Menu[Parameters.Tab][Parameters.Section][Parameters.ObjectName]
["Color " .. Parameters.Stance] = {}
Menu[Parameters.Tab][Parameters.Section][Parameters.ObjectName]
["Color " .. Parameters.Stance]["Color"] = Parameters.StartColor
Menu[Parameters.Tab][Parameters.Section][Parameters.ObjectName]
["Color " .. Parameters.Stance].Save = function()
local garbageshit = {}
for anim, data in next, fakeFlagsShit do
garbageshit[anim] = {}
for name, values in next, data do
garbageshit[anim][name] = {}
if fakeFlagsShit[anim][name]["Value"] then
garbageshit[anim][name]["Value"] =
fakeFlagsShit[anim][name]["Value"]
elseif fakeFlagsShit[anim][name]["Color"] then
garbageshit[anim][name]["Color"] = {r =
fakeFlagsShit[anim][name]["Color"].r, g = fakeFlagsShit[anim][name]["Color"].g, b =
fakeFlagsShit[anim][name]["Color"].b}
if Parameters.StartTrans and
fakeFlagsShit[anim][name]["Transparency"] then
garbageshit[anim][name]
["Transparency"] = fakeFlagsShit[anim][name]["Transparency"]
end
end
end
end
return {
["Color"] = {r = Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Color"].r, g = Menu[Parameters.Tab][Parameters.Section][Parameters.ObjectName]
["Color " .. Parameters.Stance]["Color"].g, b = Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Color"].b},
["Transparency"] = Parameters.StartTrans and
Menu[Parameters.Tab][Parameters.Section][Parameters.ObjectName]["Color " ..
Parameters.Stance]["Transparency"] or nil,
["Animation Selection"] = {["Value"] =
dropKickFlag["Value"]},
["Animations"] = garbageshit,
}
end
local TransparencySlider = false
if Parameters.StartTrans then
TransparencySlider = true
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Transparency"] =
Parameters.StartTrans
end
Menu[Parameters.Tab][Parameters.Section][Parameters.ObjectName]
["Color " .. Parameters.Stance].Changed = Signal.new()
local ColorProxy = Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]
local imHungover = {
Rainbow = {
{
type = "slider",
name = "Speed",
max = 1000,
min = 1,
suffix = "%"
}
},
Linear = {
{
type = "color",
name = "Keyframe 1"
},
{
type = "color",
name = "Keyframe 2"
},
{
type = "slider",
name = "Speed",
max = 1000,
min = 1,
suffix = "%"
}
},
Oscillating = {
{
type = "color",
name = "Keyframe 1"
},
{
type = "color",
name = "Keyframe 2"
},
{
type = "slider",
name = "Speed",
max = 1000,
min = 1,
suffix = "%"
}
},
Sawtooth = {
{
type = "color",
name = "Keyframe 1"
},
{
type = "color",
name = "Keyframe 2"
},
{
type = "slider",
name = "Speed",
max = 1000,
min = 1,
suffix = "%"
}
},
Strobe = {
{
type = "color",
name = "Keyframe 1"
},
{
type = "color",
name = "Keyframe 2"
},
{
type = "slider",
name = "Speed",
max = 1000,
min = 1,
suffix = "%"
}
}
}
local whoresFucked = 0
local TextGarbage =
UIUtilities:Create("TextLabel", {
AnchorPoint = Vector2.new(1, 0),
BackgroundTransparency = 1,
Parent = whoreCoonNig,
Position = UDim2.new(1, 0, 0, 0),
Size = UDim2.new(1, -10, 1, 0),
ZIndex = 20 + 28,
Text = data.name,
TextColor3 = UIStyle.UIcolors.FullWhite,
Font = UIStyle.TextFont.Font,
LineHeight = 1.05,
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
TextXAlignment =
Enum.TextXAlignment.Left,
TextYAlignment =
Enum.TextYAlignment.Center
})
local garbageParameters =
table.clone(Parameters)
fakeFlagNigger = {}
fakeFlagNigger["Color"] =
garbageParameters.StartColor
local TransparencySlider = false
if garbageParameters.StartTrans then
TransparencySlider = true
fakeFlagNigger["Transparency"] =
garbageParameters.StartTrans
end
fakeFlagNigger.Changed = Signal.new()
local Huepick =
UIUtilities:Create("ImageButton", {
Name = "Huepick",
Parent = Frame,
BackgroundColor3 = Color3.fromRGB(255,
255, 255),
BorderColor3 = UIStyle.UIcolors.ColorA,
ClipsDescendants = false,
BorderSizePixel = 0,
Position = UDim2.new(0, 172, 0, 10 +
inDented),
Size = UDim2.new(0, 14, 0, 156),
AutoButtonColor = false,
Image = "rbxassetid://3641079629",
ImageColor3 = Color3.fromRGB(255, 0, 0),
ImageTransparency = 1,
BackgroundTransparency = 0,
ZIndex = 22 + 33
})
AutoApplyBorder(Huepick, "Picker", 22 + 33,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH)
local Huedrag = UIUtilities:Create("Frame", {
Name = "Huedrag",
Parent = Huepick,
BackgroundColor3 = Color3.fromRGB(255,
255, 255),
BorderColor3 = UIStyle.UIcolors.ColorA,
Size = UDim2.new(1, 0, 0, 2),
ZIndex = 22 + 33
})
local HueFrameGradient =
UIUtilities:Create("UIGradient", {
Rotation = 90,
Name = "HueFrameGradient",
Parent = Huepick,
Color = ColorSequence.new {
ColorSequenceKeypoint.new(0.00,
Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(0.17,
Color3.fromRGB(255, 0, 255)),
ColorSequenceKeypoint.new(0.33,
Color3.fromRGB(0, 0, 255)),
ColorSequenceKeypoint.new(0.50,
Color3.fromRGB(0, 255, 255)),
ColorSequenceKeypoint.new(0.67,
Color3.fromRGB(0, 255, 0)),
ColorSequenceKeypoint.new(0.83,
Color3.fromRGB(255, 255, 0)),
ColorSequenceKeypoint.new(1.00,
Color3.fromRGB(255, 0, 0))
},
})
if TransparencySlider then
Transpick =
UIUtilities:Create("ImageButton", {
Name = "Transpick",
Parent = Frame,
BackgroundColor3 =
Color3.fromRGB(255, 255, 255),
BorderColor3 =
UIStyle.UIcolors.ColorA,
Position = UDim2.new(0, 8, 0, 172 +
inDented),
Size = UDim2.new(0, 156, 0, 12),
AutoButtonColor = false,
Image = "rbxassetid://3887014957",
ScaleType = Enum.ScaleType.Tile,
TileSize = UDim2.new(0, 10, 0, 10),
ZIndex = 22 + 33
})
AutoApplyBorder(Transpick, "Picker", 22 +
33, UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH)
Transcolor =
UIUtilities:Create("ImageLabel", {
Name = "Transcolor",
Parent = Transpick,
BackgroundColor3 =
Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
Image = "rbxassetid://3887017050",
ImageColor3 =
ColorP.BackgroundColor3,
ZIndex = 22 + 33,
})
Transdrag = UIUtilities:Create("Frame", {
Name = "Transdrag",
Parent = Transcolor,
BackgroundColor3 =
Color3.fromRGB(255, 255, 255),
BorderColor3 =
UIStyle.UIcolors.ColorA,
Position = UDim2.new(0, -1, 0, 0),
Size = UDim2.new(0, 2, 1, 0),
ZIndex = 22 + 33
})
end
local OldColorText =
UIUtilities:Create("TextLabel", {
Name = "OldColorText",
Parent = Frame,
Size = UDim2.new(0, 16, 0, 14),
Text = "Old Color",
BackgroundTransparency = 1,
TextColor3 = UIStyle.UIcolors.FullWhite,
Font = UIStyle.TextFont.Font,
LineHeight = 1.1,
ZIndex = 22 + 34,
Position = UDim2.new(0, 212, 0, 78 +
inDented),
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
})
local OldColor = UIUtilities:Create("Frame", {
Name = "OldColor",
Parent = Frame,
BackgroundColor3 = Color3.fromRGB(255,
255, 255),
BorderColor3 = UIStyle.UIcolors.ColorC,
BorderSizePixel = 0,
Position = UDim2.new(0, 196, 0, 94 +
inDented),
Size = UDim2.new(0, 92, 0, 48),
ZIndex = 22 + 35,
})
local OldAlpha =
UIUtilities:Create("ImageButton", {
Name = "OldAlpha",
Parent = Frame,
BackgroundColor3 = Color3.fromRGB(255,
255, 255),
BorderColor3 = UIStyle.UIcolors.ColorC,
BorderSizePixel = 0,
Position = UDim2.new(0, 196, 0, 94 +
inDented),
BackgroundTransparency = 1,
Size = UDim2.new(0, 92, 0, 48),
ScaleType = "Tile",
ZIndex = 22 + 34,
Image = "rbxassetid://3887014957"
})
AutoApplyBorder(OldAlpha, "OldAlpha", 22 + 34,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH)
local NewColorText =
UIUtilities:Create("TextLabel", {
Name = "NewColorText",
Parent = Frame,
Size = UDim2.new(0, 16, 0, 14),
Text = "New Color",
BackgroundTransparency = 1,
TextColor3 = UIStyle.UIcolors.FullWhite,
Font = UIStyle.TextFont.Font,
LineHeight = 1.1,
ZIndex = 22 + 34,
Position = UDim2.new(0, 212, 0, 6 +
inDented),
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
})
local NewColor = UIUtilities:Create("Frame", {
Name = "NewColor",
Parent = Frame,
BackgroundColor3 =
garbageParameters.StartColor,
BackgroundTransparency =
garbageParameters.StartTrans,
BorderColor3 = UIStyle.UIcolors.ColorC,
BorderSizePixel = 0,
Position = UDim2.new(0, 196, 0, 22 +
inDented),
Size = UDim2.new(0, 92, 0, 48),
ZIndex = 22 + 35,
})
local NewAlpha =
UIUtilities:Create("ImageButton", {
Name = "NewAlpha",
Parent = Frame,
BackgroundColor3 = Color3.fromRGB(255,
255, 255),
BorderColor3 = UIStyle.UIcolors.ColorC,
BorderSizePixel = 0,
Position = UDim2.new(0, 196, 0, 22 +
inDented),
BackgroundTransparency = 1,
Size = UDim2.new(0, 92, 0, 48),
ScaleType = "Tile",
ZIndex = 22 + 34,
Image = "rbxassetid://3887014957"
})
AutoApplyBorder(NewAlpha, "NewAlpha", 22 + 34,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH)
local YOffset = -24
if garbageParameters.StartTrans then
YOffset = -22
end
local ApplyButton =
UIUtilities:Create("TextButton", {
Name = "Apply",
AutoButtonColor = false,
Parent = Frame,
Size = UDim2.new(0, 52, 0, 16),
Text = "[ Apply ]",
BackgroundTransparency = 1,
TextColor3 = UIStyle.UIcolors.FullWhite,
Font = UIStyle.TextFont.Font,
LineHeight = 1.1,
ZIndex = 22 + 34,
Position = UDim2.new(0, 196, 0, YBounds +
YOffset + inDented),
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
})
local okFrameBackGroundGradient =
UIUtilities:Create("UIGradient",{
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(0.06,
UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1,
UIStyle.UIcolors.ColorA)
}),
Rotation = 90,
Parent = Frame
})
local CopyNewColor =
UIUtilities:Create("TextButton", {
Name = "CopyNewColor",
Parent = NewColor,
AutoButtonColor = false,
Size = UDim2.new(1, 0, 0.5, 0),
Text = "Copy",
BackgroundTransparency = 1,
TextColor3 = UIStyle.UIcolors.FullWhite,
Font = UIStyle.TextFont.Font,
Visible = false,
LineHeight = 1.1,
ZIndex = 22 + 35,
Position = UDim2.new(0, 0, 0, 0),
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextXAlignment =
Enum.TextXAlignment.Center,
TextYAlignment =
Enum.TextYAlignment.Center,
TextStrokeTransparency = 0.5,
})
local PasteNewColor =
UIUtilities:Create("TextButton", {
Name = "PasteNewColor",
Parent = NewColor,
AnchorPoint = Vector2.new(0, 1),
AutoButtonColor = false,
Size = UDim2.new(1, 0, 0.5, 0),
Text = "Paste",
BackgroundTransparency = 1,
Visible = false,
TextColor3 = UIStyle.UIcolors.FullWhite,
Font = UIStyle.TextFont.Font,
LineHeight = 1.1,
ZIndex = 22 + 35,
Position = UDim2.new(0, 0, 1, 0),
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextXAlignment =
Enum.TextXAlignment.Center,
TextYAlignment =
Enum.TextYAlignment.Center,
TextStrokeTransparency = 0.5,
})
local CopyOldColor =
UIUtilities:Create("TextButton", {
Name = "PasteOldColor",
Parent = OldColor,
Size = UDim2.new(1, 0, 1, 0),
AutoButtonColor = false,
Text = "Copy",
BackgroundTransparency = 1,
TextColor3 = UIStyle.UIcolors.FullWhite,
Visible = false,
Font = UIStyle.TextFont.Font,
LineHeight = 1.1,
ZIndex = 22 + 35,
Position = UDim2.new(0, 0, 0, 0),
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextXAlignment =
Enum.TextXAlignment.Center,
TextYAlignment =
Enum.TextYAlignment.Center,
TextStrokeTransparency = 0.5,
})
NewColor.MouseEnter:Connect(function()
CopyNewColor.Visible = true
PasteNewColor.Visible = true
end)
NewColor.MouseLeave:Connect(function()
CopyNewColor.Visible = false
PasteNewColor.Visible = false
end)
OldColor.MouseEnter:Connect(function()
CopyOldColor.Visible = true
end)
OldColor.MouseLeave:Connect(function()
CopyOldColor.Visible = false
end)
ColorH = math.clamp(ColorH, 0, 1)
ColorS = math.clamp(ColorS, 0, 1)
ColorV = math.clamp(ColorV, 0, 1)
ColorDrag.Position = UDim2.new(1 -
ColorS, 0, 1 - ColorV, 0)
Colorpick.ImageColor3 =
Color3.fromHSV(ColorH, 1, 1)
Huedrag.Position = UDim2.new(0, 0, 1-
ColorH, -1)
if Transcolor then
Transcolor.ImageColor3 = Color
end
end
UpdatePickers(ColorP.BackgroundColor3)
ColorP.MouseButton1Down:Connect(function()
if isColorThingOpen2 and
isColorThingOpen2 ~= MasterFrame then
return
end
MasterFrame.Visible = not
MasterFrame.Visible
if MasterFrame.Visible == false then
isColorThingOpen2 = nil
else
isColorThingOpen2 = MasterFrame
end
UpdatePickers(ColorP.BackgroundColor3)
if MasterFrame.Visible then
OldColor.BackgroundTransparency =
ColorP.BackgroundTransparency
OldColor.BackgroundColor3 =
ColorP.BackgroundColor3
end
end)
PasteNewColor.MouseButton1Down:Connect(function()
if ClipboardColor then
NewColor.BackgroundColor3 =
ClipboardColor
UpdatePickers(NewColor.BackgroundColor3)
end
end)
CopyOldColor.MouseButton1Down:Connect(function()
ClipboardColor =
OldColor.BackgroundColor3
end)
CopyNewColor.MouseButton1Down:Connect(function()
ClipboardColor =
NewColor.BackgroundColor3
end)
UserInputService.InputBegan:Connect(function(input)
if input.UserInputType ==
Enum.UserInputType.MouseButton1 or input.UserInputType ==
Enum.UserInputType.MouseButton2 then
if not dragging and not abc and not
inCP then
MasterFrame.Visible = false
isColorThingOpen2 = nil
end
end
end)
Transpick.MouseButton1Down:Connect(function()
updateTrans()
moveconnection =
Mouse.Move:Connect(function()
updateTrans()
end)
releaseconnection =
UserInputService.InputEnded:Connect(function(mouse)
if mouse.UserInputType ==
Enum.UserInputType.MouseButton1 then
updateTrans()
moveconnection:Disconnect()
releaseconnection:Disconnect()
end
end)
end)
end
Colorpick.MouseButton1Down:Connect(function()
updateColor()
moveconnection =
Mouse.Move:Connect(function()
updateColor()
end)
releaseconnection =
UserInputService.InputEnded:Connect(function(mouse)
if mouse.UserInputType ==
Enum.UserInputType.MouseButton1 then
updateColor()
moveconnection:Disconnect()
releaseconnection:Disconnect()
end
end)
end)
ApplyButton.MouseButton1Down:Connect(function()
ColorP.BackgroundColor3 =
NewColor.BackgroundColor3
ColorP.BackgroundTransparency =
NewColor.BackgroundTransparency
MasterFrame.Visible = false
isColorThingOpen = nil
end)
Huepick.MouseButton1Down:Connect(function()
updateHue()
moveconnection =
Mouse.Move:Connect(function()
updateHue()
end)
releaseconnection =
game:GetService("UserInputService").InputEnded:Connect(function(mouse)
if mouse.UserInputType ==
Enum.UserInputType.MouseButton1 then
updateHue()
moveconnection:Disconnect()
releaseconnection:Disconnect()
end
end)
end)
ColorP.BorderColor3 =
Color3.fromRGB(math.clamp((ColorP.BackgroundColor3.R * 255) - 40, 40, 255),
math.clamp((ColorP.BackgroundColor3.G * 255) - 40, 40, 255),
math.clamp((ColorP.BackgroundColor3.B * 255) - 40, 40, 255))
ColorP:GetPropertyChangedSignal("BackgroundColor3"):Connect(function()
local Hue, Sat, Val =
RGBtoHSV(ColorP.BackgroundColor3)
fakeFlagNigger["Color"] =
ColorP.BackgroundColor3
fakeFlagNigger.Changed:Fire(ColorP.BackgroundColor3,
ColorP.BackgroundTransparency)
local Color = ColorP.BackgroundColor3
ColorP.BorderColor3 =
Color3.fromRGB(math.clamp((Color.R * 255) - 40, 40, 255), math.clamp((Color.G *
255) - 40, 40, 255), math.clamp((Color.B * 255) - 40, 40, 255))
end)
if Parameters.StartTrans then
ColorP:GetPropertyChangedSignal("BackgroundTransparency"):Connect(function()
if fading == false then
fakeFlagNigger["Transparency"] = ColorP.BackgroundTransparency
fakeFlagNigger.Changed:Fire(ColorP.BackgroundColor3,
ColorP.BackgroundTransparency)
actualtrans.Value =
ColorP.BackgroundTransparency
end
end)
end
fakeFlagNigger = setmetatable({}, {
__index = function(self, i)
if ColorProxy[i] == nil then
if i == "Transparency" then
return
ColorP.BackgroundTransparency
elseif i == "Color" then
return
ColorP.BackgroundColor3
end
else
return ColorProxy[i]
end
end,
__newindex = function(self, i, v)
if i == "Color" then
if type(v) == "table" then
local af =
Color3.new(v.r, v.g, v.b)
v = af
end
ColorP.BackgroundColor3 = v
elseif i == "Transparency" then
ColorP.BackgroundTransparency
= v
end
ColorProxy[i] = v
end
})
elseif data.type == "slider" then
local garbageParameters = {
Name = data.name,
MinimumNumber = data.min,
MaximumNumber = data.max,
Suffix = data.suffix
}
fakeFlagNigger = {}
fakeFlagNigger.Changed = Signal.new()
local Proxy = fakeFlagNigger
if not garbageParameters.Suffix then
garbageParameters.Suffix = ""
end
local Slider = UIUtilities:Create("Frame", {
Name = garbageParameters.Name,
Parent = faggot,
BackgroundColor3 = Color3.fromRGB(255,
255, 255),
BackgroundTransparency = 1,
ZIndex = 20 + 22,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(1, 0, 0, 20)
})
local TextLabel =
UIUtilities:Create("TextButton", {
Parent = Slider,
BackgroundColor3 = Color3.fromRGB(255,
255, 255),
BackgroundTransparency = 1,
Position = UDim2.new(0, 8, 0, -4),
Size = UDim2.new(1, 0, 0, 15),
Font = UIStyle.TextFont.Font,
ZIndex = 20 + 22,
Text = garbageParameters.Name,
TextColor3 = UIStyle.UIcolors.FullWhite,
TextStrokeColor3 = Color3.new(),
LineHeight = 1.2,
TextStrokeTransparency = 0.5,
TextSize = UIStyle.TextFont.TxtSize,
TextXAlignment = Enum.TextXAlignment.Left
})
local AddText =
UIUtilities:Create("TextButton", {
Parent = Slider,
BackgroundColor3 = Color3.fromRGB(255,
255, 255),
BackgroundTransparency = 1,
Position = UDim2.new(1, -32, 0, -4),
Size = UDim2.new(0, 8, 0, 15),
Font = UIStyle.TextFont.Font,
ZIndex = 20 + 22,
Visible = false,
Text = "+",
TextColor3 = UIStyle.UIcolors.FullWhite,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
TextSize = UIStyle.TextFont.TxtSize,
TextXAlignment =
Enum.TextXAlignment.Center
})
local SubtractText =
UIUtilities:Create("TextButton", {
Parent = Slider,
BackgroundColor3 = Color3.fromRGB(255,
255, 255),
BackgroundTransparency = 1,
Position = UDim2.new(1, -22, 0, -4),
Size = UDim2.new(0, 8, 0, 15),
Font = UIStyle.TextFont.Font,
ZIndex = 20 + 22,
Visible = false,
Text = "-",
TextColor3 = UIStyle.UIcolors.FullWhite,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
TextSize = UIStyle.TextFont.TxtSize,
TextXAlignment =
Enum.TextXAlignment.Center
})
AutoApplyBorder(ButtonStyle,
garbageParameters.Name, 20 + 22, UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH)
local Frame = UIUtilities:Create("Frame", {
Parent = Button,
BackgroundColor3 =
UIStyle.UIcolors.Accent,
BorderSizePixel = 0,
ZIndex = 20 + 22,
Size = UDim2.new(0, 0, 1, 0)
})
table.insert(UIAccents, Frame)
local FrameStyling =
UIUtilities:Create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1,
Color3.fromRGB(180, 180, 180))
}),
Rotation = 90,
Parent = Frame
})
local NumberValue =
UIUtilities:Create("NumberValue", {
Value = garbageParameters.MinimumNumber,
Parent = Slider,
Name = garbageParameters.Name
})
fakeFlagNigger["Value"] = NumberValue.Value
local mouse = Mouse
local val
local Absolute = Button.AbsoluteSize.X
local Moving = false
Button.MouseButton1Down:Connect(function()
Absolute = Button.AbsoluteSize.X
if moveconnection then
moveconnection:Disconnect()
end
if releaseconnection then
releaseconnection:Disconnect() --
fixing the issue where if ur mouse goes off screen while dragging itll cancel it on
click
end
Moving = true
Frame.Size = UDim2.new(0,
math.clamp(mouse.X - Frame.AbsolutePosition.X, 0, Absolute), 1, 0)
val = math.floor(0.5 +
(((garbageParameters.MaximumNumber - garbageParameters.MinimumNumber) / Absolute) *
Frame.AbsoluteSize.X) + garbageParameters.MinimumNumber) or 0
NumberValue.Value = val
moveconnection =
mouse.Move:Connect(function()
Frame.Size = UDim2.new(0,
math.clamp(mouse.X - Frame.AbsolutePosition.X, 0, Absolute), 1, 0)
val = math.floor(0.5 +
(((garbageParameters.MaximumNumber - garbageParameters.MinimumNumber) / Absolute) *
Frame.AbsoluteSize.X) + garbageParameters.MinimumNumber)
NumberValue.Value = val
end)
releaseconnection =
UserInputService.InputEnded:Connect(function(Mouse)
if Mouse.UserInputType ==
Enum.UserInputType.MouseButton1 then
Frame.Size = UDim2.new(0,
math.clamp(mouse.X - Frame.AbsolutePosition.X, 0, Absolute), 1, 0)
val =
(((garbageParameters.MaximumNumber - garbageParameters.MinimumNumber) / Absolute) *
Frame.AbsoluteSize.X) + garbageParameters.MinimumNumber
moveconnection:Disconnect()
releaseconnection:Disconnect()
Moving = false
end
end)
end)
NumberValue.Changed:Connect(function()
Absolute = Button.AbsoluteSize.X
NumberValue.Value =
math.clamp(NumberValue.Value, garbageParameters.MinimumNumber,
garbageParameters.MaximumNumber)
if not Moving then
local Portion = 0.5
if garbageParameters.MinimumNumber
> 0 then
Portion = ((NumberValue.Value
- garbageParameters.MinimumNumber)) / (garbageParameters.MaximumNumber -
garbageParameters.MinimumNumber)
else
Portion = (NumberValue.Value
- garbageParameters.MinimumNumber) / (garbageParameters.MaximumNumber -
garbageParameters.MinimumNumber)
end
Frame.Size = UDim2.new(Portion, 0,
1, 0) -- itll go back to offset when someone tries moving it
val = math.floor(0.5 +
(((garbageParameters.MaximumNumber - garbageParameters.MinimumNumber) / Absolute) *
Frame.AbsoluteSize.X) + garbageParameters.MinimumNumber) or 0
end
if NumberValue.Value ==
garbageParameters.MaximumNumber and garbageParameters.MaximumText ~= nil then
Value.Text =
garbageParameters.MaximumText
elseif NumberValue.Value ==
garbageParameters.MinimumNumber and garbageParameters.MinimumText ~= nil then
Value.Text =
garbageParameters.MinimumText
else
Value.Text = val ..
garbageParameters.Suffix
end
fakeFlagNigger["Value"] =
NumberValue.Value
if garbageParameters.Callback then
garbageParameters.Callback(NumberValue.Value)
end
fakeFlagNigger.Changed:Fire(NumberValue.Value)
end)
Slider.MouseEnter:Connect(function()
AddText.Visible = true
SubtractText.Visible = true
end)
Slider.MouseLeave:Connect(function()
AddText.Visible = false
SubtractText.Visible = false
end)
AddText.MouseEnter:Connect(function()
AddText.TextColor3 =
UIStyle.UIcolors.Accent
end)
AddText.MouseLeave:Connect(function()
AddText.TextColor3 =
UIStyle.UIcolors.FullWhite
end)
SubtractText.MouseEnter:Connect(function()
SubtractText.TextColor3 =
UIStyle.UIcolors.Accent
end)
SubtractText.MouseLeave:Connect(function()
SubtractText.TextColor3 =
UIStyle.UIcolors.FullWhite
end)
AddText.MouseButton1Down:Connect(function()
NumberValue.Value = NumberValue.Value + 1
end)
SubtractText.MouseButton1Down:Connect(function()
NumberValue.Value = NumberValue.Value - 1
end)
fakeFlagNigger = setmetatable({}, {
__index = function(self, i)
return Proxy[i]
end,
__newindex = function(self, i, v)
if i == "Value" then
NumberValue.Value = v
end
Proxy[i] = v
end
})
end
fakeFlagsShit[fix][data.name] = fakeFlagNigger
end
end
do
local zindexBoost = 20
local fakeFlag = {}
local Proxy = fakeFlag
fakeFlag["Dropdown"] = {}
fakeFlag["Dropdown"].Changed = Signal.new()
local Parameters = {
Name = "Animation Type",
Values = {
"None",
"Rainbow",
"Linear",
"Oscillating",
"Strobe",
"Sawtooth"
}
}
for e = 1, #chosentext do
if e == #chosentext then
Selection.Text =
Selection.Text .. chosentext[e]
else
Selection.Text =
Selection.Text .. chosentext[e] .. ", "
end
end
end
for _, button in next,
(ValueContainer:GetChildren()) do
if button:IsA("TextButton") then
button.MouseButton1Down:Connect(function()
button.TextColor3 =
UIStyle.UIcolors.Accent
button.Selection.Value = not
button.Selection.Value
if
button:FindFirstChild("Selection") and button.Selection.Value == true then
button.TextColor3 =
UIStyle.UIcolors.FullWhite
end
update()
end)
end
end
else
fakeFlag["Value"] = Parameters.Values[1]
for _, ButtonA in next,
(ValueContainer:GetChildren()) do
if ButtonA:IsA("TextButton") then
ButtonA.MouseButton1Down:Connect(function()
Selection.Text = ButtonA.Text
trigger()
end)
end
end
end
end
initialize()
Selection:GetPropertyChangedSignal("Text"):Connect(function()
if Parameters.MultiChoice then
if ValueContainer.Visible == false then
local selectedvalues =
(Selection.Text):split(", ")
for _, button in next,
(ValueContainer:GetChildren()) do
if button:IsA("TextButton") then
if table.find(selectedvalues,
button.Text) then
button.TextColor3 =
UIStyle.UIcolors.Accent
else
button.TextColor3 =
Color3.fromRGB(255, 255, 255)
end
end
end
fakeFlag["Value"] = selectedvalues
else
local selection = {}
for cf, c in next,
(ValueContainer:GetChildren()) do
if c:IsA("TextButton") then
if
c:FindFirstChild("Selection") and c.Selection.Value == true then
table.insert(selection,
c.Text)
end
end
end
if selection[1] == nil then
Selection.Text = "None"
end
fakeFlag["Value"] = selection
end
else
fakeFlag["Value"] = Selection.Text
end
if Parameters.Callback then
Parameters.Callback(fakeFlag["Value"])
end
fakeFlag["Dropdown"].Changed:Fire(fakeFlag["Value"])
end)
fakeFlag.UpdateValues = function(NewValues)
if Parameters.MultiChoice then
fakeFlag["Value"] = {}
else
fakeFlag["Value"] = ""
end
for i, v in next, (ValueContainer:GetChildren()) do
if v ~= Organizer then
v:Destroy()
end
end
for iC, vC in next, (NewValues) do
local Button = UIUtilities:Create("TextButton",
{
AnchorPoint = Vector2.new(0.5, 0),
Name = "Button",
Parent = ValueContainer,
AutoButtonColor = false,
BackgroundColor3 =
UIStyle.UIcolors.ColorI,
BorderColor3 = UIStyle.UIcolors.ColorB,
BorderSizePixel = 0,
BackgroundTransparency = 0,
Position = UDim2.new(0.5, 0, 0, 0),
Size = UDim2.new(1, 0, 0, 18),
ZIndex = zindexBoost + 32,
Font = UIStyle.TextFont.Font,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0,
Text = vC,
TextColor3 = UIStyle.UIcolors.FullWhite,
TextSize = UIStyle.TextFont.TxtSize
})
if iC == 1 and Parameters.MultiChoice then
Button.TextColor3 =
UIStyle.UIcolors.Accent
end
local ButtonStyling =
UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Parent = Button,
BackgroundColor3 =
UIStyle.UIcolors.ColorA,
BorderSizePixel = 1,
BorderColor3 = UIStyle.UIcolors.ColorB,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 0, 1, 0),
ZIndex = zindexBoost + 31
})
AutoApplyBorder(ButtonStyling, vC, 31 +
zindexBoost, UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH)
end
Parameters.Values = NewValues
Selection.Text = NewValues[1]
initialize()
end
fakeFlag = setmetatable({}, {
__index = function(self, i)
return Proxy[i]
end,
__newindex = function(self, i, v)
Proxy[i] = v
if i == "Value" then
if not Parameters.MultiChoice then
Selection.Text = v
else
for _, button in next,
(ValueContainer:GetChildren()) do
if button:IsA("TextButton")
then
if table.find(v,
button.Text) then
button.Selection.Value = true
button.TextColor3
= UIStyle.UIcolors.Accent
else
button.TextColor3
= Color3.fromRGB(255, 255, 255)
button.Selection.Value = false
end
end
end
end
end
end
})
fakeFlag["Dropdown"].Changed:Connect(function(value)
for i, v in next, otherFrame:GetChildren() do
for i2, v2 in next, imHungover do
if v.Name == i2 then
if v.Name == value then
v.Visible = true
else
v.Visible = false
end
end
end
end
reUpdate(value)
end)
dropKickFlag = fakeFlag
end
local okFrameBackGroundGradient =
UIUtilities:Create("UIGradient",{
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(0.06,
UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1, UIStyle.UIcolors.ColorA)
}),
Rotation = 90,
Parent = otherFrame
})
local toggleablethingos = {}
toggleablethingos[1 + #toggleablethingos] = {
backThing,
realThing,
theText
}
realThing.InputBegan:Connect(function(input)
if input.UserInputType ==
Enum.UserInputType.MouseButton1 then
for i2, v2 in next, toggleablethingos do
v2[2].BackgroundColor3 =
UIStyle.UIcolors.ColorA
end
realThing.BackgroundColor3 =
UIStyle.UIcolors.ColorG
end
end)
end
toggleablethingos[1][2].InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
then
Frame.Visible = true
otherFrame.Visible = false
end
end)
toggleablethingos[2][2].InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
then
Frame.Visible = false
otherFrame.Visible = true
end
end)
if TransparencySlider then
Transpick = UIUtilities:Create("ImageButton", {
Name = "Transpick",
Parent = Frame,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = UIStyle.UIcolors.ColorA,
Position = UDim2.new(0, 8, 0, 172 + inDented),
Size = UDim2.new(0, 156, 0, 12),
AutoButtonColor = false,
Image = "rbxassetid://3887014957",
ScaleType = Enum.ScaleType.Tile,
TileSize = UDim2.new(0, 10, 0, 10),
ZIndex = 33
})
AutoApplyBorder(Transpick, "Picker", 33,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH)
Transcolor = UIUtilities:Create("ImageLabel", {
Name = "Transcolor",
Parent = Transpick,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
Image = "rbxassetid://3887017050",
ImageColor3 = ColorP.BackgroundColor3,
ZIndex = 33,
})
Transdrag = UIUtilities:Create("Frame", {
Name = "Transdrag",
Parent = Transcolor,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = UIStyle.UIcolors.ColorA,
Position = UDim2.new(0, -1, 0, 0),
Size = UDim2.new(0, 2, 1, 0),
ZIndex = 33
})
end
NewColor.MouseEnter:Connect(function()
CopyNewColor.Visible = true
PasteNewColor.Visible = true
end)
NewColor.MouseLeave:Connect(function()
CopyNewColor.Visible = false
PasteNewColor.Visible = false
end)
OldColor.MouseEnter:Connect(function()
CopyOldColor.Visible = true
end)
OldColor.MouseLeave:Connect(function()
CopyOldColor.Visible = false
end)
UpdatePickers(ColorP.BackgroundColor3)
ColorP.MouseButton1Down:Connect(function()
if isColorThingOpen and isColorThingOpen ~= MasterFrame
then
return
end
MasterFrame.Visible = not MasterFrame.Visible
if MasterFrame.Visible == false then
isColorThingOpen = nil
else
isColorThingOpen = MasterFrame
end
UpdatePickers(ColorP.BackgroundColor3)
if MasterFrame.Visible then
OldColor.BackgroundTransparency =
ColorP.BackgroundTransparency
OldColor.BackgroundColor3 = ColorP.BackgroundColor3
end
end)
PasteNewColor.MouseButton1Down:Connect(function()
if ClipboardColor then
NewColor.BackgroundColor3 = ClipboardColor
UpdatePickers(NewColor.BackgroundColor3)
end
end)
CopyOldColor.MouseButton1Down:Connect(function()
ClipboardColor = OldColor.BackgroundColor3
end)
CopyNewColor.MouseButton1Down:Connect(function()
ClipboardColor = NewColor.BackgroundColor3
end)
ApplyButton.MouseButton1Down:Connect(function()
ColorP.BackgroundColor3 = NewColor.BackgroundColor3
ColorP.BackgroundTransparency =
NewColor.BackgroundTransparency
MasterFrame.Visible = false
isColorThingOpen = nil
end)
Huepick.MouseButton1Down:Connect(function()
updateHue()
moveconnection = Mouse.Move:Connect(function()
updateHue()
end)
releaseconnection =
game:GetService("UserInputService").InputEnded:Connect(function(mouse)
if mouse.UserInputType ==
Enum.UserInputType.MouseButton1 then
updateHue()
moveconnection:Disconnect()
releaseconnection:Disconnect()
end
end)
end)
ColorP.BorderColor3 =
Color3.fromRGB(math.clamp((ColorP.BackgroundColor3.R * 255) - 40, 40, 255),
math.clamp((ColorP.BackgroundColor3.G * 255) - 40, 40, 255),
math.clamp((ColorP.BackgroundColor3.B * 255) - 40, 40, 255))
ColorP:GetPropertyChangedSignal("BackgroundColor3"):Connect(function()
local Hue, Sat, Val = RGBtoHSV(ColorP.BackgroundColor3)
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Color"] =
ColorP.BackgroundColor3
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " ..
Parameters.Stance].Changed:Fire(ColorP.BackgroundColor3,
ColorP.BackgroundTransparency)
local Color = ColorP.BackgroundColor3
ColorP.BorderColor3 = Color3.fromRGB(math.clamp((Color.R *
255) - 40, 40, 255), math.clamp((Color.G * 255) - 40, 40, 255), math.clamp((Color.B
* 255) - 40, 40, 255))
end)
if Parameters.StartTrans then
ColorP:GetPropertyChangedSignal("BackgroundTransparency"):Connect(function()
if fading == false then
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Transparency"] =
ColorP.BackgroundTransparency
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " ..
Parameters.Stance].Changed:Fire(ColorP.BackgroundColor3,
ColorP.BackgroundTransparency)
actualtrans.Value =
ColorP.BackgroundTransparency
end
end)
end
table.insert(OpenCloseItems, Alpha)
table.insert(OpenCloseItems, ColorP)
Menu[Parameters.Tab][Parameters.Section][Parameters.ObjectName]
["Color " .. Parameters.Stance]["Animations"] = fakeFlagsShit
Menu[Parameters.Tab][Parameters.Section][Parameters.ObjectName]
["Color " .. Parameters.Stance]["Animation Selection"] = dropKickFlag
Menu[Parameters.Tab][Parameters.Section][Parameters.ObjectName]
["Color " .. Parameters.Stance] = setmetatable({}, {
__index = function(self, i)
return ColorProxy[i]
end,
__newindex = function(self, i, v)
if i == "Color" then
if type(v) == "table" then
v = Color3.new(v.r, v.g, v.b)
end
ColorP.BackgroundColor3 = v
elseif i == "Transparency" then
ColorP.BackgroundTransparency = v
elseif i == "Animations" then
for anim, data in next, v do
for name, values in next, data do
if v[anim][name]["Value"] then
fakeFlagsShit[anim][name]
["Value"] = v["Value"]
elseif v[anim][name]["Color"] then
fakeFlagsShit[anim][name]
["Color"] = Color3.new(v[anim][name]["Color"].r, v[anim][name]["Color"].g, v[anim]
[name]["Color"].b)
if v[anim][name]
["Transparency"] then
fakeFlagsShit[anim]
[name]["Transparency"] = v[anim][name]["Transparency"]
end
end
end
end
end
ColorProxy[i] = v
end
})
local animationLoop
reUpdate = function(anim)
if animationLoop then
animationLoop:Disconnect()
end
if anim == "Rainbow" then
animationLoop = RunService.Stepped:Connect(function()
local oldhue, oldsat, oldval =
Color3.toHSV(Menu[Parameters.Tab][Parameters.Section][Parameters.ObjectName]["Color
" .. Parameters.Stance]["Color"])
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Color"] =
(Color3.fromHSV((tick() * (fakeFlagsShit["Rainbow"]["Speed"]["Value"] / 100) -
math.floor(tick() * (fakeFlagsShit["Rainbow"]["Speed"]["Value"] / 100))), oldsat,
oldval))
end)
elseif anim == "Linear" then
animationLoop = RunService.Stepped:Connect(function()
local percentage = (tick() *
(fakeFlagsShit["Linear"]["Speed"]["Value"] / 100) - math.floor(tick() *
(fakeFlagsShit["Linear"]["Speed"]["Value"] / 100)))
if percentage > 0.5 then
percentage = percentage - 0.5
percentage = percentage * 2
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Color"] =
fakeFlagsShit["Linear"]["Keyframe 2"]["Color"]:Lerp(fakeFlagsShit["Linear"]
["Keyframe 1"]["Color"], percentage)
if Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] then
local a = fakeFlagsShit["Linear"]
["Keyframe 2"]["Transparency"]
local b = fakeFlagsShit["Linear"]
["Keyframe 1"]["Transparency"]
local c = percentage
Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] = (a + (b - a)*c)
end
else
percentage = percentage * 2
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Color"] =
(fakeFlagsShit["Linear"]["Keyframe 1"]["Color"]:Lerp(fakeFlagsShit["Linear"]
["Keyframe 2"]["Color"], percentage))
if Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] then
local a = fakeFlagsShit["Linear"]
["Keyframe 1"]["Transparency"]
local b = fakeFlagsShit["Linear"]
["Keyframe 2"]["Transparency"]
local c = percentage
Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] = (a + (b - a)*c)
end
end
end)
elseif anim == "Oscillating" then
animationLoop = RunService.Stepped:Connect(function()
local percentage = (tick() *
(fakeFlagsShit["Oscillating"]["Speed"]["Value"] / 100) - math.floor(tick() *
(fakeFlagsShit["Oscillating"]["Speed"]["Value"] / 100)))
if percentage > 0.5 then
percentage = percentage - 0.5
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Color"] =
(fakeFlagsShit["Oscillating"]["Keyframe 2"]
["Color"]:Lerp(fakeFlagsShit["Oscillating"]["Keyframe 1"]["Color"],
math.sin(percentage * math.pi)))
if Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] then
local a =
fakeFlagsShit["Oscillating"]["Keyframe 2"]["Transparency"]
local b =
fakeFlagsShit["Oscillating"]["Keyframe 1"]["Transparency"]
local c = math.sin(percentage *
math.pi)
Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] = (a + (b - a)*c)
end
else
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Color"] =
(fakeFlagsShit["Oscillating"]["Keyframe 1"]
["Color"]:Lerp(fakeFlagsShit["Oscillating"]["Keyframe 2"]["Color"],
math.sin(percentage * math.pi)))
if Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] then
local a =
fakeFlagsShit["Oscillating"]["Keyframe 1"]["Transparency"]
local b =
fakeFlagsShit["Oscillating"]["Keyframe 2"]["Transparency"]
local c = math.sin(percentage *
math.pi)
Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] = (a + (b - a)*c)
end
end
end)
elseif anim == "Strobe" then
animationLoop = RunService.Stepped:Connect(function()
local percentage = (tick() *
(fakeFlagsShit["Strobe"]["Speed"]["Value"] / 100) - math.floor(tick() *
(fakeFlagsShit["Strobe"]["Speed"]["Value"] / 100)))
if percentage > 0.5 then
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Color"] =
fakeFlagsShit["Strobe"]["Keyframe 2"]["Color"]
if Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] then
Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] = (fakeFlagsShit["Strobe"]["Keyframe 2"]["Transparency"])
end
else
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Color"] =
fakeFlagsShit["Strobe"]["Keyframe 1"]["Color"]
if Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] then
Menu[Parameters.Tab]
[Parameters.Section][Parameters.ObjectName]["Color " .. Parameters.Stance]
["Transparency"] = (fakeFlagsShit["Strobe"]["Keyframe 1"]["Transparency"])
end
end
end)
elseif anim == "Sawtooth" then
animationLoop = RunService.Stepped:Connect(function()
local percentage = (tick() *
(fakeFlagsShit["Sawtooth"]["Speed"]["Value"] / 100) - math.floor(tick() *
(fakeFlagsShit["Sawtooth"]["Speed"]["Value"] / 100)))
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Color"] =
(fakeFlagsShit["Sawtooth"]["Keyframe 1"]["Color"]:Lerp(fakeFlagsShit["Sawtooth"]
["Keyframe 2"]["Color"], percentage))
if Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Transparency"] then
local a = fakeFlagsShit["Sawtooth"]
["Keyframe 1"]["Transparency"]
local b = fakeFlagsShit["Sawtooth"]
["Keyframe 2"]["Transparency"]
local c = percentage
Menu[Parameters.Tab][Parameters.Section]
[Parameters.ObjectName]["Color " .. Parameters.Stance]["Transparency"] = (a + (b -
a)*c)
end
end)
end
end
end
Updater()
ActivationMethod.Changed:Connect(function()
Menu[Tab][Section][ObjectName]["Bind"]["Activation Type"] =
ActivationMethod.Value
Updater()
end)
local recording = false
UserInputService.InputBegan:Connect(function(Input,
gameProcessed)
if recording == true and Input.UserInputType ==
Enum.UserInputType.Keyboard then
if Input.KeyCode.Value == 27 then
Val.Value = "None"
Menu[Tab][Section][ObjectName]["Bind"]["Key"] =
"None"
Bind.Text = "None"
else
local key = tostring(Input.KeyCode)
Val.Value = key:sub(14)
Menu[Tab][Section][ObjectName]["Bind"]["Key"] =
Input.KeyCode
Bind.Text = string.sub(string.upper(Val.Value),
1, 4)
end
recording = false
b.BackgroundColor3 = UIStyle.UIcolors.ColorG
end
end)
Val.Changed:Connect(function()
if not recording then
local key = Val.Value
if key == "" or key == "None" then
Menu[Tab][Section][ObjectName]["Bind"]["Key"] =
"None"
Bind.Text = "None"
else
Menu[Tab][Section][ObjectName]["Bind"]["Key"] =
Enum.KeyCode[key]
Bind.Text = string.upper(string.sub(key, 1, 4))
end
end
end)
local function onButtonActivated()
b.BackgroundColor3 = UIStyle.UIcolors.Accent
Bind.Text = "None"
recording = true
end
Bind.MouseButton1Down:Connect(onButtonActivated)
Menu[Tab][Section][ObjectName]["Bind"] = setmetatable({}, {
__index = function(self, i)
return BindsProxy[i]
end,
__newindex = function(self, i, v)
if i == "Key" and not recording then
Val.Value = tostring(v):sub(14)
elseif i == "Activation Type" then
ActivationMethod.Value = v
end
BindsProxy[i] = v
end
})
Menu[Tab][Section][ObjectName]["Bind"]["Activation Type"] =
"Always"
end
UILibrary.Watermark = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0, 1),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BackgroundTransparency = 0,
BorderColor3 = UIStyle.UIcolors.FullWhite,
Visible = false,
BorderMode = Enum.BorderMode.Outline,
BorderSizePixel = 0,
Name = "Watermark",
Parent = Core,
Position = UDim2.new(0, 12, 0, -10),
Size = UDim2.new(0, 428, 0, 24),
ZIndex = 1
})
table.insert(UIAccents, WatermarkAccentStyling)
UILibrary.Watermark.MouseEnter:Connect(function()
UIUtilities:Tween(UILibrary.Watermark, TweenInfo.new(0.1,
Enum.EasingStyle.Linear, Enum.EasingDirection.In), { BackgroundTransparency = 1,
Active = false })
UIUtilities:Tween(WatermarkAccent, TweenInfo.new(0.1,
Enum.EasingStyle.Linear, Enum.EasingDirection.In), { BackgroundTransparency = 1,
Active = false })
UIUtilities:Tween(WatermarkText, TweenInfo.new(0.1,
Enum.EasingStyle.Linear, Enum.EasingDirection.In), { TextTransparency = 1, Active =
false })
end)
UILibrary.Watermark.MouseLeave:Connect(function()
UIUtilities:Tween(UILibrary.Watermark, TweenInfo.new(0.1,
Enum.EasingStyle.Linear, Enum.EasingDirection.In), { BackgroundTransparency = 0,
Active = true })
UIUtilities:Tween(WatermarkAccent, TweenInfo.new(0.1,
Enum.EasingStyle.Linear, Enum.EasingDirection.In), { BackgroundTransparency = 0,
Active = true })
UIUtilities:Tween(WatermarkText, TweenInfo.new(0.1,
Enum.EasingStyle.Linear, Enum.EasingDirection.In), { TextTransparency = 0, Active =
true })
end)
local months =
{"Jan.","Feb.","Mar.","Apr.","May","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."
}
local daysinmonth = {31,28,31,30,31,30,31,31,30,31,30,31}
local maxWidth = 60
local text = Message
local msgsize = TextService:GetTextSize(Message,
UIStyle.HeaderFont.WatermarkTxtSize, UIStyle.HeaderFont.Font,
Vector2.new(9999999999999999999999999999999, 0))
do -- WARNING !! ALAN CODE AHEAD!!
local split = text:split("")
local lastspaceidx = 0 -- the text idx that the last
space is
local charinline = 0
for i, v in next, (split) do
charinline = charinline + 1
if v == " " then
lastspaceidx = i
end
if charinline >= maxWidth then
split[lastspaceidx] = "\n" -- insert a
thing
charinline = 0
end
end
text = ""
for i, v in next, (split) do
text = text .. v
end
end
-- ok most of the gayness is over
local split = text:split("\n")
local textlinelength = {}
local verticalLength = 8
for i, v in next, (split) do
local d = TextService:GetTextSize(v,
UIStyle.HeaderFont.WatermarkTxtSize, UIStyle.HeaderFont.Font,
Vector2.new(9999999999999999999999999999999, 0))
textlinelength[i] = d.x
verticalLength = verticalLength + d.y
end
table.sort(textlinelength, function(a, b) return a > b end)
local longestthing = textlinelength[1]
local FakeBackGround = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0, 0),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BackgroundTransparency = 1,
BorderColor3 = UIStyle.UIcolors.FullWhite,
BorderMode = Enum.BorderMode.Outline,
BorderSizePixel = 0,
Name = "Event",
Parent = MessageLogs,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(0, longestthing + 12, 0,
verticalLength),
ZIndex = 1
})
local EventLogContainer = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0, 0),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BackgroundTransparency = 1,
BorderColor3 = UIStyle.UIcolors.FullWhite,
BorderMode = Enum.BorderMode.Outline,
BorderSizePixel = 0,
Name = "Event",
Parent = FakeBackGround,
Position = UDim2.new(0, -msgsize.X + 32, 0, 0),
Size = UDim2.new(1, 0, 1, -4),
ZIndex = 1
})
local BackGroundStyling = UIUtilities:Create("UIGradient",
{
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(1,
UIStyle.UIcolors.ColorA)
}),
Rotation = 90,
Parent = EventLogContainer
})
local BackGroundAccent = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0, 0),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BorderSizePixel = 0,
BackgroundTransparency = 1,
Name = "UI",
Parent = EventLogContainer,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(0, 2, 1, 0),
ZIndex = 2
})
local Hue, Sat, Val = RGBtoHSV(UIStyle.UIcolors.Accent)
local BackGroundAccentStyling =
UIUtilities:Create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
Color3.fromHSV(Hue, Sat, Val - 0.1)),
ColorSequenceKeypoint.new(1,
Color3.new(UIStyle.UIcolors.Accent.R, UIStyle.UIcolors.Accent.G,
UIStyle.UIcolors.Accent.B))
}),
Rotation = 180,
Parent = BackGroundAccent
})
local BackGroundText = UIUtilities:Create("TextLabel", {
AnchorPoint = Vector2.new(1, 0),
BackgroundTransparency = 1,
Position = UDim2.new(1, 0, 0, 0),
Parent = EventLogContainer,
Size = UDim2.new(1, -6, 1, 0),
ZIndex = 2,
Font = UIStyle.HeaderFont.Font,
LineHeight = 1.1,
Text = text,
TextColor3 = UIStyle.UIcolors.FullWhite,
TextSize = UIStyle.HeaderFont.WatermarkTxtSize,
TextTransparency = 1,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 1,
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Center
})
coroutine.wrap(function()
UIUtilities:Tween(
EventLogContainer,
TweenInfo.new(FadeTime, TweenStyling,
TweenDir),
{BackgroundTransparency = 0}
)
UIUtilities:Tween(
BackGroundAccent,
TweenInfo.new(FadeTime, TweenStyling,
TweenDir),
{BackgroundTransparency = 0}
)
UIUtilities:Tween(
BackGroundText,
TweenInfo.new(FadeTime, TweenStyling,
TweenDir),
{TextTransparency = 0}
)
EventLogContainer:TweenPosition(
UDim2.new(0, 0, 0, 0),
TweenDir,
TweenStyling,
MoveTime
)
realWait(MoveTime)
realWait(Time)
MoveTime = 1
FadeTime = 0.75
TweenDir = Enum.EasingDirection.In
UIUtilities:Tween(
EventLogContainer,
TweenInfo.new(FadeTime, TweenStyling,
TweenDir),
{BackgroundTransparency = 1}
)
UIUtilities:Tween(
BackGroundAccent,
TweenInfo.new(FadeTime, TweenStyling,
TweenDir),
{BackgroundTransparency = 1}
)
UIUtilities:Tween(
BackGroundText,
TweenInfo.new(FadeTime, TweenStyling,
TweenDir),
{TextTransparency = 1}
)
EventLogContainer:TweenPosition(
UDim2.new(0, -msgsize.X + 48, 0, 0),
TweenDir,
TweenStyling,
MoveTime
)
realWait(FadeTime)
FakeBackGround:Destroy()
end)()
--end)
end
UILibrary.KeyBindContainer = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0, 0),
BackgroundTransparency = 1,
Parent = Core,
Visible = false,
Position = UDim2.new(0, 8, 0.45, 0),
Size = UDim2.new(0, 256, 0, 532)
})
local KeyBindContainerOrganizer = UIUtilities:Create("UIListLayout", {
Parent = UILibrary.KeyBindContainer,
Padding = UDim.new(0, -18),
FillDirection = Enum.FillDirection.Vertical,
HorizontalAlignment = Enum.HorizontalAlignment.Left,
SortOrder = Enum.SortOrder.LayoutOrder,
VerticalAlignment = Enum.VerticalAlignment.Top
})
UILibrary.UseListSize = false
function UILibrary:AddKeyBindList(KeyBindName)
local KeyBindTitleFakeBackGround = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0, 0),
Visible = true,
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BackgroundTransparency = 1,
BorderColor3 = UIStyle.UIcolors.FullWhite,
BorderMode = Enum.BorderMode.Outline,
BorderSizePixel = 0,
Name = KeyBindName,
Parent = UILibrary.KeyBindContainer,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(1, 0, 0, 14),
ZIndex = 6
})
local KeyBindTitleEventLogContainer = UIUtilities:Create("Frame",
{
AnchorPoint = Vector2.new(0, 0),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BackgroundTransparency = 0,
BorderColor3 = UIStyle.UIcolors.FullWhite,
BorderMode = Enum.BorderMode.Outline,
BorderSizePixel = 0,
Name = KeyBindName,
Parent = KeyBindTitleFakeBackGround,
Position = UDim2.new(0, 0, 0, 3),
Size = UDim2.new(1, 0, 0, 18),
ZIndex = 7
})
local KeyBindTitleBackGroundStyling
if KeyBindName == "Keybinds" then -- too lazy srry
local PercentageCover =
10/KeyBindTitleFakeBackGround.AbsoluteSize.Y
KeyBindTitleBackGroundStyling =
UIUtilities:Create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(PercentageCover -
PercentageCover/8, UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1,
UIStyle.UIcolors.ColorA)
}),
Rotation = 90,
Parent = KeyBindTitleEventLogContainer
})
else
KeyBindTitleBackGroundStyling =
UIUtilities:Create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1,
UIStyle.UIcolors.ColorA)
}),
Rotation = 0,
Parent = KeyBindTitleEventLogContainer
})
end
local v1 = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = UIStyle.UIcolors.ColorC,
BorderSizePixel = 0,
Name = "v1",
Parent = KeyBindTitleEventLogContainer,
Position = UDim2.new(0.5, 0, 0.5, -1),
Size = UDim2.new(1, 2, 1, 3),
ZIndex = 5
})
local v2 = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = UIStyle.UIcolors.ColorB,
BorderSizePixel = 0,
Name = "v2",
Parent = v1,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 2, 1, 2),
ZIndex = v1.ZIndex - 1
})
local KeyBindTitleBackGroundAccent = UIUtilities:Create("Frame",
{
AnchorPoint = Vector2.new(0.5, 0),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BorderSizePixel = 0,
BorderColor3 = UIStyle.UIcolors.ColorG,
BackgroundTransparency = 0,
Name = KeyBindName,
Parent = KeyBindTitleFakeBackGround,
Position = UDim2.new(0.5, 0, 0, 1),
Size = UDim2.new(1, 0, 0, 2),
ZIndex = 6
})
local KeyBindTitleBackGroundAccentBorder =
UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = UIStyle.UIcolors.ColorG,
BorderSizePixel = 0,
BorderColor3 = UIStyle.UIcolors.ColorG,
BackgroundTransparency = 0,
Name = "nut",
Parent = KeyBindTitleBackGroundAccent,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 1, 1, 1),
ZIndex = 4
})
local KeyBindTitleHue, KeyBindTitleSat, KeyBindTitleVal =
RGBtoHSV(UIStyle.UIcolors.Accent)
local KeyBindTitleBackGroundAccentStyling =
UIUtilities:Create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
Color3.fromHSV(KeyBindTitleHue, KeyBindTitleSat, KeyBindTitleVal - 0.1)),
ColorSequenceKeypoint.new(1,
Color3.new(UIStyle.UIcolors.Accent.R, UIStyle.UIcolors.Accent.G,
UIStyle.UIcolors.Accent.B))
}),
Rotation = 90,
Parent = KeyBindTitleBackGroundAccent
})
table.insert(UIAccents, KeyBindTitleBackGroundAccentStyling)
local KeyBindTitleBackGroundText =
UIUtilities:Create("TextLabel", {
AnchorPoint = Vector2.new(1, 0.5),
BackgroundTransparency = 1,
Position = UDim2.new(1, 0, 0.5, 0),
Parent = KeyBindTitleEventLogContainer,
Name = "TEXTEFFECT",
Size = UDim2.new(1, -4, 1, 0),
Position = UDim2.new(1, 4, 0, 9),
ZIndex = 7,
Font = UIStyle.HeaderFont.Font,
LineHeight = 1,
Text = KeyBindName,
TextColor3 = UIStyle.UIcolors.FullWhite,
TextSize = UIStyle.HeaderFont.WatermarkTxtSize,
TextTransparency = 0,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 1,
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Center
})
KeyBindList[KeyBindName] = KeyBindTitleBackGroundText
KeyBindTitleFakeBackGround.Size = UDim2.new(0,
TextService:GetTextSize(KeyBindName, UIStyle.HeaderFont.WatermarkTxtSize,
UIStyle.HeaderFont.Font, Vector2.new(10000, 0)).X + 8, 0, 36)
local function UpdateSize()
if UILibrary.UseListSize then
for i, v in next, (KeyBindList) do
v.Parent.Parent.Size = UDim2.new(0,
TextService:GetTextSize(v.Text, UIStyle.HeaderFont.WatermarkTxtSize,
UIStyle.HeaderFont.Font, Vector2.new(10000, 0)).X + 8, 0, 36)
end
else
local biggest = 0
for i, v in next, (KeyBindList) do
local size = TextService:GetTextSize(v.Text,
UIStyle.HeaderFont.WatermarkTxtSize, UIStyle.HeaderFont.Font, Vector2.new(10000,
0)).X + 8
if v.Visible and size > biggest then
biggest = size
end
end
KeyBindTitleBackGroundText.Size = UDim2.new(0,
biggest, 0, 36)
for i, v in next, (KeyBindList) do
v.Parent.Parent.Size = UDim2.new(0, biggest, 0,
36)
end
end
end
KeyBindTitleBackGroundText:GetPropertyChangedSignal("Text"):Connect(function()
KeyBindTitleFakeBackGround.Size = UDim2.new(0,
TextService:GetTextSize(KeyBindTitleBackGroundText.Text,
UIStyle.HeaderFont.WatermarkTxtSize, UIStyle.HeaderFont.Font, Vector2.new(10000,
0)).X + 8, 0, 36)
UpdateSize()
end)
KeyBindTitleFakeBackGround:GetPropertyChangedSignal("Size"):Connect(function()
KeyBindTitleBackGroundText.Size =
KeyBindTitleFakeBackGround.Size
end)
KeyBindTitleBackGroundText:GetPropertyChangedSignal("Visible"):Connect(function()
KeyBindTitleFakeBackGround.Visible =
KeyBindTitleBackGroundText.Visible
UpdateSize()
end)
KeyBindTitleBackGroundText.Visible = false
end
UILibrary:AddKeyBindList("Keybinds")
KeyBindList["Keybinds"].Visible = true
local MainContainer = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BorderSizePixel = 0,
Name = "UI",
Parent = Core,
Position = UDim2.new(0.5, 0, 0.5, -18),
Size = UDim2.new(0, 498, 0, 632),
ZIndex = 6,
Active = true,
Selectable = true,
})
local MainContainerBackGroundGradient =
UIUtilities:Create("UIGradient",{
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(0.06, UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1, UIStyle.UIcolors.ColorA)
}),
Rotation = 90,
Parent = MainContainer
})
UILibrary.CheatNameText = UIUtilities:Create("TextLabel", {
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 1, 4),
Size = UDim2.new(1, 0, 0, 14),
ZIndex = 8,
Font = UIStyle.TextFont.Font,
Text = UIStyle.CheatName,
Parent = MainContainerAccent,
TextColor3 = UIStyle.UIcolors.FullWhite,
LineHeight = 1.2,
TextSize = UIStyle.TextFont.CheatTextSize,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Center
})
table.insert(OpenCloseItems, UILibrary.CheatNameText)
function UILibrary.Setwatermarkcheatname(text)
local message = text .. " | " .. Parameters.UserType .. " | "
.. tostring(months[month]) .. " " .. tostring(day) .. " " .. tostring(year)
local fullsize = TextService:GetTextSize(message,
UIStyle.HeaderFont.WatermarkTxtSize, UIStyle.HeaderFont.Font, Vector2.new(16000,
0))
UILibrary.Watermark.Size = UDim2.new(0, fullsize.X + 24, 0,
fullsize.Y + 8)
WatermarkText.Text = message
end
local MainTabsContainerBackGroundGradient =
UIUtilities:Create("UIGradient",{
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(0.06, UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1, UIStyle.UIcolors.ColorA)
}),
Rotation = 90,
Parent = MainTabsContainer
})
function UILibrary:CreateButton(Parameters)
Menu[Parameters.Tab][Parameters.Section][Parameters.Name] = {}
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Toggle"] = {}
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Toggle"].Changed = Signal.new()
Menu[Parameters.Tab][Parameters.Section][Parameters.Name].Save =
function()
return Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Color 2"] and {
["Toggle"] = {
["Enabled"] = Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Toggle"]["Enabled"]
},
["Color 1"] = Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Color 1"].Save(),
["Color 2"] = Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Color 2"].Save(),
} or Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Color 1"] and {
["Toggle"] = {
["Enabled"] = Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Toggle"]["Enabled"]
},
["Color 1"] = Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Color 1"].Save(),
} or Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Bind"] and {
["Toggle"] = {
["Enabled"] = Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Toggle"]["Enabled"]
},
["Bind"] = {
["Activation Type"] = Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Bind"]["Activation Type"],
["Key"] = tostring(Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Bind"]["Key"]),
}
} or {
["Toggle"] = {
["Enabled"] = Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Toggle"]["Enabled"]
}
}
end
local Proxy = Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Toggle"]
local Hitbox = UIUtilities:Create("TextButton", {
BackgroundTransparency = 1,
Name = Parameters.Name,
Parent = SubSections[Parameters.Tab][Parameters.Section],
Size = UDim2.new(1, 0, 0, 8),
Visible = true,
ZIndex = 19,
Text = ""
})
if Parameters.Tooltip then
Hitbox.MouseEnter:Connect(function()
UILibrary.CallToolTip(Parameters.Tooltip,
Hitbox.AbsolutePosition, Hitbox.AbsolutePosition + Vector2.new(8, 16),
Hitbox.AbsoluteSize)
end)
end
Bool.Changed:Connect(function()
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Toggle"]["Enabled"] = Bool.Value
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Toggle"].Changed:Fire(Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Toggle"]["Enabled"])
if Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Toggle"]["Enabled"] == true then
ClickMask.BackgroundColor3 = UIStyle.UIcolors.Accent
else
ClickMask.BackgroundColor3 = UIStyle.UIcolors.ColorD
end
if Parameters.KeyBind then
KeyBindList[Parameters.Section .. ": " ..
Parameters.Name].Visible = Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Toggle"]["Enabled"]
if Parameters.Callback then
Parameters.Callback(Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Toggle"]["Enabled"], Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Bind"]["Active"])
end
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Toggle"].Changed:Fire(v, Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Bind"]["Active"])
else
if Parameters.Callback then
Parameters.Callback(Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Toggle"]["Enabled"])
end
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Toggle"].Changed:Fire(Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Toggle"]["Enabled"])
end
end)
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Toggle"] = setmetatable({}, {
__index = function(self, i)
return Proxy[i]
end,
__newindex = function(self, i, v) -- so that you can do
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]["Value"] = true or false
if i == "Enabled" then-- if ur tryna set the value of
the toggle
Bool.Value = v
end
Proxy[i] = v
end
})
end
function UILibrary:CreateSlider(Parameters) -- Parameters.MaximumNumber
Parameters.DefaultValue = Parameters.DefaultValue and
math.max(math.min(Parameters.DefaultValue, Parameters.MaximumNumber),
Parameters.MinimumNumber) or nil
Menu[Parameters.Tab][Parameters.Section][Parameters.Name] = {}
Menu[Parameters.Tab][Parameters.Section][Parameters.Name].Changed
= Signal.new()
Menu[Parameters.Tab][Parameters.Section][Parameters.Name].Save =
function()
return {["Value"] = Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Value"]}
end
local Proxy = Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]
if not Parameters.Suffix then
Parameters.Suffix = ""
end
local Slider = UIUtilities:Create("Frame", {
Name = Parameters.Name,
Parent = SubSections[Parameters.Tab][Parameters.Section],
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
ZIndex = 22,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(1, 0, 0, 20)
})
local TextLabel = UIUtilities:Create("TextButton", {
Parent = Slider,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
Position = UDim2.new(0, 8, 0, -4),
Size = UDim2.new(1, 0, 0, 15),
Font = UIStyle.TextFont.Font,
ZIndex = 22,
Text = Parameters.Name,
TextColor3 = UIStyle.UIcolors.FullWhite,
TextStrokeColor3 = Color3.new(),
LineHeight = 1.2,
TextStrokeTransparency = 0.5,
TextSize = UIStyle.TextFont.TxtSize,
TextXAlignment = Enum.TextXAlignment.Left
})
local AddText = UIUtilities:Create("TextButton", {
Parent = Slider,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
Position = UDim2.new(1, -32, 0, -4),
Size = UDim2.new(0, 8, 0, 15),
Font = UIStyle.TextFont.Font,
ZIndex = 22,
Visible = false,
Text = "+",
TextColor3 = UIStyle.UIcolors.FullWhite,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
TextSize = UIStyle.TextFont.TxtSize,
TextXAlignment = Enum.TextXAlignment.Center
})
local SubtractText = UIUtilities:Create("TextButton", {
Parent = Slider,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BackgroundTransparency = 1,
Position = UDim2.new(1, -22, 0, -4),
Size = UDim2.new(0, 8, 0, 15),
Font = UIStyle.TextFont.Font,
ZIndex = 22,
Visible = false,
Text = "-",
TextColor3 = UIStyle.UIcolors.FullWhite,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
TextSize = UIStyle.TextFont.TxtSize,
TextXAlignment = Enum.TextXAlignment.Center
})
table.insert(OpenCloseItems, TextLabel)
local Button = UIUtilities:Create("TextButton", {
AnchorPoint = Vector2.new(0.5, 0),
Name = "Button",
Parent = Slider,
BackgroundTransparency = 1,
BackgroundColor3 = UIStyle.UIcolors.ColorD,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0, 12),
Size = UDim2.new(1, -18, 0, 8),
AutoButtonColor = false,
ZIndex = 21,
Text = ""
})
local ButtonStyle = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Name = "Button",
Parent = Button,
BackgroundTransparency = 0,
BackgroundColor3 = UIStyle.UIcolors.ColorD,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 22
})
local ButtonStyleStyling = UIUtilities:Create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255,
255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(180, 180,
180))
}),
Rotation = 90,
Parent = ButtonStyle
})
table.insert(OpenCloseItems, ButtonStyle)
AutoApplyBorder(ButtonStyle, Parameters.Name, 22,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH, true)
local Frame = UIUtilities:Create("Frame", {
Parent = Button,
BackgroundColor3 = UIStyle.UIcolors.Accent,
BorderSizePixel = 0,
ZIndex = 22,
Size = UDim2.new(0, (Parameters.DefaultValue and
(Parameters.DefaultValue - Parameters.MinimumNumber) or 0) /
(Parameters.MaximumNumber - Parameters.MinimumNumber) * Button.AbsoluteSize.X, 1,
0)
})
function UILibrary:CreateDropdown(Parameters)
Menu[Parameters.Tab][Parameters.Section][Parameters.Name] = {}
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Dropdown"] = {}
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Dropdown"].Changed = Signal.new()
Menu[Parameters.Tab][Parameters.Section][Parameters.Name].Save =
function()
return {
["Value"] = Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Value"]
}
end
local Contained = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0),
Name = Parameters.Name,
Parent = SubSections[Parameters.Tab][Parameters.Section],
BackgroundColor3 = Color3.fromRGB(0, 0, 0),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0.5, 0, 0, 0),
Size = UDim2.new(1, 0, 0, 32),
ZIndex = 22,
})
local ValueContainer = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0),
Name = "ValueContainer",
Parent = Contained,
BackgroundTransparency = 1,
Position = UDim2.new(0.5, 0, 1, 4),
Size = UDim2.new(1, -18, 0, 16),
Visible = false,
ZIndex = 23,
})
local FakeSelection = UIUtilities:Create("TextButton", {
Active = true,
AnchorPoint = Vector2.new(0.5, 1),
Name = "FAKE",
Parent = Contained,
BackgroundColor3 = Color3.fromRGB(44, 44, 44),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(39, 39, 39),
BorderSizePixel = 3,
Position = UDim2.new(0.5, 0, 1, 0),
Selectable = true,
Size = UDim2.new(1, -18, 0, 20),
ZIndex = 24,
Font = UIStyle.TextFont.Font,
ClipsDescendants = false,
LineHeight = 1.1,
Text = "",
TextColor3 = UIStyle.UIcolors.FullWhite,
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
TextXAlignment = Enum.TextXAlignment.Left,
})
local Selection = UIUtilities:Create("TextButton", {
Active = true,
AnchorPoint = Vector2.new(0.5, 1),
Name = "Selection",
Parent = Contained,
BackgroundColor3 = Color3.fromRGB(44, 44, 44),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(39, 39, 39),
BorderSizePixel = 3,
Position = UDim2.new(0.5, 0, 1, 0),
Selectable = true,
Size = UDim2.new(1, -18, 0, 20),
ZIndex = 24,
Font = UIStyle.TextFont.Font,
ClipsDescendants = true,
LineHeight = 1.1,
Text = Parameters.Values[1],
TextColor3 = UIStyle.UIcolors.FullWhite,
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
TextXAlignment = Enum.TextXAlignment.Left,
})
local DropDownTypeText = UIUtilities:Create("TextButton", {
AnchorPoint = Vector2.new(0.5, 1),
Name = "TypeOf",
Parent = Contained,
BackgroundColor3 = Color3.fromRGB(44, 44, 44),
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(39, 39, 39),
BorderSizePixel = 3,
Position = UDim2.new(0.5, 0, 1, 0),
Size = UDim2.new(1, -32, 0, 18),
ZIndex = 23,
Font = UIStyle.TextFont.Font,
LineHeight = 1.1,
Text = "-",
TextColor3 = UIStyle.UIcolors.FullWhite,
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
TextXAlignment = Enum.TextXAlignment.Right,
})
if Parameters.MultiChoice then
DropDownTypeText.Text = "..."
end
table.insert(OpenCloseItems, DropDownTypeText)
table.insert(OpenCloseItems, Selection)
local Padding = UIUtilities:Create("UIPadding", {
Parent = Selection,
PaddingLeft = UDim.new(0, 12)
})
local Padding2 = UIUtilities:Create("UIPadding", {
Parent = FakeSelection,
PaddingLeft = UDim.new(0, 12)
})
local SelectionStyling = UIUtilities:Create("Frame", {
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
Parent = FakeSelection,
BorderSizePixel = 0,
Position = UDim2.new(0, -12, 0, 0),
Size = UDim2.new(1, 12, 1, 0),
ZIndex = 23,
})
table.insert(OpenCloseItems, SelectionStyling)
local SelectionStylingGradient = UIUtilities:Create("UIGradient",
{
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(0.84,
UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1, UIStyle.UIcolors.ColorA)
}),
Rotation = 90,
Parent = SelectionStyling
})
AutoApplyBorder(SelectionStyling, "SelectionStyling", 22,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH, true)
local NameTag = UIUtilities:Create("TextLabel", {
Name = "NAMETAG",
Parent = Contained,
BackgroundTransparency = 1,
Position = UDim2.new(0, 8, 0, 0),
Size = UDim2.new(1, -12, 1, -24),
Font = UIStyle.TextFont.Font,
Text = Parameters.Name,
TextColor3 = UIStyle.UIcolors.FullWhite,
TextSize = UIStyle.TextFont.TxtSize,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 22
})
table.insert(OpenCloseItems, NameTag)
local Organizer = UIUtilities:Create("UIListLayout", {
Padding = UDim.new(0, 0),
Parent = ValueContainer,
HorizontalAlignment = Enum.HorizontalAlignment.Center,
SortOrder = Enum.SortOrder.LayoutOrder,
})
for iC, vC in next, (Parameters.Values) do
local Button = UIUtilities:Create("TextButton", {
AnchorPoint = Vector2.new(0.5, 0),
Name = "Button",
Parent = ValueContainer,
AutoButtonColor = false,
BackgroundColor3 = UIStyle.UIcolors.ColorI,
BorderColor3 = UIStyle.UIcolors.ColorB,
BorderSizePixel = 0,
BackgroundTransparency = 0,
Position = UDim2.new(0.5, 0, 0, 0),
Size = UDim2.new(1, 0, 0, 18),
ZIndex = 32,
Font = UIStyle.TextFont.Font,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0,
Text = vC,
TextColor3 = UIStyle.UIcolors.FullWhite,
TextSize = UIStyle.TextFont.TxtSize
})
local valsthing = UIUtilities:Create("BoolValue", {
Parent = Button,
Value = false,
Name = "Selection"
})
if iC == 1 and Parameters.MultiChoice then
Button.TextColor3 = UIStyle.UIcolors.Accent
valsthing.Value = true
end
local ButtonStyling = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Parent = Button,
BackgroundColor3 = UIStyle.UIcolors.ColorA,
BorderSizePixel = 1,
BorderColor3 = UIStyle.UIcolors.ColorB,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 31
})
AutoApplyBorder(ButtonStyling, vC, 31,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH)
end
local closeconnection
local inDropDown = false
local mouseent, mouseext
local function trigger()
if isColorThingOpen then
return
end
if isDropDownOpen and isDropDownOpen ~= ValueContainer then
return
end
ValueContainer.Size = UDim2.new(1, -18, 0,
#Parameters.Values * 18)
ValueContainer.Visible = not ValueContainer.Visible
isDropDownOpen = ValueContainer.Visible and ValueContainer
or nil
if ValueContainer.Visible then
if not Parameters.MultiChoice then
for _, Button in next,
(ValueContainer:GetChildren()) do
if Button:IsA("TextButton") then
if Button.Text == Selection.Text
then
Button.TextColor3 =
UIStyle.UIcolors.Accent
else
Button.TextColor3 =
UIStyle.UIcolors.FullWhite
end
end
end
else
for _, Button in next,
(ValueContainer:GetChildren()) do
if Button:IsA("TextButton") then
if Button.Selection.Value then
Button.TextColor3 =
UIStyle.UIcolors.Accent
else
Button.TextColor3 =
UIStyle.UIcolors.FullWhite
end
end
end
end
task.wait()
mouseent =
ValueContainer.MouseEnter:Connect(function()
inDropDown = true
end)
mouseext =
ValueContainer.MouseLeave:Connect(function()
inDropDown = false
end)
closeconnection =
UserInputService.InputBegan:Connect(function(input)
if input.UserInputType ==
Enum.UserInputType.MouseButton1 or input.UserInputType ==
Enum.UserInputType.MouseButton2 then
if not inDropDown then
ValueContainer.Visible = false
closeconnection:Disconnect()
mouseent:Disconnect()
mouseext:Disconnect()
end
end
end)
else
if closeconnection then
closeconnection:Disconnect()
end
if mouseent then
mouseent:Disconnect()
end
if mouseext then
mouseext:Disconnect()
end
end
end
Selection.MouseButton1Down:Connect(trigger)
if Parameters.Tooltip then
Selection.MouseEnter:Connect(function()
UILibrary.CallToolTip(Parameters.Tooltip,
Selection.AbsolutePosition, Selection.AbsolutePosition + Vector2.new(0, 24),
Selection.AbsoluteSize)
end)
end
local function update()
local chosentext = {}
Selection.Text = ""
for e = 1, #chosentext do
if e == #chosentext then
Selection.Text = Selection.Text ..
chosentext[e]
else
Selection.Text = Selection.Text ..
chosentext[e] .. ", "
end
end
end
local function initialize()
if Parameters.MultiChoice then
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Value"] = {Parameters.Values[1]}
button.MouseButton1Down:Connect(function()
button.Selection.Value = not
button.Selection.Value
if
button:FindFirstChild("Selection") and button.Selection.Value == true then
button.TextColor3 =
UIStyle.UIcolors.Accent
else
button.TextColor3 =
UIStyle.UIcolors.FullWhite
end
update()
local chosentext = {}
for cf, c in next,
(ValueContainer:GetChildren()) do
if c:IsA("TextButton") then
if
c:FindFirstChild("Selection") and c.Selection.Value == true then
table.insert(chosentext, c.Text)
end
end
end
Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Value"] = chosentext
end)
end
end
else
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Value"] = Parameters.Values[1]
for _, ButtonA in next,
(ValueContainer:GetChildren()) do
if ButtonA:IsA("TextButton") then
ButtonA.MouseButton1Down:Connect(function()
Selection.Text = ButtonA.Text
trigger()
Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Value"] = Selection.Text
end)
end
end
end
end
initialize()
Selection:GetPropertyChangedSignal("Text"):Connect(function()
if Parameters.Callback then
Parameters.Callback(Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Value"])
end
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Dropdown"].Changed:Fire(Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Value"])
end)
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name].UpdateValues = function(NewValues)
if Parameters.MultiChoice then
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Value"] = {}
else
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Value"] = ""
end
for i, v in next, (ValueContainer:GetChildren()) do
if v ~= Organizer then
v:Destroy()
end
end
for iC, vC in next, (NewValues) do
local Button = UIUtilities:Create("TextButton", {
AnchorPoint = Vector2.new(0.5, 0),
Name = "Button",
Parent = ValueContainer,
AutoButtonColor = false,
BackgroundColor3 = UIStyle.UIcolors.ColorI,
BorderColor3 = UIStyle.UIcolors.ColorB,
BorderSizePixel = 0,
BackgroundTransparency = 0,
Position = UDim2.new(0.5, 0, 0, 0),
Size = UDim2.new(1, 0, 0, 18),
ZIndex = 32,
Font = UIStyle.TextFont.Font,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0,
Text = vC,
TextColor3 = UIStyle.UIcolors.FullWhite,
TextSize = UIStyle.TextFont.TxtSize
})
if iC == 1 and Parameters.MultiChoice then
Button.TextColor3 = UIStyle.UIcolors.Accent
end
local ButtonStyling = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Parent = Button,
BackgroundColor3 = UIStyle.UIcolors.ColorA,
BorderSizePixel = 1,
BorderColor3 = UIStyle.UIcolors.ColorB,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(1, 0, 1, 0),
ZIndex = 31
})
AutoApplyBorder(ButtonStyling, vC, 31,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH)
end
Parameters.Values = NewValues
Selection.Text = NewValues[1]
initialize()
end
local Proxy = Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]
Menu[Parameters.Tab][Parameters.Section][Parameters.Name] =
setmetatable({}, {
__index = function(self, i)
return Proxy[i]
end,
__newindex = function(self, i, v)
Proxy[i] = v
if i == "Value" then
if Parameters.MultiChoice then
for _, button in next,
(ValueContainer:GetChildren()) do
if button:IsA("TextButton") then
button.Selection.Value =
false
end
end
for _, button in next,
(ValueContainer:GetChildren()) do
if button:IsA("TextButton") then
for ball, sack in next, v do
if button.Text == sack
then
button.Selection.Value = true
end
end
update()
end
end
if Parameters.Callback then
Parameters.Callback(Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Value"])
end
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Dropdown"].Changed:Fire(Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Value"])
else
Selection.Text = v
if Parameters.Callback then
Parameters.Callback(Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Value"])
end
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Dropdown"].Changed:Fire(Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Value"])
end
end
end
})
end
function UILibrary:CreateTap(Parameters)
Menu[Parameters.Tab][Parameters.Section][Parameters.Name] = {}
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Button"] = {}
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Button"].Pressed = Signal.new()
local Hitbox = UIUtilities:Create("TextButton", {
BackgroundTransparency = 1,
Name = Parameters.Name,
Parent = SubSections[Parameters.Tab][Parameters.Section],
Size = UDim2.new(1, 0, 0, 20),
ZIndex = 24,
Font = UIStyle.TextFont.Font,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
Text = Parameters.Name,
TextSize = UIStyle.TextFont.TxtSize,
TextColor3 = UIStyle.UIcolors.FullWhite
})
table.insert(OpenCloseItems, Hitbox)
local HitboxStyling = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BorderSizePixel = 0,
Name = "Styling",
Parent = Hitbox,
Position = UDim2.new(0.5, 0, 0, 0),
Size = UDim2.new(1, -18, 1, 0),
ZIndex = 23
})
AutoApplyBorder(HitboxStyling, Parameters.Name, 21,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH, true)
table.insert(OpenCloseItems, HitboxStyling)
local HitboxStylingGradient = UIUtilities:Create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(0.84,
UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1, UIStyle.UIcolors.ColorA)
}),
Rotation = 90,
Parent = HitboxStyling
})
local releaseconnection
if Parameters.Tooltip then
Hitbox.MouseEnter:Connect(function()
UILibrary.CallToolTip(Parameters.Tooltip,
Hitbox.AbsolutePosition, Hitbox.AbsolutePosition + Vector2.new(0, 24),
Hitbox.AbsoluteSize)
end)
end
Hitbox.MouseButton1Down:Connect(function()
HitboxStylingGradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(0.84,
UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1, UIStyle.UIcolors.ColorA)
})
releaseconnection =
UserInputService.InputEnded:Connect(function(Input)
if Input.UserInputType ==
Enum.UserInputType.MouseButton1 then
realWait()
HitboxStylingGradient.Color =
ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(0.84,
UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1,
UIStyle.UIcolors.ColorA)
})
releaseconnection:Disconnect()
end
end)
end)
local LastActivation
local connection
Hitbox.MouseButton1Down:Connect(function()
if Parameters.Confirmation then
if Hitbox.Text ~= "Confirm?" then
Hitbox.Text = "Confirm?"
Hitbox.TextColor3 = UIStyle.UIcolors.Accent
LastActivation = tick()
connection =
RunService.Heartbeat:Connect(function()
if tick() - LastActivation > 2 then
Hitbox.Text = Parameters.Name
Hitbox.TextColor3 =
UIStyle.UIcolors.FullWhite
LastActivation = tick()
connection:Disconnect()
end
end)
else
if Parameters.Callback then
Parameters.Callback()
end
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Button"].Pressed:Fire()
Hitbox.Text = Parameters.Name
Hitbox.TextColor3 = UIStyle.UIcolors.FullWhite
connection:Disconnect()
LastActivation = tick()
end
else
if Parameters.Callback then
Parameters.Callback()
end
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]["Button"].Pressed:Fire()
end
end)
end
function UILibrary:CreateTextBox(Parameters)
Menu[Parameters.Tab][Parameters.Section][Parameters.Name] = {}
local Proxy = Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Value"] = Parameters.Default
Menu[Parameters.Tab][Parameters.Section][Parameters.Name].Changed
= Signal.new()
Menu[Parameters.Tab][Parameters.Section][Parameters.Name].Save =
function()
return {["Value"] = Menu[Parameters.Tab]
[Parameters.Section][Parameters.Name]["Value"]}
end
local Hitbox = UIUtilities:Create("TextButton", {
BackgroundTransparency = 1,
Name = Parameters.Name,
Parent = SubSections[Parameters.Tab][Parameters.Section],
Size = UDim2.new(1, 0, 0, 20),
ZIndex = 24,
TextTruncate = Enum.TextTruncate.AtEnd,
Text = ""
})
table.insert(OpenCloseItems, Hitbox)
local HitboxStyling = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = UIStyle.UIcolors.FullWhite,
BorderSizePixel = 0,
Name = "Styling",
Parent = Hitbox,
Size = UDim2.new(1, -18, 1, 0),
Position = UDim2.new(0.5, 0, 0.5, 0),
ZIndex = 24
})
AutoApplyBorder(HitboxStyling, Parameters.Name, 21,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH, true)
table.insert(OpenCloseItems, HitboxStyling)
local EntryBox = UIUtilities:Create("TextBox", {
ClearTextOnFocus = false,
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundTransparency = 1,
Parent = Hitbox,
Name = Parameters.Name,
Position = UDim2.new(0.5, 14, 0.5, 0),
Size = UDim2.new(1, -14, 1, 0),
ZIndex = 24,
Font = UIStyle.TextFont.Font,
TextXAlignment = Enum.TextXAlignment.Left,
TextColor3 = UIStyle.UIcolors.FullWhite,
LineHeight = 1.1,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
PlaceholderText = "...",
Text = Parameters.Default,
TextSize = UIStyle.TextFont.TxtSize
})
table.insert(OpenCloseItems, EntryBox)
local HitboxStylingGradient = UIUtilities:Create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0,
UIStyle.UIcolors.ColorD),
ColorSequenceKeypoint.new(0.84,
UIStyle.UIcolors.ColorA),
ColorSequenceKeypoint.new(1, UIStyle.UIcolors.ColorA)
}),
Rotation = 90,
Parent = HitboxStyling
})
EntryBox.Focused:Connect(function()
EntryBox.TextColor3 = UIStyle.UIcolors.Accent
end)
EntryBox.FocusLost:Connect(function()
EntryBox.TextColor3 = UIStyle.UIcolors.FullWhite
end)
EntryBox:GetPropertyChangedSignal("Text"):Connect(function()
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Value"] = EntryBox.Text
Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name].Changed:Fire()
end)
Menu[Parameters.Tab][Parameters.Section][Parameters.Name] =
setmetatable({}, {
__index = function(self, i)
return Proxy[i]
end,
__newindex = function(self, i, v)
if i == "Value" then
EntryBox.Text = v
end
Proxy[i] = v
end
})
end
function UILibrary:CreateScrollingList(Parameters)
Menu[Parameters.Tab][Parameters.Section][Parameters.Name] = {}
local Proxy = Menu[Parameters.Tab][Parameters.Section]
[Parameters.Name]
local TotalMenu = {}
local OffsetThing = 0
local Bounds = UIUtilities:Create("Frame", {
BackgroundTransparency = 1,
Parent = SubSections[Parameters.Tab][Parameters.Section],
Name = Parameters.Name,
ZIndex = 26,
Size = UDim2.new(1, 0, 0, Parameters.Size),
})
if Parameters.Name ~= "" then
local NameTag = UIUtilities:Create("TextLabel", {
AnchorPoint = Vector2.new(0.5, 0),
BackgroundTransparency = 1,
Parent = Bounds,
Size = UDim2.new(1, -24, 0, 18),
Position = UDim2.new(0.5, 0, 0, -4),
ZIndex = 26,
Font = UIStyle.TextFont.Font,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
Text = Parameters.Name,
TextSize = UIStyle.TextFont.TxtSize,
TextXAlignment = Enum.TextXAlignment.Left,
TextColor3 = UIStyle.UIcolors.FullWhite
})
OffsetThing = 18
table.insert(OpenCloseItems, NameTag)
end
local OtherBounds = UIUtilities:Create("Frame", {
AnchorPoint = Vector2.new(0.5, 0),
BackgroundTransparency = 1,
Parent = Bounds,
Name = "Scrollerbound",
ZIndex = 26,
Size = UDim2.new(1, -16, 1, -1 * (OffsetThing - 2)),
Position = UDim2.new(0.5, 0, 0, OffsetThing - 2)
})
AutoApplyAccent(OtherBounds, " e", 26)
AutoApplyBorder(OtherBounds, " scroll", 26,
UIStyle.UIcolors.ColorG, UIStyle.UIcolors.ColorH, true)
local ScrollableFrame = UIUtilities:Create("ScrollingFrame", {
AnchorPoint = Vector2.new(0.5, 0),
BackgroundColor3 = UIStyle.UIcolors.ColorA,
BorderSizePixel = 0,
Parent = OtherBounds,
ZIndex = 26,
ScrollBarThickness = 0,
CanvasSize = UDim2.new(1, 0, 0, #Parameters.Values * 18),
Size = UDim2.new(1, 0, 1, -2),
Position = UDim2.new(0.5, 0, 0, 2)
})
local Organizer = UIUtilities:Create("UIListLayout", {
Padding = UDim.new(0, 0),
Parent = ScrollableFrame,
HorizontalAlignment = Enum.HorizontalAlignment.Center,
SortOrder = Enum.SortOrder.LayoutOrder,
})
table.insert(OpenCloseItems, ScrollableFrame)
local Selection = UIUtilities:Create("StringValue", {
Value = "",
Name = "ScrollingListResult",
Parent = Bounds
})
for k, v in next, (Parameters.Values) do
local Hitbox = UIUtilities:Create("TextButton", {
AnchorPoint = Vector2.new(0.5, 0),
BackgroundTransparency = 1,
Name = v,
Parent = ScrollableFrame,
Size = UDim2.new(1, -16, 0, 18),
Position = UDim2.new(0.5, 0, 0, 0),
ZIndex = 26,
Font = UIStyle.TextFont.Font,
TextXAlignment = Enum.TextXAlignment.Left,
TextColor3 = UIStyle.UIcolors.FullWhite,
LineHeight = 1.1,
TextStrokeColor3 = Color3.new(),
TextStrokeTransparency = 0.5,
Text = v,
TextSize = UIStyle.TextFont.TxtSize,
TextTruncate = Enum.TextTruncate.AtEnd,
})
if k == 1 then
Hitbox.TextColor3 = UIStyle.UIcolors.Accent
end
table.insert(UIAccents, Hitbox)
table.insert(OpenCloseItems, Hitbox)
table.insert(TotalMenu, Hitbox)
Hitbox.MouseButton1Down:Connect(function()
Selection.Value = Hitbox.Text
for i, v in next, (TotalMenu) do
if v.Text == Hitbox.Text then
v.TextColor3 = UIStyle.UIcolors.Accent
else
v.TextColor3 = UIStyle.UIcolors.FullWhite
end
end
end)
end
Selection.Changed:Connect(function()
for i, v in next, (TotalMenu) do
if Selection.Value == v.Text then
v.TextColor3 = UIStyle.UIcolors.Accent
else
v.TextColor3 = UIStyle.UIcolors.FullWhite
end
end
Menu[Parameters.Tab][Parameters.Section][Parameters.Name]
["Value"] = Selection.Value
end)
Menu[Parameters.Tab][Parameters.Section][Parameters.Name] =
setmetatable({}, {
__index = function(self, i)
return Proxy[i]
end,
__newindex = function(self, i, v)
if i == "Value" then
Selection.Value = v
end
Proxy[i] = v
end
})
end
-- i went with the alan route, alr had this function from before the ui
was even in use so im using this instead of utilizing the __newindex shit im doing
function UILibrary:OldSaveConfiguration()
local Configuration = {}
for i, v in next, (Core:GetDescendants()) do
if v:IsA("TextButton") then
if v:FindFirstChildOfClass("BoolValue") then
local SubConfiguration = {}
table.insert(SubConfiguration, "NewButton")
table.insert(SubConfiguration, v.Parent.Name)
for i2, v2 in next, (v:GetChildren()) do
if v2:IsA("BoolValue") then
table.insert(SubConfiguration,
v2.Name)
table.insert(SubConfiguration,
v2.Value)
end
if v2.Name == "Bind" then
table.insert(SubConfiguration,
"Bind")
table.insert(SubConfiguration,
v2.Text)
table.insert(SubConfiguration,
v2.BindType.Value)
table.insert(SubConfiguration,
v2.RealKey.Value)
end
if v2.Name == "ColorP1" then
table.insert(SubConfiguration,
v2.Name)
table.insert(SubConfiguration,
v2.BackgroundColor3.R)
table.insert(SubConfiguration,
v2.BackgroundColor3.G)
table.insert(SubConfiguration,
v2.BackgroundColor3.B)
table.insert(SubConfiguration,
v2.BackgroundTransparency)
end
if v2.Name == "ColorP2" then
table.insert(SubConfiguration,
v2.Name)
table.insert(SubConfiguration,
v2.BackgroundColor3.R)
table.insert(SubConfiguration,
v2.BackgroundColor3.G)
table.insert(SubConfiguration,
v2.BackgroundColor3.B)
table.insert(SubConfiguration,
v2.BackgroundTransparency)
end
end
table.insert(Configuration, SubConfiguration)
end
if v:FindFirstChildOfClass("TextBox") and v.Parent ~=
SubSections["Settings"]["Configurations"] then -- ignore the configs section
local SubConfiguration = {}
table.insert(SubConfiguration, "NewTextEntry")
table.insert(SubConfiguration, v.Parent.Name)
table.insert(SubConfiguration, v.Name)
for i2, v2 in next, (v:GetChildren()) do
if v2:IsA("TextBox") then
table.insert(SubConfiguration,
v2.Text)
end
end
table.insert(Configuration, SubConfiguration)
end
elseif v:IsA("Frame") and v.Parent ~=
SubSections["Settings"]["Configurations"] then -- ignore the configs section
if v:FindFirstChildOfClass("NumberValue") then
local SubConfiguration = {}
table.insert(SubConfiguration, "NewSlider")
table.insert(SubConfiguration, v.Parent.Name)
for i2, v2 in next, (v:GetChildren()) do
if v2:IsA("NumberValue") then
table.insert(SubConfiguration,
v2.Name)
table.insert(SubConfiguration,
v2.Value)
end
end
table.insert(Configuration, SubConfiguration)
elseif v:FindFirstChild("Selection") then
local SubConfiguration = {}
table.insert(SubConfiguration, "NewDropDown")
table.insert(SubConfiguration, v.Parent.Name)
for i2, v2 in next, (v:GetChildren()) do
if v2.Name == "NAMETAG" then
table.insert(SubConfiguration,
v2.Text)
end
if v2.Name == "Selection" then
table.insert(SubConfiguration,
v2.Text)
end
end
table.insert(Configuration, SubConfiguration)
elseif v:FindFirstChildOfClass("StringValue") then
local SubConfiguration = {}
table.insert(SubConfiguration,
"NewScrollingList")
table.insert(SubConfiguration, v.Name)
table.insert(SubConfiguration, v.Parent.Name)
table.insert(SubConfiguration,
v.ScrollingListResult.Value)
table.insert(Configuration, SubConfiguration)
end
end
end
Configuration = HttpService:JSONEncode(Configuration)
return Configuration
end
function UILibrary:OldLoadConfiguration(Tbl)
local MainTable = HttpService:JSONDecode(Tbl)
local UIIndex = Core:GetDescendants()
for i, v in next, (UIIndex) do
if v:IsA("TextButton") then
if v:FindFirstChildOfClass("BoolValue") then
for index, SubConfiguration in next,
(MainTable) do
if SubConfiguration[1] == "NewButton"
then
if v.Parent.Name ==
SubConfiguration[2] then
if v.Name ==
SubConfiguration[3] then
for ObjectIndex, Object
in next, (v:GetChildren()) do
if
Object:IsA("BoolValue") then
Object.Value
= SubConfiguration[4]
end
if Object.Name ==
"Bind" then
Object.Text
= SubConfiguration[6]
Object:FindFirstChild("BindType").Value = SubConfiguration[7]
Object:FindFirstChild("RealKey").Value = SubConfiguration[8]
end
if Object.Name ==
"ColorP1" then
Object.BackgroundColor3 = Color3.new(SubConfiguration[6],
SubConfiguration[7], SubConfiguration[8])
Object.BackgroundTransparency = SubConfiguration[9]
end
if Object.Name ==
"ColorP2" then
Object.BackgroundColor3 = Color3.new(SubConfiguration[11],
SubConfiguration[12], SubConfiguration[13])
Object.BackgroundTransparency = SubConfiguration[14]
end
end
end
end
end
end
end
if v:FindFirstChildOfClass("TextBox") then
for index, SubConfiguration in next,
(MainTable) do
if SubConfiguration[1] == "NewTextEntry"
then
if v.Parent.Name ==
SubConfiguration[2] then
if v.Name ==
SubConfiguration[3] then
for ObjectIndex, Object
in next, (v:GetChildren()) do
if
Object:IsA("TextBox") then
Object.Text
= SubConfiguration[4]
end
end
end
end
end
end
end
elseif v:IsA("Frame") then
if v:FindFirstChildOfClass("NumberValue") then
for index, SubConfiguration in next,
(MainTable) do
if SubConfiguration[1] == "NewSlider"
then
if v.Parent.Name ==
SubConfiguration[2] then
if v.Name ==
SubConfiguration[3] then
for ObjectIndex, Object
in next, (v:GetChildren()) do
if
Object:IsA("NumberValue") then
Object.Value
= SubConfiguration[4]
end
end
end
end
end
end
elseif v:FindFirstChild("Selection") then
for index, SubConfiguration in next,
(MainTable) do
if SubConfiguration[1] == "NewDropDown"
then
if v.Parent.Name ==
SubConfiguration[2] then
if v.Name ==
SubConfiguration[4] then
for ObjectIndex, Object
in next, (v:GetChildren()) do
if Object.Name ==
"Selection" then
Object.Text
= SubConfiguration[3]
end
end
end
end
end
end
elseif v:FindFirstChildOfClass("StringValue") then
for index, SubConfiguration in next,
(MainTable) do
if SubConfiguration[1] ==
"NewScrollingList" then
if v.Name == SubConfiguration[2]
then
if v.Parent.Name ==
SubConfiguration[3] then
for ObjectIndex, Object
in next, (v:GetChildren()) do
if Object.Name ==
"ScrollingListResult" then
Object.Value
= SubConfiguration[4]
end
end
end
end
end
end
end
end
end
end
function UILibrary:SaveConfiguration()
local Configuration = {}
return HttpService:JSONEncode(Configuration)
end
function UILibrary:LoadConfiguration(Tbl)
local MainTable = HttpService:JSONDecode(Tbl)
Menu[tab][panel][element][k][k2]["Value"] = v2["Value"]
elseif
k2 == "Animations" then
local animdata = v2
if animdata[anim][name]["Value"] then
Menu[tab][panel][element][k][k2][anim][name]["Value"] =
animdata[anim][name]["Value"]
Menu[tab][panel][element][k][k2][anim][name]["Color"] = {r =
animdata[anim][name]["Color"].r, g = animdata[anim][name]["Color"].g, b =
animdata[anim][name]["Color"].b}
if animdata[anim][name]["Transparency"] then
Menu[tab][panel][element][k][k2][anim][name]
["Transparency"] = animdata[anim][name]["Transparency"]
end
end
end
end
end
else
--
minor error
Menu[tab][panel][element][k][k2] = v2
end
end
else
Menu[tab][panel]
[element][k] = v
end
end
end
end
end
end
end
end
end
-- UI Open/Close animation
local tweentime = 0
local OpenTweens = {}
local CloseTweens = {}
local OpenObjects = {}
local bullshit = {} -- yes i FUCKING had to do this bullshit
backgroundTransShit.Value = 0
local fadedconnections = {}
UILibrary.updateFade = UpdateTweens
function OpenUI()
fading = true
easingdir = Enum.EasingDirection.Out
MainContainer.Visible = true
TweenService:Create(backgroundTransShit, TweenInfo.new(tweentime,
tweenstyle, easingdir), {Value = 0}):Play()
TweenService:Create(textTransShit, TweenInfo.new(tweentime,
tweenstyle, easingdir), {Value = 0}):Play()
for i, v in next, (bullshit) do
TweenService:Create(v, TweenInfo.new(tweentime, tweenstyle,
easingdir), {BackgroundTransparency = v.actual.Value}):Play()
end
realWait(tweentime)
imageEnabledShit.Value = true
task.wait()
Menu.closed = false
fading = false
end
function CloseUI()
fading = true
easingdir = Enum.EasingDirection.In
imageEnabledShit.Value = false
TweenService:Create(backgroundTransShit, TweenInfo.new(tweentime,
tweenstyle, easingdir), {Value = 1}):Play()
TweenService:Create(textTransShit, TweenInfo.new(tweentime,
tweenstyle, easingdir), {Value = 1}):Play()
for i, v in next, (bullshit) do
TweenService:Create(v, TweenInfo.new(tweentime, tweenstyle,
easingdir), {BackgroundTransparency = 1}):Play()
end
realWait(tweentime)
MainContainer.Visible = false
task.wait()
Menu.closed = true
fading = false
end
CloseUI()
realWait(0.2)
tweentime = 0.25
RunService.Heartbeat:Connect(function()
if MainContainer.Visible == true then
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
else
UserInputService.MouseBehavior =
Enum.MouseBehavior.LockCenter
end
end)
CursorObject.Visible = MainContainer.Visible
function UILibrary:Initialize()
MainContainer:GetPropertyChangedSignal("Visible"):Connect(UpdateCursor)
Mouse.Move:Connect(UpdateCursor)
-- Dragging the UI
local gui = MainContainer
local dragging
local dragInput
local dragStart
local startPos
input.Changed:Connect(function()
if input.UserInputState ==
Enum.UserInputState.End then
dragging = false
end
end)
end
end)
gui.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
UpdateTweens()
-- retarded
task.wait()
OpenUI()
UserInputService.InputBegan:Connect(function(Input,
gameProcessedEvent)
if Input.UserInputType == Enum.UserInputType.Keyboard then
if Input.KeyCode == Enum.KeyCode.Insert or
Input.KeyCode == Enum.KeyCode.Delete or Input.KeyCode == Enum.KeyCode.Backquote
then
if MainContainer.BackgroundTransparency == 0
and MainContainer.Visible == true then
CloseUI()
else
if MainContainer.BackgroundTransparency
~= 0 and MainContainer.Visible ~= true then
OpenUI()
end
end
end
end
end)
end
end
env.Hack = Library
local spring = loadstring(game:HttpGet("https://raw.githubusercontent.com/Quenty/
NevermoreEngine/5a429e871d54646ba54011c18321e77afa76d657/Modules/Shared/Physics/
Spring.lua"))()
local Themes = {
default = {
FullWhite = Color3.fromRGB(255, 255, 255),
ColorA = Color3.fromRGB(36, 36, 36),
ColorB = Color3.fromRGB(0, 0, 0),
ColorC = Color3.fromRGB(20, 20, 20),
ColorD = Color3.fromRGB(50, 50, 50),
ColorE = Color3.fromRGB(30, 30, 30),
ColorF = Color3.fromRGB(20, 20, 20),
ColorG = Color3.fromRGB(10, 10, 10),
ColorH = Color3.fromRGB(32, 32, 32),
ColorI = Color3.fromRGB(40, 40, 40),
Accent = Color3.fromRGB(127, 72, 163)
},
kfcsenze = { -- i was kinda bored lol
FullWhite = Color3.fromRGB(220, 220, 220),
ColorA = Color3.fromRGB(4, 1, 11),
ColorB = Color3.fromRGB(28, 28, 28),
ColorC = Color3.fromRGB(15, 15, 15),
ColorD = Color3.fromRGB(32, 32, 32),
ColorE = Color3.fromRGB(10, 10, 10),
ColorF = Color3.fromRGB(20, 20, 20),
ColorG = Color3.fromRGB(8, 2, 22),
ColorH = Color3.fromRGB(16, 4, 44),
ColorI = Color3.fromRGB(28, 28, 28),
Accent = Color3.fromRGB(163, 254, 226)
},
}
local MenuParameters = {
Tabs = {
"Legit",
"Rage",
"ESP",
"Visuals",
"Misc",
"Settings"
},
CheatName = "Bloxsense",
UserType = env.login and env.login.username or "Invaded",
UIcolors = Themes.default,
TextFont = {
CheatTextSize = 18,
TabTextSize = 18,
TxtSize = 18,
Font = Enum.Font.TitilliumWeb
},
HeaderFont = {
WatermarkTxtSize = 14,
Font = Enum.Font.RobotoMono
},
}
UILibrary:Start(MenuParameters)
-- Rage
UILibrary:CreateSubSection("Rage", "Aimbot", {"Aimbot"}, false, 0.5, 0)
UILibrary:CreateSubSection("Rage", "ExtraMisc", {"Sniper", "Auto", "Other"},
false, 0.5, -8)
UILibrary:CreateSubSection("Rage", "HvH", {"Hack vs. Hack", "Anti Aim", "Fake
Lag"}, true, 1, 0)
-- ESP
UILibrary:CreateSubSection("ESP", "Enemy ESP", {"Enemy ESP", "Team ESP"},
false, 1, 0)
UILibrary:CreateSubSection("ESP", "DroppedESP", {"ESP Settings"}, true, 0.6,
0)
UILibrary:CreateSubSection("ESP", "DroppedESP", {"Dropped ESP"}, true, 0.4, -
8)
-- Visuals
UILibrary:CreateSubSection("Visuals", "ESP", {"Local"}, false, 1, 0)
UILibrary:CreateSubSection("Visuals", "CamViewModel", {"Camera", "Viewmodel",
"Crosshair", "Particle"}, true, 0.44, 0)
UILibrary:CreateSubSection("Visuals", "RandomESP", {"World", "Bloom",
"Atmosphere"}, true, 0.27, -8)
UILibrary:CreateSubSection("Visuals", "RandomESP2", {"Misc", "Extra",
"Bullets", "Hits", "FOV"}, true, 0.29, -8)
-- Misc
UILibrary:CreateSubSection("Misc", "MovementTweaks", {"Movement", "Tweaks"},
false, 0.5)
UILibrary:CreateSubSection("Misc", "WeaponModifiers", {"Weapon
Modifications"}, false, 0.5, -8)
UILibrary:CreateSubSection("Misc", "ExtraMisc", {"Extra", "Exploits"}, true,
1, 0)
-- Settings
UILibrary:CreateSubSection("Settings", "CheatSettings", {"Menu Settings"},
false, 0.32, 0)
UILibrary:CreateSubSection("Settings", "CheatSettings", {"Extra"}, false,
0.21, -8)
UILibrary:CreateSubSection("Settings", "Configurations", {"Configurations"},
false, 0.47, -8)
UILibrary:CreateSubSection("Settings", "Scripts", {"Scripts"}, true, 1, 0)
end
getnames()
game.Players.PlayerRemoving:Connect(function()
task.wait()
local old = Menu["Misc"]["Exploits"]["Player in Focus"]["Value"]
getnames()
Menu["Misc"]["Exploits"]["Player in Focus"]["Value"] = old
end)
game.Players.PlayerAdded:Connect(function()
task.wait()
local old = Menu["Misc"]["Exploits"]["Player in Focus"]["Value"]
getnames()
Menu["Misc"]["Exploits"]["Player in Focus"]["Value"] = old
end)
UILibrary:CreateDropdown({Name = "Action", Tab = "Misc", Section =
"Exploits", Values = {"Hold", "Bring", "Silent Kill", "Desync"}})
UILibrary:CreateTap({Name = "Apply action to focused player", Tab = "Misc",
Section = "Exploits", Confirmation = true})
UILibrary:CreateTap({Name = "Apply action to all players", Tab = "Misc",
Section = "Exploits", Confirmation = true})
UILibrary:CreateTap({Name = "Kick all players", Tab = "Misc", Section =
"Exploits", Confirmation = true})
UILibrary:CreateTap({Name = "Crash Server", Tab = "Misc", Section =
"Exploits", Confirmation = true})
UILibrary:CreateDropdown({Name = "Crash Server Option", Tab = "Misc", Section
= "Exploits", Values = {"Packet", "Object"}})
UILibrary:CreateTap({Name = "God Mode", Tab = "Misc", Section = "Exploits",
Confirmation = true})
UILibrary:CreateDropdown({Name = "God Mode Type", Tab = "Misc", Section =
"Exploits", Values = {"Hostage", "Fall"}})
UILibrary:CreateTap({Name = "Instant Defuse", Tab = "Misc", Section =
"Exploits", Confirmation = true})
UILibrary:CreateTap({Name = "Instant Plant", Tab = "Misc", Section =
"Exploits", Confirmation = true})
UILibrary:CreateDropdown({Name = "Plant Position", Tab = "Misc", Section =
"Exploits", Values = {"Bombsite", "Void", "Glitch"}})
--UILibrary:CreateButton({Name = "Block Vision", Tab = "Misc", Section =
"Exploits"})
--UILibrary:CreateButton({Name = "Force Slow Walk", Tab = "Misc", Section =
"Exploits"})
UILibrary:CreateTap({Name = "Map destroyer", Tab = "Misc", Section =
"Exploits", Confirmation = true})
UILibrary:CreateButton({Name = "Fake Equip", Tab = "Misc", Section =
"Exploits"})
UILibrary:CreateDropdown({Name = "Fake Slot", Tab = "Misc", Section =
"Exploits", Values = {"Primary", "Secondary", "Melee"}})]]
end
getnames()
game.Players.PlayerRemoving:Connect(function()
task.wait()
local old = Menu["Misc"]["Exploits"]["Player in Focus"]["Value"]
getnames()
Menu["Misc"]["Exploits"]["Player in Focus"]["Value"] = old
end)
game.Players.PlayerAdded:Connect(function()
task.wait()
local old = Menu["Misc"]["Exploits"]["Player in Focus"]["Value"]
getnames()
Menu["Misc"]["Exploits"]["Player in Focus"]["Value"] = old
end)
UILibrary:CreateDropdown({Name = "Action", Tab = "Misc", Section =
"Exploits", Values = {"Kill", "Broken Kill", "Grab", "Hold"}})
UILibrary:CreateTap({Name = "Apply action to focused player", Tab = "Misc",
Section = "Exploits", Confirmation = true})
UILibrary:CreateTap({Name = "Apply action to all players", Tab = "Misc",
Section = "Exploits", Confirmation = true})
UILibrary:CreateTap({Name = "Crash Server", Tab = "Misc", Section =
"Exploits", Confirmation = true})
--UILibrary:CreateTap({Name = "Instant Defuse", Tab = "Misc", Section =
"Exploits", Confirmation = true})
--UILibrary:CreateTap({Name = "Instant Plant", Tab = "Misc", Section =
"Exploits", Confirmation = true})
--UILibrary:CreateDropdown({Name = "Plant Position", Tab = "Misc", Section =
"Exploits", Values = {"Bombsite", "Void", "Glitch"}})
UILibrary:CreateButton({Name = "Fake Equip", Tab = "Misc", Section =
"Exploits"})
UILibrary:CreateDropdown({Name = "Fake Slot", Tab = "Misc", Section =
"Exploits", Values = {"Primary", "Secondary", "Melee"}})
UILibrary:CreateButton({Name = "Godmode", Tab = "Misc", Section =
"Exploits"})
--UILibrary:CreateButton({Name = "Uncensored Chat", Tab = "Misc", Section =
"Exploits"})
--UILibrary:CreateButton({Name = "Chat While Dead", Tab = "Misc", Section =
"Exploits"})]]
-- hit in(vaded)(teger)
if not isfolder("bloxsense") then
makefolder("bloxsense")
end
if not isfolder("bloxsense/bloxsense_configs") then
makefolder("bloxsense/bloxsense_configs")
end
--ANCHOR Services (this formatting is dumb and im gonna fucking use it to define
constants and services)
local workspace = workspace --GETGLOBAL IS A BITCH
local game = game
local math = math
local RaycastParams = RaycastParams
local table = table
local getnamecallmethod = getnamecallmethod
local task = task
local string = string
local next = next
local debug = debug
local Enum = Enum
local soundService = game.SoundService
local lighting = game.Lighting
local players = game:GetService("Players")
local runService = game:GetService("RunService")
local teleportService = game:GetService("TeleportService")
local userInputService = game:GetService("UserInputService")
local httpService = game:GetService("HttpService")
local replicatedStorage = game:GetService("ReplicatedStorage")
local userSettings = UserSettings():GetService("UserGameSettings")
local tweenService = game:GetService("TweenService")
local physicsService = game:GetService("PhysicsService")
local ProximityPromptService = game:GetService("ProximityPromptService")
local networkClient = game:GetService("NetworkClient")
--[[do
local localScripts = {}
for i, v in next, localPlayer:FindFirstChild("PlayerGui"):GetChildren()
do
if v.ClassName == "LocalScript" then
localScripts[v] = getprops(v)
end
end
task.wait(1)
for script, props in next, localScripts do
if props.Name ~= script.Name then
client = getsenv(script)
break
end
end
end]]
do
local function apply(plr)
plr.CharacterAdded:Connect(function(character)
repeat
task.wait()
until plr.Status.Alive.Value
playerSpawned:Fire(plr, tick())
local hum = character:WaitForChild("Humanoid")
local sig; sig = hum.HealthChanged:Connect(function(newHealth)
if newHealth == newHealth and newHealth <= 0 then
sig:Disconnect()
sig = nil
playerDied:Fire(plr, tick())
end
end)
end)
end
players.PlayerAdded:Connect(apply)
end
--https://github.com/Quenty/NevermoreEngine/blob/2d2d3a22ecebe84ed1334eb997118418ce
4f00d5/src/raycaster/src/Shared/RaycastUtils.lua
local empty = {}
raycastUtils.raycastParam = RaycastParams.new()
raycastUtils.exitParam = RaycastParams.new()
raycastUtils.exitParam.FilterType = Enum.RaycastFilterType.Whitelist
local resultFinal
local initialIgnoreListLength = #ignoreList
raycastUtils.raycastParam.FilterDescendantsInstances = ignoreList
raycastUtils.raycastParam.IgnoreWater = ignoreWater and true or false
while true do
local result = workspaceRaycast(workspace, origin, direction,
raycastUtils.raycastParam)
if ignoreFunc and result and ignoreFunc(result.Instance) then
table.insert(ignoreList, result.Instance)
raycastUtils.raycastParam.FilterDescendantsInstances =
ignoreList
else
resultFinal = result
break
end
end
raycastUtils.raycastParam.FilterDescendantsInstances = empty
raycastUtils.raycastParam.IgnoreWater = false
return resultFinal
end
do --ANCHOR cameraTasks
function cameraTasks:addTask(getSignal, callback)
local data = {
getSignal = getSignal,
callback = callback
}
local index = #self.tasks + 1
self.tasks[index] = data
return data, index
end
function cameraTasks.onCameraAdded()
for i = 1, #cameraTasks.tasks do
local task = cameraTasks.tasks[i]
if task then
task.connection = task.getSignal():Connect(task.callback)
end
end
end
function cameraTasks.unload()
for i = #cameraTasks.tasks, 1, -1 do --reverse because remove shiftes
the table
local task = table.remove(cameraTasks.tasks, i)
if task and task.connection then
task.connection:Disconnnect()
end
end
table.clear(cameraTasks.tasks) --make sure
cameraTasks = {} --this is cringe
end
end
do --ANCHOR mathModule
--Misc
function mathModule.truncateNumber(number, decimalPlaces)
local d = 10^decimalPlaces
return math.floor(number*d)/d
end
--Vector3s
function mathModule.angleBetweenVector3(vec1, vec2)
--abit slow but numerically more stable, and u dont have to unitize
them :smiley:
local angle = math.atan2(vec1:Cross(vec2).magnitude, vec1:Dot(vec2))
if angle < 0 then
angle = tau - angle
end
return angle
end
function mathModule.lookVecToPitchYaw(lookVec)
local x, y, z = lookVec.x, lookVec.y, lookVec.z
return math.atan2(y, (x*x + z*z)^0.5), math.atan2(-x, -z)
end
--Vector2s
function mathModule.angleBetweenVector2(vec1, vec2)
--trust me i hate arccos
local ang =
math.acos(mathModule.safeUnit(vec1):Dot(mathModule.safeUnit(vec2)))
if ang < 0 then
ang = tau - ang
end
return ang
end
function mathModule.normalizeAngle(angle)
return ((angle + pi) % (2*pi)) - pi
end
refresh()
cameraTasks:addTask(function()
return camera:GetPropertyChangedSignal("FieldOfView")
end, refresh)
cameraTasks:addTask(function()
return camera:GetPropertyChangedSignal("ViewportSize")
end, refresh)
self.Active = false
self.StartTime = startTime
self.Time = startTime
self.Events = {}
self.timerEvent = runService.RenderStepped:Connect(function(dt)
if (self.Active) then
self.Time = self.Time + dt
return self
end
function timer:SetActive(bool)
self.Active = bool
end
function timer:FireOntimereached(t, f)
table.insert(self.Events, {t, f})
end
function timer:Destroy()
self.timerEvent:Disconnect()
end
end
do -- ok ok heres trajectory
-- if u read this fuck u
trajectory.__index = trajectory
local A0 = Instance.new("Attachment")
local A1 = Instance.new("Attachment")
local Beam = basebeam:Clone()
local Bounce = basepart:Clone()
A0.CFrame = cfA
A0.Parent = nadelinestorage
A1.CFrame = cfB
A1.Parent = nadelinestorage
Beam.Color = ColorSequence.new(color)
Beam.Attachment0 = A0
Beam.Attachment1 = A1
Beam.CurveSize0 = curve0
Beam.CurveSize1 = -curve1
Beam.Parent = nadelinestorage
Beam.Enabled = visible
Bounce.Color = bounce
Bounce.Transparency = visible and 0 or 1
Bounce.Position = A1.CFrame.p
Bounce.Parent = nadelinestorage
function trajectory.new(Parameters)
local self = setmetatable({}, trajectory)
self.Gravity = Parameters.gravity
self.TimeStep = Parameters.step
self.MaxTime = Parameters.time
self.MaxBounce = Parameters.bounces
return self
end
function trajectory:Velocity(v0, t)
-- g*t + v0
return self.Gravity*t + v0
end
if (a ~= 0) then
local d = math.sqrt(b*b - 4*a*c)
return (-b - d)/(2*a)
else
return -c / b
end
end
function trajectory:CalculateSingle(x0, v0, ignoreList)
local t = 0
local hit, pos, normal, material
repeat
local p0 = self:Position(x0, v0, t)
local p1 = self:Position(x0, v0, t + self.TimeStep)
t = t + self.TimeStep
function trajectory:Cast(Parameters)
local bounces = 0
local t, x1, normal, pB
local pA = Parameters.physics
local path = {}
x0 = self:Position(x0, v0, t)
v0 = reflect(self:Velocity(v0, t), normal) *
elasticity + v0 * friction * dotprod
if normal.Y > normal.X and normal.Y > normal.Z then
-- the surface is prob a floor
bounces = bounces + 1
end
else
bounces = self.MaxBounce + 1
end
end
return path
end
function trajectory:Travel(part, path)
local t = 0
local timer = timer.new(0)
for i = 1, #path do
local x0, v0, dt = unpack(path[i])
timer:FireOnTimeReached(t, function(currentTime)
part.Velocity = v0
end)
t = t + dt
end
timer:FireOnTimeReached(t, function(currentTime)
timer:Destroy()
end)
timer:SetActive(true)
end
function trajectory:Draw(Parameters)
local things = {}
local pathtodraw = Parameters.trail
for i = 1, #pathtodraw do
local x0, v0, t = unpack(pathtodraw[i])
local a, b, c, d = drawBeamProjectile(self.Gravity, v0, x0,
t, Parameters.visible, Parameters.color, Parameters.bounce)
things[1 + #things] = {a, b, c, d}
end
return things
end
end
end
function playerInfo.add(player)
local data = {}
data.player = player
data.lastVelocity = emptyVec3
data.velocity = emptyVec3
data.character = nil
data.god = false
data.currentPosition = emptyVec3
data.lastPosition = emptyVec3
data.lastcameracf = emptyCf
data.camcf = emptyCf
data.updates = {}
player:GetPropertyChangedSignal("Team"):Connect(function()
refreshEnemyType(data)
end)
data.step = runService.Stepped:Connect(function(delta)
--debug.profilebegin(player.Name .. " pInfo update")
--so this is supposed to give an accurate result of what roblox
physics would calculate as they run in 60 fps, if this doesnt exist then the
velocity result we get would be much higher if we have fps unlocker, before u
scream "wouldnt that make our forward track beter", yes but scummy
--which is what this line below fix, it wont forward track too
far :)
--lol
local char = player.Character
data.character = char
data.humanoid = char and char:FindFirstChild("Humanoid")
data.head = char and char:FindFirstChild("Head")
data.rootpart = char and char:FindFirstChild("HumanoidRootPart")
data.god = data.humanoid and data.humanoid.Health ~=
data.humanoid.Health
data.alive = (char and data.humanoid and data.humanoid.Parent and
data.humanoid.Health > 0 and data.humanoid.Health == data.humanoid.Health and
data.rootpart)
table.insert(data.updates, 1, {position =
data.currentPosition, velocity = data.velocity, time = tick()})
local samples = 5
local totalDelta = 0
local totalDistance = emptyVec3
for i = 2, math.min(samples, #data.updates) do
local now = data.updates[i]
local prev = data.updates[i - 1]
function playerInfo.remove(player)
if playerInfo.storage[player] then
playerInfo.storage[player].step:Disconnect()
table.clear(playerInfo.storage[player])
playerInfo.storage[player] = nil
end
end
function playerInfo.unload()
for player,data in next, playerInfo.storage do
playerInfo.remove(player)
end
table.clear(playerInfo)
playerInfo = {}
end
do --ANCHOR Visuals
visuals.chamsFolder = Instance.new("Folder", game:GetService("CoreGui"))
visuals.espObjects = {}
visuals.allDrawingObjects = {}
visuals.tracerObjects = {}
visuals.lastragdollupdate = tick()
visuals.lastcolorupdate = tick()
visuals.droppedWeaponStorage = {}
visuals.ragdollobjects = {}
visuals.chammedbody = false
visuals.imagecache = {}
visuals.grenadetrajectories = {}
visuals.particleemitter = nil -- particle thing
visuals.chammedobjects = {
["Clothing"] = {},
["Arms"] = {},
["Weapon Objects"] = {},
["Colored Arms"] = {},
["Colored Weapons"] = {},
["Colored Body"] = {},
["Original"] = {},
["Original Body"] = {} -- dn
}
visuals.materials = {
["Ghost"] = materials.ForceField,
["Flat"] = materials.Neon,
["Custom"] = materials.SmoothPlastic,
["Reflective"] = materials.Glass, -- this one will have reflectance set
to 1
["Metallic"] = materials.Glass,
["Magic"] = materials.SmoothPlastic
}
visuals.forcefieldAnimations = forcefieldAnimations
visuals.particleImages = particleImages
visuals.skyboxes = {
["Cloudy Skies"] = {
SkyboxLf = "rbxassetid://151165191",
SkyboxBk = "rbxassetid://151165214",
SkyboxDn = "rbxassetid://151165197",
SkyboxFt = "rbxassetid://151165224",
SkyboxRt = "rbxassetid://151165206",
SkyboxUp = "rbxassetid://151165227",
},
["Space"] = {
SkyboxLf = "rbxassetid://159454286",
SkyboxBk = "rbxassetid://159454299",
SkyboxDn = "rbxassetid://159454296",
SkyboxFt = "rbxassetid://159454293",
SkyboxRt = "rbxassetid://159454300",
SkyboxUp = "rbxassetid://159454288",
},
["Nebula"] = {
SkyboxLf = "rbxassetid://149397684",
SkyboxBk = "rbxassetid://149397692",
SkyboxDn = "rbxassetid://149397686",
SkyboxFt = "rbxassetid://149397697",
SkyboxRt = "rbxassetid://149397688",
SkyboxUp = "rbxassetid://149397702",
},
["Vivid Skies"] = {
SkyboxLf = "rbxassetid://271042310",
SkyboxBk = "rbxassetid://271042516",
SkyboxDn = "rbxassetid://271077243",
SkyboxFt = "rbxassetid://271042556",
SkyboxRt = "rbxassetid://271042467",
SkyboxUp = "rbxassetid://271077958",
},
["Bob's Skybox"] = {
SkyboxLf = "rbxassetid://7264789109",
SkyboxBk = "rbxassetid://7264789737",
SkyboxDn = "rbxassetid://7264789487",
SkyboxFt = "rbxassetid://7264789309",
SkyboxRt = "rbxassetid://7264788930",
SkyboxUp = "rbxassetid://7264788734",
}
}
visuals.defaultlighting = { -- fuck it
["de_dust2"] = {
Ambient = Color3.fromRGB(90, 74, 62),
OutdoorAmbient = Color3.fromRGB(165, 156, 140),
ClockTime = 13
},
["de_seaside"] = {
Ambient = Color3.fromRGB(211, 237, 255),
OutdoorAmbient = Color3.fromRGB(180, 180, 180),
ClockTime = 14
},
["de_train"] = {
Ambient = Color3.fromRGB(130, 118, 95),
OutdoorAmbient = Color3.fromRGB(163, 161, 146),
ClockTime = 9.5
},
["de_mirage"] = {
Ambient = Color3.fromRGB(214, 214, 214),
OutdoorAmbient = Color3.fromRGB(165, 156, 140),
ClockTime = 15
},
["de_cache"] = {
Ambient = Color3.fromRGB(214, 214, 214),
OutdoorAmbient = Color3.fromRGB(165, 156, 140),
ClockTime = 14
},
["de_nuke"] = {
Ambient = Color3.fromRGB(90, 74, 62),
OutdoorAmbient = Color3.fromRGB(165, 156, 140),
ClockTime = 13
},
["de_vertigo"] = {
Ambient = Color3.fromRGB(255, 255, 255),
OutdoorAmbient = Color3.fromRGB(255, 255, 255),
ClockTime = 15
},
["de_inferno"] = {
Ambient = Color3.fromRGB(130, 118, 95),
OutdoorAmbient = Color3.fromRGB(163, 161, 146),
ClockTime = 9.5
},
["de_aztec"] = {
Ambient = Color3.fromRGB(149, 175, 179),
OutdoorAmbient = Color3.fromRGB(149, 159, 191),
ClockTime = 15
}
}
visuals.thirdPersonConnections = {}
function visuals.createDrawing(type, prop)
local obj = Drawing.new(type)
if prop then
for index,value in next, prop do
obj[index] = value
end
end
table.insert(visuals.allDrawingObjects, obj)
return obj
end
local imagesLoaded = 0
local constants =
getconstants(require(replicatedStorage.GetIcon).getWeaponOfKiller)
local totalImages = #constants
for i = 2, #constants + 1 do
coroutine.wrap(function()
local icon = constants[i-1]
local thing = constants[i]
if icon == "C4" or replicatedStorage.Weapons:FindFirstChild(icon)
then -- we only need this for now
if thing and thing:find("rbxassetid") then
thing = thing:gsub("rbxassetid://", "")
local req_data =
game:HttpGet("https://assetdelivery.roblox.com/v1/assetId/" .. thing)
local endpoint =
httpService:JSONDecode(req_data).location
local imagedata = game:HttpGet(endpoint)
if imagedata then
visuals.imagecache[icon] = imagedata
end
end
end
imagesLoaded = imagesLoaded + 1
end)()
end
for i = 1, visuals.gradentHealthBarSegments do
onScreen["healthBarSegment" .. i] = {
object = visuals.createDrawing("Square",
visuals.defaultProp.healthBar),
originalTransparency =
visuals.defaultProp.healthBar.Transparency
}
end
onScreen.nameTag = {
object = visuals.createDrawing("Text",
visuals.defaultProp.nameTag),
originalTransparency =
visuals.defaultProp.nameTag.Transparency
}
onScreen.heldWeapon = {
object = visuals.createDrawing("Text",
visuals.defaultProp.heldWeapon),
originalTransparency =
visuals.defaultProp.heldWeapon.Transparency
}
onScreen.heldWeaponIcon = {
object = visuals.createDrawing("Image",
visuals.defaultProp.heldWeaponIcon),
originalTransparency =
visuals.defaultProp.heldWeaponIcon.Transparency
}
onScreen.healthNumber = {
object = visuals.createDrawing("Text",
visuals.defaultProp.healthNumber),
originalTransparency =
visuals.defaultProp.healthNumber.Transparency
}
onScreen.distanceTag = {
object = visuals.createDrawing("Text",
visuals.defaultProp.distanceTag),
originalTransparency =
visuals.defaultProp.distanceTag.Transparency
}
onScreen.armorTag = {
object = visuals.createDrawing("Text",
visuals.defaultProp.flags),
originalTransparency =
visuals.defaultProp.flags.Transparency
}
onScreen.bombTag = {
object = visuals.createDrawing("Text",
visuals.defaultProp.flags),
originalTransparency =
visuals.defaultProp.flags.Transparency
}
onScreen.hostageTag = {
object = visuals.createDrawing("Text",
visuals.defaultProp.flags),
originalTransparency =
visuals.defaultProp.flags.Transparency
}
onScreen.moneyTag = {
object = visuals.createDrawing("Text",
visuals.defaultProp.flags),
originalTransparency =
visuals.defaultProp.flags.Transparency
}
onScreen.fakeTag = {
object = visuals.createDrawing("Text",
visuals.defaultProp.flags),
originalTransparency =
visuals.defaultProp.flags.Transparency
}
offScreen.oofArrow = {
object = visuals.createDrawing("Triangle",
visuals.defaultProp.oofArrow),
originalTransparency =
visuals.defaultProp.oofArrow.Transparency
}
offScreen.oofArrowOutline = {
object = visuals.createDrawing("Triangle",
visuals.defaultProp.oofArrowOutline),
originalTransparency =
visuals.defaultProp.oofArrowOutline.Transparency
}
onScreen.cameraCircle = {
object = visuals.createDrawing("Circle",
visuals.defaultProp.cameraCircle),
originalTransparency =
visuals.defaultProp.cameraCircle.Transparency
}
general.snapLine = {
object = visuals.createDrawing("Line",
visuals.defaultProp.snapLine),
originalTransparency =
visuals.defaultProp.snapLine.Transparency
}
for i = 1, 12 do
general["lagCompLine" .. i] = {
object = visuals.createDrawing("Line",
visuals.defaultProp.snapLine),
originalTransparency =
visuals.defaultProp.snapLine.Transparency
}
end
end
function visuals.getBoundingBox(rootCf, headCf, rootSize, headSize,
hipHeight, cacheTable)
if cacheTable and rootCf then
cacheTable.rootCf = rootCf
cacheTable.headCf = headCf
cacheTable.rootSize = rootSize
cacheTable.headSize = headSize
cacheTable.hipHeight = hipHeight
elseif not rootCf then
rootCf = cacheTable.rootCf
headCf = cacheTable.headCf
rootSize = cacheTable.rootSize
headSize = cacheTable.headSize
hipHeight = cacheTable.hipHeight
end
local th = headCf * newVector3(0, headSize.y*0.5 + 0.5, 0)
local bf = rootCf * newVector3(0, -(rootSize.y*0.5 + hipHeight +
0.5), 0)
local td = (th - rootCf.p).Magnitude
local bd = (rootCf.p - bf).Magnitude
local up = rootCf.UpVector
local tp = rootCf.p + up*td
local bp = rootCf.p - up*bd
function visuals.applyEsp(player)
repeat task.wait() until playerInfo.storage[player]
task.wait(1)
local this = {}
this.drawingObjects = {
drawOnScreen = {},
drawOffScreen = {},
drawGeneral = {}, --everything in general will always
draw if the condition is met
stoppedRenderingOnScreen = true,
stoppedRenderingOffScreen = true,
lastData = { --data needed for calculating getboundingbox
to preserve the rotation
headPos = nil,
torsoCf = nil,
health = nil,
maxHealth = nil
},
}
this.transparencyEvent = Instance.new("BindableEvent")
this.healthPercentageSpring = spring.new()
this.healthPercentageSpring.s = 24
this.timePassed = 0
this.chamsObjects = {}
this.skeletons = {}
this.chamsTransConnections = {}
this.updatechams = false -- homo!!
this.transConnections = {}
this.theirpInfo = playerInfo.storage[player]
visuals.initializeDrawingObjects(this.drawingObjects.drawOnScreen,
this.drawingObjects.drawOffScreen, this.drawingObjects.drawGeneral)
function this.chamsremoved(character)
for i = #this.chamsObjects, 1, -1 do
local object = table.remove(this.chamsObjects, i)
if object then
object:Destroy()
object = nil
end
end
for i = #this.skeletons, 1, -1 do
local v = table.remove(this.skeletons, i)
if v then
v.step:Disconnect()
v.step = nil
v.line:Remove()
v.line = nil
v.weld = nil
end
end
end
function this.chamsadded(character)
repeat
task.wait()
until character ~= nil
local humanoid = character:WaitForChild("Humanoid", 1/0)
local humanoidRootPart =
character:WaitForChild("HumanoidRootPart", 1/0)
if humanoid.Health <= 0 then
return
end
local pInfo = playerInfo.storage[player]
if not pInfo then
repeat
pInfo = playerInfo.storage[player]
task.wait()
until pInfo
end
--what the dog doing
local section = this and this.theirpInfo and
this.theirpInfo.enemy and "Enemy ESP" or "Team ESP"
humanoidRootPart.AncestryChanged:Connect(function(child,
new)
if new == nil then
this.chamsremoved()
end
end)
local yeah = tick()
local loop
loop = runService.Stepped:Connect(function()
if tick() - yeah > 5 then
loop:Disconnect()
loop = nil
end
transparencyFix()
end)
for i,v in next, character:GetChildren() do
if v:IsA("MeshPart") or v:IsA("BasePart") and
v:FindFirstChildOfClass("Motor6D") and (v.Transparency ~= 1 or v.Name == "Head")
then
if v.Name == "BackC4" then return end
local weld = v:FindFirstChildOfClass("Motor6D")
if weld.Part0 == character.HumanoidRootPart or
weld.Part1 == character.HumanoidRootPart then
else
if weld and weld.Part0 and weld.Part1 then
local data = {}
data.weld = weld
data.line = visuals.createDrawing("Line", {
Thickness = 1,
Color = Menu["ESP"][section]["Skeleton"]["Color
1"]["Color"],
Visible = false,
Transparency = 0.5
})
local hasBeenHidden = false
data.step = runService.Stepped:Connect(function()
local section = this and this.theirpInfo and
this.theirpInfo.enemy and "Enemy ESP" or "Team ESP"
if Menu["ESP"][section]["Enabled"]["Toggle"]
["Enabled"] and Menu["ESP"][section]["Skeleton"]["Toggle"]["Enabled"] then
hasBeenHidden = false
local p0, v0 =
mathModule.worldToViewportPoint(data.weld.Part0.Position)
local p1, v1 =
mathModule.worldToViewportPoint(data.weld.Part1.Position)
if v0 and v1 then
data.line.From =
newVector2(math.floor(p0.x), math.floor(p0.y))
data.line.To =
newVector2(math.floor(p1.x), math.floor(p1.y))
data.line.Color = Menu["ESP"][section]
["Skeleton"]["Color 1"]["Color"]
data.line.Visible = true
else
data.line.Visible = false
end
else
if hasBeenHidden ~= true
then
data.line.Visible = false
hasBeenHidden =
true
end
end
end)
table.insert(this.skeletons, data)
end
end
end
if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart"
and v.Name ~= "Gun" and v.Name ~= "BackC4" and v.Name ~= "HeadHB" and v.Name ~=
"Head" then
local isHead = v.Name == "FakeHead"
local inner = Instance.new(isHead and
"CylinderHandleAdornment" or "BoxHandleAdornment")
local outline = inner:Clone()
-- dn
-- is 1 the inner or outline?
-- 1 inner
inner.Name = "inner"
inner.AlwaysOnTop = true
inner.Color3 = Menu["ESP"][section]["Chams"]
["Color 1"]["Color"]
inner.Transparency = Menu["ESP"][section]
["Chams"]["Color 1"]["Transparency"]
inner.Visible = Menu["ESP"][section]["Chams"]
["Toggle"]["Enabled"]
inner.ZIndex = 2
inner.Adornee = v
inner.Parent = visuals.chamsFolder
outline.Name = "outer"
outline.AlwaysOnTop = false
outline.Color3 = Menu["ESP"][section]["Chams"]
["Color 2"]["Color"]
outline.Transparency = Menu["ESP"][section]
["Chams"]["Color 2"]["Transparency"]
outline.Visible = inner.Visible
outline.ZIndex = -1
outline.Adornee = v
outline.Parent = visuals.chamsFolder
if isHead then
inner.CFrame = CFrame.Angles(pi / 2, 0,
0)
inner.Radius = v.Size.x * 0.58 + 0.001
inner.Height = v.Size.y + 0.17
outline.CFrame = inner.CFrame
outline.Radius = v.Size.x * 0.58 + 0.15
outline.Height = v.Size.y + 0.32
else
inner.Size = v.Size + newVector3(0.001,
0.001, 0.001)
outline.Size = v.Size + newVector3(0.15,
0.15, 0.15)
end
table.insert(this.chamsObjects, inner)
table.insert(this.chamsObjects, outline)
end
end
end
function this.updateInnerChams()
if not this or not this.theirpInfo then return end
local section = this and this.theirpInfo and
this.theirpInfo.enemy and "Enemy ESP" or "Team ESP"
local chamsEnabled = Menu["ESP"][section]["Chams"]
["Toggle"]["Enabled"] and Menu["ESP"][section]["Enabled"]["Toggle"]["Enabled"]
if this.chamsObjects then
for i, v in next, this.chamsObjects do
v.Visible = Menu["ESP"][section]["Chams"]
["Toggle"]["Enabled"]
if v.Name == "inner" then
v.Color3 = Menu["ESP"][section]["Chams"]
["Color 1"]["Color"]
v.Transparency = chamsEnabled and
Menu["ESP"][section]["Chams"]["Color 1"]["Transparency"] or 1
end
end
end
end
function this.updateOuterChams()
if not this or not this.theirpInfo then return end
local section = this and this.theirpInfo and
this.theirpInfo.enemy and "Enemy ESP" or "Team ESP"
local chamsEnabled = Menu["ESP"][section]["Chams"]
["Toggle"]["Enabled"] and Menu["ESP"][section]["Enabled"]["Toggle"]["Enabled"]
if this.chamsObjects then
for i, v in next, this.chamsObjects do
v.Visible = Menu["ESP"][section]["Chams"]
["Toggle"]["Enabled"]
if v.Name == "outer" then
v.Color3 = Menu["ESP"][section]["Chams"]
["Color 2"]["Color"]
v.Transparency = chamsEnabled and
Menu["ESP"][section]["Chams"]["Color 2"]["Transparency"] or 1
end
end
end
end
function this.updateChams()
if not this or not this.theirpInfo then return end
local section = this and this.theirpInfo and
this.theirpInfo.enemy and "Enemy ESP" or "Team ESP"
local chamsEnabled = Menu["ESP"][section]["Chams"]
["Toggle"]["Enabled"] and Menu["ESP"][section]["Enabled"]["Toggle"]["Enabled"]
if this.chamsObjects then
for i, v in next, this.chamsObjects do
v.Visible = Menu["ESP"][section]["Chams"]
["Toggle"]["Enabled"]
if v.Name == "inner" then
v.Color3 = Menu["ESP"][section]["Chams"]
["Color 1"]["Color"]
v.Transparency = chamsEnabled and
Menu["ESP"][section]["Chams"]["Color 1"]["Transparency"] or 1
elseif v.Name == "outer" then
v.Color3 = Menu["ESP"][section]["Chams"]
["Color 2"]["Color"]
v.Transparency = chamsEnabled and
Menu["ESP"][section]["Chams"]["Color 2"]["Transparency"] or 1
end
end
transparencyFix()
end
end
function this.renderOnScreen(info)
--debug.profilebegin(player.Name .. " esp render on screen")
if info.pInfo then
this.drawingObjects.lastData.pInfo = info.pInfo
else
info.pInfo = this.drawingObjects.lastData.pInfo
end
local fakeindicator = 0
local flagoffset = 0 -- yeah yeah this is gay but fuck off
ty!
boxOutline.Position = box.Position
boxOutline.Size = box.Size
if Menu["ESP"][section]["Filled Box"]["Toggle"]
["Enabled"] then
boxFilled.Position = box.Position +
newVector2(math.floor(box.Thickness / 2) + 1, math.floor(box.Thickness / 2) + 1)
boxFilled.Size = box.Size -
newVector2(box.Thickness + 1, box.Thickness + 1)
boxFilled.Visible = true
else
boxFilled.Visible = false
end
box.Visible = true
boxOutline.Visible = true
else
box.Visible = false
boxFilled.Visible = false
boxOutline.Visible = false
end
--debug.profileend()
local healthPercentage =
this.healthPercentageSpring.p
local fullSize = boundingRect.Height
local chunk = fullSize * healthPercentage
healthBar.Size = newVector2(2, chunk)
healthBar.Position = boundingRect.Min + newVector2(-
5, fullSize - chunk)
healthBarOutline.Size = newVector2(4, fullSize + 2)
healthBarOutline.Position = boundingRect.Min +
newVector2(-6, -1)
healthBarOutlineOutline.Size = healthBarOutline.Size
healthBarOutlineOutline.Position =
healthBarOutline.Position
healthBar.Color = hpLow:Lerp(hpMax, healthPercentage)
if isGradient then
local sizePerSegment = math.ceil(fullSize /
visuals.gradentHealthBarSegments)
local maxSegments = fullSize / sizePerSegment +
1
local minSegments = chunk / sizePerSegment + 1
local skipped = maxSegments - minSegments
for i = 1, visuals.gradentHealthBarSegments do
local segment =
drawOnScreen["healthBarSegment" .. i].object
if drawOnScreen["healthBarSegment1"].object.Visible
== true then
for i = 1, visuals.gradentHealthBarSegments do
drawOnScreen["healthBarSegment" ..
i].object.Visible = false
end
end
end
--debug.profileend()
moneyTag.Font = textFlagFont
moneyTag.Size = textFlagSize
moneyTag.Position = boundingRect.Min +
newVector2(math.floor(boundingRect.Width) + (moneyTag.TextBounds.X / 2) + 2, -3 +
flagoffset)
flagoffset = flagoffset + moneyTag.TextBounds.Y
moneyTag.Visible = true
else
moneyTag.Visible = false
end
--debug.profileend()
function this.renderOffScreen(info)
--debug.profilebegin(player.Name .. " esp render off screen")
local pos = CFrame.lookAt(camera.CFrame.p, camera.CFrame.p
+ camera.CFrame.LookVector * newVector3(1, 0, 1)):PointToObjectSpace(info.position)
--arrow
if not (executor == "ScriptWare" and platform == "Mac")
then
local oofArrow =
this.drawingObjects.drawOffScreen.oofArrow.object
local oofArrowOutline =
this.drawingObjects.drawOffScreen.oofArrowOutline.object
if Menu["ESP"]["Enemy ESP"]["Out of View Arrows"]
["Toggle"]["Enabled"] and this and this.theirpInfo and this.theirpInfo.enemy then
local angle = math.atan2(pos.z, pos.x)
oofArrow.PointA = arrowOrigin +
Vector2.new(arrowSize*2 * cx, arrowSize*2 * sy)
oofArrow.PointB = arrowOrigin +
Vector2.new(arrowSize * cx1, arrowSize * sy1)
oofArrow.PointC = arrowOrigin +
Vector2.new(arrowSize * cx2, arrowSize * sy2)
oofArrow.Color = Menu["ESP"]["Enemy ESP"]["Out
of View Arrows"]["Color 1"]["Color"]
oofArrowOutline.PointA = oofArrow.PointA
oofArrowOutline.PointB = oofArrow.PointB
oofArrowOutline.PointC = oofArrow.PointC
oofArrowOutline.Color = Color3.new(math.max(0,
Menu["ESP"]["Enemy ESP"]["Out of View Arrows"]["Color 1"]["Color"].r * 0.5),
math.max(0, Menu["ESP"]["Enemy ESP"]["Out of View Arrows"]["Color 1"]["Color"].g *
0.5), math.max(0, Menu["ESP"]["Enemy ESP"]["Out of View Arrows"]["Color 1"]
["Color"].b * 0.5))
this.drawingObjects.drawOffScreen.oofArrow.originalTransparency = trans
this.drawingObjects.drawOffScreen.oofArrowOutline.originalTransparency =
trans
oofArrow.Transparency = trans
oofArrowOutline.Transparency = trans
oofArrow.Visible = true
oofArrowOutline.Visible = true
else
oofArrowOutline.Visible = false
oofArrow.Visible = false
end
end
this.drawingObjects.stoppedRenderingOffScreen = false
function this.renderGeneral(info)
--debug.profilebegin(player.Name .. " esp render general")
local snapLine =
this.drawingObjects.drawGeneral.snapLine.object
local pos, onScreen =
mathModule.worldToViewportPoint(info.position, false, 50)
local x = math.cos(angle)
local y = math.sin(angle)
local slope = y/x
local xEdge, yEdge = viewportSize.x, viewportSize.y
if y < 0 then
yEdge = 0
end
if x < 0 then
xEdge = 0
end
local cameraCircle =
this.drawingObjects.drawOnScreen.cameraCircle.object
local cameraCf = findFirstChild(player, "CameraCF")
local desync = (cameraCf.Value.p - info.position).Magnitude
fakeindicator = (0.1 * desync - 1.2)
if section:find("Enemy") and Menu["ESP"]["Enemy ESP"]["Show
Resolved Position"]["Toggle"]["Enabled"] and findFirstChild(player, "CameraCF") and
this.timePassed == 0 then
if cameraCf.Value ~= emptyCf and cameraCf.Value ==
cameraCf.Value and desync > 12 then
local pos, onScreen =
mathModule.worldToViewportPoint(cameraCf.Value.p)
if onScreen then
cameraCircle.Position =
newVector2(math.floor(pos.x), math.floor(pos.y))
cameraCircle.Transparency = fakeindicator
cameraCircle.Color = Menu["ESP"]["Enemy
ESP"]["Show Resolved Position"]["Color 1"]["Color"]
cameraCircle.Visible = true
else
cameraCircle.Visible = false
end
else
cameraCircle.Visible = false
end
else
cameraCircle.Visible = false
end
local cf = CFrame.new(info.pInfo.currentPosition)
local size = Vector3.new(2, 6, 2)
local extrapolateby = info.pInfo.velocity *
((Menu["Rage"]["Hack vs. Hack"]["Extrapolation Tuning"]["Value"] +
(game.Stats.PerformanceStats.Ping:GetValue() * 2)) / 1000) -- this is how far ahead
in time we are extrapolating
local segment =
this.drawingObjects.drawGeneral.lagCompLine1.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
do
local verticee1 = extrapolated + Vector3.new(-
size.x / 2, size.y / 2, size.z / 2)
local verticee2 = extrapolated + Vector3.new(-
size.x / 2, -size.y / 2, size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine2.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
do
local verticee1 = extrapolated + Vector3.new(-
size.x / 2, size.y / 2, -size.z / 2)
local verticee2 = extrapolated + Vector3.new(-
size.x / 2, -size.y / 2, -size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine3.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
do
local verticee1 = extrapolated +
Vector3.new(size.x / 2, size.y / 2, -size.z / 2)
local verticee2 = extrapolated +
Vector3.new(size.x / 2, -size.y / 2, -size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine4.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
-- animated bits (tits)
local upper = math.sin(tick() * 2)
do
local verticee1 = extrapolated +
Vector3.new(size.x / 2, size.y / 2 * upper, size.z / 2)
local verticee2 = extrapolated + Vector3.new(-
size.x / 2, size.y / 2 * upper, size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine5.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
do
local verticee1 = extrapolated +
Vector3.new(size.x / 2, size.y / 2 * upper, size.z / 2)
local verticee2 = extrapolated +
Vector3.new(size.x / 2, size.y / 2 * upper, -size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine6.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
do
local verticee1 = extrapolated + Vector3.new(-
size.x / 2, size.y / 2 * upper, -size.z / 2)
local verticee2 = extrapolated + Vector3.new(-
size.x / 2, size.y / 2 * upper, size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine7.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
do
local verticee1 = extrapolated + Vector3.new(-
size.x / 2, size.y / 2 * upper, -size.z / 2)
local verticee2 = extrapolated +
Vector3.new(size.x / 2, size.y / 2 * upper, -size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine8.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
upper = -upper
do
local verticee1 = extrapolated +
Vector3.new(size.x / 2, size.y / 2 * upper, size.z / 2)
local verticee2 = extrapolated + Vector3.new(-
size.x / 2, size.y / 2 * upper, size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine9.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
do
local verticee1 = extrapolated +
Vector3.new(size.x / 2, size.y / 2 * upper, size.z / 2)
local verticee2 = extrapolated +
Vector3.new(size.x / 2, size.y / 2 * upper, -size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine10.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
do
local verticee1 = extrapolated + Vector3.new(-
size.x / 2, size.y / 2 * upper, -size.z / 2)
local verticee2 = extrapolated + Vector3.new(-
size.x / 2, size.y / 2 * upper, size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine11.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
do
local verticee1 = extrapolated + Vector3.new(-
size.x / 2, size.y / 2 * upper, -size.z / 2)
local verticee2 = extrapolated +
Vector3.new(size.x / 2, size.y / 2 * upper, -size.z / 2)
local segment =
this.drawingObjects.drawGeneral.lagCompLine12.object
if onScreen1 and onScreen2 then
segment.From = newVector2(pos1.x, pos1.y)
segment.To = newVector2(pos2.x, pos2.y)
segment.Color = currentColor
segment.Visible = true
else
segment.Visible = false
end
end
else
for i = 1, 12 do
local segment =
this.drawingObjects.drawGeneral["lagCompLine" .. i].object
segment.Visible = false
end
end
--debug.profileend()
end
function this.onSpawned()
local pInfo = playerInfo.storage[player]
repeat
task.wait()
until pInfo and pInfo.alive -- FUCK INTEGER HARD
if this.step then
this.step:Disconnect()
this.step = nil
end
this.transparencyEvent:Fire(0)
this.fadefinished = true
this.step = runService.Stepped:Connect(function(upTime,
deltaTime)
--debug.profilebegin(player.Name .. " esp spawned
render")
if pInfo and (pInfo.alive or pInfo.god) then
local section = pInfo.enemy and "Enemy" or
"Team"
local health, maxHealth =
pInfo.humanoid.Health, pInfo.humanoid.MaxHealth
this.drawingObjects.lastData.health = health
this.drawingObjects.lastData.maxHealth =
maxHealth
local enabled = Menu["ESP"][section .. " ESP"]
["Enabled"]["Toggle"]["Enabled"]
if enabled then
this.timePassed = 0
local onScreen =
mathModule.spherePoint(pInfo.head.Position, 4)
if onScreen then
this.renderOnScreen({
boundingRect =
visuals.getBoundingBox(pInfo.rootpart.CFrame, pInfo.head.CFrame,
pInfo.rootpart.Size, pInfo.head.Size, pInfo.humanoid.HipHeight,
this.drawingObjects.lastData),
pInfo = pInfo,
health = health,
maxHealth = maxHealth
})
else
this.renderOffScreen({
position =
pInfo.currentPosition
})
end
this.renderGeneral({
position = pInfo.currentPosition,
pInfo = pInfo
})
else
this.timePassed = 1
if not
this.drawingObjects.stoppedRenderingOnScreen then
this.drawingObjects.stoppedRenderingOnScreen = true
for i,v in next,
this.drawingObjects.drawOnScreen do
v.object.Visible = false
end
end
if not
this.drawingObjects.stoppedRenderingOffScreen then
this.drawingObjects.stoppedRenderingOffScreen = true
for i,v in next,
this.drawingObjects.drawOffScreen do
v.object.Visible = false
end
end
for i,v in next,
this.drawingObjects.drawGeneral do
v.object.Visible = false
end
end
else
if this and this.onDied then
this.onDied()
end
end
--debug.profileend()
end)
end
function this.onDied()
local pInfo = playerInfo.storage[player]
if this.step then
this.step:Disconnect()
this.step = nil
end
this.fadefinished = false
this.timePassed = 0
this.step = runService.Stepped:Connect(function(upTime,
deltaTime)
--debug.profilebegin(player.Name .. " esp died
render")
if not this.timePassed then
this.timePassed = 1
end
this.timePassed = this.timePassed + (deltaTime * 4)
if this.timePassed >= 1 then
if this.step then
this.step:Disconnect()
end
for i,v in next,
this.drawingObjects.drawOnScreen do
v.object.Visible = false
end
for i,v in next,
this.drawingObjects.drawOffScreen do
v.object.Visible = false
end
for i,v in next,
this.drawingObjects.drawGeneral do
v.object.Visible = false
end
this.drawingObjects.stoppedRenderingOffScreen =
true
this.drawingObjects.stoppedRenderingOnScreen =
true
for i = #this.chamsTransConnections, 1, -1 do
local con =
table.remove(this.chamsTransConnections, i)
if con then
con:Disconnect()
con = nil
end
end
for i = #this.chamsObjects, 1, -1 do
local object =
table.remove(this.chamsObjects, i)
if object then
object:Destroy()
object = nil
end
end
if this.step then
this.step:Disconnect()
this.step = nil
end
this.transparencyEvent:Fire(0)
this.fadefinished = true
else
this.transparencyEvent:Fire(mathModule.map(this.timePassed, 0, 1, 0, 1))
local section = pInfo.enemy and "Enemy" or
"Team"
local enabled = Menu["ESP"][section .. " ESP"]
["Enabled"]["Toggle"]["Enabled"]
if enabled and
this.drawingObjects.lastData.headCf then
local onScreen =
mathModule.spherePoint(this.drawingObjects.lastData.headCf.p, 4)
if onScreen then
this.renderOnScreen({
boundingRect =
visuals.getBoundingBox(nil, nil, nil, nil, nil, this.drawingObjects.lastData),
health = 0,
maxHealth =
this.drawingObjects.lastData.maxHealth
})
else
this.renderOffScreen({
position =
this.drawingObjects.lastData.headCf.p
})
end
this.renderGeneral({
position =
this.drawingObjects.lastData.headCf.p
})
else
if not
this.drawingObjects.stoppedRenderingOnScreen then
this.drawingObjects.stoppedRenderingOnScreen = true
for i,v in next,
this.drawingObjects.drawOnScreen do
v.object.Visible = false
end
end
if not
this.drawingObjects.stoppedRenderingOffScreen then
this.drawingObjects.stoppedRenderingOffScreen = true
for i,v in next,
this.drawingObjects.drawOffScreen do
v.object.Visible = false
end
end
for i,v in next,
this.drawingObjects.drawGeneral do
v.object.Visible = false
end
end
end
--debug.profileend()
end)
end
if player.Character and
player.Character:FindFirstChild("HumanoidRootPart") then
this.onSpawned()
this.chamsadded(player.Character)
end
visuals.espObjects[player] = this
end
function visuals.removeEsp(player)
local this = visuals.espObjects[player]
if this then
if this.step then
this.step:Disconnect()
end
for i,v in next, this.drawingObjects.drawOnScreen do
v.object:Remove()
v.object = nil
table.clear(v)
end
for i,v in next, this.drawingObjects.drawOffScreen do
v.object:Remove()
v.object = nil
table.clear(v)
end
for i,v in next, this.drawingObjects.drawGeneral do
v.object:Remove()
v.object = nil
table.clear(v)
end
for i = #this.chamsTransConnections, 1, -1 do
local con = table.remove(this.chamsTransConnections,
i)
if con then
con:Disconnect()
con = nil
end
end
for i = #this.transConnections, 1, -1 do
local con = table.remove(this.transConnections, i)
if con then
con:Disconnect()
con = nil
end
end
this.transparencyEvent:Destroy()
this.healthPercentageSpring = nil
table.clear(this)
visuals.espObjects[player] = nil
this = nil
end
end
playerSpawned:Connect(function(plr, tick)
local this = visuals.espObjects[plr]
if this then
this.chamsadded(plr.Character)
this.onSpawned()
end
end)
end
function visuals.saveViewmodel()
visuals.chammedobjects["Weapon Objects"] = {} -- guns are not re used
visuals.chammedobjects["Arms"] = {}
visuals.chammedobjects["Clothing"] = {}
visuals.chammedobjects["Original"] = {}
if localPlayer.Status.Alive.Value == false then
return
end
if camera:FindFirstChild("Arms") then
for i, v in next, (camera.Arms:GetChildren()) do
if v:IsA("Model") and v:FindFirstChild("Right Arm") and
v:FindFirstChild("Left Arm") then
table.insert(visuals.chammedobjects["Arms"], v["Right
Arm"])
table.insert(visuals.chammedobjects["Arms"], v["Left
Arm"])
table.insert(visuals.chammedobjects["Clothing"],
v["Right Arm"]:FindFirstChild("RGlove") or v["Right Arm"]:FindFirstChild("Glove"))
table.insert(visuals.chammedobjects["Clothing"],
v["Left Arm"]:FindFirstChild("LGlove") or v["Left Arm"]:FindFirstChild("Glove"))
table.insert(visuals.chammedobjects["Clothing"],
v["Right Arm"]:FindFirstChild("Sleeve"))
table.insert(visuals.chammedobjects["Clothing"],
v["Left Arm"]:FindFirstChild("Sleeve"))
elseif (v:IsA("BasePart") or v:IsA("MeshPart") or
v:IsA("SpecialMesh") or v:IsA("SurfaceAppearance")) and v.Transparency == 0 or
v.Name == "HumanoidRootPart" then
if v.Name == "HumanoidRootPart" then -- fixing rolve
issue
v.Transparency = 1
else
table.insert(visuals.chammedobjects["Weapon
Objects"], v)
if v:FindFirstChild("SurfaceAppearance") then
table.insert(visuals.chammedobjects["Weapon Objects"],
v:FindFirstChild("SurfaceAppearance"))
end
end
end
end
else
return
end
-- FUCK YOU NIGGER I HATE THIS SO FUCKING MUCH IF U READ THIS FUCK YOU
for idx, objects in next, ({visuals.chammedobjects["Arms"],
visuals.chammedobjects["Clothing"], visuals.chammedobjects["Weapon Objects"]}) do
for i, v in next, (objects) do
if v:IsA("BasePart") or v:IsA("MeshPart") or
v:IsA("SpecialMesh") then
local property = { -- i would getprops(v) but that
shits laggy
Color = v.Color,
Material = v.Material,
Reflectance = v.Reflectance,
Transparency = v.Transparency
}
if v:IsA("MeshPart") then
property.TextureID = v.TextureID
elseif v:IsA("SpecialMesh") then
property.TextureId = v.TextureId
end
visuals.chammedobjects["Original"][v] = property
if v:FindFirstChildOfClass("MeshPart") or
v:FindFirstChildOfClass("SpecialMesh") then
local HiddenMesh =
v:FindFirstChildOfClass("MeshPart") or v:FindFirstChildOfClass("SpecialMesh")
if HiddenMesh:IsA("MeshPart") then
visuals.chammedobjects["Original"]
[HiddenMesh] = {
TextureID = HiddenMesh.TextureID
}
else
visuals.chammedobjects["Original"]
[HiddenMesh] = {
TextureId = HiddenMesh.TextureId,
VertexColor =
HiddenMesh.VertexColor
}
end
end
elseif v:IsA("SurfaceAppearance") then
visuals.chammedobjects["Original"][v] = {
Parent = v.Parent
}
end
end
end
end
function visuals.updateWeaponChams()
for i, v in next, (visuals.chammedobjects["Colored Weapons"]) do
local originalproperties = visuals.chammedobjects["Original"][v]
if originalproperties then
for i2, v2 in next, (originalproperties) do
v[i2] = v2
end
end
end
visuals.chammedobjects["Colored Weapons"] = {} -- shit aint colored no
more
else
if v:IsA("Part") or v:IsA("MeshPart") or
v:IsA("SpecialMesh") then
thing[1 + #thing] = v
v.Transparency = Menu["Visuals"]["Local"]
["Weapon Chams"]["Color 1"]["Transparency"]
if v.Name ~= "Dot" then
v.Color = Menu["Visuals"]["Local"]
["Weapon Chams"]["Color 1"]["Color"]
v.Material =
visuals.materials[Menu["Visuals"]["Local"]["Weapon Cham Material"]["Value"]]
v.Reflectance = Menu["Visuals"]["Local"]
["Weapon Reflectivity"]["Value"]
if v:IsA("MeshPart") then
v.TextureID = Animation
end
if v:IsA("SpecialMesh") then
v.TextureId = Animation
end
local HiddenMesh =
v:FindFirstChildOfClass("MeshPart") or v:FindFirstChildOfClass("SpecialMesh")
if HiddenMesh ~= nil then
if HiddenMesh:IsA("MeshPart") then
HiddenMesh.TextureID =
Animation
HiddenMesh.Color = v.Color
HiddenMesh.Material =
v.Material
HiddenMesh.Reflectance =
v.Reflectance
else
HiddenMesh.TextureId =
Animation
HiddenMesh.VertexColor =
newVector3(v.Color.r, v.Color.g, v.Color.b)
end
camera.ChildAdded:Connect(function()
haltLocalChams = true
task.wait()
visuals.saveViewmodel()
haltLocalChams = false
end)
function visuals.updatelocalplayerchams()
if (Menu["Visuals"]["Camera"]["Third Person"]["Toggle"]["Enabled"] and
Menu["Visuals"]["Camera"]["Third Person"]["Bind"]["Active"]) and Menu["Visuals"]
["Local"]["Local Chams"]["Toggle"]["Enabled"] and visuals.chammedbody == true and
localPlayer.Character then
local thing = visuals.chammedobjects["Colored Body"]
local texture = ""
if Menu["Visuals"]["Local"]["Local Cham Material"]["Value"] ==
"Ghost" then
texture = visuals.forcefieldAnimations[Menu["Visuals"]
["Local"]["Local Cham Animation"]["Value"]]
end
for i, v in next, (localPlayer.Character:GetChildren()) do
if v:IsA("BasePart") or v:IsA("MeshPart") or
v:IsA("SpecialMesh") then
if not (v.Name == "HumanoidRootPart" or v.Name ==
"BackC4" or v.Name == "___") then
v.Color = Menu["Visuals"]["Local"]["Local
Chams"]["Color 1"]["Color"]
v.Material = visuals.materials[Menu["Visuals"]
["Local"]["Local Cham Material"]["Value"]]
v.Transparency = Menu["Visuals"]["Local"]
["Local Chams"]["Color 1"]["Tranparency"]
if v:IsA("MeshPart") then
v.TextureID = texture
elseif v:IsA("SpecialMesh") then
v.TextureId = texture
end
if v.Name == "FakeHead" or v.Name == "HeadHB"
then
v.Transparency = 1
end
thing[1 + #thing] = v
end
elseif v:IsA("Accessory") and v:FindFirstChild("Handle")
then
for i2, v2 in next, (v:GetChildren()) do
if v2:IsA("BasePart") or v2:IsA("MeshPart") or
v2:IsA("SpecialMesh") then
v2.Transparency = Menu["Visuals"]
["Local"]["Local Chams"]["Color 1"]["Transparency"]
v2.Color = Menu["Visuals"]["Local"]
["Local Chams"]["Color 1"]["Color"]
v2.Material =
visuals.materials[Menu["Visuals"]["Local"]["Local Cham Material"]["Value"]]
if v2:IsA("MeshPart") then
v2.TextureID = texture
elseif v2:IsA("SpecialMesh") then
v2.TextureId = texture
end
thing[1 + #thing] = v2
local HiddenMesh =
v2:FindFirstChildOfClass("MeshPart") or v2:FindFirstChildOfClass("SpecialMesh") or
nil
if HiddenMesh ~= nil then
if HiddenMesh:IsA("MeshPart") then
HiddenMesh.TextureID =
texture
HiddenMesh.Color = v.Color
HiddenMesh.Material =
v.Material
HiddenMesh.Reflectance =
v.Reflectance
HiddenMesh.TextureID =
texture
else
HiddenMesh.VertexColor =
newVector3(v2.Color.r, v2.Color.g, v2.Color.b)
HiddenMesh.TextureId =
texture
end
local everyOther = 0
local everyEveryOther = 2
runService.Stepped:Connect(function()
everyEveryOther = everyEveryOther + 1
if (Menu["Visuals"]["Camera"]["Third Person"]["Toggle"]["Enabled"] and
Menu["Visuals"]["Camera"]["Third Person"]["Bind"]["Active"]) then
if everyEveryOther > 4 then
visuals.updatelocalplayerchams()
everyEveryOther = 0
end
return
end
if haltLocalChams == true then
return
end
everyOther = everyOther + 1
if everyOther > 4 then
visuals.updateArmChams()
everyOther = 0
end
visuals.updateWeaponChams()
end)
localPlayer.CharacterAdded:Connect(function()
visuals.chammedobjects["Original Body"] = {}
repeat
task.wait(1)
until localPlayer.Character and
localPlayer.Character:FindFirstChild("Humanoid") and
localPlayer.Character.Humanoid.Health > 0
visuals.updatelocalobjects(localPlayer.Character)
task.wait()
visuals.chammedbody = true
visuals.updatelocalplayerchams()
end)
if localPlayer.Character then
visuals.chammedbody = true
visuals.updatelocalobjects(localPlayer.Character)
end
localPlayer.CharacterRemoving:Connect(function()
visuals.chammedbody = false
visuals.chammedobjects["Original Body"] = {}
end)
function visuals.updateFov()
if Menu["Visuals"]["Camera"]["Override FOV"]["Toggle"]["Enabled"] then
client.fieldofview = Menu["Visuals"]["Camera"]["FOV"]["Value"]
camera.FieldOfView = Menu["Visuals"]["Camera"]["FOV"]["Value"]
else
client.fieldofview = 80
camera.FieldOfView = 80
end
end
Menu["Visuals"]["Camera"]["Override FOV"]
["Toggle"].Changed:Connect(visuals.updateFov)
Menu["Visuals"]["Camera"]["FOV"].Changed:Connect(visuals.updateFov)
camera:GetPropertyChangedSignal("FieldOfView"):Connect(function()
if Menu["Visuals"]["Camera"]["Disable Scope FOV"]["Toggle"]["Enabled"]
and Menu["Visuals"]["Camera"]["Override FOV"]["Toggle"]["Enabled"] and
localPlayer.Character and localPlayer.Character:FindFirstChild("Humanoid") then
camera.FieldOfView = Menu["Visuals"]["Camera"]["FOV"]["Value"] --
inb4 maximum re entrance error -- never happened
end
end)
function visuals.updateScope(bool)
for i, v in next, (localPlayer.PlayerGui.GUI.Crosshairs:GetChildren())
do
if v.Name:match("Frame") then
v.BackgroundTransparency = bool and 1 or 0
elseif v.Name:match("Scope") then
v.ImageTransparency = bool and 1 or 0
end
end
end
players.PlayerAdded:Connect(visuals.applyEsp)
players.PlayerRemoving:Connect(visuals.removeEsp)
visuals.crosshair = {}
visuals.crosshair.drawingObjects = {}
visuals.crosshair.drawingObjects.outlines = {}
for i = 1, 4 do
visuals.crosshair.drawingObjects.outlines[i] =
visuals.createDrawing("Line", {
Thickness = 3,
Color = Color3.fromRGB(0, 0, 0),
Transparency = 1,
Visible = true
})
end
visuals.crosshair.drawingObjects.objects = {}
for i = 1, 4 do
visuals.crosshair.drawingObjects.objects[i] =
visuals.createDrawing("Line", {
Thickness = 1,
Color = Color3.fromRGB(255, 255, 255),
Transparency = 1,
Visible = true
})
end
visuals.crosshair.currentaddedrotation = 0
visuals.crosshair.currentrotation = 0
function visuals.updateGUI(upTime, deltaTime) -- pasted from vaderhaxx
local customCrosshair = Menu["Visuals"]["Crosshair"]["Custom
Crosshair"]["Toggle"]["Enabled"] and not (Menu["Visuals"]["Camera"]["Third Person"]
["Toggle"]["Enabled"] and Menu["Visuals"]["Camera"]["Third Person"]["Bind"]
["Active"])
if customCrosshair then
local crosshairColor = Menu["Visuals"]["Crosshair"]["Custom
Crosshair"]["Color 1"]["Color"]
local crosshairTrans = Menu["Visuals"]["Crosshair"]["Custom
Crosshair"]["Color 1"]["Transparency"]
local crosshairThickness = Menu["Visuals"]["Crosshair"]
["Crosshair Thickness"].Value
local crosshairOutline = false -- not enough space for toggle :(
for _, frame in next,
localPlayer.PlayerGui.GUI.Crosshairs.Crosshair:GetChildren() do
if frame:IsA("ImageLabel") then
else
frame.BackgroundTransparency = 1
end
end
local screenPos = newVector2(math.floor(camera.ViewportSize.x /
2), math.floor(camera.ViewportSize.y / 2))
for i, v in next, visuals.crosshair.drawingObjects.objects do
v.Visible = customCrosshair
v.Color = crosshairColor
v.Thickness = crosshairThickness
v.Transparency =
localPlayer.PlayerGui.GUI.Crosshairs.Scope.Visible and 0 or 1 - crosshairTrans
visuals.crosshair.drawingObjects.outlines[i].Visible =
v.Visible and crosshairOutline or false
visuals.crosshair.drawingObjects.outlines[i].Thickness =
v.Thickness + 2
end
local width = Menu["Visuals"]["Crosshair"]["Crosshair
Width"].Value
local length = Menu["Visuals"]["Crosshair"]["Crosshair
Length"].Value
local widthgap = Menu["Visuals"]["Crosshair"]["Crosshair Width
Gap"].Value
local lengthgap = Menu["Visuals"]["Crosshair"]["Crosshair Length
Gap"].Value
local a, a1 = visuals.crosshair.drawingObjects.objects[1],
visuals.crosshair.drawingObjects.outlines[1]
a.From = newVector2(screenPos.x - from.x, screenPos.y - from.y)
a.To = newVector2(screenPos.x - to.x, screenPos.y - to.y)
a1.From = newVector2(screenPos.x - outfrom.x, screenPos.y -
outfrom.y)
a1.To = newVector2(screenPos.x - outto.x, screenPos.y - outto.y)
local b, b1 = visuals.crosshair.drawingObjects.objects[2],
visuals.crosshair.drawingObjects.outlines[2]
b.From = newVector2(screenPos.x + from.x, screenPos.y + from.y)
b.To = newVector2(screenPos.x + to.x, screenPos.y + to.y)
b1.From = newVector2(screenPos.x + outfrom.x, screenPos.y +
outfrom.y)
b1.To = newVector2(screenPos.x + outto.x, screenPos.y + outto.y)
local c, c1 = visuals.crosshair.drawingObjects.objects[3],
visuals.crosshair.drawingObjects.outlines[3]
c.From = newVector2(screenPos.x - from2.x, screenPos.y - from2.y)
c.To = newVector2(screenPos.x - to2.x, screenPos.y - to2.y)
c1.From = newVector2(screenPos.x - outfrom2.x, screenPos.y -
outfrom2.y)
c1.To = newVector2(screenPos.x - outto2.x, screenPos.y -
outto2.y)
local d, d1 = visuals.crosshair.drawingObjects.objects[4],
visuals.crosshair.drawingObjects.outlines[4]
d.From = newVector2(screenPos.x + from2.x, screenPos.y + from2.y)
d.To = newVector2(screenPos.x + to2.x, screenPos.y + to2.y)
d1.From = newVector2(screenPos.x + outfrom2.x, screenPos.y +
outfrom2.y)
d1.To = newVector2(screenPos.x + outto2.x, screenPos.y +
outto2.y)
else
for i, v in next, visuals.crosshair.drawingObjects.objects do
v.Visible = false
visuals.crosshair.drawingObjects.outlines[i].Visible =
false
end
end
end
visuals.updaterGUI = runService.Stepped:Connect(visuals.updateGUI)
Menu["Visuals"]["Crosshair"]["Custom Crosshair"]
["Toggle"].Changed:Connect(function()
if not Menu["Visuals"]["Crosshair"]["Custom Crosshair"]["Toggle"]
["Enabled"] and not (Menu["Visuals"]["Camera"]["Third Person"]["Toggle"]["Enabled"]
and Menu["Visuals"]["Camera"]["Third Person"]["Bind"]["Active"]) then
for _, frame in next,
localPlayer.PlayerGui.GUI.Crosshairs.Crosshair:GetChildren() do
if frame:IsA("ImageLabel") then else
frame.BackgroundTransparency = 0 end
end
end
end)
visuals.particleEmitterUpdate = function()
if not Menu["Visuals"]["Particle"]["Enabled"]["Toggle"]["Enabled"] then
return end
if localPlayer.Character and ragebot.realhrp then
if ragebot.realhrp:FindFirstChild("_p") then -- _p_p_p_p
visuals.particleemitter = ragebot.realhrp["_p"]
else
visuals.particleemitter = Instance.new("ParticleEmitter",
ragebot.realhrp)
visuals.particleemitter.Name = "_p" -- so secret!
visuals.particleemitter.Size = NumberSequence.new(0.35)
visuals.particleemitter.Brightness = 10
visuals.particleemitter.LightEmission = 1
visuals.particleemitter.LightInfluence = 1
end
visuals.particleemitter.Texture =
visuals.particleImages[Menu["Visuals"]["Particle"]["Texture"]["Value"] ]
visuals.particleemitter.Color =
ColorSequence.new{ColorSequenceKeypoint.new(0, Menu["Visuals"]["Particle"]
["Enabled"]["Color 2"]["Color"]), ColorSequenceKeypoint.new(1, Menu["Visuals"]
["Particle"]["Enabled"]["Color 1"]["Color"])}
visuals.particleemitter.Transparency = not (Menu["Visuals"]
["Camera"]["Third Person"]["Toggle"]["Enabled"] and Menu["Visuals"]["Camera"]
["Third Person"]["Bind"]["Active"]) and NumberSequence.new(1) or
NumberSequence.new{NumberSequenceKeypoint.new(0, Menu["Visuals"]["Particle"]
["Enabled"]["Color 2"]["Transparency"]), NumberSequenceKeypoint.new(1,
Menu["Visuals"]["Particle"]["Enabled"]["Color 1"]["Transparency"])}
visuals.particleemitter.Speed = NumberRange.new(Menu["Visuals"]
["Particle"]["Speed"].Value, Menu["Visuals"]["Particle"]["Speed"].Value)
visuals.particleemitter.Rate = Menu["Visuals"]["Particle"]
["Rate"].Value * 10
visuals.particleemitter.Rotation = Menu["Visuals"]["Particle"]
["Rotation Speed"].Value ~= 0 and NumberRange.new(-180, 180) or NumberRange.new(0,
0)
visuals.particleemitter.RotSpeed = NumberRange.new(-
Menu["Visuals"]["Particle"]["Rotation Speed"].Value, Menu["Visuals"]["Particle"]
["Rotation Speed"].Value)
visuals.particleemitter.Lifetime = NumberRange.new(1,
Menu["Visuals"]["Particle"]["Life Time"].Value)
visuals.particleemitter.SpreadAngle = Vector2.new(Menu["Visuals"]
["Particle"]["Spread Angle"].Value, Menu["Visuals"]["Particle"]["Spread
Angle"].Value)
visuals.particleemitter.LockedToPart = Menu["Visuals"]
["Particle"]["Locked"]["Toggle"]["Enabled"]
end
end
visuals.particleEmitterUpdater =
runService.RenderStepped:Connect(visuals.particleEmitterUpdate)
Menu["Visuals"]["Particle"]["Enabled"]
["Toggle"].Changed:Connect(function(state)
if not state then if localPlayer.Character and ragebot.realhrp and
visuals.particleemitter then visuals.particleemitter:Destroy() end end
end)
Instance.new("BloomEffect", camera)
local customAtmosphere = Instance.new("Atmosphere", lighting)
local updateWorldColorStop = tick()
function visuals.updateworldcolor()
if tick() - updateWorldColorStop < 1/20 then
return
end
updateWorldColorStop = tick()
--debug.profilebegin("world color update")
if Menu["Visuals"]["World"]["Ambience"]["Toggle"]["Enabled"] then
lighting.OutdoorAmbient = Menu["Visuals"]["World"]["Ambience"]
["Color 1"]["Color"]
lighting.Ambient = Menu["Visuals"]["World"]["Ambience"]["Color
1"]["Color"]
else
if findFirstChild(workspace, "Map") and
findFirstChild(workspace.Map, "Origin") then
if visuals.defaultlighting[workspace.Map.Origin.Value] ~=
nil then
for i, v in next,
(visuals.defaultlighting[workspace.Map.Origin.Value]) do
lighting[i] = v
end
end
else
lighting.OutdoorAmbient = Color3.new(0.647059, 0.611765,
0.54902) -- dust II
lighting.Ambient = Color3.new(0.509804, 0.462745, 0.372549)
-- dust II
end
end
if Menu["Visuals"]["World"]["Force Time"]["Toggle"]["Enabled"] then
lighting.ClockTime = Menu["Visuals"]["World"]["Custom Time"]
["Value"]
else
lighting.ClockTime = 9
end
if Menu["Visuals"]["World"]["Custom Saturation"]["Toggle"]["Enabled"]
then -- this colorcorrection effect doesnt get removed ever
camera.ColorCorrection.TintColor = Menu["Visuals"]["World"]
["Custom Saturation"]["Color 1"]["Color"]
camera.ColorCorrection.Saturation = Menu["Visuals"]["World"]
["Saturation Density"]["Value"] / 100
else
camera.ColorCorrection.Saturation = 0
camera.ColorCorrection.TintColor = Color3.new(1, 1, 1)
end
camera.Bloom.Enabled = Menu["Visuals"]["Bloom"]["Custom Bloom"]
["Toggle"]["Enabled"]
if Menu["Visuals"]["Bloom"]["Custom Bloom"]["Toggle"]["Enabled"] then
camera.Bloom.Intensity = Menu["Visuals"]["Bloom"]["Bloom
Intensity"]["Value"] / 100
camera.Bloom.Size = Menu["Visuals"]["Bloom"]["Bloom Size"]
["Value"] * 14 / 25
camera.Bloom.Threshold = Menu["Visuals"]["Bloom"]["Bloom
Threshold"]["Value"] / 400
else
camera.Bloom.Intensity = 0
camera.Bloom.Size = 0
camera.Bloom.Threshold = 0
end
if Menu["Visuals"]["Atmosphere"]["Custom Atmosphere"]["Toggle"]
["Enabled"] then
customAtmosphere.Color = Menu["Visuals"]["Atmosphere"]["Custom
Atmosphere"]["Color 1"]["Color"]
customAtmosphere.Decay = Menu["Visuals"]["Atmosphere"]["Custom
Atmosphere"]["Color 2"]["Color"]
customAtmosphere.Density = Menu["Visuals"]["Atmosphere"]
["Density"]["Value"] / 100
customAtmosphere.Glare = Menu["Visuals"]["Atmosphere"]["Glare"]
["Value"] / 10
customAtmosphere.Haze = Menu["Visuals"]["Atmosphere"]["Haze"]
["Value"] / 10
else
customAtmosphere.Density = 0
customAtmosphere.Glare = 0
customAtmosphere.Haze = 0
end
if Menu["Visuals"]["Misc"]["Custom Brightness"]["Toggle"]["Enabled"]
then
if Menu["Visuals"]["Misc"]["Brightness Mode"]["Value"] ==
"Fullbright" then
lighting.Brightness = 1
lighting.GlobalShadows = false
else
lighting.Brightness = 0
end
else
lighting.GlobalShadows = true
lighting.Brightness = 1 -- fixes inferno
end
--debug.profileend()
end
visuals.updateworldcolors =
runService.Stepped:Connect(visuals.updateworldcolor)
function visuals.updatesky()
if lighting:FindFirstChildOfClass("Sky") then
lighting:FindFirstChildOfClass("Sky"):Destroy()
end
if Menu["Visuals"]["Misc"]["Custom Skybox"]["Toggle"]["Enabled"] then
local sky = lighting:FindFirstChildOfClass("Sky")
if sky == nil then
sky = Instance.new("Sky", lighting)
end
for i, v in next, (visuals.skyboxes[Menu["Visuals"]["Misc"]
["Skybox choice"]["Value"]]) do
sky[i] = v
end
end
end
Menu["Visuals"]["Misc"]["Custom Skybox"]
["Toggle"].Changed:Connect(visuals.updatesky)
Menu["Visuals"]["Misc"]["Skybox choice"]
["Dropdown"].Changed:Connect(visuals.updatesky)
lighting.ChildAdded:Connect(visuals.updatesky)
function visuals.addWeaponESP(weapon)
if weapon:IsA("Part") and weapon:FindFirstChild("GunDrop") then
local ammoShit = weapon:WaitForChild("Ammo")
local storedammoShit = weapon:WaitForChild("StoredAmmo")
visuals.droppedWeaponStorage[weapon] = {
weaponName = visuals.createDrawing("Text", {
Font = 2,
Text = string.upper(weapon.Name),
Visible = false,
Position = newVector2(),
Size = 13,
Transparency = 1,
Color = Color3.new(1, 1, 1),
Center = true,
Outline = true,
}),
weaponAmmo = visuals.createDrawing("Text", {
Font = 2,
Text = tostring(ammoShit.Value),
Visible = false,
Position = newVector2(),
Size = 13,
Transparency = 1,
Color = Color3.new(1, 1, 1),
Center = true,
Outline = true
})
}
local referenceWeapName =
visuals.droppedWeaponStorage[weapon].weaponName
local referenceWeapAmmo =
visuals.droppedWeaponStorage[weapon].weaponAmmo
visuals.droppedWeaponStorage[weapon].step =
runService.Stepped:Connect(function()
--debug.profilebegin(weapon.Name .. " esp")
if Menu["ESP"]["Dropped ESP"]["Weapon Names"]["Toggle"]
["Enabled"] or Menu["ESP"]["Dropped ESP"]["Weapon Ammo"]["Toggle"]["Enabled"] then
local distance = (weapon.Position -
camera.CFrame.p).Magnitude
if distance <= 80 then
local weaponPosition, weaponOnScreen =
mathModule.worldToViewportPoint(weapon.Position, true, 50)
local gunTrans = 1
if distance >= 50 then
gunTrans = math.max(gunTrans - ((distance
- 50)/30), 0)
end
referenceWeapName.Color = Menu["ESP"]["Dropped
ESP"]["Weapon Names"]["Color 1"]["Color"]
referenceWeapAmmo.Color = Menu["ESP"]["Dropped
ESP"]["Weapon Ammo"]["Color 1"]["Color"]
referenceWeapName.Transparency = gunTrans
referenceWeapName.Position =
newVector2(math.floor(weaponPosition.x), math.floor(weaponPosition.y + 11))
referenceWeapAmmo.Transparency = gunTrans
referenceWeapAmmo.Position =
newVector2(math.floor(weaponPosition.x), math.floor(weaponPosition.y))
referenceWeapAmmo.Text = "[ " ..
tostring(ammoShit.Value) .. " / " .. tostring(storedammoShit.Value).. " ]"
referenceWeapName.Visible = Menu["ESP"]
["Dropped ESP"]["Weapon Names"]["Toggle"]["Enabled"]
referenceWeapAmmo.Visible = Menu["ESP"]
["Dropped ESP"]["Weapon Ammo"]["Toggle"]["Enabled"]
else
referenceWeapName.Visible = false
referenceWeapAmmo.Visible = false
end
else
referenceWeapName.Visible = false
referenceWeapAmmo.Visible = false
end
--debug.profileend()
end)
end
end
function visuals.removeWeaponESP(weapon)
if visuals.droppedWeaponStorage[weapon] then
visuals.droppedWeaponStorage[weapon].step:Disconnect()
visuals.droppedWeaponStorage[weapon].weaponName:Remove()
visuals.droppedWeaponStorage[weapon].weaponAmmo:Remove()
visuals.droppedWeaponStorage[weapon].weaponName = nil
visuals.droppedWeaponStorage[weapon].weaponAmmo = nil
table.clear(visuals.droppedWeaponStorage[weapon])
visuals.droppedWeaponStorage[weapon] = nil
end
end
function visuals.addRagdollChamObjects(ragdoll)
if ragdoll:IsA("Model") and players:FindFirstChild(ragdoll.Name) then
visuals.ragdollobjects[ragdoll.Name] = {}
for i, v in next, (ragdoll:GetChildren()) do
table.insert(visuals.ragdollobjects[ragdoll.Name], v)
end
end
end
workspace.Debris.ChildAdded:Connect(function(child)
task.wait(1/10)
visuals.addWeaponESP(child) -- there
visuals.addRagdollChamObjects(child)
end)
workspace.Debris.ChildRemoved:Connect(visuals.removeWeaponESP)
function visuals.addBombESP(child)
if child.Name == "C4" then -- ok i made this awful because initially it
wasnt done with circles n icons in mind
local ExplosionTime = tick() + 40
local elNig = tick()
local thisStuff = {}
thisStuff["C4"] = {}
thisStuff["C4"]["Drawings"] = {}
thisStuff["C4"]["Drawings"]["BackerCircle"] =
visuals.createDrawing("Circle", {
Visible = false,
Transparency = 1,
Color = Color3.fromRGB(24, 24, 24),
NumSides = 360,
Radius = 38,
Filled = true,
Position = newVector2(),
})
thisStuff["C4"]["Drawings"]["BackCircle"] =
visuals.createDrawing("Circle", {
Visible = false,
Transparency = 1,
Color = Color3.fromRGB(64, 64, 64),
NumSides = 360,
Radius = 36,
Filled = true,
Position = newVector2(),
})
local radius = 36
local lines = 2 * pi * radius
for i = 1, lines do -- i am so sorry
thisStuff["C4"]["Drawings"][tostring(i)] =
visuals.createDrawing("Line", {
Thickness = 2,
Visible = true,
Color = Color3.fromRGB(255, 0, 0),
})
end
thisStuff["C4"]["Drawings"]["FrontCircle"] =
visuals.createDrawing("Circle", {
Visible = false,
Transparency = 1,
Color = Color3.fromRGB(24, 24, 24),
NumSides = 360,
Radius = 34,
Filled = true,
Position = newVector2(),
})
thisStuff["C4"]["Drawings"]["Icon"] =
visuals.createDrawing("Image", {
Data = visuals.imagecache["C4"],
Size = newVector2(90, 32),
Transparency = 1,
})
thisStuff["C4"]["Drawings"]["NameText"] =
visuals.createDrawing("Text", {
Font = 2,
Text = child.Name,
Visible = false,
Position = newVector2(),
Size = 13,
Transparency = 1,
Color = Color3.new(1, 1, 1),
Center = true,
Outline = true,
})
thisStuff["C4"]["Drawings"]["DamageText"] =
visuals.createDrawing("Text", {
Font = 2,
Text = "100",
Visible = false,
Position = newVector2(),
Size = 13,
Transparency = 1,
Color = Color3.new(1, 1, 1),
Center = true,
Outline = true,
})
thisStuff["C4"].step = runService.Stepped:Connect(function()
--debug.profilebegin("c4 esp")
if child.Parent ~= workspace or not child.PrimaryPart or
not child.PrimaryPart.Position then -- get rid of this shit
thisStuff["C4"].step:Disconnect()
for i, v in next, (thisStuff["C4"]["Drawings"]) do
v.Visible = false
--v:Remove() -- unstable??? tf??
v = nil
end
thisStuff["C4"]["Drawings"] = nil
thisStuff["C4"] = nil
return
else
if Menu["ESP"]["Dropped ESP"]["Bomb Warning"]
["Toggle"]["Enabled"] then
local bombPosition, bombOnScreen =
mathModule.worldToViewportPoint(child.PrimaryPart.Position, true, 50)
local bombDamage = math.ceil(math.max(254 -
((((child.PrimaryPart.Position - camera.CFrame.p).Magnitude)/120)*254), 0)) + 1
local percentagetime =
workspace.Status.Defused.Value == false and ((ExplosionTime - tick()) / 40) or 1
local percentagetoexplode =
workspace.Status.Defused.Value == false and math.clamp(((tick() - ExplosionTime) /
40), -1, 0) or -1
local lower = Menu["ESP"]["Dropped ESP"]["Bomb
Warning"]["Color 1"]["Color"]
local upper = Menu["ESP"]["Dropped ESP"]["Bomb
Warning"]["Color 2"]["Color"]
bombPosition =
newVector2(math.floor(bombPosition.x), math.floor(bombPosition.y))
thisStuff["C4"]["Drawings"].BackerCircle.Color
= Color3.fromRGB(24, 24, 24)
thisStuff["C4"]["Drawings"].BackCircle.Color =
Color3.fromRGB(0, 0, 0)
thisStuff["C4"]["Drawings"].FrontCircle.Color =
Color3.fromRGB(24, 24, 24)
thisStuff["C4"]["Drawings"].DamageText.Color =
Color3.new(1, 1, 1)
thisStuff["C4"]["Drawings"].Icon.Position =
bombPosition - newVector2(math.floor(thisStuff["C4"]["Drawings"].Icon.Size.X / 2),
30)
thisStuff["C4"]["Drawings"].NameText.Position =
bombPosition + newVector2(0, 1)
thisStuff["C4"]["Drawings"].DamageText.Position
= bombPosition + newVector2(0, 15)
thisStuff["C4"]
["Drawings"].BackerCircle.Position = bombPosition
thisStuff["C4"]["Drawings"].BackCircle.Position
= bombPosition
thisStuff["C4"]
["Drawings"].FrontCircle.Position = bombPosition
thisStuff["C4"]["Drawings"].Icon.Visible = true
thisStuff["C4"]["Drawings"].NameText.Visible =
true
thisStuff["C4"]["Drawings"].DamageText.Visible
= true
thisStuff["C4"]
["Drawings"].BackerCircle.Visible = true
thisStuff["C4"]["Drawings"].BackCircle.Visible
= true
thisStuff["C4"]["Drawings"].FrontCircle.Visible
= true
elLine.From = centerpos
elLine.To = centerpos +
newVector2(math.floor(cx * radius), math.floor(cy * radius))
elLine.Color = lerpcolor
end
end
end
else
for i, v in next, (thisStuff["C4"]["Drawings"])
do
v.Visible = false
end
end
end
--debug.profileend()
end)
end
end
workspace.ChildAdded:Connect(function(child)
task.wait(1/10)
visuals.addBombESP(child)
end)
local passed = 0
while passed < Menu["Visuals"]["Bullets"]["Bullet Tracer
Fade Time"]["Value"] do
object.beam.Width0 = originalWidth0 *
(Menu["Visuals"]["Bullets"]["Bullet Tracer Fade Time"]["Value"] - passed)
object.beam.Width1 = originalWidth1 *
(Menu["Visuals"]["Bullets"]["Bullet Tracer Fade Time"]["Value"] - passed)
passed = passed + task.wait()
end
object.beam.Destroy(object.beam)
object.a0.Destroy(object.a0)
object.a1.Destroy(object.a1)
table.clear(object)
visuals.tracerObjects[visuals.shotIndex] = nil
object = nil
end)
end
function visuals.updateTracerProperties()
for i,v in next, visuals.tracerParent:GetChildren() do
if v.ClassName == "Beam" then
v.Color = ColorSequence.new(Menu["Visuals"]
["Bullets"]["Bullet Tracers"]["Color 1"]["Color"])
v.Transparency = NumberSequence.new(not
Menu["Visuals"]["Bullets"]["Bullet Tracers"]["Toggle"]["Enabled"] and 1 or
Menu["Visuals"]["Bullets"]["Bullet Tracers"]["Color 1"]["Transparency"])
end
end
end
Menu["Visuals"]["Bullets"]["Bullet Tracers"]["Color
1"].Changed:Connect(visuals.updateTracerProperties)
Menu["Visuals"]["Bullets"]["Bullet Tracers"]
["Toggle"].Changed:Connect(visuals.updateTracerProperties)
end
-- dn
function visuals.createHitChams(character)
local old = getthreadidentity()
setthreadidentity(8)
character.Archivable = true
local cloned = character:Clone()
cloned.Parent = workspace.Ray_Ignore
cloned:SetPrimaryPartCFrame(character:GetPrimaryPartCFrame())
if cloned:FindFirstChildOfClass("Humanoid") then
cloned:FindFirstChildOfClass("Humanoid"):Destroy()
end
--yo whats like the fucking delay sldier or sum shit idfk
-- idk
-- 1 sec
-- fuck it for now
-- no iwan finish this
-- fuck u i have to make a whole new section
transNumber:GetPropertyChangedSignal("Value"):Connect(function()
v.Transparency = transNumber.Value
end)
end
elseif v:IsA("MeshPart") then
v.CanCollide = false
end
if v.Name == "HeadHB" or v:IsA("Shirt") or v:IsA("Pants") then --
nigga
v:Destroy()
end
if v:IsA("MeshPart") then
v.TextureID = visuals.forcefieldAnimations["Off"] -- local
function __llll(_, __ll_, _l_l)
end
end
task.delay(Menu["Visuals"]["Hits"]["Hit Cham Life Time"].Value,
function()
local tween = tweenService:Create(transNumber,
TweenInfo.new(Menu["Visuals"]["Hits"]["Hit Cham Fade Time"].Value), {
Value = 1
})
tween:Play()
--ik this looks dumb but trust me this is better as it loops in
the c++ side so its faster (proof = ur ui tweening is done like this)
-- okayy
--also its kinda multithreaded so everything will go like,
instantly and not just one prat and then move on yk
--downside = might cause memory leak but like for a while
tween.Completed:Wait()
tween:Destroy()
cloned:Destroy()
transNumber:Destroy()
end)
setthreadidentity(old)
end
function visuals.unload()
visuals.espStepConnection:Disconnect()
for i = #visuals.allDrawingObjects, 1, -1 do
local draw = visuals.allDrawingObjects[i]
if draw then
pcall(function()
draw.Visible = false
draw.Transparency = 0
draw:Remove()
draw = nil
end)
end
end
table.clear(visuals.allDrawingObjects)
table.clear(visuals.espObjects)
visuals = {}
end
function visuals.RemoveFlash()
localPlayer.PlayerGui.Blnd.Blind.Visible = not Menu["Visuals"]["Extra"]
["Remove Flash"]["Toggle"]["Enabled"]
end
Menu["Visuals"]["Extra"]["Remove Flash"]
["Toggle"].Changed:Connect(visuals.RemoveFlash)
function visuals.ModifySmoke(smoke)
local particleemitter = smoke:WaitForChild("ParticleEmitter", 1/0)
if particleemitter.Enabled ~= Menu["Visuals"]["Extra"]["Remove Smoke"]
["Toggle"]["Enabled"] then
if Menu["Visuals"]["Extra"]["Remove Smoke"]["Toggle"]["Enabled"]
then
particleemitter:Clear()
else
particleemitter:Emit(10)
end
end
particleemitter.Enabled = not Menu["Visuals"]["Extra"]["Remove Smoke"]
["Toggle"]["Enabled"]
end
function visuals.ModifySmokes()
for i, v in next, (workspace.Ray_Ignore.Smokes:GetChildren()) do
visuals.ModifySmoke(v)
end
end
--[[function visuals.nadewarning(nade)
local bodyforce = emptyVec3
local grenadetype
local handle = nade:FindFirstChild("Handle2")
if handle == nil then return end
local nadetexture = handle.TextureID
local nadedata = {}
for i, v in next, (replicatedStorage.Weapons:GetChildren()) do
if v:FindFirstChild("Grenade") then
local model = v:FindFirstChild("Model")
if nadetexture == model.Handle2.TextureID then -- FUCK
ROLVE FUCK ROLVE
grenadetype = v.Name
end
end
end
if nade:FindFirstChild("GunDrop") then return end -- ok this is a
dropped one, not one that has been thrown
for i, v in next,
(replicatedStorage.Weapons:FindFirstChild(grenadetype):GetChildren()) do
if v:IsA("NumberValue") or v:IsA("IntValue") then
nadedata[v.Name] = v.Value
end
end
local predict = trajectory.new({
gravity = newVector3(0, -workspace.Gravity, 0), -- #fuck rolve
step = 1/60, -- just a thousand steps, were good here
time = 2.5, -- look, rolve nades are really fucking convoluted
bounces = (grenadetype == "Molotov" or grenadetype == "Incendiary
Grenade") and 0 or 4,
})
local ignorelist = { -- ignore this fuck
findFirstChild(workspace.Map, "Clips"),
findFirstChild(workspace.Map, "SpawnPoints"),
camera,
findFirstChild(workspace, "Debris"),
findFirstChild(workspace, "Ray_Ignore"),
}
for i, v in next, (nade:GetDescendants()) do
ignorelist[1 + #ignorelist] = v
end
for i, v in next, (players:GetPlayers()) do
if v.Character then
ignorelist[1 + #ignorelist] = v.Character
end
end
if nade:FindFirstChild("Handle2") == nil or
nade.Handle2.Transparency > 0 or nade.Parent ~= workspace.Debris or remove == true
then
remove = true
else
if Menu["ESP"]["Dropped ESP"]["Grenade Warning"]["Toggle"]
["Enabled"] then
for i, v in next, (esp.drawings) do
v.Visible = true
end
local ignores = { -- ignore this
findFirstChild(workspace.Map, "Clips"),
findFirstChild(workspace.Map, "SpawnPoints"),
camera,
localPlayer.Character,
findFirstChild(workspace, "Debris"),
findFirstChild(workspace, "Ray_Ignore"),
}
local result1 =
Color3.fromRGB(245, 0, 0):lerp(Color3.fromRGB(64, 64, 64), safety)
local result2 =
Color3.fromRGB(205, 0, 0):lerp(Color3.fromRGB(24, 24, 24), safety)
esp.drawings.backcircle.Color
= result1
esp.drawings.frontcircle.Color = result2
end
end
elseif grenadetype:match("Flash") then -- just
look away
local angle =
math.clamp(((math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(c
amera.CFrame.p, endpos).LookVector)))) * 2) / 180), 0, 1)
esp.drawings.backcircle.Color = result1
esp.drawings.frontcircle.Color = result2
end
else
for i, v in next, (esp.drawings) do
v.Transparency =
math.clamp(v.Transparency - (dt * 2), 0.25, 1)
end
end
else
for i, v in next, (esp.drawings) do
v.Visible = false
end
end
end
if remove == true then
for i, v in next, (esp.drawings) do
v.Transparency = v.Transparency - (dt * 4)
end
if esp.drawings.backcircle.Transparency < 0 then
esp.updater:Disconnect()
for i, v in next, (esp.drawings) do
v.Visible = false
v = nil
end
for i, v in next, (objects) do
for i2, v2 in next, (v) do
v2:Destroy()
end
end
end
end
end)
visuals.grenadetrajectories[1 + #visuals.grenadetrajectories] =
{predict, path, objects, esp}
end
workspace.Debris.ChildAdded:Connect(function(child)
task.wait()
if child:FindFirstChild("Explode") then
visuals.nadewarning(child)
end
end)]]
visuals.fovCircles = {}
do
local fovCircles = {}
fovCircles.circles = {}
for i = 1, 5 do
local circle1 = visuals.createDrawing("Circle", {
Visible = false,
Thickness = 1,
Radius = 3,
Transparency = 1,
Filled = false
})
local circle2 = visuals.createDrawing("Circle", {
Visible = false,
Thickness = 3,
Color = Color3.new(),
Radius = 3,
Transparency = 0.25,
Filled = false
})
fovCircles.circles[i] = {
colored = circle1,
outline = circle2
}
end
local refreshedFovCircles = tick()
fovCircles.loop = runService.Stepped:Connect(function()
if tick() - refreshedFovCircles < 1/5 then
return
end
--debug.profilebegin("fov circles")
refreshedFovCircles = tick()
camFov = camera.FieldOfView * 2
local screenSize = camera.ViewportSize
local centerScreen = newVector2(math.floor(screenSize.x / 2),
math.floor(screenSize.y / 2))
for iter, v in next, {"Aim Assist FOV", "Aim Assist Deadzone FOV",
"Magnet Triggerbot FOV", "Bullet Redirection FOV", "Aimbot FOV"} do
local enabled = Menu["Visuals"]["FOV"][v]["Toggle"]["Enabled"]
local color = Menu["Visuals"]["FOV"][v]["Color 1"]["Color"]
fovCircles.circles[4].colored.Radius = Menu["Legit"]["Bullet
Redirection"]["Silent Aim FOV"]["Value"] / camFov * screenSize.x
fovCircles.circles[4].outline.Radius =
fovCircles.circles[4].colored.Radius
fovCircles.circles[5].colored.Radius = Menu["Rage"]["Aimbot"]["Aimbot
FOV"]["Value"] / camFov * screenSize.x
fovCircles.circles[5].outline.Radius =
fovCircles.circles[5].colored.Radius
--debug.profileend()
end)
visuals.fovCircles = fovCircles
end
end
do --ANCHOR Ragebot
ragebot.fakeanimation = Instance.new("Animation")
ragebot.fakeanimation.AnimationId = "rbxassetid://0"
ragebot.fakehrp = nil -- the one that u control
ragebot.realhrp = nil -- the one the server sees
ragebot.lasthrpCf = CFrame.new()
ragebot.returnpitch = false
ragebot.jitterone = false
ragebot.lastcrouch = tick()
ragebot.lastcameracf = emptyCf
ragebot.lastpitch = tick()
ragebot.lastpitchangle = 0
ragebot.lastcamupdate = tick()
ragebot.hrpfix = nil
ragebot.manualhrp = false
ragebot.lby = tick()
ragebot.autopeekrecovery = tick()
ragebot.lastupdate = tick()
ragebot.laststance = "Crouched"
ragebot.shotindex = 0
ragebot.lastreplicationtick = tick()
ragebot.lastdt = tick()
ragebot.lastshot = tick()
ragebot.lastreload = tick()
ragebot.triggerfl = false
ragebot.currentindex = 1
ragebot.hitboxes = {"Head", "UpperTorso", "LowerTorso", "LeftLowerArm",
"RightLowerArm", "LeftLowerLeg", "RightLowerLeg", "LeftFoot", "RightFoot"}
ragebot.minimumDamage = 36
ragebot.shootSound = Instance.new("Sound", camera);
ragebot.currenttarget = {
player = nil,
instance = nil,
position = nil,
modifier = nil,
wallbang = nil,
pInfo = nil
}
ragebot.baseantiaimbotangles = {
pitch = {
["Default"] = -0.65,
["Up"] = 0.9,
["Down"] = -0.9,
["Zero"] = 0,
["Upside Down"] = -5,
["Roll Forward"] = 0,
["Roll Backward"] = 0,
["Random"] = 0,
["Bob"] = 0,
["Glitch"] = math.sqrt(-1)
},
yaw = {
["Forward"] = 0,
["Backward"] = 180,
["Spin"] = 0 ,
["Random"] = 0,
["Glitch Spin"] = 180,
["Stutter Spin"] = 180
},
}
function ragebot.restrictangle(angle)
if angle > 360 then
return angle - 360
elseif angle < 0 then
return angle + 360
else
return angle
end
end
ragebot.backtracks = {}
ragebot.allPartsForBacktrack = {}
ragebot.bodyParts = {
"Head", "UpperTorso", "LowerTorso", "LeftUpperArm", "LeftLowerArm",
"LeftHand", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperLeg",
"LeftLowerLeg", "LeftFoot", "RightUpperLeg", "RightLowerLeg", "RightFoot"
}
function ragebot.setupbacktrack(player)
task.wait(1)
local this = {}
this.middlepoint = newVector3()
this.backtrackParts = {}
this.visualizations = {}
this.frameLogs = {}
this.tickLogs = {}
this.spawnParts = function(characterModel)
for i = 1, #ragebot.bodyParts do
local partName = ragebot.bodyParts[i]
local part = characterModel:FindFirstChild(partName)
if part and not this.backtrackParts[partName] then
local bPart = Instance.new("Part")
bPart.Size = part.Size
bPart.Name = "HeadHB" -- holy shit invaded is a
genius, (if 1 > PartHit.Transparency or PartHit.Name == "HeadHB" then) cb decompile
bPart.Transparency = 1
bPart.Color = Color3.new(1, 1, 1)
bPart.Anchored = true
bPart.CanCollide = false
bPart.Parent = characterModel
--[[ fixes a dt issue where it would go thru
backtrack then through their playermodel, this should make the game ignore their
player model as well once the backtrack is shot
if PartHit and PartHit.Parent and
PartHit.Parent.Name == "Hitboxes" or PartHit and PartHit.Parent and
PartHit.Parent.Parent and PartHit.Parent.Parent:FindFirstChild("Humanoid2") or
PartHit and PartHit.Parent and PartHit.Parent:FindFirstChild("Humanoid2") or
PartHit and PartHit.Parent and PartHit.Parent:FindFirstChild("Humanoid") and (1 >
PartHit.Transparency or PartHit.Name == "HeadHB") and PartHit.Parent:IsA("Model")
then
table.insert(hitlist,
PartHit.Parent)
else
table.insert(hitlist, PartHit)
end
]]
this.backtrackParts[partName] = bPart
ragebot.allPartsForBacktrack[bPart] = part
local backtrackedFrame
for i, time in next, this.tickLogs do
local behindBy = thisTick - time
if behindBy > backtrackTime then
backtrackedFrame = this.frameLogs[time]
break
end
end
local v = this.visualizations[d]
if v then
if canShow then
v.Color3 = colorShow
v.Transparency = transShow
v.Visible = true
else
if v.Visible == true then
v.Visible = false
v.Transparency = 1
end
end
end
else
this.onCharacterAdded(characterModel)
break
end
end
local thisFrame = {}
for i = 1, #ragebot.bodyParts do -- for each body part
local d = ragebot.bodyParts[i]
local part = characterModel:FindFirstChild(d)
if part then
thisFrame[d] = part.CFrame -- record this body part
end
end
table.insert(this.tickLogs, 1, thisTick)
this.frameLogs[thisTick] = thisFrame -- record the entire frame
--debug.profileend()
end
this.step = runService.Stepped:Connect(this.updateBacktrack)
this.onCharacterRemoved = function()
if this.frameLogs then
table.clear(this.frameLogs)
end
if this.tickLogs then
table.clear(this.tickLogs)
end
if this.backtrackParts then
for i, v in next, this.backtrackParts do
if ragebot.allPartsForBacktrack[v] then
ragebot.allPartsForBacktrack[v] = nil
end
v:Destroy()
end
table.clear(this.backtrackParts)
end
if this.visualizations then
for i,v in next, this.visualizations do
v:Destroy()
end
table.clear(this.visualizations)
end
end
player.CharacterAdded:Connect(this.onCharacterAdded)
ragebot.backtracks[player] = this
end
function ragebot.removebacktrack(player)
local this = ragebot.backtracks[player]
if this then
this.step:Disconnect()
this.step = nil
this.onCharacterRemoved()
if this.backtrackParts then
for i, v in next, this.backtrackParts do
if ragebot.allPartsForBacktrack[v] then
ragebot.allPartsForBacktrack[v] = nil
end
v:Destroy()
v = nil
end
table.clear(this.backtrackParts)
this.backtrackParts = nil
end
if ragebot.backtracks[player].visualizations then
for i,v in next, ragebot.backtracks[player].visualizations
do
v:Destroy()
v = nil
end
table.clear(ragebot.backtracks[player].visualizations)
end
ragebot.backtracks[player] = nil
end
end
players.PlayerAdded:Connect(ragebot.setupbacktrack)
players.PlayerRemoving:Connect(ragebot.removebacktrack)
ragebot.lastupdate = tick()
ragebot.jitterone = not ragebot.jitterone
ragebot.baseantiaimbotangles.pitch["Roll Backward"] =
ragebot.baseantiaimbotangles.pitch["Roll Backward"] + (delta * 24)
if ragebot.baseantiaimbotangles.pitch["Roll Backward"] > 4 then
ragebot.baseantiaimbotangles.pitch["Roll Backward"] = -4
end
ragebot.baseantiaimbotangles.pitch["Roll Forward"] =
ragebot.baseantiaimbotangles.pitch["Roll Forward"] - (delta * 24)
if ragebot.baseantiaimbotangles.pitch["Roll Forward"] < -4 then
ragebot.baseantiaimbotangles.pitch["Roll Forward"] = 4
end
ragebot.baseantiaimbotangles.pitch.Random = math.random(-1000,
1000)/1000
ragebot.baseantiaimbotangles.pitch.Bob = 0.5 * math.cos(16*tick())
ragebot.baseantiaimbotangles.yaw.Spin =
ragebot.restrictangle(ragebot.baseantiaimbotangles.yaw.Spin + ((Menu["Rage"]["Anti
Aim"]["Yaw angle"]["Value"] * 30) * delta))
local upperbound, lowerbound, dir
if Menu["Rage"]["Anti Aim"]["Yaw angle"]["Value"] > 0 then
upperbound = Menu["Rage"]["Anti Aim"]["Yaw angle"]["Value"]
lowerbound = -1 * Menu["Rage"]["Anti Aim"]["Yaw angle"]["Value"]
dir = 1
else
upperbound = -1 * Menu["Rage"]["Anti Aim"]["Yaw angle"]["Value"]
lowerbound = Menu["Rage"]["Anti Aim"]["Yaw angle"]["Value"]
dir = -1
end
ragebot.baseantiaimbotangles.yaw["Glitch Spin"] =
ragebot.restrictangle(ragebot.baseantiaimbotangles.yaw["Glitch Spin"] +
((Menu["Rage"]["Anti Aim"]["Yaw angle"]["Value"] + (math.cos(tick() * 16) *
math.sin(tick() * 32) * math.random(8, 12) * dir * math.random(-lowerbound,
upperbound)))))
ragebot.baseantiaimbotangles.yaw["Stutter Spin"] =
ragebot.restrictangle(ragebot.baseantiaimbotangles.yaw["Stutter Spin"] +
((Menu["Rage"]["Anti Aim"]["Yaw angle"]["Value"] + (math.cos(tick() * 8) * 4 * dir
* math.random(lowerbound, upperbound)))))
end
function ragebot.setweapons()
local primary = Menu["Misc"]["Extra"]["Buy Bot Primary"]["Value"]
local secondary = Menu["Misc"]["Extra"]["Buy Bot Secondary"]["Value"]
debug.setupvalue(client.autoequip, 1, primary)
debug.setupvalue(client.autoequip, 2, secondary)
debug.setupvalue(client.updateInventory, 7, primary)
debug.setupvalue(client.updateInventory, 8, primary)
debug.setupvalue(client.updateInventory, 11, secondary)
client.updateInventory()
client.autoequip()
debug.setupvalue(client.reloadwep, 8,
replicatedStorage.Weapons:FindFirstChild(primary):FindFirstChild("Ammo").Value)
debug.setupvalue(client.reloadwep, 9,
replicatedStorage.Weapons:FindFirstChild(primary):FindFirstChild("StoredAmmo").Valu
e)
debug.setupvalue(client.reloadwep, 10,
replicatedStorage.Weapons:FindFirstChild(secondary):FindFirstChild("Ammo").Value)
debug.setupvalue(client.reloadwep, 11,
replicatedStorage.Weapons:FindFirstChild(secondary):FindFirstChild("StoredAmmo").Va
lue)
client.countammo()
end
Menu["Misc"]["Extra"]["Buy Weapons"]["Button"].Pressed:Connect(function()
if ragebot.fakehrp then
ragebot.setweapons()
end
end)
function ragebot.nearesttocrosshair()
local lowest = inf
local nearest
for i, pInfo in next, (playerInfo.storage) do
if pInfo.alive and pInfo.enemy and not (pInfo.protected or
pInfo.god) then
local angle =
(math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(camera.CFrame
.p, pInfo.character.HumanoidRootPart.Position).LookVector))))) * 2 -- cope!!!
if angle < lowest then
lowest = angle
nearest = pInfo
end
end
end
return nearest
end
local targetThirdPersonDistance = 0
local timeSinceLast3p = 0
runService.RenderStepped:Connect(function(deltaTime)
if Menu["Visuals"]["Camera"]["Third Person"]["Toggle"]["Enabled"] and
Menu["Visuals"]["Camera"]["Third Person"]["Bind"]["Active"] and
localPlayer.Character and localPlayer.Character:FindFirstChild("Humanoid") then
local thingy = math.clamp((1 / (-2.71828 ^ (8 *
math.clamp(timeSinceLast3p, 0, 2)))) + 1, 0, 1) * Menu["Visuals"]["Camera"]["Third
Person Distance"]["Value"] / 10
targetThirdPersonDistance = thingy
timeSinceLast3p = timeSinceLast3p + deltaTime
else
timeSinceLast3p = 0
targetThirdPersonDistance = 0
end
end)
local oldNIndex; oldNIndex = hookmetamethod(game, "__newindex",
function(self, k, v)
if self == camera and k == "CFrame" then
if tostring(getcallingscript()) == "Client" and Menu["Visuals"]
["Camera"]["Remove Camera Recoil"]["Toggle"]["Enabled"] then
return
end
end
if Menu["Visuals"]["Camera"]["Disable Scope Border"]["Toggle"]
["Enabled"] and self.Name == "Blur" and self.Parent.Name == "Scope" then
v = 0
end
return oldNIndex(self, k, v)
end)
local oldIndex; oldIndex = hookmetamethod(game, "__index", function(self, k)
if k == "Velocity" and self.Parent == localPlayer.Character and
ragebot.fakehrp then
return oldIndex(ragebot.fakehrp, k)
end
return oldIndex(self, k)
end)
runService:BindToRenderStep("cameraFix", Enum.RenderPriority.Camera.Value +
1, function()
if Menu["Visuals"]["Camera"]["Third Person"]["Toggle"]["Enabled"] and
Menu["Visuals"]["Camera"]["Third Person"]["Bind"]["Active"] then
local wall, pos, norm =
workspace:FindPartOnRayWithWhitelist(Ray.new(camera.CFrame.p, (camera.CFrame *
CFrame.new(0, 0, targetThirdPersonDistance).p) - camera.CFrame.p), {workspace.Map},
true)
camera.CFrame = camera.CFrame * CFrame.new(0, 0, (pos -
camera.CFrame.p).Magnitude - (wall and 0.15 or 0))
if camera.CameraType ~= Enum.CameraType.Track and
targetThirdPersonDistance > 0 then
camera.CameraType = Enum.CameraType.Track
end
else
if camera.CameraType ~= Enum.CameraType.Custom then
camera.CameraType = Enum.CameraType.Custom
end
end
end)
function ragebot.setupfakehrp(char)
local oldhrp = char:WaitForChild("HumanoidRootPart", 1/0)
ragebot.realhrp = oldhrp
ragebot.lasthrpCf = ragebot.realhrp.CFrame
ragebot.fakehrp = oldhrp:Clone() --then u are leaking fakelag
ragebot.realhrp.Name = "___"
ragebot.fakehrp.Name = "HumanoidRootPart"
ragebot.fakehrp.Parent = char
cachereplace(ragebot.realhrp, ragebot.fakehrp)
ragebot.fakehrp.CFrame = ragebot.lasthrpCf
ragebot.realhrp.CFrame = ragebot.lasthrpCf
physicsService:SetPartCollisionGroup(ragebot.fakehrp, "Debris")
end
ragebot.hrpfix = runService.Stepped:Connect(function(delta)
--debug.profilebegin("hrp fix")
local char = localPlayer.Character
if not ragebot.realhrp or not ragebot.fakehrp or not char then
return
end
ragebot.realhrp.AssemblyLinearVelocity = emptyVec3
--ragebot.realhrp.AssemblyLinearVelocity =
newVector3(ragebot.realhrp.AssemblyLinearVelocity.x, 0,
ragebot.realhrp.AssemblyLinearVelocity.z)
--[[if findFirstChild(char, "Gun") then
for i, v in next, (char.Gun:GetChildren()) do
if v.Name == "GunWeld" then
v.Part0 = nil
end
end
end]]
--debug.profileend()
end)
function ragebot.removefakehrp()
if ragebot.fakehrp == nil then return end
ragebot.fakehrp.Name = "___"
ragebot.realhrp.CFrame = ragebot.fakehrp.CFrame -- sync the fuck
ragebot.realhrp.Name = "HumanoidRootPart"
ragebot.fakehrp:Destroy()
ragebot.fakehrp = nil
ragebot.realhrp = nil
end
if localPlayer.Character then
ragebot.setupfakehrp(localPlayer.Character)
end
localPlayer.CharacterAdded:Connect(function()
repeat task.wait() until localPlayer.Character and
localPlayer.Character:FindFirstChild("Humanoid") and
localPlayer.Character.Humanoid.Health > 0
task.wait(2)
if localPlayer.Character and
localPlayer.Character:FindFirstChild("HumanoidRootPart") then
ragebot.setupfakehrp(localPlayer.Character)
if Menu["Misc"]["Extra"]["Auto Buy Bot"]["Toggle"]["Enabled"]
then
ragebot.setweapons()
end
end
end)
localPlayer.CharacterRemoving:Connect(ragebot.removefakehrp)
end
if neck then
neck.C0 = necko * CFrame.Angles(((pi / 3) * 1) *
ylookvector, 0, 0)
end
if arm then
arm.C0 = armo2 * CFrame.Angles(((pi / 3) * 1) * ylookvector
* 0.5, 0, 0)
end
if arm2 then
arm2.C0 = armo1 * CFrame.Angles(((pi / 3) * 1) *
ylookvector * 0.5, 0, 0)
end
if climbing then
waist.C0 = uppat
neck.C0 = necko
arm.C0 = armo2
arm2.C0 = armo1
end
end
end
ragebot.fakeLagging = false
local fakeReplicationUpdate = function(uptime, delta)
ragebot.controlturn(localPlayer, ragebot.lastpitchangle,
lastClimbStatus)
end
ragebot.fakeLagging = false
-- we dont actually change the fakehrp shit, this makes climbing
ladders n shit really easy
-- we just base the unfucked angles on fakehrp, manipulate that then
set the realhrp cframe to the fucked one
if Menu["Rage"]["Fake Lag"]["Enabled"]["Toggle"]["Enabled"] then
task.wait(Menu["Rage"]["Fake Lag"]["Replication Delay"]
["Value"]/1000)
ragebot.fakeLagging = true
end
if localPlayer.Character:FindFirstChild("HeadHB") and
localPlayer.Character:FindFirstChild("FakeHead") then
if not localPlayer.Character.HeadHB:FindFirstChild("Weld") and
not localPlayer.Character.FakeHead:FindFirstChild("Weld") then
localPlayer.Character.FakeHead.AssemblyLinearVelocity =
newVector3()
localPlayer.Character.HeadHB.AssemblyLinearVelocity =
newVector3()
localPlayer.Character.FakeHead.CFrame =
localPlayer.Character.Head.CFrame
localPlayer.Character.HeadHB.CFrame =
localPlayer.Character.Head.CFrame
end
end
-- prevent replication
if Menu["Rage"]["Fake Lag"]["Prevent Replication"]["Toggle"]["Enabled"]
and Menu["Rage"]["Fake Lag"]["Prevent Replication"]["Bind"]["Active"] then
ragebot.fakeLagging = true
return
end
if triggerfl then
local timesincelastrefresh = tick() -
ragebot.lastreplicationtick
local limit = Menu["Rage"]["Fake Lag"]["Limit"]["Value"] /
64
if timesincelastrefresh < limit then
ragebot.fakeLagging = true
return
end
end
end
-- pitch
if Menu["Rage"]["Anti Aim"]["Pitch"]["Value"] ~= "Off" then
pitch = ragebot.baseantiaimbotangles.pitch[Menu["Rage"]["Anti
Aim"]["Pitch"]["Value"]]
if Menu["Rage"]["Anti Aim"]["Pitch Extension"]["Toggle"]
["Enabled"] then
pitch = pitch * 2
end
end
local baseDirs = {}
local scanfrom = {}
local scores = {}
baseDirs[newVector3(1, 0, 0).unit] = {}
baseDirs[newVector3(-1, 0, 0).unit] = {}
baseDirs[newVector3(0, 0, 1).unit] = {}
baseDirs[newVector3(0, 0, -1).unit] = {}
scanfrom[trueDir] = {}
scores[trueDir] = 0
local idealFreestand
local min = inf
for dir, score in next, scores do
if score < min then
idealFreestand = dir
min = score
end
end
if idealFreestand then
delayedcf = newCframe(delayedcf.p, (delayedcf.p +
idealFreestand)) -- freestand the opposite of the most dangerous vector
if
localPlayer.Character.HeadHB:FindFirstChild("Weld") then
localPlayer.Character.HeadHB.Weld:Destroy()
end
if
localPlayer.Character.FakeHead:FindFirstChild("Weld") then
localPlayer.Character.FakeHead.Weld:Destroy()
end
if tick() - ragebot.lby > 63/64 then
if tick() - ragebot.lby > 1 then
ragebot.lby = tick()
end
end
end]]
end
end
-- now that we've finished choosing our real angle, change the
delayed cf
delayedcf = delayedcf * CFrame.Angles(0, toRad * realangle, 0)
end
ragebot.lasthrpCf = delayedcf
ragebot.lastreplicationtick = tick()
if localPlayer.Character:FindFirstChild("HeadHB") and
localPlayer.Character:FindFirstChild("FakeHead") then
if not localPlayer.Character.HeadHB:FindFirstChild("Weld") and
not localPlayer.Character.FakeHead:FindFirstChild("Weld") then
localPlayer.Character.FakeHead.AssemblyLinearVelocity =
newVector3(0, 0, 0)
localPlayer.Character.HeadHB.AssemblyLinearVelocity =
newVector3(0, 0, 0)
localPlayer.Character.FakeHead.CFrame =
localPlayer.Character.Head.CFrame
localPlayer.Character.HeadHB.CFrame =
localPlayer.Character.Head.CFrame
end
end
--:nerd:
-- here we can see femboy doing his programming weird shit in his natural
habitat so called man cave
-- fuck u
ragebot.hitgroups = {
["Head"] = {"Head"},
["Chest"] = {"UpperTorso"},
["Pelvis"] = {"LowerTorso"},
["Arms"] = {"LeftLowerArm", "RightLowerArm", "LeftUpperArm",
"RightUpperArm"},
["Legs"] = {"LeftLowerLeg", "LeftUpperLeg", "RightLowerLeg",
"RightUpperLeg"},
["Feet"] = {"LeftFoot", "RightFoot"}
}
ragebot.multipointdirections = {}
for x = -1, 1 do
for y = -1, 1 do
for z = -1, 1 do
if x == 0 and y == 0 and z == 0 then
else
ragebot.multipointdirections[1 +
#ragebot.multipointdirections] = {newVector3(x, y, z).unit, (x == 0 and "" or x > 0
and "+X, " or x < 0 and "-X, ") .. (y == 0 and "" or y > 0 and "+Y, " or y < 0 and
"-Y, ") .. (z == 0 and "" or z > 0 and "+Z, " or z < 0 and "-Z, ")}
end
end
end
end
ragebot.hitmodifier = {
Head = 4,
FakeHead = 4,
HeadHB = 4,
UpperTorso = 1,
LowerTorso = 1.25,
LeftUpperArm = 1,
LeftLowerArm = 1,
LeftHand = 1,
RightUpperArm = 1,
RightLowerArm = 1,
RightHand = 1,
LeftUpperLeg = 0.75,
LeftLowerLeg = 0.75,
LeftFoot = 0.75,
RightUpperLeg = 0.75,
RightLowerLeg = 0.75,
RightFoot = 0.75
}
function ragebot.incrementammo()
local equipped = debug.getupvalue(client.autoreload, 1)
local currentammo = 0
local ammoPrimary = debug.getupvalue(client.reloadwep, 8)
local ammoSecondary = debug.getupvalue(client.reloadwep, 10)
if equipped == "primary" and ammoPrimary >= 1 then
currentammo = ammoPrimary - 1;
debug.setupvalue(client.reloadwep, 8, currentammo);
elseif equipped == "secondary" and ammoSecondary >= 1 then
currentammo = ammoSecondary - 1;
debug.setupvalue(client.reloadwep, 10, currentammo);
end
if currentammo == 0 and client.fgun:FindFirstChild("Melee") == nil then
ragebot.lastreload = tick()
ragebot.currenttarget = {
player = nil,
instance = nil,
position = nil,
modifier = nil,
wallbang = nil,
pInfo = nil
}
client.autoreload()
end
client.countammo()
end
function ragebot.fakeshoot(Parameters)
local fireAnimation = debug.getupvalue(client.reloadwep, 19)
if fireAnimation and client.fgun ~= "none" then
fireAnimation:Play()
client.updateads() -- unscope the awp and scout on-shot
replicatedStorage.Events.ReplicateAnimation:FireServer("Fire")
if localPlayer.Character:FindFirstChild("Gun") then
local soundData = findFirstChild(localPlayer.Character.Gun,
"SShoot") or findFirstChild(localPlayer.Character.Gun, "Shoot") or
findFirstChild(localPlayer.Character.Gun, "Shoot1") -- shoot1 for the knife swing
sound
replicatedStorage.Events.RemoteEvent:FireServer({"createparticle", "muzzle",
localPlayer.Character.Gun.Flash, nil})
if Parameters.walls then
for i, v in next, (Parameters.walls) do
client.hitobject(v["Hit"], v["Enter"],
v["Normal"], client.fgun, false)
client.hitobject(v["Hit"], v["Exit"], -
v["Normal"], client.fgun, false)
end
end
end
end
end
ragebot.incrementammo()
end
--warning autowall is kinda scuffed it ,makes u look like stormy paste user
--nnvm i know how to fix fix
local penetrationPassed = 0
local wallsPenetrated = 0
repeat
local enterresult = workspaceRaycast(workspace, origin,
direction, enterParam)
exitParam.FilterDescendantsInstances = {wall}
local penetrationPassed = 0
local wallPassed = {}
local wallsPenetrated = 0
repeat
local enterresult = workspaceRaycast(workspace, origin,
direction, enterParam)
enterParam.FilterDescendantsInstances = ignore
function ragebot.getweaponconfig(weapon)
local currentweapon = weapon.Name
for i, weapongroup in next, (ragebot.weaponconfigs) do
for i2, weapontype in next, (weapongroup) do
for i3, weapon in next, (weapontype) do
if currentweapon == weapon then
local hitParts = {}
for i4, v4 in next, (Menu["Rage"][i][i2 .. "
Hitboxes"]["Value"]) do
for i5, v5 in next,
(ragebot.hitgroups[v4]) do -- translated to dn
hitParts[1 + #hitParts] = v5
end
end
return hitParts, Menu["Rage"][i][i2 .. "
Minimum Damage"]["Value"]
end
end
end
end
end
function ragebot.hitgrouptohitbox(hitboxes)
local chosenhitboxes = {}
for i, v in next, (hitboxes) do
for i2, v2 in next, (ragebot.hitgroups[v]) do -- translate the
hitgroups
chosenhitboxes[1 + #chosenhitboxes] = v2
end
end
return chosenhitboxes
end
-- OMG DUDE
function ragebot.getorigins(toward)
local origins = {}
local from = localPlayer.Character.HumanoidRootPart.Position +
newVector3(0, 1.4, 0) + localPlayer.Character.Humanoid.CameraOffset
origins[1 + #origins] = {from, "Base"}
local base = newCframe(from, from + camera.CFrame.LookVector.unit)
local factor = 10
if Menu["Rage"]["Hack vs. Hack"]["Autowall Hitscan"]["Toggle"]
["Enabled"] then
local offsetOrigins = {}
if table.find(Menu["Rage"]["Hack vs. Hack"]["Hitscan Points"]
["Value"], "Up") ~= nil then
offsetOrigins[1 + #offsetOrigins] = {(base * newCframe(0,
factor, 0)).p, "Up"} -- up
end
if table.find(Menu["Rage"]["Hack vs. Hack"]["Hitscan Points"]
["Value"], "Down") ~= nil then
offsetOrigins[1 + #offsetOrigins] = {(base * newCframe(0, -
factor, 0)).p, "Down"} -- down
end
if table.find(Menu["Rage"]["Hack vs. Hack"]["Hitscan Points"]
["Value"], "Left") ~= nil then
offsetOrigins[1 + #offsetOrigins] = {(base * newCframe(-
factor, 0, 0)).p, "Left"} -- left
end
if table.find(Menu["Rage"]["Hack vs. Hack"]["Hitscan Points"]
["Value"], "Right") ~= nil then
offsetOrigins[1 + #offsetOrigins] = {(base *
newCframe(factor, 0, 0)).p, "Right"} -- right
end
if table.find(Menu["Rage"]["Hack vs. Hack"]["Hitscan Points"]
["Value"], "Backward") ~= nil then
offsetOrigins[1 + #offsetOrigins] = {(base * newCframe(0,
0, factor)).p, "Backward"} -- backwards
end
if table.find(Menu["Rage"]["Hack vs. Hack"]["Hitscan Points"]
["Value"], "Forward") ~= nil then
offsetOrigins[1 + #offsetOrigins] = {(base * newCframe(0,
0, -factor)).p, "Forward"} -- forwards
end
if table.find(Menu["Rage"]["Hack vs. Hack"]["Hitscan Points"]
["Value"], "Towards") ~= nil then
offsetOrigins[1 + #offsetOrigins] = {(base +
(newCframe(from, toward).LookVector.Unit * factor)).p, "Towards"} -- towards
end
for i = 1, #offsetOrigins do
local shootFromData = offsetOrigins[i]
local shootFrom = shootFromData[1]
--[[local dir = (shootFrom - base.p).unit
for pullFactor = 1, factor, 1 do
origins[1 + #origins] = {base.p + (dir *
pullFactor), shootFromData}
end]]
origins[1 + #origins] = shootFromData
end
end
return origins
end
function ragebot.getpoints(enemy)
local pInfo = enemy.pInfo -- their player info
local char = pInfo.character -- their char
local plr = pInfo.player -- the roblox player
-- camera$resolve$
if Menu["Rage"]["Hack vs. Hack"]["Resolve Positions"]["Toggle"]
["Enabled"] then
local camerapos = plr.CameraCF.Value.p
if camerapos == camerapos and camerapos ~= emptyVec3 and
pInfo.camcf ~= pInfo.lastcameracf and (camerapos -
pInfo.rootpart.CFrame.p).Magnitude > 8 then -- if they have a valid camera pos
scan[1 + #scan] = {scan[1][1], camerapos, "Resolved"} --
add the camerapos and associate it with the hitbox of the first scanpoint
validinstances[scan[1][1].Name] = {scan[1][1], camerapos}
end
end
-- since we have backtracking and are able to shoot at where the enemy
was previously, try to scan their previous positions
if Menu["Rage"]["Hack vs. Hack"]["Back Tracking"]["Toggle"]["Enabled"]
then
local btpoints = ragebot.hitgrouptohitbox(Menu["Rage"]["Hack vs.
Hack"]["Back Tracking Points"]["Value"])
local enemybacktrack = ragebot and ragebot.backtracks and
ragebot.backtracks[plr] and ragebot.backtracks[plr].backtrackParts
if enemybacktrack then
for i, v in next, btpoints do
local correspondinginstance = validinstances[v]
if correspondinginstance then
local instance = correspondinginstance[1]
local center = correspondinginstance[2]
local backtrackedtick =
enemybacktrack[instance.Name == "HeadHB" and "Head" or instance.Name]
if backtrackedtick and
(backtrackedtick.Position - center).Magnitude > 0.1 and (backtrackedtick.Position -
emptyVec3).Magnitude > 0.1 then -- located their backtrack point
scan[1 + #scan] = {instance,
backtrackedtick.Position, "Backtrack"}
end
end -- this doesnt have a valid centerpoint to base
our thing off of
end
end
end
scanOrigins[1 + #scanOrigins] = o
table.remove(origins, origin)
scanGroups[1 + #scanGroups] = {
origins = scanOrigins,
points = scanPoints
}
end
end
-- kevlar
local haskevlar = findFirstChild(plr, "Kevlar")
local hashelmet = haskevlar and findFirstChild(plr, "Helmet")
local armorpiercing = gun.ArmorPenetration.Value
if penetrable then
local damage = pellets * weapondamage *
damagemodifier * (ishead and 4 or ragebot.hitmodifier[instance.Name]) *
ragebot.kevlardamage(armorpiercing, haskevlar, hashelmet, ishead) *
ragebot.distancedamagemodifier((from - char.HumanoidRootPart.Position).Magnitude,
rangemodifier)
if damage > minimumdamage then
hits[1 + #hits] = { -- record that we hit
this
to = {to, todata},
from = {from, fromdata},
instance = instance,
damage = damage,
wallbang = wallbang,
damagemodifier = damagemodifier,
}
end
end -- this point cannot be hit, continue to the next
one
end
end
end
return nearest
else -- we have selected multi aura
-- ok so if they are in our range
ragebot.currentindex = ragebot.currentindex + 1 -- okay lets move
to the next idx in the enemies table (scan the next enemy)
if ragebot.currentindex > #enemies then -- okay that idx is too
high so go back to 1
ragebot.currentindex = 1
end
local enemy = enemies[ragebot.currentindex]
if not ((enemy.pInfo.character.HumanoidRootPart.Position -
from).Magnitude < Menu["Rage"]["Aimbot"]["Knife Bot Range"]["Value"]) then return
end
ragebot.currenttarget.player = enemy.player
ragebot.currenttarget.instance =
enemy.pInfo.character.HumanoidRootPart
ragebot.currenttarget.position =
enemy.pInfo.character.HumanoidRootPart.Position
ragebot.currenttarget.modifier = 1
ragebot.currenttarget.wallbang = false
ragebot.currenttarget.pInfo = enemy.pInfo
hitPart:FireServer(
ragebot.currenttarget.instance, -- 1
ragebot.currenttarget.position, -- 2
client.fgun.Name,
client.fgun.Range.Value,
nil,
nil,
1,
false,
false,
localPlayer.Character.HumanoidRootPart.Position +
newVector3(0, 2, 0) + localPlayer.Character.Humanoid.CameraOffset,
workspace.DistributedTime.Value,
Vector3.zero,
false,
"r",
nil,
nil,
nil
)
return
end
end
ragebot.currenttarget.player = nil
ragebot.currenttarget.instance = nil
ragebot.currenttarget.position = nil
ragebot.currenttarget.modifier = nil
ragebot.currenttarget.wallbang = nil
ragebot.currenttarget.origin = nil
ragebot.currenttarget.pInfo = nil
-- no ammo..
local enemies = {}
for i, pInfo in next, (playerInfo.storage) do
if pInfo.alive and pInfo.enemy and not (pInfo.protected or
pInfo.god) then
if Menu["Rage"]["Aimbot"]["Aimbot FOV"]["Value"] == 180 or
(math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(camera.CFrame
.p, pInfo.character.HumanoidRootPart.Position).LookVector))))) * 2 < Menu["Rage"]
["Aimbot"]["Aimbot FOV"]["Value"] then
enemies[1 + #enemies] = {player = pInfo.player, pInfo
= pInfo}
end
end
end
local result
if gun:FindFirstChild("Melee") and Menu["Rage"]["Aimbot"]["Knife Bot"]
["Toggle"]["Enabled"] then -- okay so we're holding our knifebot so we need to use
our knifebot
result = ragebot.knifebot()
else -- okay no knife, ragebot.scan!!
ragebot.currentindex = ragebot.currentindex + 1 -- okay lets move
to the next idx in the enemies table (scan the next enemy)
if ragebot.currentindex > #enemies then -- okay that idx is too
high so go back to 1
ragebot.currentindex = 1
end
result = ragebot.scan(enemies[ragebot.currentindex])
end
ragebot.currenttarget.player = result.player
ragebot.currenttarget.instance = result.instance
ragebot.currenttarget.position = result.to[1]
ragebot.currenttarget.modifier = result.damagemodifier
ragebot.currenttarget.wallbang = result.wallbang
ragebot.currenttarget.origin = result.from[1]
ragebot.currenttarget.pInfo = result.pInfo
do --ANCHOR Misc
misc.oldmoney = 0
misc.oldweaponstats = {}
misc.lastchatmessage = tick()
misc.lastupdate = tick()
misc.hitsound = Instance.new("Sound", camera)
misc.killsound = Instance.new("Sound", camera)
misc.killsaylines = {Menu["Misc"]["Extra"]["Kill Say Message"]["Value"]}
misc.ammomodded = false
misc.olddamage = 0 -- i am not stormy (plays hit and kill sound when the
total damage gets reset)
misc.oldkills = 0
misc.lastcheck = tick()
misc.killFeed = {}
misc.gunByIcon = {}
local imagesLoaded = 0
local constants =
getconstants(require(replicatedStorage.GetIcon).getWeaponOfKiller)
local totalImages = #constants
local imagecache = {}
for i = 2, #constants + 1 do
coroutine.wrap(function()
local gun = constants[i-1]
local rbxassetid = constants[i]
if gun == "C4" or replicatedStorage.Weapons:FindFirstChild(gun)
then
if rbxassetid and rbxassetid:find("rbxassetid") then
misc.gunByIcon[rbxassetid] = gun
end
end
imagesLoaded = imagesLoaded + 1
end)()
end
--[[misc.checkgoddedplrs = function()
if tick() - misc.lastcheck > 0.05 then
misc.lastcheck = tick()
if Menu["Misc"]["Extra"]["Auto Martyrdom"]["Toggle"]
["Enabled"] then
for i, v in next, (players:GetPlayers()) do
if v ~= localPlayer then
local character = v.Character
if character ~= nil and
character:FindFirstChild("Humanoid") then
if
character:FindFirstChild("Hostage") or character.Humanoid.Health ~=
character.Humanoid.Health then
replicatedStorage.Events.PlaySound:FireServer(character,
replicatedStorage.Hostage.Head)
end
end
end
end
end
end
end
runService.Heartbeat:Connect(misc.checkgoddedplrs)]]
misc.updateweaponstats = function()
local currentgun = client.fgun
if currentgun == "none" or not currentgun then return end
if misc.oldweaponstats[currentgun.Name] == nil or tick() -
misc.lastupdate < 0.05 then return end
misc.lastupdate = tick()
if Menu["Misc"]["Weapon Modifications"]["Enabled"]["Toggle"]["Enabled"]
then
for i, v in next, (misc.oldweaponstats[currentgun.Name]) do
local stat = client.fgun:FindFirstChild(i)
if stat ~= nil then
local statname = i
if statname == "FireRate" then
stat.Value = Menu["Misc"]["Weapon
Modifications"]["Fire Rate Scale"]["Value"] == 1200 and 0 or v / (Menu["Misc"]
["Weapon Modifications"]["Fire Rate Scale"]["Value"]/100)
else
stat.Value = v
end
if statname == "EquipTime" then
if Menu["Misc"]["Weapon Modifications"]
["Instant Equip"]["Toggle"]["Enabled"] then
stat.Value = 0.00001
else
stat.Value = v
end
end
if statname == "ReloadTime" then
if Menu["Misc"]["Weapon Modifications"]
["Instant Reload"]["Toggle"]["Enabled"] then
stat.Value = 0.00001
else
stat.Value = v
end
end
if statname == "Auto" then
if Menu["Misc"]["Weapon Modifications"]["Fully
Automatic"]["Toggle"]["Enabled"] then
stat.Value = true
else
stat.Value = v
end
end
end
end
if Menu["Misc"]["Weapon Modifications"]["Infinite Ammo"]
["Toggle"]["Enabled"] then
misc.ammomodded = true
debug.setupvalue(client.reloadwep, 8, 9e9)
debug.setupvalue(client.reloadwep, 10, 9e9)
else
if misc.ammomodded == true then
debug.setupvalue(client.reloadwep, 8, 0)
debug.setupvalue(client.reloadwep, 10, 0)
misc.ammomodded = false
end
end
else
for i, v in next, (misc.oldweaponstats[currentgun.Name]) do
local stat = client.fgun:FindFirstChild(i)
if stat ~= nil and (stat:IsA("NumberValue") or
stat:IsA("IntValue") or stat:IsA("BoolValue")) then
stat.Value = v
end
end
if misc.ammomodded == true then
debug.setupvalue(client.reloadwep, 8, 0)
debug.setupvalue(client.reloadwep, 10, 0)
misc.ammomodded = false
end
end
end
runService.Stepped:Connect(function()
--debug.profilebegin("modify weapons")
misc.updateweaponstats()
--debug.profileend()
end)
misc.joinnewgame = function()
UILibrary:EventLog("Joining a new game...", 5)
local thing =
httpService:JSONDecode(game:HttpGet("https://games.roblox.com/v1/games/" ..
game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100"))
local jobid = thing.data[math.random(1, table.getn(thing.data))].id
teleportService:TeleportToPlaceInstance(game.PlaceId, jobid)
end
Menu["Misc"]["Extra"]["Join A New Game"]
["Button"].Pressed:Connect(misc.joinnewgame)
localPlayer.Cash.Changed:Connect(function()
if Menu["Misc"]["Extra"]["Infinite Money"]["Toggle"]["Enabled"] then
task.wait(0.1)
localPlayer.Cash.Value = 10000
end
end)
function misc.updatemoney()
if Menu["Misc"]["Extra"]["Infinite Money"]["Toggle"]["Enabled"] then
misc.oldmoney = localPlayer.Cash.Value
task.wait()
localPlayer.Cash.Value = 10000
else
localPlayer.Cash.Value = misc.oldmoney
end
end
Menu["Misc"]["Extra"]["Infinite Money"]
["Toggle"].Changed:Connect(misc.updatemoney)
function misc.hitplayer()
if localPlayer.Additionals.TotalDamage.Value > misc.olddamage then
if Menu["Misc"]["Extra"]["Hit Sound"]["Toggle"]["Enabled"] then
misc.hitsound.SoundId = "rbxassetid://" .. Menu["Misc"]
["Extra"]["Hit Sound ID"]["Value"]
misc.hitsound.Volume = Menu["Misc"]["Extra"]["Hit Sound
Volume"]["Value"] / 10
misc.hitsound:Play()
end
local dmgdealt = localPlayer.Additionals.TotalDamage.Value -
misc.olddamage
if Menu["Visuals"]["Camera"]["Hit Marker"]["Toggle"]["Enabled"]
then
local upper = 4
local lower = 8
if Menu["Visuals"]["Camera"]["Hit Marker Type"].Value ==
"2D" then
local transSignal = Library.Signal.new()
for i = 1, 4 do
local line = visuals.createDrawing("Line", {
Color = Color3.new(1, 1, 1),
Transparency = 1,
Thickness = 1,-- what the fuck
From = i == 1 and
newVector2(viewportSize.x / 2 + upper, viewportSize.y / 2 + upper) or i == 2 and
newVector2(viewportSize.x / 2 + upper, viewportSize.y / 2 - upper) or i == 3 and
newVector2(viewportSize.x / 2 - upper, viewportSize.y / 2 - upper) or i == 4 and
newVector2(viewportSize.x / 2 - upper, viewportSize.y / 2 + upper),
To = i == 1 and newVector2(viewportSize.x
/ 2 + lower, viewportSize.y / 2 + lower) or i == 2 and newVector2(viewportSize.x /
2 + lower, viewportSize.y / 2 - lower) or i == 3 and newVector2(viewportSize.x / 2
- lower, viewportSize.y / 2 - lower) or i == 4 and newVector2(viewportSize.x / 2 -
lower, viewportSize.y / 2 + lower),
Visible = true
})
local loop; loop =
runService.Stepped:Connect(function()
line.Color = Menu["Visuals"]["Camera"]
["Hit Marker"]["Color 1"]["Color"]
end)
transSignal:Connect(function(newTrans)
if type(newTrans) == "number" then
line.Transparency = newTrans
else
loop:Disconnect()
loop = nil
line:Remove()
line = nil
end
end)
end
task.delay(1/2, function()
for i = 1, 0, -1/10 do
transSignal:Fire(i)
task.wait(0.05)
end
transSignal:Fire("nigger")
transSignal:Destroy()
transSignal = nil
end)
else
task.spawn(function()
repeat
task.wait()
until misc.lastHitpart
local data = {}
for i, v in next, (misc.lastHitpart) do
data[i] = v
end
misc.lastHitpart = nil
local posSignal = Library.Signal.new()
local transSignal = Library.Signal.new()
local step =
runService.Stepped:Connect(function()
local pos, onScreen =
mathModule.worldToViewportPoint(data[2])
if onScreen then
posSignal:Fire(pos)
else
transSignal:Fire(0)
end
end)
for i = 1, 4 do
local line =
visuals.createDrawing("Line", {
Color = Color3.new(1, 1, 1),
Transparency = 1,
Thickness = 1,
Visible = true,
})
posSignal:Connect(function(pos)
line.From = i == 1 and
newVector2(pos.x + upper, pos.y + upper) or i == 2 and newVector2(pos.x + upper,
pos.y - upper) or i == 3 and newVector2(pos.x - upper, pos.y - upper) or i == 4 and
newVector2(pos.x - upper, pos.y + upper)
line.To = i == 1 and
newVector2(pos.x + lower, pos.y + lower) or i == 2 and newVector2(pos.x + lower,
pos.y - lower) or i == 3 and newVector2(pos.x - lower, pos.y - lower) or i == 4 and
newVector2(pos.x - lower, pos.y + lower)
line.Color = Menu["Visuals"]
["Camera"]["Hit Marker"]["Color 1"]["Color"]
end)
transSignal:Connect(function(newTrans)
if type(newTrans) == "number" then
line.Transparency = newTrans
else
line:Remove()
line = nil
end
end)
end
misc.crosshairFix = runService.Stepped:Connect(function()
for i, v in next,
localPlayer.PlayerGui.GUI.Crosshairs.Crosshair:GetChildren() do
if client.fgun ~= "none" and client.fgun:FindFirstChild("Scoped")
and client.fgun:FindFirstChild("RifleThing") == nil then
v.Visible = false
else
v.Visible = true
if v.Name == "Dot" then
if localPlayer.PlayerGui.GUI.CrosshairCustom.dot.Text
== "OFF" then
v.Visible = false
end
end
end
end
end)
function misc.getkillfeed()
task.wait(((350 + game.Stats.PerformanceStats.Ping:GetValue()) * 2) /
1000) -- idk why
misc.killFeed = {}
for i, v in next, workspace.KillFeed:GetChildren() do
misc.killFeed[i] = {
position = tonumber(v.Name),
killer = v.Killer.Value,
victim = v.Victim.Value,
weapon = v.Weapon.Value,
headshot = v.Weapon.Headshot.Value,
wallbang = v.Weapon.Wallbang.Value
}
end
table.sort(misc.killFeed, function(a, b) return a.position > b.position
end)
end
function misc.refreshkillsayfile()
if isfile("bloxsense/kill_say.txt") then
misc.killsaylines = {}
for line in readfile("bloxsense/kill_say.txt"):gmatch("[^\n]+")
do
if line:match("%S") then
table.insert(misc.killsaylines, line)
end
end
misc.killsaylines = #misc.killsaylines > 0 and misc.killsaylines
or {Menu["Misc"]["Extra"]["Kill Say Message"]["Value"]}
end
end
Menu["Misc"]["Extra"]["Kill Say"]
["Toggle"].Changed:Connect(misc.refreshkillsayfile)
Menu["Misc"]["Extra"]["Kill Say Mode"]
["Dropdown"].Changed:Connect(misc.refreshkillsayfile)
function misc.killplayer()
if localPlayer.Status.Kills.Value > misc.oldkills then
if Menu["Misc"]["Extra"]["Kill Sound"]["Toggle"]["Enabled"] then
misc.killsound.SoundId = "rbxassetid://" .. Menu["Misc"]
["Extra"]["Kill Sound ID"]["Value"]
misc.killsound.Volume = Menu["Misc"]["Extra"]["Kill Sound
Volume"]["Value"] / 10
misc.killsound:Play()
end
if Menu["Misc"]["Extra"]["Kill Say"]["Toggle"]["Enabled"] then
misc.getkillfeed()
do --ANCHOR Movement
function movement.collisionFilter(instance)
return not instance.CanCollide
end
movement.basedir = -1
function movement.step(delta)
local localCharacter = localPlayer.Character
local flightmode = (Menu["Misc"]["Tweaks"]["No Clip"]["Toggle"]
["Enabled"] and Menu["Misc"]["Tweaks"]["No Clip"]["Bind"]["Active"]) or
(Menu["Misc"]["Movement"]["Fly"]["Toggle"]["Enabled"] and Menu["Misc"]["Movement"]
["Fly"]["Bind"]["Active"])
if Menu["Misc"]["Tweaks"]["Custom Gravity"]["Toggle"]["Enabled"] then
workspace.Gravity = Menu["Misc"]["Tweaks"]["Gravity Level"]
["Value"]
else
workspace.Gravity = 80
end
if localCharacter then
local humanoid = localCharacter:FindFirstChild("Humanoid")
local humanoidRootPart =
localCharacter:FindFirstChild("HumanoidRootPart")
if humanoid and humanoidRootPart then
if userInputService:IsKeyDown("Space") and Menu["Misc"]["Movement"]
["Automatic Jump"]["Toggle"]["Enabled"] and humanoid.FloorMaterial ~= materials.Air
and localPlayer.Character.Humanoid:GetState() ~= Enum.HumanoidStateType.Jumping
then
humanoid.Jump = true
end
local moveDirection = emptyVec3
local cfRel = flightmode and camera.CFrame or
CFrame.lookAt(camera.CFrame.p, camera.CFrame.p + camera.CFrame.LookVector * xz)
if userInputService:IsKeyDown("W") then
moveDirection = moveDirection + cfRel.LookVector
end
if userInputService:IsKeyDown("S") then
moveDirection = moveDirection - cfRel.LookVector
end
if userInputService:IsKeyDown("D") then
moveDirection = moveDirection + cfRel.RightVector
end
if userInputService:IsKeyDown("A") then
moveDirection = moveDirection - cfRel.RightVector
end
if userInputService:IsKeyDown("LeftShift") then
moveDirection = moveDirection + cfRel.UpVector
end
if userInputService:IsKeyDown("LeftControl") then
moveDirection = moveDirection - cfRel.UpVector
end
if (Menu["Misc"]["Movement"]["Fly"]["Toggle"]["Enabled"]
and Menu["Misc"]["Movement"]["Fly"]["Bind"]["Active"]) then
local speed = Menu["Misc"]["Movement"]["Fly Speed"]
["Value"]
humanoidRootPart.AssemblyLinearVelocity =
moveDirection * speed
elseif (Menu["Misc"]["Movement"]["Speed"]["Toggle"]
["Enabled"] and Menu["Misc"]["Movement"]["Speed"]["Bind"]["Active"]) then
local speed = Menu["Misc"]["Movement"]["Speed
Factor"]["Value"]
local mode = Menu["Misc"]["Movement"]["Speed Type"]
["Value"]
if flightmode then
humanoidRootPart.AssemblyLinearVelocity =
moveDirection * speed
else
if Menu["Misc"]["Movement"]["Circle Strafe"]
["Toggle"]["Enabled"] and Menu["Misc"]["Movement"]["Circle Strafe"]["Bind"]
["Active"] then
local radius = Menu["Misc"]["Movement"]
["Circle Strafe Radius"]["Value"]
local direction
if userInputService:IsKeyDown("D") then
direction = 1
end
if userInputService:IsKeyDown("A") then
direction = -1
end
return
else
moveDirection =
newVector3(moveDirection.x, 0, moveDirection.z)
moveDirection =
mathModule.safeUnit(moveDirection) * speed
end
misc.angle = 0
if mode == "Velocity" then
humanoidRootPart.AssemblyLinearVelocity =
newVector3(moveDirection.x, humanoidRootPart.AssemblyLinearVelocity.y,
moveDirection.z)
elseif mode == "CFrame" then
local currentCf = humanoidRootPart.CFrame
local nextCf = currentCf + (moveDirection
* xz) * delta
local wallPassed, pos, norm =
workspace:FindPartOnRayWithWhitelist(Ray.new(currentCf.p, nextCf.p - currentCf.p),
{workspace.Map}, true)
if wallPassed then
nextCf = nextCf - nextCf.p + pos +
norm * 1.5
end
humanoidRootPart.CFrame = nextCf
end
end
end
if Menu["Misc"]["Tweaks"]["No Clip"]["Toggle"]["Enabled"] and
Menu["Misc"]["Tweaks"]["No Clip"]["Bind"]["Active"] then
for i,v in next, (localCharacter:GetChildren()) do
if v:IsA("BasePart") and v.CanCollide == true then
v.CanCollide = false -- pastedS
end
end
else
if ragebot.fakehrp then
ragebot.fakehrp.CanCollide = true
end
end
if Menu["Misc"]["Tweaks"]["Remove Crouch Cooldown"]["Toggle"]
["Enabled"] then
client.crouchcooldown = 0
end
if Menu["Misc"]["Tweaks"]["Edge Jump"]["Toggle"]["Enabled"] and
Menu["Misc"]["Tweaks"]["Edge Jump"]["Bind"]["Active"] then
if localPlayer.Character.Humanoid:GetState() ~=
Enum.HumanoidStateType.Freefall and localPlayer.Character.Humanoid:GetState() ~=
Enum.HumanoidStateType.Jumping then
coroutine.wrap(function()
runService.RenderStepped:Wait()
if localPlayer.Character ~= nil and
localPlayer.Character:FindFirstChild("Humanoid") and
localPlayer.Character.Humanoid:GetState() == Enum.HumanoidStateType.Freefall and
localPlayer.Character.Humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
localPlayer.Character.Humanoid:ChangeState("Jumping")
end
end)()
end
end
end
end
end
end -- HIIII INTEGER
--nigger this code looks bad idk how to organize hooks
--hold on
do --ANCHOR Legitbot
legitbot.aimassisttarget = { -- writing legitbotzz at 4 am$$$$$$$$
player = nil,
instance = nil,
position = nil
}
legitbot.triggerbottarget = {
player = nil,
instance = nil,
hit = tick(), -- for reaction time
magnet = {
active = false,
player = nil,
instance = nil,
position = nil,
}
}
legitbot.hitgroups = {
["Head"] = {"HeadHB", "FakeHead"},
["Body"] = {"UpperTorso", "LowerTorso"},
["Arms"] = {"RightUpperArm", "RightLowerArm", "LeftUpperArm",
"LeftLowerArm"},
["Legs"] = {"RightUpperLeg", "RightLowerLeg", "LeftUpperLeg",
"LeftLowerLeg"}
}
legitbot.triggergroups = {
["Head"] = {"HeadHB", "FakeHead"},
["Body"] = {"UpperTorso", "LowerTorso"},
["Arms"] = {"RightUpperArm", "RightLowerArm", "RightHand",
"LeftUpperArm", "LeftLowerArm", "LeftHand"},
["Legs"] = {"RightUpperLeg", "RightLowerLeg", "RightFoot",
"LeftUpperLeg", "LeftLowerLeg", "LeftFoot"}
}
legitbot.weaponstats = {} -- so that u dont knife silent aim or some bullshit
legitbot.weaponstats.gunrange = 1
legitbot.weaponstats.penetration = 1
-- i have no clue what the fuck i am doing (3:56 am, 3/6/2022, Invaded)
--[[for reference:
legitbot.evaluatetarget({ -- if it wasnt for this i wouldve had to copy
paste this func like 3 times (silent aim)
fov = 0,
deadzone = 0,
hitscanpoints = {"Head", "Body"},
hitscanpriority = "Head",
ignoresmoke = false,
ignoreflash = false,
accuracy = 100,
considerbacktrack = true
})
]]
legitbot.evaluatetarget = function(Parameters)
local possibletargets = {}
for i, v in next, (players:GetPlayers()) do
if v ~= localPlayer then
local pInfo = playerInfo.storage[v]
if pInfo and pInfo.alive and pInfo.enemy and
pInfo.character and pInfo.character:FindFirstChild("HumanoidRootPart") and not
pInfo.protected then
local angle =
(math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(camera.CFrame
.p, pInfo.character.HumanoidRootPart.Position).LookVector))))) * 2 -- cope!!!
if angle < Parameters.fov and angle >
Parameters.deadzone then
possibletargets[1 + #possibletargets] = {v,
pInfo, v.Character, angle}
end
end
end
end
if #possibletargets < 1 then return end
table.sort(possibletargets, function(a, b) return a[4] > b[4] end) --
okay so lets get a table of the people in fov and the closest to crosshair
local currenttarget
for i, v in next, (possibletargets) do
if legitbot.aimassisttarget.player == nil then -- okay so we
still dont have a valid target so lets scan the next person
local player = v[1]
local pInfo = v[2]
local char = v[3]
local potentialpoints = {}
for i, v in next, (Parameters.hitscanpoints) do
for i2, v2 in next, (legitbot.hitgroups[v]) do
local point = char:FindFirstChild(v2)
if ragebot.allPartsForBacktrack[point] then
point =
ragebot.allPartsForBacktrack[point] -- this is actually a backtrack, switch to the
real one
end
if point then
potentialpoints[1 + #potentialpoints] =
point -- okay these are our hitscan points
if Parameters.considerbacktrack == true
then
local btpart = point.Name
if btpart == "HeadHB" then
btpart = "Head"
end
if
ragebot.backtracks[player].backtrackParts[btpart] then
potentialpoints[1 +
#potentialpoints] = ragebot.backtracks[player].backtrackParts[btpart]
end
end
end
end
end
local ignore = {
workspace.Map
}
if Parameters.ignoresmoke == false then
ignore[1 + #ignore] = workspace.Ray_Ignore
end
if localPlayer.PlayerGui.Blnd.Blind.BackgroundTransparency
> 0.85 or Parameters.ignoreflash then
local bestpoints = {}
local priority = Parameters.hitscanpriority
if Parameters.accuracy >= math.random(1, 100) then --
if accuracy chance is met lets try hitscan priority
local currentpos, currentpart
if priority == "Closest" then -- ok!
local angles = {}
for i, v in next, (potentialpoints) do --
lets get the closest to crosshair out of all of the hitscan points
angles[1 + #angles] = {v,
(math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(camera.CFrame
.p, v.Position).LookVector))))) * 2}
end
table.sort(angles, function(a, b)
return a[2] > b[2]
end)
for i, v in next, (angles) do
bestpoints[1 + #bestpoints] = v[1]
-- ok so first idx of angles table is closest, so the closest will be scanned first
end
else
for i2, v2 in next,
(legitbot.hitgroups[priority]) do -- ok so its just a simple change of priority
here (scan hitscan priority first)
local point =
char:FindFirstChild(v2)
bestpoints[1 + #bestpoints] = point
end
end
end
local copy = {} -- i dont really feel like head
aiming 100% of the time if the accuracy chance isnt met so lets randomize this
table
for i, v in next, (potentialpoints) do
copy[1 + #copy] = v
end
local j, temp
for i = #copy, 1, -1 do
j = math.random(i)
temp = copy[i]
copy[i] = copy[j]
copy[j] = temp
end
for i, v in next, (copy) do
bestpoints[1 + #bestpoints] = v
end
for i, v in next, (bestpoints) do -- ok now that our
points are sorted, lets do a visible check
local ray = Ray.new(camera.CFrame.p, v.Position
- camera.CFrame.p)
local hit, pos =
workspace:FindPartOnRayWithWhitelist(ray, ignore, false, true)
if pos == v.Position then -- okay great, this
point is visible, lets make currenttarget set to it
return {player = player, instance = v,
position = v.Position}
end
end
end
end
end
end
legitbot.verifypoint = function(Parameters) -- {player, instance, position,
fov, deadzone, ignoresmoke, ignoreflash}
local currentplayer = Parameters.player
local pInfo = playerInfo.storage[currentplayer]
if pInfo ~= nil then
local currentinstance = Parameters.instance
local currentpos = Parameters.position
if pInfo.alive and pInfo.enemy and
(localPlayer.PlayerGui.Blnd.Blind.BackgroundTransparency > 0.85 or
Parameters.ignoreflash) then
local angle =
(math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(camera.CFrame
.p, currentinstance.Position).LookVector))))) * 2
if angle < Parameters.fov and angle > Parameters.deadzone
then -- ok they are still in fov
local ignore = {
workspace.Map
}
if Parameters.ignoresmoke == false then
ignore[1 + #ignore] = workspace.Ray_Ignore
end
local targetpos = currentinstance.Position
local ray = Ray.new(camera.CFrame.p, targetpos -
camera.CFrame.p)
local hit, pos =
workspace:FindPartOnRayWithWhitelist(ray, ignore, false, true)
if pos == targetpos then -- well that point isnt
visible anymore so stop aiming there
return currentinstance.Position -- update the
currenttarget.pos or we will aim at the same point forever
end
end
end
end
end
legitbot.aimingTime = 0
legitbot.previousDude = {
dude = nil,
lastAim = nil
}
legitbot.legitbotloop = runService.Stepped:Connect(function(delta)
--debug.profilebegin("legit bot")
if not client.fgun or client.fgun == "none" or not
localPlayer.Character or (localPlayer.Character and not
localPlayer.Character:FindFirstChild("Humanoid")) then -- hmm i wonder where ive
seen this b4
legitbot.aimassisttarget.player = nil
legitbot.aimassisttarget.instance = nil
legitbot.aimassisttarget.position = nil
legitbot.triggerbottarget.player = nil
legitbot.triggerbottarget.instance = nil
legitbot.triggerbottarget.hit = nil
legitbot.triggerbottarget.magnet.active = false
legitbot.triggerbottarget.magnet.player = nil
legitbot.triggerbottarget.magnet.instance = nil
legitbot.triggerbottarget.magnet.hit = nil
else
legitbot.weaponstats.gunrange = client.fgun.Range.Value
legitbot.weaponstats.penetration = client.fgun.Penetration.Value
if client.fgun:FindFirstChild("Melee") then
return
end
if Menu["Legit"]["Trigger Bot"]["Enabled"]["Toggle"]["Enabled"]
and Menu["Legit"]["Trigger Bot"]["Enabled"]["Bind"]["Active"] then
if legitbot.triggerbottarget.player ~= nil and
legitbot.triggerbottarget.instance ~= nil then -- same procedure again
if Menu["Legit"]["Trigger Bot"]["Reaction Time"]
["Value"] == 0 or (tick() - legitbot.triggerbottarget.hit) > (Menu["Legit"]
["Trigger Bot"]["Reaction Time"]["Value"] / 1000) then -- ok so we've waited for
the reaction time, lets see if its still a valid point
local currentplayer =
legitbot.triggerbottarget.player
local pInfo = playerInfo.storage[currentplayer]
if pInfo ~= nil then
local currentinstance =
legitbot.triggerbottarget.instance
local char = pInfo.character
if pInfo.alive and pInfo.enemy then -- ok
they are still alive
local charchild =
char:GetChildren()
local possiblepoints = {}
local plrReference = {}
for i, v in next, (Menu["Legit"]
["Trigger Bot"]["Trigger Bot Hitboxes"]["Value"]) do
for i2, v2 in next,
(legitbot.triggergroups[v]) do
for i3, v3 in next,
(charchild) do
if v3 and
ragebot.hitmodifier[v3.Name] ~= nil and v3.Name == v2 and
ragebot.backtracks[currentplayer].backtrackParts[v3] == nil then
possiblepoints[v3] = true
end
end
for i3, v3 in next,
(ragebot.backtracks[currentplayer].backtrackParts) do
if i3.Name == v2
or (i3 == "Head" and v2 == "HeadHB") then
possiblepoints[v3] = true
end
end
end
end
local ignorelist = { -- dumbed down
qual thing here
localPlayer.Character,
workspace.Debris,
camera,
workspace.Map:WaitForChild("Clips"),
workspace.Map:WaitForChild("SpawnPoints"),
}
for i, v in next,
(char:GetChildren()) do
if possiblepoints[v] ~= true
then -- so thats not a hitbox, lets ignore it
ignorelist[1 +
#ignorelist] = v
end
end
-- okay lets see if our ray hits a
selected hitbox
local ray =
Ray.new(camera.CFrame.p, camera.CFrame.LookVector.unit * 500) -- okay send a ray in
the direction of my camera
if Menu["Legit"]["Trigger Bot"]
["Auto Wall"]["Toggle"]["Enabled"] then
ignorelist[1 + #ignorelist] =
workspace.Map
end
findFirstChild(workspace.Map, "Clips"),
findFirstChild(workspace.Map, "SpawnPoints"),
camera,
localPlayer.Character,
findFirstChild(workspace, "Debris"),
findFirstChild(workspace, "Ray_Ignore"),
} -- ignoring every
player model since that doesnt block bullets :sad:
for i, v in next,
players:GetPlayers() do
if v.Character
then
local weaponstat = {
maxPenetration =
client.fgun.Penetration.Value * 0.01,
maxWalls = 4
}
local awallhit,
damagemodifier, wallbang = ragebot.autowall(camera.CFrame.p, pos, extraignored,
weaponstat)
if awallhit then
local gun =
client.fgun
local haskevlar =
findFirstChild(currentplayer, "Kevlar")
local hashelmet =
haskevlar and findFirstChild(currentplayer, "Helmet")
local
armorpiercing = gun.ArmorPenetration.Value
local weapondamage
= gun.DMG.Value
local pellets =
gun.Bullets.Value
local ishead =
hit.Name:match("Head")
local damage =
pellets * weapondamage * damagemodifier * (ishead and 4 or
ragebot.hitmodifier[hit.Name]) * ragebot.kevlardamage(armorpiercing, haskevlar,
hashelmet, ishead) * ragebot.distancedamagemodifier((camera.CFrame.p -
char.HumanoidRootPart.Position).Magnitude, rangemodifier)
if damage >
Menu["Legit"]["Trigger Bot"]["Auto Wall Minimum Damage"]["Value"] or damage >
pInfo.health then
mayProceed =
true
end
end
end
legitbot.triggerbottarget.clicked = true
legitbot.triggerbottarget.player = nil
legitbot.triggerbottarget.instance = nil
legitbot.triggerbottarget.hit = nil
end
end
end
end
legitbot.triggerbottarget.clicked = true
legitbot.triggerbottarget.player = nil
legitbot.triggerbottarget.instance = nil
legitbot.triggerbottarget.hit = nil
end
else
local validtarget
local ignore = {
localPlayer.Character,
workspace.Debris,
camera,
workspace.Map:WaitForChild("Clips"),
workspace.Map:WaitForChild("SpawnPoints"),
}
local ray = Ray.new(camera.CFrame.p,
camera.CFrame.LookVector.unit * 500) -- okay send a ray in the direction of my
camera
if Menu["Legit"]["Trigger Bot"]["Auto Wall"]
["Toggle"]["Enabled"] then
ignore[1 + #ignore] = workspace.Map
end
local hit, pos =
workspace:FindPartOnRayWithIgnoreList(ray, ignore, false, true) -- lets see what it
hits
if hit then
local playerhit =
players:GetPlayerFromCharacter(hit.Parent)
if playerhit ~= nil then -- okay so i hit
SOMEONE
local pInfo =
playerInfo.storage[playerhit]
if pInfo and pInfo.enemy then
validtarget = {playerhit, pInfo}
end
end
if validtarget ~= nil then -- okay so this is
an enemy and they are on our crosshair
local currentplayer = validtarget[1]
local pInfo = validtarget[2]
local char = pInfo.character
if char ~= nil then -- this errored once
so dn
-- okay so now check if we are
hitting a hitbox that is selected
local charchild =
char:GetChildren()
local possiblepoints = {}
for i, v in next, (Menu["Legit"]
["Trigger Bot"]["Trigger Bot Hitboxes"]["Value"]) do
for i2, v2 in next,
(legitbot.triggergroups[v]) do
for i3, v3 in next,
(charchild) do
if v3 and
ragebot.hitmodifier[v3.Name] ~= nil and v3.Name == v2 and
ragebot.backtracks[currentplayer].backtrackParts[v3] == nil then
possiblepoints[v3] = true
end
end
for i3, v3 in next,
(ragebot.backtracks[currentplayer].backtrackParts) do
if i3.Name == v2
or (i3 == "Head" and v2 == "HeadHB") then
possiblepoints[v3] = true
end
end
end
end
local ignorelist = { -- dumbed down
qual thing here
localPlayer.Character,
workspace.Debris,
camera,
workspace.Map:WaitForChild("Clips"),
workspace.Map:WaitForChild("SpawnPoints"),
}
for i, v in next,
(char:GetChildren()) do
if possiblepoints[v] ~= true
then -- so thats not a hitbox, lets ignore it
ignorelist[1 +
#ignorelist] = v
end
end
-- okay lets see if our ray hits a
selected hitbox
local ray =
Ray.new(camera.CFrame.p, camera.CFrame.LookVector.unit * 500) -- okay send a ray in
the direction of my camera
if Menu["Legit"]["Trigger Bot"]
["Auto Wall"]["Toggle"]["Enabled"] then
ignorelist[1 + #ignorelist] =
workspace.Map
end
findFirstChild(workspace.Map, "Clips"),
findFirstChild(workspace.Map, "SpawnPoints"),
camera,
localPlayer.Character,
findFirstChild(workspace, "Debris"),
findFirstChild(workspace, "Ray_Ignore"),
} -- ignoring every
player model since that doesnt block bullets :sad:
for i, v in next,
players:GetPlayers() do
if v.Character
then
extraignored[1 + #extraignored] = v.Character
end
end
local weaponstat = {
maxPenetration =
client.fgun.Penetration.Value * 0.01,
maxWalls = 4
}
local awallhit,
damagemodifier, wallbang = ragebot.autowall(camera.CFrame.p, pos, extraignored,
weaponstat)
if awallhit then
local gun =
client.fgun
local haskevlar =
findFirstChild(currentplayer, "Kevlar")
local hashelmet =
haskevlar and findFirstChild(currentplayer, "Helmet")
local
armorpiercing = gun.ArmorPenetration.Value
local weapondamage
= gun.DMG.Value
local pellets =
gun.Bullets.Value
local isHead =
hit.Name:match("Head")
local damage =
pellets * weapondamage * damagemodifier * (ishead and 4 or
ragebot.hitmodifier[hit.Name]) * ragebot.kevlardamage(armorpiercing, haskevlar,
hashelmet, ishead) * ragebot.distancedamagemodifier((camera.CFrame.p -
char.HumanoidRootPart.Position).Magnitude, rangemodifier)
if damage >
Menu["Legit"]["Trigger Bot"]["Auto Wall Minimum Damage"]["Value"] or damage >
pInfo.health then
mayProceed =
true
end
end
end
if mayProceed then -- would u
look at that.... its a valid hitbox
legitbot.triggerbottarget.player = currentplayer
legitbot.triggerbottarget.instance = hit
legitbot.triggerbottarget.hit = tick()
end
end
end
end
end
end
end
if legitbot.triggerbottarget.magnet.player then
local result = legitbot.verifypoint({
player = legitbot.triggerbottarget.magnet.player,
instance = legitbot.triggerbottarget.magnet.instance,
position =
legitbot.triggerbottarget.magnet.instance.Position,
fov = Menu["Legit"]["Trigger Bot"]["Magnet FOV"]
["Value"],
deadzone = 0,
ignoresmoke = Menu["Legit"]["Aim Assist"]["Aim
Through Smoke"]["Toggle"]["Enabled"],
ignoreflash = Menu["Legit"]["Aim Assist"]["Aim
Through Flash"]["Toggle"]["Enabled"]
})
if result then
legitbot.triggerbottarget.magnet.position = result
else
legitbot.triggerbottarget.magnet.player = nil
legitbot.triggerbottarget.magnet.instance = nil
legitbot.triggerbottarget.magnet.position = nil
legitbot.triggerbottarget.magnet.active = false
end
else
legitbot.triggerbottarget.magnet.player = nil
legitbot.triggerbottarget.magnet.instance = nil
legitbot.triggerbottarget.magnet.position = nil
legitbot.triggerbottarget.magnet.active = false
local angle =
(math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(camera.CFrame
.p, aimposition).LookVector))))) * 2
local speedtype = Menu["Legit"]["Aim Assist"]["Speed
Type"]["Value"]
if speedtype == "Exponential" then
Speed = Speed / 500
else
Speed = (Speed / angle) / 100
end
local recoilY, recoilP, recoilZ =
client.revert:toEulerAnglesXYZ()
recoilP = recoilP * 2 * Menu["Legit"]["Aim Assist"]["Recoil
Compesation Pitch"]["Value"] / 100
recoilY = recoilY * 2 * Menu["Legit"]["Aim Assist"]
["Recoil Compesation Yaw"]["Value"] / 100
camera.CFrame =
camera.CFrame:Lerp(CFrame.new(camera.CFrame.p, aimposition) *
CFrame.Angles(recoilY, recoilP, 0), Speed)
if legitbot.triggerbottarget.magnet.player == nil
then
legitbot.aimingTime = legitbot.aimingTime +
delta
legitbot.previousDude.dude =
legitbot.aimassisttarget.player
legitbot.previousDude.tick = tick()
end
end
return
end
if Menu["Legit"]["Aim Assist"]["Enabled"]["Toggle"]["Enabled"]
then
if Menu["Legit"]["Trigger Bot"]["Enabled"]["Bind"]
["Active"] and Menu["Legit"]["Trigger Bot"]["Magnet Triggerbot"]["Toggle"]
["Enabled"] then
legitbot.aimassisttarget.player = nil
legitbot.aimassisttarget.instance = nil
legitbot.aimassisttarget.position = nil
legitbot.aimingTime = 0
legitbot.triggerbottarget.magnet.player = nil
legitbot.triggerbottarget.magnet.instance = nil
legitbot.triggerbottarget.magnet.position = nil
legitbot.triggerbottarget.magnet.active = false
else
legitbot.aimassisttarget.player = nil
legitbot.aimassisttarget.instance = nil
legitbot.aimassisttarget.position = nil
legitbot.aimingTime = 0
end
end
else
legitbot.aimassisttarget.player = nil
legitbot.aimassisttarget.instance = nil
legitbot.aimassisttarget.position = nil
legitbot.aimingTime = 0
legitbot.triggerbottarget.magnet.player = nil
legitbot.triggerbottarget.magnet.instance = nil
legitbot.triggerbottarget.magnet.position = nil
legitbot.triggerbottarget.magnet.active = false
end
end
--debug.profileend()
end)
end
runService.Stepped:Connect(function()
localPing = game.Stats.PerformanceStats.Ping:GetValue()
end)
local inventorySelections = {}
local legitInventory = table.clone(client.CurrentInventory)
Menu["Misc"]["Exploits"]["Unlock Inventory"]
["Toggle"].Changed:Connect(function()
if Menu["Misc"]["Exploits"]["Unlock Inventory"]["Toggle"]["Enabled"]
then
client.CurrentInventory = allSkins
else
client.CurrentInventory = legitInventory
end
local TClone, CTClone = localPlayer.SkinFolder.TFolder:Clone(),
localPlayer.SkinFolder.CTFolder:Clone()
localPlayer.SkinFolder.TFolder:Destroy()
localPlayer.SkinFolder.CTFolder:Destroy()
TClone.Parent = localPlayer.SkinFolder
CTClone.Parent = localPlayer.SkinFolder
end)
local CurrentKnives = {
"Bayonet",
"Huntsman Knife",
"Falchion Knife",
"Karambit",
"Gut Knife",
"Butterfly Knife",
"M9 Bayonet",
"Banana",
"Flip Knife",
"Sickle",
"Bearded Axe",
"Cleaver"
}
local CurrentGloves = {
"Sports Glove",
"Strapped Glove",
"Fingerless Glove",
"Handwraps"
}
inventorySelections[1 + #inventorySelections] = {
args = {invennum, team},
item2equip = item2equip,
physicalitem = physicalitem,
splitter = splitter,
weapon = splitter[1],
skin = splitter[2],
isKnife = isKnife,
isGlove = isGlove
}
local seenItems = {}
for i = #inventorySelections, 1, -1 do
local entry = inventorySelections[i]
local physicalItem = entry.weapon
if seenItems[physicalItem] then
if entry.skin ~=
inventorySelections[seenItems[physicalItem]].skin then
inventorySelections[seenItems[physicalItem]].skin = entry.skin
end
table.remove(inventorySelections, i)
else
seenItems[physicalItem] = i
end
end
local knifeSeen
for i = #inventorySelections, 1, -1 do
local entry = inventorySelections[i]
local isKnife = entry.isKnife
local gloveSeen
for i = #inventorySelections, 1, -1 do
local entry = inventorySelections[i]
local isGlove = entry.isGlove
if isGlove then
gloveSeen = true
end
end
end
Menu["Misc"]["Exploits"]["Inventory Data"] = {}
Menu["Misc"]["Exploits"]["Inventory Data"].Value = {}
Menu["Misc"]["Exploits"]["Inventory Data"].Save = function()
return {["Value"] = inventorySelections}
end
local isUnlocked
local fakeSkinOwner = {
SkinFolder = {
["CTFolder"] = {
},
["TFolder"] = {
},
["Funds"] = {Value = 1/0}
},
Status = {
Team = {
Value = "T"
}
}
}
-- return oldNamecall(self,
table.unpack(args,1,select("#",...)))
--end
elseif self.Name == "Drop" then
--if Menu["Misc"]["Exploits"]["Block Weapon Dropping On Death"]
["Toggle"]["Enabled"] and (localPlayer.Character == nil or
localPlayer.Character.Humanoid.Health <= 0) then
-- return
--end
if Menu["Misc"]["Weapon Modifications"]["Enabled"]
["Toggle"]["Enabled"] then
args[7] = args[7] * (Menu["Misc"]["Weapon
Modifications"]["Damage Scale"]["Value"]/100)
end
visuals.createHitChams(hitplayer.Character)
end
end
end)
if Menu["Visuals"]["Bullets"]["Bullet Tracers"]["Toggle"]
["Enabled"] then -- nearly done"
task.spawn(visuals.bulletTracer, args[14] and
args[10] or nil, ya) -- can u like dn
end
local reflectedVector =
trajectory.reflect(vel, -raynormal)
do
local thisframe = currentPos
local prevframe = previousPos
local ind = Instance.new("Part",
workspace.Ray_Ignore)
ind.Anchored = true
ind.CanCollide = false
ind.Size = newVector3(0.01, 0.01, (thisframe -
prevframe).Magnitude)
ind.CFrame = CFrame.new(prevframe, thisframe)
ind.Material = Enum.Material.Neon
ind.Transparency = 0
ind.Color = Color3.new(1, 0, 0)
ind.Position = thisframe + ((prevframe -
thisframe) / 2)
end
do
local thisframe = currentPos
local prevframe = args[2]
local ind = Instance.new("Part",
workspace.Ray_Ignore)
ind.Anchored = true
ind.CanCollide = false
ind.Size = newVector3(0.01, 0.01, (thisframe -
prevframe).Magnitude)
ind.CFrame = CFrame.new(prevframe, thisframe)
ind.Material = Enum.Material.Neon
ind.Transparency = 0
ind.Color = Color3.new(0, 1, 0)
ind.Position = thisframe + ((prevframe -
thisframe) / 2)
end
do
local thisframe = currentPos
local prevframe = currentPos + (pInfo.velocity
* simPing / 1000) + (pInfo.velocity * 1/60)
local ind = Instance.new("Part",
workspace.Ray_Ignore)
ind.Anchored = true
ind.CanCollide = false
ind.Size = newVector3(0.01, 0.01, (thisframe -
prevframe).Magnitude)
ind.CFrame = CFrame.new(prevframe, thisframe)
ind.Material = Enum.Material.Neon
ind.Transparency = 0
ind.Color = Color3.new(1, 1, 1)
ind.Position = thisframe + ((prevframe -
thisframe) / 2)
end
do
local thisframe = currentPos
local prevframe = currentPos - raynormal
local ind = Instance.new("Part",
workspace.Ray_Ignore)
ind.Anchored = true
ind.CanCollide = false
ind.Size = newVector3(0.01, 0.01, (thisframe -
prevframe).Magnitude)
ind.CFrame = CFrame.new(prevframe, thisframe)
ind.Material = Enum.Material.Neon
ind.Transparency = 0
ind.Color = Color3.new(0, 0, 1)
ind.Position = thisframe + ((prevframe -
thisframe) / 2)
end]]
end
args[2] = Vector3.new(((args[2].x - 74312) * 4 + 1325)
* 13, (args[2].y + 3183421) * 4 - 4201432, (args[2].z * 41 - 581357) * 2)
end
else
args[2] = Vector3.new(((args[2].x - 74312) * 4
+ 1325) * 13, (args[2].y + 3183421) * 4 - 4201432, (args[2].z * 41 - 581357) * 2)
end
args[14] = nil
return oldNamecall(self,
table.unpack(args,1,select("#",...)))
end
if Menu["Misc"]["Exploits"]["Shot players become mush"]["Toggle"]
["Enabled"] then
args[1] = args[1].Parent.FindFirstChild(args[1].Parent, "Head")
or args[1]
args[7] = 1
args[3] = "AWP"
oldNamecall(self, table.unpack(args,1,select("#",...)))
args[3] = "Multimeter"
oldNamecall(self, table.unpack(args,1,select("#",...)))
return
end
return oldNamecall(self,
table.unpack(args,1,select("#",...)))
end
elseif method == "Kick" and self == localPlayer then
return coroutine.yield()
elseif method == "FindPartOnRayWithIgnoreList" then -- for bullet
redirection in the legitbotz
local passed = false
for i, v in next, args[2] do
if v.ClassName == "Accessory" then
passed = true
end
end
if passed then
if Menu["Misc"]["Weapon Modifications"]["Enabled"]
["Toggle"]["Enabled"] and Menu["Misc"]["Weapon Modifications"]["No Spread"]
["Toggle"]["Enabled"] then
args[1] = Ray.new(camera.CFrame.p,
camera.CFrame.lookVector * legitbot.weaponstats.gunrange * 0.0694)
end
if Menu["Legit"]["Bullet Redirection"]["Silent Aim"]
["Toggle"]["Enabled"] and Menu["Legit"]["Bullet Redirection"]["Hit Chance"]
["Value"] > math.random(0, 100) then -- ok is the chance met?
if legitbot.triggerbottarget.magnet.active == true
and legitbot.triggerbottarget.magnet.player ~= nil and
legitbot.triggerbottarget.magnet.instance ~= nil and
(math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(camera.CFrame
.p,
legitbot.triggerbottarget.magnet.player.Character.HumanoidRootPart.Position).LookVe
ctor))))) * 2 < Menu["Legit"]["Bullet Redirection"]["Silent Aim FOV"]["Value"] then
args[1] = Ray.new(camera.CFrame.p,
(legitbot.triggerbottarget.magnet.position - camera.CFrame.p).unit *
legitbot.weaponstats.gunrange * 0.0694)
elseif legitbot.aimassisttarget.player ~= nil and
legitbot.aimassisttarget.instance ~= nil and legitbot.aimassisttarget.player ~= nil
and
(math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(camera.CFrame
.p,
legitbot.aimassisttarget.player.Character.HumanoidRootPart.Position).LookVector))))
) * 2 < Menu["Legit"]["Bullet Redirection"]["Silent Aim FOV"]["Value"] then -- ok
so the aim assist is trying to pull my crosshair to a certain part, if its in fov
then silent aim at it too
args[1] = Ray.new(camera.CFrame.p,
(legitbot.aimassisttarget.position - camera.CFrame.p).unit *
legitbot.weaponstats.gunrange * 0.0694)
else
local extraignored = {
findFirstChild(workspace.Map, "Clips"),
findFirstChild(workspace.Map,
"SpawnPoints"),
camera,
localPlayer.Character,
findFirstChild(workspace, "Debris"),
findFirstChild(workspace, "Ray_Ignore"),
} -- ignoring every player model since that
doesnt block bullets :sad:
local possibletargets = {}
for i, v in next, (playerInfo.storage) do
local pInfo = v
if pInfo and pInfo.alive and pInfo.enemy
and not pInfo.protected then
local angle =
(math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(camera.CFrame
.p, pInfo.character.HumanoidRootPart.Position).LookVector))))) * 2 -- cope!!!
if angle < Menu["Legit"]["Bullet
Redirection"]["Silent Aim FOV"]["Value"] then
possibletargets[1 +
#possibletargets] = {pInfo.player, pInfo, pInfo.player.Character, angle}
end
end
end
table.sort(possibletargets, function(a, b)
return a[4] < b[4] end)
local currenttarget
for i, v in next, (possibletargets) do
local player = v[1]
local pInfo = v[2]
local char = v[3]
local potentialpoints = {}
for i2, v2 in next, (Menu["Legit"]
["Bullet Redirection"]["Hitscan Points"]["Value"]) do
for i3, v3 in next,
(legitbot.hitgroups[v2]) do
local point =
char:FindFirstChild(v3)
if
ragebot.allPartsForBacktrack[point] then
point =
ragebot.allPartsForBacktrack[point] -- this is actually a backtrack, switch to the
real one
end
if point then
potentialpoints[1 +
#potentialpoints] = point -- okay these are our hitscan points
end
end
end
local ignore = {workspace.Map}
if not Menu["Legit"]["Bullet
Redirection"]["Aim Through Smoke"]["Toggle"]["Enabled"] then
ignore[1 + #ignore] =
workspace.Ray_Ignore
end
if
localPlayer.PlayerGui.Blnd.Blind.BackgroundTransparency > 0.85 or Menu["Legit"]
["Bullet Redirection"]["Aim Through Flash"]["Toggle"]["Enabled"] then
local bestpoints = {}
if Menu["Legit"]["Bullet
Redirection"]["Accuracy"]["Value"] >= math.random(1, 100) then
local priority =
Menu["Legit"]["Bullet Redirection"]["Hitscan Priority"]["Value"]
local currentpos, currentpart
if priority == "Closest" then
local angles = {}
for i2, v2 in next,
(potentialpoints) do
local point = v2
if point then
angles[1 +
#angles] = {point,
(math.abs(math.deg(math.acos((camera.CFrame.LookVector):Dot(newCframe(camera.CFrame
.p, point.Position).LookVector))))) * 2}
end
end
table.sort(angles,
function(a, b)
return a[2] < b[2]
end)
for i2, v2 in next,
(angles) do
bestpoints[1 +
#bestpoints] = v2[1]
end
else
for i2, v2 in next,
(legitbot.hitgroups[Menu["Legit"]["Bullet Redirection"]["Hitscan Priority"]
["Value"]]) do
local point =
char:FindFirstChild(v2)
bestpoints[1 +
#bestpoints] = point
end
end
end
local copy = {}
for i2, v2 in next,
(potentialpoints) do
local point =
char:FindFirstChild(v2)
if point then
copy[1 + #copy] = point
end
end
local j, temp
for f = #copy, 1, -1 do
j = math.random(f)
temp = copy[f]
copy[i] = copy[j]
copy[j] = temp
end
for i2, v2 in next, (copy) do
bestpoints[1 + #bestpoints] =
v2
end
for i2, v2 in next, (bestpoints) do
if v2 ~= nil then
local ray =
Ray.new(camera.CFrame.p, v2.Position - camera.CFrame.p)
local hit, pos =
workspace:FindPartOnRayWithWhitelist(ray, ignore)
local enterParam =
RaycastParams.new()
enterParam.FilterType = Enum.RaycastFilterType.Blacklist
enterParam.IgnoreWater = true
enterParam.FilterDescendantsInstances = args[2]
local
resultOfDepressionAndLonliness = workspaceRaycast(workspace, args[1].Origin,
args[1].Direction, enterParam)
return
resultOfDepressionAndLonliness and resultOfDepressionAndLonliness.Instance or nil,
resultOfDepressionAndLonliness and resultOfDepressionAndLonliness.Position or
(args[1].Origin + args[1].Direction), resultOfDepressionAndLonliness and
resultOfDepressionAndLonliness.Normal or emptyVec3, resultOfDepressionAndLonliness
and resultOfDepressionAndLonliness.Material or nil
end
end
end
end
end
end
end
-- vaderrrr :c what is this emo shit doing here :sad:
local enterParam = RaycastParams.new()
enterParam.FilterType = Enum.RaycastFilterType.Blacklist
enterParam.IgnoreWater = true
enterParam.FilterDescendantsInstances = args[2]
local resultOfDepressionAndLonliness =
workspaceRaycast(workspace, args[1].Origin, args[1].Direction, enterParam)
return resultOfDepressionAndLonliness and
resultOfDepressionAndLonliness.Instance or nil, resultOfDepressionAndLonliness and
resultOfDepressionAndLonliness.Position or (args[1].Origin + args[1].Direction),
resultOfDepressionAndLonliness and resultOfDepressionAndLonliness.Normal or
emptyVec3, resultOfDepressionAndLonliness and
resultOfDepressionAndLonliness.Material or nil
end
elseif method == "SetPrimaryPartCFrame" then
if self.Name:find("Arms") and localPlayer.Character then
if Menu["Visuals"]["Camera"]["Disable Weapon Swaying"]
["Toggle"]["Enabled"] then
args[1] = camera.CFrame
end
if Menu["Visuals"]["Viewmodel"]["Offset Viewmodel"]
["Toggle"]["Enabled"] then
args[1] = args[1] * newCframe(toRad * Menu["Visuals"]
["Viewmodel"]["X Axis"]["Value"], toRad * Menu["Visuals"]["Viewmodel"]["Y Axis"]
["Value"], toRad * Menu["Visuals"]["Viewmodel"]["Z Axis"]["Value"]) *
CFrame.Angles(toRad * Menu["Visuals"]["Viewmodel"]["Pitch"]["Value"], toRad *
Menu["Visuals"]["Viewmodel"]["Yaw"]["Value"], toRad * Menu["Visuals"]["Viewmodel"]
["Roll"]["Value"])
end
if Menu["Rage"]["Aimbot"]["Rotate Viewmodel"]["Toggle"]
["Enabled"] and ragebot.currenttarget.position then
args[1] = CFrame.lookAt(args[1].p,
ragebot.currenttarget.position)
end
if Menu["Visuals"]["Camera"]["Third Person"]["Toggle"]
["Enabled"] and Menu["Visuals"]["Camera"]["Third Person"]["Bind"]["Active"] then
args[1] = args[1] * newCframe(10000, 10000, 10000)
end
return oldNamecall(self, args[1])
end
elseif method == "LoadAnimation" then
if (Menu["Misc"]["Movement"]["Automatic Jump"]["Toggle"]
["Enabled"] and (Menu["Misc"]["Movement"]["Speed"]["Toggle"]["Enabled"] and
Menu["Misc"]["Movement"]["Speed"]["Bind"]["Active"])) or Menu["Rage"]["Anti Aim"]
["Slide Walk"]["Toggle"]["Enabled"] then
if string.match(args[1].Name, "Jump") then
args[1] = ragebot.fakeanimation
return oldNamecall(self, args[1])
end
end
elseif method == "InvokeServer" then
if self.Name == "Filter" and Menu["Misc"]["Extra"]["Uncensor
Chat"]["Toggle"]["Enabled"] then
return args[1]
elseif self.Name == "Hugh" then
if Menu["Misc"]["Exploits"]["Unlock Inventory"]["Toggle"]
["Enabled"] then
return
end
end
elseif method == "inverse" then
camRecoilAngle = self
end
do --ANCHOR fixes
local oldBulletHole = client.createbullethole
client.createbullethole = function(part, pos, bloodsplatter)
if pos ~= pos then
pos = emptyVec3
end
if Menu["Misc"]["Extra"]["Remove Bullet Holes"]["Toggle"]["Enabled"]
then
bloodsplatter = false
end
return oldBulletHole(part, pos, bloodsplatter)
end
local oldSplatter = client.splatterBlood
client.splatterBlood = function(origin, humanoid, dmg, startpos, pos)
if Menu["Misc"]["Extra"]["Remove Hit Effects"]["Toggle"] then
return
end
return oldSplatter(origin, humanoid, dmg, startpos, pos)
end
workspace.Debris.ChildAdded:Connect(function(child)
if child.Name == "Bullet" and Menu["Misc"]["Extra"]["Remove Bullet
Holes"]["Toggle"]["Enabled"] then
task.spawn(child.Destroy, child)
end
end)
do
local old = client.firebullet
client.firebullet = function(...)
if Menu.closed then
return old(...)
end
end
end
end
-- how about
-- dn
-- ?
--ANCHOR Exploits
do
-- Killall
exploits.killAll = {}
exploits.crashmessages = {
" SERVER LOCKED 🔒🔒🔒",
" SERVER LOCKED BY BLOXSENSE 🔒🔒🔒",
"☁️☁️☁️ SERVER SMOKED ☁️☁️☁️",
"☁️☁️☁️ SERVER SMOKED BY BLOXSENSE ☁️☁️☁️",
" SERVER CLOSED 🔒🔒🔒",
"👋👋👋 GOODBYE SERVER 👋👋👋",
"👋👋👋 GOODBYE 👋👋👋",
"🚨🚨🚨 SERVER GONE 🚨🚨🚨",
"🚨🚨🚨 SERVER LOCKED 🚨🚨🚨",
" SERVER SMOKED ",
" SERVER SMOKED BY BLOXSENSE ",
"😤😤😤 SERVER GONE 😤😤😤",
"⚠️ RIP SERVER ⚠️",
"😭Ahh~ Its so Hard~ Its time to pleasure Master~ 😭",
"🤤🤤 Its time to pleasure Master~",
"😝Time to milk master~ UwU~ 😝",
"🤤🤤 Do you like this Master?~ 🤤🤤",
"⚠️ SERVER CLOSED FOR MAINTENANCE ⚠️",
"SERVER CLOSED BY BLOXSENSE",
"🌱🌱 TIME TO TOUCH GRASS 🌱🌱",
"Master gives me milk all day you wanna come with me?~ 😉😉",
"⚠️ SERVER CLOSED UNTIL FURTHER NOTICE ⚠️",
"🔒🔒🔒🔒 SERVER LOCKED 🔒🔒🔒🔒",
"😭😭 NOOO DONT CRASH THE SERVER 😭😭",
"⚠️ SERVER CLOSED ⚠️",
"☁️☁️ SERVER JUST WENT UP IN SMOKE ☁️☁️",
"*POOF* SERVER GONE *POOF*",
"ඞ ඞ ඞ ඞ ඞ ඞ ඞ",
}
replicatedStorage.Events.DropMag:FireServer(pInfo.character.Gun.Mag)
end
end
end
end
if
localPlayer.Character:FindFirstChild("Gun"):FindFirstChild("Mag") then
for i = 1, 15 do
replicatedStorage.Events.DropMag:FireServer(localPlayer.Character.Gun.Mag)
end
end
end)
end
end]]
--Menu["Misc"]["Exploits"]["Crash Server"]
["Button"].Pressed:Connect(exploits.crashserver)
runService.Stepped:Connect(function()
if Menu["Misc"]["Extra"]["Kill All"]["Toggle"]["Enabled"] then
for i, v in next, players:GetPlayers() do
if v ~= localPlayer then
local pInfo = playerInfo.storage[v]
if pInfo and pInfo.alive and pInfo.head and
localPlayer.Character and pInfo.enemy then
alive = true
else
alive = false
end
}
if fullpower then -- ??? helps???
for i = 1, 200 do
args[1 + #args] = "`"
end
end
game.ReplicatedStorage.Events.UpdatePing:FireServer(-0)
hitPart:FireServer(
v.Character.HumanoidRootPart,
{X = 0/0, Y = 0/0, Z = 0/0},
"G3SG1",
0,
localPlayer.Character:FindFirstChild("Gun"),
nil,
4,
false,
false,
newVector3(),
0,
newVector3(),
false,
nil,
nil,
nil,
nil
)
--[[function exploits.plantc4()
if workspace.Map.Gamemode.Value == "defusal" and not
workspace:FindFirstChild("C4") and localPlayer.Status.Alive.Value then
UILibrary:EventLog("Planting the bomb...", 5)
ragebot.manualhrp = true
local connection = runService.Stepped:Connect(function()
ragebot.realhrp.CFrame =
workspace.Map.SpawnPoints.C4Plant.CFrame + newVector3(0, 1, 0)
ragebot.realhrp.Velocity = emptyVec3
end)
task.wait(0.25)
local plantedcf = Menu["Misc"]["Exploits"]["Plant Position"]
["Value"] == "Void" and CFrame.new(0/0, 0/0, 0/0) or Menu["Misc"]["Exploits"]
["Plant Position"]["Value"] == "Bombsite" and
workspace.Map.SpawnPoints.C4Plant.CFrame or Menu["Misc"]["Exploits"]["Plant
Position"]["Value"] == "Glitch" and ""
replicatedStorage.Events.PlantC4:FireServer(plantedcf, "B")
task.wait(0.25)
ragebot.manualhrp = false
connection:Disconnect()
else
UILibrary:EventLog("Cannot plant at this time", 5)
end
end
Menu["Misc"]["Exploits"]["Instant Plant"]
["Button"].Pressed:Connect(exploits.plantc4)
function exploits.defusec4()
if workspace.Map.Gamemode.Value == "defusal" and
workspace:FindFirstChild("C4") and localPlayer.Status.Alive.Value and
(workspace.C4.Handle.CFrame.p -
localPlayer.Character.HumanoidRootPart.Position).Magnitude < 290 then
UILibrary:EventLog("Defusing...", 5)
ragebot.manualhrp = true
local connection = runService.Stepped:Connect(function()
ragebot.realhrp.CFrame = workspace.C4.Handle.CFrame +
newVector3(0, 1, 0)
ragebot.realhrp.Velocity = emptyVec3
end)
task.wait(0.25)
localPlayer.Backpack.PressDefuse:FireServer(workspace.C4)
task.wait()
localPlayer.Backpack.Defuse:FireServer(workspace.C4)
task.wait(0.25)
ragebot.manualhrp = false
connection:Disconnect()
else
UILibrary:EventLog("Cannot defuse at this time", 5)
end
end
Menu["Misc"]["Exploits"]["Instant Defuse"]
["Button"].Pressed:Connect(exploits.defusec4)]]
-- Fake Equip
--[[function exploits.updateFakeEquip()
-- !
local isActive = Menu["Misc"]["Exploits"]["Fake Equip"]["Toggle"]
["Enabled"]
if isActive and localPlayer.Character then
-- Set fake gun (WHY DOES INTERGER DEFINE SHIT AFTER FFS)
local slot = Menu["Misc"]["Exploits"]["Fake Slot"]["Value"]
local fakeGunName = (slot == "C4" and "C4") or (slot ==
"Primary" and getupvalue(client.usethatgun, 13)) or (slot == "Secondary" and
getupvalue(client.usethatgun, 14)) or (slot == "Melee" and
getupvalue(client.usethatgun, 15)) -- sadly im pretty sure this upvalue shit is the
most reliable way to get the gun
local fakeGun = findFirstChild(replicatedStorage.Weapons,
fakeGunName)
-- Check if its ya
if fakeGun then
replicatedStorage.Events.ApplyGun:FireServer(fakeGun,
localPlayer)
end
end
end
Menu["Misc"]["Exploits"]["Fake Equip"]
["Toggle"].Changed:Connect(exploits.updateFakeEquip)
Menu["Misc"]["Exploits"]["Fake Slot"]
["Dropdown"].Changed:Connect(exploits.updateFakeEquip)
function exploits.god()
if localPlayer and localPlayer.Character then
if Menu["Misc"]["Exploits"]["God Mode Type"]["Value"] ==
"Hostage" then
if localPlayer.Character:FindFirstChild("Hostage") then
UILibrary:EventLog("You are already godded", 5)
else
local real =
replicatedStorage.Weapons:FindFirstChild(client.fgun.Name)
local fake = getprops(real)
for i, v in next, real:GetChildren() do
fake[v.Name] = v
end
fake.Model = replicatedStorage.Hostage.Hostage --
basically ur telling the game ur a hostage
replicatedStorage.Events.ApplyGun:FireServer(tostring(fake), localPlayer,
"this is funny")
replicatedStorage.Events.ApplyGun:FireServer(tostring(real), localPlayer,
"this is funny")
repeat
task.wait()
until localPlayer.Character:FindFirstChild("Hostage")
UILibrary:EventLog("You are godded and can kill
others", 5)
end
else
if localPlayer.Character.Humanoid.Health >= 0 then
replicatedStorage.Events.FallDamage:FireServer(0/0)
UILibrary:EventLog("You are godded but cannot kill
others", 5)
else
UILibrary:EventLog("You are already godded", 5)
end
end
else
UILibrary:EventLog("You are not alive", 5)
end
end
Menu["Misc"]["Exploits"]["God Mode"]["Button"].Pressed:Connect(exploits.god)
-- Faliure
UILibrary:EventLog("Unable to grab player", 5)
return false
end
function exploits.grabCharacter(character: Model): boolean
if Menu["Misc"]["Exploits"]["Action"]["Value"] == "Hold" then
-- Check if we are alive niggaaaaaaaaaaaa
if localPlayer.Character and
localPlayer.Character:FindFirstChild("Gun") then
-- Don't want to mistake this for the real fake
localPlayer.Character.Gun:Destroy()
UILibrary:EventLog("Grabbed " .. character.Name, 5)
else
-- Do it
UILibrary:EventLog("Unable to grab " .. character.Name, 5)
return
end
end
replicatedStorage.Events.DropMag:FireServer(localPlayer.Character.Gun)
task.wait(((50 + game.Stats.PerformanceStats.Ping:GetValue()) *
2) / 1000)
exploits.cloneInstance(workspace.Ray_Ignore)
localPlayer.Character.Gun:Destroy()
replicatedStorage.Events.ApplyGun:FireServer(client.fgun,
localPlayer)
end
-- Faliure
return
end
local function grabCallback()
-- El bruhino
local playerName = Menu["Misc"]["Exploits"]["Player in Focus"]["Value"]
local player = players:FindFirstChild(playerName)
if player and player ~= localPlayer then
if player.Character and
player.Character:FindFirstChild("UpperTorso") then
-- Grab that nn
exploits.grabCharacter(player.Character)
else
UILibrary:EventLog(player.Name .. " is not alive at this
time", 5)
end
else
UILibrary:EventLog("Cannot grab yourself", 5)
end
end
replicatedStorage.Events.PlaySound:FireServer(player.Character,
replicatedStorage.Hostage.Head)
elseif action == "Desync" then
replicatedStorage.Events.PlaySound:FireServer(player.Character,
player.Character.PrimaryPart)
end
else
UILibrary:EventLog(player.Name .. " is not alive at this time",
5)
end
end)
function exploits.blockvision()
if localPlayer.Character and
localPlayer.Character:FindFirstChild("HumanoidRootPart") then
for i, v in next, (players:GetPlayers()) do
if v ~= localPlayer and v.Character and
v.Character:FindFirstChild("HumanoidRootPart") then
local char = v.Character
replicatedStorage.Events.DropMag:FireServer(v2)
end
end
end
end
end
end
function exploits.kickeveryone()
local ragdollpiece
for i, v in next, (players:GetPlayers()) do
if v:FindFirstChild("Ragdoll") and
v.Ragdoll:FindFirstChild("Head") then
ragdollpiece = v.Ragdoll.Head
break
end
end
if ragdollpiece then
for i, v in next, (players:GetPlayers()) do
if v ~= localPlayer then
if v.Character and
v.Character:FindFirstChild("Humanoid") then
replicatedStorage.Events.PlaySound:FireServer(v.Character, ragdollpiece)
end
end
end
replicatedStorage.Events.PlaySound:FireServer(game.StarterPlayer.StarterCharacter,
ragdollpiece)
repeat
task.wait()
until game.StarterPlayer.StarterCharacter:FindFirstChild("Head")
UILibrary:EventLog("The next time someone will spawn, they will
be kicked", 5)
else
UILibrary:EventLog("Cannot kick everyone at this time", 5)
end
end
Menu["Misc"]["Exploits"]["Kick all players"]
["Button"].Pressed:Connect(exploits.kickeveryone) ]]
end
--ANCHOR settings
do
menusettings.oldaccent = MenuParameters.UIcolors.Accent
function menusettings.rgbtohsv(Color)
local color = Color3.new(Color.R, Color.G, Color.B)
local h, s, v = color:ToHSV()
return h, s, v
end
function menusettings.updatecheattext()
if Menu["Settings"]["Menu Settings"]["Custom Menu Name"]["Toggle"]
["Enabled"] == true then
Library.UI.CheatNameText.Text = Menu["Settings"]["Menu Settings"]
["Custom Menu Name Text"]["Value"]
Library.UI.Setwatermarkcheatname(Menu["Settings"]["Menu
Settings"]["Custom Menu Name Text"]["Value"])
else
Library.UI.Setwatermarkcheatname(MenuParameters.CheatName)
Library.UI.CheatNameText.Text = MenuParameters.CheatName
end
end
Menu["Settings"]["Menu Settings"]["Custom Menu Name"]
["Toggle"].Changed:Connect(menusettings.updatecheattext)
Menu["Settings"]["Menu Settings"]["Custom Menu Name
Text"].Changed:Connect(menusettings.updatecheattext)
function menusettings.updatecheataccent()
local newcolor = menusettings.oldaccent
if Menu["Settings"]["Menu Settings"]["Menu Accent"]["Toggle"]
["Enabled"] then
newcolor = Menu["Settings"]["Menu Settings"]["Menu Accent"]
["Color 1"]["Color"]
end
MenuParameters.UIcolors.Accent = newcolor
for cf, c in next, (Library.Accents) do
if c:IsA("UIGradient") then
local Hue, Sat, Val = menusettings.rgbtohsv(newcolor)
local color = newcolor
c.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHSV(Hue, Sat,
Val)),
ColorSequenceKeypoint.new(1,
Color3.fromRGB(math.clamp(color.R * 255 - 40, 0, 255), math.clamp(color.G * 255 -
40, 0, 255), math.clamp(color.B * 255 - 40, 0, 255)))
})
elseif c:IsA("TextButton") and c.TextColor3 ~=
MenuParameters.UIcolors.FullWhite then
c.TextColor3 = newcolor
else
if c.BackgroundColor3 ~= MenuParameters.UIcolors.ColorD
then
c.BackgroundColor3 = newcolor
end
end
end
end
cameraTasks.onCameraAdded()
env.Hack.mathModule = mathModule
env.Hack.timer = timer
env.Hack.trajectory = trajectory
env.Hack.ragebot = ragebot
env.Hack.legitbot = legitbot
env.Hack.misc = misc
env.Hack.visuals = visuals
env.Hack.movement = movement
env.Hack.playerInfo = playerInfo
env.Hack.raycastUtils = raycastUtils
-- this was made when you could inline the drawing lib in synapse, since
thats no longer a thing, these functions stayed
local function SetDrawing(obj, prop, val)
obj[prop] = val
end
for i, v in next, ({"Network Send: ", "Network Recieve: ", "FPS: ", "Tick: ",
"Memory Usage: ", "Status: ", "Connected"}) do
local Txt = visuals.createDrawing("Text", {["Size"] = 13, ["Center"] =
false, ["Outline"] = true, ["Font"] = Drawing.Fonts.Plex, ["Color"] =
Color3.fromRGB(255, 255, 255), ["Visible"] = true, ["Text"] = v})
debugText[v] = Txt
Txt.Position = Vector2.zero
if v ~= "Connected" then
SetDrawing(Txt, "Position", newVector2(8, (camera.ViewportSize.Y
* 0.25) + (i * 15)))
else
SetDrawing(Txt, "Position",
newVector2(GetDrawing(debugText["Status: "], "Position").X +
GetDrawing(debugText["Status: "], "TextBounds").X, GetDrawing(debugText["Status:
"], "Position").Y))
end
end
local RefreshTick = tick()
local FpsCount = 0
local OldIncoming
runService.RenderStepped:Connect(function(Time)
for i, v in next, (debugText) do
SetDrawing(v, "Visible", Menu["Settings"]["Menu Settings"]["Show
Debug Info"]["Toggle"]["Enabled"])
end
FpsCount = FpsCount + 1
if tick() - RefreshTick > 1 then
local outgoing =
game.Stats.PerformanceStats.NetworkSent:GetValue()
local incoming =
game.Stats.PerformanceStats.NetworkReceived:GetValue()
-- Text
SetDrawing(debugText["Memory Usage: "], "Text", "Memory Usage:
" .. math.floor(game.Stats.GetTotalMemoryUsageMb(game.Stats) + 0.5) .. " Mb")
SetDrawing(debugText["Network Send: "], "Text", "Network Send:
" .. math.floor(outgoing + 0.5) .. " kbps")
SetDrawing(debugText["Network Recieve: "], "Text", "Network
Recieve: " .. math.floor(incoming + 0.5) .. " kbps")
SetDrawing(debugText["FPS: "], "Text", "FPS: " .. FpsCount)
SetDrawing(debugText["Tick: "], "Text", "Tick: " ..
math.floor(tick() + 0.5))
-- Colorz
if outgoing > 64 then
SetDrawing(debugText["Network Send: "], "Color",
Color3.fromRGB(255, 0, 0))
else
SetDrawing(debugText["Network Send: "], "Color",
Color3.fromRGB(255, 255, 255))
end
if incoming < 1 then
SetDrawing(debugText["Network Recieve: "], "Color",
Color3.fromRGB(255, 0, 0))
else
SetDrawing(debugText["Network Recieve: "], "Color",
Color3.fromRGB(255, 255, 255))
end
if incoming == OldIncoming then
SetDrawing(debugText["Connected"], "Text", "Disconnected")
SetDrawing(debugText["Connected"], "Color", Color3.new(255,
0, 0))
else
SetDrawing(debugText["Connected"], "Text", "Connected")
SetDrawing(debugText["Connected"], "Color", Color3.new(0,
255, 0))
end
FpsCount = 0
OldIncoming = incoming
RefreshTick = tick()
end
end)
end
Library.UI:EventLog(string.format("Loaded in %s second(s)!",
tostring(mathModule.truncateNumber(os.clock() - cheatLoadingStartTick, 3))), 5)
UILibrary:Initialize()
Library.UI:EventLog("Press INSERT or DELETE to open / close the Menu!", 5)
Menu["Settings"]["Menu Settings"]["Watermark"]["Toggle"]["Enabled"] = true
Menu["Settings"]["Menu Settings"]["Keybinds"]["Toggle"]["Enabled"] = false
do
for i, v in next, (listfiles("bloxsense/bloxsense_auto_exec")) do
local success, err = pcall(function()
coroutine.wrap(function()
loadstring(readfile(v))()
end)()
end)
if not success then
Library.UI:EventLog("Failed to auto loaded script" .. v, 5)
else
Library.UI:EventLog("Auto loaded script" .. v, 5)
end
end
end