Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
VirtualUser = :()
Camera = .CurrentCamera
Mouse = Players.LocalPlayer:()
player = Players.LocalPlayer
cursorIsForced =
savedMouseBehavior =
savedMouseIconEnabled =
CURSOR_RENDER_STEP =
(visible)
visible
cursorIsForced
savedMouseBehavior = UserInputService.MouseBehavior
savedMouseIconEnabled = UserInputService.MouseIconEnabled
cursorIsForced =
(()
RunService:(CURSOR_RENDER_STEP)
RunService:(CURSOR_RENDER_STEP, .RenderPriority.Last.Value, ()
cursorIsForced
UserInputService.MouseBehavior = .MouseBehavior.Default
UserInputService.MouseIconEnabled =
)
)
UserInputService.MouseBehavior = .MouseBehavior.Default
UserInputService.MouseIconEnabled =
cursorIsForced
cursorIsForced =
(()
RunService:(CURSOR_RENDER_STEP)
)
savedMouseBehavior
UserInputService.MouseBehavior = savedMouseBehavior
savedMouseIconEnabled ~=
UserInputService.MouseIconEnabled = savedMouseIconEnabled
WINDOW_BACKGROUND_IMAGE =
BUTTON_BACKGROUND_IMAGE =
(button)
button button:()
button:()
button.BackgroundTransparency = .(button.BackgroundTransparency, )
button.ZIndex =
background = .()
background.Name =
background.Size = .(, )
background.Position = .(, )
background.BackgroundTransparency =
background.Image = BUTTON_BACKGROUND_IMAGE
background.ImageTransparency =
background.ScaleType = .ScaleType.Crop
background.BorderSizePixel =
background.Active =
background.Selectable =
background.ZIndex =
background.Parent = button
button:()
button.TextTransparency =
button.TextStrokeTransparency =
textLabel = .()
textLabel.Name =
textLabel.Size = .(, )
textLabel.Position = .(, )
textLabel.BackgroundTransparency =
textLabel.Text = button.Text
textLabel.TextColor3 = button.TextColor3
textLabel.TextStrokeColor3 = .(, , )
textLabel.TextStrokeTransparency =
textLabel.TextTransparency =
textLabel.Font = button.Font
textLabel.TextSize = button.TextSize
textLabel.TextScaled = button.TextScaled
textLabel.TextWrapped = button.TextWrapped
textLabel.TextXAlignment = button.TextXAlignment
textLabel.TextYAlignment = button.TextYAlignment
textLabel.RichText = button.RichText
textLabel.Active =
textLabel.Selectable =
textLabel.ZIndex =
textLabel.Parent = button
button:():(()
textLabel.Parent
textLabel.Text = button.Text
)
button:():(()
textLabel.Parent
textLabel.TextColor3 = button.TextColor3
)
(frame)
frame frame:()
frame:()
frame.BackgroundTransparency =
background = .()
background.Name =
background.Size = .(, )
background.Position = .(, )
background.BackgroundTransparency =
background.Image = WINDOW_BACKGROUND_IMAGE
background.ImageTransparency =
background.ScaleType = .ScaleType.Crop
background.BorderSizePixel =
background.Active =
background.Selectable =
background.ZIndex =
background.Parent = frame
_, obj (frame:())
obj:() obj ~= background
obj.ZIndex = .(obj.ZIndex + , )
_, obj (frame:())
obj:()
(obj)
()
(()
_, v (:():())
(v.Name) == (v.Name:() v.Name:() v.Name:())
v.Name = .. .(, )
)
()
PassGui = .()
PassGui.Name = .. .(, )
PassGui.ResetOnSpawn =
PassGui.Parent = player:()
()
PassFrame = .()
PassFrame.Size = .(, , , )
PassFrame.Position = .(, -, , -)
PassFrame.BackgroundColor3 = .(, , )
PassFrame.Parent = PassGui
.(, PassFrame).CornerRadius = .(, )
.(, PassFrame).Color = .(, , )
PassTitle = .()
PassTitle.Size = .(, , , )
PassTitle.BackgroundColor3 = .(, , )
PassTitle.Text =
PassTitle.TextColor3 = .(, , )
PassTitle.Font = .Font.GothamBlack
PassTitle.TextSize =
PassTitle.Parent = PassFrame
.(, PassTitle).CornerRadius = .(, )
PassLabel = .()
PassLabel.Size = .(, -, , )
PassLabel.Position = .(, , , )
PassLabel.BackgroundTransparency =
PassLabel.Text =
PassLabel.TextColor3 = .(, , )
PassLabel.Font = .Font.Gotham
PassLabel.TextSize =
PassLabel.TextXAlignment = .TextXAlignment.Left
PassLabel.Parent = PassFrame
PassBox = .()
PassBox.Size = .(, -, , )
PassBox.Position = .(, , , )
PassBox.BackgroundColor3 = .(, , )
PassBox.PlaceholderText =
PassBox.Text =
PassBox.TextColor3 = .(, , )
PassBox.Font = .Font.GothamBold
PassBox.TextSize =
PassBox.Parent = PassFrame
.(, PassBox).CornerRadius = .(, )
PassBtn = .()
PassBtn.Size = .(, -, , )
PassBtn.Position = .(, , , )
PassBtn.BackgroundColor3 = .(, , )
PassBtn.Text =
PassBtn.TextColor3 = .(, , )
PassBtn.Font = .Font.GothamBold
PassBtn.TextSize =
PassBtn.Parent = PassFrame
.(, PassBtn).CornerRadius = .(, )
DevBtn = .()
DevBtn.Size = .(, -, , )
DevBtn.Position = .(, , , )
DevBtn.BackgroundColor3 = .(, , )
DevBtn.Text =
DevBtn.TextColor3 = .(, , )
DevBtn.Font = .Font.GothamBold
DevBtn.TextSize =
DevBtn.Parent = PassFrame
.(, DevBtn).CornerRadius = .(, )
ErrorLabel = .()
ErrorLabel.Size = .(, -, , )
ErrorLabel.Position = .(, , , -)
ErrorLabel.BackgroundTransparency =
ErrorLabel.Text =
ErrorLabel.TextColor3 = .(, , )
ErrorLabel.Font = .Font.Gotham
ErrorLabel.TextSize =
ErrorLabel.Parent = PassFrame
(PassFrame)
StaffFrame = .()
StaffFrame.Size = .(, , , )
StaffFrame.BackgroundColor3 = .(, , )
StaffFrame.ZIndex =
StaffFrame.Visible =
StaffFrame.Parent = PassFrame
.(, StaffFrame).CornerRadius = .(, )
StaffTitle = .()
StaffTitle.Size = .(, , , )
StaffTitle.ZIndex =
StaffTitle.BackgroundColor3 = .(, , )
StaffTitle.Text =
StaffTitle.TextColor3 = .(, , )
StaffTitle.Font = .Font.GothamBlack
StaffTitle.TextSize =
StaffTitle.Parent = StaffFrame
.(, StaffTitle).CornerRadius = .(, )
StaffLabel = .()
StaffLabel.Size = .(, -, , )
StaffLabel.ZIndex =
StaffLabel.Position = .(, , , )
StaffLabel.BackgroundTransparency =
StaffLabel.Text =
StaffLabel.TextColor3 = .(, , )
StaffLabel.Font = .Font.Gotham
StaffLabel.TextSize =
StaffLabel.TextXAlignment = .TextXAlignment.Left
StaffLabel.Parent = StaffFrame
StaffBox = .()
StaffBox.Size = .(, -, , )
StaffBox.ZIndex =
StaffBox.Position = .(, , , )
StaffBox.BackgroundColor3 = .(, , )
StaffBox.PlaceholderText =
StaffBox.Text =
StaffBox.TextColor3 = .(, , )
StaffBox.Font = .Font.GothamBold
StaffBox.TextSize =
StaffBox.Parent = StaffFrame
.(, StaffBox).CornerRadius = .(, )
StaffBtn = .()
StaffBtn.Size = .(, -, , )
StaffBtn.ZIndex =
StaffBtn.Position = .(, , , )
StaffBtn.BackgroundColor3 = .(, , )
StaffBtn.Text =
StaffBtn.TextColor3 = .(, , )
StaffBtn.Font = .Font.GothamBold
StaffBtn.TextSize =
StaffBtn.Parent = StaffFrame
.(, StaffBtn).CornerRadius = .(, )
StaffBackBtn = .()
StaffBackBtn.Size = .(, -, , )
StaffBackBtn.ZIndex =
StaffBackBtn.Position = .(, , , )
StaffBackBtn.BackgroundColor3 = .(, , )
StaffBackBtn.Text =
StaffBackBtn.TextColor3 = .(, , )
StaffBackBtn.Font = .Font.GothamBold
StaffBackBtn.TextSize =
StaffBackBtn.Parent = StaffFrame
.(, StaffBackBtn).CornerRadius = .(, )
StaffError = .()
StaffError.Size = .(, -, , )
StaffError.ZIndex =
StaffError.Position = .(, , , -)
StaffError.BackgroundTransparency =
StaffError.Text =
StaffError.TextColor3 = .(, , )
StaffError.Font = .Font.Gotham
StaffError.TextSize =
StaffError.Parent = StaffFrame
correctPassword =
developerPassword =
scriptLoaded =
(ctx)
ScreenGui, Main, Content, Sidebar = ctx.ScreenGui, ctx.Main, ctx.Content, ctx.Sidebar
Background, categoryButtons, pages = ctx.Background, ctx.categoryButtons, ctx.pages
player, RunService, HttpService, SearchBox, ContentTitle = ctx.player, ctx.RunService, ctx.HttpService, ctx.SearchBox, ctx.ContentTitle
INITIAL_MAIN_POSITION = ctx.InitialMainPosition
Title = ctx.Title
WindowHeader = ctx.WindowHeader
WINDOW_BACKGROUND_IMAGE, BUTTON_BACKGROUND_IMAGE = ctx.WINDOW_BACKGROUND_IMAGE, ctx.BUTTON_BACKGROUND_IMAGE
State = {
primary = .(, , ), transparency = ,
background = WINDOW_BACKGROUND_IMAGE, buttonImage = BUTTON_BACKGROUND_IMAGE,
skyRGB = , skyColor = .(, , ), skyImage = ,
_skyBackup = , _skyWasCreated = , _skyName = , _skyObject = , _skyTint = ,
_skyEnvBackup = ,
_memoryPresets = {}, _connections = {},
}
skyRGBConnection, activeModal, pickerCallback = , ,
presetFolder =
(value)
id = (value ):()
id ( .. id)
(c, amount) c:(.(,,), amount)
()
activeModal activeModal:(); activeModal =
pickerCallback =
(frame, handle)
handle = handle frame
dragging, dragStart, startPos = , ,
handle.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging, dragStart, startPos = , input.Position, frame.Position
input.Changed:(()
input.UserInputState == .UserInputState.End dragging =
)
)
UserInputService.InputChanged:((input)
dragging
input.UserInputType ~= .UserInputType.MouseMovement input.UserInputType ~= .UserInputType.Touch
delta = input.Position - dragStart
frame.Position = .(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
)
(message, good)
toast = .()
toast.Name = ; toast.Size = .(, )
toast.AnchorPoint = .(, ); toast.Position = .(, , , -)
toast.BackgroundColor3 = good .(, , ) .(, , )
toast.TextColor3 = .(,,); toast.Font = .Font.GothamBold; toast.TextSize =
toast.Text = message; toast.ZIndex = ; toast.Parent = ScreenGui
.(, toast).CornerRadius = .(, )
.(, () toast.Parent toast:() )
(color)
State.primary = color
dark = (color, )
darker = (color, )
border = color:(.(,,), )
bright = color:(.(,,), )
Main.BackgroundColor3 = darker
Background Background.BackgroundColor3 = darker
Sidebar.BackgroundColor3 = (color, )
Content.BackgroundColor3 = (color, )
SearchBox.BackgroundColor3 = (color, )
SearchBox.PlaceholderColor3 = bright
Title Title.TextColor3 = bright
ContentTitle ContentTitle.TextColor3 = bright
WindowHeader WindowHeader.BackgroundColor3 = (color, )
_, btn (categoryButtons) btn.BackgroundColor3 = dark
_, root ({Main, ScreenGui})
_, obj (root:())
obj:()
obj.Color = border
obj.Transparency =
obj:()
obj.ScrollBarImageColor3 = color
obj.ScrollBarImageTransparency =
obj:()
obj.BackgroundColor3 = dark
obj.AutoButtonColor =
obj:()
obj.BackgroundColor3 = dark
obj:() obj.BorderSizePixel >
obj.BorderColor3 = border
(value)
State.transparency = .((value) State.transparency, , )
Main.Position = INITIAL_MAIN_POSITION
Main.BackgroundTransparency = State.transparency
Content.BackgroundTransparency = State.transparency
Sidebar.BackgroundTransparency = State.transparency
SearchBox.BackgroundTransparency = State.transparency
Background
Background.BackgroundTransparency =
Background.ImageTransparency = State.transparency
_, obj (Main:())
obj:() obj ~= Background
obj.BackgroundTransparency = State.transparency
obj:() obj:()
obj.ImageTransparency = State.transparency
Background
Background.BackgroundTransparency =
_, obj (Main:())
obj:() obj:() obj:()
obj.BackgroundTransparency = State.transparency
(image)
id = (image); id
State.background = id; Background.Image = id;
(image)
id = (image); id
State.buttonImage = id
_, obj (Main:())
obj:() obj.Name == obj.Image = id
()
Lighting = :()
sky = State._skyObject
sky sky.Parent
sky = Lighting:()
sky
sky = .()
sky.Name =
sky.Parent = Lighting
State._skyWasCreated =
State._skyBackup
State._skyBackup = {sky.SkyboxBk, sky.SkyboxDn, sky.SkyboxFt, sky.SkyboxLf, sky.SkyboxRt, sky.SkyboxUp}
State._skyName = sky.Name
State._skyWasCreated =
State._skyObject = sky
sky
()
Lighting = :()
State._skyEnvBackup
State._skyEnvBackup = {
Ambient = Lighting.Ambient,
OutdoorAmbient = Lighting.OutdoorAmbient,
ColorShiftTop = Lighting.ColorShift_Top,
ColorShiftBottom = Lighting.ColorShift_Bottom,
}
()
Lighting = :()
fx = Lighting:()
fx fx:()
fx fx:()
fx = .()
fx.Name =
fx.Parent = Lighting
fx
(color)
fx = ()
fx.TintColor = .(,,):(color, )
fx.Saturation =
fx.Contrast =
fx.Brightness =
(color)
State.skyColor = color
Lighting = :()
()
strength =
tint = .(,,):(color, strength)
base = State._skyEnvBackup
base
Lighting.Ambient = base.Ambient:(tint, strength)
Lighting.OutdoorAmbient = base.OutdoorAmbient:(tint, strength)
Lighting.ColorShift_Top = base.ColorShiftTop:(color, )
Lighting.ColorShift_Bottom = base.ColorShiftBottom:(color, )
(color)
()
Lighting = :()
State._skyEnvBackup
Lighting.Ambient = State._skyEnvBackup.Ambient
Lighting.OutdoorAmbient = State._skyEnvBackup.OutdoorAmbient
Lighting.ColorShift_Top = State._skyEnvBackup.ColorShiftTop
Lighting.ColorShift_Bottom = State._skyEnvBackup.ColorShiftBottom
State._skyEnvBackup =
fx = Lighting:()
fx fx:()
tint = Lighting:()
tint tint:()
State._skyTint =
()
skyRGBConnection skyRGBConnection:(); skyRGBConnection =
()
()
State.skyRGB =
()
skyRGBConnection = RunService.RenderStepped:(()
State.skyRGB
Lighting = :()
c = .((.() * ) % , , )
base = State._skyEnvBackup
base
strength =
tint = .(,,):(c, strength)
Lighting.Ambient = base.Ambient:(tint, strength)
Lighting.OutdoorAmbient = base.OutdoorAmbient:(tint, strength)
Lighting.ColorShift_Top = base.ColorShiftTop:(c, )
Lighting.ColorShift_Bottom = base.ColorShiftBottom:(c, )
(c)
)
()
Lighting = :()
tint = Lighting:()
tint tint:()
atmosphere = Lighting:()
atmosphere atmosphere:()
fx = Lighting:()
fx fx:()
(titleText, initialColor, callback)
(); pickerCallback = callback
current = initialColor .(,,)
h, ss, v = .(current)
f = .(); f.Name = ; f.Size = .(, )
f.Position = .(, -, , -); f.BackgroundColor3 = .(,,); f.ZIndex = ; f.Parent = ScreenGui
.(, f).CornerRadius = .(,); fs=.(,f); fs.Color=State.primary; fs.Thickness=
activeModal=f
head=.(); head.Size=.(,-,,); head.BackgroundColor3=(State.primary,); head.Text=titleText; head.TextColor3=.(,,); head.Font=.Font.GothamBlack; head.TextSize=; head.ZIndex=; head.Parent=f; .(,head).CornerRadius=.(,); (f,head)
close=.(); close.Size=.(,); close.Position=.(,-,,); close.Text=; close.TextColor3=.(,,); close.BackgroundColor3=(State.primary,); close.ZIndex=; close.Parent=f; .(,close).CornerRadius=.(,); close.Activated:(closeModal)
sv=.(); sv.Size=.(,); sv.Position=.(,); sv.BorderSizePixel=; sv.BackgroundColor3=.(h,,); sv.ZIndex=; sv.Parent=f
w=.(); w.Size=.(,); w.BackgroundColor3=.(,,); w.ZIndex=; w.Parent=sv; wg=.(,w); wg.Transparency=NumberSequence.{NumberSequenceKeypoint.(,),NumberSequenceKeypoint.(,)}
b=.(); b.Size=.(,); b.BackgroundColor3=.(,,); b.ZIndex=; b.Parent=sv; bg=.(,b); bg.Transparency=NumberSequence.{NumberSequenceKeypoint.(,),NumberSequenceKeypoint.(,)}; bg.Rotation=
hue=.(); hue.Size=.(,); hue.Position=.(,); hue.BorderSizePixel=; hue.ZIndex=; hue.Parent=f
hg=.(,hue); hg.Color=ColorSequence.{ColorSequenceKeypoint.(,.(,,)),ColorSequenceKeypoint.(,.(,,)),ColorSequenceKeypoint.(,.(,,)),ColorSequenceKeypoint.(,.(,,)),ColorSequenceKeypoint.(,.(,,)),ColorSequenceKeypoint.(,.(,,)),ColorSequenceKeypoint.(,.(,,))}; hg.Rotation=
svMarker=.(); svMarker.Name=; svMarker.Size=.(,); svMarker.AnchorPoint=.(,); svMarker.BackgroundTransparency=; svMarker.BorderSizePixel=; svMarker.ZIndex=; svMarker.Parent=sv
svRing=.(,svMarker); svRing.Thickness=; svRing.Color=.(,,)
.(,svMarker).CornerRadius=.(,)
hueMarker=.(); hueMarker.Name=; hueMarker.Size=.(,,,); hueMarker.AnchorPoint=.(,); hueMarker.BackgroundColor3=.(,,); hueMarker.BorderSizePixel=; hueMarker.ZIndex=; hueMarker.Parent=hue
.(,hueMarker).CornerRadius=.(,)
preview=.(); preview.Size=.(,); preview.Position=.(,); preview.BackgroundColor3=current; preview.ZIndex=; preview.Parent=f; .(,preview).CornerRadius=.(,)
(pos)
ap, sz = sv.AbsolutePosition, sv.AbsoluteSize; ss=.((pos.X-ap.X)/sz.X,,); v=-.((pos.Y-ap.Y)/sz.Y,,); current=.(h,ss,v); sv.BackgroundColor3=.(h,,); preview.BackgroundColor3=current; svMarker.Position=.(ss,,-v,)
(pos)
ap, sz = hue.AbsolutePosition, hue.AbsoluteSize; h=.((pos.Y-ap.Y)/sz.Y,,); current=.(h,ss,v); sv.BackgroundColor3=.(h,,); preview.BackgroundColor3=current; svMarker.Position=.(ss,,-v,)
svMarker.Position=.(ss,,-v,); hueMarker.Position=.(,,h,)
mode=
sv.InputBegan:((i) i.UserInputType==.UserInputType.MouseButton1 i.UserInputType==.UserInputType.Touch mode=; (i.Position) )
hue.InputBegan:((i) i.UserInputType==.UserInputType.MouseButton1 i.UserInputType==.UserInputType.Touch mode=; (i.Position) )
UserInputService.InputChanged:((i) activeModal activeModal~=f mode ; i.UserInputType==.UserInputType.MouseMovement i.UserInputType==.UserInputType.Touch mode== (i.Position) (i.Position) )
UserInputService.InputEnded:((i) i.UserInputType==.UserInputType.MouseButton1 i.UserInputType==.UserInputType.Touch mode= )
apply=.(); apply.Size=.(,); apply.Position=.(,); apply.BackgroundColor3=State.primary; apply.Text=; apply.TextColor3=.(,,); apply.Font=.Font.GothamBold; apply.ZIndex=; apply.Parent=f; .(,apply).CornerRadius=.(,)
apply.Activated:(() pickerCallback (current) ; () )
(titleText, currentValue, callback)
(); f=.(); f.Size=.(,); f.Position=.(,-,,-); f.BackgroundColor3=.(,,); f.ZIndex=; f.Parent=ScreenGui; .(,f).CornerRadius=.(,); .(,f).Color=State.primary; activeModal=f
t=.(); t.Size=.(,-,,); t.BackgroundColor3=(State.primary,); t.Text=titleText; t.TextColor3=.(,,); t.Font=.Font.GothamBlack; t.TextSize=; t.ZIndex=; t.Parent=f; .(,t).CornerRadius=.(,); (f,t)
x=.(); x.Size=.(,); x.Position=.(,-,,); x.Text=; x.BackgroundColor3=(State.primary,); x.TextColor3=.(,,); x.ZIndex=; x.Parent=f; x.Activated:(closeModal)
box=.(); box.Size=.(,-,,); box.Position=.(,); box.Text=(currentValue ):(,); box.PlaceholderText=; box.TextColor3=.(,,); box.BackgroundColor3=(State.primary,); box.Font=.Font.Gotham; box.TextSize=; box.ZIndex=; box.Parent=f; .(,box).CornerRadius=.(,)
ok=.(); ok.Size=.(,-,,); ok.Position=.(,); ok.BackgroundColor3=State.primary; ok.Text=; ok.TextColor3=.(,,); ok.Font=.Font.GothamBold; ok.ZIndex=; ok.Parent=f; .(,ok).CornerRadius=.(,); ok.Activated:(() (box.Text) (,) ; () )
()
{primary={State.primary.R,State.primary.G,State.primary.B},transparency=State.transparency,background=State.background,buttonImage=State.buttonImage,skyRGB=State.skyRGB,skyColor={State.skyColor.R,State.skyColor.G,State.skyColor.B},skyImage=State.skyImage}
(name)
name = (name ):(, ); name== name=..os.()
data=(); ok,json=(() HttpService:(data) ); ok (,);
State._memoryPresets[name]=json
wrote=
(makefolder)== (() (presetFolder) )
(writefile)== wrote=(() (presetFolder....name..,json) )
(..name..(wrote ),)
(data)
data.primary (.(data.primary[] ,data.primary[] ,data.primary[] ))
data.transparency (data.transparency)
data.background (data.background)
data.buttonImage (data.buttonImage)
State.skyRGB=data.skyRGB==
data.skyColor (.(data.skyColor[] ,data.skyColor[] ,data.skyColor[] ))
State.skyRGB data.skyColor == ()
data.skyImage
sky=(); State.skyImage=data.skyImage
sky.SkyboxBk=data.skyImage; sky.SkyboxDn=data.skyImage; sky.SkyboxFt=data.skyImage; sky.SkyboxLf=data.skyImage; sky.SkyboxRt=data.skyImage; sky.SkyboxUp=data.skyImage
State.skyRGB () ()
(name)
json=State._memoryPresets[name]
json (readfile)== (() json=(presetFolder....name..) )
json (,);
ok,data=(() HttpService:(json) ); ok (data)== (data); (..name,) (,)
()
out={}; n (State._memoryPresets) .(out,n)
(listfiles)==
ok,files=(() (presetFolder) )
ok (files)== _,path (files) n=(path):(); n seen=; _,x (out) x==n seen= ; seen .(out,n)
.(out); out
()
(); f=.(); f.Size=.(,); f.Position=.(,-,,-); f.BackgroundColor3=.(,,); f.ZIndex=; f.Parent=ScreenGui; .(,f).CornerRadius=.(,); .(,f).Color=State.primary; activeModal=f
t=.(); t.Size=.(,-,,); t.BackgroundColor3=(State.primary,); t.Text=; t.TextColor3=.(,,); t.Font=.Font.GothamBlack; t.TextSize=; t.ZIndex=; t.Parent=f; .(,t).CornerRadius=.(,); (f,t)
x=.(); x.Size=.(,); x.Position=.(,-,,); x.Text=; x.BackgroundColor3=(State.primary,); x.TextColor3=.(,,); x.ZIndex=; x.Parent=f; x.Activated:(closeModal)
list=.(); list.Size=.(,-,,-); list.Position=.(,); list.BackgroundColor3=(State.primary,); list.ScrollBarImageColor3=State.primary; list.ScrollBarThickness=; list.ZIndex=; list.Parent=f; .(,list).CornerRadius=.(,); layout=.(,list); layout.Padding=.(,)
names=()
#names== empty=.(); empty.Size=.(,-,,); empty.BackgroundTransparency=; empty.Text=; empty.TextColor3=.(,,); empty.Font=.Font.Gotham; empty.TextSize=; empty.ZIndex=; empty.Parent=list
_,name (names) b=.(); b.Size=.(,-,,); b.BackgroundColor3=(State.primary,); b.Text=..name; b.TextColor3=.(,,); b.Font=.Font.GothamBold; b.TextSize=; b.ZIndex=; b.Parent=list; .(,b).CornerRadius=.(,); b.Activated:(() (name); () )
save=.(); save.Size=.(,-,,); save.Position=.(,,,-); save.BackgroundColor3=State.primary; save.Text=; save.TextColor3=.(,,); save.Font=.Font.GothamBold; save.ZIndex=; save.Parent=f; .(,save).CornerRadius=.(,)
save.Activated:(()
box=.(); box.Size=.(,-,,); box.Position=.(,,,-); box.BackgroundColor3=(State.primary,); box.Text=; box.TextColor3=.(,,); box.ZIndex=; box.Parent=f; .(,box).CornerRadius=.(,); save.Visible=
ok=.(); ok.Size=.(,); ok.Position=.(,-,,-); ok.Text=; ok.BackgroundColor3=State.primary; ok.TextColor3=.(,,); ok.ZIndex=; ok.Parent=f; .(,ok).CornerRadius=.(,); ok.Activated:(() (box.Text); () )
)
(target, color)
char=player.Character; char
target==
_,obj (char:()) obj:() obj:() obj.Color=color
target== tool=char:(); h=tool tool:(); h h:() h.Color=color ;
aliases={Head={},Torso={,,},[]={,,,},[]={,,,},[]={,,,},[]={,,,}}
_,n (aliases[target] {}) p=char:(n,); p p:() p.Color=color
()
(); f=.(); f.Size=.(,); f.Position=.(,-,,-); f.BackgroundColor3=.(,,); f.ZIndex=; f.Parent=ScreenGui; .(,f).CornerRadius=.(,); .(,f).Color=State.primary; activeModal=f
t=.(); t.Size=.(,-,,); t.BackgroundColor3=(State.primary,); t.Text=; t.TextColor3=.(,,); t.Font=.Font.GothamBlack; t.TextSize=; t.ZIndex=; t.Parent=f; .(,t).CornerRadius=.(,); (f,t)
x=.(); x.Size=.(,); x.Position=.(,-,,); x.Text=; x.BackgroundColor3=(State.primary,); x.TextColor3=.(,,); x.ZIndex=; x.Parent=f; x.Activated:(closeModal)
selected=; parts={,,,,,,,}
list=.(); list.Size=.(,); list.Position=.(,); list.BackgroundColor3=(State.primary,); list.ScrollBarImageColor3=State.primary; list.ZIndex=; list.Parent=f; .(,list).CornerRadius=.(,); ll=.(,list); ll.Padding=.(,)
_,name (parts) b=.(); b.Size=.(,-,,); b.BackgroundColor3=(State.primary,); b.Text=name; b.TextColor3=.(,,); b.Font=.Font.GothamBold; b.TextSize=; b.ZIndex=; b.Parent=list; .(,b).CornerRadius=.(,); b.Activated:(() selected=name )
info=.(); info.Size=.(,-,,); info.Position=.(,); info.BackgroundTransparency=; info.Text=; info.TextColor3=.(,,); info.Font=.Font.Gotham; info.TextSize=; info.TextWrapped=; info.ZIndex=; info.Parent=f
pick=.(); pick.Size=.(,-,,); pick.Position=.(,); pick.BackgroundColor3=State.primary; pick.Text=; pick.TextColor3=.(,,); pick.Font=.Font.GothamBold; pick.ZIndex=; pick.Parent=f; .(,pick).CornerRadius=.(,); pick.Activated:(() (..selected,.(,,),(c) (selected,c) ) )
(page,text)
l=.(); l.Size=.(,-,,); l.BackgroundTransparency=; l.Text=text; l.TextColor3=State.primary; l.Font=.Font.GothamBlack; l.TextSize=; l.TextXAlignment=.TextXAlignment.Left; l.ZIndex=; l.Parent=page
(page,text,callback)
b=.(); b.Size=.(,-,,); b.BackgroundColor3=(State.primary,); b.BackgroundTransparency=; b.Text=text; b.TextColor3=.(,,); b.Font=.Font.GothamBold; b.TextSize=; b.AutoButtonColor=; b.ZIndex=; b.Parent=page; .(,b).CornerRadius=.(,); st=.(,b); st.Color=State.primary; b.Activated:(callback); b
page=pages[]
(page,)
(page,,() (,State.primary,applyPrimaryColor) )
(page,,()
(); f=.(); f.Size=.(,); f.Position=.(,-,,-); f.BackgroundColor3=.(,,); f.ZIndex=; f.Parent=ScreenGui; .(,f).CornerRadius=.(,); .(,f).Color=State.primary; activeModal=f
t=.(); t.Size=.(,-,,); t.BackgroundColor3=(State.primary,); t.Text=; t.TextColor3=.(,,); t.Font=.Font.GothamBlack; t.ZIndex=; t.Parent=f; .(,t).CornerRadius=.(,); (f,t)
box=.(); box.Size=.(,-,,); box.Position=.(,); box.Text=(State.transparency); box.TextColor3=.(,,); box.BackgroundColor3=(State.primary,); box.ZIndex=; box.Parent=f
ok=.(); ok.Size=.(,-,,); ok.Position=.(,); ok.Text=; ok.BackgroundColor3=State.primary; ok.TextColor3=.(,,); ok.ZIndex=; ok.Parent=f; ok.Activated:(() (box.Text); () )
)
(page,,() (,State.background,(id) (id) ) )
(page,,() (,State.buttonImage,(id) (id) ) )
(page,,()
(); f=.(); f.Size=.(,); f.Position=.(,-,,-); f.BackgroundColor3=.(,,); f.ZIndex=; f.Parent=ScreenGui; .(,f).CornerRadius=.(,); .(,f).Color=State.primary; activeModal=f
t=.(); t.Size=.(,-,,); t.BackgroundColor3=(State.primary,); t.Text=; t.TextColor3=.(,,); t.Font=.Font.GothamBlack; t.ZIndex=; t.Parent=f; (f,t)
box=.(); box.Size=.(,-,,); box.Position=.(,); box.Text=; box.TextColor3=.(,,); box.BackgroundColor3=(State.primary,); box.ZIndex=; box.Parent=f
ok=.(); ok.Size=.(,-,,); ok.Position=.(,); ok.Text=; ok.BackgroundColor3=State.primary; ok.TextColor3=.(,,); ok.ZIndex=; ok.Parent=f; ok.Activated:(() (box.Text); () )
)
(page,,openPresetWindow)
(page,)
(page,,() (,State.skyColor,applySkyColor) )
(page,,()
State.skyRGB
(); State.skyRGB=; ()
()
)
(page,,() (,,(id)
u=(id); u
sky=()
State._skyObject=sky
sky.SkyboxBk=u; sky.SkyboxDn=u; sky.SkyboxFt=u; sky.SkyboxLf=u; sky.SkyboxRt=u; sky.SkyboxUp=u
State.skyImage=u
) )
(page,,()
Lighting=:()
sky=State._skyObject
sky sky.Parent
State._skyWasCreated
sky:()
State._skyBackup
sky.SkyboxBk=State._skyBackup[] ; sky.SkyboxDn=State._skyBackup[] ; sky.SkyboxFt=State._skyBackup[]
sky.SkyboxLf=State._skyBackup[] ; sky.SkyboxRt=State._skyBackup[] ; sky.SkyboxUp=State._skyBackup[]
ymSky=Lighting:()
ymSky ymSky:() ymSky:()
State.skyImage=; State._skyBackup=; State._skyWasCreated=; State._skyName=; State._skyObject=
(,)
)
(page,)
(page,,openSkinEditor)
State
()
YM_FN = {}
scriptLoaded
scriptLoaded =
PassGui:()
()
flying, flySpeed, walkSpeed = , ,
godmode, invisible, noclip, rgb = , , ,
glue, aimbot, esp = , ,
aimScope =
aiming =
spinning, spinSpeed = ,
spinning90, spinSpeed90 = ,
moveObjects =
clickTP, killAura, bringAll = , ,
infiniteJump, noFallDamage, antiAFK, ragdoll = , , ,
skeletonESP, nameGlitch = ,
fakeLagTP, fakeLagAngles = ,
superForce =
autoClick =
forcePower =
jumpPower =
fpsCap =
fpsCounterEnabled =
crosshairEnabled =
FPSGui = .()
FPSGui.Name =
FPSGui.ResetOnSpawn =
FPSGui.Parent = player:()
FPSLabel = .()
FPSLabel.Name =
FPSLabel.Size = .(, , , )
FPSLabel.Position = .(, , , )
FPSLabel.BackgroundTransparency =
FPSLabel.Text =
FPSLabel.TextColor3 = .(, , )
FPSLabel.Font = .Font.GothamBold
FPSLabel.TextSize =
FPSLabel.TextXAlignment = .TextXAlignment.Left
FPSLabel.Active =
FPSLabel.Parent = FPSGui
fpsDragging, fpsDragStart, fpsStartPos
FPSLabel.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
fpsDragging =
fpsDragStart = input.Position
fpsStartPos = FPSLabel.Position
input.Changed:(()
input.UserInputState == .UserInputState.End fpsDragging =
)
)
UserInputService.InputChanged:((input)
fpsDragging (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
delta = input.Position - fpsDragStart
FPSLabel.Position = .(fpsStartPos.X.Scale, fpsStartPos.X.Offset + delta.X, fpsStartPos.Y.Scale, fpsStartPos.Y.Offset + delta.Y)
)
YM_FN.applyFPSCap = ()
(setfpscap) ==
(() (fpsCap) )
YM_FN.()
.(()
last = ()
frames =
FPSGui.Parent
RunService.RenderStepped:()
frames +=
now = ()
now - last >=
FPSLabel.Text = .(frames / (now - last) + ) ..
frames =
last = now
)
bodyGyro, bodyVelocity
rgbConnection, glueConnection, spinConnection, spin90Connection
moveConnection, clickTPConnection, killAuraConnection
bringConnection, jumpConnection, fallConnection, antiAFKConnection
skeletonConnection, nameGlitchConnection
fakeLagTPConnection, fakeLagAnglesConnection
forceConnections = {}
autoClickConnection
autoClickHeld =
gluedTarget, selectedPart
highlights = {}
ragdollConstraints = {}
skeletonDrawings = {}
nameGlitchBillboard =
boxESP =
boxESPConnection =
boxESPObjects = {}
teamCheckEnabled =
visibilityCheckEnabled =
fovEnabled =
fovRadius =
debugVisible =
bigHeadEnabled =
tinyCharacterEnabled =
headlessEnabled =
characterVisualBackup = {}
YM_FN.cacheCharacterVisuals = (char)
characterVisualBackup.char == char
characterVisualBackup = {char = char, parts = {}, scales = {}}
head = char:()
head head:()
characterVisualBackup.parts.HeadSize = head.Size
characterVisualBackup.parts.HeadTransparency = head.Transparency
_, obj (head:())
obj:() obj:()
characterVisualBackup.parts[obj] = obj.Transparency
_, name ({, , , , })
part = char:(name)
part part:() characterVisualBackup.parts[name] = part.Size
_, obj (char:())
obj:() (obj.Name == obj.Name == obj.Name == obj.Name == )
characterVisualBackup.scales[obj.Name] = obj.Value
YM_FN.restoreCharacterVisuals = ()
char = player.Character
char characterVisualBackup.char ~= char
head = char:()
head characterVisualBackup.parts.HeadSize
head.Size = characterVisualBackup.parts.HeadSize
head.Transparency = characterVisualBackup.parts.HeadTransparency
_, obj (head:())
(obj:() obj:()) characterVisualBackup.parts[obj] ~=
obj.Transparency = characterVisualBackup.parts[obj]
_, name ({, , , , })
part = char:(name)
original = characterVisualBackup.parts[name]
part original part.Size = original
name, value (characterVisualBackup.scales)
obj = char:(name, )
obj obj:() obj.Value = value
YM_FN.updateCharacterVisuals = ()
char = player.Character
char
YM_FN.(char)
YM_FN.()
head = char:()
hum = char:()
bigHeadEnabled head head:()
head.Size = characterVisualBackup.parts.HeadSize *
tinyCharacterEnabled
_, name ({, , , })
obj = char:(name, )
obj obj:() obj.Value = (characterVisualBackup.scales[name] ) *
char:(, )
_, name ({, , , , })
part = char:(name)
part part:()
original = characterVisualBackup.parts[name] part.Size
characterVisualBackup.parts[name] = original
part.Size = original *
headlessEnabled head
head.Transparency =
_, obj (head:())
obj:() obj:() obj.Transparency =
waypointSlots = {}
i = , waypointSlots[i] = {name = .. i, cframe = }
WaypointFrame
CrosshairGui = .()
CrosshairGui.Name =
CrosshairGui.ResetOnSpawn =
CrosshairGui.IgnoreGuiInset =
CrosshairGui.Parent = player:()
CrosshairDot = .()
CrosshairDot.Name =
CrosshairDot.Size = .(, )
CrosshairDot.AnchorPoint = .(, )
CrosshairDot.Position = .(, , , )
CrosshairDot.BorderSizePixel =
CrosshairDot.ZIndex =
CrosshairDot.Visible = crosshairEnabled
CrosshairDot.Parent = CrosshairGui
.(, CrosshairDot).CornerRadius = .(, )
.(()
CrosshairGui.Parent
CrosshairDot.Visible = crosshairEnabled
crosshairEnabled CrosshairDot.BackgroundColor3 = .((() * ) % , , )
RunService.RenderStepped:()
)
VisibilityESP = {}
isTeammate
isVisibleFromCamera
YM_FN.removeVisibilityESP = (plr)
obj = VisibilityESP[plr]
obj
obj.box (() obj.box:() )
VisibilityESP[plr] =
YM_FN.createVisibilityESP = (plr)
plr == player VisibilityESP[plr]
char = plr.Character
char
highlight = .()
highlight.Name =
highlight.Adornee = char
highlight.FillTransparency =
highlight.OutlineTransparency =
highlight.DepthMode = .HighlightDepthMode.AlwaysOnTop
highlight.Enabled = visibilityCheckEnabled
highlight.Parent = char
VisibilityESP[plr] = {highlight = highlight}
YM_FN.updateVisibilityESP = ()
_, plr (Players:())
plr ~= player plr.Character (plr)
char = plr.Character
root = char:()
head = char:()
hum = char:()
root head hum hum.Health >
YM_FN.(plr)
d = VisibilityESP[plr]
d d.highlight
visible = (root, char)
d.highlight.FillColor = visible .(, , ) .(, , )
d.highlight.Enabled = visibilityCheckEnabled
YM_FN.(plr)
YM_FN.(plr)
Players.PlayerRemoving:(YM_FN.removeVisibilityESP)
RunService.RenderStepped:(()
visibilityCheckEnabled
YM_FN.()
_, obj (VisibilityESP)
obj.highlight obj.highlight.Enabled =
)
FOVGui = .()
FOVGui.Name =
FOVGui.IgnoreGuiInset =
FOVGui.ResetOnSpawn =
FOVGui.Parent = player:()
FOVCircle = .()
FOVCircle.Name =
FOVCircle.AnchorPoint = .(, )
FOVCircle.Position = .(, )
FOVCircle.Size = .(fovRadius * , fovRadius * )
FOVCircle.BackgroundTransparency =
FOVCircle.Visible = fovEnabled
FOVCircle.ZIndex =
FOVCircle.Parent = FOVGui
fovCorner = .()
fovCorner.CornerRadius = .(, )
fovCorner.Parent = FOVCircle
fovStroke = .()
fovStroke.Thickness =
fovStroke.Parent = FOVCircle
.(()
FOVGui.Parent
FOVCircle.Visible = fovEnabled
FOVCircle.Size = .(fovRadius * , fovRadius * )
fovEnabled
fovStroke.Color = .((() * ) % , , )
RunService.RenderStepped:()
)
YM_FN.getChar = () player.Character
YM_FN.getHumanoid = () c = () c c:()
YM_FN.getRoot = () c = () c c:()
antiFlingEnabled =
antiFlingConnection
ANTI_FLING_SPEED =
ANTI_FLING_ANGULAR =
YM_FN.startAntiFling = ()
antiFlingConnection
antiFlingConnection = RunService.Heartbeat:(()
antiFlingEnabled
char = player.Character
root = char char:()
root root:()
velocity = root.AssemblyLinearVelocity
angular = root.AssemblyAngularVelocity
velocity.Magnitude > ANTI_FLING_SPEED angular.Magnitude > ANTI_FLING_ANGULAR
root.AssemblyLinearVelocity = .zero
root.AssemblyAngularVelocity = .zero
hum = char:()
hum
hum:(.HumanoidStateType.GettingUp)
)
YM_FN.stopAntiFling = ()
antiFlingConnection
antiFlingConnection:()
antiFlingConnection =
isTeammate = (plr)
teamCheckEnabled
player.Team ~= plr.Team ~=
player.Team == plr.Team
isVisibleFromCamera = (part, char)
visibilityCheckEnabled
currentCamera = .CurrentCamera
currentCamera or not char then return false end
local origin = currentCamera.CFrame.Position
local points = {}
-- Plusieurs points évitent les faux rouges quand seule la tête est derrière un petit obstacle.
local head = char:FindFirstChild("Head")
local root = char:FindFirstChild("HumanoidRootPart")
local upper = char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso")
local lower = char:FindFirstChild("LowerTorso")
local leftArm = char:FindFirstChild("LeftUpperArm") or char:FindFirstChild("Left Arm")
local rightArm = char:FindFirstChild("RightUpperArm") or char:FindFirstChild("Right Arm")
for _, obj in ipairs({head, upper, lower, root, leftArm, rightArm, part}) do
if obj and obj:IsA("BasePart") then
table.insert(points, obj.Position)
end
end
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
params.FilterDescendantsInstances = {player.Character, char}
params.IgnoreWater = true
for _, targetPosition in ipairs(points) do
local direction = targetPosition - origin
if direction.Magnitude <= 0.01 then
return true
end
local result = workspace:Raycast(origin, direction, params)
if result == nil then
return true
end
end
return false
end
YM_FN.setWalkSpeed = function(v)
walkSpeed = v
local h = YM_FN.getHumanoid()
if h then
h.WalkSpeed = v
h:SetStateEnabled(Enum.HumanoidStateType.Running, true)
end
end
local gameSprintSpeed = nil
YM_FN.startFly = function()
if flying then return end
flying = true
local root, hum = YM_FN.getRoot(), YM_FN.getHumanoid()
if not root or not hum then return end
bodyGyro = Instance.new("BodyGyro")
bodyGyro.P = 9e4
bodyGyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
bodyGyro.CFrame = root.CFrame
bodyGyro.Parent = root
bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(9e9, 9e9, 9e9)
bodyVelocity.Parent = root
hum.PlatformStand = true
end
YM_FN.stopFly = function()
if not flying then return end
flying = false
if bodyGyro then bodyGyro:Destroy() end
if bodyVelocity then bodyVelocity:Destroy() end
local hum = YM_FN.getHumanoid()
if hum then hum.PlatformStand = false end
end
YM_FN.setInvisible = function(state)
local char = YM_FN.getChar()
if not char then return end
for _, v in pairs(char:GetDescendants()) do
if v:IsA("BasePart") then
v.Transparency = state and 1 or 0
if state then v.CanCollide = false end
elseif v:IsA("Decal") or v:IsA("Texture") then
v.Transparency = state and 1 or 0
elseif v:IsA("ParticleEmitter") or v:IsA("Trail") or v:IsA("Beam") then
v.Enabled = not state
end
end
end
YM_FN.startRGB = function()
if rgbConnection then rgbConnection:Disconnect() end
rgbConnection = RunService.Heartbeat:Connect(function()
if not rgb then return end
local char = YM_FN.getChar()
if not char then return end
local color = Color3.fromHSV((tick() % 5)/5, 1, 1)
for _, p in pairs(char:GetDescendants()) do
if p:IsA("BasePart") and p.Name ~= "HumanoidRootPart" and p.Transparency < 0.1 then
p.Color = color
end
end
end)
end
YM_FN.stopRGB = function() if rgbConnection then rgbConnection:Disconnect() rgbConnection = nil end end
YM_FN.getClosestPlayer = function()
local closest, shortest, myRoot = nil, math.huge, YM_FN.getRoot()
if not myRoot then return end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= player and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
local d = (myRoot.Position - plr.Character.HumanoidRootPart.Position).Magnitude
if d < shortest then shortest = d closest = plr end
end
end
return closest
end
YM_FN.startGlue = function()
if glueConnection then return end
local t = YM_FN.getClosestPlayer()
if not t then return end
gluedTarget = t
glueConnection = RunService.Heartbeat:Connect(function()
if not glue or not gluedTarget then return end
local myRoot = YM_FN.getRoot()
local tr = gluedTarget.Character and gluedTarget.Character:FindFirstChild("HumanoidRootPart")
if myRoot and tr then myRoot.CFrame = tr.CFrame * CFrame.new(0, 0, 1.5)
else YM_FN.stopGlue() if glue then task.wait(0.2) YM_FN.startGlue() end end
end)
end
YM_FN.stopGlue = function() if glueConnection then glueConnection:Disconnect() glueConnection = nil end gluedTarget = nil end
YM_FN.startSpin = function()
if spinConnection then return end
spinConnection = RunService.Heartbeat:Connect(function()
if not spinning then return end
local r = YM_FN.getRoot()
if r then r.CFrame = r.CFrame * CFrame.Angles(0, math.rad(spinSpeed), 0) end
end)
end
YM_FN.stopSpin = function() if spinConnection then spinConnection:Disconnect() spinConnection = nil end end
YM_FN.startSpin90 = function()
if spin90Connection then return end
spin90Connection = RunService.Heartbeat:Connect(function()
if not spinning90 then return end
local r = YM_FN.getRoot()
if r then
r.CFrame = CFrame.new(r.Position) * CFrame.Angles(math.rad(90), math.rad(tick() * spinSpeed90), 0)
end
end)
end
YM_FN.stopSpin90 = function() if spin90Connection then spin90Connection:Disconnect() spin90Connection = nil end end
YM_FN.startMoveObjects = function()
if moveConnection then return end
moveConnection = Mouse.Button1Down:Connect(function()
if not moveObjects then return end
local t = Mouse.Target
if t and t:IsA("BasePart") and not t:IsDescendantOf(player.Character) then
selectedPart = t
if selectedPart:FindFirstChild("YM_Select") then selectedPart.YM_Select:Destroy() end
local s = Instance.new("SelectionBox")
s.Name = "YM_Select"
s.Adornee = selectedPart
s.Color3 = Color3.fromRGB(255, 50, 50)
s.Parent = selectedPart
end
end)
RunService.Heartbeat:Connect(function()
if moveObjects and selectedPart and selectedPart.Parent and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then
selectedPart.CFrame = CFrame.new(Mouse.Hit.Position)
end
end)
end
YM_FN.stopMoveObjects = function()
if selectedPart and selectedPart:FindFirstChild("YM_Select") then selectedPart.YM_Select:Destroy() end
selectedPart = nil
if moveConnection then moveConnection:Disconnect() moveConnection = nil end
end
YM_FN.getPlayerUnderMouse = function()
local target = Mouse.Target
if not target then return nil end
local character = target:FindFirstAncestorOfClass("Model")
if not character then return nil end
local plr = Players:GetPlayerFromCharacter(character)
if not plr or plr == player or isTeammate(plr) then return nil end
local hum = character:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health <= 0 then return nil end
if visibilityCheckEnabled and not isVisibleFromCamera(target, character) then return nil end
return plr
end
YM_FN.stopAutoClick = function()
if autoClickHeld then
pcall(function()
VirtualUser:Button1Up(Vector2.new(Mouse.X, Mouse.Y), Camera.CFrame)
end)
autoClickHeld = false
end
if autoClickConnection then autoClickConnection:Disconnect() autoClickConnection = nil end
end
YM_FN.startAutoClick = function()
if autoClickConnection then return end
autoClickConnection = RunService.RenderStepped:Connect(function()
if not autoClick then return end
local targetPlayer = YM_FN.getPlayerUnderMouse()
if targetPlayer then
if not autoClickHeld then
autoClickHeld = true
pcall(function()
VirtualUser:Button1Down(Vector2.new(Mouse.X, Mouse.Y), Camera.CFrame)
end)
end
elseif autoClickHeld then
pcall(function()
VirtualUser:Button1Up(Vector2.new(Mouse.X, Mouse.Y), Camera.CFrame)
end)
autoClickHeld = false
end
end)
end
YM_FN.startClickTP = function()
if clickTPConnection then return end
clickTPConnection = Mouse.Button1Down:Connect(function()
if not clickTP then return end
local r = YM_FN.getRoot()
if r then r.CFrame = CFrame.new(Mouse.Hit.Position + Vector3.new(0, 3, 0)) end
end)
end
YM_FN.stopClickTP = function() if clickTPConnection then clickTPConnection:Disconnect() clickTPConnection = nil end end
YM_FN.startKillAura = function()
if killAuraConnection then return end
killAuraConnection = RunService.Heartbeat:Connect(function()
if not killAura then return end
local myRoot = YM_FN.getRoot()
if not myRoot then return end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= player and not isTeammate(plr) and plr.Character then
local hum = plr.Character:FindFirstChildOfClass("Humanoid")
local root = plr.Character:FindFirstChild("HumanoidRootPart")
if hum and root and hum.Health > 0 and (myRoot.Position - root.Position).Magnitude < 15 then
pcall(function() hum.Health = 0 end)
end
end
end
end)
end
YM_FN.stopKillAura = function() if killAuraConnection then killAuraConnection:Disconnect() killAuraConnection = nil end end
YM_FN.startBringAll = function()
if bringConnection then return end
bringConnection = RunService.Heartbeat:Connect(function()
if not bringAll then return end
local myRoot = YM_FN.getRoot()
if not myRoot then return end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= player and plr.Character then
local root = plr.Character:FindFirstChild("HumanoidRootPart")
if root then root.CFrame = myRoot.CFrame * CFrame.new(0, 0, 5) end
end
end
end)
end
YM_FN.stopBringAll = function() if bringConnection then bringConnection:Disconnect() bringConnection = nil end end
YM_FN.startInfiniteJump = function()
if jumpConnection then return end
jumpConnection = UserInputService.JumpRequest:Connect(function()
if not infiniteJump then return end
local h = YM_FN.getHumanoid()
if h then h:ChangeState(Enum.HumanoidStateType.Jumping) end
end)
end
YM_FN.stopInfiniteJump = function() if jumpConnection then jumpConnection:Disconnect() jumpConnection = nil end end
YM_FN.startNoFallDamage = function()
if fallConnection then return end
fallConnection = RunService.Heartbeat:Connect(function()
if not noFallDamage then return end
local h = YM_FN.getHumanoid()
if h and h:GetState() == Enum.HumanoidStateType.Freefall then
h:ChangeState(Enum.HumanoidStateType.GettingUp)
end
end)
end
YM_FN.stopNoFallDamage = function() if fallConnection then fallConnection:Disconnect() fallConnection = nil end end
YM_FN.startAntiAFK = function()
if antiAFKConnection then return end
antiAFKConnection = player.Idled:Connect(function()
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new())
end)
end
YM_FN.stopAntiAFK = function() if antiAFKConnection then antiAFKConnection:Disconnect() antiAFKConnection = nil end end
YM_FN.startRagdoll = function()
local char = YM_FN.getChar()
local hum = YM_FN.getHumanoid()
if not char or not hum then return end
hum.PlatformStand = true
hum:ChangeState(Enum.HumanoidStateType.Physics)
for _, v in pairs(char:GetDescendants()) do
if v:IsA("Motor6D") and v.Part0 and v.Part1 then
local att0 = Instance.new("Attachment")
att0.Name = "YM_RagA0"
att0.CFrame = v.C0
att0.Parent = v.Part0
local att1 = Instance.new("Attachment")
att1.Name = "YM_RagA1"
att1.CFrame = v.C1
att1.Parent = v.Part1
local ball = Instance.new("BallSocketConstraint")
ball.Name = "YM_Ragdoll"
ball.Attachment0 = att0
ball.Attachment1 = att1
ball.LimitsEnabled = false
ball.Parent = v.Part0
table.insert(ragdollConstraints, {motor = v, ball = ball, att0 = att0, att1 = att1})
v.Enabled = false
end
end
end
YM_FN.stopRagdoll = function()
local hum = YM_FN.getHumanoid()
if hum then
hum.PlatformStand = false
hum:ChangeState(Enum.HumanoidStateType.GettingUp)
end
for _, data in pairs(ragdollConstraints) do
if data.motor then data.motor.Enabled = true end
if data.ball then data.ball:Destroy() end
if data.att0 then data.att0:Destroy() end
if data.att1 then data.att1:Destroy() end
end
table.clear(ragdollConstraints)
end
-- ========== FORCE x1000 CORRIGÉE ==========
YM_FN.setupSuperForce = function(char)
for _, conn in pairs(forceConnections) do
conn:Disconnect()
end
table.clear(forceConnections)
if not superForce or not char then return end
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
local conn = part.Touched:Connect(function(hit)
if not superForce then return end
local enemyChar = hit:FindFirstAncestorOfClass("Model")
if not enemyChar or enemyChar == char then return end
local enemyHum = enemyChar:FindFirstChildOfClass("Humanoid")
local enemyRoot = enemyChar:FindFirstChild("HumanoidRootPart")
local myRoot = YM_FN.getRoot()
if enemyHum and enemyRoot and myRoot and enemyHum.Health > 0 then
local direction = (enemyRoot.Position - myRoot.Position)
if direction.Magnitude < 0.8 then
direction = myRoot.CFrame.LookVector
else
direction = direction.Unit
end
local power = forcePower
enemyRoot.AssemblyLinearVelocity = direction * power + Vector3.new(0, power * 0.55, 0)
local bv = Instance.new("BodyVelocity")
bv.Velocity = direction * power + Vector3.new(0, power * 0.5, 0)
bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bv.Parent = enemyRoot
game:GetService("Debris"):AddItem(bv, 0.45)
end
end)
table.insert(forceConnections, conn)
end
end
end
-- ESP Squelette
YM_FN.clearSkeleton = function()
for _, drawings in pairs(skeletonDrawings) do
for _, d in pairs(drawings) do if d and d.Remove then d:Remove() end end
end
table.clear(skeletonDrawings)
end
YM_FN.startSkeletonESP = function()
if skeletonConnection then return end
skeletonConnection = RunService.RenderStepped:Connect(function()
if not skeletonESP then return end
YM_FN.clearSkeleton()
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= player and not isTeammate(plr) and plr.Character then
local char = plr.Character
local bones = {
{"Head","UpperTorso"},{"UpperTorso","LowerTorso"},
{"UpperTorso","LeftUpperArm"},{"LeftUpperArm","LeftLowerArm"},{"LeftLowerArm","LeftHand"},
{"UpperTorso","RightUpperArm"},{"RightUpperArm","RightLowerArm"},{"RightLowerArm","RightHand"},
{"LowerTorso","LeftUpperLeg"},{"LeftUpperLeg","LeftLowerLeg"},{"LeftLowerLeg","LeftFoot"},
{"LowerTorso","RightUpperLeg"},{"RightUpperLeg","RightLowerLeg"},{"RightLowerLeg","RightFoot"}
}
if not char:FindFirstChild("UpperTorso") then
bones = {{"Head","Torso"},{"Torso","Left Arm"},{"Torso","Right Arm"},{"Torso","Left Leg"},{"Torso","Right Leg"}}
end
local drawings = {}
for _, pair in pairs(bones) do
local p1 = char:FindFirstChild(pair[1])
local p2 = char:FindFirstChild(pair[2])
if p1 and p2 then
local pos1, on1 = Camera:WorldToViewportPoint(p1.Position)
local pos2, on2 = Camera:WorldToViewportPoint(p2.Position)
if on1 or on2 then
local line = Drawing.new("Line")
line.From = Vector2.new(pos1.X, pos1.Y)
line.To = Vector2.new(pos2.X, pos2.Y)
line.Color = Color3.fromRGB(255, 50, 50)
line.Thickness = 1.5
line.Visible = true
table.insert(drawings, line)
end
end
end
skeletonDrawings[plr] = drawings
end
end
end)
end
YM_FN.stopSkeletonESP = function()
if skeletonConnection then skeletonConnection:Disconnect() skeletonConnection = nil end
YM_FN.clearSkeleton()
end
YM_FN.clearNameHealth = function()
for _, bb in pairs(nameHealthBillboards) do if bb then bb:Destroy() end end
table.clear(nameHealthBillboards)
end
YM_FN.startNameGlitch = function()
if nameGlitchConnection then return end
local char = YM_FN.getChar()
if not char then return end
local head = char:FindFirstChild("Head")
if not head then return end
if nameGlitchBillboard then nameGlitchBillboard:Destroy() end
local bb = Instance.new("BillboardGui")
bb.Name = "YM_NameGlitch"
bb.Adornee = head
bb.Size = UDim2.new(0, 260, 0, 40)
bb.StudsOffset = Vector3.new(0, 3.3, 0)
bb.AlwaysOnTop = true
bb.Parent = head
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.Font = Enum.Font.GothamBlack
label.TextSize = 18
label.TextStrokeTransparency = 0.3
label.Parent = bb
nameGlitchBillboard = bb
local chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%&*!?"
nameGlitchConnection = RunService.Heartbeat:Connect(function()
if not nameGlitch or not label or not label.Parent then return end
local glitchText = ""
for i = 1, 14 do
glitchText = glitchText .. string.sub(chars, math.random(1, #chars), math.random(1, #chars))
end
label.Text = glitchText
label.TextColor3 = Color3.fromHSV((tick() * 3) % 1, 1, 1)
end)
end
YM_FN.stopNameGlitch = function()
if nameGlitchConnection then nameGlitchConnection:Disconnect() nameGlitchConnection = nil end
if nameGlitchBillboard then nameGlitchBillboard:Destroy() nameGlitchBillboard = nil end
end
YM_FN.startFakeLagTP = function()
if fakeLagTPConnection then return end
fakeLagTPConnection = RunService.Heartbeat:Connect(function()
if not fakeLagTP then return end
local root = YM_FN.getRoot()
if root and math.random(1, 8) == 1 then
local offset = Vector3.new(math.random(-4, 4), 0, math.random(-4, 4))
root.CFrame = root.CFrame + offset
task.wait(0.05)
root.CFrame = root.CFrame - offset
end
end)
end
YM_FN.stopFakeLagTP = function() if fakeLagTPConnection then fakeLagTPConnection:Disconnect() fakeLagTPConnection = nil end end
YM_FN.startFakeLagAngles = function()
if fakeLagAnglesConnection then return end
fakeLagAnglesConnection = RunService.Heartbeat:Connect(function()
if not fakeLagAngles then return end
local root = YM_FN.getRoot()
if root then
root.CFrame = CFrame.new(root.Position) * CFrame.Angles(
math.rad(math.random(-60, 60)),
math.rad(math.random(0, 360)),
math.rad(math.random(-40, 40))
)
end
end)
end
YM_FN.stopFakeLagAngles = function() if fakeLagAnglesConnection then fakeLagAnglesConnection:Disconnect() fakeLagAnglesConnection = nil end end
-- ========== ESP BOX RGB + LIGNE CENTRALE + VIE + NOM + DISTANCE ==========
YM_FN.removeBoxESP = function(plr)
local data = boxESPObjects[plr]
if data then
for _, obj in pairs(data) do if obj and obj.Remove then pcall(function() obj:Remove() end) end end
boxESPObjects[plr] = nil
end
end
YM_FN.clearBoxESP = function() for plr in pairs(boxESPObjects) do removeBoxESP(plr) end end
YM_FN.startBoxESP = function()
if boxESPConnection then return end
boxESPConnection = RunService.RenderStepped:Connect(function()
if not boxESP then return end
local rgbColor = Color3.fromHSV((tick() * 0.25) % 1, 1, 1)
local currentCamera = workspace.CurrentCamera or Camera
if not currentCamera then return end
Camera = currentCamera
local viewport = currentCamera.ViewportSize
local screenCenter = Vector2.new(viewport.X / 2, viewport.Y / 2)
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= player and not isTeammate(plr) and plr.Character then
local char = plr.Character
local root, head = char:FindFirstChild("HumanoidRootPart"), char:FindFirstChild("Head")
local hum = char:FindFirstChildOfClass("Humanoid")
if root and head and hum and hum.Health > 0 then
local top3, topOn = currentCamera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.35, 0))
local bot3, botOn = currentCamera:WorldToViewportPoint(root.Position - Vector3.new(0, 3, 0))
if (topOn or botOn) and top3.Z > 0 and bot3.Z > 0 then
local h = math.max(12, math.abs(bot3.Y - top3.Y)); local w = math.max(8, h * 0.55)
local x, y = top3.X - w/2, top3.Y
local d = boxESPObjects[plr]
if not d then
d = {box=Drawing.new("Square"), line=Drawing.new("Line"), healthBG=Drawing.new("Square"), health=Drawing.new("Square"), name=Drawing.new("Text"), distance=Drawing.new("Text")}
d.box.Filled=false; d.box.Thickness=2; d.line.Thickness=1.5; d.healthBG.Filled=true; d.health.Filled=true
d.name.Center=true; d.name.Outline=true; d.name.Size=13; d.name.Font=2
d.distance.Center=true; d.distance.Outline=true; d.distance.Size=11; d.distance.Font=2
boxESPObjects[plr]=d
end
d.box.Position=Vector2.new(x,y); d.box.Size=Vector2.new(w,h)
d.box.Color = rgbColor
d.box.Visible=true
d.line.From=screenCenter; d.line.To=Vector2.new(x+w/2,y+h/2)
d.line.Color = rgbColor
d.line.Visible = boxESP
d.healthBG.Visible=true
d.health.Visible=true
d.name.Visible=true
d.distance.Visible=true
local ratio=math.clamp(hum.Health/math.max(hum.MaxHealth,1),0,1); local bx=x+w+4
d.healthBG.Position=Vector2.new(bx,y); d.healthBG.Size=Vector2.new(4,h); d.healthBG.Color=Color3.fromRGB(25,25,25); d.healthBG.Visible=true
d.health.Position=Vector2.new(bx,y+h*(1-ratio)); d.health.Size=Vector2.new(4,h*ratio); d.health.Color=Color3.fromHSV(math.clamp(ratio*.33,0,.33),1,1); d.health.Visible=true
d.name.Position=Vector2.new(top3.X, y-16); d.name.Text=plr.DisplayName; d.name.Color=rgbColor; d.name.Visible=true
local myRoot=YM_FN.getRoot(); local dist=myRoot and (myRoot.Position-root.Position).Magnitude or 0
d.distance.Position=Vector2.new(top3.X, y+h+3); d.distance.Text=string.format("%dm", math.floor(dist+0.5)); d.distance.Color=rgbColor; d.distance.Visible=true
else YM_FN.removeBoxESP(plr) end
else YM_FN.removeBoxESP(plr) end
end
end
end)
end
YM_FN.stopBoxESP = function() if boxESPConnection then boxESPConnection:Disconnect(); boxESPConnection=nil end; clearBoxESP() end
YM_FN.createESP = function(plr)
if plr == player or highlights[plr] or isTeammate(plr) then return end
local char = plr.Character
if not char then return end
local h = Instance.new("Highlight")
h.FillColor = Color3.fromRGB(180, 0, 0)
h.OutlineColor = Color3.fromRGB(255, 40, 40)
h.FillTransparency = 0.45
h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
h.Parent = char
highlights[plr] = h
end
YM_FN.removeESP = function(plr)
if highlights[plr] then highlights[plr]:Destroy() highlights[plr] = nil end
end
YM_FN.updateESP = function()
for _, plr in pairs(Players:GetPlayers()) do
if esp and plr.Character and not isTeammate(plr) then
YM_FN.createESP(plr)
else
YM_FN.removeESP(plr)
end
end
end
YM_FN.getClosestHead = function()
local closest, shortest = nil, math.huge
local currentCamera = workspace.CurrentCamera
if not currentCamera then return end
local screenCenter = currentCamera.ViewportSize * 0.5
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= player and plr.Character then
local head = plr.Character:FindFirstChild("Head")
local hum = plr.Character:FindFirstChildOfClass("Humanoid")
if head and hum and hum.Health > 0 then
local pos, onScreen = currentCamera:WorldToViewportPoint(head.Position)
if onScreen and pos.Z > 0 then
local d = (Vector2.new(pos.X, pos.Y) - screenCenter).Magnitude
if d < shortest then shortest = d closest = head end
end
end
end
end
return closest
end
YM_FN.teleportToPlayer = function(target)
if not target or target == player then return end
local myRoot = YM_FN.getRoot()
local tr = target.Character and target.Character:FindFirstChild("HumanoidRootPart")
if myRoot and tr then myRoot.CFrame = tr.CFrame * CFrame.new(0, 0, 3.5) end
end
YM_FN.spectatePlayer = function(target)
if not target or not target.Character then return end
local hum = target.Character:FindFirstChildOfClass("Humanoid")
if hum then Camera.CameraSubject = hum end
end
YM_FN.stopSpectate = function()
local hum = YM_FN.getHumanoid()
if hum then Camera.CameraSubject = hum end
end
-------------------------------------------------
-- INTERFACE - CARTOGRAPHIE 0.6 / OUTILS 0.5
-------------------------------------------------
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "Core" .. math.random(100000, 999999)
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Parent = player:WaitForChild("PlayerGui")
local WINDOW_BACKGROUND_IMAGE = "rbxassetid://100446752830441"
local BUTTON_BACKGROUND_IMAGE = "rbxassetid://115507210213862"
local Main = Instance.new("Frame")
Main.Name = "Main"
Main.Size = UDim2.new(0, 640, 0, 460)
Main.Position = UDim2.new(0.5, -320, 0.5, -230)
Main.BackgroundColor3 = Color3.fromRGB(15, 5, 5)
Main.BackgroundTransparency = 0.15
Main.BorderSizePixel = 0
Main.Active = true
Main.Parent = ScreenGui
local INITIAL_MAIN_POSITION = Main.Position
Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 10)
-- MODE MOBILE MINI : fenêtre fortement réduite pour libérer l'écran.
-- Sur PC, la taille originale est conservée.
local MainScale = Instance.new("UIScale")
MainScale.Name = "YM_MobileScale"
MainScale.Scale = UserInputService.TouchEnabled and 0.42 or 1
MainScale.Parent = Main
YM_FN.updateMobileScale = function()
if not UserInputService.TouchEnabled then
MainScale.Scale = 1
return
end
local camera = workspace.CurrentCamera
local viewport = camera and camera.ViewportSize
if viewport then
-- Environ 40–45 % sur téléphone ; un peu plus grand selon l'écran.
local byWidth = viewport.X / 820
local byHeight = viewport.Y / 700
MainScale.Scale = math.clamp(math.min(byWidth, byHeight), 0.38, 0.46)
end
end
YM_FN.updateMobileScale()
if workspace.CurrentCamera then
workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(YM_FN.updateMobileScale)
end
-- Petit bouton YM pour rouvrir la fenêtre principale sur mobile.
local guiVisible = true
local MobileReopen = Instance.new("TextButton")
MobileReopen.Name = "YM_MobileReopen"
MobileReopen.Size = UDim2.fromOffset(46, 46)
MobileReopen.Position = UDim2.new(0, 12, 1, -58)
MobileReopen.BackgroundColor3 = Color3.fromRGB(70, 0, 0)
MobileReopen.BackgroundTransparency = 0.08
MobileReopen.Text = "YM"
MobileReopen.TextColor3 = Color3.fromRGB(255, 255, 255)
MobileReopen.Font = Enum.Font.GothamBlack
MobileReopen.TextSize = 15
MobileReopen.ZIndex = 100
MobileReopen.Visible = false
MobileReopen.Parent = ScreenGui
Instance.new("UICorner", MobileReopen).CornerRadius = UDim.new(1, 0)
MobileReopen.Activated:Connect(function()
guiVisible = true
Main.Visible = true
end)
Main:GetPropertyChangedSignal("Visible"):Connect(function()
guiVisible = Main.Visible
MobileReopen.Visible = not Main.Visible
end)
local Background = Instance.new("ImageLabel")
Background.Name = "YM_WindowBackground"
Background.Size = UDim2.fromScale(1, 1)
Background.BackgroundTransparency = 1
Background.Image = WINDOW_BACKGROUND_IMAGE
Background.ImageTransparency = 0.08
Background.ScaleType = Enum.ScaleType.Crop
Background.BorderSizePixel = 0
Background.ZIndex = 1
Background.Parent = Main
Instance.new("UICorner", Background).CornerRadius = UDim.new(0, 10)
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -66, 0, 38)
Title.Position = UDim2.new(0, 12, 0, 7)
Title.BackgroundTransparency = 1
Title.Text = "YM TOOL • F1/P menu • F2 FPS • F3 viseur"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextStrokeTransparency = 0.15
Title.Font = Enum.Font.GothamBold
Title.TextSize = 16
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.ZIndex = 20
Title.Parent = Main
-- Bouton de fermeture : masque la fenêtre sans arrêter les outils.
local MainCloseButton = Instance.new("TextButton")
MainCloseButton.Name = "YM_MainCloseButton"
MainCloseButton.Size = UDim2.fromOffset(28, 28)
MainCloseButton.Position = UDim2.new(1, -36, 0, 7)
MainCloseButton.BackgroundColor3 = Color3.fromRGB(125, 10, 18)
MainCloseButton.Text = "×"
MainCloseButton.TextColor3 = Color3.new(1, 1, 1)
MainCloseButton.Font = Enum.Font.GothamBlack
MainCloseButton.TextSize = 22
MainCloseButton.AutoButtonColor = true
MainCloseButton.ZIndex = 50
MainCloseButton.Parent = Main
Instance.new("UICorner", MainCloseButton).CornerRadius = UDim.new(0, 7)
MainCloseButton.Activated:Connect(function()
guiVisible = false
Main.Visible = false
end)
local SearchBox = Instance.new("TextBox")
SearchBox.Size = UDim2.new(1, -24, 0, 30)
SearchBox.Position = UDim2.new(0, 12, 0, 48)
SearchBox.BackgroundColor3 = Color3.fromRGB(20, 5, 5)
SearchBox.BackgroundTransparency = 0.2
SearchBox.Text = ""
SearchBox.PlaceholderText = "🔎 Rechercher un onglet / une option..."
SearchBox.PlaceholderColor3 = Color3.fromRGB(190, 170, 170)
SearchBox.TextColor3 = Color3.fromRGB(255, 255, 255)
SearchBox.Font = Enum.Font.Gotham
SearchBox.TextSize = 13
SearchBox.ClearTextOnFocus = false
SearchBox.ZIndex = 20
SearchBox.Parent = Main
Instance.new("UICorner", SearchBox).CornerRadius = UDim.new(0, 6)
local Sidebar = Instance.new("Frame")
Sidebar.Size = UDim2.new(0, 165, 1, -94)
Sidebar.Position = UDim2.new(0, 12, 0, 88)
Sidebar.BackgroundColor3 = Color3.fromRGB(10, 3, 3)
Sidebar.BackgroundTransparency = 0.2
Sidebar.BorderSizePixel = 0
Sidebar.ZIndex = 10
Sidebar.Parent = Main
Instance.new("UICorner", Sidebar).CornerRadius = UDim.new(0, 8)
-- Zone scrollable des catégories : conserve la sidebar compacte de la 0.6.
local CategoryScroll = Instance.new("ScrollingFrame")
CategoryScroll.Name = "CategoryScroll"
CategoryScroll.Size = UDim2.new(1, -16, 1, -20)
CategoryScroll.Position = UDim2.new(0, 8, 0, 10)
CategoryScroll.BackgroundTransparency = 1
CategoryScroll.BorderSizePixel = 0
CategoryScroll.ScrollBarThickness = 5
CategoryScroll.ScrollBarImageColor3 = Color3.fromRGB(180, 0, 0)
CategoryScroll.ScrollingDirection = Enum.ScrollingDirection.Y
CategoryScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
CategoryScroll.CanvasSize = UDim2.new(0, 0, 0, 0)
CategoryScroll.Active = true
CategoryScroll.ZIndex = 20
CategoryScroll.Parent = Sidebar
local SidebarLayout = Instance.new("UIListLayout")
SidebarLayout.Padding = UDim.new(0, 7)
SidebarLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
SidebarLayout.SortOrder = Enum.SortOrder.LayoutOrder
SidebarLayout.Parent = CategoryScroll
local SidebarPadding = Instance.new("UIPadding")
SidebarPadding.PaddingTop = UDim.new(0, 0)
SidebarPadding.PaddingLeft = UDim.new(0, 0)
SidebarPadding.PaddingRight = UDim.new(0, 0)
SidebarPadding.PaddingBottom = UDim.new(0, 10)
SidebarPadding.Parent = CategoryScroll
local Content = Instance.new("Frame")
Content.Size = UDim2.new(1, -195, 1, -94)
Content.Position = UDim2.new(0, 183, 0, 88)
Content.BackgroundColor3 = Color3.fromRGB(10, 3, 3)
Content.BackgroundTransparency = 0.25
Content.BorderSizePixel = 0
Content.ZIndex = 10
Content.Parent = Main
Instance.new("UICorner", Content).CornerRadius = UDim.new(0, 8)
local ContentTitle = Instance.new("TextLabel")
ContentTitle.Size = UDim2.new(1, -24, 0, 40)
ContentTitle.Position = UDim2.new(0, 12, 0, 10)
ContentTitle.BackgroundTransparency = 1
ContentTitle.Text = "ACCUEIL"
ContentTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
ContentTitle.TextStrokeTransparency = 0.2
ContentTitle.Font = Enum.Font.GothamBold
ContentTitle.TextSize = 20
ContentTitle.TextXAlignment = Enum.TextXAlignment.Left
ContentTitle.ZIndex = 30
ContentTitle.Parent = Content
local Description = Instance.new("TextLabel")
Description.Size = UDim2.new(1, -24, 0, 82)
Description.Position = UDim2.new(0, 12, 0, 55)
Description.BackgroundTransparency = 1
Description.Text = "Bonjour, nous sommes YM TOOL ! Un tool universel pour chaque jeu et utilisation.\nNous ne sommes pas responsable de vos bannissement et nous respectons les mentions de ScriptBlox."
Description.TextColor3 = Color3.fromRGB(235, 220, 220)
Description.Font = Enum.Font.Gotham
Description.TextSize = 14
Description.TextWrapped = true
Description.TextXAlignment = Enum.TextXAlignment.Left
Description.TextYAlignment = Enum.TextYAlignment.Top
Description.ZIndex = 30
Description.Parent = Content
local ScriptBloxCounter = Instance.new("TextLabel")
ScriptBloxCounter.Size = UDim2.new(1, -24, 0, 26)
ScriptBloxCounter.Position = UDim2.new(0, 12, 0, 145)
ScriptBloxCounter.BackgroundTransparency = 1
ScriptBloxCounter.Text = "ScriptBlox • chargement..."
ScriptBloxCounter.TextColor3 = Color3.fromRGB(180, 180, 180)
ScriptBloxCounter.Font = Enum.Font.GothamBold
ScriptBloxCounter.TextSize = 12
ScriptBloxCounter.TextXAlignment = Enum.TextXAlignment.Left
ScriptBloxCounter.ZIndex = 30
ScriptBloxCounter.Parent = Content
local DiscHome = Instance.new("TextButton")
DiscHome.Size = UDim2.new(1, -24, 0, 34)
DiscHome.Position = UDim2.new(0, 12, 0, 185)
DiscHome.BackgroundColor3 = Color3.fromRGB(60, 20, 100)
DiscHome.Text = "Discord : discord.gg/cKPHdt99WG"
DiscHome.TextColor3 = Color3.fromRGB(220, 200, 255)
DiscHome.Font = Enum.Font.GothamBold
DiscHome.TextSize = 13
DiscHome.ZIndex = 30
DiscHome.Parent = Content
Instance.new("UICorner", DiscHome).CornerRadius = UDim.new(0, 6)
DiscHome.Activated:Connect(function()
if setclipboard then
setclipboard("https://discord.gg/cKPHdt99WG")
DiscHome.Text = "✅ Lien copié !"
task.wait(1.5)
DiscHome.Text = "Discord : discord.gg/cKPHdt99WG"
end
end)
local HttpService = game:GetService("HttpService")
YM_FN.refreshScriptBloxCounter = function()
local ok, result = pcall(function()
return game:HttpGet("https://scriptblox.com/api/script/search?q=YM%20TOOL&max=20")
end)
if not ok then ScriptBloxCounter.Text = "ScriptBlox • indisponible" return end
local decodedOk, data = pcall(function() return HttpService:JSONDecode(result) end)
if not decodedOk or not data or not data.result or not data.result.scripts then
ScriptBloxCounter.Text = "ScriptBlox • données indisponibles"
return
end
for _, scriptData in ipairs(data.result.scripts) do
if string.lower(scriptData.title or "") == "ym tool" then
local views = tonumber(scriptData.views) or 0
ScriptBloxCounter.Text = string.format("Powered by ScriptBlox.com • %s vues", tostring(views):reverse():gsub("(%d%d%d)", "%1 "):reverse():gsub("^ ", ""))
return
end
end
ScriptBloxCounter.Text = "Powered by ScriptBlox.com • YM TOOL introuvable"
end
task.spawn(function()
while ScreenGui.Parent do
YM_FN.refreshScriptBloxCounter()
task.wait(60)
end
end)
local PageHolder = Instance.new("Frame")
PageHolder.Size = UDim2.new(1, -16, 1, -62)
PageHolder.Position = UDim2.new(0, 8, 0, 52)
PageHolder.BackgroundTransparency = 1
PageHolder.ZIndex = 20
PageHolder.Parent = Content
local categories = {"ACCUEIL", "VALEURS MODIFIABLE", "FUN", "PVP", "RAGEBAIT", "ONLY YOUR EYES", "BOUTONS", "PRESET", "THEME EDITOR"}
local pages = {}
local categoryButtons = {}
local activePage = nil
local searchTargets = {}
YM_FN.makePage = function(name)
local page = Instance.new("ScrollingFrame")
page.Name = "Page_" .. name:gsub("%W", "_")
page.Size = UDim2.fromScale(1, 1)
page.BackgroundTransparency = 1
page.BorderSizePixel = 0
page.ScrollBarThickness = 5
page.ScrollBarImageColor3 = Color3.fromRGB(180, 0, 0)
page.AutomaticCanvasSize = Enum.AutomaticSize.Y
page.Visible = false
page.ZIndex = 25
page.Parent = PageHolder
local pad = Instance.new("UIPadding")
pad.PaddingTop = UDim.new(0, 4)
pad.PaddingBottom = UDim.new(0, 10)
pad.PaddingLeft = UDim.new(0, 4)
pad.PaddingRight = UDim.new(0, 4)
pad.Parent = page
local list = Instance.new("UIListLayout")
list.Padding = UDim.new(0, 5)
list.SortOrder = Enum.SortOrder.LayoutOrder
list.Parent = page
pages[name] = page
return page
end
for _, name in ipairs(categories) do YM_FN.makePage(name) end
YM_FN.showCategory = function(name)
for n, page in pairs(pages) do page.Visible = (n == name) end
for n, btn in pairs(categoryButtons) do
btn.BackgroundTransparency = (n == name) and 0.02 or 0.15
end
ContentTitle.Text = name
Description.Visible = (name == "ACCUEIL")
ScriptBloxCounter.Visible = (name == "ACCUEIL")
DiscHome.Visible = (name == "ACCUEIL")
end
for _, name in ipairs(categories) do
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(1, -16, 0, 42)
Button.BackgroundColor3 = Color3.fromRGB(25, 7, 7)
Button.BackgroundTransparency = 0.15
Button.Text = name
Button.TextColor3 = Color3.fromRGB(245, 225, 225)
Button.TextStrokeTransparency = 0.15
Button.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
Button.Font = Enum.Font.GothamBold
Button.TextSize = 12
Button.AutoButtonColor = true
Button.ZIndex = 30
Button.Parent = CategoryScroll
Instance.new("UICorner", Button).CornerRadius = UDim.new(0, 6)
categoryButtons[name] = Button
Button.Activated:Connect(function() YM_FN.showCategory(name) end)
end
-- THEME EDITOR
-- Construit seulement après la création des pages et boutons.
local ThemeState = {animations = true}
local themeOk, themeResult = pcall(buildThemeEditor, {
ScreenGui = ScreenGui, Main = Main, Content = Content, Sidebar = Sidebar, Background = Background,
categoryButtons = categoryButtons, pages = pages, player = player, RunService = RunService, HttpService = HttpService,
SearchBox = SearchBox, ContentTitle = ContentTitle, Title = Title, WindowHeader = Title, InitialMainPosition = INITIAL_MAIN_POSITION,
WINDOW_BACKGROUND_IMAGE = WINDOW_BACKGROUND_IMAGE, BUTTON_BACKGROUND_IMAGE = BUTTON_BACKGROUND_IMAGE,
})
if themeOk and type(themeResult) == "table" then
ThemeState = themeResult
else
warn("YM TOOL | Theme Editor désactivé : " .. tostring(themeResult))
end
local dragging = false
local dragStart
local startPosition
Title.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPosition = Main.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then dragging = false end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
Main.Position = UDim2.new(startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y)
end
end)
-- Fenêtre DEBUG séparée (créée après ScreenGui/Main pour garantir son affichage)
local DebugFrame = Instance.new("Frame")
DebugFrame.Name = "YM_DEBUG"
DebugFrame.Size = UDim2.fromOffset(300, 360)
DebugFrame.AnchorPoint = Vector2.new(0, 0.5)
DebugFrame.Position = UDim2.new(0.5, 165, 0.5, 0)
DebugFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 10)
DebugFrame.Visible = false
DebugFrame.Active = true
DebugFrame.Draggable = true
DebugFrame.Parent = ScreenGui
Instance.new("UICorner", DebugFrame).CornerRadius = UDim.new(0, 10)
local debugStroke = Instance.new("UIStroke")
debugStroke.Color = Color3.fromRGB(160, 0, 0)
debugStroke.Parent = DebugFrame
local DebugTitle = Instance.new("TextLabel")
DebugTitle.Size = UDim2.new(1, -40, 0, 40)
DebugTitle.BackgroundColor3 = Color3.fromRGB(18, 0, 0)
DebugTitle.Text = "YM TOOL | DEBUG"
DebugTitle.TextColor3 = Color3.fromRGB(220, 20, 20)
DebugTitle.Font = Enum.Font.GothamBlack
DebugTitle.TextSize = 16
DebugTitle.Parent = DebugFrame
Instance.new("UICorner", DebugTitle).CornerRadius = UDim.new(0, 10)
local DebugClose = Instance.new("TextButton")
DebugClose.Size = UDim2.fromOffset(40, 40)
DebugClose.Position = UDim2.new(1, -38, 0, 0)
DebugClose.BackgroundColor3 = Color3.fromRGB(140, 0, 0)
DebugClose.Text = "X"
DebugClose.TextColor3 = Color3.fromRGB(255,255,255)
DebugClose.Font = Enum.Font.GothamBlack
DebugClose.TextSize = 17
DebugClose.Parent = DebugFrame
Instance.new("UICorner", DebugClose).CornerRadius = UDim.new(0, 10)
DebugClose.Activated:Connect(function()
DebugFrame.Visible = false
debugVisible = false
end)
DebugFrame.Visible = false
DebugFrame.ZIndex = 100
local DebugStatus = Instance.new("TextLabel")
DebugStatus.Size = UDim2.new(1, -20, 0, 22)
DebugStatus.Position = UDim2.fromOffset(10, 42)
DebugStatus.BackgroundTransparency = 1
DebugStatus.Text = "● LIVE DEBUG"
DebugStatus.TextColor3 = Color3.fromRGB(0, 255, 100)
DebugStatus.Font = Enum.Font.GothamBold
DebugStatus.TextSize = 12
DebugStatus.TextXAlignment = Enum.TextXAlignment.Left
DebugStatus.Parent = DebugFrame
local DebugLabel = Instance.new("TextLabel")
DebugLabel.Size = UDim2.new(1, -20, 1, -60)
DebugLabel.Position = UDim2.fromOffset(10, 54)
DebugLabel.BackgroundTransparency = 1
DebugLabel.TextColor3 = Color3.fromRGB(220,220,220)
DebugLabel.Font = Enum.Font.Code
DebugLabel.TextSize = 13
DebugLabel.TextXAlignment = Enum.TextXAlignment.Left
DebugLabel.TextYAlignment = Enum.TextYAlignment.Top
DebugLabel.TextWrapped = false
DebugLabel.Text = "FPS : ...\nPing : ...\nPosition : ...\nVelocity : ...\nHumanoid : ...\nCamera FOV : ...\nServer : ...\nClient : LocalScript"
DebugLabel.Parent = DebugFrame
-- Tous les éléments DEBUG restent au-dessus de la fenêtre
DebugTitle.ZIndex = 101
DebugClose.ZIndex = 102
DebugStatus.ZIndex = 101
DebugLabel.ZIndex = 101
task.spawn(function()
local last = tick()
local frames = 0
local shownFPS = 0
while DebugFrame.Parent do
RunService.RenderStepped:Wait()
frames += 1
local now = tick()
if now - last >= 0.5 then
shownFPS = math.floor(frames / (now-last) + 0.5)
frames = 0
last = now
end
if debugVisible then
local currentCamera = workspace.CurrentCamera
local root = YM_FN.getRoot()
local hum = YM_FN.getHumanoid()
local pos = root and root.Position or Vector3.zero
local vel = root and root.AssemblyLinearVelocity or Vector3.zero
local state = hum and hum:GetState().Name or "N/A"
local ping = "N/A"
pcall(function()
local stats = game:GetService("Stats")
local network = stats:FindFirstChild("Network")
local serverStats = network and network:FindFirstChild("ServerStatsItem")
local item = serverStats and serverStats:FindFirstChild("Data Ping")
if item then ping = tostring(math.floor(item:GetValue())) .. " ms" end
end)
DebugLabel.Text = string.format(
"FPS : %d\nPing : %s\nPosition : %.1f, %.1f, %.1f\nVelocity : %.1f, %.1f, %.1f\nHumanoid : %s\nCamera FOV : %.1f\nServer : %s\nClient : %s",
shownFPS, ping,
pos.X, pos.Y, pos.Z,
vel.X, vel.Y, vel.Z,
state,
currentCamera and currentCamera.FieldOfView or 0,
game.JobId ~= "" and game.JobId or "N/A",
"LocalScript"
)
end
end
end)
local function buildDirectButtonUI()
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 48)
Title.BackgroundColor3 = Color3.fromRGB(18, 0, 0)
Title.Text = "YM TOOL | P pour cacher"
Title.TextColor3 = Color3.fromRGB(220, 20, 20)
Title.Font = Enum.Font.GothamBlack
Title.TextSize = 20
Title.Parent = Main
Instance.new("UICorner", Title).CornerRadius = UDim.new(0, 10)
-- Recherche rapide + compteur ScriptBlox
local function setActivePage(name)
activePage = pages[name]
return activePage
end
setActivePage("FUN")
local toggleRegistry = {}
local toggleStates = {} -- état partagé avec les commandes tactiles
YM_FN.createToggle = function(text, callback)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -10, 0, 34)
btn.BackgroundColor3 = Color3.fromRGB(20, 5, 5)
btn.Text = text .. " | OFF"
btn.TextColor3 = Color3.fromRGB(255, 55, 55)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 13
btn.TextTransparency = 0
btn.TextStrokeTransparency = 0
btn.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
btn.TextXAlignment = Enum.TextXAlignment.Center
btn.TextYAlignment = Enum.TextYAlignment.Center
btn.BackgroundTransparency = 0.58
btn.BorderSizePixel = 0
btn.AutoButtonColor = false
btn.ZIndex = 20
btn.Parent = activePage
table.insert(searchTargets, {button = btn, text = text})
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(90, 0, 0)
stroke.Parent = btn
local on = false
toggleStates[text] = false
local function setState(state)
state = state == true
if on == state then return end
on = state
toggleStates[text] = on
if on then
btn.Text = text .. " | ON"
btn.TextColor3 = Color3.fromRGB(90, 255, 120)
btn.BackgroundColor3 = Color3.fromRGB(10, 35, 15)
stroke.Color = Color3.fromRGB(0, 120, 40)
else
btn.Text = text .. " | OFF"
btn.TextColor3 = Color3.fromRGB(255, 55, 55)
btn.BackgroundColor3 = Color3.fromRGB(20, 5, 5)
stroke.Color = Color3.fromRGB(90, 0, 0)
end
callback(on)
end
toggleRegistry[text] = setState
btn.Activated:Connect(function() setState(not on) end)
return setState
end
YM_FN.setToggle = function(name, state)
local setter = toggleRegistry[name]
if setter then setter(state) end
end
setActivePage("FUN")
YM_FN.createToggle("Fly", function(s) if s then YM_FN.startFly() else YM_FN.stopFly() end end)
YM_FN.createToggle("Anti Fling", function(s)
antiFlingEnabled = s
if s then YM_FN.startAntiFling() else YM_FN.stopAntiFling() end
end)
YM_FN.createToggle("Invincible", function(s) godmode = s end)
YM_FN.createToggle("Invisible", function(s) invisible = s YM_FN.setInvisible(s) end)
YM_FN.createToggle("Noclip", function(s) noclip = s end)
YM_FN.createToggle("Crosshair RGB", function(s) crosshairEnabled = s CrosshairDot.Visible = s end)
YM_FN.createToggle("Skin RGB", function(s) rgb = s if s then YM_FN.startRGB() else YM_FN.stopRGB() end end)
YM_FN.createToggle("Click TP", function(s) clickTP = s if s then YM_FN.startClickTP() else YM_FN.stopClickTP() end end)
YM_FN.createToggle("Pseudo Glitch", function(s) nameGlitch = s if s then YM_FN.startNameGlitch() else YM_FN.stopNameGlitch() end end)
YM_FN.createToggle("Infinite Jump", function(s) infiniteJump = s if s then YM_FN.startInfiniteJump() else YM_FN.stopInfiniteJump() end end)
YM_FN.createToggle("No Fall Damage", function(s) noFallDamage = s if s then YM_FN.startNoFallDamage() else YM_FN.stopNoFallDamage() end end)
YM_FN.createToggle("Anti-AFK", function(s) antiAFK = s if s then YM_FN.startAntiAFK() else YM_FN.stopAntiAFK() end end)
YM_FN.createToggle("Ragdoll", function(s) ragdoll = s if s then YM_FN.startRagdoll() else YM_FN.stopRagdoll() end end)
YM_FN.createToggle("Force x1000", function(s)
superForce = s
local char = YM_FN.getChar()
if char then YM_FN.setupSuperForce(char) end
end)
setActivePage("PVP")
YM_FN.createToggle("Aimbot", function(s) aimbot = s end)
YM_FN.createToggle("AIMSCOPE", function(s) aimScope = s end)
YM_FN.createToggle("FOV Circle", function(s) fovEnabled = s FOVCircle.Visible = s end)
YM_FN.createToggle("ESP Rouge", function(s) esp = s YM_FN.updateESP() end)
YM_FN.createToggle("ESP Box RGB + Ligne + Vie", function(s) boxESP=s if s then YM_FN.startBoxESP() else YM_FN.stopBoxESP() end end)
YM_FN.createToggle("ESP Squelette", function(s) skeletonESP = s if s then YM_FN.startSkeletonESP() else YM_FN.stopSkeletonESP() end end)
YM_FN.createToggle("Team Check", function(s)
teamCheckEnabled = s
if s then
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and isTeammate(plr) then
YM_FN.removeVisibilityESP(plr)
end
end
end
end)
YM_FN.createToggle("Visibility Check", function(s)
visibilityCheckEnabled = s
for _, obj in pairs(VisibilityESP) do
if obj.highlight then obj.highlight.Enabled = s end
end
if s then YM_FN.updateVisibilityESP() end
end)
YM_FN.createToggle("Autoclick", function(s) autoClick = s if s then YM_FN.startAutoClick() else YM_FN.stopAutoClick() end end)
setActivePage("RAGEBAIT")
YM_FN.createToggle("Toupie", function(s) spinning = s if s then YM_FN.startSpin() else YM_FN.stopSpin() end end)
YM_FN.createToggle("Toupie 90°", function(s) spinning90 = s if s then YM_FN.startSpin90() else YM_FN.stopSpin90() end end)
YM_FN.createToggle("Fake Lag TP", function(s) fakeLagTP = s if s then YM_FN.startFakeLagTP() else YM_FN.stopFakeLagTP() end end)
YM_FN.createToggle("Fake Lag Angles", function(s) fakeLagAngles = s if s then YM_FN.startFakeLagAngles() else YM_FN.stopFakeLagAngles() end end)
YM_FN.createToggle("Glue", function(s) glue = s if s then YM_FN.startGlue() else YM_FN.stopGlue() end end)
setActivePage("ONLY YOUR EYES")
YM_FN.createToggle("Big Head", function(s) bigHeadEnabled = s YM_FN.updateCharacterVisuals() end)
YM_FN.createToggle("Tiny Character", function(s) tinyCharacterEnabled = s YM_FN.updateCharacterVisuals() end)
YM_FN.createToggle("Headless Effect", function(s) headlessEnabled = s YM_FN.updateCharacterVisuals() end)
YM_FN.createToggle("Bring All", function(s) bringAll = s if s then YM_FN.startBringAll() else YM_FN.stopBringAll() end end)
YM_FN.createToggle("Kill Aura", function(s) killAura = s if s then YM_FN.startKillAura() else YM_FN.stopKillAura() end end)
YM_FN.createToggle("Move Objects", function(s) moveObjects = s if s then YM_FN.startMoveObjects() else YM_FN.stopMoveObjects() end end)
YM_FN.createBigBtn = function(text, color, callback)
local b = Instance.new("TextButton")
b.Size = UDim2.new(1, -10, 0, 34)
b.BackgroundColor3 = color
b.Text = text
b.TextColor3 = Color3.fromRGB(255, 55, 55)
b.Font = Enum.Font.GothamBold
b.TextSize = 13
b.TextTransparency = 0
b.TextStrokeTransparency = 0
b.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
b.TextXAlignment = Enum.TextXAlignment.Center
b.TextYAlignment = Enum.TextYAlignment.Center
b.BackgroundTransparency = 0.58
b.BorderSizePixel = 0
b.AutoButtonColor = false
b.ZIndex = 20
b.Parent = activePage
table.insert(searchTargets, {button = b, text = text})
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
b.Activated:Connect(callback)
end
-- Fenêtres Liste / TP / Spectate
local ListFrame = Instance.new("Frame")
ListFrame.Size = UDim2.new(0, 300, 0, 380)
ListFrame.Position = UDim2.new(0.5, -460, 0.2, 0)
ListFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 10)
ListFrame.Visible = false
ListFrame.Active = true
ListFrame.Draggable = true
ListFrame.Parent = ScreenGui
Instance.new("UICorner", ListFrame).CornerRadius = UDim.new(0, 10)
Instance.new("UIStroke", ListFrame).Color = Color3.fromRGB(160, 0, 0)
local ListTitle = Instance.new("TextLabel")
ListTitle.Size = UDim2.new(1, -40, 0, 40)
ListTitle.BackgroundColor3 = Color3.fromRGB(18, 0, 0)
ListTitle.Text = "YM TOOL | JOUEURS"
ListTitle.TextColor3 = Color3.fromRGB(220, 20, 20)
ListTitle.Font = Enum.Font.GothamBlack
ListTitle.TextSize = 15
ListTitle.Parent = ListFrame
Instance.new("UICorner", ListTitle).CornerRadius = UDim.new(0, 10)
local CloseList = Instance.new("TextButton")
CloseList.Size = UDim2.new(0, 40, 0, 40)
CloseList.Position = UDim2.new(1, -40, 0, 0)
CloseList.BackgroundColor3 = Color3.fromRGB(140, 0, 0)
CloseList.Text = "X"
CloseList.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseList.Font = Enum.Font.GothamBlack
CloseList.TextSize = 18
CloseList.Parent = ListFrame
Instance.new("UICorner", CloseList).CornerRadius = UDim.new(0, 10)
CloseList.Activated:Connect(function() ListFrame.Visible = false end)
local RefreshList = Instance.new("TextButton")
RefreshList.Size = UDim2.new(0.9, 0, 0, 28)
RefreshList.Position = UDim2.new(0.05, 0, 0, 48)
RefreshList.BackgroundColor3 = Color3.fromRGB(90, 0, 0)
RefreshList.Text = "🔄 Actualiser"
RefreshList.TextColor3 = Color3.fromRGB(255, 220, 220)
RefreshList.Font = Enum.Font.GothamBold
RefreshList.TextSize = 13
RefreshList.Parent = ListFrame
Instance.new("UICorner", RefreshList).CornerRadius = UDim.new(0, 5)
local ListScroll = Instance.new("ScrollingFrame")
ListScroll.Size = UDim2.new(0.9, 0, 0, 290)
ListScroll.Position = UDim2.new(0.05, 0, 0, 85)
ListScroll.BackgroundColor3 = Color3.fromRGB(15, 5, 5)
ListScroll.ScrollBarThickness = 5
ListScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
ListScroll.Parent = ListFrame
Instance.new("UICorner", ListScroll).CornerRadius = UDim.new(0, 6)
Instance.new("UIListLayout", ListScroll).Padding = UDim.new(0, 5)
YM_FN.refreshPlayerList = function()
for _, c in pairs(ListScroll:GetChildren()) do if c:IsA("Frame") then c:Destroy() end end
for _, plr in ipairs(Players:GetPlayers()) do
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -8, 0, 48)
row.BackgroundColor3 = Color3.fromRGB(25, 8, 8)
row.Parent = ListScroll
Instance.new("UICorner", row).CornerRadius = UDim.new(0, 5)
local nameL = Instance.new("TextLabel")
nameL.Size = UDim2.new(1, -10, 0, 22)
nameL.Position = UDim2.new(0, 6, 0, 3)
nameL.BackgroundTransparency = 1
nameL.Text = plr.DisplayName .. " (@" .. plr.Name .. ")"
nameL.TextColor3 = Color3.fromRGB(255, 200, 200)
nameL.Font = Enum.Font.GothamBold
nameL.TextSize = 13
nameL.TextXAlignment = Enum.TextXAlignment.Left
nameL.Parent = row
local infoL = Instance.new("TextLabel")
infoL.Size = UDim2.new(1, -10, 0, 18)
infoL.Position = UDim2.new(0, 6, 0, 26)
infoL.BackgroundTransparency = 1
infoL.Text = "ID: " .. plr.UserId .. " | Âge: " .. plr.AccountAge .. "j"
infoL.TextColor3 = Color3.fromRGB(180, 120, 120)
infoL.Font = Enum.Font.Gotham
infoL.TextSize = 12
infoL.TextXAlignment = Enum.TextXAlignment.Left
infoL.Parent = row
end
end
RefreshList.Activated:Connect(YM_FN.refreshPlayerList)
local TPFrame = Instance.new("Frame")
TPFrame.Size = UDim2.new(0, 280, 0, 360)
TPFrame.Position = UDim2.new(0.5, 170, 0.2, 0)
TPFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 10)
TPFrame.Visible = false
TPFrame.Active = true
TPFrame.Draggable = true
TPFrame.Parent = ScreenGui
Instance.new("UICorner", TPFrame).CornerRadius = UDim.new(0, 10)
Instance.new("UIStroke", TPFrame).Color = Color3.fromRGB(160, 0, 0)
local TPTitle = Instance.new("TextLabel")
TPTitle.Size = UDim2.new(1, -40, 0, 40)
TPTitle.BackgroundColor3 = Color3.fromRGB(18, 0, 0)
TPTitle.Text = "YM TOOL | TP"
TPTitle.TextColor3 = Color3.fromRGB(220, 20, 20)
TPTitle.Font = Enum.Font.GothamBlack
TPTitle.TextSize = 15
TPTitle.Parent = TPFrame
Instance.new("UICorner", TPTitle).CornerRadius = UDim.new(0, 10)
local CloseTP = Instance.new("TextButton")
CloseTP.Size = UDim2.new(0, 40, 0, 40)
CloseTP.Position = UDim2.new(1, -40, 0, 0)
CloseTP.BackgroundColor3 = Color3.fromRGB(140, 0, 0)
CloseTP.Text = "X"
CloseTP.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseTP.Font = Enum.Font.GothamBlack
CloseTP.TextSize = 18
CloseTP.Parent = TPFrame
Instance.new("UICorner", CloseTP).CornerRadius = UDim.new(0, 10)
CloseTP.Activated:Connect(function() TPFrame.Visible = false end)
local RefreshTP = Instance.new("TextButton")
RefreshTP.Size = UDim2.new(0.9, 0, 0, 28)
RefreshTP.Position = UDim2.new(0.05, 0, 0, 48)
RefreshTP.BackgroundColor3 = Color3.fromRGB(90, 0, 0)
RefreshTP.Text = "🔄 Actualiser"
RefreshTP.TextColor3 = Color3.fromRGB(255, 220, 220)
RefreshTP.Font = Enum.Font.GothamBold
RefreshTP.TextSize = 13
RefreshTP.Parent = TPFrame
Instance.new("UICorner", RefreshTP).CornerRadius = UDim.new(0, 5)
local TPScroll = Instance.new("ScrollingFrame")
TPScroll.Size = UDim2.new(0.9, 0, 0, 270)
TPScroll.Position = UDim2.new(0.05, 0, 0, 85)
TPScroll.BackgroundColor3 = Color3.fromRGB(15, 5, 5)
TPScroll.ScrollBarThickness = 5
TPScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
TPScroll.Parent = TPFrame
Instance.new("UICorner", TPScroll).CornerRadius = UDim.new(0, 6)
Instance.new("UIListLayout", TPScroll).Padding = UDim.new(0, 4)
YM_FN.refreshTPList = function()
for _, c in pairs(TPScroll:GetChildren()) do if c:IsA("TextButton") then c:Destroy() end end
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player then
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -8, 0, 32)
btn.BackgroundColor3 = Color3.fromRGB(30, 8, 8)
btn.Text = plr.DisplayName .. " (@" .. plr.Name .. ")"
btn.TextColor3 = Color3.fromRGB(255, 200, 200)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 13
btn.Parent = TPScroll
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 5)
btn.Activated:Connect(function() YM_FN.teleportToPlayer(plr) end)
end
end
end
RefreshTP.Activated:Connect(YM_FN.refreshTPList)
local SpecFrame = Instance.new("Frame")
SpecFrame.Size = UDim2.new(0, 280, 0, 400)
SpecFrame.Position = UDim2.new(0.5, 170, 0.18, 0)
SpecFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 10)
SpecFrame.Visible = false
SpecFrame.Active = true
SpecFrame.Draggable = true
SpecFrame.Parent = ScreenGui
Instance.new("UICorner", SpecFrame).CornerRadius = UDim.new(0, 10)
Instance.new("UIStroke", SpecFrame).Color = Color3.fromRGB(160, 0, 0)
local SpecTitle = Instance.new("TextLabel")
SpecTitle.Size = UDim2.new(1, -40, 0, 40)
SpecTitle.BackgroundColor3 = Color3.fromRGB(18, 0, 0)
SpecTitle.Text = "YM TOOL | SPECTATE"
SpecTitle.TextColor3 = Color3.fromRGB(220, 20, 20)
SpecTitle.Font = Enum.Font.GothamBlack
SpecTitle.TextSize = 15
SpecTitle.Parent = SpecFrame
Instance.new("UICorner", SpecTitle).CornerRadius = UDim.new(0, 10)
local CloseSpec = Instance.new("TextButton")
CloseSpec.Size = UDim2.new(0, 40, 0, 40)
CloseSpec.Position = UDim2.new(1, -40, 0, 0)
CloseSpec.BackgroundColor3 = Color3.fromRGB(140, 0, 0)
CloseSpec.Text = "X"
CloseSpec.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseSpec.Font = Enum.Font.GothamBlack
CloseSpec.TextSize = 18
CloseSpec.Parent = SpecFrame
Instance.new("UICorner", CloseSpec).CornerRadius = UDim.new(0, 10)
CloseSpec.Activated:Connect(function() SpecFrame.Visible = false end)
local StopSpecBtn = Instance.new("TextButton")
StopSpecBtn.Size = UDim2.new(0.9, 0, 0, 32)
StopSpecBtn.Position = UDim2.new(0.05, 0, 0, 48)
StopSpecBtn.BackgroundColor3 = Color3.fromRGB(160, 40, 40)
StopSpecBtn.Text = "⏹ ARRÊTER SPECTATE"
StopSpecBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
StopSpecBtn.Font = Enum.Font.GothamBold
StopSpecBtn.TextSize = 13
StopSpecBtn.Parent = SpecFrame
Instance.new("UICorner", StopSpecBtn).CornerRadius = UDim.new(0, 6)
StopSpecBtn.Activated:Connect(YM_FN.stopSpectate)
local RefreshSpec = Instance.new("TextButton")
RefreshSpec.Size = UDim2.new(0.9, 0, 0, 28)
RefreshSpec.Position = UDim2.new(0.05, 0, 0, 88)
RefreshSpec.BackgroundColor3 = Color3.fromRGB(90, 0, 0)
RefreshSpec.Text = "🔄 Actualiser"
RefreshSpec.TextColor3 = Color3.fromRGB(255, 220, 220)
RefreshSpec.Font = Enum.Font.GothamBold
RefreshSpec.TextSize = 13
RefreshSpec.Parent = SpecFrame
Instance.new("UICorner", RefreshSpec).CornerRadius = UDim.new(0, 5)
local SpecScroll = Instance.new("ScrollingFrame")
SpecScroll.Size = UDim2.new(0.9, 0, 0, 265)
SpecScroll.Position = UDim2.new(0.05, 0, 0, 125)
SpecScroll.BackgroundColor3 = Color3.fromRGB(15, 5, 5)
SpecScroll.ScrollBarThickness = 5
SpecScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
SpecScroll.Parent = SpecFrame
Instance.new("UICorner", SpecScroll).CornerRadius = UDim.new(0, 6)
Instance.new("UIListLayout", SpecScroll).Padding = UDim.new(0, 4)
YM_FN.refreshSpecList = function()
for _, c in pairs(SpecScroll:GetChildren()) do if c:IsA("TextButton") then c:Destroy() end end
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player then
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -8, 0, 32)
btn.BackgroundColor3 = Color3.fromRGB(30, 8, 8)
btn.Text = plr.DisplayName .. " (@" .. plr.Name .. ")"
btn.TextColor3 = Color3.fromRGB(255, 200, 200)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 13
btn.Parent = SpecScroll
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 5)
btn.Activated:Connect(function() YM_FN.spectatePlayer(plr) end)
end
end
end
RefreshSpec.Activated:Connect(YM_FN.refreshSpecList)
-- Les fenêtres secondaires restent indépendantes de la fenêtre principale,
-- mais sont légèrement compactées sur écran tactile.
if UserInputService.TouchEnabled then
for _, mobileWindow in ipairs({DebugFrame, ListFrame, TPFrame, SpecFrame, WaypointFrame}) do
if mobileWindow then
local sc = Instance.new("UIScale")
sc.Scale = 0.78
sc.Parent = mobileWindow
end
end
end
-- FLING WINDOW : script séparé lancé depuis BOUTONS
local flingWindowStop = nil
YM_FN.launchFlingWindow = function()
-- Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Player = Players.LocalPlayer
-- GUI Setup
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "KilasikFlingGUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = game:GetService("CoreGui")
-- Main Frame
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 300, 0, 350)
MainFrame.Position = UDim2.new(0.5, -150, 0.5, -175)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 5, 5)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui
local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 6)
MainCorner.Parent = MainFrame
local MainStroke = Instance.new("UIStroke")
MainStroke.Color = Color3.fromRGB(100, 0, 0)
MainStroke.Thickness = 1
MainStroke.Transparency = 0.15
MainStroke.Parent = MainFrame
-- Title Bar
local TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 30)
TitleBar.BackgroundColor3 = Color3.fromRGB(18, 0, 0)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame
local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 6)
TitleCorner.Parent = TitleBar
-- Title
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -30, 1, 0)
Title.BackgroundTransparency = 1
Title.Text = "YM MULTI-FLING"
Title.TextColor3 = Color3.fromRGB(255, 70, 70)
Title.Font = Enum.Font.SourceSansBold
Title.TextSize = 18
Title.Parent = TitleBar
-- Close Button
local CloseButton = Instance.new("TextButton")
CloseButton.Position = UDim2.new(1, -30, 0, 0)
CloseButton.Size = UDim2.new(0, 30, 0, 30)
CloseButton.BackgroundColor3 = Color3.fromRGB(140, 0, 0)
CloseButton.BorderSizePixel = 0
CloseButton.Text = "X"
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.Font = Enum.Font.SourceSansBold
CloseButton.TextSize = 18
CloseButton.Parent = TitleBar
local CloseButtonCorner = Instance.new("UICorner")
CloseButtonCorner.CornerRadius = UDim.new(0, 4)
CloseButtonCorner.Parent = CloseButton
-- Status Label
local StatusLabel = Instance.new("TextLabel")
StatusLabel.Position = UDim2.new(0, 10, 0, 40)
StatusLabel.Size = UDim2.new(1, -20, 0, 25)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "Select targets to fling"
StatusLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
StatusLabel.Font = Enum.Font.SourceSans
StatusLabel.TextSize = 16
StatusLabel.TextXAlignment = Enum.TextXAlignment.Left
StatusLabel.Parent = MainFrame
-- Player Selection Frame
local SelectionFrame = Instance.new("Frame")
SelectionFrame.Position = UDim2.new(0, 10, 0, 70)
SelectionFrame.Size = UDim2.new(1, -20, 0, 200)
SelectionFrame.BackgroundColor3 = Color3.fromRGB(10, 3, 3)
SelectionFrame.BorderSizePixel = 0
SelectionFrame.Parent = MainFrame
local SelectionCorner = Instance.new("UICorner")
SelectionCorner.CornerRadius = UDim.new(0, 4)
SelectionCorner.Parent = SelectionFrame
local SelectionStroke = Instance.new("UIStroke")
SelectionStroke.Color = Color3.fromRGB(70, 0, 0)
SelectionStroke.Thickness = 1
SelectionStroke.Transparency = 0.25
SelectionStroke.Parent = SelectionFrame
-- Player List ScrollFrame
local PlayerScrollFrame = Instance.new("ScrollingFrame")
PlayerScrollFrame.Position = UDim2.new(0, 5, 0, 5)
PlayerScrollFrame.Size = UDim2.new(1, -10, 1, -10)
PlayerScrollFrame.BackgroundTransparency = 1
PlayerScrollFrame.BorderSizePixel = 0
PlayerScrollFrame.ScrollBarThickness = 6
PlayerScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
PlayerScrollFrame.Parent = SelectionFrame
-- Start Fling Button
local StartButton = Instance.new("TextButton")
StartButton.Position = UDim2.new(0, 10, 0, 280)
StartButton.Size = UDim2.new(0.5, -15, 0, 40)
StartButton.BackgroundColor3 = Color3.fromRGB(25, 7, 7)
StartButton.BorderSizePixel = 0
StartButton.Text = "START FLING"
StartButton.TextColor3 = Color3.fromRGB(255, 255, 255)
StartButton.Font = Enum.Font.SourceSansBold
StartButton.TextSize = 18
StartButton.Parent = MainFrame
local StartButtonCorner = Instance.new("UICorner")
StartButtonCorner.CornerRadius = UDim.new(0, 4)
StartButtonCorner.Parent = StartButton
-- Stop Fling Button
local StopButton = Instance.new("TextButton")
StopButton.Position = UDim2.new(0.5, 5, 0, 280)
StopButton.Size = UDim2.new(0.5, -15, 0, 40)
StopButton.BackgroundColor3 = Color3.fromRGB(110, 0, 0)
StopButton.BorderSizePixel = 0
StopButton.Text = "STOP FLING"
StopButton.TextColor3 = Color3.fromRGB(255, 255, 255)
StopButton.Font = Enum.Font.SourceSansBold
StopButton.TextSize = 18
StopButton.Parent = MainFrame
local StopButtonCorner = Instance.new("UICorner")
StopButtonCorner.CornerRadius = UDim.new(0, 4)
StopButtonCorner.Parent = StopButton
-- Select/Deselect Buttons
local SelectAllButton = Instance.new("TextButton")
SelectAllButton.Position = UDim2.new(0, 10, 0, 330)
SelectAllButton.Size = UDim2.new(0.5, -15, 0, 30)
SelectAllButton.BackgroundColor3 = Color3.fromRGB(25, 7, 7)
SelectAllButton.BorderSizePixel = 0
SelectAllButton.Text = "SELECT ALL"
SelectAllButton.TextColor3 = Color3.fromRGB(255, 255, 255)
SelectAllButton.Font = Enum.Font.SourceSans
SelectAllButton.TextSize = 14
SelectAllButton.Parent = MainFrame
local SelectAllButtonCorner = Instance.new("UICorner")
SelectAllButtonCorner.CornerRadius = UDim.new(0, 4)
SelectAllButtonCorner.Parent = SelectAllButton
local DeselectAllButton = Instance.new("TextButton")
DeselectAllButton.Position = UDim2.new(0.5, 5, 0, 330)
DeselectAllButton.Size = UDim2.new(0.5, -15, 0, 30)
DeselectAllButton.BackgroundColor3 = Color3.fromRGB(25, 7, 7)
DeselectAllButton.BorderSizePixel = 0
DeselectAllButton.Text = "DESELECT ALL"
DeselectAllButton.TextColor3 = Color3.fromRGB(255, 255, 255)
DeselectAllButton.Font = Enum.Font.SourceSans
DeselectAllButton.TextSize = 14
DeselectAllButton.Parent = MainFrame
for _, button in ipairs({CloseButton, StartButton, StopButton, SelectAllButton, DeselectAllButton}) do
button.AutoButtonColor = false
button.MouseEnter:Connect(function()
button.BackgroundTransparency = 0.12
end)
button.MouseLeave:Connect(function()
button.BackgroundTransparency = 0
end)
end
local DeselectAllButtonCorner = Instance.new("UICorner")
DeselectAllButtonCorner.CornerRadius = UDim.new(0, 4)
DeselectAllButtonCorner.Parent = DeselectAllButton
-- Variables
local SelectedTargets = {}
local PlayerCheckboxes = {}
local FlingActive = false
local FlingConnection = nil
getgenv().OldPos = nil
getgenv().FPDH = workspace.FallenPartsDestroyHeight
-- Function to update player list
YM_FN.RefreshPlayerList = function()
-- Clear existing player entries
for _, child in pairs(PlayerScrollFrame:GetChildren()) do
child:Destroy()
end
PlayerCheckboxes = {}
-- Get players and sort them
local PlayerList = Players:GetPlayers()
table.sort(PlayerList, function(a, b) return a.Name:lower() < b.Name:lower() end)
-- Create entries for each player
local yPosition = 5
for _, player in ipairs(PlayerList) do
if player ~= Player then -- Don't include yourself
-- Create player entry frame
local PlayerEntry = Instance.new("Frame")
PlayerEntry.Size = UDim2.new(1, -10, 0, 30)
PlayerEntry.Position = UDim2.new(0, 5, 0, yPosition)
PlayerEntry.BackgroundColor3 = Color3.fromRGB(20, 5, 5)
PlayerEntry.BorderSizePixel = 0
PlayerEntry.Parent = PlayerScrollFrame
-- Create checkbox
local Checkbox = Instance.new("TextButton")
Checkbox.Size = UDim2.new(0, 24, 0, 24)
Checkbox.Position = UDim2.new(0, 3, 0.5, -12)
Checkbox.BackgroundColor3 = Color3.fromRGB(25, 8, 8)
Checkbox.BorderSizePixel = 0
Checkbox.Text = ""
Checkbox.Parent = PlayerEntry
-- Checkmark (initially invisible)
local Checkmark = Instance.new("TextLabel")
Checkmark.Size = UDim2.new(1, 0, 1, 0)
Checkmark.BackgroundTransparency = 1
Checkmark.Text = "✓"
Checkmark.TextColor3 = Color3.fromRGB(0, 255, 0)
Checkmark.TextSize = 18
Checkmark.Font = Enum.Font.SourceSansBold
Checkmark.Visible = SelectedTargets[player.Name] ~= nil
Checkmark.Parent = Checkbox
-- Player name label
local NameLabel = Instance.new("TextLabel")
NameLabel.Size = UDim2.new(1, -35, 1, 0)
NameLabel.Position = UDim2.new(0, 30, 0, 0)
NameLabel.BackgroundTransparency = 1
NameLabel.Text = player.Name
NameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
NameLabel.TextSize = 16
NameLabel.Font = Enum.Font.SourceSans
NameLabel.TextXAlignment = Enum.TextXAlignment.Left
NameLabel.Parent = PlayerEntry
-- Make entire entry clickable
local ClickArea = Instance.new("TextButton")
ClickArea.Size = UDim2.new(1, 0, 1, 0)
ClickArea.BackgroundTransparency = 1
ClickArea.Text = ""
ClickArea.ZIndex = 2
ClickArea.Parent = PlayerEntry
-- Selection toggle on click
ClickArea.Activated:Connect(function()
if SelectedTargets[player.Name] then
SelectedTargets[player.Name] = nil
Checkmark.Visible = false
else
SelectedTargets[player.Name] = player
Checkmark.Visible = true
end
YM_FN.UpdateStatus()
end)
-- Store reference to this player's UI
PlayerCheckboxes[player.Name] = {
Entry = PlayerEntry,
Checkmark = Checkmark
}
yPosition = yPosition + 35
end
end
-- Update scrollframe canvas size
PlayerScrollFrame.CanvasSize = UDim2.new(0, 0, 0, yPosition + 5)
end
-- Count selected targets
YM_FN.CountSelectedTargets = function()
local count = 0
for _ in pairs(SelectedTargets) do
count = count + 1
end
return count
end
-- Update status display
YM_FN.UpdateStatus = function()
local count = YM_FN.CountSelectedTargets()
if FlingActive then
StatusLabel.Text = "Flinging " .. count .. " target(s)"
StatusLabel.TextColor3 = Color3.fromRGB(255, 80, 80)
else
StatusLabel.Text = count .. " target(s) selected"
StatusLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
end
end
-- Function to select/deselect all players
YM_FN.ToggleAllPlayers = function(select)
for _, player in ipairs(Players:GetPlayers()) do
if player ~= Player then
local checkboxData = PlayerCheckboxes[player.Name]
if checkboxData then
if select then
SelectedTargets[player.Name] = player
checkboxData.Checkmark.Visible = true
else
SelectedTargets[player.Name] = nil
checkboxData.Checkmark.Visible = false
end
end
end
end
YM_FN.UpdateStatus()
end
-- Show notification
YM_FN.Message = function(Title, Text, Time)
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = Title,
Text = Text,
Duration = Time or 5
})
end
-- The fling function from zqyDSUWX
YM_FN.SkidFling = function(TargetPlayer)
local Character = Player.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local RootPart = Humanoid and Humanoid.RootPart
local TCharacter = TargetPlayer.Character
if not TCharacter then return end
local THumanoid
local TRootPart
local THead
local Accessory
local Handle
if TCharacter:FindFirstChildOfClass("Humanoid") then
THumanoid = TCharacter:FindFirstChildOfClass("Humanoid")
end
if THumanoid and THumanoid.RootPart then
TRootPart = THumanoid.RootPart
end
if TCharacter:FindFirstChild("Head") then
THead = TCharacter.Head
end
if TCharacter:FindFirstChildOfClass("Accessory") then
Accessory = TCharacter:FindFirstChildOfClass("Accessory")
end
if Accessory and Accessory:FindFirstChild("Handle") then
Handle = Accessory.Handle
end
if Character and Humanoid and RootPart then
if RootPart.Velocity.Magnitude < 50 then
getgenv().OldPos = RootPart.CFrame
end
if THumanoid and THumanoid.Sit then
return YM_FN.Message("Error", TargetPlayer.Name .. " is sitting", 2)
end
if THead then
workspace.CurrentCamera.CameraSubject = THead
elseif Handle then
workspace.CurrentCamera.CameraSubject = Handle
elseif THumanoid and TRootPart then
workspace.CurrentCamera.CameraSubject = THumanoid
end
if not TCharacter:FindFirstChildWhichIsA("BasePart") then
return
end
local FPos = function(BasePart, Pos, Ang)
RootPart.CFrame = CFrame.new(BasePart.Position) * Pos * Ang
Character:SetPrimaryPartCFrame(CFrame.new(BasePart.Position) * Pos * Ang)
RootPart.Velocity = Vector3.new(9e7, 9e7 * 10, 9e7)
RootPart.RotVelocity = Vector3.new(9e8, 9e8, 9e8)
end
local SFBasePart = function(BasePart)
local TimeToWait = 2
local Time = tick()
local Angle = 0
repeat
if RootPart and THumanoid then
if BasePart.Velocity.Magnitude < 50 then
Angle = Angle + 100
FPos(BasePart, CFrame.new(0, 1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle),0 ,0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, 1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle),0 ,0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, 1.5, 0) + THumanoid.MoveDirection, CFrame.Angles(math.rad(Angle),0 ,0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0) + THumanoid.MoveDirection, CFrame.Angles(math.rad(Angle), 0, 0))
task.wait()
else
FPos(BasePart, CFrame.new(0, 1.5, THumanoid.WalkSpeed), CFrame.Angles(math.rad(90), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, -THumanoid.WalkSpeed), CFrame.Angles(0, 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, 1.5, THumanoid.WalkSpeed), CFrame.Angles(math.rad(90), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(math.rad(90), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(0, 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(math.rad(90), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(0, 0, 0))
task.wait()
end
end
until Time + TimeToWait < tick() or not FlingActive
end
workspace.FallenPartsDestroyHeight = 0/0
local BV = Instance.new("BodyVelocity")
BV.Parent = RootPart
BV.Velocity = Vector3.new(0, 0, 0)
BV.MaxForce = Vector3.new(9e9, 9e9, 9e9)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, false)
if TRootPart then
SFBasePart(TRootPart)
elseif THead then
SFBasePart(THead)
elseif Handle then
SFBasePart(Handle)
else
return YM_FN.Message("Error", TargetPlayer.Name .. " has no valid parts", 2)
end
BV:Destroy()
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, true)
workspace.CurrentCamera.CameraSubject = Humanoid
-- Reset character position
if getgenv().OldPos then
repeat
RootPart.CFrame = getgenv().OldPos * CFrame.new(0, .5, 0)
Character:SetPrimaryPartCFrame(getgenv().OldPos * CFrame.new(0, .5, 0))
Humanoid:ChangeState("GettingUp")
for _, part in pairs(Character:GetChildren()) do
if part:IsA("BasePart") then
part.Velocity, part.RotVelocity = Vector3.new(), Vector3.new()
end
end
task.wait()
until (RootPart.Position - getgenv().OldPos.p).Magnitude < 25
workspace.FallenPartsDestroyHeight = getgenv().FPDH
end
else
return YM_FN.Message("Error", "Your character is not ready", 2)
end
end
-- Start flinging selected targets
YM_FN.StartFling = function()
if FlingActive then return end
local count = YM_FN.CountSelectedTargets()
if count == 0 then
StatusLabel.Text = "No targets selected!"
wait(1)
StatusLabel.Text = "Select targets to fling"
return
end
FlingActive = true
YM_FN.UpdateStatus()
YM_FN.Message("Started", "Flinging " .. count .. " targets", 2)
-- Start flinger in separate thread
spawn(function()
while FlingActive do
local validTargets = {}
-- Process all targets first to determine which are valid
for name, player in pairs(SelectedTargets) do
if player and player.Parent then
validTargets[name] = player
else
-- Remove players who left
SelectedTargets[name] = nil
local checkbox = PlayerCheckboxes[name]
if checkbox then
checkbox.Checkmark.Visible = false
end
end
end
-- Then attempt to fling each valid target
for _, player in pairs(validTargets) do
if FlingActive then
YM_FN.SkidFling(player)
-- Brief wait between targets to allow movement to reset
wait(0.1)
else
break
end
end
-- Update status periodically
YM_FN.UpdateStatus()
-- Wait a moment before starting next fling cycle
wait(0.5)
end
end)
end
-- Stop flinging
YM_FN.StopFling = function()
if not FlingActive then return end
FlingActive = false
YM_FN.UpdateStatus()
YM_FN.Message("Stopped", "Fling has been stopped", 2)
end
-- Set up button connections
StartButton.Activated:Connect(YM_FN.StartFling)
StopButton.Activated:Connect(YM_FN.StopFling)
SelectAllButton.Activated:Connect(function() YM_FN.ToggleAllPlayers(true) end)
DeselectAllButton.Activated:Connect(function() YM_FN.ToggleAllPlayers(false) end)
CloseButton.Activated:Connect(function()
YM_FN.StopFling()
ScreenGui:Destroy()
end)
-- Handle player joining/leaving
Players.PlayerAdded:Connect(YM_FN.RefreshPlayerList)
Players.PlayerRemoving:Connect(function(player)
if SelectedTargets[player.Name] then
SelectedTargets[player.Name] = nil
end
YM_FN.RefreshPlayerList()
YM_FN.UpdateStatus()
end)
-- Initialize
YM_FN.RefreshPlayerList()
YM_FN.UpdateStatus()
-- Success message
YM_FN.Message("Loaded", "YM MULTI-FLING loaded!", 3)
return function()
pcall(function() YM_FN.StopFling() end)
pcall(function() ScreenGui:Destroy() end)
end
end
setActivePage("BOUTONS")
YM_FN.createBigBtn("YM FLING", Color3.fromRGB(110, 0, 0), function()
if flingWindowStop then
pcall(flingWindowStop)
flingWindowStop = nil
end
flingWindowStop = YM_FN.launchFlingWindow()
end)
YM_FN.createBigBtn("📋 LISTE DES JOUEURS", Color3.fromRGB(90, 0, 0), function()
ListFrame.Visible = not ListFrame.Visible
if ListFrame.Visible then YM_FN.refreshPlayerList() end
end)
YM_FN.createBigBtn("📍 TP SUR UN JOUEUR", Color3.fromRGB(110, 0, 0), function()
TPFrame.Visible = not TPFrame.Visible
if TPFrame.Visible then YM_FN.refreshTPList() end
end)
YM_FN.createBigBtn("👁 SPECTATE JOUEUR", Color3.fromRGB(80, 20, 120), function()
SpecFrame.Visible = not SpecFrame.Visible
if SpecFrame.Visible then YM_FN.refreshSpecList() end
end)
YM_FN.createBigBtn("🛠 DEBUG", Color3.fromRGB(90, 0, 0), function()
DebugFrame.Visible = not DebugFrame.Visible
debugVisible = DebugFrame.Visible
end)
-- =====================================================
-- PRESETS RAPIDES
-- Les presets pilotent les vrais toggles existants.
-- =====================================================
YM_FN.applyToggleSet = function(map)
for name, state in pairs(map) do
YM_FN.setToggle(name, state)
end
end
local presetPage = pages["PRESET"]
local presetStates = {}
local presetCards = {}
YM_FN.addPresetCard = function(name, description, onApply, offApply)
local card = Instance.new("Frame")
card.Size = UDim2.new(1, -10, 0, 82)
card.BackgroundColor3 = Color3.fromRGB(18, 5, 5)
card.BackgroundTransparency = 0.15
card.BorderSizePixel = 0
card.ZIndex = 20
card.Parent = presetPage
Instance.new("UICorner", card).CornerRadius = UDim.new(0, 8)
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(90, 0, 0)
stroke.Parent = card
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, -20, 0, 38)
button.Position = UDim2.fromOffset(10, 8)
button.BackgroundColor3 = Color3.fromRGB(28, 7, 7)
button.BackgroundTransparency = 0.05
button.Text = name .. " | OFF"
button.TextColor3 = Color3.fromRGB(255, 70, 70)
button.Font = Enum.Font.GothamBlack
button.TextSize = 13
button.AutoButtonColor = false
button.ZIndex = 21
button.Parent = card
Instance.new("UICorner", button).CornerRadius = UDim.new(0, 6)
local tip = Instance.new("TextLabel")
tip.Size = UDim2.new(1, -20, 0, 25)
tip.Position = UDim2.fromOffset(10, 49)
tip.BackgroundTransparency = 1
tip.Text = description
tip.TextColor3 = Color3.fromRGB(190, 150, 150)
tip.Font = Enum.Font.Gotham
tip.TextSize = 11
tip.TextXAlignment = Enum.TextXAlignment.Left
tip.TextTruncate = Enum.TextTruncate.AtEnd
tip.Visible = false
tip.ZIndex = 22
tip.Parent = card
local state = false
presetStates[name] = function(value)
value = value == true
if state == value then return end
state = value
if state then
button.Text = name .. " | ON"
button.TextColor3 = Color3.fromRGB(90, 255, 120)
button.BackgroundColor3 = Color3.fromRGB(10, 35, 15)
stroke.Color = Color3.fromRGB(0, 120, 40)
onApply()
else
button.Text = name .. " | OFF"
button.TextColor3 = Color3.fromRGB(255, 70, 70)
button.BackgroundColor3 = Color3.fromRGB(28, 7, 7)
stroke.Color = Color3.fromRGB(90, 0, 0)
offApply()
end
end
button.Activated:Connect(function() presetStates[name](not state) end)
button.MouseEnter:Connect(function() tip.Visible = true end)
button.MouseLeave:Connect(function() tip.Visible = false end)
presetCards[name] = button
end
YM_FN.addPresetCard("PRESET RGB", "Crosshair RGB + Skin RGB + ESP Box RGB + FOV RGB + Pseudo Glitch",
function()
YM_FN.applyToggleSet({
["Crosshair RGB"] = true,
["Skin RGB"] = true,
["ESP Box RGB + Ligne + Vie"] = true,
["FOV Circle"] = true,
["Pseudo Glitch"] = true,
})
end,
function()
YM_FN.applyToggleSet({["Crosshair RGB"] = false,["Skin RGB"] = false,["ESP Box RGB + Ligne + Vie"] = false,["FOV Circle"] = false,["Pseudo Glitch"] = false})
end)
YM_FN.addPresetCard("PRESET PVP", "AIMSCOPE + FOV + ESP Box RGB + Squelette + Visibility + Autoclick + Anti Fling",
function()
YM_FN.applyToggleSet({
["Aimbot"] = false, ["ESP Rouge"] = false, ["Team Check"] = false,
["AIMSCOPE"] = true, ["FOV Circle"] = true,
["ESP Box RGB + Ligne + Vie"] = true, ["ESP Squelette"] = true,
["Visibility Check"] = true, ["Autoclick"] = true, ["Anti Fling"] = true,
})
end,
function()
YM_FN.applyToggleSet({["AIMSCOPE"] = false,["FOV Circle"] = false,["ESP Box RGB + Ligne + Vie"] = false,["ESP Squelette"] = false,["Visibility Check"] = false,["Autoclick"] = false,["Anti Fling"] = false})
end)
YM_FN.addPresetCard("PRESET RAGEBAIT", "Toupie + Fake Lag TP + ouvre la fenêtre YM FLING",
function()
YM_FN.applyToggleSet({["Toupie"] = true, ["Fake Lag TP"] = true})
if flingWindowStop then pcall(flingWindowStop) end
flingWindowStop = YM_FN.launchFlingWindow()
end,
function()
YM_FN.applyToggleSet({["Toupie"] = false, ["Fake Lag TP"] = false})
if flingWindowStop then pcall(flingWindowStop); flingWindowStop = nil end
end)
YM_FN.addPresetCard("PRESET FUN", "Fly + Toupie + Invisible + Pseudo Glitch + Noclip + Force x1000 + Anti-AFK",
function()
YM_FN.applyToggleSet({
["Fly"] = true, ["Toupie"] = true, ["Invisible"] = true,
["Pseudo Glitch"] = true, ["Noclip"] = true, ["Force x1000"] = true, ["Anti-AFK"] = true,
})
end,
function()
YM_FN.applyToggleSet({["Fly"] = false,["Toupie"] = false,["Invisible"] = false,["Pseudo Glitch"] = false,["Noclip"] = false,["Force x1000"] = false,["Anti-AFK"] = false})
end)
-- Fenêtre WAYPOINTS ajoutée sans modifier les fenêtres existantes
WaypointFrame = Instance.new("Frame")
WaypointFrame.Size = UDim2.new(0, 330, 0, 330)
WaypointFrame.Position = UDim2.new(0.5, 165, 0.15, 0)
WaypointFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 10)
WaypointFrame.Visible = false
WaypointFrame.Active = true
WaypointFrame.Draggable = true
WaypointFrame.Parent = ScreenGui
Instance.new("UICorner", WaypointFrame).CornerRadius = UDim.new(0, 10)
Instance.new("UIStroke", WaypointFrame).Color = Color3.fromRGB(160, 0, 0)
local WaypointTitle = Instance.new("TextLabel")
WaypointTitle.Size = UDim2.new(1, -40, 0, 40)
WaypointTitle.BackgroundColor3 = Color3.fromRGB(18, 0, 0)
WaypointTitle.Text = "YM TOOL | WAYPOINTS"
WaypointTitle.TextColor3 = Color3.fromRGB(220, 20, 20)
WaypointTitle.Font = Enum.Font.GothamBlack
WaypointTitle.TextSize = 15
WaypointTitle.Parent = WaypointFrame
Instance.new("UICorner", WaypointTitle).CornerRadius = UDim.new(0, 10)
local WaypointClose = Instance.new("TextButton")
WaypointClose.Size = UDim2.fromOffset(40, 40)
WaypointClose.Position = UDim2.new(1, -40, 0, 0)
WaypointClose.BackgroundColor3 = Color3.fromRGB(140, 0, 0)
WaypointClose.Text = "X"
WaypointClose.TextColor3 = Color3.fromRGB(255,255,255)
WaypointClose.Font = Enum.Font.GothamBlack
WaypointClose.TextSize = 17
WaypointClose.Parent = WaypointFrame
Instance.new("UICorner", WaypointClose).CornerRadius = UDim.new(0, 10)
WaypointClose.Activated:Connect(function() WaypointFrame.Visible = false end)
for i = 1, 6 do
local y = 48 + (i - 1) * 44
local box = Instance.new("TextBox")
box.Size = UDim2.new(0, 125, 0, 32)
box.Position = UDim2.new(0, 10, 0, y)
box.BackgroundColor3 = Color3.fromRGB(25, 8, 8)
box.Text = waypointSlots[i].name
box.TextColor3 = Color3.fromRGB(255, 220, 220)
box.Font = Enum.Font.GothamBold
box.TextSize = 12
box.ClearTextOnFocus = false
box.Parent = WaypointFrame
Instance.new("UICorner", box).CornerRadius = UDim.new(0, 5)
box.FocusLost:Connect(function()
if box.Text ~= "" then waypointSlots[i].name = box.Text end
end)
local setBtn = Instance.new("TextButton")
setBtn.Size = UDim2.new(0, 80, 0, 32)
setBtn.Position = UDim2.new(0, 142, 0, y)
setBtn.BackgroundColor3 = Color3.fromRGB(110, 0, 0)
setBtn.Text = "SET"
setBtn.TextColor3 = Color3.fromRGB(255,255,255)
setBtn.Font = Enum.Font.GothamBold
setBtn.TextSize = 12
setBtn.Parent = WaypointFrame
Instance.new("UICorner", setBtn).CornerRadius = UDim.new(0, 5)
setBtn.Activated:Connect(function()
local root = YM_FN.getRoot()
if root then waypointSlots[i].cframe = root.CFrame end
end)
local tpBtn = Instance.new("TextButton")
tpBtn.Size = UDim2.new(0, 80, 0, 32)
tpBtn.Position = UDim2.new(0, 228, 0, y)
tpBtn.BackgroundColor3 = Color3.fromRGB(70, 40, 100)
tpBtn.Text = "TP"
tpBtn.TextColor3 = Color3.fromRGB(255,255,255)
tpBtn.Font = Enum.Font.GothamBold
tpBtn.TextSize = 12
tpBtn.Parent = WaypointFrame
Instance.new("UICorner", tpBtn).CornerRadius = UDim.new(0, 5)
tpBtn.Activated:Connect(function()
local root = YM_FN.getRoot()
if root and waypointSlots[i].cframe then root.CFrame = waypointSlots[i].cframe end
end)
end
YM_FN.createBigBtn("📍 WAYPOINTS", Color3.fromRGB(90, 0, 0), function()
WaypointFrame.Visible = not WaypointFrame.Visible
end)
-- Le curseur est forcé uniquement quand la fenêtre PRINCIPALE est visible.
-- Les fenêtres secondaires (Debug, Joueurs, TP, Spectate, Waypoints)
-- ne déclenchent plus le forçage du curseur.
YM_FN.updateCursorForWindows = function()
setCursorForced(Main.Visible)
end
Main:GetPropertyChangedSignal("Visible"):Connect(YM_FN.updateCursorForWindows)
YM_FN.updateCursorForWindows()
YM_FN.createBigBtn("👻 CACHER TOUTES LES FENÊTRES", Color3.fromRGB(70, 20, 20), function()
Main.Visible = false
DebugFrame.Visible = false
ListFrame.Visible = false
TPFrame.Visible = false
SpecFrame.Visible = false
WaypointFrame.Visible = false
guiVisible = false
debugVisible = false
end)
setActivePage("VALEURS MODIFIABLE")
YM_FN.createSpeed = function(label, default, cb)
local f = Instance.new("Frame")
f.Size = UDim2.new(1, -8, 0, 48)
f.BackgroundTransparency = 1
f.Parent = activePage
local l = Instance.new("TextLabel")
l.Size = UDim2.new(1, 0, 0, 16)
l.BackgroundTransparency = 1
l.Text = label
l.TextColor3 = Color3.fromRGB(200, 160, 160)
l.Font = Enum.Font.Gotham
l.TextSize = 12
l.TextXAlignment = Enum.TextXAlignment.Left
l.Parent = f
local box = Instance.new("TextBox")
box.Size = UDim2.new(0.55, 0, 0, 26)
box.Position = UDim2.new(0, 0, 0, 18)
box.BackgroundColor3 = Color3.fromRGB(20, 5, 5)
box.Text = tostring(default)
box.TextColor3 = Color3.fromRGB(255, 200, 200)
box.Font = Enum.Font.GothamBold
box.TextSize = 13
box.Parent = f
Instance.new("UICorner", box).CornerRadius = UDim.new(0, 5)
local ok = Instance.new("TextButton")
ok.Size = UDim2.new(0.35, 0, 0, 26)
ok.Position = UDim2.new(0.6, 0, 0, 18)
ok.BackgroundColor3 = Color3.fromRGB(140, 0, 0)
ok.Text = "OK"
ok.TextColor3 = Color3.fromRGB(255, 255, 255)
ok.Font = Enum.Font.GothamBold
ok.TextSize = 12
ok.Parent = f
Instance.new("UICorner", ok).CornerRadius = UDim.new(0, 5)
ok.Activated:Connect(function()
local v = tonumber(box.Text)
if v then cb(v) end
end)
end
YM_FN.createSpeed("Taille Crosshair", 5, function(v) CrosshairDot.Size = UDim2.fromOffset(math.clamp(math.floor(v), 1, 30), math.clamp(math.floor(v), 1, 30)) end)
YM_FN.createSpeed("Rayon FOV", 150, function(v) fovRadius = math.clamp(math.floor(v), 20, 600) end)
YM_FN.createSpeed("Vitesse de marche", 16, YM_FN.setWalkSpeed)
YM_FN.createSpeed("Vitesse de vol", 50, function(v) flySpeed = v end)
YM_FN.createSpeed("Vitesse Toupie", 50, function(v) spinSpeed = v end)
YM_FN.createSpeed("Vitesse Toupie 90°", 5000, function(v) spinSpeed90 = v end)
YM_FN.createSpeed("Force Power (x1000)", 2800, function(v) forcePower = v end)
YM_FN.createSpeed("Force de saut", 50, function(v) jumpPower = math.max(0, v) end)
YM_FN.createSpeed("FPS COUNTER (0 = débride les FPS)", 0, function(v)
fpsCap = math.max(0, math.floor(v))
YM_FN.applyFPSCap()
end)
UserInputService.InputBegan:Connect(function(i, g)
if i.UserInputType == Enum.UserInputType.MouseButton2 then
aiming = true
end
if g then return end
-- Ne détourne pas les touches pendant la saisie dans la recherche.
if SearchBox and SearchBox:IsFocused() then return end
if i.KeyCode == Enum.KeyCode.F1 or i.KeyCode == Enum.KeyCode.P then
guiVisible = not Main.Visible
Main.Visible = guiVisible
elseif i.KeyCode == Enum.KeyCode.F2 then
FPSGui.Enabled = not FPSGui.Enabled
elseif i.KeyCode == Enum.KeyCode.F3 then
crosshairEnabled = not crosshairEnabled
CrosshairDot.Visible = crosshairEnabled
elseif i.KeyCode == Enum.KeyCode.X and UserInputService.TouchEnabled then
guiVisible = not Main.Visible
Main.Visible = guiVisible
end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton2 then
aiming = false
end
end)
end
buildDirectButtonUI()
-- MODE TACTILE : commandes visibles et utilisables au doigt sur téléphone/tablette.
-- Le petit bouton TACTILE reste disponible même lorsque la fenêtre principale est fermée.
local TouchPanel, TouchToggleButton
if UserInputService.TouchEnabled then
TouchToggleButton = Instance.new("TextButton")
TouchToggleButton.Name = "YM_TouchModeButton"
TouchToggleButton.Size = UDim2.fromOffset(92, 42)
TouchToggleButton.Position = UDim2.new(1, -104, 1, -60)
TouchToggleButton.BackgroundColor3 = Color3.fromRGB(105, 0, 15)
TouchToggleButton.Text = "☝ TACTILE"
TouchToggleButton.TextColor3 = Color3.new(1, 1, 1)
TouchToggleButton.TextSize = 14
TouchToggleButton.Font = Enum.Font.GothamBold
TouchToggleButton.AutoButtonColor = true
TouchToggleButton.ZIndex = 150
TouchToggleButton.Parent = ScreenGui
Instance.new("UICorner", TouchToggleButton).CornerRadius = UDim.new(0, 10)
local touchStroke = Instance.new("UIStroke", TouchToggleButton)
touchStroke.Color = Color3.fromRGB(230, 40, 55)
touchStroke.Thickness = 1.5
TouchPanel = Instance.new("Frame")
TouchPanel.Name = "YM_TouchControls"
TouchPanel.Size = UDim2.fromOffset(206, 236)
TouchPanel.Position = UDim2.new(1, -218, 1, -306)
TouchPanel.BackgroundColor3 = Color3.fromRGB(15, 5, 8)
TouchPanel.BackgroundTransparency = 0.08
TouchPanel.BorderSizePixel = 0
TouchPanel.Visible = false
TouchPanel.ZIndex = 149
TouchPanel.Parent = ScreenGui
Instance.new("UICorner", TouchPanel).CornerRadius = UDim.new(0, 12)
local panelStroke = Instance.new("UIStroke", TouchPanel)
panelStroke.Color = Color3.fromRGB(160, 15, 30)
panelStroke.Thickness = 1.5
local touchTitle = Instance.new("TextLabel")
touchTitle.Size = UDim2.new(1, -44, 0, 34)
touchTitle.Position = UDim2.fromOffset(10, 3)
touchTitle.BackgroundTransparency = 1
touchTitle.Text = "YM • COMMANDES TACTILES"
touchTitle.TextColor3 = Color3.new(1, 1, 1)
touchTitle.Font = Enum.Font.GothamBold
touchTitle.TextSize = 11
touchTitle.TextXAlignment = Enum.TextXAlignment.Left
touchTitle.ZIndex = 151
touchTitle.Parent = TouchPanel
local touchClose = Instance.new("TextButton")
touchClose.Name = "TouchPanelClose"
touchClose.Size = UDim2.fromOffset(30, 30)
touchClose.Position = UDim2.new(1, -34, 0, 3)
touchClose.BackgroundColor3 = Color3.fromRGB(130, 10, 20)
touchClose.Text = "×"
touchClose.TextColor3 = Color3.new(1, 1, 1)
touchClose.Font = Enum.Font.GothamBlack
touchClose.TextSize = 21
touchClose.ZIndex = 152
touchClose.Parent = TouchPanel
Instance.new("UICorner", touchClose).CornerRadius = UDim.new(0, 7)
touchClose.Activated:Connect(function() TouchPanel.Visible = false end)
local touchButtons = {
{label = "MENU YM", kind = "menu"},
{label = "VOL", kind = "toggle", tool = "Fly"},
{label = "SAUT INFINI", kind = "toggle", tool = "Infinite Jump"},
{label = "NOCLIP", kind = "toggle", tool = "Noclip"},
{label = "FPS", kind = "fps"},
{label = "VISEUR", kind = "crosshair"},
}
for index, item in ipairs(touchButtons) do
local col = (index - 1) % 2
local row = math.floor((index - 1) / 2)
local b = Instance.new("TextButton")
b.Name = "Touch_" .. item.kind .. (item.tool or "")
b.Size = UDim2.fromOffset(90, 48)
b.Position = UDim2.fromOffset(9 + col * 96, 42 + row * 58)
b.BackgroundColor3 = Color3.fromRGB(65, 8, 15)
b.Text = item.label
b.TextColor3 = Color3.new(1, 1, 1)
b.TextSize = 12
b.TextWrapped = true
b.Font = Enum.Font.GothamBold
b.AutoButtonColor = true
b.ZIndex = 151
b.Parent = TouchPanel
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 8)
local bs = Instance.new("UIStroke", b)
bs.Color = Color3.fromRGB(145, 20, 32)
b.Activated:Connect(function()
if item.kind == "menu" then
Main.Visible = not Main.Visible
guiVisible = Main.Visible
elseif item.kind == "fps" then
FPSGui.Enabled = not FPSGui.Enabled
b.Text = FPSGui.Enabled and "FPS • ON" or "FPS • OFF"
elseif item.kind == "crosshair" then
crosshairEnabled = not crosshairEnabled
CrosshairDot.Visible = crosshairEnabled
b.Text = crosshairEnabled and "VISEUR • ON" or "VISEUR • OFF"
elseif item.kind == "toggle" then
local nextState = not (toggleStates[item.tool] == true)
YM_FN.setToggle(item.tool, nextState)
b.Text = item.label .. (nextState and " • ON" or " • OFF")
b.BackgroundColor3 = nextState and Color3.fromRGB(10, 75, 30) or Color3.fromRGB(65, 8, 15)
end
end)
end
TouchToggleButton.Activated:Connect(function()
TouchPanel.Visible = not TouchPanel.Visible
end)
end
RunService:BindToRenderStep("YM_Aimbot", Enum.RenderPriority.Camera.Value + 1, function()
local currentCamera = workspace.CurrentCamera
if currentCamera then Camera = currentCamera end
if (aimbot or (aimScope and aiming)) and currentCamera then
local h = YM_FN.getClosestHead()
if h then
local cameraPos = currentCamera.CFrame.Position
currentCamera.CFrame = CFrame.lookAt(cameraPos, h.Position)
local root = YM_FN.getRoot()
local flatTarget = Vector3.new(h.Position.X, root and root.Position.Y or cameraPos.Y, h.Position.Z)
if root and (flatTarget - root.Position).Magnitude > 0.01 then
root.CFrame = CFrame.lookAt(root.Position, flatTarget)
end
end
end
end)
RunService.RenderStepped:Connect(function()
if flying and bodyVelocity and bodyGyro then
local m = Vector3.zero
if UserInputService:IsKeyDown(Enum.KeyCode.W) then m += Camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then m -= Camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then m -= Camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then m += Camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then m += Vector3.new(0, 1, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then m -= Vector3.new(0, 1, 0) end
bodyVelocity.Velocity = m.Magnitude > 0 and m.Unit * flySpeed or Vector3.zero
bodyGyro.CFrame = Camera.CFrame
end
end)
RunService.Heartbeat:Connect(function()
local hum, char = YM_FN.getHumanoid(), YM_FN.getChar()
if not hum or not char then return end
-- Ne pas casser le sprint natif du jeu : si le jeu augmente la vitesse
-- au-dessus de notre vitesse de base, on la laisse active. Quand le sprint
-- s'arrête et que la vitesse revient à la normale, on reprend walkSpeed.
if hum.WalkSpeed > walkSpeed then
gameSprintSpeed = hum.WalkSpeed
elseif hum.WalkSpeed < walkSpeed then
gameSprintSpeed = nil
hum.WalkSpeed = walkSpeed
end
-- Si un script du jeu a changé la vitesse pendant le sprint, on ne la force pas.
if gameSprintSpeed and hum.WalkSpeed >= gameSprintSpeed then
gameSprintSpeed = hum.WalkSpeed
end
if hum.UseJumpPower then
if hum.JumpPower ~= jumpPower then hum.JumpPower = jumpPower end
else
if hum.JumpHeight ~= jumpPower / 7 then hum.JumpHeight = jumpPower / 7 end
end
if godmode then
hum.MaxHealth = math.huge
hum.Health = math.huge
end
if noclip then
for _, p in pairs(char:GetDescendants()) do
if p:IsA("BasePart") then p.CanCollide = false end
end
end
end)
Players.PlayerAdded:Connect(function(plr)
plr.CharacterAdded:Connect(function()
task.wait(1)
if esp then YM_FN.createESP(plr) end
end)
end)
Players.PlayerRemoving:Connect(function(plr)
YM_FN.removeESP(plr)
if skeletonDrawings[plr] then
for _, d in pairs(skeletonDrawings[plr]) do if d.Remove then d:Remove() end end
skeletonDrawings[plr] = nil
end
end)
for _, plr in pairs(Players:GetPlayers()) do
plr.CharacterAdded:Connect(function()
task.wait(1)
if esp then YM_FN.createESP(plr) end
end)
end
player.CharacterAdded:Connect(function(char)
task.wait(0.8)
protect()
YM_FN.setWalkSpeed(walkSpeed)
YM_FN.setupSuperForce(char)
if godmode then
local h = char:WaitForChild("Humanoid")
h.MaxHealth = math.huge
h.Health = math.huge
end
if invisible then task.wait(0.3) YM_FN.setInvisible(true) end
if rgb then YM_FN.startRGB() end
if flying then YM_FN.stopFly() task.wait(0.3) YM_FN.startFly() end
if spinning90 then YM_FN.stopSpin90() task.wait(0.3) YM_FN.startSpin90() end
if ragdoll then YM_FN.stopRagdoll() task.wait(0.5) YM_FN.startRagdoll() end
if nameGlitch then YM_FN.stopNameGlitch() task.wait(0.5) YM_FN.startNameGlitch() end
characterVisualBackup = {}
if bigHeadEnabled or tinyCharacterEnabled or headlessEnabled then
task.wait(0.2)
YM_FN.updateCharacterVisuals()
end
end)
if player.Character then
YM_FN.setupSuperForce(player.Character)
end
-- Une seule barre de recherche : celle de la cartographie principale.
-- Elle filtre les boutons déjà enregistrés dans searchTargets.
SearchBox:GetPropertyChangedSignal("Text"):Connect(function()
local query = string.lower(SearchBox.Text or "")
for _, item in ipairs(searchTargets) do
if query == "" then
item.button.Visible = true
else
item.button.Visible = string.find(string.lower(item.text), query, 1, true) ~= nil
end
end
end)
YM_FN.showCategory("ACCUEIL")
-- Fonds des fenêtres : ajoutés une fois toute l'interface créée.
-- Apparence personnalisée UNIQUEMENT pour la fenêtre principale du tool.
-- Les fenêtres TP / Spectate / Liste / Waypoints / Debug gardent leur apparence.
addWindowBackground(Main)
-- Image des boutons : uniquement dans la fenêtre principale du YM TOOL.
-- Les fenêtres TP / Waypoints / Spectate / Liste / Debug restent inchangées.
for _, obj in ipairs(Main:GetDescendants()) do
if obj:IsA("GuiButton") then
addButtonBackground(obj)
end
end
print("✅ YM TOOL PC complet + Anti-Detection")
end
local function openDeveloperPrompt()
PassLabel.Visible = false
PassBox.Visible = false
PassBtn.Visible = false
DevBtn.Visible = false
ErrorLabel.Visible = false
StaffFrame.Visible = true
StaffBox.Text = ""
StaffError.Text = ""
task.defer(function() StaffBox:CaptureFocus() end)
end
local function closeDeveloperPrompt()
StaffFrame.Visible = false
PassLabel.Visible = true
PassBox.Visible = true
PassBtn.Visible = true
DevBtn.Visible = true
ErrorLabel.Visible = true
PassBox.Text = ""
ErrorLabel.Text = ""
end
local function tryDeveloperPassword()
if StaffBox.Text == developerPassword then
loadMainScript()
else
StaffError.Text = "Mot de passe développeur incorrect !"
StaffBox.Text = ""
task.wait(1.5)
StaffError.Text = ""
end
end
DevBtn.Activated:Connect(openDeveloperPrompt)
StaffBtn.Activated:Connect(tryDeveloperPassword)
StaffBackBtn.Activated:Connect(closeDeveloperPrompt)
StaffBox.FocusLost:Connect(function(enter)
if enter and StaffFrame.Visible then
tryDeveloperPassword()
end
end)
PassBtn.Activated:Connect(function()
if PassBox.Text == correctPassword then
loadMainScript()
else
ErrorLabel.Text = "Mot de passe incorrect !"
PassBox.Text = ""
task.wait(1.5)
ErrorLabel.Text = ""
end
end)
PassBox.FocusLost:Connect(function(enter)
if enter and not StaffFrame.Visible then
if PassBox.Text == correctPassword then
loadMainScript()
else
ErrorLabel.Text = "Mot de passe incorrect !"
PassBox.Text = ""
task.wait(1.5)
ErrorLabel.Text = ""
end
end
end)Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: discord.gg, scriptblox.com.
PASSWORD : ymclxn this script is the version MOBILE. Tap : YM TOOL for the pc version ! For new update check my discord ^^
Never paste your .ROBLOSECURITY cookie anywhere, and use an alt account with scripts.

Universal