Run it
Copy the script and paste it into your executor.
Players = :()
UserInputService = :()
TweenService = :()
RunService = :()
CoreGui = :()
HttpService = :()
LocalPlayer = Players.LocalPlayer
Mouse = LocalPlayer:()
Camera = .CurrentCamera
OpenedDropdown =
LastMouseBehavior = .MouseBehavior.Default
LastMouseIconEnabled =
UI_Elements = {
Toggles = {},
Sliders = {},
Keys = {},
ESPToggles = {},
ESPSizeToggles = {},
PlayerActions = {}
}
ESPStates = {
Survivor = {
Chams = {Enabled = , Color = .(), Outline = .(,,)},
Skeleton = {Enabled = , Color = .(), Outline = .(,,)},
Names = {Enabled = , Color = .(), Outline = .(,,), Size = },
Distance = {Enabled = , Color = .(), Outline = .(,,), Size = }
},
Killer = {
Chams = {Enabled = , Color = .(), Outline = .(,,)},
Skeleton = {Enabled = , Color = .(), Outline = .(,,)},
Names = {Enabled = , Color = .(), Outline = .(,,), Size = },
Distance = {Enabled = , Color = .(), Outline = .(,,), Size = },
Killerlight = {Enabled = , Color = .(), Outline = .(,,)}
},
Objects = {
Chests = {Enabled = , Color = .(), Outline = .(,,)},
Hatch = {Enabled = , Color = .(), Outline = .(,,)},
Lockers = {Enabled = , Color = .(), Outline = .(,,)},
Hooks = {Enabled = , Color = .(), Outline = .(,,)},
Pallets = {Enabled = , Color = .(), Outline = .(,,)},
Windows = {Enabled = , Color = .(), Outline = .(,,)},
Exits = {Enabled = , Color = .(), Outline = .(,,)},
Totems = {Enabled = , Color = .(), Outline = .(,,)},
Generators = {Enabled = , Color = .(), Outline = .(,,)},
GeneratorsProgress = {Enabled = }
}
}
MiscStates = {
FOVChanger = {Enabled = , Value = },
AspectRatioChanger = {Enabled = , Value = },
FreeCamera = {Enabled = },
FlashProgress = {Enabled = },
InfItemCharges = {Enabled = },
OutfitChanger = {Enabled = },
ScratchMarks = {Enabled = , Color = .(, , )}
}
ScratchMarksModule = {
Connection = ,
Folder = ,
LastTick =
}
ESPModules = {
Survivor = {
Chams = {Highlights = {}},
Skeleton = {Lines = {}, Connection = },
Names = {Labels = {}, Connection = },
Distance = {Labels = {}, Connection = }
},
Killer = {
Chams = {Highlights = {}},
Skeleton = {Lines = {}, Connection = },
Names = {Labels = {}, Connection = },
Distance = {Labels = {}, Connection = },
Killerlight = {Connection = }
},
Objects = {
Chests = {Highlights = {}},
Hatch = {Highlights = {}},
Lockers = {Highlights = {}},
Hooks = {Highlights = {}},
Pallets = {Highlights = {}},
Windows = {Highlights = {}},
Exits = {Highlights = {}},
Totems = {Highlights = {}},
Generators = {Highlights = {}},
GeneratorsProgress = {Billboards = {}, Connection = }
}
}
Theme = {
Background = .(, , ),
Sidebar = .(, , ),
Panel = .(, , ),
Accent = .(, , ),
Text = .(, , ),
SubText = .(, , ),
Input = .(, , ),
Divider = .(, , )
}
RageModules = {
BlockHooks = {Connection = },
FinishGens = {Connection = },
GateNeverOpen = {Connection = },
NeverFinishGens = {Connection = },
LungeDuration = {Connection = , Value = }
}
(className, props, children)
inst = .(className)
k, v (props {}) inst[k] = v
children
_, child (children) child.Parent = inst
inst
(dragObj, moveObj)
dragging, dragInput, dragStart, startPos
dragObj.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
dragging =
dragStart = input.Position
startPos = moveObj.Position
input.Changed:(()
input.UserInputState == .UserInputState.End dragging =
)
)
dragObj.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement dragInput = input
)
UserInputService.InputChanged:((input)
input == dragInput dragging
delta = input.Position - dragStart
moveObj.Position = .(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
)
(player)
player.Team
teamName = player.Team.Name
teamName:():()
teamName:():()
role = player:() player:()
role
role = (role):()
role:()
role:()
(hex)
hex = hex:(, )
#hex ==
r, g, b = (hex:(, ), ), (hex:(, ), ), (hex:(, ), )
r g b .(r, g, b)
KeyShortcuts = {
[] = , [] = ,
[] = , [] = ,
[] = , [] = ,
[] = , [] = ,
[] = , [] = ,
[] = , [] = ,
[] = , [] = ,
[] = , [] = ,
[] = , [] = , [] = , [] = ,
[] = , [] = , [] = , [] = ,
[] = , [] =
}
(keyCode)
keyCode keyCode == .KeyCode.Unknown
KeyShortcuts[keyCode.Name] keyCode.Name
(enabled, color, outlineColor)
_, highlight (ESPModules.Killer.Chams.Highlights)
highlight highlight.Parent
highlight:()
ESPModules.Killer.Chams.Highlights = {}
enabled
_, player (Players:())
player ~= LocalPlayer player.Character
character = player.Character
(player) ==
highlight = .()
highlight.Name =
highlight.Adornee = character
highlight.FillColor = color
highlight.OutlineColor = outlineColor
highlight.FillTransparency =
highlight.OutlineTransparency =
highlight.DepthMode = .HighlightDepthMode.AlwaysOnTop
highlight.Parent = character
.(ESPModules.Killer.Chams.Highlights, highlight)
(enabled, color, outlineColor)
_, highlight (ESPModules.Survivor.Chams.Highlights)
highlight highlight.Parent
highlight:()
ESPModules.Survivor.Chams.Highlights = {}
enabled
_, player (Players:())
player ~= LocalPlayer player.Character
character = player.Character
(player) ==
highlight = .()
highlight.Name =
highlight.Adornee = character
highlight.FillColor = color
highlight.OutlineColor = outlineColor
highlight.FillTransparency =
highlight.OutlineTransparency =
highlight.DepthMode = .HighlightDepthMode.AlwaysOnTop
highlight.Parent = character
.(ESPModules.Survivor.Chams.Highlights, highlight)
(enabled, color, outlineColor)
ESPModules.Killer.Skeleton.Connection
ESPModules.Killer.Skeleton.Connection:()
ESPModules.Killer.Skeleton.Connection =
_, line (ESPModules.Killer.Skeleton.Lines)
line line:()
ESPModules.Killer.Skeleton.Lines = {}
enabled
screenGui = .()
screenGui.Name =
screenGui.IgnoreGuiInset =
screenGui.ResetOnSpawn =
screenGui.Parent = LocalPlayer:()
R15_STRUCTURE = {
{, },
{, },
{, }, {, }, {, },
{, }, {, }, {, },
{, }, {, }, {, },
{, }, {, }, {, }
}
ESPModules.Killer.Skeleton.Connection = RunService.RenderStepped:(()
_, player (Players:())
player ~= LocalPlayer player.Character
char = player.Character
hum = char:()
hum hum.Health > (player) ==
i, connection (R15_STRUCTURE)
partA = char:(connection[])
partB = char:(connection[])
partA partB
posA, visA = .CurrentCamera:(partA.Position)
posB, visB = .CurrentCamera:(partB.Position)
visA visB
line = ESPModules.Killer.Skeleton.Lines[player.Name .. i]
line
line = .()
line.Name =
line.BackgroundColor3 = color
line.BorderSizePixel =
line.AnchorPoint = .(, )
line.Parent = screenGui
ESPModules.Killer.Skeleton.Lines[player.Name .. i] = line
start2d = .(posA.X, posA.Y)
end2d = .(posB.X, posB.Y)
diff = end2d - start2d
line.Size = .(, diff.Magnitude, , )
line.Position = .(, start2d.X + (diff.X / ), , start2d.Y + (diff.Y / ))
line.Rotation = .(.(diff.Y, diff.X))
line.Visible =
line = ESPModules.Killer.Skeleton.Lines[player.Name .. i]
line
line.Visible =
line = ESPModules.Killer.Skeleton.Lines[player.Name .. i]
line
line.Visible =
i = , #R15_STRUCTURE
line = ESPModules.Killer.Skeleton.Lines[player.Name .. i]
line
line.Visible =
i = , #R15_STRUCTURE
line = ESPModules.Killer.Skeleton.Lines[player.Name .. i]
line
line.Visible =
)
(enabled, color, outlineColor)
ESPModules.Survivor.Skeleton.Connection
ESPModules.Survivor.Skeleton.Connection:()
ESPModules.Survivor.Skeleton.Connection =
_, line (ESPModules.Survivor.Skeleton.Lines)
line line:()
ESPModules.Survivor.Skeleton.Lines = {}
enabled
screenGui = .()
screenGui.Name =
screenGui.IgnoreGuiInset =
screenGui.ResetOnSpawn =
screenGui.Parent = LocalPlayer:()
R15_STRUCTURE = {
{, },
{, },
{, }, {, }, {, },
{, }, {, }, {, },
{, }, {, }, {, },
{, }, {, }, {, }
}
ESPModules.Survivor.Skeleton.Connection = RunService.RenderStepped:(()
_, player (Players:())
player ~= LocalPlayer player.Character
char = player.Character
hum = char:()
hum hum.Health > (player) ==
i, connection (R15_STRUCTURE)
partA = char:(connection[])
partB = char:(connection[])
partA partB
posA, visA = .CurrentCamera:(partA.Position)
posB, visB = .CurrentCamera:(partB.Position)
visA visB
line = ESPModules.Survivor.Skeleton.Lines[player.Name .. i]
line
line = .()
line.Name =
line.BackgroundColor3 = color
line.BorderSizePixel =
line.AnchorPoint = .(, )
line.Parent = screenGui
ESPModules.Survivor.Skeleton.Lines[player.Name .. i] = line
start2d = .(posA.X, posA.Y)
end2d = .(posB.X, posB.Y)
diff = end2d - start2d
line.Size = .(, diff.Magnitude, , )
line.Position = .(, start2d.X + (diff.X / ), , start2d.Y + (diff.Y / ))
line.Rotation = .(.(diff.Y, diff.X))
line.Visible =
line = ESPModules.Survivor.Skeleton.Lines[player.Name .. i]
line
line.Visible =
line = ESPModules.Survivor.Skeleton.Lines[player.Name .. i]
line
line.Visible =
i = , #R15_STRUCTURE
line = ESPModules.Survivor.Skeleton.Lines[player.Name .. i]
line
line.Visible =
i = , #R15_STRUCTURE
line = ESPModules.Survivor.Skeleton.Lines[player.Name .. i]
line
line.Visible =
)
(enabled, color, outlineColor, size)
ESPModules.Killer.Names.Connection
ESPModules.Killer.Names.Connection:()
ESPModules.Killer.Names.Connection =
_, label (ESPModules.Killer.Names.Labels)
label label:()
ESPModules.Killer.Names.Labels = {}
enabled
screenGui = .()
screenGui.Name =
screenGui.IgnoreGuiInset =
screenGui.ResetOnSpawn =
screenGui.Parent = LocalPlayer:()
textSize =
size ~= (size) ==
textSize = .(size, , )
ESPModules.Killer.Names.Connection = RunService.RenderStepped:(()
activePlayers = {}
_, player (Players:())
activePlayers[player] =
player, label (ESPModules.Killer.Names.Labels)
activePlayers[player] label
label:()
ESPModules.Killer.Names.Labels[player] =
_, player (Players:())
player ~= LocalPlayer player.Character LocalPlayer.Character
character = player.Character
head = character:()
humanoid = character:()
localHrp = LocalPlayer.Character:()
head humanoid humanoid.Health > localHrp (player) ==
label = ESPModules.Killer.Names.Labels[player]
label
label = .()
label.Name = .. player.Name
label.Parent = screenGui
label.BackgroundTransparency =
label.Size = .(, , , )
label.TextColor3 = color
label.Font = .Font.RobotoMono
label.TextSize = textSize
label.TextStrokeColor3 = outlineColor
label.TextStrokeTransparency =
label.Text = player.Name
ESPModules.Killer.Names.Labels[player] = label
namePosition = head.Position + .(, , )
vector, onScreen = .CurrentCamera:(namePosition)
onScreen
label.Position = .(, vector.X - , , vector.Y)
label.Visible =
label.Visible =
ESPModules.Killer.Names.Labels[player]
ESPModules.Killer.Names.Labels[player].Visible =
ESPModules.Killer.Names.Labels[player]
ESPModules.Killer.Names.Labels[player].Visible =
)
(enabled, color, outlineColor, size)
ESPModules.Survivor.Names.Connection
ESPModules.Survivor.Names.Connection:()
ESPModules.Survivor.Names.Connection =
_, label (ESPModules.Survivor.Names.Labels)
label label:()
ESPModules.Survivor.Names.Labels = {}
enabled
screenGui = .()
screenGui.Name =
screenGui.IgnoreGuiInset =
screenGui.ResetOnSpawn =
screenGui.Parent = LocalPlayer:()
textSize =
size ~= (size) ==
textSize = .(size, , )
ESPModules.Survivor.Names.Connection = RunService.RenderStepped:(()
activePlayers = {}
_, player (Players:())
activePlayers[player] =
player, label (ESPModules.Survivor.Names.Labels)
activePlayers[player] label
label:()
ESPModules.Survivor.Names.Labels[player] =
_, player (Players:())
player ~= LocalPlayer player.Character LocalPlayer.Character
character = player.Character
head = character:()
humanoid = character:()
localHrp = LocalPlayer.Character:()
head humanoid humanoid.Health > localHrp (player) ==
label = ESPModules.Survivor.Names.Labels[player]
label
label = .()
label.Name = .. player.Name
label.Parent = screenGui
label.BackgroundTransparency =
label.Size = .(, , , )
label.TextColor3 = color
label.Font = .Font.RobotoMono
label.TextSize = textSize
label.TextStrokeColor3 = outlineColor
label.TextStrokeTransparency =
label.Text = player.Name
ESPModules.Survivor.Names.Labels[player] = label
namePosition = head.Position + .(, , )
vector, onScreen = .CurrentCamera:(namePosition)
onScreen
label.Position = .(, vector.X - , , vector.Y)
label.Visible =
label.Visible =
ESPModules.Survivor.Names.Labels[player]
ESPModules.Survivor.Names.Labels[player].Visible =
ESPModules.Survivor.Names.Labels[player]
ESPModules.Survivor.Names.Labels[player].Visible =
)
(enabled, color, outlineColor, size)
ESPModules.Killer.Distance.Connection
ESPModules.Killer.Distance.Connection:()
ESPModules.Killer.Distance.Connection =
_, label (ESPModules.Killer.Distance.Labels)
label label:()
ESPModules.Killer.Distance.Labels = {}
enabled
screenGui = .()
screenGui.Name =
screenGui.IgnoreGuiInset =
screenGui.ResetOnSpawn =
screenGui.Parent = LocalPlayer:()
textSize =
size ~= (size) ==
textSize = .(size, , )
ESPModules.Killer.Distance.Connection = RunService.RenderStepped:(()
activePlayers = {}
_, player (Players:())
activePlayers[player] =
player, label (ESPModules.Killer.Distance.Labels)
activePlayers[player] label
label:()
ESPModules.Killer.Distance.Labels[player] =
_, player (Players:())
player ~= LocalPlayer player.Character LocalPlayer.Character
character = player.Character
humanoid = character:()
hrp = character:()
localHrp = LocalPlayer.Character:()
hrp humanoid humanoid.Health > localHrp (player) ==
label = ESPModules.Killer.Distance.Labels[player]
label
label = .()
label.Name = .. player.Name
label.Parent = screenGui
label.BackgroundTransparency =
label.Size = .(, , , )
label.TextColor3 = color
label.Font = .Font.RobotoMono
label.TextSize = textSize
label.TextStrokeColor3 = outlineColor
label.TextStrokeTransparency =
ESPModules.Killer.Distance.Labels[player] = label
footPosition = hrp.Position - .(, , )
vector, onScreen = .CurrentCamera:(footPosition)
onScreen
distanceStuds = (hrp.Position - localHrp.Position).Magnitude
distanceMeters = .(distanceStuds / )
label.Text = distanceMeters ..
label.Position = .(, vector.X - , , vector.Y)
label.Visible =
label.Visible =
ESPModules.Killer.Distance.Labels[player]
ESPModules.Killer.Distance.Labels[player].Visible =
ESPModules.Killer.Distance.Labels[player]
ESPModules.Killer.Distance.Labels[player].Visible =
)
(enabled, color, outlineColor, size)
ESPModules.Survivor.Distance.Connection
ESPModules.Survivor.Distance.Connection:()
ESPModules.Survivor.Distance.Connection =
_, label (ESPModules.Survivor.Distance.Labels)
label label:()
ESPModules.Survivor.Distance.Labels = {}
enabled
screenGui = .()
screenGui.Name =
screenGui.IgnoreGuiInset =
screenGui.ResetOnSpawn =
screenGui.Parent = LocalPlayer:()
textSize =
size ~= (size) ==
textSize = .(size, , )
ESPModules.Survivor.Distance.Connection = RunService.RenderStepped:(()
activePlayers = {}
_, player (Players:())
activePlayers[player] =
player, label (ESPModules.Survivor.Distance.Labels)
activePlayers[player] label
label:()
ESPModules.Survivor.Distance.Labels[player] =
_, player (Players:())
player ~= LocalPlayer player.Character LocalPlayer.Character
character = player.Character
humanoid = character:()
hrp = character:()
localHrp = LocalPlayer.Character:()
hrp humanoid humanoid.Health > localHrp (player) ==
label = ESPModules.Survivor.Distance.Labels[player]
label
label = .()
label.Name = .. player.Name
label.Parent = screenGui
label.BackgroundTransparency =
label.Size = .(, , , )
label.TextColor3 = color
label.Font = .Font.RobotoMono
label.TextSize = textSize
label.TextStrokeColor3 = outlineColor
label.TextStrokeTransparency =
ESPModules.Survivor.Distance.Labels[player] = label
footPosition = hrp.Position - .(, , )
vector, onScreen = .CurrentCamera:(footPosition)
onScreen
distanceStuds = (hrp.Position - localHrp.Position).Magnitude
distanceMeters = .(distanceStuds / )
label.Text = distanceMeters ..
label.Position = .(, vector.X - , , vector.Y)
label.Visible =
label.Visible =
ESPModules.Survivor.Distance.Labels[player]
ESPModules.Survivor.Distance.Labels[player].Visible =
ESPModules.Survivor.Distance.Labels[player]
ESPModules.Survivor.Distance.Labels[player].Visible =
)
(enabled, color, outlineColor)
ESPModules.Killer.Killerlight.Connection
ESPModules.Killer.Killerlight.Connection:()
ESPModules.Killer.Killerlight.Connection =
enabled
ESPModules.Killer.Killerlight.Connection = RunService.Heartbeat:(()
beamsFolder = :()
beamsFolder
_, part (beamsFolder:())
part:() .(part.Name:(), )
part.Color = color
_, player (Players:())
character = player.Character
character character:()
head = character.Head
_, child (head:())
child:() .(child.Name:(), )
child.Color = color
)
(objectType, enabled, color, outlineColor)
ESPModules.Objects[objectType] ESPModules.Objects[objectType].Highlights
_, highlight (ESPModules.Objects[objectType].Highlights)
highlight highlight.Parent
highlight:()
ESPModules.Objects[objectType].Highlights = {}
enabled
baseNames = {
Chests = ,
Hatch = ,
Lockers = ,
Hooks = ,
Pallets = ,
Windows = ,
Exits = ,
Totems = ,
Generators =
}
exactMatch = {
Chests = ,
Hatch = ,
Lockers = ,
Hooks = ,
Pallets = ,
Windows = ,
Exits = ,
Totems = ,
Generators =
}
baseName = baseNames[objectType]
baseName
_, descendant (:())
descendant:() descendant:()
name = descendant.Name
match =
exactMatch[objectType]
name == baseName
match =
.(name, baseName) ==
match =
match
highlight = .()
highlight.Name = objectType ..
highlight.Adornee = descendant
highlight.FillColor = color
highlight.OutlineColor = outlineColor
highlight.FillTransparency =
highlight.OutlineTransparency =
highlight.DepthMode = .HighlightDepthMode.AlwaysOnTop
highlight.Parent = descendant
.(ESPModules.Objects[objectType].Highlights, highlight)
(enabled)
ESPModules.Objects.GeneratorsProgress.Connection
ESPModules.Objects.GeneratorsProgress.Connection:()
ESPModules.Objects.GeneratorsProgress.Connection =
_, billboard (ESPModules.Objects.GeneratorsProgress.Billboards)
billboard billboard.Parent
billboard:()
ESPModules.Objects.GeneratorsProgress.Billboards = {}
ESPModules.Objects.GeneratorsProgress.ScreenGui
ESPModules.Objects.GeneratorsProgress.ScreenGui:()
ESPModules.Objects.GeneratorsProgress.ScreenGui =
enabled
screenGui = .()
screenGui.Name =
screenGui.IgnoreGuiInset =
screenGui.ResetOnSpawn =
screenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
screenGui.Parent = LocalPlayer:()
(generator)
generator generator.Parent
attrName, attrValue (generator:())
(attrValue) ==
attrLower = attrName:()
attrLower:() attrLower:() attrLower:()
value = attrValue
value <= value >=
.((value / ) * )
value <= value >=
.(value)
_, child (generator:())
(child:() child:() child:())
childName = child.Name:()
childName:() childName:()
value = (child.Value)
value <= value >=
.((value / ) * )
value <= value >=
.(value)
generators = {}
_, descendant (:())
descendant:() .(descendant.Name:(), )
.(generators, descendant)
(generator)
generator .(, , )
head = generator:()
head head.Position
panel = generator:()
panel panel:() panel.Position
primaryPart = generator.PrimaryPart
primaryPart primaryPart.Position
_, child (generator:())
child:()
child.Position
generator:().Position
(generator)
generator
label = .()
label.Name = .. generator.Name
label.BackgroundTransparency =
label.Size = .(, , , )
label.Text =
label.TextColor3 = .(, , )
label.TextStrokeColor3 = .(, , )
label.TextStrokeTransparency =
label.TextSize =
label.Font = .Font.GothamSemibold
label.Visible =
label.Parent = screenGui
ESPModules.Objects.GeneratorsProgress.Billboards[generator] = label
label
_, generator (generators)
generator generator.Parent
(generator)
ESPModules.Objects.GeneratorsProgress.Connection = RunService.RenderStepped:(()
generator, label (ESPModules.Objects.GeneratorsProgress.Billboards)
generator generator.Parent label label.Parent
progress = (generator)
position = (generator)
camera = .CurrentCamera
screenPoint, onScreen = camera:(position + .(, , ))
onScreen
label.Position = .(, screenPoint.X - , , screenPoint.Y)
label.Text = (progress) ..
progress ==
label.TextColor3 = .(, , )
progress <
label.TextColor3 = .(, , )
progress <
label.TextColor3 = .(, , )
progress <
label.TextColor3 = .(, , )
label.TextColor3 = .(, , )
label.Visible =
label.Visible =
label
label:()
ESPModules.Objects.GeneratorsProgress.Billboards[generator] =
)
ESPModules.Objects.GeneratorsProgress.ScreenGui = screenGui
(enabled)
RageModules.BlockHooks.Connection
RageModules.BlockHooks.Connection:()
RageModules.BlockHooks.Connection =
enabled
RemoteStorage = :():()
Cheat = RemoteStorage:()
(TYPE, VALUE1, VALUE2)
tablev = {}
List = {, , , , }
TYPE = .(TYPE)
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE == TYPE ==
VALUE2 =
TYPE =
Packaged = {
[] = TYPE;
[] = VALUE1;
[] = VALUE2;
}
_,key (List)
tablev[key] = Packaged
Cheat:(tablev)
RageModules.BlockHooks.Connection = :().RenderStepped:(()
i, Objs (:())
Objs:() (.(Objs.Name, ) .(Objs.Name, ) .(Objs.Name,) (Objs:() ~= ))
.(Objs.Name, )
(,Objs[][],)
(,Objs[][],)
)
(enabled)
RageModules.FinishGens.Connection
RageModules.FinishGens.Connection:()
RageModules.FinishGens.Connection =
enabled
RemoteStorage = :():()
Cheat = RemoteStorage:()
(TYPE, VALUE1, VALUE2)
tablev = {}
List = {, , , , }
TYPE = .(TYPE)
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE == TYPE ==
VALUE2 =
TYPE =
Packaged = {
[] = TYPE;
[] = VALUE1;
[] = VALUE2;
}
_,key (List)
tablev[key] = Packaged
Cheat:(tablev)
RageModules.FinishGens.Connection = :().RenderStepped:(()
i, Objs (:())
Objs:() (.(Objs.Name, ) .(Objs.Name, ) .(Objs.Name,) (Objs:() ~= ))
.(Objs.Name, )
(,Objs[][],)
)
(enabled)
RageModules.GateNeverOpen.Connection
RageModules.GateNeverOpen.Connection:()
RageModules.GateNeverOpen.Connection =
enabled
RemoteStorage = :():()
Cheat = RemoteStorage:()
(TYPE, VALUE1, VALUE2)
tablev = {}
List = {, , , , }
TYPE = .(TYPE)
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE == TYPE ==
VALUE2 =
TYPE =
Packaged = {
[] = TYPE;
[] = VALUE1;
[] = VALUE2;
}
_,key (List)
tablev[key] = Packaged
Cheat:(tablev)
RageModules.GateNeverOpen.Connection = :().RenderStepped:(()
i, Objs (:())
Objs:() (.(Objs.Name, ) .(Objs.Name, ) .(Objs.Name,) (Objs:() ~= ))
.(Objs.Name, )
(,Objs[][],)
)
(enabled)
RageModules.NeverFinishGens.Connection
RageModules.NeverFinishGens.Connection:()
RageModules.NeverFinishGens.Connection =
enabled
RemoteStorage = :():()
Cheat = RemoteStorage:()
(TYPE, VALUE1, VALUE2)
tablev = {}
List = {, , , , }
TYPE = .(TYPE)
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE ==
TYPE =
TYPE == TYPE ==
VALUE2 =
TYPE =
Packaged = {
[] = TYPE;
[] = VALUE1;
[] = VALUE2;
}
_,key (List)
tablev[key] = Packaged
Cheat:(tablev)
RageModules.NeverFinishGens.Connection = :().RenderStepped:(()
i, Objs (:())
Objs:() (.(Objs.Name, ) .(Objs.Name, ) .(Objs.Name,) (Objs:() ~= ))
.(Objs.Name, )
(,Objs[][],)
)
(enabled, value)
RageModules.LungeDuration.Connection
RageModules.LungeDuration.Connection:()
RageModules.LungeDuration.Connection =
RageModules.LungeDuration.Value = value
enabled
playerName = LocalPlayer.Name
RageModules.LungeDuration.Connection = :().Heartbeat:(()
success, result = (()
ugc = :() :():() :()
playersObj = ugc:() (ugc.ClassName == ugc)
playersObj
playerObj = playersObj:(playerName)
playerObj
playerValues = playerObj:()
playerValues
playerValues:(, RageModules.LungeDuration.Value)
)
)
(player)
(player) ==
_, p (player)
p p ~= LocalPlayer p.Character
.ReplicatedStorage:():():(p)
player player ~= LocalPlayer player.Character
.ReplicatedStorage:():():(player)
flyEnabled =
flyConnection, noclipConnection
()
flyEnabled = flyEnabled
character = LocalPlayer.Character
character
humanoid = character:()
root = character:()
flyEnabled
humanoid humanoid.PlatformStand =
root root.Velocity = .(, , )
flyConnection = :().Heartbeat:(()
flyEnabled LocalPlayer.Character
root = LocalPlayer.Character:()
camera = .CurrentCamera
root camera
forward = camera.CFrame.LookVector
right = camera.CFrame.RightVector
up = .(, , )
direction = .(, , )
speed =
UserInputService:(.KeyCode.W) direction = direction + forward
UserInputService:(.KeyCode.S) direction = direction - forward
UserInputService:(.KeyCode.D) direction = direction + right
UserInputService:(.KeyCode.A) direction = direction - right
UserInputService:(.KeyCode.Space) direction = direction + up
UserInputService:(.KeyCode.LeftControl) direction = direction - up
direction.Magnitude >
direction = direction.Unit * speed
root.Velocity = direction
root.Velocity = .(, , )
)
flyConnection flyConnection:() flyConnection =
humanoid humanoid.PlatformStand =
root root.Velocity = .(, , )
noclipEnabled =
noclipConnection =
()
noclipEnabled = noclipEnabled
noclipConnection
noclipConnection:()
noclipConnection =
noclipEnabled
noclipConnection = :().Stepped:(()
character = LocalPlayer.Character
character
_, part (character:())
part:()
part.CanCollide =
part.CanTouch =
part.CanQuery =
(() part.CollisionGroupId = )
for _, obj in ipairs(workspace:GetChildren()) do
if obj:IsA("BasePart") and (obj.Position - character:GetPivot().Position).Magnitude < 50 then
obj.CanCollide = false
obj.CanTouch = false
end
end
end
end)
end
end
--// Функция для Stun Killer (исправленная - применяется при каждом нажатии бинда)
local stunKillerEnabled = false
local stunKillerConnection = nil
local function applyStunKillerNow()
if not stunKillerEnabled then return end
local RemoteStorage = game:GetService('ReplicatedStorage'):WaitForChild('RemoteEvents')
local Cheat = RemoteStorage:WaitForChild('NewPropertie')
local function Obfuscate(TYPE, VALUE1, VALUE2)
local tablev = {}
local List = {"Bbh1O", "D9v8", "Dbh1O", "Dvh1O", "Dhv8"}
TYPE = string.lower(TYPE)
if TYPE == 'string' then
TYPE = 'S101'
elseif TYPE == 'object' then
TYPE = 'O101'
elseif TYPE == 'number' then
TYPE = 'I101'
elseif TYPE == 'bool' then
TYPE = 'B101'
elseif TYPE == "destroy" or TYPE == "REMOVE" then
VALUE2 = nil
TYPE = "D101"
end
local Packaged = {
['C22'] = TYPE;
['C21'] = VALUE1;
['C20'] = VALUE2;
}
for _,key in pairs(List) do
tablev[key] = Packaged
end
Cheat:FireServer(tablev)
end
-- Станим всех убийц
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
local isKiller = false
-- Проверяем команду разными способами
if player.Team and player.Team.Name:lower():find("killer") then
isKiller = true
else
local role = player:GetAttribute("Role") or player:GetAttribute("Team")
if role and tostring(role):lower():find("killer") then
isKiller = true
end
end
if isKiller then
-- Ищем объекты с дополнительными проверками
local backpack = player:FindFirstChild("Backpack")
if backpack then
local scripts = backpack:FindFirstChild("Scripts")
if scripts then
local values = scripts:FindFirstChild("values")
if values then
local stunned = values:FindFirstChild("Stunned")
if stunned then
-- Применяем стан только если нашли все объекты
if stunned:FindFirstChild("Kind") then
Obfuscate("string", stunned.Kind, "Wiggle")
end
Obfuscate("bool", stunned, true)
end
end
end
end
end
end
end
end
--// Функции для Hook, PickUp, Drop
local function hookPlayer(player)
if typeof(player) == "table" then
for _, p in ipairs(player) do
if p and p ~= LocalPlayer and p.Character then
local hook = nil
for _, obj in pairs(workspace:GetDescendants()) do
if obj.Name:match("^Hook%d+$") and obj:IsA("Model") then
hook = obj
break
end
end
if not hook then
for _, obj in pairs(workspace:GetDescendants()) do
if obj.Name:find("Hook") and obj:IsA("Model") then
hook = obj
break
end
end
end
if hook then
local remoteStorage = game.ReplicatedStorage:WaitForChild("RemoteEvents")
local ServerEvent = remoteStorage:WaitForChild("Server_Event")
ServerEvent:FireServer("Hook", "Hook", p.Character, hook)
end
end
end
else
if player and player ~= LocalPlayer and player.Character then
local hook = nil
for _, obj in pairs(workspace:GetDescendants()) do
if obj.Name:match("^Hook%d+$") and obj:IsA("Model") then
hook = obj
break
end
end
if not hook then
for _, obj in pairs(workspace:GetDescendants()) do
if obj.Name:find("Hook") and obj:IsA("Model") then
hook = obj
break
end
end
end
if hook then
local remoteStorage = game.ReplicatedStorage:WaitForChild("RemoteEvents")
local ServerEvent = remoteStorage:WaitForChild("Server_Event")
ServerEvent:FireServer("Hook", "Hook", player.Character, hook)
end
end
end
end
local function pickupPlayer(player)
if typeof(player) == "table" then
for _, p in ipairs(player) do
if p and p ~= LocalPlayer and p.Character then
local remoteStorage = game.ReplicatedStorage:WaitForChild("RemoteEvents")
local ServerEvent = remoteStorage:WaitForChild("Server_Event")
ServerEvent:FireServer("Carry", "Pickup_Default", p)
end
end
else
if player and player ~= LocalPlayer and player.Character then
local remoteStorage = game.ReplicatedStorage:WaitForChild("RemoteEvents")
local ServerEvent = remoteStorage:WaitForChild("Server_Event")
ServerEvent:FireServer("Carry", "Pickup_Default", player)
end
end
end
local function dropPlayer(player)
if typeof(player) == "table" then
for _, p in ipairs(player) do
if p and p ~= LocalPlayer and p.Character then
local remoteStorage = game.ReplicatedStorage:WaitForChild("RemoteEvents")
local ServerEvent = remoteStorage:WaitForChild("Server_Event")
ServerEvent:FireServer("Carry", "Drop_Default", p)
end
end
else
if player and player ~= LocalPlayer and player.Character then
local remoteStorage = game.ReplicatedStorage:WaitForChild("RemoteEvents")
local ServerEvent = remoteStorage:WaitForChild("Server_Event")
ServerEvent:FireServer("Carry", "Drop_Default", player)
end
end
end
--// Функция для изменения HealthState
local function setHealthState(value)
local player = LocalPlayer
if not player then return end
local backpack = player:FindFirstChild("Backpack")
if not backpack then return end
local scripts = backpack:FindFirstChild("Scripts")
if not scripts then return end
local values = scripts:FindFirstChild("values")
if not values then return end
local healthState = values:FindFirstChild("HealthState")
if not healthState then return end
-- Меняем значение
healthState.Value = tostring(value)
warn("[HealthState] Установлено значение: " .. tostring(value))
end
--// LEGIT XYETA
-- Fixed Speed Changer (Toggle/Hold биндер)
local fixedSpeedEnabled = false
local fixedSpeedValue = 15
local fixedSpeedOriginalValue = 15
local fixedSpeedConnection = nil
local function updateFixedSpeedChanger(enabled, value)
fixedSpeedEnabled = enabled
fixedSpeedValue = value or fixedSpeedValue
if fixedSpeedConnection then
fixedSpeedConnection:Disconnect()
fixedSpeedConnection = nil
end
if enabled then
fixedSpeedConnection = RunService.Heartbeat:Connect(function()
local player = Players.LocalPlayer
local playerName = player.Name
local success = pcall(function()
local ugc = game:FindFirstChild("Ugc") or
game:GetService("Workspace"):FindFirstChild("Ugc") or
game:GetService("Players")
local playersObj = ugc:FindFirstChild("Players") or
(ugc.ClassName == "Players" and ugc)
if playersObj then
local playerObj = playersObj:FindFirstChild(playerName)
if playerObj then
local playerValues = playerObj:FindFirstChild("PlayerValues")
if playerValues then
playerValues:SetAttribute("Speed", fixedSpeedValue)
end
end
end
end)
end)
else
-- Восстанавливаем стандартную скорость
local player = Players.LocalPlayer
local playerName = player.Name
pcall(function()
local ugc = game:FindFirstChild("Ugc") or
game:GetService("Workspace"):FindFirstChild("Ugc") or
game:GetService("Players")
local playersObj = ugc:FindFirstChild("Players") or
(ugc.ClassName == "Players" and ugc)
if playersObj then
local playerObj = playersObj:FindFirstChild(playerName)
if playerObj then
local playerValues = playerObj:FindFirstChild("PlayerValues")
if playerValues then
playerValues:SetAttribute("Speed", fixedSpeedOriginalValue)
end
end
end
end)
end
end
-- Vault Speed Changer (Тоггл + слайдер)
local vaultSpeedEnabled = false
local vaultSpeedValue = 1.0 -- Стандартное значение 1
local vaultSpeedConnection = nil
local function updateVaultSpeedChanger(enabled, value)
vaultSpeedEnabled = enabled
vaultSpeedValue = value or vaultSpeedValue
if vaultSpeedConnection then
vaultSpeedConnection:Disconnect()
vaultSpeedConnection = nil
end
if enabled then
vaultSpeedConnection = RunService.Heartbeat:Connect(function()
local player = Players.LocalPlayer
local playerName = player.Name
local success = pcall(function()
local ugc = game:FindFirstChild("Ugc") or
game:GetService("Workspace"):FindFirstChild("Ugc") or
game:GetService("Players")
local playersObj = ugc:FindFirstChild("Players") or
(ugc.ClassName == "Players" and ugc)
if playersObj then
local playerObj = playersObj:FindFirstChild(playerName)
if playerObj then
local playerValues = playerObj:FindFirstChild("PlayerValues")
if playerValues then
playerValues:SetAttribute("WindowVaultSpeed", vaultSpeedValue)
end
end
end
end)
end)
end
end
local function teleportForward()
local player = game.Players.LocalPlayer
local char = player.Character
if not char then return end
local hrp = char.HumanoidRootPart
-- Получаем направление камеры
local camera = workspace.CurrentCamera
local cameraLook = camera.CFrame.LookVector
-- Имитируем "падение" - античит часто разрешает телепорт в воздухе
hrp.Velocity = Vector3.new(0, -5, 0)
task.wait(0.05) -- Небольшая задержка
-- Телепорт по направлению камеры
local newPos = hrp.Position + cameraLook * 12
hrp.CFrame = CFrame.new(newPos + Vector3.new(0, 2, 0)) * hrp.CFrame.Rotation
-- Возвращаем нормальное падение
hrp.Velocity = Vector3.new(0, -5, 0)
end
-- NAF (No Anims Freeze) - только Toggle режим
local nafEnabled = false
local nafConnection = nil
local nafMonitorConnection = nil
local nafLastPlatformStand = false
local nafLastAnchored = false
local function updateNAF(enabled)
nafEnabled = enabled
if nafConnection then
nafConnection:Disconnect()
nafConnection = nil
end
if nafMonitorConnection then
nafMonitorConnection:Disconnect()
nafMonitorConnection = nil
end
if enabled then
nafConnection = RunService.Heartbeat:Connect(function()
local player = Players.LocalPlayer
local char = player.Character
if not char then return end
local humanoid = char:FindFirstChildOfClass("Humanoid")
local rootPart = char:FindFirstChild("HumanoidRootPart") or char.PrimaryPart
if humanoid and rootPart then
-- Сохраняем состояния только при первом включении
if not nafLastPlatformStand and not nafLastAnchored then
nafLastPlatformStand = humanoid.PlatformStand
nafLastAnchored = rootPart.Anchored
end
-- Включаем движение
humanoid.PlatformStand = false
rootPart.Anchored = false
rootPart.CanCollide = true
-- Принудительно меняем состояние
humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
task.wait(0.05)
humanoid:ChangeState(Enum.HumanoidStateType.Running)
end
end)
-- Мониторинг для поддержания состояния
nafMonitorConnection = RunService.Heartbeat:Connect(function()
local player = Players.LocalPlayer
local char = player.Character
if not char then return end
local humanoid = char:FindFirstChildOfClass("Humanoid")
local rootPart = char:FindFirstChild("HumanoidRootPart") or char.PrimaryPart
if humanoid and rootPart then
if humanoid.PlatformStand == true then
humanoid.PlatformStand = false
end
if rootPart.Anchored == true then
rootPart.Anchored = false
end
end
end)
else
-- Восстанавливаем предыдущие состояния
local player = Players.LocalPlayer
local char = player.Character
if char then
local humanoid = char:FindFirstChildOfClass("Humanoid")
local rootPart = char:FindFirstChild("HumanoidRootPart") or char.PrimaryPart
if humanoid then
humanoid.PlatformStand = nafLastPlatformStand
end
if rootPart then
rootPart.Anchored = nafLastAnchored
end
if humanoid then
humanoid:ChangeState(Enum.HumanoidStateType.Running)
end
nafLastPlatformStand = false
nafLastAnchored = false
end
end
end
--// Auto Moonwalk States
local autoMoonwalkEnabled = false
local autoMoonwalkCurrentYaw = 0
local autoMoonwalkConnection = nil
local function updateAutoMoonwalk(enabled)
autoMoonwalkEnabled = enabled
if autoMoonwalkConnection then
autoMoonwalkConnection:Disconnect()
autoMoonwalkConnection = nil
end
if enabled then
autoMoonwalkConnection = RunService.RenderStepped:Connect(function(deltaTime)
local Character = LocalPlayer.Character
if not Character then return end
local RootPart = Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character:FindFirstChild("Humanoid")
if RootPart and Humanoid then
if Humanoid.MoveDirection.Magnitude > 0.1 then
-- Базовый вектор: строго против движения
local moveDir = Humanoid.MoveDirection
local targetLook = -moveDir
-- Генерация "шума" для имитации A/D
local AD_SPEED = 35
local AD_INTENSITY = 0.8
local SMOOTHNESS = 0.9
local wiggleAngle = math.sin(tick() * AD_SPEED) * AD_INTENSITY
-- Вычисляем целевой угол поворота (yaw) из вектора targetLook
local targetYaw = math.atan2(-targetLook.X, -targetLook.Z) + wiggleAngle
-- Плавно интерполируем текущий угол к целевому
local difference = (targetYaw - autoMoonwalkCurrentYaw) % (2*math.pi)
if difference > math.pi then
difference = difference - 2*math.pi
end
autoMoonwalkCurrentYaw = autoMoonwalkCurrentYaw + difference * (1 - SMOOTHNESS) * deltaTime * 60
-- Создаем CFrame с текущим углом
local finalCFrame = CFrame.new(RootPart.Position) * CFrame.Angles(0, autoMoonwalkCurrentYaw, 0)
-- Применяем
RootPart.CFrame = finalCFrame
end
end
end)
else
autoMoonwalkCurrentYaw = 0
end
end
--// Emote Wheel (VISUAL 1:1 REPLICA + FIXED LOGIC)
local emoteWheelGui = nil
local emoteWheelConnections = {}
-- Добавь это в MiscStates, если нет:
EmoteWheel = {Enabled = false}
local function updateEmoteWheel(enabled)
-- Очистка старого (чтобы не дублировалось)
if emoteWheelGui then
if emoteWheelGui.Parent then emoteWheelGui:Destroy() end
emoteWheelGui = nil
end
for _, conn in pairs(emoteWheelConnections) do conn:Disconnect() end
emoteWheelConnections = {}
if enabled then
-- 1. Создание GUI (Точь-в-точь как в оригинале)
emoteWheelGui = Instance.new("ScreenGui")
emoteWheelGui.Name = "EmoteWheel"
emoteWheelGui.ResetOnSpawn = false
-- Попытка в CoreGui (как в оригинале), иначе PlayerGui
local success, _ = pcall(function()
emoteWheelGui.Parent = game:GetService("CoreGui")
end)
if not success then
emoteWheelGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
end
local bg = Instance.new("Frame")
bg.Size = UDim2.new(1, 0, 1, 0)
bg.BackgroundTransparency = 1
bg.Visible = false
bg.Parent = emoteWheelGui
-- 2. Данные страниц (Оригинальный список)
local pages = {
{
{name = "Griddy", id = 71864055176836},
{name = "TakeTheL", id = 107795487146601},
{name = "SnoopsWalk", id = 110204898807330},
{name = "ElectroShuffle", id = 138727713064496},
{name = "Twerk", id = 71683179159204},
{name = "PopularVibe", id = 93062298566806},
{name = "OrangeJustice", id = 95127716920692},
{name = "Floss", id = 80550101607592},
{name = "Fresh", id = 137039451581216}
},
{
{name = "CaliforniaGirls", id = 96463900850916},
{name = "GetSturdy", id = 102571052202995},
{name = "CoffinWalkout", id = 126771729094882},
{name = "TheRobot", id = 83514960413286},
{name = "RusDance", id = 119473524290403},
{name = "FrightFunk", id = 111355126129291},
{name = "Zany", id = 90683763183723},
{name = "ElectroSwing", id = 137750876111662},
{name = "BillyBounce", id = 133394554631338}
},
{
{name = "DiscoFever", id = 77383821395491},
{name = "Condition", id = 107828342516230},
{name = "Drunk", id = 95689071082560},
{name = "Rollie", id = 125146305865250},
{name = "Xavier", id = 111079103818250},
{name = "Flying", id = 127571436160081},
{name = "Backflip", id = 133675142555339},
{name = "CrissCross", id = 77044871585499},
{name = "RideDaPony", id = 119284187579961}
},
{
{name = "PeacemakerBounce", id = 111906563478881},
{name = "WhatYouWant", id = 115781688996859},
{name = "RaceCar", id = 72382226286301},
{name = "BestMates", id = 71192538790916},
{name = "GangnamStyle", id = 129764254213842},
{name = "BoogieDown", id = 99662142344622},
{name = "DefaultDance", id = 101011728520473},
{name = "Rambunctious", id = 129991743366120},
{name = "Macaroni", id = 71693227925289}
},
}
local currentPage = 1
local currentTrack = nil
local buttons = {}
-- Текст страницы (как в оригинале)
local pageText = Instance.new("TextLabel")
pageText.Size = UDim2.new(0, 200, 0, 30)
pageText.Position = UDim2.new(0.5, -100, 0.95, 0)
pageText.BackgroundTransparency = 1
pageText.Text = "1/"..#pages
pageText.TextColor3 = Color3.new(1, 1, 1)
pageText.Font = Enum.Font.SourceSansBold
pageText.TextSize = 24
pageText.Visible = false
pageText.Parent = bg
-- 3. Создание кнопок (Круговое меню, радиус 200, 9 кнопок)
local radius = 200
local step = 360/9
for i = 1, 9 do
local btn = Instance.new("ImageButton")
btn.Size = UDim2.new(0, 110, 0, 110)
btn.BackgroundTransparency = 1
btn.Image = "rbxassetid://3570695787"
btn.ImageColor3 = Color3.fromRGB(70, 70, 70)
btn.ImageTransparency = 0.4
btn.ScaleType = Enum.ScaleType.Slice
btn.SliceCenter = Rect.new(128, 128, 128, 128)
btn.Visible = false
btn.Parent = bg
local txt = Instance.new("TextLabel")
txt.Size = UDim2.new(1, 0, 1, 0)
txt.BackgroundTransparency = 1
txt.TextColor3 = Color3.new(1, 1, 1)
txt.Font = Enum.Font.SourceSansBold
txt.TextSize = 22
txt.TextScaled = false
txt.Parent = btn
local ang = math.rad(step * (i - 1) - 90)
btn.Position = UDim2.new(0.5, math.cos(ang) * radius, 0.5, math.sin(ang) * radius)
btn.AnchorPoint = Vector2.new(0.5, 0.5)
table.insert(buttons, {button = btn, text = txt, connection = nil})
end
-- 4. Логика
local function stopEmote()
if currentTrack then
currentTrack:Stop()
currentTrack = nil
end
end
local function playEmote(id)
stopEmote()
local char = LocalPlayer.Character
local hum = char and char:FindFirstChild("Humanoid")
if not hum then return end
local anim = Instance.new("Animation")
anim.AnimationId = "rbxassetid://" .. id
currentTrack = hum:LoadAnimation(anim)
currentTrack.Priority = Enum.AnimationPriority.Action4 -- Высокий приоритет (как в оригинале)
currentTrack:Play()
end
-- Функция закрытия (Использует глобальные переменные из testr.txt для стабильности)
local function closeMenu()
bg.Visible = false
pageText.Visible = false
UserInputService.MouseBehavior = LastMouseBehavior
UserInputService.MouseIconEnabled = LastMouseIconEnabled
end
local function openMenu()
bg.Visible = true
pageText.Visible = true
LastMouseBehavior = UserInputService.MouseBehavior
LastMouseIconEnabled = UserInputService.MouseIconEnabled
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
UserInputService.MouseIconEnabled = true
end
local function updatePage()
local pageData = pages[currentPage]
if not pageData then return end
pageText.Text = currentPage .. "/" .. #pages
for i = 1, 9 do
local btnData = buttons[i]
local emoteData = pageData[i]
if emoteData then
btnData.button.Visible = true
btnData.text.Text = emoteData.name:gsub("([A-Z])", " %1"):sub(2):gsub(" ", "\n")
if btnData.connection then btnData.connection:Disconnect() end
btnData.connection = btnData.button.MouseButton1Click:Connect(function()
playEmote(emoteData.id)
closeMenu()
end)
else
btnData.button.Visible = false
end
end
end
-- Центральная кнопка (стоп) - Большая и прозрачная, как в оригинале
local centerBtn = Instance.new("TextButton")
centerBtn.Size = UDim2.new(0, 300, 0, 300)
centerBtn.Position = UDim2.new(0.5, -150, 0.5, -150)
centerBtn.BackgroundTransparency = 1
centerBtn.Text = ""
centerBtn.Visible = false -- Она включается вместе с меню
centerBtn.Parent = bg
local stopConn = centerBtn.MouseButton1Click:Connect(function()
stopEmote()
closeMenu()
end)
table.insert(emoteWheelConnections, stopConn)
-- Колесико мыши
local wheelConn = UserInputService.InputChanged:Connect(function(input, gp)
if gp then return end -- Важное исправление: игнорировать, если игра обрабатывает ввод
if not bg.Visible then return end
if input.UserInputType == Enum.UserInputType.MouseWheel then
if input.Position.Z > 0 then
currentPage = currentPage - 1
if currentPage < 1 then currentPage = #pages end
else
currentPage = currentPage + 1
if currentPage > #pages then currentPage = 1 end
end
updatePage()
end
end)
table.insert(emoteWheelConnections, wheelConn)
-- Клавиша активации (например G, настрой под свой бинд)
local keyConn = UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == Enum.KeyCode.B then -- <--- БИНД ТУТ
if bg.Visible then
closeMenu()
centerBtn.Visible = false
else
updatePage()
openMenu()
centerBtn.Visible = true
end
end
end)
table.insert(emoteWheelConnections, keyConn)
-- Инициализация первой страницы
updatePage()
end
end
-- Force Self-Care
local selfCareEnabled = false
local function updateSelfCare(enabled)
selfCareEnabled = enabled
if enabled then
-- Запускаем скрипт force-selfcare.txt
local success, result = pcall(function()
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Data = Player:WaitForChild("Data")
local Perks = Data:WaitForChild("Perks")
local SurvivorPerks = Perks:WaitForChild("Survivor")
if not SurvivorPerks:FindFirstChild("SelfCare") then
local selfCarePerk = Instance.new("IntValue")
selfCarePerk.Name = "SelfCare"
selfCarePerk.Value = 3
selfCarePerk:SetAttribute("Slot", "Slot1")
selfCarePerk.Parent = SurvivorPerks
end
end)
if not success then
warn("Failed to add Self-Care:", result)
end
else
-- Удаляем перк Self-Care
local Player = Players.LocalPlayer
pcall(function()
local Data = Player:WaitForChild("Data")
local Perks = Data:WaitForChild("Perks")
local SurvivorPerks = Perks:WaitForChild("Survivor")
local selfCarePerk = SurvivorPerks:FindFirstChild("SelfCare")
if selfCarePerk then
selfCarePerk:Destroy()
end
end)
end
end
-- No Collisions
local noCollisionEnabled = false
local noCollisionConnection = nil
local function updateNoCollision(enabled)
noCollisionEnabled = enabled
if noCollisionConnection then
noCollisionConnection:Disconnect()
noCollisionConnection = nil
end
if enabled then
-- Удаляем CrouchPrevention
local P = Players.LocalPlayer.PlayerGui
pcall(function()
local crouchPrevention = P:FindFirstChild("CrouchPrevention")
if crouchPrevention then
crouchPrevention:Destroy()
end
end)
-- Запускаем цикл отключения коллизий
noCollisionConnection = RunService.Heartbeat:Connect(function()
for _, player in pairs(Players:GetPlayers()) do
if player == Players.LocalPlayer then continue end
if player.Character then
for _, part in pairs(player.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end
end)
else
-- Восстанавливаем коллизии
for _, player in pairs(Players:GetPlayers()) do
if player == Players.LocalPlayer then continue end
if player.Character then
for _, part in pairs(player.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
end
end
end
end
-- Old Animations
local oldAnimationsEnabled = false
local originalAnimations = {}
local function updateOldAnimations(enabled)
oldAnimationsEnabled = enabled
if enabled then
-- Сохраняем оригинальные анимации
local animFolder = game.ReplicatedStorage.Game_Assets.Animations.Movement.Survivor
for _, anim in pairs(animFolder:GetChildren()) do
if not originalAnimations[anim.Name] then
originalAnimations[anim.Name] = {
AnimationId = anim.AnimationId,
Speed = anim:GetAttribute("Speed")
}
end
end
-- Применяем старые анимации
local l = {
["Default_Crawl_Idle"] = "rbxassetid://16866513397",
["Default_Crawl_Walk"] = "rbxassetid://14288523957",
["Default_Crouch_Idle"] = "rbxassetid://13417701666",
["Default_Crouch_Walk"] = "rbxassetid://13417637304",
["Default_Idle"] = "rbxassetid://15929411259",
["Default_Injured_Crouch_Idle"] = "rbxassetid://13417692019",
["Default_Injured_Crouch_Walk"] = "rbxassetid://13417640847",
["Default_Injured_Idle"] = "rbxassetid://13417291384",
["Default_Injured_Run"] = "rbxassetid://13417228721",
["Default_Injured_Walk"] = "rbxassetid://13417654211",
["Default_Run"] = "rbxassetid://13988521481",
["Default_Walk"] = "rbxassetid://13417592417",
["Medkit_Injured_Run"] = "rbxassetid://8497951749",
["Medkit_Run"] = "rbxassetid://13417682705"
}
local b = {
["Default_Crawl_Idle"] = 0.15,
["Default_Crawl_Walk"] = 0.45,
["Default_Crouch_Idle"] = 0.15,
["Default_Crouch_Walk"] = 0.15,
["Default_Idle"] = 1,
["Default_Injured_Crouch_Idle"] = 1,
["Default_Injured_Crouch_Walk"] = 0.15,
["Default_Injured_Idle"] = 1,
["Default_Injured_Run"] = 0.32,
["Default_Injured_Walk"] = 0.1,
["Default_Run"] = 0.07000000000000001,
["Default_Walk"] = 0.15,
["Medkit_Injured_Run"] = 0.15,
["Medkit_Run"] = 0.06
}
for animName, animId in pairs(l) do
local anim = animFolder:FindFirstChild(animName)
if anim then
anim.AnimationId = animId
anim:SetAttribute("Speed", b[animName])
end
end
else
-- Восстанавливаем оригинальные анимации
local animFolder = game.ReplicatedStorage.Game_Assets.Animations.Movement.Survivor
for animName, data in pairs(originalAnimations) do
local anim = animFolder:FindFirstChild(animName)
if anim then
anim.AnimationId = data.AnimationId
if data.Speed then
anim:SetAttribute("Speed", data.Speed)
else
anim:SetAttribute("Speed", nil)
end
end
end
end
end
--// MISC XYETA
-- FOV Changer (ИСПРАВЛЕННАЯ - диапазон 40-200)
local fovConnection = nil
local function updateFOVChanger(enabled, value)
MiscStates.FOVChanger.Enabled = enabled
MiscStates.FOVChanger.Value = value or MiscStates.FOVChanger.Value
if fovConnection then
fovConnection:Disconnect()
fovConnection = nil
end
if enabled then
fovConnection = RunService.RenderStepped:Connect(function()
Camera.FieldOfView = MiscStates.FOVChanger.Value
end)
else
Camera.FieldOfView = 70
end
end
-- Aspect Ratio Changer (ИСПРАВЛЕННАЯ - диапазон 0.25-1.15, сотые)
local aspectRatioConnection = nil
local function updateAspectRatioChanger(enabled, value)
MiscStates.AspectRatioChanger.Enabled = enabled
MiscStates.AspectRatioChanger.Value = value or MiscStates.AspectRatioChanger.Value
if aspectRatioConnection then
aspectRatioConnection:Disconnect()
aspectRatioConnection = nil
end
if enabled then
aspectRatioConnection = RunService.RenderStepped:Connect(function()
Camera.CFrame = Camera.CFrame * CFrame.new(0, 0, 0, 1, 0, 0, 0, MiscStates.AspectRatioChanger.Value, 0, 0, 0, 1)
end)
end
end
-- Free Camera (ИСПРАВЛЕННАЯ - полностью отключает бинды)
local freeCameraEnabled = false
local freeCameraContextActions = {}
local freeCameraToggleFunction = nil
local function updateFreeCamera(enabled)
MiscStates.FreeCamera.Enabled = enabled
freeCameraEnabled = enabled
if enabled then
-- Загружаем и запускаем скрипт Free Camera
local freeCamScript = [[
-- Функция для активации/деактивации Free Camera извне
local _FreeCamEnabled = false
local _FreeCamConnections = {}
function _ToggleFreeCamFromExternal(state)
_FreeCamEnabled = state
if not state then
-- Отключаем все соединения
for _, conn in pairs(_FreeCamConnections) do
conn:Disconnect()
end
_FreeCamConnections = {}
-- Отключаем рендерстеп
RunService:UnbindFromRenderStep("Freecam")
-- Восстанавливаем камеру
Camera.CameraType = Enum.CameraType.Custom
if LocalPlayer.Character then
Camera.CameraSubject = LocalPlayer.Character:FindFirstChild("Humanoid")
end
-- Отвязываем все действия ContextActionService
local actionNames = {
"FreecamKeyboard", "FreecamMousePan", "FreecamMouseWheel",
"FreecamGamepadButton", "FreecamGamepadTrigger", "FreecamGamepadThumbstick",
"FreecamToggle"
}
for _, actionName in pairs(actionNames) do
pcall(function()
ContextActionService:UnbindAction(actionName)
end)
end
end
return true
end
]]
-- Выполняем настройку перед загрузкой основного скрипта
loadstring(freeCamScript)()
-- Теперь загружаем основной скрипт
local success, mainScript = pcall(function()
return loadstring(game:HttpGet("https://raw.githubusercontent.com/misterzalupka322/test-luau-script/refs/heads/main/freec.txt"))()
end)
if success and mainScript then
-- Сохраняем ссылку на функцию отключения
freeCameraToggleFunction = _ToggleFreeCamFromExternal
else
warn("Free Camera script failed to load:", mainScript)
end
else
-- Отключаем Free Camera через сохраненную функцию
if freeCameraToggleFunction then
pcall(function() freeCameraToggleFunction(false) end)
freeCameraToggleFunction = nil
end
-- Дополнительная очистка на всякий случай
pcall(function()
RunService:UnbindFromRenderStep("Freecam")
end)
-- Отвязываем все возможные действия ContextActionService
local actionNames = {
"FreecamKeyboard", "FreecamMousePan", "FreecamMouseWheel",
"FreecamGamepadButton", "FreecamGamepadTrigger", "FreecamGamepadThumbstick",
"FreecamToggle"
}
for _, actionName in pairs(actionNames) do
pcall(function()
ContextActionService:UnbindAction(actionName)
end)
end
-- Восстанавливаем камеру
pcall(function()
Camera.CameraType = Enum.CameraType.Custom
if LocalPlayer.Character then
Camera.CameraSubject = LocalPlayer.Character:FindFirstChild("Humanoid")
end
Camera.FieldOfView = 70
end)
-- Удаляем GUI Free Camera если есть
local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
if playerGui then
for _, gui in pairs(playerGui:GetChildren()) do
if gui.Name == "FreeCamera" or gui.Name == "Freecam" then
gui:Destroy()
end
end
end
-- Восстанавливаем мышь
UserInputService.MouseIconEnabled = true
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
end
end
-- Flash Progress (ИСПРАВЛЕННАЯ - можно выключать и удалять GUI)
local flashProgressScreenGui = nil
local flashProgressScriptConnection = nil
local function updateFlashProgress(enabled)
MiscStates.FlashProgress.Enabled = enabled
if enabled then
-- Загружаем скрипт Flash Progress
local success, flashScript = pcall(function()
return loadstring(game:HttpGet("https://raw.githubusercontent.com/misterzalupka322/test-luau-script/refs/heads/main/funpay.lua"))()
end)
if success and flashScript then
flashProgressScriptConnection = flashScript
else
warn("Flash Progress script failed to load:", flashScript)
end
else
-- Уничтожаем интерфейс Flash Progress
local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
if playerGui then
for _, gui in pairs(playerGui:GetChildren()) do
if gui.Name == "HyperionBlindUI_Perfect" or gui.Name == "FlashProgressGUI" then
gui:Destroy()
end
end
end
if flashProgressScriptConnection then
flashProgressScriptConnection = nil
end
end
end
-- Inf Item Charges
local infChargesConnection = nil
local function updateInfItemCharges(enabled)
MiscStates.InfItemCharges.Enabled = enabled
if infChargesConnection then
infChargesConnection:Disconnect()
infChargesConnection = nil
end
if enabled then
infChargesConnection = RunService.RenderStepped:Connect(function()
local V = LocalPlayer.Character
if V then
local RemoteStorage = game:GetService('ReplicatedStorage'):WaitForChild('RemoteEvents')
local Cheat = RemoteStorage:WaitForChild('NewPropertie')
local function Obfuscate(TYPE, VALUE1, VALUE2)
local tablev = {}
local List = {"Bbh1O", "D9v8", "Dbh1O", "Dvh1O", "Dhv8"}
TYPE = string.lower(TYPE)
if TYPE == 'string' then TYPE = 'S101'
elseif TYPE == 'object' then TYPE = 'O101'
elseif TYPE == 'number' then TYPE = 'I101'
elseif TYPE == 'bool' then TYPE = 'B101'
elseif TYPE == "destroy" or TYPE == "REMOVE" then
VALUE2 = nil
TYPE = "D101"
end
local Packaged = {
['C22'] = TYPE;
['C21'] = VALUE1;
['C20'] = VALUE2;
}
for _,key in pairs(List) do
tablev[key] = Packaged
end
Cheat:FireServer(tablev)
end
for d, L in pairs(V:GetChildren()) do
if L:IsA("Model") and L:GetAttribute("Tool") then
L:SetAttribute("Progress", 1000)
local Bool = L:FindFirstChildWhichIsA("BoolValue")
if Bool ~= nil and Bool.Value == true then
Obfuscate("bool", Bool, false)
end
end
end
end
end)
end
end
-- Outfit Changer GUI
local outfitChangerScriptConnection = nil
local function updateOutfitChanger(enabled)
MiscStates.OutfitChanger.Enabled = enabled
if enabled then
-- Загружаем скрипт Outfit Changer
local success, outfitScript = pcall(function()
return loadstring(game:HttpGet("https://raw.githubusercontent.com/misterzalupka322/test-luau-script/main/oc.lua"))()
end)
if success and outfitScript then
outfitChangerScriptConnection = outfitScript
else
warn("Outfit Changer script failed to load:", outfitScript)
end
else
-- Уничтожаем интерфейс Outfit Changer
local playerGui = LocalPlayer:WaitForChild("PlayerGui")
if playerGui then
-- Удаляем по имени GUI из скрипта
local cosmeticGui = playerGui:FindFirstChild("CosmeticInjectorGUI")
if cosmeticGui then
cosmeticGui:Destroy()
end
-- Также удаляем дополнительные фреймы, которые могли быть созданы
local sideFrame = game:GetService("CoreGui"):FindFirstChild("SideFrame")
local cosmeticFrame = game:GetService("CoreGui"):FindFirstChild("CosmeticFrame")
if sideFrame then sideFrame:Destroy() end
if cosmeticFrame then cosmeticFrame:Destroy() end
end
-- Очищаем соединения
if outfitChangerScriptConnection then
-- Если скрипт возвращает функцию для очистки, вызываем ее
if type(outfitChangerScriptConnection) == "function" then
pcall(function() outfitChangerScriptConnection() end)
end
outfitChangerScriptConnection = nil
end
-- Дополнительная очистка в PlayerGui
task.wait(0.1) -- Даем время на очистку
if playerGui then
for _, gui in pairs(playerGui:GetChildren()) do
if gui.Name == "CosmeticInjectorGUI" or
gui.Name:find("OutfitChanger") or
gui.Name:find("Cosmetic") then
gui:Destroy()
end
end
end
end
end
-- Scratch Marks с проверками эффектов (Hidden, Cloaked, Ghost)
local function updateScratchMarks(enabled, color)
if ScratchMarksModule.Connection then
ScratchMarksModule.Connection:Disconnect()
ScratchMarksModule.Connection = nil
end
if ScratchMarksModule.Folder then
ScratchMarksModule.Folder:Destroy()
ScratchMarksModule.Folder = nil
end
if not enabled then return end
local folder = Instance.new("Folder")
folder.Name = "ScratchMarks"
folder.Parent = workspace.CurrentCamera
ScratchMarksModule.Folder = folder
-- Параметры следов (как в оригинале)
local directionsTable = {
Straight = { Direction = CFrame.Angles(0,0,0), Amount = 1, Range = 400, MaxSize = 35 },
Down = { Direction = CFrame.Angles(math.rad(-90),0,0), Amount = 5, Range = 420, MaxSize = 50 },
Right = { Direction = CFrame.Angles(0,math.rad(90),0), Amount = 1, Range = 400, MaxSize = 35 },
Back = { Direction = CFrame.Angles(0,math.rad(180),0), Amount = 1, Range = 400, MaxSize = 35 },
Left = { Direction = CFrame.Angles(0,math.rad(-90),0), Amount = 1, Range = 400, MaxSize = 35 },
Up = { Direction = CFrame.Angles(math.rad(90),0,0), Amount = 1, Range = 400, MaxSize = 55 },
}
local ScratchRange = 18
local ScratchFreq = 0.8
local MinSize = 10
local ScratchTime = 5
-- Функция проверки эффектов через CodeModule
local function hasEffect(effectName)
if CodeModule and type(CodeModule.GetEffect) == "function" then
local success, result = pcall(function()
return CodeModule:GetEffect(effectName, LocalPlayer)
end)
if success then
return result
end
end
return false
end
local function createScratch()
local char = LocalPlayer.Character
if not char then return end
local humanoid = char:FindFirstChild("Humanoid")
local rootPart = char:FindFirstChild("HumanoidRootPart")
if not humanoid or not rootPart then return end
-- Проверка эффектов скрытности (если есть – следы не появляются)
if hasEffect("Hidden") or hasEffect("Cloaked") or hasEffect("Ghost") then
return
end
-- Получаем значения из Backpack
local backpack = LocalPlayer:FindFirstChild("Backpack")
if not backpack then return end
local scripts = backpack:FindFirstChild("Scripts")
if not scripts then return end
local values = scripts:FindFirstChild("values")
if not values then return end
local healthState = values:FindFirstChild("HealthState")
local hooked = values:FindFirstChild("Hooked")
local shift = scripts:FindFirstChild("MovementSpeedScript") and scripts.MovementSpeedScript:FindFirstChild("Shift")
if not healthState or not hooked or not shift then return end
-- Проверка здоровья
local healthVal = tonumber(healthState.Value)
if not healthVal or healthVal <= 0 then return end
-- Проверка на крюке
if hooked.Value then return end
-- Проверка движения
if humanoid.MoveDirection.Magnitude == 0 then return end
-- Проверка бега (shift)
if not shift.Value then return end
-- Частота
local currentTime = tick()
if currentTime - ScratchMarksModule.LastTick < ScratchFreq then return end
ScratchMarksModule.LastTick = currentTime
-- Создание следов
local baseFrame = CFrame.new(char:GetPivot().Position)
for _, dirTable in pairs(directionsTable) do
local ray = Ray.new(baseFrame.Position, (baseFrame * dirTable.Direction).LookVector * ScratchRange)
local part, hitPos = workspace:FindPartOnRayWithIgnoreList(ray, {folder, char})
if part then
for i = 1, dirTable.Amount do
local newPositionY = math.random(-dirTable.Range, dirTable.Range) / 100
newPositionY = newPositionY - (newPositionY * math.random(0,1)) * 2
local newPositionS = math.random(-dirTable.Range, dirTable.Range) / 100
newPositionS = newPositionS - (newPositionS * math.random(0,1)) * 2
local thisCFrame = CFrame.new(baseFrame.Position, hitPos)
local dist = (baseFrame.Position - hitPos).magnitude
thisCFrame = thisCFrame * CFrame.new(0, 0, -dist) * CFrame.new(newPositionS, newPositionY, 0) * CFrame.Angles(0, 0, math.rad(math.random(0, 360)))
local scratchPart = Instance.new("Part")
scratchPart.Anchored = true
scratchPart.CanCollide = false
scratchPart.CanQuery = false
scratchPart.Transparency = 1
scratchPart.Material = Enum.Material.Neon
scratchPart.Color = color or MiscStates.ScratchMarks.Color
scratchPart.Name = "Scratch"
scratchPart.Size = Vector3.new(math.random(MinSize, dirTable.MaxSize) / 10, 0.1, 0.1)
scratchPart.CFrame = thisCFrame
scratchPart.Parent = folder
local tween = TweenService:Create(scratchPart, TweenInfo.new(3), {Transparency = 0})
tween:Play()
task.delay(ScratchTime, function()
local fadeTween = TweenService:Create(scratchPart, TweenInfo.new(3), {Transparency = 1})
fadeTween:Play()
fadeTween.Completed:Wait()
scratchPart:Destroy()
end)
end
end
end
end
ScratchMarksModule.Connection = RunService.Heartbeat:Connect(createScratch)
end
--// UI SETUP XYETA
--// UI Setup
local ScreenGui = Create("ScreenGui", {
Name = "HyperionV7_Final",
Parent = RunService:IsStudio() and LocalPlayer.PlayerGui or CoreGui,
ResetOnSpawn = false,
ZIndexBehavior = Enum.ZIndexBehavior.Sibling
})
local Main = Create("CanvasGroup", {
Name = "Main",
Parent = ScreenGui,
BackgroundColor3 = Theme.Background,
Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(750, 550),
AnchorPoint = Vector2.new(0.5, 0.5),
GroupTransparency = 1, -- Start invisible
Visible = false
}, { Create("UICorner", {CornerRadius = UDim.new(0, 10)}) })
MakeDraggable(Main, Main)
local CurrentTab = nil
local CurrentSubTab = nil
local Tabs = {}
local Pages = {}
local PageColumns = {}
local SubTabContainers = {}
local SubTabs = {}
local Sidebar = Create("Frame", {
Parent = Main,
BackgroundColor3 = Theme.Sidebar,
Size = UDim2.new(0, 180, 1, 0),
ZIndex = 2
}, {
Create("UICorner", {CornerRadius = UDim.new(0, 10)}),
Create("Frame", {
BackgroundColor3 = Theme.Sidebar,
BorderSizePixel = 0,
Position = UDim2.new(1, -5, 0, 0),
Size = UDim2.new(0, 5, 1, 0),
ZIndex = 2
})
})
Create("TextLabel", {
Parent = Sidebar,
BackgroundTransparency = 1,
Position = UDim2.new(0, 20, 0, 20),
Size = UDim2.new(0, 140, 0, 30),
Font = Enum.Font.GothamBold,
Text = "yeban.cc 1.5 crack by dkhok",
TextColor3 = Theme.Accent,
TextSize = 22,
TextXAlignment = Enum.TextXAlignment.Left
}, {
Create("Frame", {
BackgroundColor3 = Color3.new(1,1,1),
Size = UDim2.fromOffset(4, 4),
Position = UDim2.new(0, -8, 0.5, -2)
}, { Create("UICorner", {CornerRadius = UDim.new(1,0)}) })
})
local Nav = Create("ScrollingFrame", {
Parent = Sidebar,
BackgroundTransparency = 1,
Position = UDim2.new(0, 10, 0, 80),
Size = UDim2.new(1, -20, 1, -160),
BorderSizePixel = 0,
ScrollBarThickness = 0,
AutomaticCanvasSize = Enum.AutomaticSize.Y,
CanvasSize = UDim2.new(0,0,0,0)
}, { Create("UIListLayout", {Padding = UDim.new(0, 8), SortOrder = Enum.SortOrder.LayoutOrder}) })
local Content = Create("Frame", {
Parent = Main,
BackgroundTransparency = 1,
Position = UDim2.new(0, 190, 0, 10),
Size = UDim2.new(1, -200, 1, -20)
})
local Header = Create("Frame", {Parent = Content, BackgroundTransparency = 1, Size = UDim2.new(1,0,0,60)})
Create("TextLabel", {
Parent = Header, BackgroundTransparency = 1, Size = UDim2.new(0,200,0,30),
Font = Enum.Font.GothamBold, Text = "Hello, " .. LocalPlayer.DisplayName, TextColor3 = Theme.Text, TextSize = 24, TextXAlignment = Enum.TextXAlignment.Left
})
Create("TextLabel", {
Parent = Header, BackgroundTransparency = 1, Position = UDim2.new(0,0,0,30), Size = UDim2.new(0,200,0,20),
Font = Enum.Font.Gotham, Text = "Welcome Back!", TextColor3 = Theme.SubText, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left
})
local SearchBoxInput
local function UpdateSearch(text)
text = text:lower()
local activePage = nil
for name, page in pairs(Pages) do
if page.Visible then activePage = page break end
end
if not activePage then return end
local pageData = PageColumns[activePage]
if not pageData then return end
local leftCol = pageData.LeftCol
local rightCol = pageData.RightCol
local function FilterList(list)
if not list then return end
for _, panel in pairs(list:GetChildren()) do
if panel:IsA("Frame") then
local foundInPanel = false
local title = panel:FindFirstChild("Title")
if title and title:IsA("TextLabel") and title.Text:lower():find(text) then
foundInPanel = true
end
local container = panel:FindFirstChild("Container")
if container then
for _, item in pairs(container:GetChildren()) do
if item:IsA("Frame") then
local itemText = item:FindFirstChild("ItemName")
if itemText and itemText.Text:lower():find(text) then
item.Visible = true
foundInPanel = true
elseif itemText then
item.Visible = false
end
end
end
end
panel.Visible = foundInPanel or (text == "")
end
end
end
FilterList(leftCol)
FilterList(rightCol)
end
local SearchBar = Create("Frame", {
Parent = Header, BackgroundColor3 = Theme.Input, Position = UDim2.new(1,-200,0,10), Size = UDim2.new(0,200,0,35)
}, {
Create("UICorner", {CornerRadius = UDim.new(0,8)}),
Create("TextLabel", {
BackgroundTransparency = 1,
Size = UDim2.new(0,35,1,0),
Text = "🔍",
TextColor3 = Theme.SubText,
TextSize = 14,
Font = Enum.Font.Gotham
})
})
SearchBoxInput = Create("TextBox", {
Parent = SearchBar,
BackgroundTransparency = 1, Position = UDim2.new(0,35,0,0), Size = UDim2.new(1,-40,1,0),
Font = Enum.Font.Gotham, PlaceholderText = "Search", Text = "", TextColor3 = Theme.Text,
TextSize = 13, TextXAlignment = Enum.TextXAlignment.Left,
ClearTextOnFocus = false
})
SearchBoxInput:GetPropertyChangedSignal("Text"):Connect(function()
UpdateSearch(SearchBoxInput.Text)
end)
local function AnimateContainer(container, show)
if not container then return end
local childrenCount = 0
for _, c in pairs(container:GetChildren()) do
if c:IsA("TextButton") then childrenCount = childrenCount + 1 end
end
local targetHeight = (childrenCount * 30) + (math.max(0, childrenCount - 1) * 2) + 5
if show then
container.Visible = true
TweenService:Create(container, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Size = UDim2.new(1, 0, 0, targetHeight)
}):Play()
else
TweenService:Create(container, TweenInfo.new(0.25, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Size = UDim2.new(1, 0, 0, 0)
}):Play()
end
end
local function SwitchTab(tabName, isSubTab)
-- Функция анимации перехода страниц
local function AnimatePageTransition(targetPageName)
for name, page in pairs(Pages) do
if name == targetPageName then
-- Подготовка новой страницы
page.Visible = true
page.GroupTransparency = 1
-- ИСПРАВЛЕНИЕ: Начальная позиция анимации (70 + 20 = 90)
page.Position = UDim2.new(0, 0, 0, 90)
-- Запускаем анимацию появления (выезжает вверх на позицию 70)
TweenService:Create(page, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
GroupTransparency = 0,
Position = UDim2.new(0, 0, 0, 70) -- ИСПРАВЛЕНИЕ: Конечная позиция ровно под шапкой
}):Play()
else
-- Скрываем старые страницы
page.Visible = false
end
end
end
if not isSubTab then
-- Логика для ГЛАВНЫХ вкладок
if CurrentTab == tabName and SubTabContainers[tabName] then return end
CurrentTab = tabName
for name, btn in pairs(Tabs) do
local active = (name == tabName)
-- Анимация кнопок
local targetBgTransparency = active and 0 or 1
local targetTextColor = active and Theme.Text or Color3.fromRGB(120, 120, 120)
TweenService:Create(btn, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
BackgroundTransparency = targetBgTransparency,
BackgroundColor3 = active and Theme.Accent or Color3.new(1,1,1)
}):Play()
if btn:FindFirstChild("Content") then
TweenService:Create(btn.Content, TweenInfo.new(0.3), {TextColor3 = targetTextColor}):Play()
end
if SubTabContainers[name] then
AnimateContainer(SubTabContainers[name], active)
end
end
if not SubTabContainers[tabName] then
AnimatePageTransition(tabName)
SearchBoxInput.Text = ""
else
local container = SubTabContainers[tabName]
if container then
local firstSubTabBtn = nil
for _, child in pairs(container:GetChildren()) do
if child:IsA("TextButton") then firstSubTabBtn = child break end
end
if firstSubTabBtn then
local contentLabel = firstSubTabBtn:FindFirstChild("PageId")
if contentLabel then SwitchTab(contentLabel.Text, true) end
end
end
end
else
-- Логика для ПОДВКЛАДОК
CurrentSubTab = tabName
for name, btn in pairs(SubTabs) do
local pageIdLabel = btn:FindFirstChild("PageId")
local pageId = pageIdLabel and pageIdLabel.Text or ""
local active = (pageId == tabName)
if btn:FindFirstChild("Content") then
local targetColor = active and Theme.Text or Color3.fromRGB(140, 140, 140)
TweenService:Create(btn.Content, TweenInfo.new(0.3), {TextColor3 = targetColor}):Play()
end
if btn:FindFirstChild("Indicator") then
TweenService:Create(btn.Indicator, TweenInfo.new(0.3), {
BackgroundTransparency = active and 0 or 1,
Size = active and UDim2.fromOffset(3, 18) or UDim2.fromOffset(2, 14)
}):Play()
end
end
AnimatePageTransition(tabName)
SearchBoxInput.Text = ""
end
end
local function CreateTabButton(text, hasSubTabs)
local btn = Create("TextButton", {
Parent = Nav, BackgroundColor3 = Color3.new(1,1,1), BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 40), Text = "", AutoButtonColor = false
}, { Create("UICorner", {CornerRadius = UDim.new(0, 8)}) })
btn.MouseButton1Click:Connect(function() SwitchTab(text) end)
Create("TextLabel", {
Name = "Content", Parent = btn, BackgroundTransparency = 1, Position = UDim2.new(0, 15, 0, 0),
Size = UDim2.new(1, -15, 1, 0), Font = Enum.Font.GothamBold, Text = text,
TextColor3 = Color3.fromRGB(120,120,120), TextSize = 14, TextXAlignment = Enum.TextXAlignment.Left
})
Tabs[text] = btn
if hasSubTabs then
local subContainer = Create("Frame", {
Name = text.."_SubContainer", Parent = Nav, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0),
ClipsDescendants = true, Visible = false
}, {
Create("UIListLayout", {Padding = UDim.new(0, 2), SortOrder = Enum.SortOrder.LayoutOrder}),
Create("UIPadding", {PaddingLeft = UDim.new(0, 10)})
})
SubTabContainers[text] = subContainer
return subContainer
end
return nil
end
local function CreateSubTabButton(parent, text, pageIdOverride)
local targetPageId = pageIdOverride or text
local btn = Create("TextButton", {
Parent = parent, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 30), Text = "", AutoButtonColor = false
})
Create("TextLabel", { Name = "PageId", Parent = btn, Visible = false, Text = targetPageId })
local indicator = Create("Frame", {
Name = "Indicator", Parent = btn, BackgroundColor3 = Theme.Accent, Position = UDim2.new(0, 5, 0.5, -7),
Size = UDim2.fromOffset(2, 14), BackgroundTransparency = 1
}, { Create("UICorner", {CornerRadius = UDim.new(0, 2)}) })
Create("TextLabel", {
Name = "Content", Parent = btn, BackgroundTransparency = 1, Position = UDim2.new(0, 25, 0, 0),
Size = UDim2.new(1, -25, 1, 0), Font = Enum.Font.GothamMedium, Text = text,
TextColor3 = Color3.fromRGB(140, 140, 140), TextSize = 13, TextXAlignment = Enum.TextXAlignment.Left
})
btn.MouseButton1Click:Connect(function() SwitchTab(targetPageId, true) end)
SubTabs[targetPageId] = btn
return btn
end
local function CreatePage(name)
local page = Create("CanvasGroup", {
Name = name,
Parent = Content,
BackgroundTransparency = 1,
-- ИСПРАВЛЕНИЕ: Ставим позицию 70, чтобы не перекрывать Header
Position = UDim2.new(0, 0, 0, 70),
-- ИСПРАВЛЕНИЕ: Вычитаем 70 из высоты, чтобы не вылезало снизу
Size = UDim2.new(1, 0, 1, -70),
Visible = false,
GroupTransparency = 1,
ClipsDescendants = true,
BorderSizePixel = 0
})
local scroll = Create("ScrollingFrame", {
Parent = page,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
CanvasSize = UDim2.new(0, 0, 0, 0),
ScrollBarThickness = 0,
AutomaticCanvasSize = Enum.AutomaticSize.Y
})
local left = Create("Frame", {
Parent = scroll,
BackgroundTransparency = 1,
Size = UDim2.new(0.48, 0, 1, 0)
}, {
Create("UIListLayout", {Padding = UDim.new(0, 15), SortOrder = Enum.SortOrder.LayoutOrder})
})
local right = Create("Frame", {
Parent = scroll,
BackgroundTransparency = 1,
Position = UDim2.new(0.52, 0, 0, 0),
Size = UDim2.new(0.48, 0, 1, 0)
}, {
Create("UIListLayout", {Padding = UDim.new(0, 15), SortOrder = Enum.SortOrder.LayoutOrder})
})
PageColumns[page] = { LeftCol = left, RightCol = right }
Pages[name] = page
return left, right
end
local function AddPanel(parent, title)
local p = Create("Frame", {Parent = parent, BackgroundColor3 = Theme.Sidebar, Size = UDim2.new(1,0,0,0), AutomaticSize = Enum.AutomaticSize.Y}, {
Create("UICorner", {CornerRadius = UDim.new(0,8)}),
Create("UIPadding", {PaddingTop = UDim.new(0,15), PaddingBottom = UDim.new(0,15), PaddingLeft = UDim.new(0,15), PaddingRight = UDim.new(0,15)})
})
Create("TextLabel", {Name="Title", Parent = p, BackgroundTransparency = 1, Size = UDim2.new(1,0,0,20), Font = Enum.Font.GothamBold, Text = title, TextColor3 = Theme.Text, TextSize = 16, TextXAlignment = Enum.TextXAlignment.Left})
local cont = Create("Frame", {Name="Container", Parent = p, BackgroundTransparency = 1, Position = UDim2.new(0,0,0,30), Size = UDim2.new(1,0,0,0), AutomaticSize = Enum.AutomaticSize.Y}, {Create("UIListLayout", {Padding = UDim.new(0, 10), SortOrder = Enum.SortOrder.LayoutOrder})})
return cont
end
--// UI COMPONENTS XYETA
local function AddPlayerAction(parent, name, callback)
local selectedPlayer = "All"
local isProcessing = false
local isOpen = false
local Holder = Create("Frame", { Parent = parent, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 25), ZIndex = 10 })
-- Сохраняем Label в переменную для анимации цвета
local Label = Create("TextLabel", {
Name = "ItemName",
Parent = Holder,
BackgroundTransparency = 1,
Size = UDim2.new(0.3, 0, 1, 0),
Font = Enum.Font.GothamMedium,
Text = name,
TextColor3 = Theme.SubText, -- Начальный цвет (тусклый)
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left
})
local DropdownBtn = Create("TextButton", {
Parent = Holder,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(0.4, 0, 0, 0),
Size = UDim2.new(0.48, 0, 1, 0),
Text = "",
AutoButtonColor = false,
ZIndex = 11
}, { Create("UICorner", {CornerRadius = UDim.new(0, 6)}) })
local DisplayText = Create("TextLabel", {
Parent = DropdownBtn,
BackgroundTransparency = 1,
Position = UDim2.new(0, 10, 0, 0),
Size = UDim2.new(1, -30, 1, 0),
Font = Enum.Font.Gotham,
Text = "All",
TextColor3 = Theme.Text,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 12
})
local Arrow = Create("TextLabel", {
Parent = DropdownBtn,
BackgroundTransparency = 1,
Position = UDim2.new(1, -25, 0, 0),
Size = UDim2.new(0, 20, 1, 0),
Text = "▼",
TextColor3 = Theme.SubText,
TextSize = 10,
Font = Enum.Font.Gotham,
ZIndex = 12
})
local ListContainer = Create("Frame", {
Parent = Holder,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(0.4, 0, 1, 3),
Size = UDim2.new(0.48, 0, 0, 0),
ClipsDescendants = true,
Visible = false,
ZIndex = 100
}, {
Create("UICorner", {CornerRadius = UDim.new(0, 6)}),
Create("UIListLayout", {SortOrder = Enum.SortOrder.LayoutOrder})
})
local function CloseDropdown(instant)
isOpen = false
if instant then
Arrow.Rotation = 0
ListContainer.Size = UDim2.new(0.48, 0, 0, 0)
ListContainer.Visible = false
Holder.ZIndex = 10
else
TweenService:Create(Arrow, TweenInfo.new(0.3), {Rotation = 0}):Play()
local closeTween = TweenService:Create(ListContainer, TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {Size = UDim2.new(0.48, 0, 0, 0)})
closeTween:Play()
closeTween.Completed:Connect(function()
if not isOpen then ListContainer.Visible = false Holder.ZIndex = 10 end
end)
end
end
DropdownBtn.MouseButton1Click:Connect(function()
if isOpen then
CloseDropdown()
OpenedDropdown = nil
else
if OpenedDropdown then OpenedDropdown(true) end
isOpen = true
OpenedDropdown = CloseDropdown
Holder.ZIndex = 100
ListContainer.Visible = true
for _, child in pairs(ListContainer:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end
local targets = {"All"}
for _, p in pairs(Players:GetPlayers()) do
if p ~= LocalPlayer then table.insert(targets, p.Name) end
end
for _, targetName in ipairs(targets) do
local b = Create("TextButton", {
Parent = ListContainer,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 25),
Text = " " .. targetName,
TextColor3 = Theme.SubText,
TextSize = 12,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 101
})
b.MouseButton1Click:Connect(function()
selectedPlayer = targetName
DisplayText.Text = targetName
CloseDropdown()
OpenedDropdown = nil
end)
end
local targetHeight = math.min(#targets * 25, 150)
TweenService:Create(Arrow, TweenInfo.new(0.3), {Rotation = 180}):Play()
TweenService:Create(ListContainer, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0.48, 0, 0, targetHeight)}):Play()
end
end)
-- ЧЕКБОКС
local CheckboxFrame = Create("Frame", {
Parent = Holder,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(1, 0, 0.5, 0),
AnchorPoint = Vector2.new(1, 0.5),
Size = UDim2.fromOffset(18, 18),
ZIndex = 11
}, { Create("UICorner", {CornerRadius = UDim.new(0, 4)}) })
local Fill = Create("Frame", {
Parent = CheckboxFrame,
BackgroundColor3 = Theme.Accent,
Position = UDim2.new(0.5, 0, 0.5, 0),
AnchorPoint = Vector2.new(0.5, 0.5),
Size = UDim2.fromOffset(0, 0),
ZIndex = 12
}, { Create("UICorner", {CornerRadius = UDim.new(0, 2)}) })
local ActionBtn = Create("TextButton", {
Parent = CheckboxFrame,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
Text = "",
ZIndex = 13
})
ActionBtn.MouseButton1Click:Connect(function()
if isProcessing then return end
isProcessing = true
-- АНИМАЦИЯ ВКЛЮЧЕНИЯ: Чекбокс + Текст
TweenService:Create(Fill, TweenInfo.new(0.2), {Size = UDim2.fromOffset(12, 12)}):Play()
TweenService:Create(Label, TweenInfo.new(0.2), {TextColor3 = Theme.Text}):Play()
if callback then
if selectedPlayer == "All" then
local allOthers = {}
for _, p in pairs(Players:GetPlayers()) do
if p ~= LocalPlayer then table.insert(allOthers, p) end
end
callback(allOthers, true)
else
callback(Players:FindFirstChild(selectedPlayer), false)
end
end
task.delay(0.5, function()
-- АНИМАЦИЯ ВЫКЛЮЧЕНИЯ: Чекбокс + Текст (возврат к SubText)
TweenService:Create(Fill, TweenInfo.new(0.2), {Size = UDim2.fromOffset(0, 0)}):Play()
TweenService:Create(Label, TweenInfo.new(0.2), {TextColor3 = Theme.SubText}):Play()
isProcessing = false
end)
end)
return Holder
end
local function AddDropdown(parent, name, options, callback)
local selectedOption = options[1] and options[1].value or ""
local isProcessing = false
local isOpen = false
local Holder = Create("Frame", { Parent = parent, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 25), ZIndex = 10 })
-- Label с возможностью анимации цвета
local Label = Create("TextLabel", {
Name = "ItemName",
Parent = Holder,
BackgroundTransparency = 1,
Size = UDim2.new(0.3, 0, 1, 0),
Font = Enum.Font.GothamMedium,
Text = name,
TextColor3 = Theme.SubText,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left
})
local DropdownBtn = Create("TextButton", {
Parent = Holder,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(0.4, 0, 0, 0),
Size = UDim2.new(0.48, 0, 1, 0),
Text = "",
AutoButtonColor = false,
ZIndex = 11
}, { Create("UICorner", {CornerRadius = UDim.new(0, 6)}) })
local DisplayText = Create("TextLabel", {
Parent = DropdownBtn,
BackgroundTransparency = 1,
Position = UDim2.new(0, 10, 0, 0),
Size = UDim2.new(1, -30, 1, 0),
Font = Enum.Font.Gotham,
Text = options[1] and options[1].text or "Select",
TextColor3 = Theme.Text,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 12
})
local Arrow = Create("TextLabel", {
Parent = DropdownBtn,
BackgroundTransparency = 1,
Position = UDim2.new(1, -25, 0, 0),
Size = UDim2.new(0, 20, 1, 0),
Text = "▼",
TextColor3 = Theme.SubText,
TextSize = 10,
Font = Enum.Font.Gotham,
ZIndex = 12
})
local ListContainer = Create("Frame", {
Parent = Holder,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(0.4, 0, 1, 3),
Size = UDim2.new(0.48, 0, 0, 0),
ClipsDescendants = true,
Visible = false,
ZIndex = 100
}, {
Create("UICorner", {CornerRadius = UDim.new(0, 6)}),
Create("UIListLayout", {SortOrder = Enum.SortOrder.LayoutOrder})
})
local function CloseDropdown(instant)
isOpen = false
if instant then
Arrow.Rotation = 0
ListContainer.Size = UDim2.new(0.48, 0, 0, 0)
ListContainer.Visible = false
Holder.ZIndex = 10
else
TweenService:Create(Arrow, TweenInfo.new(0.3), {Rotation = 0}):Play()
local closeTween = TweenService:Create(ListContainer, TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {Size = UDim2.new(0.48, 0, 0, 0)})
closeTween:Play()
closeTween.Completed:Connect(function()
if not isOpen then
ListContainer.Visible = false
Holder.ZIndex = 10
end
end)
end
end
DropdownBtn.MouseButton1Click:Connect(function()
if isOpen then
CloseDropdown()
OpenedDropdown = nil
else
if OpenedDropdown then OpenedDropdown(true) end
isOpen = true
OpenedDropdown = CloseDropdown
Holder.ZIndex = 100
ListContainer.Visible = true
for _, child in pairs(ListContainer:GetChildren()) do
if child:IsA("TextButton") then child:Destroy() end
end
for _, option in ipairs(options) do
local b = Create("TextButton", {
Parent = ListContainer,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 25),
Text = " " .. option.text,
TextColor3 = Theme.SubText,
TextSize = 12,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 101
})
b.MouseButton1Click:Connect(function()
selectedOption = option.value
DisplayText.Text = option.text
CloseDropdown()
OpenedDropdown = nil
end)
end
local targetHeight = math.min(#options * 25, 150)
TweenService:Create(Arrow, TweenInfo.new(0.3), {Rotation = 180}):Play()
TweenService:Create(ListContainer, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Size = UDim2.new(0.48, 0, 0, targetHeight)
}):Play()
end
end)
-- ЧЕКБОКС для применения
local CheckboxFrame = Create("Frame", {
Parent = Holder,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(1, 0, 0.5, 0),
AnchorPoint = Vector2.new(1, 0.5),
Size = UDim2.fromOffset(18, 18),
ZIndex = 11
}, { Create("UICorner", {CornerRadius = UDim.new(0, 4)}) })
local Fill = Create("Frame", {
Parent = CheckboxFrame,
BackgroundColor3 = Theme.Accent,
Position = UDim2.new(0.5, 0, 0.5, 0),
AnchorPoint = Vector2.new(0.5, 0.5),
Size = UDim2.fromOffset(0, 0),
ZIndex = 12
}, { Create("UICorner", {CornerRadius = UDim.new(0, 2)}) })
local ActionBtn = Create("TextButton", {
Parent = CheckboxFrame,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
Text = "",
ZIndex = 13
})
ActionBtn.MouseButton1Click:Connect(function()
if isProcessing then return end
isProcessing = true
-- Анимация включения
TweenService:Create(Fill, TweenInfo.new(0.2), {Size = UDim2.fromOffset(12, 12)}):Play()
TweenService:Create(Label, TweenInfo.new(0.2), {TextColor3 = Theme.Text}):Play()
if callback then
callback(selectedOption)
end
task.delay(0.5, function()
-- Анимация выключения
TweenService:Create(Fill, TweenInfo.new(0.2), {Size = UDim2.fromOffset(0, 0)}):Play()
TweenService:Create(Label, TweenInfo.new(0.2), {TextColor3 = Theme.SubText}):Play()
isProcessing = false
end)
end)
return Holder
end
local function AddESPToggle(parent, name, defaultColor, callback)
local enabled = false
local currentColor = defaultColor or Color3.fromRGB(255, 255, 255)
local outlineColor = Color3.fromRGB(0, 0, 0)
local Holder = Create("Frame", { Parent = parent, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 25) })
local RowBtn = Create("TextButton", {
Parent = Holder,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
Text = "",
ZIndex = 1,
AutoButtonColor = false
})
local Label = Create("TextLabel", {
Name = "ItemName",
Parent = Holder,
BackgroundTransparency = 1,
Size = UDim2.new(0.4, 0, 1, 0),
Font = Enum.Font.GothamMedium,
Text = name,
TextColor3 = enabled and Theme.Text or Theme.SubText,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 2
})
local Controls = Create("Frame", {
Parent = Holder,
BackgroundTransparency = 1,
Position = UDim2.new(1, 0, 0, 0),
Size = UDim2.new(0, 160, 1, 0),
AnchorPoint = Vector2.new(1, 0),
ZIndex = 10,
Active = true
})
Create("UIListLayout", {
Parent = Controls,
SortOrder = Enum.SortOrder.LayoutOrder,
FillDirection = Enum.FillDirection.Horizontal,
HorizontalAlignment = Enum.HorizontalAlignment.Right,
VerticalAlignment = Enum.VerticalAlignment.Center,
Padding = UDim.new(0, 14)
})
local Checkbox = Create("Frame", {
Parent = Controls,
BackgroundColor3 = Theme.Input,
Size = UDim2.fromOffset(18, 18),
LayoutOrder = 3
}, { Create("UICorner", {CornerRadius = UDim.new(0, 4)}) })
local CheckFill = Create("Frame", {
Parent = Checkbox,
BackgroundColor3 = Theme.Accent,
Position = UDim2.new(0.5, 0, 0.5, 0),
AnchorPoint = Vector2.new(0.5, 0.5),
Size = enabled and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0)
}, { Create("UICorner", {CornerRadius = UDim.new(0, 2)}) })
local ColorCircle = Create("ImageButton", {
Parent = Controls,
BackgroundColor3 = currentColor,
Size = UDim2.fromOffset(16, 16),
LayoutOrder = 2,
ZIndex = 15,
AutoButtonColor = false,
Active = true,
Image = ""
}, {
Create("UICorner", {CornerRadius = UDim.new(1, 0)}),
Create("UIStroke", { Name = "Stroke", Color = outlineColor, Thickness = 1.5 })
})
local Stroke = ColorCircle:FindFirstChild("Stroke")
local HexInput = Create("TextBox", {
Parent = Controls,
BackgroundColor3 = Theme.Input,
Size = UDim2.new(0, 0, 0, 18),
Visible = false,
Text = "",
PlaceholderText = "#HEX",
TextColor3 = Color3.new(1,1,1),
Font = Enum.Font.Gotham,
TextSize = 10,
LayoutOrder = 1,
ClipsDescendants = true,
ZIndex = 15
}, { Create("UICorner", {CornerRadius = UDim.new(0, 4)}) })
-- Функция для конвертации Color3 в HEX
local function Color3ToHex(color)
local r = math.floor(color.r * 255)
local g = math.floor(color.g * 255)
local b = math.floor(color.b * 255)
return string.format("#%02X%02X%02X", r, g, b)
end
local function Toggle()
enabled = not enabled
TweenService:Create(CheckFill, TweenInfo.new(0.2), {
Size = enabled and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0)
}):Play()
TweenService:Create(Label, TweenInfo.new(0.2), {
TextColor3 = enabled and Theme.Text or Theme.SubText
}):Play()
if callback then
callback(enabled, currentColor, outlineColor)
end
end
RowBtn.MouseButton1Click:Connect(Toggle)
HexInput:GetPropertyChangedSignal("Text"):Connect(function()
local text = HexInput.Text
local clean = text:gsub("[^%x]", ""):sub(1, 6):upper()
local formatted = "#" .. clean
if text ~= formatted then
HexInput.Text = formatted
HexInput.CursorPosition = #formatted + 1
end
end)
ColorCircle.MouseButton1Click:Connect(function()
if HexInput.Visible then return end
HexInput.Visible = true
HexInput.Text = Color3ToHex(currentColor)
HexInput:CaptureFocus()
TweenService:Create(HexInput, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Size = UDim2.new(0, 65, 0, 18)
}):Play()
end)
ColorCircle.MouseButton2Click:Connect(function()
outlineColor = (outlineColor == Color3.new(0,0,0)) and Color3.new(1,1,1) or Color3.new(0,0,0)
TweenService:Create(Stroke, TweenInfo.new(0.3), {Color = outlineColor}):Play()
if callback then
callback(enabled, currentColor, outlineColor)
end
end)
HexInput.FocusLost:Connect(function(enter)
if enter then
local nc = FromHex(HexInput.Text)
if nc then
currentColor = nc
TweenService:Create(ColorCircle, TweenInfo.new(0.3), {
BackgroundColor3 = currentColor
}):Play()
end
end
local t = TweenService:Create(HexInput, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {
Size = UDim2.new(0, 0, 0, 18)
})
t:Play()
t.Completed:Connect(function()
HexInput.Visible = false
end)
if callback then
callback(enabled, currentColor, outlineColor)
end
end)
-- Сохраняем элемент для конфигов
local elementId = name .. "_ESP"
UI_Elements.ESPToggles[elementId] = {
holder = Holder,
name = name,
getState = function()
return {
enabled = enabled,
color = {r = currentColor.r, g = currentColor.g, b = currentColor.b},
outlineColor = {r = outlineColor.r, g = outlineColor.g, b = outlineColor.b}
}
end,
setState = function(state)
enabled = state.enabled
currentColor = Color3.new(state.color.r, state.color.g, state.color.b)
outlineColor = Color3.new(state.outlineColor.r, state.outlineColor.g, state.outlineColor.b)
-- Обновляем визуал
CheckFill.Size = enabled and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0)
Label.TextColor3 = enabled and Theme.Text or Theme.SubText
ColorCircle.BackgroundColor3 = currentColor
Stroke.Color = outlineColor
-- Вызываем коллбек
if callback then
callback(enabled, currentColor, outlineColor)
end
end
}
return Holder
end
local function AddESPSizeToggle(parent, name, defaultColor, callback)
local enabled = false
local currentColor = defaultColor or Color3.fromRGB(255, 255, 255)
local outlineColor = Color3.fromRGB(0, 0, 0)
local selectedSize = "Auto"
local Holder = Create("Frame", {
Parent = parent,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 25),
ZIndex = 10
})
local RowBtn = Create("TextButton", {
Parent = Holder,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
Text = "",
ZIndex = 1,
AutoButtonColor = false
})
local Label = Create("TextLabel", {
Parent = Holder,
BackgroundTransparency = 1,
Size = UDim2.new(0.4, 0, 1, 0),
Font = Enum.Font.GothamMedium,
Text = name,
TextColor3 = enabled and Theme.Text or Theme.SubText,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 2
})
local Controls = Create("Frame", {
Parent = Holder,
BackgroundTransparency = 1,
Position = UDim2.new(1, 0, 0.5, 0),
AnchorPoint = Vector2.new(1, 0.5),
Size = UDim2.new(0, 0, 1, 0),
AutomaticSize = Enum.AutomaticSize.X,
ZIndex = 10
})
Create("UIListLayout", {
Parent = Controls,
SortOrder = Enum.SortOrder.LayoutOrder,
FillDirection = Enum.FillDirection.Horizontal,
HorizontalAlignment = Enum.HorizontalAlignment.Right,
VerticalAlignment = Enum.VerticalAlignment.Center,
Padding = UDim.new(0, 14)
})
local Checkbox = Create("Frame", {
Parent = Controls,
BackgroundColor3 = Theme.Input,
Size = UDim2.fromOffset(18, 18),
LayoutOrder = 10
}, { Create("UICorner", {CornerRadius = UDim.new(0, 4)}) })
local CheckFill = Create("Frame", {
Parent = Checkbox,
BackgroundColor3 = Theme.Accent,
Position = UDim2.new(0.5, 0, 0.5, 0),
AnchorPoint = Vector2.new(0.5, 0.5),
Size = enabled and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0)
}, { Create("UICorner", {CornerRadius = UDim.new(0, 2)}) })
local ColorCircle = Create("ImageButton", {
Parent = Controls,
BackgroundColor3 = currentColor,
Size = UDim2.fromOffset(16, 16),
LayoutOrder = 9,
ZIndex = 15,
AutoButtonColor = false,
Active = true,
Image = ""
}, {
Create("UICorner", {CornerRadius = UDim.new(1, 0)}),
Create("UIStroke", { Name = "Stroke", Color = outlineColor, Thickness = 1.5 })
})
local Stroke = ColorCircle:FindFirstChild("Stroke")
local HexInput = Create("TextBox", {
Parent = Controls,
BackgroundColor3 = Theme.Input,
Size = UDim2.new(0, 0, 0, 18),
Visible = false,
Text = "",
PlaceholderText = "#HEX",
TextColor3 = Color3.new(1,1,1),
Font = Enum.Font.Gotham,
TextSize = 10,
LayoutOrder = 8,
ClipsDescendants = true,
ZIndex = 20
}, { Create("UICorner", {CornerRadius = UDim.new(0, 4)}) })
local SizeInput = Create("TextBox", {
Parent = Controls,
BackgroundColor3 = Theme.Input,
Size = UDim2.fromOffset(40, 18),
Text = selectedSize,
TextColor3 = Theme.Text,
Font = Enum.Font.Gotham,
TextSize = 10,
LayoutOrder = 7,
ZIndex = 20,
ClearTextOnFocus = true,
ClipsDescendants = true
}, { Create("UICorner", {CornerRadius = UDim.new(0, 4)}) })
-- Функция для конвертации Color3 в HEX
local function Color3ToHex(color)
local r = math.floor(color.r * 255)
local g = math.floor(color.g * 255)
local b = math.floor(color.b * 255)
return string.format("#%02X%02X%02X", r, g, b)
end
local function Toggle()
enabled = not enabled
TweenService:Create(CheckFill, TweenInfo.new(0.2), {
Size = enabled and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0)
}):Play()
TweenService:Create(Label, TweenInfo.new(0.2), {
TextColor3 = enabled and Theme.Text or Theme.SubText
}):Play()
if callback then
callback(enabled, currentColor, outlineColor, selectedSize)
end
end
RowBtn.MouseButton1Click:Connect(Toggle)
SizeInput:GetPropertyChangedSignal("Text"):Connect(function()
if #SizeInput.Text > 5 then
SizeInput.Text = SizeInput.Text:sub(1, 5)
end
end)
SizeInput.FocusLost:Connect(function()
local val = SizeInput.Text:gsub("[^%d]", "")
local num = tonumber(val)
if num and num >= 1 and num <= 99 then
selectedSize = num
SizeInput.Text = num .. "px"
else
selectedSize = "Auto"
SizeInput.Text = "Auto"
end
if callback then
callback(enabled, currentColor, outlineColor, selectedSize)
end
end)
HexInput:GetPropertyChangedSignal("Text"):Connect(function()
local text = HexInput.Text
local clean = text:gsub("[^%x]", ""):sub(1, 6):upper()
local formatted = "#" .. clean
if text ~= formatted then
HexInput.Text = formatted
HexInput.CursorPosition = #formatted + 1
end
end)
ColorCircle.MouseButton1Click:Connect(function()
if HexInput.Visible then return end
HexInput.Visible = true
HexInput.Text = Color3ToHex(currentColor)
HexInput:CaptureFocus()
TweenService:Create(HexInput, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Size = UDim2.new(0, 65, 0, 18)
}):Play()
end)
ColorCircle.MouseButton2Click:Connect(function()
outlineColor = (outlineColor == Color3.new(0,0,0)) and Color3.new(1,1,1) or Color3.new(0,0,0)
TweenService:Create(Stroke, TweenInfo.new(0.3), {Color = outlineColor}):Play()
if callback then
callback(enabled, currentColor, outlineColor, selectedSize)
end
end)
HexInput.FocusLost:Connect(function(enter)
if enter then
local nc = FromHex(HexInput.Text)
if nc then
currentColor = nc
TweenService:Create(ColorCircle, TweenInfo.new(0.3), {
BackgroundColor3 = currentColor
}):Play()
end
end
local t = TweenService:Create(HexInput, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {
Size = UDim2.new(0, 0, 0, 18)
})
t:Play()
t.Completed:Connect(function()
HexInput.Visible = false
end)
if callback then
callback(enabled, currentColor, outlineColor, selectedSize)
end
end)
-- Сохраняем элемент для конфигов
local elementId = name .. "_ESPSize"
UI_Elements.ESPSizeToggles[elementId] = {
holder = Holder,
name = name,
getState = function()
return {
enabled = enabled,
color = {r = currentColor.r, g = currentColor.g, b = currentColor.b},
outlineColor = {r = outlineColor.r, g = outlineColor.g, b = outlineColor.b},
size = selectedSize
}
end,
setState = function(state)
enabled = state.enabled
currentColor = Color3.new(state.color.r, state.color.g, state.color.b)
outlineColor = Color3.new(state.outlineColor.r, state.outlineColor.g, state.outlineColor.b)
selectedSize = state.size or "Auto"
-- Обновляем визуал
CheckFill.Size = enabled and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0)
Label.TextColor3 = enabled and Theme.Text or Theme.SubText
ColorCircle.BackgroundColor3 = currentColor
Stroke.Color = outlineColor
SizeInput.Text = selectedSize == "Auto" and "Auto" or tostring(selectedSize) .. "px"
-- Вызываем коллбек
if callback then
callback(enabled, currentColor, outlineColor, selectedSize)
end
end
}
return Holder
end
local function AddKey(parent, name, options)
if typeof(options) == "EnumItem" then
options = {key = options}
end
options = options or {}
local defaultKey = options.key or Enum.KeyCode.Unknown
local defaultMode = options.mode or "Toggle"
local defaultState = options.state or false
local callback = options.callback or function() end
local onlyToggle = options.onlyToggle or false
local currentKey = defaultKey
local currentMode = defaultMode
local currentState = defaultState
local functionActive = false
local keyConnection
local keyUpConnection
local isListening = false
local listeningConnection
local f = Create("Frame", {
Parent = parent,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 25)
})
local NameLabel = Create("TextLabel", {
Name = "ItemName",
Parent = f,
BackgroundTransparency = 1,
Size = UDim2.new(1, -130, 1, 0),
Font = Enum.Font.GothamMedium,
Text = name,
TextColor3 = currentState and Theme.Text or Theme.SubText,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left
})
local box = Create("Frame", {
Parent = f,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(1, 0, 0.5, 0),
Size = UDim2.fromOffset(18, 18),
AnchorPoint = Vector2.new(1, 0.5)
}, {
Create("UICorner", {CornerRadius = UDim.new(0, 4)})
})
local redSquare = Create("Frame", {
Parent = box,
BackgroundColor3 = Theme.Accent,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = currentState and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0),
AnchorPoint = Vector2.new(0.5, 0.5)
}, {
Create("UICorner", {CornerRadius = UDim.new(0, 2)})
})
local toggleBtn = Instance.new("TextButton", box)
toggleBtn.BackgroundTransparency = 1
toggleBtn.Size = UDim2.new(1, 0, 1, 0)
toggleBtn.Text = ""
local function updateState(newState)
currentState = newState
TweenService:Create(redSquare, TweenInfo.new(0.2), {
Size = currentState and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0)
}):Play()
TweenService:Create(NameLabel, TweenInfo.new(0.2), {
TextColor3 = currentState and Theme.Text or Theme.SubText
}):Play()
if not currentState and functionActive then
functionActive = false
callback(false)
end
end
local function createConnections()
if keyConnection then
keyConnection:Disconnect()
keyConnection = nil
end
if keyUpConnection then
keyUpConnection:Disconnect()
keyUpConnection = nil
end
if currentKey ~= Enum.KeyCode.Unknown and currentState then
if currentMode == "Toggle" then
keyConnection = UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode == currentKey then
if input.UserInputState == Enum.UserInputState.Begin then
functionActive = not functionActive
callback(functionActive)
end
end
end)
elseif currentMode == "Hold" then
keyConnection = UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode == currentKey then
if input.UserInputState == Enum.UserInputState.Begin then
callback(true)
end
end
end)
keyUpConnection = UserInputService.InputEnded:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode == currentKey then
if input.UserInputState == Enum.UserInputState.End then
callback(false)
end
end
end)
end
end
end
toggleBtn.MouseButton1Click:Connect(function()
updateState(not currentState)
createConnections()
end)
local keyBtn = Create("TextButton", {
Parent = f,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(1, -25, 0.5, 0),
Size = UDim2.fromOffset(50, 18),
AnchorPoint = Vector2.new(1, 0.5),
Text = GetKeyName(currentKey),
Font = Enum.Font.Gotham,
TextSize = 11,
TextColor3 = Theme.SubText,
AutoButtonColor = false
}, {
Create("UICorner", {CornerRadius = UDim.new(0, 4)})
})
local modeBtn
if not onlyToggle then
modeBtn = Create("TextButton", {
Parent = f,
BackgroundTransparency = 1,
Position = UDim2.new(1, -80, 0.5, 0),
Size = UDim2.fromOffset(40, 18),
AnchorPoint = Vector2.new(1, 0.5),
Text = currentMode,
Font = Enum.Font.Gotham,
TextSize = 11,
TextColor3 = Theme.SubText
})
modeBtn.MouseButton1Click:Connect(function()
if functionActive then
functionActive = false
callback(false)
end
currentMode = (currentMode == "Toggle") and "Hold" or "Toggle"
modeBtn.Text = currentMode
createConnections()
end)
else
currentMode = "Toggle"
end
keyBtn.MouseButton1Click:Connect(function()
if isListening then return end
isListening = true
keyBtn.Text = "..."
keyBtn.TextColor3 = Theme.Accent
if listeningConnection then
listeningConnection:Disconnect()
listeningConnection = nil
end
listeningConnection = UserInputService.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
if input.KeyCode == Enum.KeyCode.Escape or input.KeyCode == Enum.KeyCode.Backspace then
currentKey = Enum.KeyCode.Unknown
else
currentKey = input.KeyCode
end
keyBtn.Text = GetKeyName(currentKey)
keyBtn.TextColor3 = Theme.SubText
isListening = false
if listeningConnection then
listeningConnection:Disconnect()
listeningConnection = nil
end
createConnections()
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
isListening = false
keyBtn.Text = GetKeyName(currentKey)
keyBtn.TextColor3 = Theme.SubText
if listeningConnection then
listeningConnection:Disconnect()
listeningConnection = nil
end
end
end)
end)
createConnections()
f.Destroying:Connect(function()
if keyConnection then
keyConnection:Disconnect()
keyConnection = nil
end
if keyUpConnection then
keyUpConnection:Disconnect()
keyUpConnection = nil
end
if listeningConnection then
listeningConnection:Disconnect()
listeningConnection = nil
end
end)
-- Сохраняем элемент для конфигов
local elementId = name .. "_Key"
UI_Elements.Keys[elementId] = {
holder = f,
name = name,
getState = function()
return {
key = currentKey.Name,
mode = currentMode,
state = currentState
}
end,
setState = function(state)
currentKey = Enum.KeyCode[state.key] or Enum.KeyCode.Unknown
currentMode = state.mode
currentState = state.state
-- Обновляем визуал
redSquare.Size = currentState and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0)
NameLabel.TextColor3 = currentState and Theme.Text or Theme.SubText
keyBtn.Text = GetKeyName(currentKey)
if modeBtn then
modeBtn.Text = currentMode
end
-- Пересоздаем соединения
createConnections()
-- Если состояние активно, вызываем коллбек
if currentState then
if currentMode == "Toggle" then
functionActive = true
callback(true)
end
end
end
}
return f
end
local function AddOneTimeToggle(parent, name, callback)
local enabled = false
local f = Create("Frame", {Parent = parent, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 25)})
local itemNameLabel = Create("TextLabel", {
Name = "ItemName",
Parent = f,
BackgroundTransparency = 1,
Size = UDim2.new(0.6, 0, 1, 0),
Font = Enum.Font.GothamMedium,
Text = name,
TextColor3 = Theme.SubText,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left
})
local box = Create("Frame", {
Parent = f,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(1, 0, 0.5, 0),
Size = UDim2.fromOffset(18, 18),
AnchorPoint = Vector2.new(1, 0.5)
}, {Create("UICorner", {CornerRadius = UDim.new(0, 4)})})
local redSquare = Create("Frame", {
Parent = box,
BackgroundColor3 = Theme.Accent,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.fromOffset(0, 0),
AnchorPoint = Vector2.new(0.5, 0.5)
}, {Create("UICorner", {CornerRadius = UDim.new(0, 2)})})
local btn = Instance.new("TextButton", f)
btn.BackgroundTransparency = 1
btn.Size = UDim2.new(1, 0, 1, 0)
btn.Text = ""
btn.MouseButton1Click:Connect(function()
if not enabled then
enabled = true
TweenService:Create(redSquare, TweenInfo.new(0.2), {Size = UDim2.fromOffset(12, 12)}):Play()
TweenService:Create(itemNameLabel, TweenInfo.new(0.2), {TextColor3 = Theme.Text}):Play()
if callback then callback(true) end
end
end)
return f
end
local function AddSlider(parent, name, minValue, maxValue, defaultValue, callback)
local currentValue = defaultValue
local f = Create("Frame", {
Parent = parent,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 25)
})
local LeftContainer = Create("Frame", {
Parent = f,
BackgroundTransparency = 1,
Size = UDim2.new(0.35, 0, 1, 0)
})
local NameLabel = Create("TextLabel", {
Name = "ItemName",
Parent = LeftContainer,
BackgroundTransparency = 1,
Size = UDim2.new(0.6, 0, 1, 0),
Font = Enum.Font.GothamMedium,
Text = name,
TextColor3 = Theme.Text,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left
})
local ValueLabel = Create("TextLabel", {
Parent = LeftContainer,
BackgroundTransparency = 1,
Position = UDim2.new(0.6, 0, 0, 0),
Size = UDim2.new(0.4, 0, 1, 0),
Font = Enum.Font.Gotham,
Text = tostring(defaultValue),
TextColor3 = Theme.SubText,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Right,
TextYAlignment = Enum.TextYAlignment.Center
})
local bg = Create("Frame", {
Parent = f,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(0.35, 10, 0.5, -3),
Size = UDim2.new(0.65, -10, 0, 6)
}, {
Create("UICorner", {CornerRadius = UDim.new(1, 0)})
})
local initialPos = (defaultValue - minValue) / (maxValue - minValue)
local fill = Create("Frame", {
Parent = bg,
BackgroundColor3 = Theme.Accent,
Size = UDim2.new(initialPos, 0, 1, 0)
}, {
Create("UICorner", {CornerRadius = UDim.new(1, 0)})
})
local handle = Create("Frame", {
Parent = fill,
BackgroundColor3 = Theme.Accent,
Position = UDim2.new(1, 0, 0.5, 0),
Size = UDim2.fromOffset(10, 10),
AnchorPoint = Vector2.new(0.5, 0.5)
}, {
Create("UICorner", {CornerRadius = UDim.new(1, 0)}),
Create("UIStroke", {Color = Theme.Sidebar, Thickness = 2})
})
local isDragging = false
local dragStart = Vector2.new(0, 0)
local startPos = 0
local bgBtn = Create("TextButton", {
Parent = bg,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 3, 0),
Position = UDim2.new(0, 0, -1, 0),
Text = "",
AutoButtonColor = false,
ZIndex = 5
})
local function UpdateSlide(input)
if not isDragging then return end
local mousePos = input.Position
local bgAbsolutePos = bg.AbsolutePosition
local bgAbsoluteSize = bg.AbsoluteSize
local pos = math.clamp((mousePos.X - bgAbsolutePos.X) / bgAbsoluteSize.X, 0, 1)
local value = minValue + (pos * (maxValue - minValue))
local isDecimalRange = (maxValue - minValue <= 10) or (minValue % 1 ~= 0) or (maxValue % 1 ~= 0)
if isDecimalRange then
local precision = 1
if name == "CAR itself" then
precision = 2
end
value = math.floor(value * (10 ^ precision) + 0.5) / (10 ^ precision)
ValueLabel.Text = string.format("%."..precision.."f", value)
else
value = math.round(value)
ValueLabel.Text = tostring(value)
end
currentValue = value
TweenService:Create(fill, TweenInfo.new(0.05, Enum.EasingStyle.Linear), {
Size = UDim2.new(pos, 0, 1, 0)
}):Play()
if callback then
callback(value)
end
end
bgBtn.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
isDragging = true
dragStart = input.Position
startPos = fill.Size.X.Scale
TweenService:Create(handle, TweenInfo.new(0.15), {
Size = UDim2.fromOffset(12, 12)
}):Play()
UpdateSlide(input)
end
end)
UserInputService.InputChanged:Connect(function(input)
if isDragging and input.UserInputType == Enum.UserInputType.MouseMovement then
UpdateSlide(input)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 and isDragging then
isDragging = false
TweenService:Create(handle, TweenInfo.new(0.15), {
Size = UDim2.fromOffset(10, 10)
}):Play()
end
end)
bgBtn.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
isDragging = false
TweenService:Create(handle, TweenInfo.new(0.15), {
Size = UDim2.fromOffset(10, 10)
}):Play()
end
end)
-- Сохраняем элемент для конфигов
local elementId = name .. "_Slider"
UI_Elements.Sliders[elementId] = {
holder = f,
name = name,
getState = function()
return {
value = currentValue,
min = minValue,
max = maxValue
}
end,
setState = function(state)
currentValue = state.value
-- Обновляем визуал
local pos = (currentValue - minValue) / (maxValue - minValue)
fill.Size = UDim2.new(pos, 0, 1, 0)
local isDecimalRange = (maxValue - minValue <= 10) or (minValue % 1 ~= 0) or (maxValue % 1 ~= 0)
if isDecimalRange then
local precision = 1
if name == "CAR itself" then
precision = 2
end
ValueLabel.Text = string.format("%."..precision.."f", currentValue)
else
ValueLabel.Text = tostring(currentValue)
end
-- Вызываем коллбек
if callback then
callback(currentValue)
end
end
}
return f
end
local function AddToggle(parent, name, on, callback)
local enabled = on
local f = Create("Frame", {
Parent = parent,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 25)
})
local itemNameLabel = Create("TextLabel", {
Name = "ItemName",
Parent = f,
BackgroundTransparency = 1,
Size = UDim2.new(0.6, 0, 1, 0),
Font = Enum.Font.GothamMedium,
Text = name,
TextColor3 = enabled and Theme.Text or Theme.SubText,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left
})
local box = Create("Frame", {
Parent = f,
BackgroundColor3 = Theme.Input,
Position = UDim2.new(1, 0, 0.5, 0),
Size = UDim2.fromOffset(18, 18),
AnchorPoint = Vector2.new(1, 0.5)
}, {
Create("UICorner", {CornerRadius = UDim.new(0, 4)})
})
local redSquare = Create("Frame", {
Parent = box,
BackgroundColor3 = Theme.Accent,
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = enabled and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0),
AnchorPoint = Vector2.new(0.5, 0.5)
}, {
Create("UICorner", {CornerRadius = UDim.new(0, 2)})
})
local btn = Instance.new("TextButton", f)
btn.BackgroundTransparency = 1
btn.Size = UDim2.new(1, 0, 1, 0)
btn.Text = ""
btn.MouseButton1Click:Connect(function()
enabled = not enabled
TweenService:Create(redSquare, TweenInfo.new(0.2), {
Size = enabled and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0)
}):Play()
TweenService:Create(itemNameLabel, TweenInfo.new(0.2), {
TextColor3 = enabled and Theme.Text or Theme.SubText
}):Play()
if callback then
callback(enabled)
end
end)
-- Сохраняем элемент для конфигов
local elementId = name .. "_Toggle"
UI_Elements.Toggles[elementId] = {
holder = f,
name = name,
getState = function()
return { enabled = enabled }
end,
setState = function(state)
enabled = state.enabled
-- Обновляем визуал
redSquare.Size = enabled and UDim2.fromOffset(12, 12) or UDim2.fromOffset(0, 0)
itemNameLabel.TextColor3 = enabled and Theme.Text or Theme.SubText
-- Вызываем коллбек
if callback then
callback(enabled)
end
end
}
return f
end
--//TABS XYETA
local MainTab = CreateTabButton("Main", true)
CreateSubTabButton(MainTab, "Legit")
CreateSubTabButton(MainTab, "Rage")
local VisualsTab = CreateTabButton("Visuals", true)
CreateSubTabButton(VisualsTab, "Main", "VisualsMain")
CreateSubTabButton(VisualsTab, "Misc", "VisualsMisc")
local ConfigsTab = CreateTabButton("Configs", false)
local L_Left, L_Right = CreatePage("Legit")
local MovementPanel = AddPanel(L_Left, "Movement")
AddKey(MovementPanel, "Speed Changer", {
mode = "Toggle", -- Можно изменить на Hold
callback = function(state)
updateFixedSpeedChanger(state, fixedSpeedValue)
end
})
AddSlider(MovementPanel, "SC itself", 5, 100, 15, function(value)
fixedSpeedValue = value
if fixedSpeedEnabled then
updateFixedSpeedChanger(true, value)
end
end)
AddToggle(MovementPanel, "VaultSpeed Changer", false, function(state)
updateVaultSpeedChanger(state, vaultSpeedValue)
end)
AddSlider(MovementPanel, "VSC itself", 0.01, 1.23, 1.0, function(value)
vaultSpeedValue = math.floor(value * 100) / 100
if vaultSpeedEnabled then
updateVaultSpeedChanger(true, vaultSpeedValue)
end
end)
AddKey(MovementPanel, "12stud Teleport", {
mode = "Toggle",
callback = function(state)
if state then
teleportForward()
end
onlyToggle = true
end
})
AddKey(MovementPanel, "NAF", {
mode = "Toggle",
callback = function(state)
updateNAF(state)
end,
onlyToggle = true
})
AddKey(MovementPanel, "Auto Moonwalk", {
mode = "Toggle",
callback = function(state)
updateAutoMoonwalk(state)
end,
onlyToggle = true -- Только Toggle режим, без Hold
})
local UnnamedPanel = AddPanel(L_Right, "Unnamed")
AddToggle(UnnamedPanel, "Emote Wheel (B)", false, function(state)
updateEmoteWheel(state)
end)
AddToggle(UnnamedPanel, "Force Self-Care", false, function(state)
updateSelfCare(state)
end)
AddKey(UnnamedPanel, "No Collisions", {
mode = "Toggle",
callback = function(state)
updateNoCollision(state)
end
})
AddToggle(UnnamedPanel, "Old Animations", false, function(state)
updateOldAnimations(state)
end)
AddOneTimeToggle(UnnamedPanel, "Ban Yourself", function()
local player = game.Players.LocalPlayer
local healthState = player:WaitForChild("Backpack"):WaitForChild("Scripts"):WaitForChild("values"):WaitForChild("HealthState")
game:GetService("ReplicatedStorage").RemoteEvents.NewPropertie:FireServer({Bbh1O={C22="I101",C21=healthState,C20=3}})
end)
local R_Left, R_Right = CreatePage("Rage")
local SurvivorSide = AddPanel(R_Left, "Survivor Side")
AddOneTimeToggle(SurvivorSide, "Break All Hooks (BUGGY)", function(enabled)
updateBlockHooks(enabled)
end)
AddOneTimeToggle(SurvivorSide, "Finish All Gens", function(enabled)
updateFinishGens(enabled)
end)
AddKey(SurvivorSide, "Fly", {
mode = "Toggle",
callback = function(state)
if state == true and not flyEnabled then
toggleFlight()
elseif state == false and flyEnabled then
toggleFlight()
end
end
})
AddKey(SurvivorSide, "Noclip", {
mode = "Toggle",
callback = function(state)
if state == true then
-- При нажатии ВКЛЮЧАЕМ
if not noclipEnabled then
noclipEnabled = true
-- Запускаем цикл NoClip
noclipConnection = game:GetService("RunService").Stepped:Connect(function()
local character = LocalPlayer.Character
if character then
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
part.CanTouch = false
part.CanQuery = false
end
end
end
end)
warn("[NoClip] Включен (Hold)")
end
else
-- При отпускании ВЫКЛЮЧАЕМ
if noclipEnabled then
noclipEnabled = false
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
-- Восстанавливаем коллизии
local character = LocalPlayer.Character
if character then
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
part.CanTouch = true
part.CanQuery = true
end
end
end
warn("[NoClip] Выключен (Hold)")
end
end
end
})
AddPlayerAction(SurvivorSide, "Hit Someone", function(players, isAll)
if isAll then
hitPlayer(players)
else
hitPlayer(players)
end
end)
AddDropdown(SurvivorSide, "HealthState", {
{text = "Healthy (2)", value = "2"},
{text = "Injured (1)", value = "1"},
{text = "Dying (0)", value = "0"}
}, function(selectedValue)
setHealthState(selectedValue)
end)
AddKey(SurvivorSide, "Stun Killer", {
mode = "Toggle",
callback = function(state)
-- Включаем/выключаем функцию
stunKillerEnabled = state
-- Если функция включена, применяем стан сразу при нажатии
if state == true then
applyStunKillerNow()
-- Создаем соединение, которое будет применять стан при каждом последующем нажатии бинда
if stunKillerConnection then
stunKillerConnection:Disconnect()
end
-- Соединение для отслеживания нажатий клавиши
local keyPressed = false
stunKillerConnection = UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed or not stunKillerEnabled then return end
-- Получаем текущий бинд из UI элемента (нужно найти его в UI_Elements.Keys)
local elementId = "Stun Killer_Key"
local keyElement = UI_Elements.Keys[elementId]
if keyElement and keyElement.getState then
local state = keyElement.getState()
local currentKey = Enum.KeyCode[state.key]
-- Проверяем, что нажата именно эта клавиша
if input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode == currentKey then
if not keyPressed then
keyPressed = true
applyStunKillerNow()
end
end
end
end)
-- Сбрасываем флаг при отпускании клавиши
local keyUpConnection = UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
keyPressed = false
end
end)
-- Сохраняем соединение для очистки
table.insert(stunKillerConnection, keyUpConnection)
else
-- Отключаем соединения при выключении
if stunKillerConnection then
if type(stunKillerConnection) == "table" then
for _, conn in ipairs(stunKillerConnection) do
if conn then
conn:Disconnect()
end
end
else
stunKillerConnection:Disconnect()
end
stunKillerConnection = nil
end
end
end,
onlyToggle = true
})
local KillerSide = AddPanel(R_Right, "Killer Side")
AddOneTimeToggle(KillerSide, "Gate Never Open", function(enabled)
updateGateNeverOpen(enabled)
end)
AddOneTimeToggle(KillerSide, "Never Finish Gens", function(enabled)
updateNeverFinishGens(enabled)
end)
AddPlayerAction(KillerSide, "Hook Someone", function(players, isAll)
if isAll then
hookPlayer(players)
else
hookPlayer(players)
end
end)
AddPlayerAction(KillerSide, "PickUpSomeone", function(players, isAll)
if isAll then
pickupPlayer(players)
else
pickupPlayer(players)
end
end)
AddPlayerAction(KillerSide, "Drop Someone", function(players, isAll)
if isAll then
dropPlayer(players)
else
dropPlayer(players)
end
end)
local LungeToggleEnabled = false
AddToggle(KillerSide, "Custom Lunge Duration", false, function(enabled)
LungeToggleEnabled = enabled
updateLungeDuration(enabled, RageModules.LungeDuration.Value)
end)
AddSlider(KillerSide, "CLD itself", 0.5, 10.0, 0.6, function(value)
RageModules.LungeDuration.Value = value
-- Если тоггл включен, сразу применяем
if LungeToggleEnabled then
updateLungeDuration(true, value)
end
end)
local V_Left, V_Right = CreatePage("VisualsMain")
local SurvivorESP = AddPanel(V_Left, "Survivors ESP")
AddESPToggle(SurvivorESP, "SurvChams", Color3.fromHex("#AFEEEE"), function(enabled, color, outlineColor)
ESPStates.Survivor.Chams = {Enabled = enabled, Color = color, Outline = outlineColor}
updateSurvivorChams(enabled, color, outlineColor)
end)
AddESPToggle(SurvivorESP, "Skeletons", Color3.fromHex("#AFEEEE"), function(enabled, color, outlineColor)
ESPStates.Survivor.Skeleton = {Enabled = enabled, Color = color, Outline = outlineColor}
updateSurvivorSkeleton(enabled, color, outlineColor)
end)
AddESPSizeToggle(SurvivorESP, "Names", Color3.fromHex("#AFEEEE"), function(enabled, color, outlineColor, selectedSize)
ESPStates.Survivor.Names = {Enabled = enabled, Color = color, Outline = outlineColor, Size = selectedSize}
updateSurvivorNames(enabled, color, outlineColor, selectedSize)
end)
AddESPSizeToggle(SurvivorESP, "Distances", Color3.fromHex("#AFEEEE"), function(enabled, color, outlineColor, selectedSize)
ESPStates.Survivor.Distance = {Enabled = enabled, Color = color, Outline = outlineColor, Size = selectedSize}
updateSurvivorDistance(enabled, color, outlineColor, selectedSize)
end)
local KillerESP = AddPanel(V_Left, "Killer ESP")
AddESPToggle(KillerESP, "KillerChams", Color3.fromHex("#A5260A"), function(enabled, color, outlineColor)
ESPStates.Killer.Chams = {Enabled = enabled, Color = color, Outline = outlineColor}
updateKillerChams(enabled, color, outlineColor)
end)
AddESPToggle(KillerESP, "Skeleton", Color3.fromHex("#A5260A"), function(enabled, color, outlineColor)
ESPStates.Killer.Skeleton = {Enabled = enabled, Color = color, Outline = outlineColor}
updateKillerSkeleton(enabled, color, outlineColor)
end)
AddESPSizeToggle(KillerESP, "Name", Color3.fromHex("#A5260A"), function(enabled, color, outlineColor, selectedSize)
ESPStates.Killer.Names = {Enabled = enabled, Color = color, Outline = outlineColor, Size = selectedSize}
updateKillerNames(enabled, color, outlineColor, selectedSize)
end)
AddESPSizeToggle(KillerESP, "Distance", Color3.fromHex("#A5260A"), function(enabled, color, outlineColor, selectedSize)
ESPStates.Killer.Distance = {Enabled = enabled, Color = color, Outline = outlineColor, Size = selectedSize}
updateKillerDistance(enabled, color, outlineColor, selectedSize)
end)
AddESPToggle(KillerESP, "Custom Killerlight", Color3.fromHex("#FF0000"), function(enabled, color, outlineColor)
ESPStates.Killer.Killerlight = {Enabled = enabled, Color = color, Outline = outlineColor}
updateKillerlight(enabled, color, outlineColor)
end)
local ObjectHighlight = AddPanel(V_Right, "Object Highlight")
AddESPToggle(ObjectHighlight, "Chests", Color3.fromHex("#CD5700"), function(enabled, color, outlineColor)
ESPStates.Objects.Chests = {Enabled = enabled, Color = color, Outline = outlineColor}
updateObjectESP("Chests", enabled, color, outlineColor)
end)
AddESPToggle(ObjectHighlight, "Hatch", Color3.fromHex("#7B3F00"), function(enabled, color, outlineColor)
ESPStates.Objects.Hatch = {Enabled = enabled, Color = color, Outline = outlineColor}
updateObjectESP("Hatch", enabled, color, outlineColor)
end)
AddESPToggle(ObjectHighlight, "Lockers", Color3.fromHex("#CD5700"), function(enabled, color, outlineColor)
ESPStates.Objects.Lockers = {Enabled = enabled, Color = color, Outline = outlineColor}
updateObjectESP("Lockers", enabled, color, outlineColor)
end)
AddESPToggle(ObjectHighlight, "Hooks", Color3.fromHex("#A5260A"), function(enabled, color, outlineColor)
ESPStates.Objects.Hooks = {Enabled = enabled, Color = color, Outline = outlineColor}
updateObjectESP("Hooks", enabled, color, outlineColor)
end)
AddESPToggle(ObjectHighlight, "Pallets", Color3.fromHex("#DAD871"), function(enabled, color, outlineColor)
ESPStates.Objects.Pallets = {Enabled = enabled, Color = color, Outline = outlineColor}
updateObjectESP("Pallets", enabled, color, outlineColor)
end)
AddESPToggle(ObjectHighlight, "Windows", Color3.fromHex("#DAD871"), function(enabled, color, outlineColor)
ESPStates.Objects.Windows = {Enabled = enabled, Color = color, Outline = outlineColor}
updateObjectESP("Windows", enabled, color, outlineColor)
end)
AddESPToggle(ObjectHighlight, "Exits", Color3.fromHex("#969696"), function(enabled, color, outlineColor)
ESPStates.Objects.Exits = {Enabled = enabled, Color = color, Outline = outlineColor}
updateObjectESP("Exits", enabled, color, outlineColor)
end)
AddESPToggle(ObjectHighlight, "Totems", Color3.fromHex("#FFFDDF"), function(enabled, color, outlineColor)
ESPStates.Objects.Totems = {Enabled = enabled, Color = color, Outline = outlineColor}
updateObjectESP("Totems", enabled, color, outlineColor)
end)
AddESPToggle(ObjectHighlight, "Generators", Color3.fromHex("#1E1112"), function(enabled, color, outlineColor)
ESPStates.Objects.Generators = {Enabled = enabled, Color = color, Outline = outlineColor}
updateObjectESP("Generators", enabled, color, outlineColor)
end)
AddToggle(ObjectHighlight, "Generators Progress", false, function(enabled)
ESPStates.Objects.GeneratorsProgress = {Enabled = enabled}
updateGeneratorsProgress(enabled)
end)
local VM_Left, VM_Right = CreatePage("VisualsMisc")
local CameraPanel = AddPanel(VM_Left, "Camera")
AddToggle(CameraPanel, "FOV Changer", false, function(state)
updateFOVChanger(state, MiscStates.FOVChanger.Value)
end)
AddSlider(CameraPanel, "FOV", 1, 120, 70, function(value)
MiscStates.FOVChanger.Value = value
if MiscStates.FOVChanger.Enabled then
updateFOVChanger(true, value)
end
end)
AddToggle(CameraPanel, "Custom Aspect Ratio", false, function(state)
updateAspectRatioChanger(state, MiscStates.AspectRatioChanger.Value)
end)
AddSlider(CameraPanel, "CAR itself", 0.25, 1.15, 0.75, function(value)
MiscStates.AspectRatioChanger.Value = value
if MiscStates.AspectRatioChanger.Enabled then
updateAspectRatioChanger(true, value)
end
end)
AddToggle(CameraPanel, "Free Camera (SHIFT + P)", false, function(state)
updateFreeCamera(state)
end)
-- Show Scratch Marks (вкл/выкл)
AddToggle(CameraPanel, "Show SM", false, function(state)
MiscStates.ScratchMarks.Enabled = state
updateScratchMarks(state, MiscStates.ScratchMarks.Color)
end)
-- Выбор цвета следов (используем ESP-стиль, но чекбокс внутри не влияет на включение)
AddESPToggle(CameraPanel, "SM Color", MiscStates.ScratchMarks.Color, function(enabled, color, outline)
MiscStates.ScratchMarks.Color = color
if MiscStates.ScratchMarks.Enabled then
updateScratchMarks(true, color) -- перезапускаем с новым цветом
end
end)
local InterfacesPanel = AddPanel(VM_Left, "Interfaces")
AddToggle(InterfacesPanel, "Show Flash Progress", false, function(state)
updateFlashProgress(state)
end)
local OtherPanel = AddPanel(VM_Right, "Other")
AddToggle(OtherPanel, "Inf Item Charges", false, function(state)
updateInfItemCharges(state)
end)
AddToggle(OtherPanel, "Outfit Changer GUI", false, function(state)
updateOutfitChanger(state)
end)
--//CFG XYETA
local ConfigExtension = ".json"
local ConfigFolder = "Hyperion_Configs"
-- Проверка доступности файловых функций
local function IsFileFunctionsAvailable()
return pcall(function()
return readfile and writefile and delfile and isfile and listfiles
end)
end
-- Создание папки для конфигов
local function EnsureConfigFolder()
if IsFileFunctionsAvailable() then
if not isfolder(ConfigFolder) then
makefolder(ConfigFolder)
end
end
end
-- Получение списка конфигов
local function GetConfigList()
if not IsFileFunctionsAvailable() then
return {"test"}
end
local configs = {}
EnsureConfigFolder()
local success, files = pcall(function()
return listfiles(ConfigFolder)
end)
if success and files then
for _, file in ipairs(files) do
if file:sub(-5):lower() == ".json" then
local fileName = file:match("[^\\/]+$")
table.insert(configs, fileName)
end
end
end
if #configs == 0 then
return {"No configs :P"}
end
return configs
end
-- Сохранение конфига
local function SaveConfig(filename)
if not IsFileFunctionsAvailable() then
warn("File functions not available")
return false
end
local configData = {
version = "1.0",
timestamp = os.time(),
-- Состояния ESP
ESPStates = ESPStates,
-- Состояния Misc
MiscStates = MiscStates,
-- Состояния Rage
RageModules = RageModules,
-- Состояния Legit
LegitStates = {
fixedSpeedEnabled = fixedSpeedEnabled,
fixedSpeedValue = fixedSpeedValue,
vaultSpeedEnabled = vaultSpeedEnabled,
vaultSpeedValue = vaultSpeedValue,
nafEnabled = nafEnabled,
selfCareEnabled = selfCareEnabled,
noCollisionEnabled = noCollisionEnabled,
oldAnimationsEnabled = oldAnimationsEnabled
},
-- Состояния UI элементов
UIStates = {
Toggles = {},
Sliders = {},
Keys = {},
ESPToggles = {},
ESPSizeToggles = {}
}
}
-- Сохраняем состояния UI элементов
for id, element in pairs(UI_Elements.Toggles) do
configData.UIStates.Toggles[id] = element.getState()
end
for id, element in pairs(UI_Elements.Sliders) do
configData.UIStates.Sliders[id] = element.getState()
end
for id, element in pairs(UI_Elements.Keys) do
configData.UIStates.Keys[id] = element.getState()
end
for id, element in pairs(UI_Elements.ESPToggles) do
configData.UIStates.ESPToggles[id] = element.getState()
end
for id, element in pairs(UI_Elements.ESPSizeToggles) do
configData.UIStates.ESPSizeToggles[id] = element.getState()
end
local json = HttpService:JSONEncode(configData)
EnsureConfigFolder()
local filePath = ConfigFolder .. "/" .. filename
local success, err = pcall(function()
writefile(filePath, json)
end)
return success, err
end
-- Загрузка конфига (с правильным порядком)
local function LoadConfig(filename)
if not IsFileFunctionsAvailable() then
warn("File functions not available")
return false
end
local filePath = ConfigFolder .. "/" .. filename
if not isfile(filePath) then
warn("Config file does not exist: " .. filePath)
return false
end
local success, configData = pcall(function()
local json = readfile(filePath)
return HttpService:JSONDecode(json)
end)
if not success or not configData then
warn("Failed to load config")
return false
end
-- Шаг 1: Загружаем ESP состояния (самые важные)
if configData.ESPStates then
for category, values in pairs(configData.ESPStates) do
if ESPStates[category] then
for key, state in pairs(values) do
if ESPStates[category][key] then
for prop, value in pairs(state) do
if typeof(value) == "table" and value.r and value.g and value.b then
ESPStates[category][key][prop] = Color3.new(value.r, value.g, value.b)
else
ESPStates[category][key][prop] = value
end
end
end
end
end
end
end
-- Шаг 2: Загружаем UI элементы
if configData.UIStates then
-- ESP тогглы (должны быть перед применением ESP)
if configData.UIStates.ESPToggles then
for id, state in pairs(configData.UIStates.ESPToggles) do
if UI_Elements.ESPToggles[id] then
UI_Elements.ESPToggles[id].setState(state)
end
end
end
-- ESP Size тогглы
if configData.UIStates.ESPSizeToggles then
for id, state in pairs(configData.UIStates.ESPSizeToggles) do
if UI_Elements.ESPSizeToggles[id] then
UI_Elements.ESPSizeToggles[id].setState(state)
end
end
end
end
-- Шаг 3: Применяем ESP (после загрузки всех настроек ESP)
task.wait(0.01)
for category, states in pairs(ESPStates) do
for name, state in pairs(states) do
if category == "Survivor" then
if name == "Chams" then
updateSurvivorChams(state.Enabled, state.Color, state.Outline)
elseif name == "Skeleton" then
updateSurvivorSkeleton(state.Enabled, state.Color, state.Outline)
elseif name == "Names" then
updateSurvivorNames(state.Enabled, state.Color, state.Outline, state.Size)
elseif name == "Distance" then
updateSurvivorDistance(state.Enabled, state.Color, state.Outline, state.Size)
end
elseif category == "Killer" then
if name == "Chams" then
updateKillerChams(state.Enabled, state.Color, state.Outline)
elseif name == "Skeleton" then
updateKillerSkeleton(state.Enabled, state.Color, state.Outline)
elseif name == "Names" then
updateKillerNames(state.Enabled, state.Color, state.Outline, state.Size)
elseif name == "Distance" then
updateKillerDistance(state.Enabled, state.Color, state.Outline, state.Size)
elseif name == "Killerlight" then
updateKillerlight(state.Enabled, state.Color, state.Outline)
end
elseif category == "Objects" then
if name == "GeneratorsProgress" then
updateGeneratorsProgress(state.Enabled)
else
updateObjectESP(name, state.Enabled, state.Color, state.Outline)
end
end
end
end
-- Шаг 4: Загружаем остальные UI элементы
if configData.UIStates then
-- Тогглы
if configData.UIStates.Toggles then
for id, state in pairs(configData.UIStates.Toggles) do
if UI_Elements.Toggles[id] then
UI_Elements.Toggles[id].setState(state)
end
end
end
-- Слайдеры
if configData.UIStates.Sliders then
for id, state in pairs(configData.UIStates.Sliders) do
if UI_Elements.Sliders[id] then
UI_Elements.Sliders[id].setState(state)
end
end
end
-- Ключи
if configData.UIStates.Keys then
for id, state in pairs(configData.UIStates.Keys) do
if UI_Elements.Keys[id] then
UI_Elements.Keys[id].setState(state)
end
end
end
end
-- Шаг 5: Загружаем Rage состояния
if configData.RageModules then
for name, module in pairs(configData.RageModules) do
if RageModules[name] then
if module.Value then
RageModules[name].Value = module.Value
end
-- Применяем Rage состояния
if name == "BlockHooks" then
updateBlockHooks(module.Enabled)
elseif name == "FinishGens" then
updateFinishGens(module.Enabled)
elseif name == "GateNeverOpen" then
updateGateNeverOpen(module.Enabled)
elseif name == "NeverFinishGens" then
updateNeverFinishGens(module.Enabled)
elseif name == "LungeDuration" then
updateLungeDuration(module.Enabled, module.Value)
end
Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com.
Yeban cc Dead by roblox crk by elyahadonater777 this is done through deepseek IDK