
KeylessUniversal

if IY_LOADED and not _G.IY_DEBUG then
-- error("Infinite Yield is already running!", 0)
return
end
-- Arc Yield: mark as loaded immediately to prevent normal IY from loading
pcall(function() getgenv().IY_LOADED = true end)
pcall(function() getgenv().ARC_YIELD_LOADED = true end)
pcall(function() _G.ARC_YIELD_LOADED = true end)
if not game:IsLoaded() then game.Loaded:Wait() end
-- Auto-unlock FPS cap to max on load
pcall(function() setfpscap(1/0) end)
pcall(function() setfpscap(math.huge) end)
function missing(t, f, fallback)
if type(f) == t then return f end
return fallback
end
cloneref = missing("function", cloneref, function(...) return ... end)
sethidden = missing("function", sethiddenproperty or set_hidden_property or set_hidden_prop)
gethidden = missing("function", gethiddenproperty or get_hidden_property or get_hidden_prop)
queueteleport = missing("function", queue_on_teleport or (syn and syn.queue_on_teleport) or (fluxus and fluxus.queue_on_teleport))
httprequest = missing("function", request or http_request or (syn and syn.request) or (http and http.request) or (fluxus and fluxus.request))
everyClipboard = missing("function", setclipboard or toclipboard or set_clipboard or (Clipboard and Clipboard.set))
firetouchinterest = missing("function", firetouchinterest)
waxwritefile, waxreadfile = writefile, readfile
writefile = missing("function", waxwritefile) and function(file, data, safe)
if safe == true then return pcall(waxwritefile, file, data) end
waxwritefile(file, data)
end
readfile = missing("function", waxreadfile) and function(file, safe)
if safe == true then return pcall(waxreadfile, file) end
return waxreadfile(file)
end
isfile = missing("function", isfile, readfile and function(file)
local success, result = pcall(function()
return readfile(file)
end)
return success and result ~= nil and result ~= ""
end)
makefolder = missing("function", makefolder)
isfolder = missing("function", isfolder)
waxgetcustomasset = missing("function", getcustomasset or getsynasset)
hookfunction = missing("function", hookfunction)
hookmetamethod = missing("function", hookmetamethod)
getnamecallmethod = missing("function", getnamecallmethod or get_namecall_method)
checkcaller = missing("function", checkcaller, function() return false end)
newcclosure = missing("function", newcclosure)
getgc = missing("function", getgc or get_gc_objects)
setthreadidentity = missing("function", setthreadidentity or (syn and syn.set_thread_identity) or syn_context_set or setthreadcontext)
replicatesignal = missing("function", replicatesignal)
getconnections = missing("function", getconnections or get_signal_cons)
Services = setmetatable({}, {
__index = function(self, name)
local success, cache = pcall(function()
return cloneref(game:GetService(name))
end)
if success then
rawset(self, name, cache)
return cache
else
error("Invalid Service: " .. tostring(name))
end
end
})
Players = Services.Players
UserInputService = Services.UserInputService
TweenService = Services.TweenService
HttpService = Services.HttpService
MarketplaceService = Services.MarketplaceService
RunService = Services.RunService
TeleportService = Services.TeleportService
StarterGui = Services.StarterGui
GuiService = Services.GuiService
Lighting = Services.Lighting
ContextActionService = Services.ContextActionService
ReplicatedStorage = Services.ReplicatedStorage
GroupService = Services.GroupService
PathService = Services.PathfindingService
SoundService = Services.SoundService
Teams = Services.Teams
StarterPlayer = Services.StarterPlayer
InsertService = Services.InsertService
ChatService = Services.Chat
ProximityPromptService = Services.ProximityPromptService
ContentProvider = Services.ContentProvider
StatsService = Services.Stats
MaterialService = Services.MaterialService
AvatarEditorService = Services.AvatarEditorService
TextService = Services.TextService
TextChatService = Services.TextChatService
CaptureService = Services.CaptureService
VoiceChatService = Services.VoiceChatService
SocialService = Services.SocialService
PlayerGui = cloneref(Players.LocalPlayer:FindFirstChildWhichIsA("PlayerGui"))
COREGUI = Services.CoreGui or PlayerGui
IYMouse = cloneref(Players.LocalPlayer:GetMouse())
PlaceId, JobId = game.PlaceId, game.JobId
xpcall(function()
IsOnMobile = table.find({Enum.Platform.Android, Enum.Platform.IOS}, UserInputService:GetPlatform())
end, function()
IsOnMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled
end)
isLegacyChat = TextChatService.ChatVersion == Enum.ChatVersion.LegacyChatService
--[[rcdEnabled = select(2, pcall(function()
return gethidden(workspace, "RejectCharacterDeletions") ~= Enum.RejectCharacterDeletions.Disabled
end)) or false]]
-- xylex & europa
local iyassets = {
["infiniteyield/assets/bindsandplugins.png"] = "rbxassetid://5147695474",
["infiniteyield/assets/close.png"] = "rbxassetid://5054663650",
["infiniteyield/assets/editaliases.png"] = "rbxassetid://5147488658",
["infiniteyield/assets/editkeybinds.png"] = "rbxassetid://129697930",
["infiniteyield/assets/edittheme.png"] = "rbxassetid://4911962991",
["infiniteyield/assets/editwaypoints.png"] = "rbxassetid://5147488592",
["infiniteyield/assets/imgstudiopluginlogo.png"] = "rbxassetid://4113050383",
["infiniteyield/assets/logo.png"] = "rbxassetid://1352543873",
["infiniteyield/assets/minimize.png"] = "rbxassetid://2406617031",
["infiniteyield/assets/pin.png"] = "rbxassetid://6234691350",
["infiniteyield/assets/reference.png"] = "rbxassetid://3523243755",
["infiniteyield/assets/settings.png"] = "rbxassetid://1204397029"
}
local function getcustomasset(asset)
if waxgetcustomasset then
local success, result = pcall(function()
return waxgetcustomasset(asset)
end)
if success and result ~= nil and result ~= "" then
return result
end
end
return iyassets[asset]
end
if makefolder and isfolder and writefile and isfile then
pcall(function() -- good executor trust
local assets = "https://raw.githubusercontent.com/infyiff/backup/refs/heads/main/"
for _, folder in {"infiniteyield", "infiniteyield/assets"} do
if not isfolder(folder) then
makefolder(folder)
end
end
for path in iyassets do
if not isfile(path) then
writefile(path, game:HttpGet((path:gsub("infiniteyield/", assets))))
end
end
if IsOnMobile then writefile("infiniteyield/assets/.nomedia", "") end
end)
end
currentVersion = "6.4.1"
ScaledHolder = Instance.new("Frame")
Scale = Instance.new("UIScale")
Holder = Instance.new("Frame")
Title = Instance.new("TextLabel")
Dark = Instance.new("Frame")
Cmdbar = Instance.new("TextBox")
CMDsF = Instance.new("ScrollingFrame")
cmdListLayout = Instance.new("UIListLayout")
SettingsButton = Instance.new("ImageButton")
ColorsButton = Instance.new("ImageButton")
Settings = Instance.new("Frame")
Prefix = Instance.new("TextLabel")
PrefixBox = Instance.new("TextBox")
Keybinds = Instance.new("TextLabel")
StayOpen = Instance.new("TextLabel")
Button = Instance.new("Frame")
On = Instance.new("TextButton")
Positions = Instance.new("TextLabel")
EventBind = Instance.new("TextLabel")
Plugins = Instance.new("TextLabel")
Example = Instance.new("TextButton")
Notification = Instance.new("Frame")
Title_2 = Instance.new("TextLabel")
Text_2 = Instance.new("TextLabel")
CloseButton = Instance.new("TextButton")
CloseImage = Instance.new("ImageLabel")
PinButton = Instance.new("TextButton")
PinImage = Instance.new("ImageLabel")
Tooltip = Instance.new("Frame")
Title_3 = Instance.new("TextLabel")
Description = Instance.new("TextLabel")
IntroBackground = Instance.new("Frame")
Logo = Instance.new("ImageLabel")
Credits = Instance.new("TextBox")
KeybindsFrame = Instance.new("Frame")
Close = Instance.new("TextButton")
Add = Instance.new("TextButton")
Delete = Instance.new("TextButton")
Holder_2 = Instance.new("ScrollingFrame")
Example_2 = Instance.new("Frame")
Text_3 = Instance.new("TextLabel")
Delete_2 = Instance.new("TextButton")
KeybindEditor = Instance.new("Frame")
background_2 = Instance.new("Frame")
Dark_3 = Instance.new("Frame")
Directions = Instance.new("TextLabel")
BindTo = Instance.new("TextButton")
TriggerLabel = Instance.new("TextLabel")
BindTriggerSelect = Instance.new("TextButton")
Add_2 = Instance.new("TextButton")
Toggles = Instance.new("ScrollingFrame")
ClickTP = Instance.new("TextLabel")
Select = Instance.new("TextButton")
ClickDelete = Instance.new("TextLabel")
Select_2 = Instance.new("TextButton")
Cmdbar_2 = Instance.new("TextBox")
Cmdbar_3 = Instance.new("TextBox")
CreateToggle = Instance.new("TextLabel")
Button_2 = Instance.new("Frame")
On_2 = Instance.new("TextButton")
shadow_2 = Instance.new("Frame")
PopupText_2 = Instance.new("TextLabel")
Exit_2 = Instance.new("TextButton")
ExitImage_2 = Instance.new("ImageLabel")
PositionsFrame = Instance.new("Frame")
Close_3 = Instance.new("TextButton")
Delete_5 = Instance.new("TextButton")
Part = Instance.new("TextButton")
Holder_4 = Instance.new("ScrollingFrame")
Example_4 = Instance.new("Frame")
Text_5 = Instance.new("TextLabel")
Delete_6 = Instance.new("TextButton")
TP = Instance.new("TextButton")
AliasesFrame = Instance.new("Frame")
Close_2 = Instance.new("TextButton")
Delete_3 = Instance.new("TextButton")
Holder_3 = Instance.new("ScrollingFrame")
Example_3 = Instance.new("Frame")
Text_4 = Instance.new("TextLabel")
Delete_4 = Instance.new("TextButton")
Aliases = Instance.new("TextLabel")
PluginsFrame = Instance.new("Frame")
Close_4 = Instance.new("TextButton")
Add_3 = Instance.new("TextButton")
Holder_5 = Instance.new("ScrollingFrame")
Example_5 = Instance.new("Frame")
Text_6 = Instance.new("TextLabel")
Delete_7 = Instance.new("TextButton")
PluginEditor = Instance.new("Frame")
background_3 = Instance.new("Frame")
Dark_2 = Instance.new("Frame")
Img = Instance.new("ImageButton")
AddPlugin = Instance.new("TextButton")
FileName = Instance.new("TextBox")
About = Instance.new("TextLabel")
Directions_2 = Instance.new("TextLabel")
shadow_3 = Instance.new("Frame")
PopupText_3 = Instance.new("TextLabel")
Exit_3 = Instance.new("TextButton")
ExitImage_3 = Instance.new("ImageLabel")
AliasHint = Instance.new("TextLabel")
PluginsHint = Instance.new("TextLabel")
PositionsHint = Instance.new("TextLabel")
ToPartFrame = Instance.new("Frame")
background_4 = Instance.new("Frame")
ChoosePart = Instance.new("TextButton")
CopyPath = Instance.new("TextButton")
Directions_3 = Instance.new("TextLabel")
Path = Instance.new("TextLabel")
shadow_4 = Instance.new("Frame")
PopupText_5 = Instance.new("TextLabel")
Exit_4 = Instance.new("TextButton")
ExitImage_5 = Instance.new("ImageLabel")
logs = Instance.new("Frame")
shadow = Instance.new("Frame")
Hide = Instance.new("TextButton")
ImageLabel = Instance.new("ImageLabel")
PopupText = Instance.new("TextLabel")
Exit = Instance.new("TextButton")
ImageLabel_2 = Instance.new("ImageLabel")
background = Instance.new("Frame")
chat = Instance.new("Frame")
Clear = Instance.new("TextButton")
SaveChatlogs = Instance.new("TextButton")
Toggle = Instance.new("TextButton")
scroll_2 = Instance.new("ScrollingFrame")
join = Instance.new("Frame")
Toggle_2 = Instance.new("TextButton")
Clear_2 = Instance.new("TextButton")
scroll_3 = Instance.new("ScrollingFrame")
listlayout = Instance.new("UIListLayout",scroll_3)
selectChat = Instance.new("TextButton")
selectJoin = Instance.new("TextButton")
function randomString()
local length = math.random(10,20)
local array = {}
for i = 1, length do
array[i] = string.char(math.random(32, 126))
end
return table.concat(array)
end
PARENT = nil
MAX_DISPLAY_ORDER = 2147483647
if get_hidden_gui or gethui then
local hiddenUI = get_hidden_gui or gethui
local Main = Instance.new("ScreenGui")
Main.Name = randomString()
Main.ResetOnSpawn = false
Main.DisplayOrder = MAX_DISPLAY_ORDER
Main.Parent = hiddenUI()
PARENT = Main
elseif (not is_sirhurt_closure) and (syn and syn.protect_gui) then
local Main = Instance.new("ScreenGui")
Main.Name = randomString()
Main.ResetOnSpawn = false
Main.DisplayOrder = MAX_DISPLAY_ORDER
syn.protect_gui(Main)
Main.Parent = COREGUI
PARENT = Main
elseif COREGUI:FindFirstChild("RobloxGui") then
PARENT = COREGUI.RobloxGui
else
local Main = Instance.new("ScreenGui")
Main.Name = randomString()
Main.ResetOnSpawn = false
Main.DisplayOrder = MAX_DISPLAY_ORDER
Main.Parent = COREGUI
PARENT = Main
end
shade1 = {}
shade2 = {}
shade3 = {}
text1 = {}
text2 = {}
scroll = {}
ScaledHolder.Name = randomString()
ScaledHolder.Size = UDim2.fromScale(1, 1)
ScaledHolder.BackgroundTransparency = 1
ScaledHolder.Parent = PARENT
Scale.Name = randomString()
Holder.Name = randomString()
Holder.Parent = ScaledHolder
Holder.Active = true
Holder.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Holder.BorderSizePixel = 0
Holder.Position = UDim2.new(1, -250, 1, -220)
Holder.Size = UDim2.new(0, 250, 0, 220)
Holder.ZIndex = 10
table.insert(shade2,Holder)
Title.Name = "Title"
Title.Parent = Holder
Title.Active = true
Title.BackgroundColor3 = Color3.fromRGB(36,36,37)
Title.BorderSizePixel = 0
Title.Size = UDim2.new(0, 250, 0, 20)
Title.Font = Enum.Font.SourceSans
Title.TextSize = 18
Title.Text = "Arc Yield FE v" .. currentVersion
Title.TextColor3 = Color3.new(1, 1, 1)
Title.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
Title.TextStrokeTransparency = 0.5
do
local emoji = ({
["01 01"] = "🎆",
[(function(Year)
local A = math.floor(Year/100)
local B = math.floor((13+8*A)/25)
local C = (15-B+A-math.floor(A/4))%30
local D = (4+A-math.floor(A/4))%7
local E = (19*(Year%19)+C)%30
local F = (2*(Year%4)+4*(Year%7)+6*E+D)%7
local G = (22+E+F)
if E == 29 and F == 6 then
return "04 19"
elseif E == 28 and F == 6 then
return "04 18"
elseif 31 < G then
return ("04 %02d"):format(G-31)
end
return ("03 %02d"):format(G)
end)(tonumber(os.date"%Y"))] = "🥚",
["10 31"] = "🎃",
["12 25"] = "🎄"
})[os.date("%m %d")]
if emoji then
Title.Text = ("%s %s %s"):format(emoji, Title.Text, emoji)
end
end
Title.TextColor3 = Color3.new(1, 1, 1)
Title.ZIndex = 10
table.insert(shade1,Title)
table.insert(text1,Title)
Dark.Name = "Dark"
Dark.Parent = Holder
Dark.Active = true
Dark.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
Dark.BorderSizePixel = 0
Dark.Position = UDim2.new(0, 0, 0, 45)
Dark.Size = UDim2.new(0, 250, 0, 175)
Dark.ZIndex = 10
table.insert(shade1,Dark)
Cmdbar.Name = "Cmdbar"
Cmdbar.Parent = Holder
Cmdbar.BackgroundTransparency = 1
Cmdbar.BorderSizePixel = 0
Cmdbar.Position = UDim2.new(0, 5, 0, 20)
Cmdbar.Size = UDim2.new(0, 240, 0, 25)
Cmdbar.Font = Enum.Font.SourceSans
Cmdbar.TextSize = 18
Cmdbar.TextXAlignment = Enum.TextXAlignment.Left
Cmdbar.TextColor3 = Color3.new(1, 1, 1)
Cmdbar.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
Cmdbar.TextStrokeTransparency = 0.5
Cmdbar.Text = ""
Cmdbar.ZIndex = 10
Cmdbar.PlaceholderText = "Command Bar"
CMDsF.Name = "CMDs"
CMDsF.Parent = Holder
CMDsF.BackgroundTransparency = 1
CMDsF.BorderSizePixel = 0
CMDsF.Position = UDim2.new(0, 5, 0, 45)
CMDsF.Size = UDim2.new(0, 245, 0, 175)
CMDsF.ScrollBarImageColor3 = Color3.fromRGB(78,78,79)
CMDsF.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
CMDsF.CanvasSize = UDim2.new(0, 0, 0, 0)
CMDsF.MidImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
CMDsF.ScrollBarThickness = 8
CMDsF.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
CMDsF.VerticalScrollBarInset = 'Always'
CMDsF.ZIndex = 10
table.insert(scroll,CMDsF)
cmdListLayout.Parent = CMDsF
SettingsButton.Name = "SettingsButton"
SettingsButton.Parent = Holder
SettingsButton.BackgroundTransparency = 1
SettingsButton.Position = UDim2.new(0, 230, 0, 0)
SettingsButton.Size = UDim2.new(0, 20, 0, 20)
SettingsButton.Image = getcustomasset("infiniteyield/assets/settings.png")
SettingsButton.ZIndex = 10
ReferenceButton = Instance.new("ImageButton")
ReferenceButton.Name = "ReferenceButton"
ReferenceButton.Parent = Holder
ReferenceButton.BackgroundTransparency = 1
ReferenceButton.Position = UDim2.new(0, 212, 0, 2)
ReferenceButton.Size = UDim2.new(0, 16, 0, 16)
ReferenceButton.Image = getcustomasset("infiniteyield/assets/reference.png")
ReferenceButton.ZIndex = 10
Settings.Name = "Settings"
Settings.Parent = Holder
Settings.Active = true
Settings.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
Settings.BorderSizePixel = 0
Settings.Position = UDim2.new(0, 0, 0, 220)
Settings.Size = UDim2.new(0, 250, 0, 175)
Settings.ZIndex = 10
table.insert(shade1,Settings)
SettingsHolder = Instance.new("ScrollingFrame")
SettingsHolder.Name = "Holder"
SettingsHolder.Parent = Settings
SettingsHolder.BackgroundTransparency = 1
SettingsHolder.BorderSizePixel = 0
SettingsHolder.Size = UDim2.new(1,0,1,0)
SettingsHolder.ScrollBarImageColor3 = Color3.fromRGB(78,78,79)
SettingsHolder.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
SettingsHolder.CanvasSize = UDim2.new(0, 0, 0, 235)
SettingsHolder.MidImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
SettingsHolder.ScrollBarThickness = 8
SettingsHolder.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
SettingsHolder.VerticalScrollBarInset = 'Always'
SettingsHolder.ZIndex = 10
table.insert(scroll,SettingsHolder)
Prefix.Name = "Prefix"
Prefix.Parent = SettingsHolder
Prefix.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Prefix.BorderSizePixel = 0
Prefix.BackgroundTransparency = 1
Prefix.Position = UDim2.new(0, 5, 0, 5)
Prefix.Size = UDim2.new(1, -10, 0, 20)
Prefix.Font = Enum.Font.SourceSans
Prefix.TextSize = 14
Prefix.Text = "Prefix"
Prefix.TextColor3 = Color3.new(1, 1, 1)
Prefix.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
Prefix.TextStrokeTransparency = 0.6
Prefix.TextXAlignment = Enum.TextXAlignment.Left
Prefix.ZIndex = 10
table.insert(shade2,Prefix)
table.insert(text1,Prefix)
PrefixBox.Name = "PrefixBox"
PrefixBox.Parent = Prefix
PrefixBox.BackgroundColor3 = Color3.fromRGB(78, 78, 79)
PrefixBox.BorderSizePixel = 0
PrefixBox.Position = UDim2.new(1, -20, 0, 0)
PrefixBox.Size = UDim2.new(0, 20, 0, 20)
PrefixBox.Font = Enum.Font.SourceSansBold
PrefixBox.TextSize = 14
PrefixBox.Text = ''
PrefixBox.TextColor3 = Color3.new(0, 0, 0)
PrefixBox.ZIndex = 10
table.insert(shade3,PrefixBox)
table.insert(text2,PrefixBox)
function makeSettingsButton(name,iconID,off)
local button = Instance.new("TextButton")
button.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
button.BorderSizePixel = 0
button.Position = UDim2.new(0,0,0,0)
button.Size = UDim2.new(1,0,0,25)
button.Text = ""
button.ZIndex = 10
local icon = Instance.new("ImageLabel")
icon.Name = "Icon"
icon.Parent = button
icon.Position = UDim2.new(0,5,0,5)
icon.Size = UDim2.new(0,16,0,16)
icon.BackgroundTransparency = 1
icon.Image = iconID
icon.ZIndex = 10
if off then
icon.ScaleType = Enum.ScaleType.Crop
icon.ImageRectSize = Vector2.new(16,16)
icon.ImageRectOffset = Vector2.new(off,0)
end
local label = Instance.new("TextLabel")
label.Name = "ButtonLabel"
label.Parent = button
label.BackgroundTransparency = 1
label.Text = name
label.Position = UDim2.new(0,28,0,0)
label.Size = UDim2.new(1,-28,1,0)
label.Font = Enum.Font.SourceSans
label.TextColor3 = Color3.new(1, 1, 1)
label.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
label.TextStrokeTransparency = 0.6
label.TextSize = 14
label.ZIndex = 10
label.TextXAlignment = Enum.TextXAlignment.Left
table.insert(shade2,button)
table.insert(text1,label)
return button
end
ColorsButton = makeSettingsButton("Edit Theme",getcustomasset("infiniteyield/assets/edittheme.png"))
ColorsButton.Position = UDim2.new(0, 5, 0, 55)
ColorsButton.Size = UDim2.new(1, -10, 0, 25)
ColorsButton.Name = "Colors"
ColorsButton.Parent = SettingsHolder
Keybinds = makeSettingsButton("Edit Keybinds",getcustomasset("infiniteyield/assets/editkeybinds.png"))
Keybinds.Position = UDim2.new(0, 5, 0, 85)
Keybinds.Size = UDim2.new(1, -10, 0, 25)
Keybinds.Name = "Keybinds"
Keybinds.Parent = SettingsHolder
Aliases = makeSettingsButton("Edit Aliases",getcustomasset("infiniteyield/assets/editaliases.png"))
Aliases.Position = UDim2.new(0, 5, 0, 115)
Aliases.Size = UDim2.new(1, -10, 0, 25)
Aliases.Name = "Aliases"
Aliases.Parent = SettingsHolder
StayOpen.Name = "StayOpen"
StayOpen.Parent = SettingsHolder
StayOpen.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
StayOpen.BorderSizePixel = 0
StayOpen.BackgroundTransparency = 1
StayOpen.Position = UDim2.new(0, 5, 0, 30)
StayOpen.Size = UDim2.new(1, -10, 0, 20)
StayOpen.Font = Enum.Font.SourceSans
StayOpen.TextSize = 14
StayOpen.Text = "Keep Menu Open"
StayOpen.TextColor3 = Color3.new(1, 1, 1)
StayOpen.TextXAlignment = Enum.TextXAlignment.Left
StayOpen.ZIndex = 10
table.insert(shade2,StayOpen)
table.insert(text1,StayOpen)
Button.Name = "Button"
Button.Parent = StayOpen
Button.BackgroundColor3 = Color3.fromRGB(78, 78, 79)
Button.BorderSizePixel = 0
Button.Position = UDim2.new(1, -20, 0, 0)
Button.Size = UDim2.new(0, 20, 0, 20)
Button.ZIndex = 10
table.insert(shade3,Button)
On.Name = "On"
On.Parent = Button
On.BackgroundColor3 = Color3.fromRGB(150, 150, 151)
On.BackgroundTransparency = 1
On.BorderSizePixel = 0
On.Position = UDim2.new(0, 2, 0, 2)
On.Size = UDim2.new(0, 16, 0, 16)
On.Font = Enum.Font.SourceSans
On.FontSize = Enum.FontSize.Size14
On.Text = ""
On.TextColor3 = Color3.new(0, 0, 0)
On.ZIndex = 10
Positions = makeSettingsButton("Edit/Goto Waypoints",getcustomasset("infiniteyield/assets/editwaypoints.png"))
Positions.Position = UDim2.new(0, 5, 0, 145)
Positions.Size = UDim2.new(1, -10, 0, 25)
Positions.Name = "Waypoints"
Positions.Parent = SettingsHolder
EventBind = makeSettingsButton("Edit Event Binds",getcustomasset("infiniteyield/assets/bindsandplugins.png"),759)
EventBind.Position = UDim2.new(0, 5, 0, 205)
EventBind.Size = UDim2.new(1, -10, 0, 25)
EventBind.Name = "EventBinds"
EventBind.Parent = SettingsHolder
Plugins = makeSettingsButton("Manage Plugins",getcustomasset("infiniteyield/assets/bindsandplugins.png"),743)
Plugins.Position = UDim2.new(0, 5, 0, 175)
Plugins.Size = UDim2.new(1, -10, 0, 25)
Plugins.Name = "Plugins"
Plugins.Parent = SettingsHolder
Example.Name = "Example"
Example.Parent = Holder
Example.BackgroundTransparency = 1
Example.BorderSizePixel = 0
Example.Size = UDim2.new(0, 190, 0, 20)
Example.Visible = false
Example.Font = Enum.Font.SourceSans
Example.TextSize = 18
Example.Text = "Example"
Example.TextColor3 = Color3.new(1, 1, 1)
Example.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
Example.TextStrokeTransparency = 0.6
Example.TextXAlignment = Enum.TextXAlignment.Left
Example.ZIndex = 10
table.insert(text1,Example)
Notification.Name = randomString()
Notification.Parent = ScaledHolder
Notification.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
Notification.BorderSizePixel = 0
Notification.Position = UDim2.new(1, -500, 1, 20)
Notification.Size = UDim2.new(0, 250, 0, 100)
Notification.ZIndex = 10
table.insert(shade1,Notification)
Title_2.Name = "Title"
Title_2.Parent = Notification
Title_2.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Title_2.BorderSizePixel = 0
Title_2.Size = UDim2.new(0, 250, 0, 20)
Title_2.Font = Enum.Font.SourceSans
Title_2.TextSize = 14
Title_2.Text = "Notification Title"
Title_2.TextColor3 = Color3.new(1, 1, 1)
Title_2.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
Title_2.TextStrokeTransparency = 0.5
Title_2.ZIndex = 10
table.insert(shade2,Title_2)
table.insert(text1,Title_2)
Text_2.Name = "Text"
Text_2.Parent = Notification
Text_2.BackgroundTransparency = 1
Text_2.BorderSizePixel = 0
Text_2.Position = UDim2.new(0, 5, 0, 25)
Text_2.Size = UDim2.new(0, 240, 0, 75)
Text_2.Font = Enum.Font.SourceSans
Text_2.TextSize = 16
Text_2.Text = "Notification Text"
Text_2.TextColor3 = Color3.new(1, 1, 1)
Text_2.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
Text_2.TextStrokeTransparency = 0.5
Text_2.TextWrapped = true
Text_2.ZIndex = 10
table.insert(text1,Text_2)
CloseButton.Name = "CloseButton"
CloseButton.Parent = Notification
CloseButton.BackgroundTransparency = 1
CloseButton.Position = UDim2.new(1, -20, 0, 0)
CloseButton.Size = UDim2.new(0, 20, 0, 20)
CloseButton.Text = ""
CloseButton.ZIndex = 10
CloseImage.Parent = CloseButton
CloseImage.BackgroundColor3 = Color3.new(1, 1, 1)
CloseImage.BackgroundTransparency = 1
CloseImage.Position = UDim2.new(0, 5, 0, 5)
CloseImage.Size = UDim2.new(0, 10, 0, 10)
CloseImage.Image = getcustomasset("infiniteyield/assets/close.png")
CloseImage.ZIndex = 10
PinButton.Name = "PinButton"
PinButton.Parent = Notification
PinButton.BackgroundTransparency = 1
PinButton.Size = UDim2.new(0, 20, 0, 20)
PinButton.ZIndex = 10
PinButton.Text = ""
PinImage.Parent = PinButton
PinImage.BackgroundColor3 = Color3.new(1, 1, 1)
PinImage.BackgroundTransparency = 1
PinImage.Position = UDim2.new(0, 3, 0, 3)
PinImage.Size = UDim2.new(0, 14, 0, 14)
PinImage.ZIndex = 10
PinImage.Image = getcustomasset("infiniteyield/assets/pin.png")
Tooltip.Name = randomString()
Tooltip.Parent = ScaledHolder
Tooltip.Active = true
Tooltip.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
Tooltip.BackgroundTransparency = 0.1
Tooltip.BorderSizePixel = 0
Tooltip.Size = UDim2.new(0, 200, 0, 96)
Tooltip.Visible = false
Tooltip.ZIndex = 10
table.insert(shade1,Tooltip)
Title_3.Name = "Title"
Title_3.Parent = Tooltip
Title_3.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Title_3.BackgroundTransparency = 0.1
Title_3.BorderSizePixel = 0
Title_3.Size = UDim2.new(0, 200, 0, 20)
Title_3.Font = Enum.Font.SourceSans
Title_3.TextSize = 14
Title_3.Text = ""
Title_3.TextColor3 = Color3.new(1, 1, 1)
Title_3.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
Title_3.TextStrokeTransparency = 0.5
Title_3.TextTransparency = 0.1
Title_3.ZIndex = 10
table.insert(shade2,Title_3)
table.insert(text1,Title_3)
Description.Name = "Description"
Description.Parent = Tooltip
Description.BackgroundTransparency = 1
Description.BorderSizePixel = 0
Description.Size = UDim2.new(0,180,0,72)
Description.Position = UDim2.new(0,10,0,18)
Description.Font = Enum.Font.SourceSans
Description.TextSize = 16
Description.Text = ""
Description.TextColor3 = Color3.new(1, 1, 1)
Description.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
Description.TextStrokeTransparency = 0.5
Description.TextTransparency = 0.1
Description.TextWrapped = true
Description.ZIndex = 10
table.insert(text1,Description)
IntroBackground.Name = "IntroBackground"
IntroBackground.Parent = Holder
IntroBackground.Active = true
IntroBackground.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
IntroBackground.BorderSizePixel = 0
IntroBackground.Position = UDim2.new(0, 0, 0, 45)
IntroBackground.Size = UDim2.new(0, 250, 0, 175)
IntroBackground.ZIndex = 10
Logo.Name = "Logo"
Logo.Parent = Holder
Logo.BackgroundTransparency = 1
Logo.BorderSizePixel = 0
Logo.Position = UDim2.new(0, 125, 0, 127)
Logo.Size = UDim2.new(0, 10, 0, 10)
Logo.Image = getcustomasset("infiniteyield/assets/logo.png")
Logo.ImageTransparency = 0
Logo.ZIndex = 10
Credits.Name = "Credits"
Credits.Parent = Holder
Credits.BackgroundTransparency = 1
Credits.BorderSizePixel = 0
Credits.Position = UDim2.new(0, 0, 0.9, 30)
Credits.Size = UDim2.new(0, 250, 0, 20)
Credits.Font = Enum.Font.SourceSansLight
Credits.FontSize = Enum.FontSize.Size14
Credits.Text = "Edge // Zwolf // Moon // Toon // Peyton // ATP"
Credits.TextColor3 = Color3.new(1, 1, 1)
Credits.ZIndex = 10
KeybindsFrame.Name = "KeybindsFrame"
KeybindsFrame.Parent = Settings
KeybindsFrame.Active = true
KeybindsFrame.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
KeybindsFrame.BorderSizePixel = 0
KeybindsFrame.Position = UDim2.new(0, 0, 0, 175)
KeybindsFrame.Size = UDim2.new(0, 250, 0, 175)
KeybindsFrame.ZIndex = 10
table.insert(shade1,KeybindsFrame)
Close.Name = "Close"
Close.Parent = KeybindsFrame
Close.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Close.BorderSizePixel = 0
Close.Position = UDim2.new(0, 205, 0, 150)
Close.Size = UDim2.new(0, 40, 0, 20)
Close.Font = Enum.Font.SourceSans
Close.TextSize = 14
Close.Text = "Close"
Close.TextColor3 = Color3.new(1, 1, 1)
Close.ZIndex = 10
table.insert(shade2,Close)
table.insert(text1,Close)
Add.Name = "Add"
Add.Parent = KeybindsFrame
Add.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Add.BorderSizePixel = 0
Add.Position = UDim2.new(0, 5, 0, 150)
Add.Size = UDim2.new(0, 40, 0, 20)
Add.Font = Enum.Font.SourceSans
Add.TextSize = 14
Add.Text = "Add"
Add.TextColor3 = Color3.new(1, 1, 1)
Add.ZIndex = 10
table.insert(shade2,Add)
table.insert(text1,Add)
Delete.Name = "Delete"
Delete.Parent = KeybindsFrame
Delete.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Delete.BorderSizePixel = 0
Delete.Position = UDim2.new(0, 50, 0, 150)
Delete.Size = UDim2.new(0, 40, 0, 20)
Delete.Font = Enum.Font.SourceSans
Delete.TextSize = 14
Delete.Text = "Clear"
Delete.TextColor3 = Color3.new(1, 1, 1)
Delete.ZIndex = 10
table.insert(shade2,Delete)
table.insert(text1,Delete)
Holder_2.Name = "Holder"
Holder_2.Parent = KeybindsFrame
Holder_2.BackgroundTransparency = 1
Holder_2.BorderSizePixel = 0
Holder_2.Position = UDim2.new(0, 0, 0, 0)
Holder_2.Size = UDim2.new(0, 250, 0, 145)
Holder_2.ScrollBarImageColor3 = Color3.fromRGB(78,78,79)
Holder_2.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_2.CanvasSize = UDim2.new(0, 0, 0, 0)
Holder_2.MidImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_2.ScrollBarThickness = 0
Holder_2.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_2.VerticalScrollBarInset = 'Always'
Holder_2.ZIndex = 10
Example_2.Name = "Example"
Example_2.Parent = KeybindsFrame
Example_2.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Example_2.BorderSizePixel = 0
Example_2.Size = UDim2.new(0, 10, 0, 20)
Example_2.Visible = false
Example_2.ZIndex = 10
table.insert(shade2,Example_2)
Text_3.Name = "Text"
Text_3.Parent = Example_2
Text_3.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Text_3.BorderSizePixel = 0
Text_3.Position = UDim2.new(0, 10, 0, 0)
Text_3.Size = UDim2.new(0, 240, 0, 20)
Text_3.Font = Enum.Font.SourceSans
Text_3.TextSize = 14
Text_3.Text = "nom"
Text_3.TextColor3 = Color3.new(1, 1, 1)
Text_3.TextXAlignment = Enum.TextXAlignment.Left
Text_3.ZIndex = 10
table.insert(shade2,Text_3)
table.insert(text1,Text_3)
Delete_2.Name = "Delete"
Delete_2.Parent = Text_3
Delete_2.BackgroundColor3 = Color3.fromRGB(78, 78, 79)
Delete_2.BorderSizePixel = 0
Delete_2.Position = UDim2.new(0, 200, 0, 0)
Delete_2.Size = UDim2.new(0, 40, 0, 20)
Delete_2.Font = Enum.Font.SourceSans
Delete_2.TextSize = 14
Delete_2.Text = "Delete"
Delete_2.TextColor3 = Color3.new(0, 0, 0)
Delete_2.ZIndex = 10
table.insert(shade3,Delete_2)
table.insert(text2,Delete_2)
KeybindEditor.Name = randomString()
KeybindEditor.Parent = ScaledHolder
KeybindEditor.Active = true
KeybindEditor.BackgroundTransparency = 1
KeybindEditor.Position = UDim2.new(0.5, -180, 0, -500)
KeybindEditor.Size = UDim2.new(0, 360, 0, 20)
KeybindEditor.ZIndex = 10
background_2.Name = "background"
background_2.Parent = KeybindEditor
background_2.Active = true
background_2.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
background_2.BorderSizePixel = 0
background_2.Position = UDim2.new(0, 0, 0, 20)
background_2.Size = UDim2.new(0, 360, 0, 185)
background_2.ZIndex = 10
table.insert(shade1,background_2)
Dark_3.Name = "Dark"
Dark_3.Parent = background_2
Dark_3.Active = true
Dark_3.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Dark_3.BorderSizePixel = 0
Dark_3.Position = UDim2.new(0, 135, 0, 0)
Dark_3.Size = UDim2.new(0, 2, 0, 185)
Dark_3.ZIndex = 10
table.insert(shade2,Dark_3)
Directions.Name = "Directions"
Directions.Parent = background_2
Directions.BackgroundTransparency = 1
Directions.BorderSizePixel = 0
Directions.Position = UDim2.new(0, 10, 0, 15)
Directions.Size = UDim2.new(0, 115, 0, 90)
Directions.ZIndex = 10
Directions.Font = Enum.Font.SourceSans
Directions.Text = "Click the button below and press a key/mouse button. Then select what you want to bind it to."
Directions.TextColor3 = Color3.fromRGB(255, 255, 255)
Directions.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
Directions.TextStrokeTransparency = 0.5
Directions.TextSize = 14.000
Directions.TextWrapped = true
Directions.TextYAlignment = Enum.TextYAlignment.Top
table.insert(text1,Directions)
BindTo.Name = "BindTo"
BindTo.Parent = background_2
BindTo.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
BindTo.BorderSizePixel = 0
BindTo.Position = UDim2.new(0, 10, 0, 95)
BindTo.Size = UDim2.new(0, 115, 0, 50)
BindTo.ZIndex = 10
BindTo.Font = Enum.Font.SourceSans
BindTo.Text = "Click to bind"
BindTo.TextColor3 = Color3.fromRGB(255, 255, 255)
BindTo.TextSize = 16.000
table.insert(shade2,BindTo)
table.insert(text1,BindTo)
TriggerLabel.Name = "TriggerLabel"
TriggerLabel.Parent = background_2
TriggerLabel.BackgroundTransparency = 1
TriggerLabel.Position = UDim2.new(0, 10, 0, 155)
TriggerLabel.Size = UDim2.new(0, 45, 0, 20)
TriggerLabel.ZIndex = 10
TriggerLabel.Font = Enum.Font.SourceSans
TriggerLabel.Text = "Trigger:"
TriggerLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TriggerLabel.TextSize = 14.000
TriggerLabel.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,TriggerLabel)
BindTriggerSelect.Name = "BindTo"
BindTriggerSelect.Parent = background_2
BindTriggerSelect.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
BindTriggerSelect.BorderSizePixel = 0
BindTriggerSelect.Position = UDim2.new(0, 60, 0, 155)
BindTriggerSelect.Size = UDim2.new(0, 65, 0, 20)
BindTriggerSelect.ZIndex = 10
BindTriggerSelect.Font = Enum.Font.SourceSans
BindTriggerSelect.Text = "KeyDown"
BindTriggerSelect.TextColor3 = Color3.fromRGB(255, 255, 255)
BindTriggerSelect.TextSize = 16.000
table.insert(shade2,BindTriggerSelect)
table.insert(text1,BindTriggerSelect)
Add_2.Name = "Add"
Add_2.Parent = background_2
Add_2.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Add_2.BorderSizePixel = 0
Add_2.Position = UDim2.new(0, 310, 0, 35)
Add_2.Size = UDim2.new(0, 40, 0, 20)
Add_2.ZIndex = 10
Add_2.Font = Enum.Font.SourceSans
Add_2.Text = "Add"
Add_2.TextColor3 = Color3.fromRGB(255, 255, 255)
Add_2.TextSize = 14.000
table.insert(shade2,Add_2)
table.insert(text1,Add_2)
Toggles.Name = "Toggles"
Toggles.Parent = background_2
Toggles.BackgroundTransparency = 1
Toggles.BorderSizePixel = 0
Toggles.Position = UDim2.new(0, 150, 0, 125)
Toggles.Size = UDim2.new(0, 200, 0, 50)
Toggles.ZIndex = 10
Toggles.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Toggles.CanvasSize = UDim2.new(0, 0, 0, 50)
Toggles.ScrollBarThickness = 8
Toggles.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Toggles.VerticalScrollBarInset = Enum.ScrollBarInset.Always
table.insert(scroll,Toggles)
ClickTP.Name = "Click TP (Hold Key & Click)"
ClickTP.Parent = Toggles
ClickTP.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
ClickTP.BorderSizePixel = 0
ClickTP.Size = UDim2.new(0, 200, 0, 20)
ClickTP.ZIndex = 10
ClickTP.Font = Enum.Font.SourceSans
ClickTP.Text = " Click TP (Hold Key & Click)"
ClickTP.TextColor3 = Color3.fromRGB(255, 255, 255)
ClickTP.TextSize = 14.000
ClickTP.TextXAlignment = Enum.TextXAlignment.Left
table.insert(shade2,ClickTP)
table.insert(text1,ClickTP)
Select.Name = "Select"
Select.Parent = ClickTP
Select.BackgroundColor3 = Color3.fromRGB(78, 78, 79)
Select.BorderSizePixel = 0
Select.Position = UDim2.new(0, 160, 0, 0)
Select.Size = UDim2.new(0, 40, 0, 20)
Select.ZIndex = 10
Select.Font = Enum.Font.SourceSans
Select.Text = "Add"
Select.TextColor3 = Color3.fromRGB(0, 0, 0)
Select.TextSize = 14.000
table.insert(shade3,Select)
table.insert(text2,Select)
ClickDelete.Name = "Click Delete (Hold Key & Click)"
ClickDelete.Parent = Toggles
ClickDelete.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
ClickDelete.BorderSizePixel = 0
ClickDelete.Position = UDim2.new(0, 0, 0, 25)
ClickDelete.Size = UDim2.new(0, 200, 0, 20)
ClickDelete.ZIndex = 10
ClickDelete.Font = Enum.Font.SourceSans
ClickDelete.Text = " Click Delete (Hold Key & Click)"
ClickDelete.TextColor3 = Color3.fromRGB(255, 255, 255)
ClickDelete.TextSize = 14.000
ClickDelete.TextXAlignment = Enum.TextXAlignment.Left
table.insert(shade2,ClickDelete)
table.insert(text1,ClickDelete)
Select_2.Name = "Select"
Select_2.Parent = ClickDelete
Select_2.BackgroundColor3 = Color3.fromRGB(78, 78, 79)
Select_2.BorderSizePixel = 0
Select_2.Position = UDim2.new(0, 160, 0, 0)
Select_2.Size = UDim2.new(0, 40, 0, 20)
Select_2.ZIndex = 10
Select_2.Font = Enum.Font.SourceSans
Select_2.Text = "Add"
Select_2.TextColor3 = Color3.fromRGB(0, 0, 0)
Select_2.TextSize = 14.000
table.insert(shade3,Select_2)
table.insert(text2,Select_2)
Cmdbar_2.Name = "Cmdbar_2"
Cmdbar_2.Parent = background_2
Cmdbar_2.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Cmdbar_2.BorderSizePixel = 0
Cmdbar_2.Position = UDim2.new(0, 150, 0, 35)
Cmdbar_2.Size = UDim2.new(0, 150, 0, 20)
Cmdbar_2.ZIndex = 10
Cmdbar_2.Font = Enum.Font.SourceSans
Cmdbar_2.PlaceholderText = "Command"
Cmdbar_2.Text = ""
Cmdbar_2.TextColor3 = Color3.fromRGB(255, 255, 255)
Cmdbar_2.TextSize = 14.000
Cmdbar_2.TextXAlignment = Enum.TextXAlignment.Left
Cmdbar_3.Name = "Cmdbar_3"
Cmdbar_3.Parent = background_2
Cmdbar_3.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Cmdbar_3.BorderSizePixel = 0
Cmdbar_3.Position = UDim2.new(0, 150, 0, 60)
Cmdbar_3.Size = UDim2.new(0, 150, 0, 20)
Cmdbar_3.ZIndex = 10
Cmdbar_3.Font = Enum.Font.SourceSans
Cmdbar_3.PlaceholderText = "Command 2"
Cmdbar_3.Text = ""
Cmdbar_3.TextColor3 = Color3.fromRGB(255, 255, 255)
Cmdbar_3.TextSize = 14.000
Cmdbar_3.TextXAlignment = Enum.TextXAlignment.Left
CreateToggle.Name = "CreateToggle"
CreateToggle.Parent = background_2
CreateToggle.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
CreateToggle.BackgroundTransparency = 1
CreateToggle.BorderSizePixel = 0
CreateToggle.Position = UDim2.new(0, 152, 0, 10)
CreateToggle.Size = UDim2.new(0, 198, 0, 20)
CreateToggle.ZIndex = 10
CreateToggle.Font = Enum.Font.SourceSans
CreateToggle.Text = "Create Toggle"
CreateToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
CreateToggle.TextSize = 14.000
CreateToggle.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,CreateToggle)
Button_2.Name = "Button"
Button_2.Parent = CreateToggle
Button_2.BackgroundColor3 = Color3.fromRGB(78, 78, 79)
Button_2.BorderSizePixel = 0
Button_2.Position = UDim2.new(1, -20, 0, 0)
Button_2.Size = UDim2.new(0, 20, 0, 20)
Button_2.ZIndex = 10
table.insert(shade3,Button_2)
On_2.Name = "On"
On_2.Parent = Button_2
On_2.BackgroundColor3 = Color3.fromRGB(150, 150, 151)
On_2.BackgroundTransparency = 1
On_2.BorderSizePixel = 0
On_2.Position = UDim2.new(0, 2, 0, 2)
On_2.Size = UDim2.new(0, 16, 0, 16)
On_2.ZIndex = 10
On_2.Font = Enum.Font.SourceSans
On_2.Text = ""
On_2.TextColor3 = Color3.fromRGB(0, 0, 0)
On_2.TextSize = 14.000
shadow_2.Name = "shadow"
shadow_2.Parent = KeybindEditor
shadow_2.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
shadow_2.BorderSizePixel = 0
shadow_2.Size = UDim2.new(0, 360, 0, 20)
shadow_2.ZIndex = 10
table.insert(shade2,shadow_2)
PopupText_2.Name = "PopupText_2"
PopupText_2.Parent = shadow_2
PopupText_2.BackgroundTransparency = 1
PopupText_2.Size = UDim2.new(1, 0, 0.949999988, 0)
PopupText_2.ZIndex = 10
PopupText_2.Font = Enum.Font.SourceSans
PopupText_2.Text = "Set Keybinds"
PopupText_2.TextColor3 = Color3.fromRGB(255, 255, 255)
PopupText_2.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
PopupText_2.TextStrokeTransparency = 0.5
PopupText_2.TextSize = 14.000
PopupText_2.TextWrapped = true
table.insert(text1,PopupText_2)
Exit_2.Name = "Exit_2"
Exit_2.Parent = shadow_2
Exit_2.BackgroundTransparency = 1
Exit_2.Position = UDim2.new(1, -20, 0, 0)
Exit_2.Size = UDim2.new(0, 20, 0, 20)
Exit_2.ZIndex = 10
Exit_2.Text = ""
ExitImage_2.Parent = Exit_2
ExitImage_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ExitImage_2.BackgroundTransparency = 1
ExitImage_2.Position = UDim2.new(0, 5, 0, 5)
ExitImage_2.Size = UDim2.new(0, 10, 0, 10)
ExitImage_2.ZIndex = 10
ExitImage_2.Image = getcustomasset("infiniteyield/assets/close.png")
PositionsFrame.Name = "PositionsFrame"
PositionsFrame.Parent = Settings
PositionsFrame.Active = true
PositionsFrame.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
PositionsFrame.BorderSizePixel = 0
PositionsFrame.Size = UDim2.new(0, 250, 0, 175)
PositionsFrame.Position = UDim2.new(0, 0, 0, 175)
PositionsFrame.ZIndex = 10
table.insert(shade1,PositionsFrame)
Close_3.Name = "Close"
Close_3.Parent = PositionsFrame
Close_3.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Close_3.BorderSizePixel = 0
Close_3.Position = UDim2.new(0, 205, 0, 150)
Close_3.Size = UDim2.new(0, 40, 0, 20)
Close_3.Font = Enum.Font.SourceSans
Close_3.TextSize = 14
Close_3.Text = "Close"
Close_3.TextColor3 = Color3.new(1, 1, 1)
Close_3.ZIndex = 10
table.insert(shade2,Close_3)
table.insert(text1,Close_3)
Delete_5.Name = "Delete"
Delete_5.Parent = PositionsFrame
Delete_5.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Delete_5.BorderSizePixel = 0
Delete_5.Position = UDim2.new(0, 50, 0, 150)
Delete_5.Size = UDim2.new(0, 40, 0, 20)
Delete_5.Font = Enum.Font.SourceSans
Delete_5.TextSize = 14
Delete_5.Text = "Clear"
Delete_5.TextColor3 = Color3.new(1, 1, 1)
Delete_5.ZIndex = 10
table.insert(shade2,Delete_5)
table.insert(text1,Delete_5)
Part.Name = "PartGoto"
Part.Parent = PositionsFrame
Part.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Part.BorderSizePixel = 0
Part.Position = UDim2.new(0, 5, 0, 150)
Part.Size = UDim2.new(0, 40, 0, 20)
Part.Font = Enum.Font.SourceSans
Part.TextSize = 14
Part.Text = "Part"
Part.TextColor3 = Color3.new(1, 1, 1)
Part.ZIndex = 10
table.insert(shade2,Part)
table.insert(text1,Part)
Holder_4.Name = "Holder"
Holder_4.Parent = PositionsFrame
Holder_4.BackgroundTransparency = 1
Holder_4.BorderSizePixel = 0
Holder_4.Position = UDim2.new(0, 0, 0, 0)
Holder_4.Selectable = false
Holder_4.Size = UDim2.new(0, 250, 0, 145)
Holder_4.ScrollBarImageColor3 = Color3.fromRGB(78,78,79)
Holder_4.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_4.CanvasSize = UDim2.new(0, 0, 0, 0)
Holder_4.MidImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_4.ScrollBarThickness = 0
Holder_4.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_4.VerticalScrollBarInset = 'Always'
Holder_4.ZIndex = 10
Example_4.Name = "Example"
Example_4.Parent = PositionsFrame
Example_4.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Example_4.BorderSizePixel = 0
Example_4.Size = UDim2.new(0, 10, 0, 20)
Example_4.Visible = false
Example_4.Position = UDim2.new(0, 0, 0, -5)
Example_4.ZIndex = 10
table.insert(shade2,Example_4)
Text_5.Name = "Text"
Text_5.Parent = Example_4
Text_5.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Text_5.BorderSizePixel = 0
Text_5.Position = UDim2.new(0, 10, 0, 0)
Text_5.Size = UDim2.new(0, 240, 0, 20)
Text_5.Font = Enum.Font.SourceSans
Text_5.TextSize = 14
Text_5.Text = "Position"
Text_5.TextColor3 = Color3.new(1, 1, 1)
Text_5.TextXAlignment = Enum.TextXAlignment.Left
Text_5.ZIndex = 10
table.insert(shade2,Text_5)
table.insert(text1,Text_5)
Delete_6.Name = "Delete"
Delete_6.Parent = Text_5
Delete_6.BackgroundColor3 = Color3.fromRGB(78, 78, 79)
Delete_6.BorderSizePixel = 0
Delete_6.Position = UDim2.new(0, 200, 0, 0)
Delete_6.Size = UDim2.new(0, 40, 0, 20)
Delete_6.Font = Enum.Font.SourceSans
Delete_6.TextSize = 14
Delete_6.Text = "Delete"
Delete_6.TextColor3 = Color3.new(0, 0, 0)
Delete_6.ZIndex = 10
table.insert(shade3,Delete_6)
table.insert(text2,Delete_6)
TP.Name = "TP"
TP.Parent = Text_5
TP.BackgroundColor3 = Color3.fromRGB(78, 78, 79)
TP.BorderSizePixel = 0
TP.Position = UDim2.new(0, 155, 0, 0)
TP.Size = UDim2.new(0, 40, 0, 20)
TP.Font = Enum.Font.SourceSans
TP.TextSize = 14
TP.Text = "Goto"
TP.TextColor3 = Color3.new(0, 0, 0)
TP.ZIndex = 10
table.insert(shade3,TP)
table.insert(text2,TP)
AliasesFrame.Name = "AliasesFrame"
AliasesFrame.Parent = Settings
AliasesFrame.Active = true
AliasesFrame.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
AliasesFrame.BorderSizePixel = 0
AliasesFrame.Position = UDim2.new(0, 0, 0, 175)
AliasesFrame.Size = UDim2.new(0, 250, 0, 175)
AliasesFrame.ZIndex = 10
table.insert(shade1,AliasesFrame)
Close_2.Name = "Close"
Close_2.Parent = AliasesFrame
Close_2.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Close_2.BorderSizePixel = 0
Close_2.Position = UDim2.new(0, 205, 0, 150)
Close_2.Size = UDim2.new(0, 40, 0, 20)
Close_2.Font = Enum.Font.SourceSans
Close_2.TextSize = 14
Close_2.Text = "Close"
Close_2.TextColor3 = Color3.new(1, 1, 1)
Close_2.ZIndex = 10
table.insert(shade2,Close_2)
table.insert(text1,Close_2)
Delete_3.Name = "Delete"
Delete_3.Parent = AliasesFrame
Delete_3.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Delete_3.BorderSizePixel = 0
Delete_3.Position = UDim2.new(0, 5, 0, 150)
Delete_3.Size = UDim2.new(0, 40, 0, 20)
Delete_3.Font = Enum.Font.SourceSans
Delete_3.TextSize = 14
Delete_3.Text = "Clear"
Delete_3.TextColor3 = Color3.new(1, 1, 1)
Delete_3.ZIndex = 10
table.insert(shade2,Delete_3)
table.insert(text1,Delete_3)
Holder_3.Name = "Holder"
Holder_3.Parent = AliasesFrame
Holder_3.BackgroundTransparency = 1
Holder_3.BorderSizePixel = 0
Holder_3.Position = UDim2.new(0, 0, 0, 0)
Holder_3.Size = UDim2.new(0, 250, 0, 145)
Holder_3.ScrollBarImageColor3 = Color3.fromRGB(78,78,79)
Holder_3.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_3.CanvasSize = UDim2.new(0, 0, 0, 0)
Holder_3.MidImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_3.ScrollBarThickness = 0
Holder_3.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_3.VerticalScrollBarInset = 'Always'
Holder_3.ZIndex = 10
Example_3.Name = "Example"
Example_3.Parent = AliasesFrame
Example_3.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Example_3.BorderSizePixel = 0
Example_3.Size = UDim2.new(0, 10, 0, 20)
Example_3.Visible = false
Example_3.ZIndex = 10
table.insert(shade2,Example_3)
Text_4.Name = "Text"
Text_4.Parent = Example_3
Text_4.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Text_4.BorderSizePixel = 0
Text_4.Position = UDim2.new(0, 10, 0, 0)
Text_4.Size = UDim2.new(0, 240, 0, 20)
Text_4.Font = Enum.Font.SourceSans
Text_4.TextSize = 14
Text_4.Text = "honk"
Text_4.TextColor3 = Color3.new(1, 1, 1)
Text_4.TextXAlignment = Enum.TextXAlignment.Left
Text_4.ZIndex = 10
table.insert(shade2,Text_4)
table.insert(text1,Text_4)
Delete_4.Name = "Delete"
Delete_4.Parent = Text_4
Delete_4.BackgroundColor3 = Color3.fromRGB(78, 78, 79)
Delete_4.BorderSizePixel = 0
Delete_4.Position = UDim2.new(0, 200, 0, 0)
Delete_4.Size = UDim2.new(0, 40, 0, 20)
Delete_4.Font = Enum.Font.SourceSans
Delete_4.TextSize = 14
Delete_4.Text = "Delete"
Delete_4.TextColor3 = Color3.new(0, 0, 0)
Delete_4.ZIndex = 10
table.insert(shade3,Delete_4)
table.insert(text2,Delete_4)
PluginsFrame.Name = "PluginsFrame"
PluginsFrame.Parent = Settings
PluginsFrame.Active = true
PluginsFrame.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
PluginsFrame.BorderSizePixel = 0
PluginsFrame.Position = UDim2.new(0, 0, 0, 175)
PluginsFrame.Size = UDim2.new(0, 250, 0, 175)
PluginsFrame.ZIndex = 10
table.insert(shade1,PluginsFrame)
Close_4.Name = "Close"
Close_4.Parent = PluginsFrame
Close_4.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Close_4.BorderSizePixel = 0
Close_4.Position = UDim2.new(0, 205, 0, 150)
Close_4.Size = UDim2.new(0, 40, 0, 20)
Close_4.Font = Enum.Font.SourceSans
Close_4.TextSize = 14
Close_4.Text = "Close"
Close_4.TextColor3 = Color3.new(1, 1, 1)
Close_4.ZIndex = 10
table.insert(shade2,Close_4)
table.insert(text1,Close_4)
Add_3.Name = "Add"
Add_3.Parent = PluginsFrame
Add_3.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Add_3.BorderSizePixel = 0
Add_3.Position = UDim2.new(0, 5, 0, 150)
Add_3.Size = UDim2.new(0, 40, 0, 20)
Add_3.Font = Enum.Font.SourceSans
Add_3.TextSize = 14
Add_3.Text = "Add"
Add_3.TextColor3 = Color3.new(1, 1, 1)
Add_3.ZIndex = 10
table.insert(shade2,Add_3)
table.insert(text1,Add_3)
Holder_5.Name = "Holder"
Holder_5.Parent = PluginsFrame
Holder_5.BackgroundTransparency = 1
Holder_5.BorderSizePixel = 0
Holder_5.Position = UDim2.new(0, 0, 0, 0)
Holder_5.Selectable = false
Holder_5.Size = UDim2.new(0, 250, 0, 145)
Holder_5.ScrollBarImageColor3 = Color3.fromRGB(78,78,79)
Holder_5.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_5.CanvasSize = UDim2.new(0, 0, 0, 0)
Holder_5.MidImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_5.ScrollBarThickness = 0
Holder_5.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
Holder_5.VerticalScrollBarInset = 'Always'
Holder_5.ZIndex = 10
Example_5.Name = "Example"
Example_5.Parent = PluginsFrame
Example_5.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Example_5.BorderSizePixel = 0
Example_5.Size = UDim2.new(0, 10, 0, 20)
Example_5.Visible = false
Example_5.ZIndex = 10
table.insert(shade2,Example_5)
Text_6.Name = "Text"
Text_6.Parent = Example_5
Text_6.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Text_6.BorderSizePixel = 0
Text_6.Position = UDim2.new(0, 10, 0, 0)
Text_6.Size = UDim2.new(0, 240, 0, 20)
Text_6.Font = Enum.Font.SourceSans
Text_6.TextSize = 14
Text_6.Text = "F4 > Toggle Fly"
Text_6.TextColor3 = Color3.new(1, 1, 1)
Text_6.TextXAlignment = Enum.TextXAlignment.Left
Text_6.ZIndex = 10
table.insert(shade2,Text_6)
table.insert(text1,Text_6)
Delete_7.Name = "Delete"
Delete_7.Parent = Text_6
Delete_7.BackgroundColor3 = Color3.fromRGB(78, 78, 79)
Delete_7.BorderSizePixel = 0
Delete_7.Position = UDim2.new(0, 200, 0, 0)
Delete_7.Size = UDim2.new(0, 40, 0, 20)
Delete_7.Font = Enum.Font.SourceSans
Delete_7.TextSize = 14
Delete_7.Text = "Delete"
Delete_7.TextColor3 = Color3.new(0, 0, 0)
Delete_7.ZIndex = 10
table.insert(shade3,Delete_7)
table.insert(text2,Delete_7)
PluginEditor.Name = randomString()
PluginEditor.Parent = ScaledHolder
PluginEditor.BorderSizePixel = 0
PluginEditor.Active = true
PluginEditor.BackgroundTransparency = 1
PluginEditor.Position = UDim2.new(0.5, -180, 0, -500)
PluginEditor.Size = UDim2.new(0, 360, 0, 20)
PluginEditor.ZIndex = 10
background_3.Name = "background"
background_3.Parent = PluginEditor
background_3.Active = true
background_3.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
background_3.BorderSizePixel = 0
background_3.Position = UDim2.new(0, 0, 0, 20)
background_3.Size = UDim2.new(0, 360, 0, 160)
background_3.ZIndex = 10
table.insert(shade1,background_3)
Dark_2.Name = "Dark"
Dark_2.Parent = background_3
Dark_2.Active = true
Dark_2.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
Dark_2.BorderSizePixel = 0
Dark_2.Position = UDim2.new(0, 222, 0, 0)
Dark_2.Size = UDim2.new(0, 2, 0, 160)
Dark_2.ZIndex = 10
table.insert(shade2,Dark_2)
Img.Name = "Img"
Img.Parent = background_3
Img.BackgroundTransparency = 1
Img.Position = UDim2.new(0, 242, 0, 3)
Img.Size = UDim2.new(0, 100, 0, 95)
Img.Image = getcustomasset("infiniteyield/assets/imgstudiopluginlogo.png")
Img.ZIndex = 10
AddPlugin.Name = "AddPlugin"
AddPlugin.Parent = background_3
AddPlugin.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
AddPlugin.BorderSizePixel = 0
AddPlugin.Position = UDim2.new(0, 235, 0, 100)
AddPlugin.Size = UDim2.new(0, 115, 0, 50)
AddPlugin.Font = Enum.Font.SourceSans
AddPlugin.TextSize = 14
AddPlugin.Text = "Add Plugin"
AddPlugin.TextColor3 = Color3.new(1, 1, 1)
AddPlugin.ZIndex = 10
table.insert(shade2,AddPlugin)
table.insert(text1,AddPlugin)
FileName.Name = "FileName"
FileName.Parent = background_3
FileName.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
FileName.BorderSizePixel = 0
FileName.Position = UDim2.new(0.028, 0, 0.625, 0)
FileName.Size = UDim2.new(0, 200, 0, 50)
FileName.Font = Enum.Font.SourceSans
FileName.TextSize = 14
FileName.Text = "Plugin File Name"
FileName.TextColor3 = Color3.new(1, 1, 1)
FileName.ZIndex = 10
table.insert(shade2,FileName)
table.insert(text1,FileName)
About.Name = "About"
About.Parent = background_3
About.BackgroundTransparency = 1
About.BorderSizePixel = 0
About.Position = UDim2.new(0, 17, 0, 10)
About.Size = UDim2.new(0, 187, 0, 49)
About.Font = Enum.Font.SourceSans
About.TextSize = 14
About.Text = "Plugins are .iy files and should be located in the 'workspace' folder of your exploit."
About.TextColor3 = Color3.fromRGB(255, 255, 255)
About.TextWrapped = true
About.TextYAlignment = Enum.TextYAlignment.Top
About.ZIndex = 10
table.insert(text1,About)
Directions_2.Name = "Directions"
Directions_2.Parent = background_3
Directions_2.BackgroundTransparency = 1
Directions_2.BorderSizePixel = 0
Directions_2.Position = UDim2.new(0, 17, 0, 60)
Directions_2.Size = UDim2.new(0, 187, 0, 49)
Directions_2.Font = Enum.Font.SourceSans
Directions_2.TextSize = 14
Directions_2.Text = "Type the name of the plugin file you want to add below."
Directions_2.TextColor3 = Color3.fromRGB(255, 255, 255)
Directions_2.TextWrapped = true
Directions_2.TextYAlignment = Enum.TextYAlignment.Top
Directions_2.ZIndex = 10
table.insert(text1,Directions_2)
shadow_3.Name = "shadow"
shadow_3.Parent = PluginEditor
shadow_3.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
shadow_3.BorderSizePixel = 0
shadow_3.Size = UDim2.new(0, 360, 0, 20)
shadow_3.ZIndex = 10
table.insert(shade2,shadow_3)
PopupText_3.Name = "PopupText"
PopupText_3.Parent = shadow_3
PopupText_3.BackgroundTransparency = 1
PopupText_3.Size = UDim2.new(1, 0, 0.95, 0)
PopupText_3.ZIndex = 10
PopupText_3.Font = Enum.Font.SourceSans
PopupText_3.TextSize = 14
PopupText_3.Text = "Add Plugins"
PopupText_3.TextColor3 = Color3.new(1, 1, 1)
PopupText_3.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
PopupText_3.TextStrokeTransparency = 0.5
PopupText_3.TextWrapped = true
table.insert(text1,PopupText_3)
Exit_3.Name = "Exit"
Exit_3.Parent = shadow_3
Exit_3.BackgroundTransparency = 1
Exit_3.Position = UDim2.new(1, -20, 0, 0)
Exit_3.Size = UDim2.new(0, 20, 0, 20)
Exit_3.Text = ""
Exit_3.ZIndex = 10
ExitImage_3.Parent = Exit_3
ExitImage_3.BackgroundColor3 = Color3.new(1, 1, 1)
ExitImage_3.BackgroundTransparency = 1
ExitImage_3.Position = UDim2.new(0, 5, 0, 5)
ExitImage_3.Size = UDim2.new(0, 10, 0, 10)
ExitImage_3.Image = getcustomasset("infiniteyield/assets/close.png")
ExitImage_3.ZIndex = 10
AliasHint.Name = "AliasHint"
AliasHint.Parent = AliasesFrame
AliasHint.BackgroundTransparency = 1
AliasHint.BorderSizePixel = 0
AliasHint.Position = UDim2.new(0, 25, 0, 40)
AliasHint.Size = UDim2.new(0, 200, 0, 50)
AliasHint.Font = Enum.Font.SourceSansItalic
AliasHint.TextSize = 16
AliasHint.Text = "Add aliases by using the 'addalias' command"
AliasHint.TextColor3 = Color3.new(1, 1, 1)
AliasHint.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
AliasHint.TextWrapped = true
AliasHint.ZIndex = 10
table.insert(text1,AliasHint)
PluginsHint.Name = "PluginsHint"
PluginsHint.Parent = PluginsFrame
PluginsHint.BackgroundTransparency = 1
PluginsHint.BorderSizePixel = 0
PluginsHint.Position = UDim2.new(0, 25, 0, 40)
PluginsHint.Size = UDim2.new(0, 200, 0, 50)
PluginsHint.Font = Enum.Font.SourceSansItalic
PluginsHint.TextSize = 16
PluginsHint.Text = "Download plugins from the IY Discord (discord.gg/78ZuWSq)"
PluginsHint.TextColor3 = Color3.new(1, 1, 1)
PluginsHint.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
PluginsHint.TextWrapped = true
PluginsHint.ZIndex = 10
table.insert(text1,PluginsHint)
PositionsHint.Name = "PositionsHint"
PositionsHint.Parent = PositionsFrame
PositionsHint.BackgroundTransparency = 1
PositionsHint.BorderSizePixel = 0
PositionsHint.Position = UDim2.new(0, 25, 0, 40)
PositionsHint.Size = UDim2.new(0, 200, 0, 70)
PositionsHint.Font = Enum.Font.SourceSansItalic
PositionsHint.TextSize = 16
PositionsHint.Text = "Use the 'swp' or 'setwaypoint' command to add a position using your character (NOTE: Part teleports will not save)"
PositionsHint.TextColor3 = Color3.new(1, 1, 1)
PositionsHint.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
PositionsHint.TextWrapped = true
PositionsHint.ZIndex = 10
table.insert(text1,PositionsHint)
ToPartFrame.Name = randomString()
ToPartFrame.Parent = ScaledHolder
ToPartFrame.Active = true
ToPartFrame.BackgroundTransparency = 1
ToPartFrame.Position = UDim2.new(0.5, -180, 0, -500)
ToPartFrame.Size = UDim2.new(0, 360, 0, 20)
ToPartFrame.ZIndex = 10
background_4.Name = "background"
background_4.Parent = ToPartFrame
background_4.Active = true
background_4.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
background_4.BorderSizePixel = 0
background_4.Position = UDim2.new(0, 0, 0, 20)
background_4.Size = UDim2.new(0, 360, 0, 117)
background_4.ZIndex = 10
table.insert(shade1,background_4)
ChoosePart.Name = "ChoosePart"
ChoosePart.Parent = background_4
ChoosePart.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
ChoosePart.BorderSizePixel = 0
ChoosePart.Position = UDim2.new(0, 100, 0, 55)
ChoosePart.Size = UDim2.new(0, 75, 0, 30)
ChoosePart.Font = Enum.Font.SourceSans
ChoosePart.TextSize = 14
ChoosePart.Text = "Select Part"
ChoosePart.TextColor3 = Color3.new(1, 1, 1)
ChoosePart.ZIndex = 10
table.insert(shade2,ChoosePart)
table.insert(text1,ChoosePart)
CopyPath.Name = "CopyPath"
CopyPath.Parent = background_4
CopyPath.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
CopyPath.BorderSizePixel = 0
CopyPath.Position = UDim2.new(0, 185, 0, 55)
CopyPath.Size = UDim2.new(0, 75, 0, 30)
CopyPath.Font = Enum.Font.SourceSans
CopyPath.TextSize = 14
CopyPath.Text = "Copy Path"
CopyPath.TextColor3 = Color3.new(1, 1, 1)
CopyPath.ZIndex = 10
table.insert(shade2,CopyPath)
table.insert(text1,CopyPath)
Directions_3.Name = "Directions"
Directions_3.Parent = background_4
Directions_3.BackgroundTransparency = 1
Directions_3.BorderSizePixel = 0
Directions_3.Position = UDim2.new(0, 51, 0, 17)
Directions_3.Size = UDim2.new(0, 257, 0, 32)
Directions_3.Font = Enum.Font.SourceSans
Directions_3.TextSize = 14
Directions_3.Text = 'Click on a part and then click the "Select Part" button below to set it as a teleport location'
Directions_3.TextColor3 = Color3.new(1, 1, 1)
Directions_3.TextWrapped = true
Directions_3.TextYAlignment = Enum.TextYAlignment.Top
Directions_3.ZIndex = 10
table.insert(text1,Directions_3)
Path.Name = "Path"
Path.Parent = background_4
Path.BackgroundTransparency = 1
Path.BorderSizePixel = 0
Path.Position = UDim2.new(0, 0, 0, 94)
Path.Size = UDim2.new(0, 360, 0, 16)
Path.Font = Enum.Font.SourceSansItalic
Path.TextSize = 14
Path.Text = ""
Path.TextColor3 = Color3.new(1, 1, 1)
Path.TextScaled = true
Path.TextWrapped = true
Path.TextYAlignment = Enum.TextYAlignment.Top
Path.ZIndex = 10
table.insert(text1,Path)
shadow_4.Name = "shadow"
shadow_4.Parent = ToPartFrame
shadow_4.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
shadow_4.BorderSizePixel = 0
shadow_4.Size = UDim2.new(0, 360, 0, 20)
shadow_4.ZIndex = 10
table.insert(shade2,shadow_4)
PopupText_5.Name = "PopupText"
PopupText_5.Parent = shadow_4
PopupText_5.BackgroundTransparency = 1
PopupText_5.Size = UDim2.new(1, 0, 0.95, 0)
PopupText_5.ZIndex = 10
PopupText_5.Font = Enum.Font.SourceSans
PopupText_5.TextSize = 14
PopupText_5.Text = "Teleport to Part"
PopupText_5.TextColor3 = Color3.new(1, 1, 1)
PopupText_5.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
PopupText_5.TextStrokeTransparency = 0.5
PopupText_5.TextWrapped = true
table.insert(text1,PopupText_5)
Exit_4.Name = "Exit"
Exit_4.Parent = shadow_4
Exit_4.BackgroundTransparency = 1
Exit_4.Position = UDim2.new(1, -20, 0, 0)
Exit_4.Size = UDim2.new(0, 20, 0, 20)
Exit_4.Text = ""
Exit_4.ZIndex = 10
ExitImage_5.Parent = Exit_4
ExitImage_5.BackgroundColor3 = Color3.new(1, 1, 1)
ExitImage_5.BackgroundTransparency = 1
ExitImage_5.Position = UDim2.new(0, 5, 0, 5)
ExitImage_5.Size = UDim2.new(0, 10, 0, 10)
ExitImage_5.Image = getcustomasset("infiniteyield/assets/close.png")
ExitImage_5.ZIndex = 10
logs.Name = randomString()
logs.Parent = ScaledHolder
logs.Active = true
logs.BackgroundTransparency = 1
logs.Position = UDim2.new(0, 0, 1, 10)
logs.Size = UDim2.new(0, 338, 0, 20)
logs.ZIndex = 10
shadow.Name = "shadow"
shadow.Parent = logs
shadow.BackgroundColor3 = Color3.new(0.180392, 0.180392, 0.184314)
shadow.BorderSizePixel = 0
shadow.Position = UDim2.new(0, 0, 0.00999999978, 0)
shadow.Size = UDim2.new(0, 338, 0, 20)
shadow.ZIndex = 10
table.insert(shade2,shadow)
Hide.Name = "Hide"
Hide.Parent = shadow
Hide.BackgroundTransparency = 1
Hide.Position = UDim2.new(1, -40, 0, 0)
Hide.Size = UDim2.new(0, 20, 0, 20)
Hide.ZIndex = 10
Hide.Text = ""
ImageLabel.Parent = Hide
ImageLabel.BackgroundColor3 = Color3.new(1, 1, 1)
ImageLabel.BackgroundTransparency = 1
ImageLabel.Position = UDim2.new(0, 3, 0, 3)
ImageLabel.Size = UDim2.new(0, 14, 0, 14)
ImageLabel.Image = getcustomasset("infiniteyield/assets/minimize.png")
ImageLabel.ZIndex = 10
PopupText.Name = "PopupText"
PopupText.Parent = shadow
PopupText.BackgroundTransparency = 1
PopupText.Size = UDim2.new(1, 0, 0.949999988, 0)
PopupText.ZIndex = 10
PopupText.Font = Enum.Font.SourceSans
PopupText.FontSize = Enum.FontSize.Size14
PopupText.Text = "Logs"
PopupText.TextColor3 = Color3.new(1, 1, 1)
PopupText.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
PopupText.TextStrokeTransparency = 0.5
PopupText.TextWrapped = true
table.insert(text1,PopupText)
Exit.Name = "Exit"
Exit.Parent = shadow
Exit.BackgroundTransparency = 1
Exit.Position = UDim2.new(1, -20, 0, 0)
Exit.Size = UDim2.new(0, 20, 0, 20)
Exit.ZIndex = 10
Exit.Text = ""
ImageLabel_2.Parent = Exit
ImageLabel_2.BackgroundColor3 = Color3.new(1, 1, 1)
ImageLabel_2.BackgroundTransparency = 1
ImageLabel_2.Position = UDim2.new(0, 5, 0, 5)
ImageLabel_2.Size = UDim2.new(0, 10, 0, 10)
ImageLabel_2.Image = getcustomasset("infiniteyield/assets/close.png")
ImageLabel_2.ZIndex = 10
background.Name = "background"
background.Parent = logs
background.Active = true
background.BackgroundColor3 = Color3.new(0.141176, 0.141176, 0.145098)
background.BorderSizePixel = 0
background.ClipsDescendants = true
background.Position = UDim2.new(0, 0, 1, 0)
background.Size = UDim2.new(0, 338, 0, 245)
background.ZIndex = 10
chat.Name = "chat"
chat.Parent = background
chat.Active = true
chat.BackgroundColor3 = Color3.new(0.141176, 0.141176, 0.145098)
chat.BorderSizePixel = 0
chat.ClipsDescendants = true
chat.Size = UDim2.new(0, 338, 0, 245)
chat.ZIndex = 10
table.insert(shade1,chat)
Clear.Name = "Clear"
Clear.Parent = chat
Clear.BackgroundColor3 = Color3.new(0.180392, 0.180392, 0.184314)
Clear.BorderSizePixel = 0
Clear.Position = UDim2.new(0, 5, 0, 220)
Clear.Size = UDim2.new(0, 50, 0, 20)
Clear.ZIndex = 10
Clear.Font = Enum.Font.SourceSans
Clear.FontSize = Enum.FontSize.Size14
Clear.Text = "Clear"
Clear.TextColor3 = Color3.new(1, 1, 1)
table.insert(shade2,Clear)
table.insert(text1,Clear)
SaveChatlogs.Name = "SaveChatlogs"
SaveChatlogs.Parent = chat
SaveChatlogs.BackgroundColor3 = Color3.new(0.180392, 0.180392, 0.184314)
SaveChatlogs.BorderSizePixel = 0
SaveChatlogs.Position = UDim2.new(0, 258, 0, 220)
SaveChatlogs.Size = UDim2.new(0, 75, 0, 20)
SaveChatlogs.ZIndex = 10
SaveChatlogs.Font = Enum.Font.SourceSans
SaveChatlogs.FontSize = Enum.FontSize.Size14
SaveChatlogs.Text = "Save To .txt"
SaveChatlogs.TextColor3 = Color3.new(1, 1, 1)
table.insert(shade2,SaveChatlogs)
table.insert(text1,SaveChatlogs)
Toggle.Name = "Toggle"
Toggle.Parent = chat
Toggle.BackgroundColor3 = Color3.new(0.180392, 0.180392, 0.184314)
Toggle.BorderSizePixel = 0
Toggle.Position = UDim2.new(0, 60, 0, 220)
Toggle.Size = UDim2.new(0, 66, 0, 20)
Toggle.ZIndex = 10
Toggle.Font = Enum.Font.SourceSans
Toggle.FontSize = Enum.FontSize.Size14
Toggle.Text = "Disabled"
Toggle.TextColor3 = Color3.new(1, 1, 1)
table.insert(shade2,Toggle)
table.insert(text1,Toggle)
scroll_2.Name = "scroll"
scroll_2.Parent = chat
scroll_2.BackgroundColor3 = Color3.new(0.180392, 0.180392, 0.184314)
scroll_2.BorderSizePixel = 0
scroll_2.Position = UDim2.new(0, 5, 0, 25)
scroll_2.Size = UDim2.new(0, 328, 0, 190)
scroll_2.ZIndex = 10
scroll_2.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
scroll_2.CanvasSize = UDim2.new(0, 0, 0, 10)
scroll_2.ScrollBarThickness = 8
scroll_2.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
table.insert(scroll,scroll_2)
table.insert(shade2,scroll_2)
join.Name = "join"
join.Parent = background
join.Active = true
join.BackgroundColor3 = Color3.new(0.141176, 0.141176, 0.145098)
join.BorderSizePixel = 0
join.ClipsDescendants = true
join.Size = UDim2.new(0, 338, 0, 245)
join.Visible = false
join.ZIndex = 10
table.insert(shade1,join)
Toggle_2.Name = "Toggle"
Toggle_2.Parent = join
Toggle_2.BackgroundColor3 = Color3.new(0.180392, 0.180392, 0.184314)
Toggle_2.BorderSizePixel = 0
Toggle_2.Position = UDim2.new(0, 60, 0, 220)
Toggle_2.Size = UDim2.new(0, 66, 0, 20)
Toggle_2.ZIndex = 10
Toggle_2.Font = Enum.Font.SourceSans
Toggle_2.FontSize = Enum.FontSize.Size14
Toggle_2.Text = "Disabled"
Toggle_2.TextColor3 = Color3.new(1, 1, 1)
table.insert(shade2,Toggle_2)
table.insert(text1,Toggle_2)
Clear_2.Name = "Clear"
Clear_2.Parent = join
Clear_2.BackgroundColor3 = Color3.new(0.180392, 0.180392, 0.184314)
Clear_2.BorderSizePixel = 0
Clear_2.Position = UDim2.new(0, 5, 0, 220)
Clear_2.Size = UDim2.new(0, 50, 0, 20)
Clear_2.ZIndex = 10
Clear_2.Font = Enum.Font.SourceSans
Clear_2.FontSize = Enum.FontSize.Size14
Clear_2.Text = "Clear"
Clear_2.TextColor3 = Color3.new(1, 1, 1)
table.insert(shade2,Clear_2)
table.insert(text1,Clear_2)
scroll_3.Name = "scroll"
scroll_3.Parent = join
scroll_3.BackgroundColor3 = Color3.new(0.180392, 0.180392, 0.184314)
scroll_3.BorderSizePixel = 0
scroll_3.Position = UDim2.new(0, 5, 0, 25)
scroll_3.Size = UDim2.new(0, 328, 0, 190)
scroll_3.ZIndex = 10
scroll_3.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
scroll_3.CanvasSize = UDim2.new(0, 0, 0, 10)
scroll_3.ScrollBarThickness = 8
scroll_3.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
table.insert(scroll,scroll_3)
table.insert(shade2,scroll_3)
selectChat.Name = "selectChat"
selectChat.Parent = background
selectChat.BackgroundColor3 = Color3.new(0.180392, 0.180392, 0.184314)
selectChat.BorderSizePixel = 0
selectChat.Position = UDim2.new(0, 5, 0, 5)
selectChat.Size = UDim2.new(0, 164, 0, 20)
selectChat.ZIndex = 10
selectChat.Font = Enum.Font.SourceSans
selectChat.FontSize = Enum.FontSize.Size14
selectChat.Text = "Chat Logs"
selectChat.TextColor3 = Color3.new(1, 1, 1)
table.insert(shade2,selectChat)
table.insert(text1,selectChat)
selectJoin.Name = "selectJoin"
selectJoin.Parent = background
selectJoin.BackgroundColor3 = Color3.new(0.305882, 0.305882, 0.309804)
selectJoin.BorderSizePixel = 0
selectJoin.Position = UDim2.new(0, 169, 0, 5)
selectJoin.Size = UDim2.new(0, 164, 0, 20)
selectJoin.ZIndex = 10
selectJoin.Font = Enum.Font.SourceSans
selectJoin.FontSize = Enum.FontSize.Size14
selectJoin.Text = "Join Logs"
selectJoin.TextColor3 = Color3.new(1, 1, 1)
table.insert(shade3,selectJoin)
table.insert(text1,selectJoin)
function create(data)
local insts = {}
for i,v in pairs(data) do insts[v[1]] = Instance.new(v[2]) end
for _,v in pairs(data) do
for prop,val in pairs(v[3]) do
if type(val) == "table" then
insts[v[1]][prop] = insts[val[1]]
else
insts[v[1]][prop] = val
end
end
end
return insts[1]
end
ViewportTextBox = (function()
local funcs = {}
funcs.Update = function(self)
local cursorPos = self.TextBox.CursorPosition
local text = self.TextBox.Text
if text == "" then self.TextBox.Position = UDim2.new(0,2,0,0) return end
if cursorPos == -1 then return end
local cursorText = text:sub(1,cursorPos-1)
local pos = nil
local leftEnd = -self.TextBox.Position.X.Offset
local rightEnd = leftEnd + self.View.AbsoluteSize.X
local totalTextSize = TextService:GetTextSize(text,self.TextBox.TextSize,self.TextBox.Font,Vector2.new(999999999,100)).X
local cursorTextSize = TextService:GetTextSize(cursorText,self.TextBox.TextSize,self.TextBox.Font,Vector2.new(999999999,100)).X
if cursorTextSize > rightEnd then
pos = math.max(-2,cursorTextSize - self.View.AbsoluteSize.X + 2)
elseif cursorTextSize < leftEnd then
pos = math.max(-2,cursorTextSize-2)
elseif totalTextSize < rightEnd then
pos = math.max(-2,totalTextSize - self.View.AbsoluteSize.X + 2)
end
if pos then
self.TextBox.Position = UDim2.new(0,-pos,0,0)
self.TextBox.Size = UDim2.new(1,pos,1,0)
end
end
local mt = {}
mt.__index = funcs
local function convert(textbox)
local obj = setmetatable({OffsetX = 0, TextBox = textbox},mt)
local view = Instance.new("Frame")
view.BackgroundTransparency = textbox.BackgroundTransparency
view.BackgroundColor3 = textbox.BackgroundColor3
view.BorderSizePixel = textbox.BorderSizePixel
view.BorderColor3 = textbox.BorderColor3
view.Position = textbox.Position
view.Size = textbox.Size
view.ClipsDescendants = true
view.Name = textbox.Name
view.ZIndex = 10
textbox.BackgroundTransparency = 1
textbox.Position = UDim2.new(0,4,0,0)
textbox.Size = UDim2.new(1,-8,1,0)
textbox.TextXAlignment = Enum.TextXAlignment.Left
textbox.Name = "Input"
table.insert(text1,textbox)
table.insert(shade2,view)
obj.View = view
textbox.Changed:Connect(function(prop)
if prop == "Text" or prop == "CursorPosition" or prop == "AbsoluteSize" then
obj:Update()
end
end)
obj:Update()
view.Parent = textbox.Parent
textbox.Parent = view
return obj
end
return {convert = convert}
end)()
ViewportTextBox.convert(Cmdbar).View.ZIndex = 10
ViewportTextBox.convert(Cmdbar_2).View.ZIndex = 10
ViewportTextBox.convert(Cmdbar_3).View.ZIndex = 10
function writefileExploit()
if writefile then
return true
end
end
function readfileExploit()
if readfile then
return true
end
end
function isNumber(str)
if tonumber(str) ~= nil or str == "inf" then
return true
end
end
function vtype(o, t)
if o == nil then return false end
if type(o) == "userdata" then return typeof(o) == t end
return type(o) == t
end
function getRoot(char)
if char and char:FindFirstChildOfClass("Humanoid") then
return char:FindFirstChildOfClass("Humanoid").RootPart
else
return nil
end
end
function tools(plr)
if plr:FindFirstChildOfClass("Backpack"):FindFirstChildOfClass("Tool") or plr.Character:FindFirstChildOfClass("Tool") then
return true
end
end
function r15(plr)
if plr.Character:FindFirstChildOfClass("Humanoid").RigType == Enum.HumanoidRigType.R15 then
return true
end
end
function breakVelocity()
local V3 = Vector3.new(0, 0, 0)
for _, v in ipairs(Players.LocalPlayer.Character:GetDescendants()) do
if v:IsA("BasePart") then
v.Velocity, v.RotVelocity = V3, V3
end
end
end
function toClipboard(txt)
if everyClipboard then
everyClipboard(tostring(txt)) -- some executor errored without tostring btw so dont call me out for this
notify("Clipboard", "Copied to clipboard")
else
notify("Clipboard", "Your exploit doesn't have the ability to use the clipboard")
end
end
function chatMessage(str)
str = tostring(str)
if not isLegacyChat then
TextChatService.TextChannels.RBXGeneral:SendAsync(str)
else
ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer(str, "All")
end
end
function getHierarchy(obj)
local fullname
local period
if string.find(obj.Name,' ') then
fullname = '["'..obj.Name..'"]'
period = false
else
fullname = obj.Name
period = true
end
local getS = obj
local parent = obj
local service = ''
if getS.Parent ~= game then
repeat
getS = getS.Parent
service = getS.ClassName
until getS.Parent == game
end
if parent.Parent ~= getS then
repeat
parent = parent.Parent
if string.find(tostring(parent),' ') then
if period then
fullname = '["'..parent.Name..'"].'..fullname
else
fullname = '["'..parent.Name..'"]'..fullname
end
period = false
else
if period then
fullname = parent.Name..'.'..fullname
else
fullname = parent.Name..''..fullname
end
period = true
end
until parent.Parent == getS
elseif string.find(tostring(parent),' ') then
fullname = '["'..parent.Name..'"]'
period = false
end
if period then
return 'game:GetService("'..service..'").'..fullname
else
return 'game:GetService("'..service..'")'..fullname
end
end
AllWaypoints = {}
local cooldown = false
function writefileCooldown(name,data)
task.spawn(function()
if not cooldown then
cooldown = true
writefile(name, data, true)
else
repeat wait() until cooldown == false
writefileCooldown(name,data)
end
wait(3)
cooldown = false
end)
end
function dragGUI(gui)
task.spawn(function()
local dragging
local dragInput
local dragStart = Vector3.new(0,0,0)
local startPos
local function update(input)
local delta = input.Position - dragStart
local Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
TweenService:Create(gui, TweenInfo.new(.20), {Position = Position}):Play()
end
gui.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = gui.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
gui.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
end)
end
dragGUI(logs)
dragGUI(KeybindEditor)
dragGUI(PluginEditor)
dragGUI(ToPartFrame)
eventEditor = (function()
local events = {}
local function registerEvent(name,sets)
events[name] = {
commands = {},
sets = sets or {}
}
end
local onEdited = nil
local function fireEvent(name,...)
local args = {...}
local event = events[name]
if event then
for i,cmd in pairs(event.commands) do
local metCondition = true
for idx,set in pairs(event.sets) do
local argVal = args[idx]
local cmdSet = cmd[2][idx]
local condType = set.Type
if condType == "Player" then
if cmdSet == 0 then
metCondition = metCondition and (tostring(Players.LocalPlayer) == argVal)
elseif cmdSet ~= 1 then
metCondition = metCondition and table.find(getPlayer(cmdSet,Players.LocalPlayer),argVal)
end
elseif condType == "String" then
if cmdSet ~= 0 then
metCondition = metCondition and string.find(argVal:lower(),cmdSet:lower())
end
elseif condType == "Number" then
if cmdSet ~= 0 then
metCondition = metCondition and tonumber(argVal)<=tonumber(cmdSet)
end
end
if not metCondition then break end
end
if metCondition then
pcall(task.spawn(function()
local cmdStr = cmd[1]
for count,arg in pairs(args) do
cmdStr = cmdStr:gsub("%$"..count,arg)
end
wait(cmd[3] or 0)
execCmd(cmdStr)
end))
end
end
end
end
local main = create({
{1,"Frame",{BackgroundColor3=Color3.new(0.14117647707462,0.14117647707462,0.14509804546833),BackgroundTransparency=1,BorderSizePixel=0,Name="EventEditor",Position=UDim2.new(0.5,-175,0,-500),Size=UDim2.new(0,350,0,20),ZIndex=10,}},
{2,"Frame",{BackgroundColor3=currentShade2,BorderSizePixel=0,Name="TopBar",Parent={1},Size=UDim2.new(1,0,0,20),ZIndex=10,}},
{3,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Title",Parent={2},Position=UDim2.new(0,0,0,0),Size=UDim2.new(1,0,0.95,0),Text="Event Editor",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=Enum.TextXAlignment.Center,ZIndex=10,}},
{4,"TextButton",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Close",Parent={2},Position=UDim2.new(1,-20,0,0),Size=UDim2.new(0,20,0,20),Text="",TextColor3=Color3.new(1,1,1),TextSize=14,ZIndex=10,}},
{5,"ImageLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Image=getcustomasset("infiniteyield/assets/close.png"),Parent={4},Position=UDim2.new(0,5,0,5),Size=UDim2.new(0,10,0,10),ZIndex=10,}},
{6,"Frame",{BackgroundColor3=currentShade1,BorderSizePixel=0,Name="Content",Parent={1},Position=UDim2.new(0,0,0,20),Size=UDim2.new(1,0,0,202),ZIndex=10,}},
{7,"ScrollingFrame",{BackgroundColor3=Color3.new(0.14117647707462,0.14117647707462,0.14509804546833),BackgroundTransparency=1,BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),BorderSizePixel=0,BottomImage="rbxasset://textures/ui/Scroll/scroll-middle.png",CanvasSize=UDim2.new(0,0,0,100),Name="List",Parent={6},Position=UDim2.new(0,5,0,5),ScrollBarImageColor3=Color3.new(0.30588236451149,0.30588236451149,0.3098039329052),ScrollBarThickness=8,Size=UDim2.new(1,-10,1,-10),TopImage="rbxasset://textures/ui/Scroll/scroll-middle.png",ZIndex=10,}},
{8,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Holder",Parent={7},Size=UDim2.new(1,0,1,0),ZIndex=10,}},
{9,"UIListLayout",{Parent={8},SortOrder=2,}},
{10,"Frame",{BackgroundColor3=Color3.new(0.14117647707462,0.14117647707462,0.14509804546833),BackgroundTransparency=1,BorderColor3=Color3.new(0.3137255012989,0.3137255012989,0.3137255012989),BorderSizePixel=0,ClipsDescendants=true,Name="Settings",Parent={6},Position=UDim2.new(1,0,0,0),Size=UDim2.new(0,150,1,0),ZIndex=10,}},
{11,"Frame",{BackgroundColor3=Color3.new(0.14117647707462,0.14117647707462,0.14509804546833),Name="Slider",Parent={10},Position=UDim2.new(0,-150,0,0),Size=UDim2.new(1,0,1,0),ZIndex=10,}},
{12,"Frame",{BackgroundColor3=Color3.new(0.23529413342476,0.23529413342476,0.23529413342476),BorderColor3=Color3.new(0.3137255012989,0.3137255012989,0.3137255012989),BorderSizePixel=0,Name="Line",Parent={11},Size=UDim2.new(0,1,1,0),ZIndex=10,}},
{13,"ScrollingFrame",{BackgroundColor3=Color3.new(0.14117647707462,0.14117647707462,0.14509804546833),BackgroundTransparency=1,BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),BorderSizePixel=0,BottomImage="rbxasset://textures/ui/Scroll/scroll-middle.png",CanvasSize=UDim2.new(0,0,0,100),Name="List",Parent={11},Position=UDim2.new(0,0,0,25),ScrollBarImageColor3=Color3.new(0.30588236451149,0.30588236451149,0.3098039329052),ScrollBarThickness=8,Size=UDim2.new(1,0,1,-25),TopImage="rbxasset://textures/ui/Scroll/scroll-middle.png",ZIndex=10,}},
{14,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Holder",Parent={13},Size=UDim2.new(1,0,1,0),ZIndex=10,}},
{15,"UIListLayout",{Parent={14},SortOrder=2,}},
{16,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Title",Parent={11},Size=UDim2.new(1,0,0,20),Text="Event Settings",TextColor3=Color3.new(1,1,1),TextSize=14,ZIndex=10,}},
{17,"TextButton",{BackgroundColor3=Color3.new(0.14117647707462,0.14117647707462,0.14509804546833),BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),Font=3,Name="Close",BorderSizePixel=0,Parent={11},Position=UDim2.new(1,-20,0,0),Size=UDim2.new(0,20,0,20),Text="<",TextColor3=Color3.new(1,1,1),TextSize=18,ZIndex=10,}},
{18,"Folder",{Name="Templates",Parent={10},}},
{19,"Frame",{BackgroundColor3=Color3.new(0.19607844948769,0.19607844948769,0.19607844948769),BackgroundTransparency=1,BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),Name="Players",Parent={18},Position=UDim2.new(0,0,0,25),Size=UDim2.new(1,0,0,86),Visible=false,ZIndex=10,}},
{20,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Title",Parent={19},Size=UDim2.new(1,0,0,20),Text="Choose Players",TextColor3=Color3.new(1,1,1),TextSize=14,ZIndex=10,}},
{21,"TextLabel",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="Any",Parent={19},Position=UDim2.new(0,5,0,42),Size=UDim2.new(1,-10,0,20),Text="Any Player",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{22,"Frame",{BackgroundColor3=Color3.new(0.30588236451149,0.30588236451149,0.3098039329052),BorderSizePixel=0,Name="Button",Parent={21},Position=UDim2.new(1,-20,0,0),Size=UDim2.new(0,20,0,20),ZIndex=10,}},
{23,"TextButton",{BackgroundColor3=Color3.new(0.58823531866074,0.58823531866074,0.59215688705444),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="On",Parent={22},Position=UDim2.new(0,2,0,2),Size=UDim2.new(0,16,0,16),Text="",TextColor3=Color3.new(0,0,0),TextSize=14,ZIndex=10,}},
{24,"TextLabel",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="Me",Parent={19},Position=UDim2.new(0,5,0,20),Size=UDim2.new(1,-10,0,20),Text="Me Only",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{25,"Frame",{BackgroundColor3=Color3.new(0.30588236451149,0.30588236451149,0.3098039329052),BorderSizePixel=0,Name="Button",Parent={24},Position=UDim2.new(1,-20,0,0),Size=UDim2.new(0,20,0,20),ZIndex=10,}},
{26,"TextButton",{BackgroundColor3=Color3.new(0.58823531866074,0.58823531866074,0.59215688705444),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="On",Parent={25},Position=UDim2.new(0,2,0,2),Size=UDim2.new(0,16,0,16),Text="",TextColor3=Color3.new(0,0,0),TextSize=14,ZIndex=10,}},
{27,"TextBox",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),BorderSizePixel=0,ClearTextOnFocus=false,Font=3,Name="Custom",Parent={19},PlaceholderColor3=Color3.new(0.47058826684952,0.47058826684952,0.47058826684952),PlaceholderText="Custom Player Set",Position=UDim2.new(0,5,0,64),Size=UDim2.new(1,-35,0,20),Text="",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{28,"Frame",{BackgroundColor3=Color3.new(0.30588236451149,0.30588236451149,0.3098039329052),BorderSizePixel=0,Name="CustomButton",Parent={19},Position=UDim2.new(1,-25,0,64),Size=UDim2.new(0,20,0,20),ZIndex=10,}},
{29,"TextButton",{BackgroundColor3=Color3.new(0.58823531866074,0.58823531866074,0.59215688705444),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="On",Parent={28},Position=UDim2.new(0,2,0,2),Size=UDim2.new(0,16,0,16),Text="",TextColor3=Color3.new(0,0,0),TextSize=14,ZIndex=10,}},
{30,"Frame",{BackgroundColor3=Color3.new(0.19607844948769,0.19607844948769,0.19607844948769),BackgroundTransparency=1,BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),Name="Strings",Parent={18},Position=UDim2.new(0,0,0,25),Size=UDim2.new(1,0,0,64),Visible=false,ZIndex=10,}},
{31,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Title",Parent={30},Size=UDim2.new(1,0,0,20),Text="Choose String",TextColor3=Color3.new(1,1,1),TextSize=14,ZIndex=10,}},
{32,"TextLabel",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="Any",Parent={30},Position=UDim2.new(0,5,0,20),Size=UDim2.new(1,-10,0,20),Text="Any String",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{33,"Frame",{BackgroundColor3=Color3.new(0.30588236451149,0.30588236451149,0.3098039329052),BorderSizePixel=0,Name="Button",Parent={32},Position=UDim2.new(1,-20,0,0),Size=UDim2.new(0,20,0,20),ZIndex=10,}},
{34,"TextButton",{BackgroundColor3=Color3.new(0.58823531866074,0.58823531866074,0.59215688705444),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="On",Parent={33},Position=UDim2.new(0,2,0,2),Size=UDim2.new(0,16,0,16),Text="",TextColor3=Color3.new(0,0,0),TextSize=14,ZIndex=10,}},
{54,"Frame",{BackgroundColor3=Color3.new(0.19607844948769,0.19607844948769,0.19607844948769),BackgroundTransparency=1,BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),Name="Numbers",Parent={18},Position=UDim2.new(0,0,0,25),Size=UDim2.new(1,0,0,64),Visible=false,ZIndex=10,}},
{55,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Title",Parent={54},Size=UDim2.new(1,0,0,20),Text="Choose String",TextColor3=Color3.new(1,1,1),TextSize=14,ZIndex=10,}},
{56,"TextLabel",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="Any",Parent={54},Position=UDim2.new(0,5,0,20),Size=UDim2.new(1,-10,0,20),Text="Any Number",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{57,"Frame",{BackgroundColor3=Color3.new(0.30588236451149,0.30588236451149,0.3098039329052),BorderSizePixel=0,Name="Button",Parent={56},Position=UDim2.new(1,-20,0,0),Size=UDim2.new(0,20,0,20),ZIndex=10,}},
{58,"TextButton",{BackgroundColor3=Color3.new(0.58823531866074,0.58823531866074,0.59215688705444),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="On",Parent={57},Position=UDim2.new(0,2,0,2),Size=UDim2.new(0,16,0,16),Text="",TextColor3=Color3.new(0,0,0),TextSize=14,ZIndex=10,}},
{59,"TextBox",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),BorderSizePixel=0,ClearTextOnFocus=false,Font=3,Name="Custom",Parent={54},PlaceholderColor3=Color3.new(0.47058826684952,0.47058826684952,0.47058826684952),PlaceholderText="Number",Position=UDim2.new(0,5,0,42),Size=UDim2.new(1,-35,0,20),Text="",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{60,"Frame",{BackgroundColor3=Color3.new(0.30588236451149,0.30588236451149,0.3098039329052),BorderSizePixel=0,Name="CustomButton",Parent={54},Position=UDim2.new(1,-25,0,42),Size=UDim2.new(0,20,0,20),ZIndex=10,}},
{61,"TextButton",{BackgroundColor3=Color3.new(0.58823531866074,0.58823531866074,0.59215688705444),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="On",Parent={60},Position=UDim2.new(0,2,0,2),Size=UDim2.new(0,16,0,16),Text="",TextColor3=Color3.new(0,0,0),TextSize=14,ZIndex=10,}},
{35,"TextBox",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),BorderSizePixel=0,ClearTextOnFocus=false,Font=3,Name="Custom",Parent={30},PlaceholderColor3=Color3.new(0.47058826684952,0.47058826684952,0.47058826684952),PlaceholderText="Match String",Position=UDim2.new(0,5,0,42),Size=UDim2.new(1,-35,0,20),Text="",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{36,"Frame",{BackgroundColor3=Color3.new(0.30588236451149,0.30588236451149,0.3098039329052),BorderSizePixel=0,Name="CustomButton",Parent={30},Position=UDim2.new(1,-25,0,42),Size=UDim2.new(0,20,0,20),ZIndex=10,}},
{37,"TextButton",{BackgroundColor3=Color3.new(0.58823531866074,0.58823531866074,0.59215688705444),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="On",Parent={36},Position=UDim2.new(0,2,0,2),Size=UDim2.new(0,16,0,16),Text="",TextColor3=Color3.new(0,0,0),TextSize=14,ZIndex=10,}},
{38,"Frame",{BackgroundColor3=Color3.new(0.19607844948769,0.19607844948769,0.19607844948769),BackgroundTransparency=1,BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),Name="DelayEditor",Parent={18},Position=UDim2.new(0,0,0,25),Size=UDim2.new(1,0,0,24),Visible=false,ZIndex=10,}},
{39,"TextBox",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),BorderSizePixel=0,Font=3,Name="Secs",Parent={38},PlaceholderColor3=Color3.new(0.47058826684952,0.47058826684952,0.47058826684952),Position=UDim2.new(0,60,0,2),Size=UDim2.new(1,-65,0,20),Text="",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{40,"TextLabel",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Font=3,Name="Label",Parent={39},Position=UDim2.new(0,-55,0,0),Size=UDim2.new(1,0,1,0),Text="Delay (s):",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{41,"Frame",{BackgroundColor3=currentShade1,BorderSizePixel=0,ClipsDescendants=true,Name="EventTemplate",Parent={6},Size=UDim2.new(1,0,0,20),Visible=false,ZIndex=10,}},
{42,"TextButton",{BackgroundColor3=currentText1,BackgroundTransparency=1,Font=3,Name="Expand",Parent={41},Size=UDim2.new(0,20,0,20),Text=">",TextColor3=Color3.new(1,1,1),TextSize=18,ZIndex=10,}},
{43,"TextLabel",{BackgroundColor3=currentText1,BackgroundTransparency=1,Font=3,Name="EventName",Parent={41},Position=UDim2.new(0,25,0,0),Size=UDim2.new(1,-25,0,20),Text="OnSpawn",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{44,"Frame",{BackgroundColor3=Color3.new(0.19607844948769,0.19607844948769,0.19607844948769),BorderSizePixel=0,BackgroundTransparency=1,ClipsDescendants=true,Name="Cmds",Parent={41},Position=UDim2.new(0,0,0,20),Size=UDim2.new(1,0,1,-20),ZIndex=10,}},
{45,"Frame",{BackgroundColor3=Color3.new(0.14117647707462,0.14117647707462,0.14509804546833),BorderColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),Name="Add",Parent={44},Position=UDim2.new(0,0,1,-20),Size=UDim2.new(1,0,0,20),ZIndex=10,}},
{46,"TextBox",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,ClearTextOnFocus=false,Font=3,Parent={45},PlaceholderColor3=Color3.new(0.7843137383461,0.7843137383461,0.7843137383461),PlaceholderText="Add new command",Position=UDim2.new(0,5,0,0),Size=UDim2.new(1,-10,1,0),Text="",TextColor3=Color3.new(1,1,1),TextSize=14,TextXAlignment=0,ZIndex=10,}},
{47,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Holder",Parent={44},Size=UDim2.new(1,0,1,-20),ZIndex=10,}},
{48,"UIListLayout",{Parent={47},SortOrder=2,}},
{49,"Frame",{currentShade1,BorderSizePixel=0,ClipsDescendants=true,Name="CmdTemplate",Parent={6},Size=UDim2.new(1,0,0,20),Visible=false,ZIndex=10,}},
{50,"TextBox",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,ClearTextOnFocus=false,Font=3,Parent={49},PlaceholderColor3=Color3.new(1,1,1),Position=UDim2.new(0,5,0,0),Size=UDim2.new(1,-45,0,20),Text="a\\b\\c\\d",TextColor3=currentText1,TextSize=14,TextXAlignment=0,ZIndex=10,}},
{51,"TextButton",{BackgroundColor3=currentShade1,BorderSizePixel=0,Font=3,Name="Delete",Parent={49},Position=UDim2.new(1,-20,0,0),Size=UDim2.new(0,20,0,20),Text="X",TextColor3=Color3.new(1,1,1),TextSize=18,ZIndex=10,}},
{52,"TextButton",{BackgroundColor3=currentShade1,BorderSizePixel=0,Font=3,Name="Settings",Parent={49},Position=UDim2.new(1,-40,0,0),Size=UDim2.new(0,20,0,20),Text="",TextColor3=Color3.new(1,1,1),TextSize=18,ZIndex=10,}},
{53,"ImageLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Image=getcustomasset("infiniteyield/assets/settings.png"),Parent={52},Position=UDim2.new(0,2,0,2),Size=UDim2.new(0,16,0,16),ZIndex=10,}},
})
main.Name = randomString()
local mainFrame = main:WaitForChild("Content")
local eventList = mainFrame:WaitForChild("List")
local eventListHolder = eventList:WaitForChild("Holder")
local cmdTemplate = mainFrame:WaitForChild("CmdTemplate")
local eventTemplate = mainFrame:WaitForChild("EventTemplate")
local settingsFrame = mainFrame:WaitForChild("Settings"):WaitForChild("Slider")
local settingsTemplates = mainFrame.Settings:WaitForChild("Templates")
local settingsList = settingsFrame:WaitForChild("List"):WaitForChild("Holder")
table.insert(shade2,main.TopBar) table.insert(shade1,mainFrame) table.insert(shade2,eventTemplate)
table.insert(text1,eventTemplate.EventName) table.insert(shade1,eventTemplate.Cmds.Add) table.insert(shade1,cmdTemplate)
table.insert(text1,cmdTemplate.TextBox) table.insert(shade2,cmdTemplate.Delete) table.insert(shade2,cmdTemplate.Settings)
table.insert(scroll,mainFrame.List) table.insert(shade1,settingsFrame) table.insert(shade2,settingsFrame.Line)
table.insert(shade2,settingsFrame.Close) table.insert(scroll,settingsFrame.List) table.insert(shade2,settingsTemplates.DelayEditor.Secs)
table.insert(text1,settingsTemplates.DelayEditor.Secs) table.insert(text1,settingsTemplates.DelayEditor.Secs.Label) table.insert(text1,settingsTemplates.Players.Title)
table.insert(shade3,settingsTemplates.Players.CustomButton) table.insert(shade2,settingsTemplates.Players.Custom) table.insert(text1,settingsTemplates.Players.Custom)
table.insert(shade3,settingsTemplates.Players.Any.Button) table.insert(shade3,settingsTemplates.Players.Me.Button) table.insert(text1,settingsTemplates.Players.Any)
table.insert(text1,settingsTemplates.Players.Me) table.insert(text1,settingsTemplates.Strings.Title) table.insert(text1,settingsTemplates.Strings.Any)
table.insert(shade3,settingsTemplates.Strings.Any.Button) table.insert(shade3,settingsTemplates.Strings.CustomButton) table.insert(text1,settingsTemplates.Strings.Custom)
table.insert(shade2,settingsTemplates.Strings.Custom)
table.insert(text1,settingsTemplates.Players.Me) table.insert(text1,settingsTemplates.Numbers.Title) table.insert(text1,settingsTemplates.Numbers.Any)
table.insert(shade3,settingsTemplates.Numbers.Any.Button) table.insert(shade3,settingsTemplates.Numbers.CustomButton) table.insert(text1,settingsTemplates.Numbers.Custom)
table.insert(shade2,settingsTemplates.Numbers.Custom)
local tweenInf = TweenInfo.new(0.25,Enum.EasingStyle.Quart,Enum.EasingDirection.Out)
local currentlyEditingCmd = nil
settingsFrame:WaitForChild("Close").MouseButton1Click:Connect(function()
settingsFrame:TweenPosition(UDim2.new(0,-150,0,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
end)
local function resizeList()
local size = 0
for i,v in pairs(eventListHolder:GetChildren()) do
if v.Name == "EventTemplate" then
size = size + 20
if v.Expand.Rotation == 90 then
size = size + 20*(1+(#events[v.EventName:GetAttribute("RawName")].commands or 0))
end
end
end
TweenService:Create(eventList,tweenInf,{CanvasSize = UDim2.new(0,0,0,size)}):Play()
if size > eventList.AbsoluteSize.Y then
eventListHolder.Size = UDim2.new(1,-8,1,0)
else
eventListHolder.Size = UDim2.new(1,0,1,0)
end
end
local function resizeSettingsList()
local size = 0
for i,v in pairs(settingsList:GetChildren()) do
if v:IsA("Frame") then
size = size + v.AbsoluteSize.Y
end
end
settingsList.Parent.CanvasSize = UDim2.new(0,0,0,size)
if size > settingsList.Parent.AbsoluteSize.Y then
settingsList.Size = UDim2.new(1,-8,1,0)
else
settingsList.Size = UDim2.new(1,0,1,0)
end
end
local function setupCheckbox(button,callback)
local enabled = button.On.BackgroundTransparency == 0
local function update()
button.On.BackgroundTransparency = (enabled and 0 or 1)
end
button.On.MouseButton1Click:Connect(function()
enabled = not enabled
update()
if callback then callback(enabled) end
end)
return {
Toggle = function(nocall) enabled = not enabled update() if not nocall and callback then callback(enabled) end end,
Enable = function(nocall) if enabled then return end enabled = true update()if not nocall and callback then callback(enabled) end end,
Disable = function(nocall) if not enabled then return end enabled = false update()if not nocall and callback then callback(enabled) end end,
IsEnabled = function() return enabled end
}
end
local function openSettingsEditor(event,cmd)
currentlyEditingCmd = cmd
for i,v in pairs(settingsList:GetChildren()) do if v:IsA("Frame") then v:Destroy() end end
local delayEditor = settingsTemplates.DelayEditor:Clone()
delayEditor.Secs.FocusLost:Connect(function()
cmd[3] = tonumber(delayEditor.Secs.Text) or 0
delayEditor.Secs.Text = cmd[3]
if onEdited then onEdited() end
end)
delayEditor.Secs.Text = cmd[3]
delayEditor.Visible = true
table.insert(shade2,delayEditor.Secs)
table.insert(text1,delayEditor.Secs)
table.insert(text1,delayEditor.Secs.Label)
delayEditor.Parent = settingsList
for i,v in pairs(event.sets) do
if v.Type == "Player" then
local template = settingsTemplates.Players:Clone()
template.Title.Text = v.Name or "Player"
local me,any,custom
me = setupCheckbox(template.Me.Button,function(on)
if not on then return end
any.Disable()
custom.Disable()
cmd[2][i] = 0
if onEdited then onEdited() end
end)
any = setupCheckbox(template.Any.Button,function(on)
if not on then return end
me.Disable()
custom.Disable()
cmd[2][i] = 1
if onEdited then onEdited() end
end)
local customTextBox = template.Custom
custom = setupCheckbox(template.CustomButton,function(on)
if not on then return end
me.Disable()
any.Disable()
cmd[2][i] = customTextBox.Text
if onEdited then onEdited() end
end)
ViewportTextBox.convert(customTextBox)
customTextBox.FocusLost:Connect(function()
if custom:IsEnabled() then
cmd[2][i] = customTextBox.Text
if onEdited then onEdited() end
end
end)
local cVal = cmd[2][i]
if cVal == 0 then
me:Enable()
elseif cVal == 1 then
any:Enable()
else
custom:Enable()
customTextBox.Text = cVal
end
template.Visible = true
table.insert(text1,template.Title)
table.insert(shade3,template.CustomButton)
table.insert(shade3,template.Any.Button)
table.insert(shade3,template.Me.Button)
table.insert(text1,template.Any)
table.insert(text1,template.Me)
template.Parent = settingsList
elseif v.Type == "String" then
local template = settingsTemplates.Strings:Clone()
template.Title.Text = v.Name or "String"
local any,custom
any = setupCheckbox(template.Any.Button,function(on)
if not on then return end
custom.Disable()
cmd[2][i] = 0
if onEdited then onEdited() end
end)
local customTextBox = template.Custom
custom = setupCheckbox(template.CustomButton,function(on)
if not on then return end
any.Disable()
cmd[2][i] = customTextBox.Text
if onEdited then onEdited() end
end)
ViewportTextBox.convert(customTextBox)
customTextBox.FocusLost:Connect(function()
if custom:IsEnabled() then
cmd[2][i] = customTextBox.Text
if onEdited then onEdited() end
end
end)
local cVal = cmd[2][i]
if cVal == 0 then
any:Enable()
else
custom:Enable()
customTextBox.Text = cVal
end
template.Visible = true
table.insert(text1,template.Title)
table.insert(text1,template.Any)
table.insert(shade3,template.Any.Button)
table.insert(shade3,template.CustomButton)
template.Parent = settingsList
elseif v.Type == "Number" then
local template = settingsTemplates.Numbers:Clone()
template.Title.Text = v.Name or "Number"
local any,custom
any = setupCheckbox(template.Any.Button,function(on)
if not on then return end
custom.Disable()
cmd[2][i] = 0
if onEdited then onEdited() end
end)
local customTextBox = template.Custom
custom = setupCheckbox(template.CustomButton,function(on)
if not on then return end
any.Disable()
cmd[2][i] = customTextBox.Text
if onEdited then onEdited() end
end)
ViewportTextBox.convert(customTextBox)
customTextBox.FocusLost:Connect(function()
cmd[2][i] = tonumber(customTextBox.Text) or 0
customTextBox.Text = cmd[2][i]
if custom:IsEnabled() then
if onEdited then onEdited() end
end
end)
local cVal = cmd[2][i]
if cVal == 0 then
any:Enable()
else
custom:Enable()
customTextBox.Text = cVal
end
template.Visible = true
table.insert(text1,template.Title)
table.insert(text1,template.Any)
table.insert(shade3,template.Any.Button)
table.insert(shade3,template.CustomButton)
template.Parent = settingsList
end
end
resizeSettingsList()
settingsFrame:TweenPosition(UDim2.new(0,0,0,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
end
local function defaultSettings(ev)
local res = {}
for i,v in pairs(ev.sets) do
if v.Type == "Player" then
res[#res+1] = v.Default or 0
elseif v.Type == "String" then
res[#res+1] = v.Default or 0
elseif v.Type == "Number" then
res[#res+1] = v.Default or 0
end
end
return res
end
local function refreshList()
for i,v in pairs(eventListHolder:GetChildren()) do if v:IsA("Frame") then v:Destroy() end end
for name,event in pairs(events) do
local eventF = eventTemplate:Clone()
eventF.EventName.Text = name
eventF.Visible = true
eventF.EventName:SetAttribute("RawName", name)
table.insert(shade2,eventF)
table.insert(text1,eventF.EventName)
table.insert(shade1,eventF.Cmds.Add)
local expanded = false
eventF.Expand.MouseButton1Down:Connect(function()
expanded = not expanded
eventF:TweenSize(UDim2.new(1,0,0,20 + (expanded and 20*#eventF.Cmds.Holder:GetChildren() or 0)),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
eventF.Expand.Rotation = expanded and 90 or 0
resizeList()
end)
local function refreshCommands()
for i,v in pairs(eventF.Cmds.Holder:GetChildren()) do
if v.Name == "CmdTemplate" then
v:Destroy()
end
end
eventF.EventName.Text = name..(#event.commands > 0 and " ("..#event.commands..")" or "")
for i,cmd in pairs(event.commands) do
local cmdF = cmdTemplate:Clone()
local cmdTextBox = cmdF.TextBox
ViewportTextBox.convert(cmdTextBox)
cmdTextBox.Text = cmd[1]
cmdF.Visible = true
table.insert(shade1,cmdF)
table.insert(shade2,cmdF.Delete)
table.insert(shade2,cmdF.Settings)
cmdTextBox.FocusLost:Connect(function()
event.commands[i] = {cmdTextBox.Text,cmd[2],cmd[3]}
if onEdited then onEdited() end
end)
cmdF.Settings.MouseButton1Click:Connect(function()
openSettingsEditor(event,cmd)
end)
cmdF.Delete.MouseButton1Click:Connect(function()
table.remove(event.commands,i)
refreshCommands()
resizeList()
if currentlyEditingCmd == cmd then
settingsFrame:TweenPosition(UDim2.new(0,-150,0,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
end
if onEdited then onEdited() end
end)
cmdF.Parent = eventF.Cmds.Holder
end
eventF:TweenSize(UDim2.new(1,0,0,20 + (expanded and 20*#eventF.Cmds.Holder:GetChildren() or 0)),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
end
local newBox = eventF.Cmds.Add.TextBox
ViewportTextBox.convert(newBox)
newBox.FocusLost:Connect(function(enter)
if enter then
event.commands[#event.commands+1] = {newBox.Text,defaultSettings(event),0}
newBox.Text = ""
refreshCommands()
resizeList()
if onEdited then onEdited() end
end
end)
--eventF:GetPropertyChangedSignal("AbsoluteSize"):Connect(resizeList)
eventF.Parent = eventListHolder
refreshCommands()
end
resizeList()
end
local function saveData()
local result = {}
for i,v in pairs(events) do
result[i] = v.commands
end
return HttpService:JSONEncode(result)
end
local function loadData(str)
local data = HttpService:JSONDecode(str)
for i,v in pairs(data) do
if events[i] then
events[i].commands = v
end
end
end
local function addCmd(event,data)
table.insert(events[event].commands,data)
end
local function setOnEdited(f)
if type(f) == "function" then
onEdited = f
end
end
main.TopBar.Close.MouseButton1Click:Connect(function()
main:TweenPosition(UDim2.new(0.5,-175,0,-500), "InOut", "Quart", 0.5, true, nil)
end)
dragGUI(main)
main.Parent = ScaledHolder
return {
RegisterEvent = registerEvent,
FireEvent = fireEvent,
Refresh = refreshList,
SaveData = saveData,
LoadData = loadData,
AddCmd = addCmd,
Frame = main,
SetOnEdited = setOnEdited
}
end)()
reference = (function()
local main = create({
{1,"Frame",{BackgroundColor3=Color3.new(0.14117647707462,0.14117647707462,0.14509804546833),BackgroundTransparency=1,BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),BorderSizePixel=0,Name="Main",Position=UDim2.new(0.5,-250,0,-500),Size=UDim2.new(0,500,0,20),ZIndex=10,}},
{2,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderSizePixel=0,Name="TopBar",Parent={1},Size=UDim2.new(1,0,0,20),ZIndex=10,}},
{3,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Title",Parent={2},Size=UDim2.new(1,0,0.94999998807907,0),Text="Reference",TextColor3=Color3.new(1,1,1),TextSize=14,ZIndex=10,}},
{4,"TextButton",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Close",Parent={2},Position=UDim2.new(1,-20,0,0),Size=UDim2.new(0,20,0,20),Text="",TextColor3=Color3.new(1,1,1),TextSize=14,ZIndex=10,}},
{5,"ImageLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Image=getcustomasset("infiniteyield/assets/close.png"),Parent={4},Position=UDim2.new(0,5,0,5),Size=UDim2.new(0,10,0,10),ZIndex=10,}},
{6,"Frame",{BackgroundColor3=Color3.new(0.14117647707462,0.14117647707462,0.14509804546833),BorderSizePixel=0,Name="Content",Parent={1},Position=UDim2.new(0,0,0,20),Size=UDim2.new(1,0,0,300),ZIndex=10,}},
{7,"ScrollingFrame",{BackgroundColor3=Color3.new(0.14117647707462,0.14117647707462,0.14509804546833),BackgroundTransparency=1,BorderColor3=Color3.new(0.15686275064945,0.15686275064945,0.15686275064945),BorderSizePixel=0,BottomImage="rbxasset://textures/ui/Scroll/scroll-middle.png",CanvasSize=UDim2.new(0,0,0,1313),Name="List",Parent={6},ScrollBarImageColor3=Color3.new(0.30588236451149,0.30588236451149,0.3098039329052),ScrollBarThickness=8,Size=UDim2.new(1,0,1,0),TopImage="rbxasset://textures/ui/Scroll/scroll-middle.png",VerticalScrollBarInset=2,ZIndex=10,}},
{8,"UIListLayout",{Parent={7},SortOrder=2,}},
{9,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Section",Parent={7},Size=UDim2.new(1,0,0,429),ZIndex=10,}},
{10,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Header",Parent={9},Position=UDim2.new(0,8,0,5),Size=UDim2.new(1,-8,0,20),Text="Special Player Cases",TextColor3=Color3.new(1,1,1),TextSize=20,TextXAlignment=0,ZIndex=10,}},
{11,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={9},Position=UDim2.new(0,8,0,25),Size=UDim2.new(1,-8,0,20),Text="These keywords can be used to quickly select groups of players in commands:",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{12,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderSizePixel=0,Name="Line",Parent={9},Position=UDim2.new(0,10,1,-1),Size=UDim2.new(1,-20,0,1),ZIndex=10,}},
{13,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Cases",Parent={9},Position=UDim2.new(0,8,0,55),Size=UDim2.new(1,-16,0,342),ZIndex=10,}},
{14,"UIListLayout",{Parent={13},SortOrder=2,}},
{15,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,LayoutOrder=-4,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{16,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={15},Size=UDim2.new(1,0,1,0),Text="all",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{17,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={15},Position=UDim2.new(0,15,0,0),Size=UDim2.new(1,0,1,0),Text="- includes everyone",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{18,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,LayoutOrder=-3,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{19,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={18},Size=UDim2.new(1,0,1,0),Text="others",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{20,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={18},Position=UDim2.new(0,37,0,0),Size=UDim2.new(1,0,1,0),Text="- includes everyone except you",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{21,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,LayoutOrder=-2,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{22,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={21},Size=UDim2.new(1,0,1,0),Text="me",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{23,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={21},Position=UDim2.new(0,19,0,0),Size=UDim2.new(1,0,1,0),Text="- includes your player only",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{24,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{25,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={24},Size=UDim2.new(1,0,1,0),Text="#[number]",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{26,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={24},Position=UDim2.new(0,59,0,0),Size=UDim2.new(1,0,1,0),Text="- gets a specified amount of random players",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{27,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{28,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={27},Size=UDim2.new(1,0,1,0),Text="random",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{29,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={27},Position=UDim2.new(0,44,0,0),Size=UDim2.new(1,0,1,0),Text="- affects a random player",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{30,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{31,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={30},Size=UDim2.new(1,0,1,0),Text="%[team name]",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{32,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={30},Position=UDim2.new(0,78,0,0),Size=UDim2.new(1,0,1,0),Text="- includes everyone on a given team",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{33,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{34,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={33},Size=UDim2.new(1,0,1,0),Text="allies / team",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{35,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={33},Position=UDim2.new(0,63,0,0),Size=UDim2.new(1,0,1,0),Text="- players who are on your team",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{36,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{37,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={36},Size=UDim2.new(1,0,1,0),Text="enemies / nonteam",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{38,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={36},Position=UDim2.new(0,101,0,0),Size=UDim2.new(1,0,1,0),Text="- players who are not on your team",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{39,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{40,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={39},Size=UDim2.new(1,0,1,0),Text="friends",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{41,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={39},Position=UDim2.new(0,40,0,0),Size=UDim2.new(1,0,1,0),Text="- anyone who is friends with you",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{42,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{43,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={42},Size=UDim2.new(1,0,1,0),Text="nonfriends",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{44,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={42},Position=UDim2.new(0,61,0,0),Size=UDim2.new(1,0,1,0),Text="- anyone who is not friends with you",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{45,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{46,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={45},Size=UDim2.new(1,0,1,0),Text="guests",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{47,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={45},Position=UDim2.new(0,36,0,0),Size=UDim2.new(1,0,1,0),Text="- guest players (obsolete)",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{48,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{49,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={48},Size=UDim2.new(1,0,1,0),Text="bacons",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{50,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={48},Position=UDim2.new(0,40,0,0),Size=UDim2.new(1,0,1,0),Text="- anyone with the \"bacon\" or pal hair",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{51,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{52,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={51},Size=UDim2.new(1,0,1,0),Text="age[number]",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{53,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={51},Position=UDim2.new(0,71,0,0),Size=UDim2.new(1,0,1,0),Text="- includes anyone below or at the given age",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{54,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{55,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={54},Size=UDim2.new(1,0,1,0),Text="rad[number]",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{56,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={54},Position=UDim2.new(0,70,0,0),Size=UDim2.new(1,0,1,0),Text="- includes anyone within the given radius",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{57,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{58,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={57},Size=UDim2.new(1,0,1,0),Text="nearest",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{59,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={57},Position=UDim2.new(0,43,0,0),Size=UDim2.new(1,0,1,0),Text="- gets the closest player to you",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{60,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{61,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={60},Size=UDim2.new(1,0,1,0),Text="farthest",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{62,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={60},Position=UDim2.new(0,46,0,0),Size=UDim2.new(1,0,1,0),Text="- gets the farthest player from you",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{63,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{64,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={63},Size=UDim2.new(1,0,1,0),Text="group[ID]",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{65,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={63},Position=UDim2.new(0,55,0,0),Size=UDim2.new(1,0,1,0),Text="- gets players who are in a certain group",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{66,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{67,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={66},Size=UDim2.new(1,0,1,0),Text="alive",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{68,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={66},Position=UDim2.new(0,27,0,0),Size=UDim2.new(1,0,1,0),Text="- gets players who are alive",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{69,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{70,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={69},Size=UDim2.new(1,0,1,0),Text="dead",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{71,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={69},Position=UDim2.new(0,29,0,0),Size=UDim2.new(1,0,1,0),Text="- gets players who are dead",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{72,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BackgroundTransparency=1,BorderSizePixel=0,LayoutOrder=-1,Name="Case",Parent={13},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,0,0,18),ZIndex=10,}},
{73,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="CaseName",Parent={72},Size=UDim2.new(1,0,1,0),Text="@username",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{74,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="CaseDesc",Parent={72},Position=UDim2.new(0,66,0,0),Size=UDim2.new(1,0,1,0),Text="- searches for players by username only (ignores displaynames)",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{75,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Section",Parent={7},Size=UDim2.new(1,0,0,180),ZIndex=10,}},
{76,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Header",Parent={75},Position=UDim2.new(0,8,0,5),Size=UDim2.new(1,-8,0,20),Text="Various Operators",TextColor3=Color3.new(1,1,1),TextSize=20,TextXAlignment=0,ZIndex=10,}},
{77,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderSizePixel=0,Name="Line",Parent={75},Position=UDim2.new(0,10,1,-1),Size=UDim2.new(1,-20,0,1),ZIndex=10,}},
{78,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Text",Parent={75},Position=UDim2.new(0,8,0,30),Size=UDim2.new(1,-8,0,16),Text="Use commas to separate multiple expressions:",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{79,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Text",Parent={75},Position=UDim2.new(0,8,0,75),Size=UDim2.new(1,-8,0,16),Text="Use - to exclude, and + to include players in your expression:",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{80,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={75},Position=UDim2.new(0,8,0,91),Size=UDim2.new(1,-8,0,16),Text=";locate %blue-friends (gets players in blue team who aren't your friends)",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{81,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={75},Position=UDim2.new(0,8,0,46),Size=UDim2.new(1,-8,0,16),Text=";locate noob,noob2,bob",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{82,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Text",Parent={75},Position=UDim2.new(0,8,0,120),Size=UDim2.new(1,-8,0,16),Text="Put ! before a command to run it with the last arguments it was ran with:",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{83,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={75},Position=UDim2.new(0,8,0,136),Size=UDim2.new(1,-8,0,32),Text="After running ;offset 0 100 0, you can run !offset anytime to repeat that command with the same arguments that were used to run it last time",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{84,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Section",Parent={7},Size=UDim2.new(1,0,0,154),ZIndex=10,}},
{85,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Header",Parent={84},Position=UDim2.new(0,8,0,5),Size=UDim2.new(1,-8,0,20),Text="Command Looping",TextColor3=Color3.new(1,1,1),TextSize=20,TextXAlignment=0,ZIndex=10,}},
{86,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Text",Parent={84},Position=UDim2.new(0,8,0,30),Size=UDim2.new(1,-8,0,20),Text="Form: [How many times it loops]^[delay (optional)]^[command]",TextColor3=Color3.new(1,1,1),TextSize=15,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{87,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderSizePixel=0,Name="Line",Parent={84},Position=UDim2.new(0,10,1,-1),Size=UDim2.new(1,-20,0,1),ZIndex=10,}},
{88,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={84},Position=UDim2.new(0,8,0,50),Size=UDim2.new(1,-8,0,20),Text="Use the 'breakloops' command to stop all running loops.",TextColor3=Color3.new(1,1,1),TextSize=15,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{89,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Text",Parent={84},Position=UDim2.new(0,8,0,80),Size=UDim2.new(1,-8,0,16),Text="Examples:",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{90,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={84},Position=UDim2.new(0,8,0,98),Size=UDim2.new(1,-8,0,42),Text=";5^btools - gives you 5 sets of btools\n;10^3^drophats - drops your hats every 3 seconds 10 times\n;inf^0.1^animspeed 100 - infinitely loops your animation speed to 100",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{91,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Section",Parent={7},Size=UDim2.new(1,0,0,120),ZIndex=10,}},
{92,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Header",Parent={91},Position=UDim2.new(0,8,0,5),Size=UDim2.new(1,-8,0,20),Text="Execute Multiple Commands at Once",TextColor3=Color3.new(1,1,1),TextSize=20,TextXAlignment=0,ZIndex=10,}},
{93,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Text",Parent={91},Position=UDim2.new(0,8,0,30),Size=UDim2.new(1,-8,0,20),Text="You can execute multiple commands at once using \"\\\"",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{94,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderSizePixel=0,Name="Line",Parent={91},Position=UDim2.new(0,10,1,-1),Size=UDim2.new(1,-20,0,1),ZIndex=10,}},
{95,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Text",Parent={91},Position=UDim2.new(0,8,0,60),Size=UDim2.new(1,-8,0,16),Text="Examples:",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{96,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={91},Position=UDim2.new(0,8,0,78),Size=UDim2.new(1,-8,0,32),Text=";drophats\\respawn - drops your hats and respawns you\n;enable inventory\\enable playerlist\\refresh - enables those coregui items and refreshes you",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{97,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Section",Parent={7},Size=UDim2.new(1,0,0,75),ZIndex=10,}},
{98,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Header",Parent={97},Position=UDim2.new(0,8,0,5),Size=UDim2.new(1,-8,0,20),Text="Browse Command History",TextColor3=Color3.new(1,1,1),TextSize=20,TextXAlignment=0,ZIndex=10,}},
{99,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={97},Position=UDim2.new(0,8,0,30),Size=UDim2.new(1,-8,0,32),Text="While focused on the command bar, you can use the up and down arrow keys to browse recently used commands",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{100,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderSizePixel=0,Name="Line",Parent={97},Position=UDim2.new(0,10,1,-1),Size=UDim2.new(1,-20,0,1),ZIndex=10,}},
{101,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Section",Parent={7},Size=UDim2.new(1,0,0,75),ZIndex=10,}},
{102,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Header",Parent={101},Position=UDim2.new(0,8,0,5),Size=UDim2.new(1,-8,0,20),Text="Autocomplete in the Command Bar",TextColor3=Color3.new(1,1,1),TextSize=20,TextXAlignment=0,ZIndex=10,}},
{103,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={101},Position=UDim2.new(0,8,0,30),Size=UDim2.new(1,-8,0,32),Text="While focused on the command bar, you can use the tab key to insert the top suggested command into the command bar.",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{104,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderSizePixel=0,Name="Line",Parent={101},Position=UDim2.new(0,10,1,-1),Size=UDim2.new(1,-20,0,1),ZIndex=10,}},
{105,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Section",Parent={7},Size=UDim2.new(1,0,0,175),ZIndex=10,}},
{106,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Header",Parent={105},Position=UDim2.new(0,8,0,5),Size=UDim2.new(1,-8,0,20),Text="Using Event Binds",TextColor3=Color3.new(1,1,1),TextSize=20,TextXAlignment=0,ZIndex=10,}},
{107,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={105},Position=UDim2.new(0,8,0,30),Size=UDim2.new(1,-8,0,32),Text="Use event binds to set up commands that get executed when certain events happen. You can edit the conditions for an event command to run (such as which player triggers it).",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{108,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderSizePixel=0,Name="Line",Parent={105},Position=UDim2.new(0,10,1,-1),Size=UDim2.new(1,-20,0,1),ZIndex=10,}},
{109,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={105},Position=UDim2.new(0,8,0,70),Size=UDim2.new(1,-8,0,48),Text="Some events may send arguments; you can use them in your event command by using $ followed by the argument number ($1, $2, etc). You can find out the order and types of these arguments by looking at the settings of the event command.",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{110,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Text",Parent={105},Position=UDim2.new(0,8,0,130),Size=UDim2.new(1,-8,0,16),Text="Example:",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{111,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={105},Position=UDim2.new(0,8,0,148),Size=UDim2.new(1,-8,0,16),Text="Setting up 'goto $1' on the OnChatted event will teleport you to any player that chats.",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,TextYAlignment=0,ZIndex=10,}},
{112,"Frame",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Name="Section",Parent={7},Size=UDim2.new(1,0,0,105),ZIndex=10,}},
{113,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=4,Name="Header",Parent={112},Position=UDim2.new(0,8,0,5),Size=UDim2.new(1,-8,0,20),Text="Get Further Help",TextColor3=Color3.new(1,1,1),TextSize=20,TextXAlignment=0,ZIndex=10,}},
{114,"TextLabel",{BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,Font=3,Name="Text",Parent={112},Position=UDim2.new(0,8,0,30),Size=UDim2.new(1,-8,0,32),Text="You can join the Discord server to get support with IY, and read up on more documentation such as the Plugin API.",TextColor3=Color3.new(1,1,1),TextSize=14,TextWrapped=true,TextXAlignment=0,ZIndex=10,}},
{115,"Frame",{BackgroundColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),BorderSizePixel=0,Name="Line",Parent={112},Position=UDim2.new(0,10,1,-1),Size=UDim2.new(1,-20,0,1),Visible=false,ZIndex=10,}},
{116,"TextButton",{BackgroundColor3=Color3.new(0.48627451062202,0.61960786581039,0.85098040103912),BorderColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),Font=4,Name="InviteButton",Parent={112},Position=UDim2.new(0,5,0,75),Size=UDim2.new(1,-10,0,25),Text="Copy Discord Invite Link (https://discord.gg/78ZuWSq)",TextColor3=Color3.new(0.1803921610117,0.1803921610117,0.1843137294054),TextSize=16,ZIndex=10,}},
})
for i,v in pairs(main.Content.List:GetDescendants()) do
if v:IsA("TextLabel") then
table.insert(text1,v)
end
end
table.insert(scroll,main.Content.List)
table.insert(shade1,main.Content)
table.insert(shade2,main.TopBar)
main.Name = randomString()
main.TopBar.Close.MouseButton1Click:Connect(function()
main:TweenPosition(UDim2.new(0.5,-250,0,-500), "InOut", "Quart", 0.5, true, nil)
end)
local inviteButton = main:FindFirstChild("InviteButton",true)
local lastPress = nil
inviteButton.MouseButton1Click:Connect(function()
if everyClipboard then
toClipboard("https://discord.gg/78ZuWSq")
inviteButton.Text = "Copied"
else
inviteButton.Text = "No Clipboard Function, type out the link"
end
local pressTime = tick()
lastPress = pressTime
wait(2)
if lastPress ~= pressTime then return end
inviteButton.Text = "Copy Discord Invite Link (https://discord.gg/78ZuWSq)"
end)
dragGUI(main)
main.Parent = ScaledHolder
ReferenceButton.MouseButton1Click:Connect(function()
main:TweenPosition(UDim2.new(0.5,-250,0.5,-150), "InOut", "Quart", 0.5, true, nil)
end)
end)()
currentShade1 = Color3.fromRGB(8, 8, 14)
currentShade2 = Color3.fromRGB(15, 15, 28)
currentShade3 = Color3.fromRGB(30, 30, 55)
currentText1 = Color3.new(1, 1, 1)
currentText2 = Color3.new(0, 0, 0)
currentScroll = Color3.fromRGB(50, 100, 255)
defaultGuiScale = IsOnMobile and 0.9 or 1
defaultsettings = {
prefix = ';';
StayOpen = false;
guiScale = defaultGuiScale;
espTransparency = 0.3;
keepIY = true;
logsEnabled = false;
jLogsEnabled = false;
aliases = {};
binds = {};
WayPoints = {};
PluginsTable = {};
currentShade1 = {currentShade1.R,currentShade1.G,currentShade1.B};
currentShade2 = {currentShade2.R,currentShade2.G,currentShade2.B};
currentShade3 = {currentShade3.R,currentShade3.G,currentShade3.B};
currentText1 = {currentText1.R,currentText1.G,currentText1.B};
currentText2 = {currentText2.R,currentText2.G,currentText2.B};
currentScroll = {currentScroll.R,currentScroll.G,currentScroll.B};
eventBinds = eventEditor.SaveData()
}
defaults = HttpService:JSONEncode(defaultsettings)
nosaves = false
useFactorySettings = function()
prefix = ';'
StayOpen = false
guiScale = defaultGuiScale
KeepInfYield = true
espTransparency = 0.3
logsEnabled = false
jLogsEnabled = false
logsWebhook = nil
aliases = {}
binds = {}
WayPoints = {}
PluginsTable = {}
end
function createPopup(title, text)
local Popup = Instance.new("Frame")
local background = Instance.new("Frame")
local Directions = Instance.new("TextLabel")
local shadow = Instance.new("Frame")
local PopupText = Instance.new("TextLabel")
local Exit = Instance.new("TextButton")
local ExitImage = Instance.new("ImageLabel")
Popup.Name = randomString()
Popup.Parent = ScaledHolder
Popup.Active = true
Popup.BackgroundTransparency = 1
Popup.Position = UDim2.new(0.5, -180, 0, -500)
Popup.Size = UDim2.new(0, 360, 0, 20)
Popup.ZIndex = 10
background.Name = "background"
background.Parent = Popup
background.Active = true
background.BackgroundColor3 = Color3.fromRGB(36, 36, 37)
background.BorderSizePixel = 0
background.Position = UDim2.new(0, 0, 0, 20)
background.Size = UDim2.new(0, 360, 0, 205)
background.ZIndex = 10
Directions.Name = "Directions"
Directions.Parent = background
Directions.BackgroundTransparency = 1
Directions.BorderSizePixel = 0
Directions.Position = UDim2.new(0, 10, 0, 10)
Directions.Size = UDim2.new(0, 340, 0, 185)
Directions.Font = Enum.Font.SourceSans
Directions.TextSize = 14
Directions.Text = text
Directions.TextColor3 = Color3.new(1, 1, 1)
Directions.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
Directions.TextStrokeTransparency = 0.5
Directions.TextWrapped = true
Directions.TextXAlignment = Enum.TextXAlignment.Left
Directions.TextYAlignment = Enum.TextYAlignment.Top
Directions.ZIndex = 10
shadow.Name = "shadow"
shadow.Parent = Popup
shadow.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
shadow.BorderSizePixel = 0
shadow.Size = UDim2.new(0, 360, 0, 20)
shadow.ZIndex = 10
PopupText.Name = "PopupText"
PopupText.Parent = shadow
PopupText.BackgroundTransparency = 1
PopupText.Size = UDim2.new(1, 0, 0.95, 0)
PopupText.ZIndex = 10
PopupText.Font = Enum.Font.SourceSans
PopupText.TextSize = 14
PopupText.Text = title
PopupText.TextColor3 = Color3.new(1, 1, 1)
PopupText.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
PopupText.TextStrokeTransparency = 0.5
PopupText.TextWrapped = true
Exit.Name = "Exit"
Exit.Parent = shadow
Exit.BackgroundTransparency = 1
Exit.Position = UDim2.new(1, -20, 0, 0)
Exit.Size = UDim2.new(0, 20, 0, 20)
Exit.Text = ""
Exit.ZIndex = 10
ExitImage.Parent = Exit
ExitImage.BackgroundColor3 = Color3.new(1, 1, 1)
ExitImage.BackgroundTransparency = 1
ExitImage.Position = UDim2.new(0, 5, 0, 5)
ExitImage.Size = UDim2.new(0, 10, 0, 10)
ExitImage.Image = getcustomasset("infiniteyield/assets/close.png")
ExitImage.ZIndex = 10
Popup:TweenPosition(UDim2.new(0.5, -180, 0, 150), "InOut", "Quart", 0.5, true, nil)
Exit.MouseButton1Click:Connect(function()
Popup:TweenPosition(UDim2.new(0.5, -180, 0, -500), "InOut", "Quart", 0.5, true, nil)
task.wait(0.6)
Popup:Destroy()
end)
end
local loadedEventData = nil
local jsonAttempts = 0
function saves()
if writefileExploit() and readfileExploit() and jsonAttempts < 10 then
local readSuccess, out = readfile("IY_FE.iy", true)
if readSuccess then
if out ~= nil and tostring(out):gsub("%s", "") ~= "" then
local success, response = pcall(function()
local json = HttpService:JSONDecode(out)
if vtype(json.prefix, "string") then prefix = json.prefix else prefix = ';' end
if vtype(json.StayOpen, "boolean") then StayOpen = json.StayOpen else StayOpen = false end
if vtype(json.guiScale, "number") then guiScale = json.guiScale else guiScale = defaultGuiScale end
if vtype(json.keepIY, "boolean") then KeepInfYield = json.keepIY else KeepInfYield = true end
if vtype(json.espTransparency, "number") then espTransparency = json.espTransparency else espTransparency = 0.3 end
if vtype(json.logsEnabled, "boolean") then logsEnabled = json.logsEnabled else logsEnabled = false end
if vtype(json.jLogsEnabled, "boolean") then jLogsEnabled = json.jLogsEnabled else jLogsEnabled = false end
if vtype(json.logsWebhook, "string") then logsWebhook = json.logsWebhook else logsWebhook = nil end
if vtype(json.aliases, "table") then aliases = json.aliases else aliases = {} end
if vtype(json.binds, "table") then binds = json.binds else binds = {} end
if vtype(json.spawnCmds, "table") then spawnCmds = json.spawnCmds end
if vtype(json.WayPoints, "table") then AllWaypoints = json.WayPoints else WayPoints = {} AllWaypoints = {} end
if vtype(json.PluginsTable, "table") then PluginsTable = json.PluginsTable else PluginsTable = {} end
if vtype(json.currentShade1, "table") then currentShade1 = Color3.new(json.currentShade1[1],json.currentShade1[2],json.currentShade1[3]) end
if vtype(json.currentShade2, "table") then currentShade2 = Color3.new(json.currentShade2[1],json.currentShade2[2],json.currentShade2[3]) end
if vtype(json.currentShade3, "table") then currentShade3 = Color3.new(json.currentShade3[1],json.currentShade3[2],json.currentShade3[3]) end
if vtype(json.currentText1, "table") then currentText1 = Color3.new(json.currentText1[1],json.currentText1[2],json.currentText1[3]) end
if vtype(json.currentText2, "table") then currentText2 = Color3.new(json.currentText2[1],json.currentText2[2],json.currentText2[3]) end
if vtype(json.currentScroll, "table") then currentScroll = Color3.new(json.currentScroll[1],json.currentScroll[2],json.currentScroll[3]) end
if vtype(json.eventBinds, "string") then loadedEventData = json.eventBinds end
end)
if not success then
jsonAttempts = jsonAttempts + 1
warn("Save Json Error:", response)
warn("Overwriting Save File")
writefile("IY_FE.iy", defaults, true)
wait()
saves()
end
else
writefile("IY_FE.iy", defaults, true)
wait()
local dReadSuccess, dOut = readfile("IY_FE.iy", true)
if dReadSuccess and dOut ~= nil and tostring(dOut):gsub("%s", "") ~= "" then
saves()
else
nosaves = true
useFactorySettings()
createPopup("File Error", "There was a problem writing a save file to your PC.\n\nPlease contact the developer/support team for your exploit and tell them writefile/readfile is not working.\n\nYour settings, keybinds, waypoints, and aliases will not save if you continue.\n\nThings to try:\n> Make sure a 'workspace' folder is located in the same folder as your exploit\n> If your exploit is inside of a zip/rar file, extract it.\n> Rejoin the game and try again or restart your PC and try again.")
end
end
else
writefile("IY_FE.iy", defaults, true)
wait()
local dReadSuccess, dOut = readfile("IY_FE.iy", true)
if dReadSuccess and dOut ~= nil and tostring(dOut):gsub("%s", "") ~= "" then
saves()
else
nosaves = true
useFactorySettings()
createPopup("File Error", "There was a problem writing a save file to your PC.\n\nPlease contact the developer/support team for your exploit and tell them writefile/readfile is not working.\n\nYour settings, keybinds, waypoints, and aliases will not save if you continue.\n\nThings to try:\n> Make sure a 'workspace' folder is located in the same folder as your exploit\n> If your exploit is inside of a zip/rar file, extract it.\n> Rejoin the game and try again or restart your PC and try again.")
end
end
else
if jsonAttempts >= 10 then
nosaves = true
useFactorySettings()
createPopup("File Error", "Sorry, we have attempted to parse your save file, but it is unreadable!\n\nArc Yield is now using factory settings until your exploit's file system works.\n\nYour save file has not been deleted.")
else
nosaves = true
useFactorySettings()
end
end
end
saves()
function updatesaves()
if nosaves == false and writefileExploit() then
local update = {
prefix = prefix;
StayOpen = StayOpen;
guiScale = guiScale;
keepIY = KeepInfYield;
espTransparency = espTransparency;
logsEnabled = logsEnabled;
jLogsEnabled = jLogsEnabled;
logsWebhook = logsWebhook;
aliases = aliases;
binds = binds or {};
WayPoints = AllWaypoints;
PluginsTable = PluginsTable;
currentShade1 = {currentShade1.R,currentShade1.G,currentShade1.B};
currentShade2 = {currentShade2.R,currentShade2.G,currentShade2.B};
currentShade3 = {currentShade3.R,currentShade3.G,currentShade3.B};
currentText1 = {currentText1.R,currentText1.G,currentText1.B};
currentText2 = {currentText2.R,currentText2.G,currentText2.B};
currentScroll = {currentScroll.R,currentScroll.G,currentScroll.B};
eventBinds = eventEditor.SaveData()
}
writefileCooldown("IY_FE.iy", HttpService:JSONEncode(update))
end
end
eventEditor.SetOnEdited(updatesaves)
pWayPoints = {}
WayPoints = {}
if #AllWaypoints > 0 then
for i = 1, #AllWaypoints do
if not AllWaypoints[i].GAME or AllWaypoints[i].GAME == PlaceId then
WayPoints[#WayPoints + 1] = {NAME = AllWaypoints[i].NAME, COORD = {AllWaypoints[i].COORD[1], AllWaypoints[i].COORD[2], AllWaypoints[i].COORD[3]}, GAME = AllWaypoints[i].GAME}
end
end
end
if type(binds) ~= "table" then binds = {} end
if type(PluginsTable) == "table" then
for i = #PluginsTable, 1, -1 do
if string.sub(PluginsTable[i], -3) ~= ".iy" then
table.remove(PluginsTable, i)
end
end
end
function Time()
local HOUR = math.floor((tick() % 86400) / 3600)
local MINUTE = math.floor((tick() % 3600) / 60)
local SECOND = math.floor(tick() % 60)
local AP = HOUR > 11 and 'PM' or 'AM'
HOUR = (HOUR % 12 == 0 and 12 or HOUR % 12)
HOUR = HOUR < 10 and '0' .. HOUR or HOUR
MINUTE = MINUTE < 10 and '0' .. MINUTE or MINUTE
SECOND = SECOND < 10 and '0' .. SECOND or SECOND
return HOUR .. ':' .. MINUTE .. ':' .. SECOND .. ' ' .. AP
end
PrefixBox.Text = prefix
local SettingsOpen = false
local isHidden = false
if StayOpen == false then
On.BackgroundTransparency = 1
else
On.BackgroundTransparency = 0
end
if logsEnabled then
Toggle.Text = 'Enabled'
else
Toggle.Text = 'Disabled'
end
if jLogsEnabled then
Toggle_2.Text = 'Enabled'
else
Toggle_2.Text = 'Disabled'
end
function maximizeHolder()
if StayOpen == false then
Holder:TweenPosition(UDim2.new(1, Holder.Position.X.Offset, 1, -220), "InOut", "Quart", 0.2, true, nil)
end
end
minimizeNum = -20
function minimizeHolder()
if StayOpen == false then
Holder:TweenPosition(UDim2.new(1, Holder.Position.X.Offset, 1, minimizeNum), "InOut", "Quart", 0.5, true, nil)
end
end
function cmdbarHolder()
if StayOpen == false then
Holder:TweenPosition(UDim2.new(1, Holder.Position.X.Offset, 1, -45), "InOut", "Quart", 0.5, true, nil)
end
end
pinNotification = nil
local notifyCount = 0
function notify(text,text2,length)
task.spawn(function()
local LnotifyCount = notifyCount+1
local notificationPinned = false
notifyCount = notifyCount+1
if pinNotification then pinNotification:Disconnect() end
pinNotification = PinButton.MouseButton1Click:Connect(function()
task.spawn(function()
pinNotification:Disconnect()
notificationPinned = true
Title_2.BackgroundTransparency = 1
wait(0.5)
Title_2.BackgroundTransparency = 0
end)
end)
Notification:TweenPosition(UDim2.new(1, Notification.Position.X.Offset, 1, 0), "InOut", "Quart", 0.5, true, nil)
wait(0.6)
local closepressed = false
if text2 then
Title_2.Text = text
Text_2.Text = text2
else
Title_2.Text = 'Notification'
Text_2.Text = text
end
Notification:TweenPosition(UDim2.new(1, Notification.Position.X.Offset, 1, -100), "InOut", "Quart", 0.5, true, nil)
CloseButton.MouseButton1Click:Connect(function()
Notification:TweenPosition(UDim2.new(1, Notification.Position.X.Offset, 1, 0), "InOut", "Quart", 0.5, true, nil)
closepressed = true
pinNotification:Disconnect()
end)
if length and isNumber(length) then
wait(length)
else
wait(3)
end
if LnotifyCount == notifyCount then
if closepressed == false and notificationPinned == false then
pinNotification:Disconnect()
Notification:TweenPosition(UDim2.new(1, Notification.Position.X.Offset, 1, 0), "InOut", "Quart", 0.5, true, nil)
end
notifyCount = 0
end
end)
end
local lastMessage = nil
local lastLabel = nil
local dupeCount = 1
function CreateLabel(Name, Text)
if lastMessage == Name..Text then
dupeCount = dupeCount+1
lastLabel.Text = Time()..' - ['..Name..']: '..Text..' (x'..dupeCount..')'
else
if dupeCount > 1 then dupeCount = 1 end
if #scroll_2:GetChildren() >= 2546 then
scroll_2:ClearAllChildren()
end
local alls = 0
for i,v in pairs(scroll_2:GetChildren()) do
if v then
alls = v.Size.Y.Offset + alls
end
if not v then
alls = 0
end
end
local tl = Instance.new('TextLabel')
lastMessage = Name..Text
lastLabel = tl
tl.Name = Name
tl.Parent = scroll_2
tl.ZIndex = 10
tl.RichText = true
tl.Text = Time().." - ["..Name.."]: "..Text
tl.Text = tl.ContentText
tl.Size = UDim2.new(0,322,0,84)
tl.BackgroundTransparency = 1
tl.BorderSizePixel = 0
tl.Font = "SourceSans"
tl.Position = UDim2.new(-1,0,0,alls)
tl.TextTransparency = 1
tl.TextScaled = false
tl.TextSize = 14
tl.TextWrapped = true
tl.TextXAlignment = "Left"
tl.TextYAlignment = "Top"
tl.TextColor3 = currentText1
tl.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
tl.TextStrokeTransparency = 0.6
tl.Size = UDim2.new(0,322,0,tl.TextBounds.Y)
table.insert(text1,tl)
scroll_2.CanvasSize = UDim2.new(0,0,0,alls+tl.TextBounds.Y)
scroll_2.CanvasPosition = Vector2.new(0,scroll_2.CanvasPosition.Y+tl.TextBounds.Y)
tl:TweenPosition(UDim2.new(0,3,0,alls), 'In', 'Quint', 0.5)
TweenService:Create(tl, TweenInfo.new(1.25, Enum.EasingStyle.Linear), { TextTransparency = 0 }):Play()
end
end
function CreateJoinLabel(plr,ID)
if #scroll_3:GetChildren() >= 2546 then
scroll_3:ClearAllChildren()
end
local infoFrame = Instance.new("Frame")
local info1 = Instance.new("TextLabel")
local info2 = Instance.new("TextLabel")
local ImageLabel_3 = Instance.new("ImageLabel")
infoFrame.Name = randomString()
infoFrame.Parent = scroll_3
infoFrame.BackgroundColor3 = Color3.new(1, 1, 1)
infoFrame.BackgroundTransparency = 1
infoFrame.BorderColor3 = Color3.new(0.105882, 0.164706, 0.207843)
infoFrame.Size = UDim2.new(1, 0, 0, 50)
info1.Name = randomString()
info1.Parent = infoFrame
info1.BackgroundTransparency = 1
info1.BorderSizePixel = 0
info1.Position = UDim2.new(0, 45, 0, 0)
info1.Size = UDim2.new(0, 135, 1, 0)
info1.ZIndex = 10
info1.Font = Enum.Font.SourceSans
info1.FontSize = Enum.FontSize.Size14
info1.Text = "Username: "..plr.Name.."\nJoined Server: "..Time()
info1.TextColor3 = Color3.new(1, 1, 1)
info1.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
info1.TextStrokeTransparency = 0.5
info1.TextWrapped = true
info1.TextXAlignment = Enum.TextXAlignment.Left
info2.Name = randomString()
info2.Parent = infoFrame
info2.BackgroundTransparency = 1
info2.BorderSizePixel = 0
info2.Position = UDim2.new(0, 185, 0, 0)
info2.Size = UDim2.new(0, 140, 1, -5)
info2.ZIndex = 10
info2.Font = Enum.Font.SourceSans
info2.FontSize = Enum.FontSize.Size14
info2.Text = "User ID: "..ID.."\nAccount Age: "..plr.AccountAge.."\nJoined Roblox: Loading..."
info2.TextColor3 = Color3.new(1, 1, 1)
info2.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
info2.TextStrokeTransparency = 0.5
info2.TextWrapped = true
info2.TextXAlignment = Enum.TextXAlignment.Left
info2.TextYAlignment = Enum.TextYAlignment.Center
ImageLabel_3.Parent = infoFrame
ImageLabel_3.BackgroundTransparency = 1
ImageLabel_3.BorderSizePixel = 0
ImageLabel_3.Size = UDim2.new(0, 45, 1, 0)
ImageLabel_3.Image = Players:GetUserThumbnailAsync(ID, Enum.ThumbnailType.AvatarThumbnail, Enum.ThumbnailSize.Size420x420)
scroll_3.CanvasSize = UDim2.new(0, 0, 0, listlayout.AbsoluteContentSize.Y)
scroll_3.CanvasPosition = Vector2.new(0,scroll_2.CanvasPosition.Y+infoFrame.AbsoluteSize.Y)
wait()
local user = game:HttpGet("https://users.roblox.com/v1/users/"..ID)
local json = HttpService:JSONDecode(user)
local date = json["created"]:sub(1,10)
local splitDates = string.split(date,"-")
info2.Text = string.gsub(info2.Text, "Loading...",splitDates[2].."/"..splitDates[3].."/"..splitDates[1])
end
IYMouse.KeyDown:Connect(function(Key)
if (Key==prefix) then
RunService.RenderStepped:Wait()
Cmdbar:CaptureFocus()
maximizeHolder()
end
end)
local lastMinimizeReq = 0
Holder.MouseEnter:Connect(function()
lastMinimizeReq = 0
maximizeHolder()
end)
Holder.MouseLeave:Connect(function()
if not Cmdbar:IsFocused() then
local reqTime = tick()
lastMinimizeReq = reqTime
wait(1)
if lastMinimizeReq ~= reqTime then return end
if not Cmdbar:IsFocused() then
minimizeHolder()
end
end
end)
function updateColors(color,ctype)
if ctype == shade1 then
for i,v in pairs(shade1) do
v.BackgroundColor3 = color
end
currentShade1 = color
elseif ctype == shade2 then
for i,v in pairs(shade2) do
v.BackgroundColor3 = color
end
currentShade2 = color
elseif ctype == shade3 then
for i,v in pairs(shade3) do
v.BackgroundColor3 = color
end
currentShade3 = color
elseif ctype == text1 then
for i,v in pairs(text1) do
v.TextColor3 = color
v.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
v.TextStrokeTransparency = 0.6
if v:IsA("TextBox") then
v.PlaceholderColor3 = color
end
end
currentText1 = color
elseif ctype == text2 then
for i,v in pairs(text2) do
v.TextColor3 = color
end
currentText2 = color
elseif ctype == scroll then
for i,v in pairs(scroll) do
v.ScrollBarImageColor3 = color
end
currentScroll = color
end
end
local colorpickerOpen = false
ColorsButton.MouseButton1Click:Connect(function()
cache_currentShade1 = currentShade1
cache_currentShade2 = currentShade2
cache_currentShade3 = currentShade3
cache_currentText1 = currentText1
cache_currentText2 = currentText2
cache_currentScroll = currentScroll
if not colorpickerOpen then
colorpickerOpen = true
picker = game:GetObjects("rbxassetid://4908465318")[1]
picker.Name = randomString()
picker.Parent = ScaledHolder
local ColorPicker do
ColorPicker = {}
ColorPicker.new = function()
local newMt = setmetatable({},{})
local pickerGui = picker.ColorPicker
local pickerTopBar = pickerGui.TopBar
local pickerExit = pickerTopBar.Exit
local pickerFrame = pickerGui.Content
local colorSpace = pickerFrame.ColorSpaceFrame.ColorSpace
local colorStrip = pickerFrame.ColorStrip
local previewFrame = pickerFrame.Preview
local basicColorsFrame = pickerFrame.BasicColors
local customColorsFrame = pickerFrame.CustomColors
local defaultButton = pickerFrame.Default
local cancelButton = pickerFrame.Cancel
local shade1Button = pickerFrame.Shade1
local shade2Button = pickerFrame.Shade2
local shade3Button = pickerFrame.Shade3
local text1Button = pickerFrame.Text1
local text2Button = pickerFrame.Text2
local scrollButton = pickerFrame.Scroll
local colorScope = colorSpace.Scope
local colorArrow = pickerFrame.ArrowFrame.Arrow
local hueInput = pickerFrame.Hue.Input
local satInput = pickerFrame.Sat.Input
local valInput = pickerFrame.Val.Input
local redInput = pickerFrame.Red.Input
local greenInput = pickerFrame.Green.Input
local blueInput = pickerFrame.Blue.Input
local mouse = IYMouse
local hue,sat,val = 0,0,1
local red,green,blue = 1,1,1
local chosenColor = Color3.new(0,0,0)
local basicColors = {Color3.new(0,0,0),Color3.new(0.66666668653488,0,0),Color3.new(0,0.33333334326744,0),Color3.new(0.66666668653488,0.33333334326744,0),Color3.new(0,0.66666668653488,0),Color3.new(0.66666668653488,0.66666668653488,0),Color3.new(0,1,0),Color3.new(0.66666668653488,1,0),Color3.new(0,0,0.49803924560547),Color3.new(0.66666668653488,0,0.49803924560547),Color3.new(0,0.33333334326744,0.49803924560547),Color3.new(0.66666668653488,0.33333334326744,0.49803924560547),Color3.new(0,0.66666668653488,0.49803924560547),Color3.new(0.66666668653488,0.66666668653488,0.49803924560547),Color3.new(0,1,0.49803924560547),Color3.new(0.66666668653488,1,0.49803924560547),Color3.new(0,0,1),Color3.new(0.66666668653488,0,1),Color3.new(0,0.33333334326744,1),Color3.new(0.66666668653488,0.33333334326744,1),Color3.new(0,0.66666668653488,1),Color3.new(0.66666668653488,0.66666668653488,1),Color3.new(0,1,1),Color3.new(0.66666668653488,1,1),Color3.new(0.33333334326744,0,0),Color3.new(1,0,0),Color3.new(0.33333334326744,0.33333334326744,0),Color3.new(1,0.33333334326744,0),Color3.new(0.33333334326744,0.66666668653488,0),Color3.new(1,0.66666668653488,0),Color3.new(0.33333334326744,1,0),Color3.new(1,1,0),Color3.new(0.33333334326744,0,0.49803924560547),Color3.new(1,0,0.49803924560547),Color3.new(0.33333334326744,0.33333334326744,0.49803924560547),Color3.new(1,0.33333334326744,0.49803924560547),Color3.new(0.33333334326744,0.66666668653488,0.49803924560547),Color3.new(1,0.66666668653488,0.49803924560547),Color3.new(0.33333334326744,1,0.49803924560547),Color3.new(1,1,0.49803924560547),Color3.new(0.33333334326744,0,1),Color3.new(1,0,1),Color3.new(0.33333334326744,0.33333334326744,1),Color3.new(1,0.33333334326744,1),Color3.new(0.33333334326744,0.66666668653488,1),Color3.new(1,0.66666668653488,1),Color3.new(0.33333334326744,1,1),Color3.new(1,1,1)}
local customColors = {}
dragGUI(picker)
local function updateColor(noupdate)
local relativeX,relativeY,relativeStripY = 219 - hue*219, 199 - sat*199, 199 - val*199
local hsvColor = Color3.fromHSV(hue,sat,val)
if noupdate == 2 or not noupdate then
hueInput.Text = tostring(math.ceil(359*hue))
satInput.Text = tostring(math.ceil(255*sat))
valInput.Text = tostring(math.floor(255*val))
end
if noupdate == 1 or not noupdate then
redInput.Text = tostring(math.floor(255*red))
greenInput.Text = tostring(math.floor(255*green))
blueInput.Text = tostring(math.floor(255*blue))
end
chosenColor = Color3.new(red,green,blue)
colorScope.Position = UDim2.new(0,relativeX-9,0,relativeY-9)
colorStrip.ImageColor3 = Color3.fromHSV(hue,sat,1)
colorArrow.Position = UDim2.new(0,-2,0,relativeStripY-4)
previewFrame.BackgroundColor3 = chosenColor
newMt.Color = chosenColor
if newMt.Changed then newMt:Changed(chosenColor) end
end
local function colorSpaceInput()
local relativeX = mouse.X - colorSpace.AbsolutePosition.X
local relativeY = mouse.Y - colorSpace.AbsolutePosition.Y
if relativeX < 0 then relativeX = 0 elseif relativeX > 219 then relativeX = 219 end
if relativeY < 0 then relativeY = 0 elseif relativeY > 199 then relativeY = 199 end
hue = (219 - relativeX)/219
sat = (199 - relativeY)/199
local hsvColor = Color3.fromHSV(hue,sat,val)
red,green,blue = hsvColor.r,hsvColor.g,hsvColor.b
updateColor()
end
local function colorStripInput()
local relativeY = mouse.Y - colorStrip.AbsolutePosition.Y
if relativeY < 0 then relativeY = 0 elseif relativeY > 199 then relativeY = 199 end
val = (199 - relativeY)/199
local hsvColor = Color3.fromHSV(hue,sat,val)
red,green,blue = hsvColor.r,hsvColor.g,hsvColor.b
updateColor()
end
local function hookButtons(frame,func)
frame.ArrowFrame.Up.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
frame.ArrowFrame.Up.BackgroundTransparency = 0.5
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
local releaseEvent,runEvent
local startTime = tick()
local pressing = true
local startNum = tonumber(frame.Text)
if not startNum then return end
releaseEvent = UserInputService.InputEnded:Connect(function(input)
if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end
releaseEvent:Disconnect()
pressing = false
end)
startNum = startNum + 1
func(startNum)
while pressing do
if tick()-startTime > 0.3 then
startNum = startNum + 1
func(startNum)
end
wait(0.1)
end
end
end)
frame.ArrowFrame.Up.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
frame.ArrowFrame.Up.BackgroundTransparency = 1
end
end)
frame.ArrowFrame.Down.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
frame.ArrowFrame.Down.BackgroundTransparency = 0.5
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
local releaseEvent,runEvent
local startTime = tick()
local pressing = true
local startNum = tonumber(frame.Text)
if not startNum then return end
releaseEvent = UserInputService.InputEnded:Connect(function(input)
if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end
releaseEvent:Disconnect()
pressing = false
end)
startNum = startNum - 1
func(startNum)
while pressing do
if tick()-startTime > 0.3 then
startNum = startNum - 1
func(startNum)
end
wait(0.1)
end
end
end)
frame.ArrowFrame.Down.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
frame.ArrowFrame.Down.BackgroundTransparency = 1
end
end)
end
colorSpace.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
local releaseEvent,mouseEvent
releaseEvent = UserInputService.InputEnded:Connect(function(input)
if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end
releaseEvent:Disconnect()
mouseEvent:Disconnect()
end)
mouseEvent = UserInputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
colorSpaceInput()
end
end)
colorSpaceInput()
end
end)
colorStrip.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
local releaseEvent,mouseEvent
releaseEvent = UserInputService.InputEnded:Connect(function(input)
if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end
releaseEvent:Disconnect()
mouseEvent:Disconnect()
end)
mouseEvent = UserInputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
colorStripInput()
end
end)
colorStripInput()
end
end)
local function updateHue(str)
local num = tonumber(str)
if num then
hue = math.clamp(math.floor(num),0,359)/359
local hsvColor = Color3.fromHSV(hue,sat,val)
red,green,blue = hsvColor.r,hsvColor.g,hsvColor.b
hueInput.Text = tostring(hue*359)
updateColor(1)
end
end
hueInput.FocusLost:Connect(function() updateHue(hueInput.Text) end) hookButtons(hueInput,updateHue)
local function updateSat(str)
local num = tonumber(str)
if num then
sat = math.clamp(math.floor(num),0,255)/255
local hsvColor = Color3.fromHSV(hue,sat,val)
red,green,blue = hsvColor.r,hsvColor.g,hsvColor.b
satInput.Text = tostring(sat*255)
updateColor(1)
end
end
satInput.FocusLost:Connect(function() updateSat(satInput.Text) end) hookButtons(satInput,updateSat)
local function updateVal(str)
local num = tonumber(str)
if num then
val = math.clamp(math.floor(num),0,255)/255
local hsvColor = Color3.fromHSV(hue,sat,val)
red,green,blue = hsvColor.r,hsvColor.g,hsvColor.b
valInput.Text = tostring(val*255)
updateColor(1)
end
end
valInput.FocusLost:Connect(function() updateVal(valInput.Text) end) hookButtons(valInput,updateVal)
local function updateRed(str)
local num = tonumber(str)
if num then
red = math.clamp(math.floor(num),0,255)/255
local newColor = Color3.new(red,green,blue)
hue,sat,val = Color3.toHSV(newColor)
redInput.Text = tostring(red*255)
updateColor(2)
end
end
redInput.FocusLost:Connect(function() updateRed(redInput.Text) end) hookButtons(redInput,updateRed)
local function updateGreen(str)
local num = tonumber(str)
if num then
green = math.clamp(math.floor(num),0,255)/255
local newColor = Color3.new(red,green,blue)
hue,sat,val = Color3.toHSV(newColor)
greenInput.Text = tostring(green*255)
updateColor(2)
end
end
greenInput.FocusLost:Connect(function() updateGreen(greenInput.Text) end) hookButtons(greenInput,updateGreen)
local function updateBlue(str)
local num = tonumber(str)
if num then
blue = math.clamp(math.floor(num),0,255)/255
local newColor = Color3.new(red,green,blue)
hue,sat,val = Color3.toHSV(newColor)
blueInput.Text = tostring(blue*255)
updateColor(2)
end
end
blueInput.FocusLost:Connect(function() updateBlue(blueInput.Text) end) hookButtons(blueInput,updateBlue)
local colorChoice = Instance.new("TextButton")
colorChoice.Name = "Choice"
colorChoice.Size = UDim2.new(0,25,0,18)
colorChoice.BorderColor3 = Color3.new(96/255,96/255,96/255)
colorChoice.Text = ""
colorChoice.AutoButtonColor = false
colorChoice.ZIndex = 10
local row = 0
local column = 0
for i,v in pairs(basicColors) do
local newColor = colorChoice:Clone()
newColor.BackgroundColor3 = v
newColor.Position = UDim2.new(0,1 + 30*column,0,21 + 23*row)
newColor.MouseButton1Click:Connect(function()
red,green,blue = v.r,v.g,v.b
local newColor = Color3.new(red,green,blue)
hue,sat,val = Color3.toHSV(newColor)
updateColor()
end)
newColor.Parent = basicColorsFrame
column = column + 1
if column == 6 then row = row + 1 column = 0 end
end
row = 0
column = 0
for i = 1,12 do
local color = customColors[i] or Color3.new(0,0,0)
local newColor = colorChoice:Clone()
newColor.BackgroundColor3 = color
newColor.Position = UDim2.new(0,1 + 30*column,0,20 + 23*row)
newColor.MouseButton1Click:Connect(function()
local curColor = customColors[i] or Color3.new(0,0,0)
red,green,blue = curColor.r,curColor.g,curColor.b
hue,sat,val = Color3.toHSV(curColor)
updateColor()
end)
newColor.MouseButton2Click:Connect(function()
customColors[i] = chosenColor
newColor.BackgroundColor3 = chosenColor
end)
newColor.Parent = customColorsFrame
column = column + 1
if column == 6 then row = row + 1 column = 0 end
end
shade1Button.MouseButton1Click:Connect(function() if newMt.Confirm then newMt:Confirm(chosenColor,shade1) end end)
shade1Button.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then shade1Button.BackgroundTransparency = 0.4 end end)
shade1Button.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then shade1Button.BackgroundTransparency = 0 end end)
shade2Button.MouseButton1Click:Connect(function() if newMt.Confirm then newMt:Confirm(chosenColor,shade2) end end)
shade2Button.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then shade2Button.BackgroundTransparency = 0.4 end end)
shade2Button.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then shade2Button.BackgroundTransparency = 0 end end)
shade3Button.MouseButton1Click:Connect(function() if newMt.Confirm then newMt:Confirm(chosenColor,shade3) end end)
shade3Button.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then shade3Button.BackgroundTransparency = 0.4 end end)
shade3Button.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then shade3Button.BackgroundTransparency = 0 end end)
text1Button.MouseButton1Click:Connect(function() if newMt.Confirm then newMt:Confirm(chosenColor,text1) end end)
text1Button.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then text1Button.BackgroundTransparency = 0.4 end end)
text1Button.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then text1Button.BackgroundTransparency = 0 end end)
text2Button.MouseButton1Click:Connect(function() if newMt.Confirm then newMt:Confirm(chosenColor,text2) end end)
text2Button.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then text2Button.BackgroundTransparency = 0.4 end end)
text2Button.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then text2Button.BackgroundTransparency = 0 end end)
scrollButton.MouseButton1Click:Connect(function() if newMt.Confirm then newMt:Confirm(chosenColor,scroll) end end)
scrollButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then scrollButton.BackgroundTransparency = 0.4 end end)
scrollButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then scrollButton.BackgroundTransparency = 0 end end)
cancelButton.MouseButton1Click:Connect(function() if newMt.Cancel then newMt:Cancel() end end)
cancelButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then cancelButton.BackgroundTransparency = 0.4 end end)
cancelButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then cancelButton.BackgroundTransparency = 0 end end)
defaultButton.MouseButton1Click:Connect(function() if newMt.Default then newMt:Default() end end)
defaultButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then defaultButton.BackgroundTransparency = 0.4 end end)
defaultButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then defaultButton.BackgroundTransparency = 0 end end)
pickerExit.MouseButton1Click:Connect(function()
picker:TweenPosition(UDim2.new(0.5, -219, 0, -500), "InOut", "Quart", 0.5, true, nil)
end)
updateColor()
newMt.SetColor = function(self,color)
red,green,blue = color.r,color.g,color.b
hue,sat,val = Color3.toHSV(color)
updateColor()
end
return newMt
end
end
picker:TweenPosition(UDim2.new(0.5, -219, 0, 100), "InOut", "Quart", 0.5, true, nil)
local Npicker = ColorPicker.new()
Npicker.Confirm = function(self,color,ctype) updateColors(color,ctype) wait() updatesaves() end
Npicker.Cancel = function(self)
updateColors(cache_currentShade1,shade1)
updateColors(cache_currentShade2,shade2)
updateColors(cache_currentShade3,shade3)
updateColors(cache_currentText1,text1)
updateColors(cache_currentText2,text2)
updateColors(cache_currentScroll,scroll)
wait()
updatesaves()
end
Npicker.Default = function(self)
updateColors(Color3.fromRGB(8, 8, 14),shade1)
updateColors(Color3.fromRGB(15, 15, 28),shade2)
updateColors(Color3.fromRGB(30, 30, 55),shade3)
updateColors(Color3.new(1, 1, 1),text1)
updateColors(Color3.new(0, 0, 0),text2)
updateColors(Color3.fromRGB(50, 100, 255),scroll)
wait()
updatesaves()
end
else
picker:TweenPosition(UDim2.new(0.5, -219, 0, 100), "InOut", "Quart", 0.5, true, nil)
end
end)
SettingsButton.MouseButton1Click:Connect(function()
if SettingsOpen == false then SettingsOpen = true
Settings:TweenPosition(UDim2.new(0, 0, 0, 45), "InOut", "Quart", 0.5, true, nil)
CMDsF.Visible = false
else SettingsOpen = false
CMDsF.Visible = true
Settings:TweenPosition(UDim2.new(0, 0, 0, 220), "InOut", "Quart", 0.5, true, nil)
end
end)
On.MouseButton1Click:Connect(function()
if isHidden == false then
if StayOpen == false then
StayOpen = true
On.BackgroundTransparency = 0
else
StayOpen = false
On.BackgroundTransparency = 1
end
updatesaves()
end
end)
Clear.MouseButton1Down:Connect(function()
for _, child in pairs(scroll_2:GetChildren()) do
child:Destroy()
end
scroll_2.CanvasSize = UDim2.new(0, 0, 0, 10)
end)
Clear_2.MouseButton1Down:Connect(function()
for _, child in pairs(scroll_3:GetChildren()) do
child:Destroy()
end
scroll_3.CanvasSize = UDim2.new(0, 0, 0, 10)
end)
Toggle.MouseButton1Down:Connect(function()
if logsEnabled then
logsEnabled = false
Toggle.Text = 'Disabled'
updatesaves()
else
logsEnabled = true
Toggle.Text = 'Enabled'
updatesaves()
end
end)
Toggle_2.MouseButton1Down:Connect(function()
if jLogsEnabled then
jLogsEnabled = false
Toggle_2.Text = 'Disabled'
updatesaves()
else
jLogsEnabled = true
Toggle_2.Text = 'Enabled'
updatesaves()
end
end)
selectChat.MouseButton1Down:Connect(function()
join.Visible = false
chat.Visible = true
table.remove(shade3,table.find(shade3,selectChat))
table.remove(shade2,table.find(shade2,selectJoin))
table.insert(shade2,selectChat)
table.insert(shade3,selectJoin)
selectJoin.BackgroundColor3 = currentShade3
selectChat.BackgroundColor3 = currentShade2
end)
selectJoin.MouseButton1Down:Connect(function()
chat.Visible = false
join.Visible = true
table.remove(shade3,table.find(shade3,selectJoin))
table.remove(shade2,table.find(shade2,selectChat))
table.insert(shade2,selectJoin)
table.insert(shade3,selectChat)
selectChat.BackgroundColor3 = currentShade3
selectJoin.BackgroundColor3 = currentShade2
end)
if not writefileExploit() then
notify("Saves", "Your exploit does not support read/write file. Your settings will not save.")
end
avatarcache = {}
function sendChatWebhook(player, message)
if httprequest and vtype(logsWebhook, "string") then
local id = player.UserId
local avatar = avatarcache[id]
if not avatar then
local d = HttpService:JSONDecode(httprequest({
Url = "https://thumbnails.roblox.com/v1/users/avatar-headshot?userIds=" .. id .. "&size=420x420&format=Png&isCircular=false",
Method = "GET"
}).Body)["data"]
avatar = d and d[1].state == "Completed" and d[1].imageUrl or "https://files.catbox.moe/i968v2.jpg"
avatarcache[id] = avatar
end
local log = HttpService:JSONEncode({
content = message,
avatar_url = avatar,
username = formatUsername(player),
allowed_mentions = {parse = {}}
})
httprequest({
Url = logsWebhook,
Method = "POST",
Headers = {["Content-Type"] = "application/json"},
Body = log
})
end
end
ChatLog = function(player)
player.Chatted:Connect(function(message)
if logsEnabled == true then
CreateLabel(player.Name, message)
sendChatWebhook(player, message)
end
end)
end
JoinLog = function(plr)
if jLogsEnabled == true then
CreateJoinLabel(plr,plr.UserId)
end
end
CleanFileName = function(name)
return tostring(name):gsub("[*\\?:<>|]+", ""):sub(1, 175)
end
SaveChatlogs.MouseButton1Down:Connect(function()
if writefileExploit() then
if #scroll_2:GetChildren() > 0 then
notify("Loading",'Hold on a sec')
local placeName = CleanFileName(MarketplaceService:GetProductInfo(PlaceId).Name)
local writelogs = '-- Arc Yield Chat logs for "'..placeName..'"\n'
for _, child in pairs(scroll_2:GetChildren()) do
writelogs = writelogs..'\n'..child.Text
end
local writelogsFile = tostring(writelogs)
local fileext = 0
local function nameFile()
local file
pcall(function() file = readfile(placeName..' Chat Logs ('..fileext..').txt') end)
if file then
fileext = fileext+1
nameFile()
else
writefileCooldown(placeName..' Chat Logs ('..fileext..').txt', writelogsFile)
end
end
nameFile()
notify('Chat Logs','Saved chat logs to the workspace folder within your exploit folder.')
end
else
notify('Chat Logs','Your exploit does not support write file. You cannot save chat logs.')
end
end)
if isLegacyChat then
for _, plr in pairs(Players:GetPlayers()) do
ChatLog(plr)
end
end
Players.PlayerRemoving:Connect(function(player)
if ESPenabled or CHMSenabled or COREGUI:FindFirstChild(player.Name..'_LC') then
for i,v in pairs(COREGUI:GetChildren()) do
if v.Name == player.Name..'_ESP' or v.Name == player.Name..'_LC' or v.Name == player.Name..'_CHMS' then
v:Destroy()
end
end
end
if viewing ~= nil and player == viewing then
workspace.CurrentCamera.CameraSubject = Players.LocalPlayer.Character
viewing = nil
if viewDied then
viewDied:Disconnect()
viewChanged:Disconnect()
end
notify('Spectate','View turned off (player left)')
end
eventEditor.FireEvent("OnLeave", player.Name)
end)
Exit.MouseButton1Down:Connect(function()
logs:TweenPosition(UDim2.new(0, 0, 1, 10), "InOut", "Quart", 0.3, true, nil)
end)
Hide.MouseButton1Down:Connect(function()
if logs.Position ~= UDim2.new(0, 0, 1, -20) then
logs:TweenPosition(UDim2.new(0, 0, 1, -20), "InOut", "Quart", 0.3, true, nil)
else
logs:TweenPosition(UDim2.new(0, 0, 1, -265), "InOut", "Quart", 0.3, true, nil)
end
end)
EventBind.MouseButton1Click:Connect(function()
eventEditor.Frame:TweenPosition(UDim2.new(0.5,-175,0.5,-101), "InOut", "Quart", 0.5, true, nil)
end)
Keybinds.MouseButton1Click:Connect(function()
KeybindsFrame:TweenPosition(UDim2.new(0, 0, 0, 0), "InOut", "Quart", 0.5, true, nil)
wait(0.5)
SettingsHolder.Visible = false
end)
Close.MouseButton1Click:Connect(function()
SettingsHolder.Visible = true
KeybindsFrame:TweenPosition(UDim2.new(0, 0, 0, 175), "InOut", "Quart", 0.5, true, nil)
end)
Keybinds.MouseButton1Click:Connect(function()
KeybindsFrame:TweenPosition(UDim2.new(0, 0, 0, 0), "InOut", "Quart", 0.5, true, nil)
wait(0.5)
SettingsHolder.Visible = false
end)
Add.MouseButton1Click:Connect(function()
KeybindEditor:TweenPosition(UDim2.new(0.5, -180, 0, 260), "InOut", "Quart", 0.5, true, nil)
end)
Delete.MouseButton1Click:Connect(function()
binds = {}
refreshbinds()
updatesaves()
notify('Keybinds Updated','Removed all keybinds')
end)
Close_2.MouseButton1Click:Connect(function()
SettingsHolder.Visible = true
AliasesFrame:TweenPosition(UDim2.new(0, 0, 0, 175), "InOut", "Quart", 0.5, true, nil)
end)
Aliases.MouseButton1Click:Connect(function()
AliasesFrame:TweenPosition(UDim2.new(0, 0, 0, 0), "InOut", "Quart", 0.5, true, nil)
wait(0.5)
SettingsHolder.Visible = false
end)
Close_3.MouseButton1Click:Connect(function()
SettingsHolder.Visible = true
PositionsFrame:TweenPosition(UDim2.new(0, 0, 0, 175), "InOut", "Quart", 0.5, true, nil)
end)
Positions.MouseButton1Click:Connect(function()
PositionsFrame:TweenPosition(UDim2.new(0, 0, 0, 0), "InOut", "Quart", 0.5, true, nil)
wait(0.5)
SettingsHolder.Visible = false
end)
local selectionBox = Instance.new("SelectionBox")
selectionBox.Name = randomString()
selectionBox.Color3 = Color3.new(255,255,255)
selectionBox.Adornee = nil
selectionBox.Parent = PARENT
local selected = Instance.new("SelectionBox")
selected.Name = randomString()
selected.Color3 = Color3.new(0,166,0)
selected.Adornee = nil
selected.Parent = PARENT
local ActivateHighlight = nil
local ClickSelect = nil
function selectPart()
ToPartFrame:TweenPosition(UDim2.new(0.5, -180, 0, 335), "InOut", "Quart", 0.5, true, nil)
local function HighlightPart()
if selected.Adornee ~= IYMouse.Target then
selectionBox.Adornee = IYMouse.Target
else
selectionBox.Adornee = nil
end
end
ActivateHighlight = IYMouse.Move:Connect(HighlightPart)
local function SelectPart()
if IYMouse.Target ~= nil then
selected.Adornee = IYMouse.Target
Path.Text = getHierarchy(IYMouse.Target)
end
end
ClickSelect = IYMouse.Button1Down:Connect(SelectPart)
end
Part.MouseButton1Click:Connect(function()
selectPart()
end)
Exit_4.MouseButton1Click:Connect(function()
ToPartFrame:TweenPosition(UDim2.new(0.5, -180, 0, -500), "InOut", "Quart", 0.5, true, nil)
if ActivateHighlight then
ActivateHighlight:Disconnect()
end
if ClickSelect then
ClickSelect:Disconnect()
end
selectionBox.Adornee = nil
selected.Adornee = nil
Path.Text = ""
end)
CopyPath.MouseButton1Click:Connect(function()
if Path.Text ~= "" then
toClipboard(Path.Text)
else
notify('Copy Path','Select a part to copy its path')
end
end)
ChoosePart.MouseButton1Click:Connect(function()
if Path.Text ~= "" then
local tpNameExt = ''
local function handleWpNames()
local FoundDupe = false
for i,v in pairs(pWayPoints) do
if v.NAME:lower() == selected.Adornee.Name:lower()..tpNameExt then
FoundDupe = true
end
end
if not FoundDupe then
notify('Modified Waypoints',"Created waypoint: "..selected.Adornee.Name..tpNameExt)
pWayPoints[#pWayPoints + 1] = {NAME = selected.Adornee.Name..tpNameExt, COORD = {selected.Adornee}}
else
if isNumber(tpNameExt) then
tpNameExt = tpNameExt+1
else
tpNameExt = 1
end
handleWpNames()
end
end
handleWpNames()
refreshwaypoints()
else
notify('Part Selection','Select a part first')
end
end)
cmds={}
customAlias = {}
Delete_3.MouseButton1Click:Connect(function()
customAlias = {}
aliases = {}
notify('Aliases Modified','Removed all aliases')
updatesaves()
refreshaliases()
end)
PrefixBox:GetPropertyChangedSignal("Text"):Connect(function()
prefix = PrefixBox.Text
Cmdbar.PlaceholderText = "Command Bar ("..prefix..")"
updatesaves()
end)
function CamViewport()
if workspace.CurrentCamera then
return workspace.CurrentCamera.ViewportSize.X
end
end
function UpdateToViewport()
if Holder.Position.X.Offset < -CamViewport() then
Holder:TweenPosition(UDim2.new(1, -CamViewport(), Holder.Position.Y.Scale, Holder.Position.Y.Offset), "InOut", "Quart", 0.04, true, nil)
Notification:TweenPosition(UDim2.new(1, -CamViewport() + 250, Notification.Position.Y.Scale, Notification.Position.Y.Offset), "InOut", "Quart", 0.04, true, nil)
end
end
CameraChanged = workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(UpdateToViewport)
function updateCamera(child, parent)
if parent ~= workspace then
CamMoved:Disconnect()
CameraChanged:Disconnect()
repeat wait() until workspace.CurrentCamera
CameraChanged = workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(UpdateToViewport)
CamMoved = workspace.CurrentCamera.AncestryChanged:Connect(updateCamera)
end
end
CamMoved = workspace.CurrentCamera.AncestryChanged:Connect(updateCamera)
function dragMain(dragpoint,gui)
task.spawn(function()
local dragging
local dragInput
local dragStart = Vector3.new(0,0,0)
local startPos
local function update(input)
local pos = -250
local delta = input.Position - dragStart
if startPos.X.Offset + delta.X <= -500 then
local Position = UDim2.new(1, -250, Notification.Position.Y.Scale, Notification.Position.Y.Offset)
TweenService:Create(Notification, TweenInfo.new(.20), {Position = Position}):Play()
pos = 250
else
local Position = UDim2.new(1, -500, Notification.Position.Y.Scale, Notification.Position.Y.Offset)
TweenService:Create(Notification, TweenInfo.new(.20), {Position = Position}):Play()
pos = -250
end
if startPos.X.Offset + delta.X <= -250 and -CamViewport() <= startPos.X.Offset + delta.X then
local Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, gui.Position.Y.Scale, gui.Position.Y.Offset)
TweenService:Create(gui, TweenInfo.new(.20), {Position = Position}):Play()
local Position2 = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X + pos, Notification.Position.Y.Scale, Notification.Position.Y.Offset)
TweenService:Create(Notification, TweenInfo.new(.20), {Position = Position2}):Play()
elseif startPos.X.Offset + delta.X > -500 then
local Position = UDim2.new(1, -250, gui.Position.Y.Scale, gui.Position.Y.Offset)
TweenService:Create(gui, TweenInfo.new(.20), {Position = Position}):Play()
elseif -CamViewport() > startPos.X.Offset + delta.X then
gui:TweenPosition(UDim2.new(1, -CamViewport(), gui.Position.Y.Scale, gui.Position.Y.Offset), "InOut", "Quart", 0.04, true, nil)
local Position = UDim2.new(1, -CamViewport(), gui.Position.Y.Scale, gui.Position.Y.Offset)
TweenService:Create(gui, TweenInfo.new(.20), {Position = Position}):Play()
local Position2 = UDim2.new(1, -CamViewport() + 250, Notification.Position.Y.Scale, Notification.Position.Y.Offset)
TweenService:Create(Notification, TweenInfo.new(.20), {Position = Position2}):Play()
end
end
dragpoint.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = gui.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
dragpoint.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
end)
end
dragMain(Title,Holder)
Match = function(name,str)
str = str:gsub("%W", "%%%1")
return name:lower():find(str:lower()) and true
end
local canvasPos = Vector2.new(0,0)
local topCommand = nil
IndexContents = function(str,bool,cmdbar,Ianim)
CMDsF.CanvasPosition = Vector2.new(0,0)
local SizeY = 0
local indexnum = 0
local frame = CMDsF
topCommand = nil
local chunks = {}
if str:sub(#str,#str) == "\\" then str = "" end
for w in string.gmatch(str,"[^\\]+") do
table.insert(chunks,w)
end
if #chunks > 0 then str = chunks[#chunks] end
if str:sub(1,1) == "!" then str = str:sub(2) end
for i,v in next, frame:GetChildren() do
if v:IsA("TextButton") then
if bool then
if Match(v.Text,str) then
indexnum = indexnum + 1
v.Visible = true
if topCommand == nil then
topCommand = v.Text
end
else
v.Visible = false
end
else
v.Visible = true
if topCommand == nil then
topCommand = v.Text
end
end
end
end
frame.CanvasSize = UDim2.new(0,0,0,cmdListLayout.AbsoluteContentSize.Y)
if not Ianim then
if indexnum == 0 or string.find(str, " ") then
if not cmdbar then
minimizeHolder()
elseif cmdbar then
cmdbarHolder()
end
else
maximizeHolder()
end
else
minimizeHolder()
end
end
task.spawn(function()
if not isLegacyChat then return end
local chatbox
local success, result = pcall(function() chatbox = PlayerGui:WaitForChild("Chat").Frame.ChatBarParentFrame.Frame.BoxFrame.Frame.ChatBar end)
if success then
local function chatboxFocused()
canvasPos = CMDsF.CanvasPosition
end
local chatboxFocusedC = chatbox.Focused:Connect(chatboxFocused)
local function Index()
if chatbox.Text:lower():sub(1,1) == prefix then
if SettingsOpen == true then
wait(0.2)
CMDsF.Visible = true
Settings:TweenPosition(UDim2.new(0, 0, 0, 220), "InOut", "Quart", 0.2, true, nil)
end
IndexContents(PlayerGui.Chat.Frame.ChatBarParentFrame.Frame.BoxFrame.Frame.ChatBar.Text:lower():sub(2),true)
else
minimizeHolder()
if SettingsOpen == true then
wait(0.2)
Settings:TweenPosition(UDim2.new(0, 0, 0, 45), "InOut", "Quart", 0.2, true, nil)
CMDsF.Visible = false
end
end
end
local chatboxFunc = chatbox:GetPropertyChangedSignal("Text"):Connect(Index)
local function chatboxFocusLost(enterpressed)
if not enterpressed or chatbox.Text:lower():sub(1,1) ~= prefix then
IndexContents('',true)
end
CMDsF.CanvasPosition = canvasPos
minimizeHolder()
end
local chatboxFocusLostC = chatbox.FocusLost:Connect(chatboxFocusLost)
PlayerGui:WaitForChild("Chat").Frame.ChatBarParentFrame.ChildAdded:Connect(function(newbar)
wait()
if newbar:FindFirstChild('BoxFrame') then
chatbox = PlayerGui:WaitForChild("Chat").Frame.ChatBarParentFrame.Frame.BoxFrame.Frame.ChatBar
if chatboxFocusedC then chatboxFocusedC:Disconnect() end
chatboxFocusedC = chatbox.Focused:Connect(chatboxFocused)
if chatboxFunc then chatboxFunc:Disconnect() end
chatboxFunc = chatbox:GetPropertyChangedSignal("Text"):Connect(Index)
if chatboxFocusLostC then chatboxFocusLostC:Disconnect() end
chatboxFocusLostC = chatbox.FocusLost:Connect(chatboxFocusLost)
end
end)
--else
--print('Custom chat detected. Will not provide suggestions for commands typed in the chat.')
end
end)
function autoComplete(str,curText)
local endingChar = {"[", "/", "(", " "}
local stop = 0
for i=1,#str do
local c = str:sub(i,i)
if table.find(endingChar, c) then
stop = i
break
end
end
curText = curText or Cmdbar.Text
local subPos = 0
local pos = 1
local findRes = string.find(curText,"\\",pos)
while findRes do
subPos = findRes
pos = findRes+1
findRes = string.find(curText,"\\",pos)
end
if curText:sub(subPos+1,subPos+1) == "!" then subPos = subPos + 1 end
Cmdbar.Text = curText:sub(1,subPos) .. str:sub(1, stop - 1)..' '
RunService.RenderStepped:Wait()
Cmdbar.Text = Cmdbar.Text:gsub( '\t', '' )
Cmdbar.CursorPosition = #Cmdbar.Text+1--1020
end
CMDs = {}
CMDs[#CMDs + 1] = {NAME = 'discord / support / help', DESC = 'Invite to the Arc Yield discord server.'}
CMDs[#CMDs + 1] = {NAME = 'guiscale [number]', DESC = 'Changes the size of the gui. [number] accepts both decimals and whole numbers. Min is 0.4 and Max is 2'}
CMDs[#CMDs + 1] = {NAME = 'console', DESC = 'Loads Roblox console'}
CMDs[#CMDs + 1] = {NAME = 'oldconsole', DESC = 'Loads old Roblox console'}
CMDs[#CMDs + 1] = {NAME = 'explorer / dex', DESC = 'Opens DEX by Moon'}
CMDs[#CMDs + 1] = {NAME = 'olddex / odex', DESC = 'Opens Old DEX by Moon'}
CMDs[#CMDs + 1] = {NAME = 'remotespy / rspy', DESC = 'Opens Simple Spy V3'}
CMDs[#CMDs + 1] = {NAME = 'executor', DESC = 'Opens an internal executor gui by dnezero'}
CMDs[#CMDs + 1] = {NAME = 'nds / naturaldisaster / disastersurvival', DESC = 'Loads Natural Disaster Survival script by KaterHub'}
CMDs[#CMDs + 1] = {NAME = 'audiologger / alogger', DESC = 'Opens Edges audio logger'}
CMDs[#CMDs + 1] = {NAME = 'serverinfo / info', DESC = 'Gives you info about the server'}
CMDs[#CMDs + 1] = {NAME = 'jobid', DESC = 'Copies the games JobId to your clipboard'}
CMDs[#CMDs + 1] = {NAME = 'notifyjobid', DESC = 'Notifies you the games JobId'}
CMDs[#CMDs + 1] = {NAME = 'rejoin / rj', DESC = 'Makes you rejoin the game'}
CMDs[#CMDs + 1] = {NAME = 'autorejoin / autorj', DESC = 'Automatically rejoins the server if you get kicked/disconnected'}
CMDs[#CMDs + 1] = {NAME = 'serverhop / shop', DESC = 'Teleports you to a different server'}
CMDs[#CMDs + 1] = {NAME = 'gameteleport / gametp [place ID]', DESC = 'Joins a game by ID'}
CMDs[#CMDs + 1] = {NAME = 'antiidle / antiafk', DESC = 'Prevents the game from kicking you for being idle/afk'}
CMDs[#CMDs + 1] = {NAME = 'datalimit [num]', DESC = 'Set outgoing KBPS limit'}
CMDs[#CMDs + 1] = {NAME = 'replicationlag / backtrack [num]', DESC = 'Set IncomingReplicationLag'}
CMDs[#CMDs + 1] = {NAME = 'creatorid / creator', DESC = 'Notifies you the creators ID'}
CMDs[#CMDs + 1] = {NAME = 'copycreatorid / copycreator', DESC = 'Copies the creators ID to your clipboard'}
CMDs[#CMDs + 1] = {NAME = 'setcreatorid / setcreator', DESC = 'Sets your userid to the creators ID'}
CMDs[#CMDs + 1] = {NAME = 'noprompts', DESC = 'Prevents the game from showing you purchase/premium prompts'}
CMDs[#CMDs + 1] = {NAME = 'showprompts', DESC = 'Allows the game to show purchase/premium prompts again'}
CMDs[#CMDs + 1] = {NAME = 'enable [inventory/playerlist/chat/reset/emotes/all]', DESC = 'Toggles visibility of coregui items'}
CMDs[#CMDs + 1] = {NAME = 'disable [inventory/playerlist/chat/reset/emotes/all]', DESC = 'Toggles visibility of coregui items'}
CMDs[#CMDs + 1] = {NAME = 'showguis', DESC = 'Shows any invisible GUIs'}
CMDs[#CMDs + 1] = {NAME = 'unshowguis', DESC = 'Undoes showguis'}
CMDs[#CMDs + 1] = {NAME = 'hideguis', DESC = 'Hides any GUIs in PlayerGui'}
CMDs[#CMDs + 1] = {NAME = 'unhideguis', DESC = 'Undoes hideguis'}
CMDs[#CMDs + 1] = {NAME = 'guidelete', DESC = 'Enables backspace to delete GUI'}
CMDs[#CMDs + 1] = {NAME = 'unguidelete / noguidelete', DESC = 'Disables guidelete'}
CMDs[#CMDs + 1] = {NAME = 'hideiy', DESC = 'Hides the main IY GUI'}
CMDs[#CMDs + 1] = {NAME = 'showiy / unhideiy', DESC = 'Shows IY again'}
CMDs[#CMDs + 1] = {NAME = 'keepiy', DESC = 'Auto execute IY when you teleport through servers'}
CMDs[#CMDs + 1] = {NAME = 'unkeepiy', DESC = 'Disable keepiy'}
CMDs[#CMDs + 1] = {NAME = 'togglekeepiy', DESC = 'Toggles keepiy'}
CMDs[#CMDs + 1] = {NAME = 'removeads / adblock', DESC = 'Automatically removes ad billboards'}
CMDs[#CMDs + 1] = {NAME = 'savegame / saveplace', DESC = 'Uses saveinstance to save the game'}
CMDs[#CMDs + 1] = {NAME = 'clearerror', DESC = 'Clears the annoying box and blur when a game kicks you'}
CMDs[#CMDs + 1] = {NAME = 'antigameplaypaused', DESC = 'Clears the annoying box shown when a game is loading assets due to network lag'}
CMDs[#CMDs + 1] = {NAME = 'unantigameplaypaused', DESC = 'Disables antigameplaypaused'}
CMDs[#CMDs + 1] = {NAME = 'clientantikick / antikick (CLIENT)', DESC = 'Prevents localscripts from kicking you'}
CMDs[#CMDs + 1] = {NAME = 'clientantiteleport / antiteleport (CLIENT)', DESC = 'Prevents localscripts from teleporting you'}
CMDs[#CMDs + 1] = {NAME = 'allowrejoin / allowrj [true/false] (CLIENT)', DESC = 'Changes if antiteleport allows you to rejoin or not'}
CMDs[#CMDs + 1] = {NAME = 'cancelteleport / canceltp', DESC = 'Cancels teleports in progress'}
CMDs[#CMDs + 1] = {NAME = 'volume / vol [0-10]', DESC = 'Adjusts your game volume on a scale of 0 to 10'}
CMDs[#CMDs + 1] = {NAME = 'antilag / boostfps / lowgraphics', DESC = 'Lowers game quality to boost FPS'}
CMDs[#CMDs + 1] = {NAME = 'record / rec', DESC = 'Starts Roblox recorder'}
CMDs[#CMDs + 1] = {NAME = 'screenshot / scrnshot', DESC = 'Takes a screenshot'}
CMDs[#CMDs + 1] = {NAME = 'togglefullscreen / togglefs', DESC = 'Toggles fullscreen'}
CMDs[#CMDs + 1] = {NAME = 'notify [text]', DESC = 'Sends you a notification with the provided text'}
CMDs[#CMDs + 1] = {NAME = 'lastcommand / lastcmd', DESC = 'Executes the previous command used'}
CMDs[#CMDs + 1] = {NAME = 'notifyping / ping', DESC = 'Notify yourself your ping'}
CMDs[#CMDs + 1] = {NAME = 'norender', DESC = 'Disable 3d Rendering to decrease the amount of CPU the client uses'}
CMDs[#CMDs + 1] = {NAME = 'render', DESC = 'Enable 3d Rendering'}
CMDs[#CMDs + 1] = {NAME = 'use2022materials / 2022materials', DESC = 'Enables 2022 material textures'}
CMDs[#CMDs + 1] = {NAME = 'unuse2022materials / un2022materials', DESC = 'Disables 2022 material textures'}
CMDs[#CMDs + 1] = {NAME = 'alignmentkeys', DESC = 'Enables the left and right alignment keys (comma and period)'}
CMDs[#CMDs + 1] = {NAME = 'unalignmentkeys / noalignmentkeys', DESC = 'Disables the alignment keys'}
CMDs[#CMDs + 1] = {NAME = 'ctrllock', DESC = 'Binds Shiftlock to LeftControl'}
CMDs[#CMDs + 1] = {NAME = 'unctrllock', DESC = 'Re-binds Shiftlock to LeftShift'}
CMDs[#CMDs + 1] = {NAME = 'exit', DESC = 'Kills roblox process'}
CMDs[#CMDs + 1] = {NAME = 'removecmd / deletecmd', DESC = 'Removes a command until the script is reloaded'}
CMDs[#CMDs + 1] = {NAME = 'breakloops / break (cmd loops)', DESC = 'Stops any cmd loops (;100^1^cmd)'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'noclip', DESC = 'Go through objects'}
CMDs[#CMDs + 1] = {NAME = 'unnoclip / clip', DESC = 'Disables noclip'}
CMDs[#CMDs + 1] = {NAME = 'nocliph / hclip [studs]', DESC = 'Teleports you vertically through floors/ceilings (default 10 studs)'}
CMDs[#CMDs + 1] = {NAME = 'fly [speed]', DESC = 'Makes you fly'}
CMDs[#CMDs + 1] = {NAME = 'unfly', DESC = 'Disables fly'}
CMDs[#CMDs + 1] = {NAME = 'flyspeed [num]', DESC = 'Set fly speed (default is 20)'}
CMDs[#CMDs + 1] = {NAME = 'vehiclefly / vfly [speed]', DESC = 'Makes you fly in a vehicle'}
CMDs[#CMDs + 1] = {NAME = 'unvehiclefly / unvfly', DESC = 'Disables vehicle fly'}
CMDs[#CMDs + 1] = {NAME = 'vehicleflyspeed / vflyspeed [num]', DESC = 'Set vehicle fly speed'}
CMDs[#CMDs + 1] = {NAME = 'cframefly / cfly [speed]', DESC = 'Makes you fly, bypassing some anti cheats (works on mobile)'}
CMDs[#CMDs + 1] = {NAME = 'uncframefly / uncfly', DESC = 'Disables cfly'}
CMDs[#CMDs + 1] = {NAME = 'cframeflyspeed / cflyspeed [num]', DESC = 'Sets cfly speed'}
CMDs[#CMDs + 1] = {NAME = 'rotatespeed / rspeed / rs [angle] [key]', DESC = 'Snaps camera to angle for 0.05s on key press then restores. Example: rotatespeed 90 E'}
CMDs[#CMDs + 1] = {NAME = 'unrotatespeed / unrspeed / unrs', DESC = 'Disables rotatespeed'}
CMDs[#CMDs + 1] = {NAME = 'qefly [true / false]', DESC = 'Enables or disables the Q and E hotkeys for fly'}
CMDs[#CMDs + 1] = {NAME = 'vehiclenoclip / vnoclip', DESC = 'Turns off vehicle collision'}
CMDs[#CMDs + 1] = {NAME = 'vehicleclip / vclip / unvnoclip', DESC = 'Enables vehicle collision'}
CMDs[#CMDs + 1] = {NAME = 'float / platform', DESC = 'Spawns a platform beneath you causing you to float'}
CMDs[#CMDs + 1] = {NAME = 'unfloat / noplatform', DESC = 'Removes the platform'}
CMDs[#CMDs + 1] = {NAME = 'swim', DESC = 'Allows you to swim in the air'}
CMDs[#CMDs + 1] = {NAME = 'unswim / noswim', DESC = 'Stops you from swimming everywhere'}
CMDs[#CMDs + 1] = {NAME = 'toggleswim', DESC = 'Toggles swimming'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'setwaypoint / swp [name]', DESC = 'Sets a waypoint at your position'}
CMDs[#CMDs + 1] = {NAME = 'waypointpos / wpp [name] [X Y Z]', DESC = 'Sets a waypoint with specified coordinates'}
CMDs[#CMDs + 1] = {NAME = 'waypoints', DESC = 'Shows a list of currently active waypoints'}
CMDs[#CMDs + 1] = {NAME = 'showwaypoints / showwp', DESC = 'Shows all currently set waypoints'}
CMDs[#CMDs + 1] = {NAME = 'hidewaypoints / hidewp', DESC = 'Hides shown waypoints'}
CMDs[#CMDs + 1] = {NAME = 'waypoint / wp [name]', DESC = 'Teleports player to a waypoint'}
CMDs[#CMDs + 1] = {NAME = 'tweenwaypoint / twp [name]', DESC = 'Tweens player to a waypoint'}
CMDs[#CMDs + 1] = {NAME = 'walktowaypoint / wtwp [name]', DESC = 'Walks player to a waypoint'}
CMDs[#CMDs + 1] = {NAME = 'deletewaypoint / dwp [name]', DESC = 'Deletes a waypoint'}
CMDs[#CMDs + 1] = {NAME = 'clearwaypoints / cwp', DESC = 'Clears all waypoints'}
CMDs[#CMDs + 1] = {NAME = 'cleargamewaypoints / cgamewp', DESC = 'Clears all waypoints for the game you are in'}
CMDs[#CMDs + 1] = {NAME = 'pathfindtopos / pftopos [X] [Y] [Z]', DESC = 'Pathfind walk to a specific coordinate'}
CMDs[#CMDs + 1] = {NAME = 'unpathfindtopos / unpftopos', DESC = 'Stops pathfindtopos'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'goto [player]', DESC = 'Go to a player'}
CMDs[#CMDs + 1] = {NAME = 'tweengoto / tgoto [player]', DESC = 'Tween to a player (bypasses some anti cheats)'}
CMDs[#CMDs + 1] = {NAME = 'tweenspeed / tspeed [num]', DESC = 'Sets how fast all tween commands go (default is 1)'}
CMDs[#CMDs + 1] = {NAME = 'vehiclegoto / vgoto [player]', DESC = 'Go to a player while in a vehicle'}
CMDs[#CMDs + 1] = {NAME = 'loopgoto [player] [distance] [delay]', DESC = 'Loop teleport to a player'}
CMDs[#CMDs + 1] = {NAME = 'unloopgoto', DESC = 'Stops teleporting you to a player'}
CMDs[#CMDs + 1] = {NAME = 'pulsetp / ptp [player] [seconds]', DESC = 'Teleports you to a player for a specified amount of time'}
CMDs[#CMDs + 1] = {NAME = 'clientbring / cbring [player] (CLIENT)', DESC = 'Bring a player'}
CMDs[#CMDs + 1] = {NAME = 'loopbring [player] [distance] [delay] (CLIENT)', DESC = 'Loop brings a player to you (useful for killing)'}
CMDs[#CMDs + 1] = {NAME = 'unloopbring [player]', DESC = 'Undoes loopbring'}
CMDs[#CMDs + 1] = {NAME = 'freeze / fr [player] (CLIENT)', DESC = 'Freezes a player'}
CMDs[#CMDs + 1] = {NAME = 'freezeanims', DESC = 'Freezes your animations / pauses your animations - Does not work on default animations'}
CMDs[#CMDs + 1] = {NAME = 'unfreezeanims', DESC = 'Unfreezes your animations / plays your animations'}
CMDs[#CMDs + 1] = {NAME = 'thaw / unfr [player] (CLIENT)', DESC = 'Unfreezes a player'}
CMDs[#CMDs + 1] = {NAME = 'anchor', DESC = 'Anchors your characters RootPart'}
CMDs[#CMDs + 1] = {NAME = 'unanchor', DESC = 'Unanchors your characters RootPart'}
CMDs[#CMDs + 1] = {NAME = 'tpposition / tppos [X Y Z]', DESC = 'Teleports you to certain coordinates'}
CMDs[#CMDs + 1] = {NAME = 'tweentpposition / ttppos [X Y Z]', DESC = 'Tween to coordinates (bypasses some anti cheats)'}
CMDs[#CMDs + 1] = {NAME = 'offset [X Y Z]', DESC = 'Offsets you by certain coordinates'}
CMDs[#CMDs + 1] = {NAME = 'tweenoffset / toffset [X Y Z]', DESC = 'Tween offset (bypasses some anti cheats)'}
CMDs[#CMDs + 1] = {NAME = 'thru [num]', DESC = 'Teleports you [num] studs ahead of where your character is facing'}
CMDs[#CMDs + 1] = {NAME = 'notifyposition / notifypos [player]', DESC = 'Notifies you the coordinates of a character'}
CMDs[#CMDs + 1] = {NAME = 'copyposition / copypos [player]', DESC = 'Copies the coordinates of a character to your clipboard'}
CMDs[#CMDs + 1] = {NAME = 'walktoposition / walktopos [X Y Z]', DESC = 'Makes you walk to a coordinate'}
CMDs[#CMDs + 1] = {NAME = 'spawnpoint / spawn [delay]', DESC = 'Sets a position where you will spawn'}
CMDs[#CMDs + 1] = {NAME = 'nospawnpoint / nospawn', DESC = 'Removes your custom spawn point'}
CMDs[#CMDs + 1] = {NAME = 'flashback / diedtp', DESC = 'Teleports you to where you last died'}
CMDs[#CMDs + 1] = {NAME = 'walltp', DESC = 'Teleports you above/over any wall you run into'}
CMDs[#CMDs + 1] = {NAME = 'nowalltp / unwalltp', DESC = 'Disables walltp'}
CMDs[#CMDs + 1] = {NAME = 'teleporttool / tptool', DESC = 'Gives you a teleport tool'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'logs', DESC = 'Opens the logs GUI'}
CMDs[#CMDs + 1] = {NAME = 'chatlogs / clogs', DESC = 'Log what people say or whisper'}
CMDs[#CMDs + 1] = {NAME = 'joinlogs / jlogs', DESC = 'Log when people join'}
CMDs[#CMDs + 1] = {NAME = 'chatlogswebhook / logswebhook [url]', DESC = 'Set a discord webhook for chatlogs to go to (provide no url to disable this)'}
CMDs[#CMDs + 1] = {NAME = 'chat / say [text]', DESC = 'Makes you chat a string (possible mute bypass)'}
CMDs[#CMDs + 1] = {NAME = 'spam [text]', DESC = 'Makes you spam the chat'}
CMDs[#CMDs + 1] = {NAME = 'unspam', DESC = 'Turns off spam'}
CMDs[#CMDs + 1] = {NAME = 'whisper / pm [player] [text]', DESC = 'Makes you whisper a string to someone (possible mute bypass)'}
CMDs[#CMDs + 1] = {NAME = 'pmspam [player] [text]', DESC = 'Makes you spam a players whispers'}
CMDs[#CMDs + 1] = {NAME = 'unpmspam [player]', DESC = 'Turns off pm spam'}
CMDs[#CMDs + 1] = {NAME = 'spamspeed [num]', DESC = 'How quickly you spam (default is 1)'}
CMDs[#CMDs + 1] = {NAME = 'bubblechat (CLIENT)', DESC = 'Enables bubble chat for your client'}
CMDs[#CMDs + 1] = {NAME = 'unbubblechat / nobubblechat', DESC = 'Disables the bubblechat command'}
CMDs[#CMDs + 1] = {NAME = 'chatwindow', DESC = 'Enables the chat window for your client'}
CMDs[#CMDs + 1] = {NAME = 'unchatwindow / nochatwindow', DESC = 'Disables the chat window for your client'}
CMDs[#CMDs + 1] = {NAME = 'darkchat', DESC = 'Makes the chat window dark for your client'}
CMDs[#CMDs + 1] = {NAME = 'listento [player]', DESC = 'Listens to the area around a player. Can also eavesdrop with vc'}
CMDs[#CMDs + 1] = {NAME = 'unlistento', DESC = 'Disables listento'}
CMDs[#CMDs + 1] = {NAME = 'muteallvoices / muteallvcs', DESC = 'Mutes voice chat for all players'}
CMDs[#CMDs + 1] = {NAME = 'unmuteallvoices / unmuteallvcs', DESC = 'Unmutes voice chat for all players'}
CMDs[#CMDs + 1] = {NAME = 'mutevc [player]', DESC = 'Mutes the voice chat of a player'}
CMDs[#CMDs + 1] = {NAME = 'unmutevc [player]', DESC = 'Unmutes the voice chat of a player'}
CMDs[#CMDs + 1] = {NAME = 'phonebook / call', DESC = 'Prompts the Roblox phonebook UI to let you call your friends. Needs voice chat enabled'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'esp', DESC = 'View all players and their status'}
CMDs[#CMDs + 1] = {NAME = 'espteam', DESC = 'ESP but teammates are green and bad guys are red'}
CMDs[#CMDs + 1] = {NAME = 'noesp / unesp / unespteam', DESC = 'Removes ESP'}
CMDs[#CMDs + 1] = {NAME = 'esptransparency [number]', DESC = 'Changes the transparency of ESP related commands'}
CMDs[#CMDs + 1] = {NAME = 'partesp [part name]', DESC = 'Highlights a part'}
CMDs[#CMDs + 1] = {NAME = 'unpartesp / nopartesp [part name]', DESC = 'removes partesp'}
CMDs[#CMDs + 1] = {NAME = 'chams', DESC = 'ESP but without text in the way'}
CMDs[#CMDs + 1] = {NAME = 'nochams / unchams', DESC = 'Removes chams'}
CMDs[#CMDs + 1] = {NAME = 'locate [player]', DESC = 'View a single player and their status'}
CMDs[#CMDs + 1] = {NAME = 'unlocate / nolocate [player]', DESC = 'Removes locate'}
CMDs[#CMDs + 1] = {NAME = 'xray', DESC = 'Makes all parts in workspace transparent'}
CMDs[#CMDs + 1] = {NAME = 'unxray / noxray', DESC = 'Restores transparency to all parts in workspace'}
CMDs[#CMDs + 1] = {NAME = 'loopxray', DESC = 'Makes all parts in workspace transparent but looped'}
CMDs[#CMDs + 1] = {NAME = 'unloopxray', DESC = 'Unloops xray'}
CMDs[#CMDs + 1] = {NAME = 'togglexray', DESC = 'Toggles xray'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'spectate / view [player]', DESC = 'View a player'}
CMDs[#CMDs + 1] = {NAME = 'viewpart / viewp [part name]', DESC = 'View a part'}
CMDs[#CMDs + 1] = {NAME = 'unspectate / unview', DESC = 'Stops viewing player'}
CMDs[#CMDs + 1] = {NAME = 'freecam / fc', DESC = 'Allows you to freely move camera around the game'}
CMDs[#CMDs + 1] = {NAME = 'freecampos / fcpos [X Y Z]', DESC = 'Moves / opens freecam in a certain position'}
CMDs[#CMDs + 1] = {NAME = 'freecamwaypoint / fcwp [name]', DESC = 'Moves / opens freecam to a waypoint'}
CMDs[#CMDs + 1] = {NAME = 'freecamgoto / fcgoto / fctp [player]', DESC = 'Moves / opens freecam to a player'}
CMDs[#CMDs + 1] = {NAME = 'unfreecam / unfc', DESC = 'Disables freecam'}
CMDs[#CMDs + 1] = {NAME = 'freecamspeed / fcspeed [num]', DESC = 'Adjusts freecam speed (default is 1)'}
CMDs[#CMDs + 1] = {NAME = 'notifyfreecamposition / notifyfcpos', DESC = 'Noitifies you your freecam coordinates'}
CMDs[#CMDs + 1] = {NAME = 'copyfreecamposition / copyfcpos', DESC = 'Copies your freecam coordinates to your clipboard'}
CMDs[#CMDs + 1] = {NAME = 'gotocamera / gotocam', DESC = 'Teleports you to the location of your camera'}
CMDs[#CMDs + 1] = {NAME = 'tweengotocam / tgotocam', DESC = 'Tweens you to the location of your camera'}
CMDs[#CMDs + 1] = {NAME = 'firstp', DESC = 'Forces camera to go into first person'}
CMDs[#CMDs + 1] = {NAME = 'thirdp', DESC = 'Allows camera to go into third person'}
CMDs[#CMDs + 1] = {NAME = 'noclipcam / nccam', DESC = 'Allows camera to go through objects like walls'}
CMDs[#CMDs + 1] = {NAME = 'maxzoom [num]', DESC = 'Maximum camera zoom'}
CMDs[#CMDs + 1] = {NAME = 'minzoom [num]', DESC = 'Minimum camera zoom'}
CMDs[#CMDs + 1] = {NAME = 'camdistance [num]', DESC = 'Changes camera distance from your player'}
CMDs[#CMDs + 1] = {NAME = 'fov [num]', DESC = 'Adjusts field of view (default is 70)'}
CMDs[#CMDs + 1] = {NAME = 'fixcam / restorecam', DESC = 'Fixes camera'}
CMDs[#CMDs + 1] = {NAME = 'enableshiftlock / enablesl', DESC = 'Enables the shift lock option'}
CMDs[#CMDs + 1] = {NAME = 'lookat [player]', DESC = 'Moves your camera view to a player'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'btools (CLIENT)', DESC = 'Gives you building tools (DOES NOT REPLICATE)'}
CMDs[#CMDs + 1] = {NAME = 'f3x (CLIENT)', DESC = 'Gives you F3X building tools (DOES NOT REPLICATE)'}
CMDs[#CMDs + 1] = {NAME = 'partname / partpath', DESC = 'Allows you to click a part to see its path & name'}
CMDs[#CMDs + 1] = {NAME = 'delete [instance name] (CLIENT)', DESC = 'Removes any part with a certain name from the workspace (DOES NOT REPLICATE)'}
CMDs[#CMDs + 1] = {NAME = 'deleteclass / dc [class name] (CLIENT)', DESC = 'Removes any part with a certain classname from the workspace (DOES NOT REPLICATE)'}
CMDs[#CMDs + 1] = {NAME = 'lockworkspace / lockws', DESC = 'Locks the whole workspace'}
CMDs[#CMDs + 1] = {NAME = 'unlockworkspace / unlockws', DESC = 'Unlocks the whole workspace'}
CMDs[#CMDs + 1] = {NAME = 'invisibleparts / invisparts (CLIENT)', DESC = 'Shows invisible parts'}
CMDs[#CMDs + 1] = {NAME = 'uninvisibleparts / uninvisparts (CLIENT)', DESC = 'Makes parts affected by invisparts return to normal'}
CMDs[#CMDs + 1] = {NAME = 'deleteinvisparts / dip (CLIENT)', DESC = 'Deletes invisible parts'}
CMDs[#CMDs + 1] = {NAME = 'gotopart [part name]', DESC = 'Moves your character to a part or multiple parts'}
CMDs[#CMDs + 1] = {NAME = 'tweengotopart / tgotopart [part name]', DESC = 'Tweens your character to a part or multiple parts'}
CMDs[#CMDs + 1] = {NAME = 'gotopartclass / gpc [class name]', DESC = 'Moves your character to a part or multiple parts based on classname'}
CMDs[#CMDs + 1] = {NAME = 'tweengotopartclass / tgpc [class name]', DESC = 'Tweens your character to a part or multiple parts based on classname'}
CMDs[#CMDs + 1] = {NAME = 'gotomodel [part name]', DESC = 'Moves your character to a model or multiple models'}
CMDs[#CMDs + 1] = {NAME = 'tweengotomodel / tgotomodel [part name]', DESC = 'Tweens your character to a model or multiple models'}
CMDs[#CMDs + 1] = {NAME = 'gotopartdelay / gotomodeldelay [num]', DESC = 'Adjusts how quickly you teleport to each part (default is 0.1)'}
CMDs[#CMDs + 1] = {NAME = 'bringpart [part name] (CLIENT)', DESC = 'Moves a part or multiple parts to your character'}
CMDs[#CMDs + 1] = {NAME = 'bringpartclass / bpc [class name] (CLIENT)', DESC = 'Moves a part or multiple parts to your character based on classname'}
CMDs[#CMDs + 1] = {NAME = 'noclickdetectorlimits / nocdlimits', DESC = 'Sets all click detectors MaxActivationDistance to math.huge'}
CMDs[#CMDs + 1] = {NAME = 'fireclickdetectors / firecd [name]', DESC = 'Uses all click detectors in a game or uses the optional name'}
CMDs[#CMDs + 1] = {NAME = 'firetouchinterests / touchinterests [name]', DESC = 'Uses all touchinterests in a game or uses the optional name'}
CMDs[#CMDs + 1] = {NAME = 'touchparts [name] [delay]', DESC = 'Teleports to all parts with given name. Default delay 0.2s'}
CMDs[#CMDs + 1] = {NAME = 'noproximitypromptlimits / nopplimits', DESC = 'Sets all proximity prompts MaxActivationDistance to math.huge'}
CMDs[#CMDs + 1] = {NAME = 'fireproximityprompts / firepp [name]', DESC = 'Uses all proximity prompts in a game or uses the optional name'}
CMDs[#CMDs + 1] = {NAME = 'instantproximityprompts / instantpp', DESC = 'Disable the cooldown for proximity prompts'}
CMDs[#CMDs + 1] = {NAME = 'uninstantproximityprompts / uninstantpp', DESC = 'Undo the cooldown removal'}
CMDs[#CMDs + 1] = {NAME = 'tpunanchored / tpua [player]', DESC = 'Teleports unanchored parts to a player'}
CMDs[#CMDs + 1] = {NAME = 'animsunanchored / freezeua', DESC = 'Freezes unanchored parts'}
CMDs[#CMDs + 1] = {NAME = 'thawunanchored / thawua / unfreezeua', DESC = 'Thaws unanchored parts'}
CMDs[#CMDs + 1] = {NAME = 'removeterrain / rterrain / noterrain', DESC = 'Removes all terrain'}
CMDs[#CMDs + 1] = {NAME = 'clearnilinstances / nonilinstances / cni', DESC = 'Removes nil instances'}
CMDs[#CMDs + 1] = {NAME = 'destroyheight / dh [num]', DESC = 'Sets FallenPartsDestroyHeight'}
CMDs[#CMDs + 1] = {NAME = 'fakeout', DESC = 'Tp to the void and then back (useful to kill people attached to you)'}
CMDs[#CMDs + 1] = {NAME = 'antivoid', DESC = 'Prevents you from falling into the void by launching you upwards'}
CMDs[#CMDs + 1] = {NAME = 'unantivoid / noantivoid', DESC = 'Disables antivoid'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'fullbright / fb (CLIENT)', DESC = 'Makes the map brighter / more visible'}
CMDs[#CMDs + 1] = {NAME = 'loopfullbright / loopfb (CLIENT)', DESC = 'Makes the map brighter / more visible but looped'}
CMDs[#CMDs + 1] = {NAME = 'unloopfullbright / unloopfb', DESC = 'Unloops fullbright'}
CMDs[#CMDs + 1] = {NAME = 'ambient [num] [num] [num] (CLIENT)', DESC = 'Changes ambient'}
CMDs[#CMDs + 1] = {NAME = 'day (CLIENT)', DESC = 'Changes the time to day for the client'}
CMDs[#CMDs + 1] = {NAME = 'night (CLIENT)', DESC = 'Changes the time to night for the client'}
CMDs[#CMDs + 1] = {NAME = 'nofog (CLIENT)', DESC = 'Removes fog'}
CMDs[#CMDs + 1] = {NAME = 'brightness [num] (CLIENT)', DESC = 'Changes the brightness lighting property'}
CMDs[#CMDs + 1] = {NAME = 'globalshadows / gshadows (CLIENT)', DESC = 'Enables global shadows'}
CMDs[#CMDs + 1] = {NAME = 'noglobalshadows / nogshadows (CLIENT)', DESC = 'Disables global shadows'}
CMDs[#CMDs + 1] = {NAME = 'restorelighting / rlighting', DESC = 'Restores Lighting properties'}
CMDs[#CMDs + 1] = {NAME = 'light [radius] [brightness] (CLIENT)', DESC = 'Gives your player dynamic light'}
CMDs[#CMDs + 1] = {NAME = 'nolight / unlight', DESC = 'Removes dynamic light from your player'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'inspect / examine [player]', DESC = 'Opens InspectMenu for a certain player'}
CMDs[#CMDs + 1] = {NAME = 'age [player]', DESC = 'Tells you the age of a player'}
CMDs[#CMDs + 1] = {NAME = 'chatage [player]', DESC = 'Chats the age of a player'}
CMDs[#CMDs + 1] = {NAME = 'joindate / jd [player]', DESC = 'Tells you the date the player joined Roblox'}
CMDs[#CMDs + 1] = {NAME = 'chatjoindate / cjd [player]', DESC = 'Chats the date the player joined Roblox'}
CMDs[#CMDs + 1] = {NAME = 'copyname / copyuser [player]', DESC = 'Copies a players full username to your clipboard'}
CMDs[#CMDs + 1] = {NAME = 'userid / id [player]', DESC = 'Notifies a players user ID'}
CMDs[#CMDs + 1] = {NAME = 'copyplaceid / placeid', DESC = 'Copies the current place id to your clipboard'}
CMDs[#CMDs + 1] = {NAME = 'copygameid / gameid', DESC = 'Copies the current game id to your clipboard'}
CMDs[#CMDs + 1] = {NAME = 'copyuserid / copyid [player]', DESC = 'Copies a players user ID to your clipboard'}
CMDs[#CMDs + 1] = {NAME = 'appearanceid / aid [player]', DESC = 'Notifies a players appearance ID'}
CMDs[#CMDs + 1] = {NAME = 'copyappearanceid / caid [player]', DESC = 'Copies a players appearance ID to your clipboard'}
CMDs[#CMDs + 1] = {NAME = 'bang [player] [speed]', DESC = 'owo'}
CMDs[#CMDs + 1] = {NAME = 'unbang', DESC = 'uwu'}
CMDs[#CMDs + 1] = {NAME = 'jerk', DESC = 'Makes you jork it'}
CMDs[#CMDs + 1] = {NAME = 'scare / spook [player]', DESC = 'Teleports in front of a player for half a second'}
CMDs[#CMDs + 1] = {NAME = 'carpet [player]', DESC = 'Be someones carpet'}
CMDs[#CMDs + 1] = {NAME = 'uncarpet', DESC = 'Undoes carpet'}
CMDs[#CMDs + 1] = {NAME = 'friend [player]', DESC = 'Sends a friend request to certain players'}
CMDs[#CMDs + 1] = {NAME = 'unfriend [player]', DESC = 'Unfriends certain players'}
CMDs[#CMDs + 1] = {NAME = 'headsit [player]', DESC = 'Sit on a players head'}
CMDs[#CMDs + 1] = {NAME = 'walkto / follow [player]', DESC = 'Follow a player'}
CMDs[#CMDs + 1] = {NAME = 'pathfindwalkto / pathfindfollow [player]', DESC = 'Follow a player using pathfinding'}
CMDs[#CMDs + 1] = {NAME = 'pathfindwalktowaypoint / pathfindwalktowp [waypoint]', DESC = 'Walk to a waypoint using pathfinding'}
CMDs[#CMDs + 1] = {NAME = 'pathfindflyto / pfflyto [player] [height]', DESC = 'Flies you up then pathfinds to a player (escapes walls/boxes)'}
CMDs[#CMDs + 1] = {NAME = 'pathfindflytowp / pfflytowp [waypoint] [height]', DESC = 'Flies you up then pathfinds to a waypoint'}
CMDs[#CMDs + 1] = {NAME = 'unpathfindfly', DESC = 'Stops pathfindflyto / pathfindflytowp'}
CMDs[#CMDs + 1] = {NAME = 'unwalkto / unfollow', DESC = 'Stops following a player'}
CMDs[#CMDs + 1] = {NAME = 'orbit [player] [speed] [distance]', DESC = 'Makes your character orbit around a player with an optional speed and an optional distance'}
CMDs[#CMDs + 1] = {NAME = 'unorbit', DESC = 'Disables orbit'}
CMDs[#CMDs + 1] = {NAME = 'stareat / stare [player]', DESC = 'Stare / look at a player'}
CMDs[#CMDs + 1] = {NAME = 'unstareat / unstare [player]', DESC = 'Disables stareat'}
CMDs[#CMDs + 1] = {NAME = 'rolewatch [group id] [role name]', DESC = 'Notify if someone from a watched group joins the server'}
CMDs[#CMDs + 1] = {NAME = 'rolewatchstop / unrolewatch', DESC = 'Disable Rolewatch'}
CMDs[#CMDs + 1] = {NAME = 'rolewatchleave', DESC = 'Toggle if you should leave the game if someone from a watched group joins the server'}
CMDs[#CMDs + 1] = {NAME = 'staffwatch', DESC = 'Notify if a staff member of the game joins the server'}
CMDs[#CMDs + 1] = {NAME = 'unstaffwatch', DESC = 'Disable Staffwatch'}
CMDs[#CMDs + 1] = {NAME = 'findfriendgroups', DESC = 'Notifies you if any players are friends with each other'}
CMDs[#CMDs + 1] = {NAME = 'handlekill / hkill [player] [radius] (TOOL)', DESC = 'Kills a player using tool damage (YOU NEED A TOOL)'}
CMDs[#CMDs + 1] = {NAME = 'fling', DESC = 'Flings anyone you touch'}
CMDs[#CMDs + 1] = {NAME = 'unfling', DESC = 'Disables the fling command'}
CMDs[#CMDs + 1] = {NAME = 'flyfling [speed]', DESC = 'Basically the invisfling command but not invisible'}
CMDs[#CMDs + 1] = {NAME = 'unflyfling', DESC = 'Disables the flyfling command'}
CMDs[#CMDs + 1] = {NAME = 'walkfling', DESC = 'Basically fling but no spinning'}
CMDs[#CMDs + 1] = {NAME = 'unwalkfling / nowalkfling', DESC = 'Disables walkfling'}
CMDs[#CMDs + 1] = {NAME = 'invisfling', DESC = 'Enables invisible fling (the invis part is patched, try using the god command before using this)'}
CMDs[#CMDs + 1] = {NAME = 'antifling', DESC = 'Disables player collisions to prevent you from being flung'}
CMDs[#CMDs + 1] = {NAME = 'unantifling', DESC = 'Disables antifling'}
CMDs[#CMDs + 1] = {NAME = 'loopoof', DESC = 'Loops everyones character sounds (everyone can hear)'}
CMDs[#CMDs + 1] = {NAME = 'unloopoof', DESC = 'Stops the oof chaos'}
CMDs[#CMDs + 1] = {NAME = 'muteboombox [player]', DESC = 'Mutes someones boombox'}
CMDs[#CMDs + 1] = {NAME = 'unmuteboombox [player]', DESC = 'Unmutes someones boombox'}
CMDs[#CMDs + 1] = {NAME = 'hitbox [player] [size] [transparency]', DESC = 'Expands the hitbox for players HumanoidRootPart (default is 1)'}
CMDs[#CMDs + 1] = {NAME = 'headsize [player] [size]', DESC = 'Expands the head size for players Head (default is 1)'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'reset', DESC = 'Resets your character normally'}
CMDs[#CMDs + 1] = {NAME = 'respawn', DESC = 'Respawns you'}
CMDs[#CMDs + 1] = {NAME = 'suicide / killme', DESC = 'Kills yourself'}
CMDs[#CMDs + 1] = {NAME = 'refresh / re', DESC = 'Respawns and brings you back to the same position'}
CMDs[#CMDs + 1] = {NAME = 'time / settime [hour]', DESC = 'Set lighting time of day (0-24)'}
CMDs[#CMDs + 1] = {NAME = 'god', DESC = 'Makes your character difficult to kill in most games'}
CMDs[#CMDs + 1] = {NAME = 'invisible / invis', DESC = 'Makes you invisible to other players'}
CMDs[#CMDs + 1] = {NAME = 'visible / vis', DESC = 'Makes you visible to other players'}
CMDs[#CMDs + 1] = {NAME = 'toolinvisible / toolinvis / tinvis', DESC = 'Makes you invisible to other players and able to use tools'}
CMDs[#CMDs + 1] = {NAME = 'speed / ws / walkspeed [num]', DESC = 'Change your walkspeed (default is 16)'}
CMDs[#CMDs + 1] = {NAME = 'spoofspeed / spoofws [num]', DESC = 'Spoofs your WalkSpeed on the Client'}
CMDs[#CMDs + 1] = {NAME = 'loopspeed / loopws [num]', DESC = 'Loops your walkspeed'}
CMDs[#CMDs + 1] = {NAME = 'unloopspeed / unloopws', DESC = 'Turns off loopspeed'}
CMDs[#CMDs + 1] = {NAME = 'hipheight / hheight [num]', DESC = 'Adjusts hip height'}
CMDs[#CMDs + 1] = {NAME = 'jumppower / jpower / jp [num]', DESC = 'Change a players jump height (default is 50)'}
CMDs[#CMDs + 1] = {NAME = 'spoofjumppower / spoofjp [num]', DESC = 'Spoofs your JumpPower on the Client'}
CMDs[#CMDs + 1] = {NAME = 'loopjumppower / loopjp [num]', DESC = 'Loops your jump height'}
CMDs[#CMDs + 1] = {NAME = 'unloopjumppower / unloopjp', DESC = 'Turns off loopjumppower'}
CMDs[#CMDs + 1] = {NAME = 'maxslopeangle / msa [num]', DESC = 'Adjusts MaxSlopeAngle'}
CMDs[#CMDs + 1] = {NAME = 'gravity / grav [num] (CLIENT)', DESC = 'Change your gravity'}
CMDs[#CMDs + 1] = {NAME = 'sit', DESC = 'Makes your character sit'}
CMDs[#CMDs + 1] = {NAME = 'lay / laydown', DESC = 'Makes your character lay down'}
CMDs[#CMDs + 1] = {NAME = 'sitwalk', DESC = 'Makes your character sit while still being able to walk'}
CMDs[#CMDs + 1] = {NAME = 'nosit', DESC = 'Prevents your character from sitting'}
CMDs[#CMDs + 1] = {NAME = 'unnosit', DESC = 'Disables nosit'}
CMDs[#CMDs + 1] = {NAME = 'jump', DESC = 'Makes your character jump'}
CMDs[#CMDs + 1] = {NAME = 'infinitejump / infjump', DESC = 'Allows you to jump before hitting the ground'}
CMDs[#CMDs + 1] = {NAME = 'uninfinitejump / uninfjump', DESC = 'Disables infjump'}
CMDs[#CMDs + 1] = {NAME = 'flyjump', DESC = 'Allows you to hold space to fly up'}
CMDs[#CMDs + 1] = {NAME = 'unflyjump', DESC = 'Disables flyjump'}
CMDs[#CMDs + 1] = {NAME = 'autojump / ajump', DESC = 'Automatically jumps when you run into an object'}
CMDs[#CMDs + 1] = {NAME = 'unautojump / unajump', DESC = 'Disables autojump'}
CMDs[#CMDs + 1] = {NAME = 'edgejump / ejump', DESC = 'Automatically jumps when you get to the edge of an object'}
CMDs[#CMDs + 1] = {NAME = 'unedgejump / unejump', DESC = 'Disables edgejump'}
CMDs[#CMDs + 1] = {NAME = 'platformstand / stun', DESC = 'Enables PlatformStand'}
CMDs[#CMDs + 1] = {NAME = 'unplatformstand / unstun', DESC = 'Disables PlatformStand'}
CMDs[#CMDs + 1] = {NAME = 'norotate / noautorotate', DESC = 'Disables AutoRotate'}
CMDs[#CMDs + 1] = {NAME = 'unnorotate / autorotate', DESC = 'Enables AutoRotate'}
CMDs[#CMDs + 1] = {NAME = 'enablestate [StateType]', DESC = 'Enables a humanoid state type'}
CMDs[#CMDs + 1] = {NAME = 'disablestate [StateType]', DESC = 'Disables a humanoid state type'}
CMDs[#CMDs + 1] = {NAME = 'team [team name] (CLIENT)', DESC = 'Changes your team. Sometimes fools localscripts.'}
CMDs[#CMDs + 1] = {NAME = 'nobillboardgui / nobgui / noname', DESC = 'Removes billboard and surface GUIs from your players (i.e. name GUIs at cafes)'}
CMDs[#CMDs + 1] = {NAME = 'loopnobgui / loopnoname', DESC = 'Loop removes billboard and surface GUIs from your players (i.e. name GUIs at cafes)'}
CMDs[#CMDs + 1] = {NAME = 'unloopnobgui / unloopnoname', DESC = 'Disables loopnobgui'}
CMDs[#CMDs + 1] = {NAME = 'noarms', DESC = 'Removes your arms'}
CMDs[#CMDs + 1] = {NAME = 'nolegs', DESC = 'Removes your legs'}
CMDs[#CMDs + 1] = {NAME = 'nolimbs', DESC = 'Removes your limbs'}
CMDs[#CMDs + 1] = {NAME = 'naked (CLIENT)', DESC = 'Removes your clothing'}
CMDs[#CMDs + 1] = {NAME = 'noface / removeface', DESC = 'Removes your face'}
CMDs[#CMDs + 1] = {NAME = 'blockhead', DESC = 'Turns your head into a block'}
CMDs[#CMDs + 1] = {NAME = 'blockhats', DESC = 'Turns your hats into blocks'}
CMDs[#CMDs + 1] = {NAME = 'blocktool', DESC = 'Turns the currently selected tool into a block'}
CMDs[#CMDs + 1] = {NAME = 'creeper', DESC = 'Makes you look like a creeper'}
CMDs[#CMDs + 1] = {NAME = 'drophats', DESC = 'Drops your hats'}
CMDs[#CMDs + 1] = {NAME = 'nohats / deletehats / rhats', DESC = 'Deletes your hats'}
CMDs[#CMDs + 1] = {NAME = 'hatspin / spinhats', DESC = 'Spins your characters accessories'}
CMDs[#CMDs + 1] = {NAME = 'unhatspin / unspinhats', DESC = 'Undoes spinhats'}
CMDs[#CMDs + 1] = {NAME = 'clearhats / cleanhats', DESC = 'Clears hats in the workspace'}
CMDs[#CMDs + 1] = {NAME = 'chardelete / cd [instance name]', DESC = 'Removes any part with a certain name from your character'}
CMDs[#CMDs + 1] = {NAME = 'chardeleteclass / cdc [class name]', DESC = 'Removes any part with a certain classname from your character'}
CMDs[#CMDs + 1] = {NAME = 'deletevelocity / dv / removeforces', DESC = 'Removes any velocity / force instances in your character'}
CMDs[#CMDs + 1] = {NAME = 'weaken [num]', DESC = 'Makes your character less dense'}
CMDs[#CMDs + 1] = {NAME = 'unweaken', DESC = 'Sets your characters CustomPhysicalProperties to default'}
CMDs[#CMDs + 1] = {NAME = 'strengthen [num]', DESC = 'Makes your character more dense (CustomPhysicalProperties)'}
CMDs[#CMDs + 1] = {NAME = 'unstrengthen', DESC = 'Sets your characters CustomPhysicalProperties to default'}
CMDs[#CMDs + 1] = {NAME = 'breakvelocity', DESC = 'Sets your characters velocity to 0'}
CMDs[#CMDs + 1] = {NAME = 'spin [speed]', DESC = 'Spins your character'}
CMDs[#CMDs + 1] = {NAME = 'unspin', DESC = 'Disables spin'}
CMDs[#CMDs + 1] = {NAME = 'split', DESC = 'Splits your character in half'}
CMDs[#CMDs + 1] = {NAME = 'nilchar', DESC = 'Sets your characters parent to nil'}
CMDs[#CMDs + 1] = {NAME = 'unnilchar / nonilchar', DESC = 'Sets your characters parent to workspace'}
CMDs[#CMDs + 1] = {NAME = 'noroot / removeroot / rroot', DESC = 'Removes your characters HumanoidRootPart'}
CMDs[#CMDs + 1] = {NAME = 'replaceroot', DESC = 'Replaces your characters HumanoidRootPart'}
CMDs[#CMDs + 1] = {NAME = 'clearcharappearance / clearchar / clrchar', DESC = 'Removes all accessory, shirt, pants, charactermesh, and bodycolors'}
CMDs[#CMDs + 1] = {NAME = 'tpwalk / teleportwalk [num]', DESC = 'Teleports you to your move direction'}
CMDs[#CMDs + 1] = {NAME = 'untpwalk / unteleportwalk', DESC = 'Undoes tpwalk / teleportwalk'}
CMDs[#CMDs + 1] = {NAME = 'trip', DESC = 'Makes your character fall over'}
CMDs[#CMDs + 1] = {NAME = 'wallwalk / walkonwalls', DESC = 'Walk on walls'}
CMDs[#CMDs + 1] = {NAME = 'promptr6', DESC = 'Prompts the game to switch your rig type to R6'}
CMDs[#CMDs + 1] = {NAME = 'promptr15', DESC = 'Prompts the game to switch your rig type to R15'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'animation / anim [ID] [speed]', DESC = 'Makes your character perform an animation (must be an animation on the marketplace or by roblox/stickmasterluke to replicate)'}
CMDs[#CMDs + 1] = {NAME = 'emote / em [ID] [speed]', DESC = 'Makes your character perform an emote (must be on the marketplace or by roblox/stickmasterluke to replicate)'}
CMDs[#CMDs + 1] = {NAME = 'dance', DESC = 'Makes you d a n c e'}
CMDs[#CMDs + 1] = {NAME = 'undance', DESC = 'Stops dance animations'}
CMDs[#CMDs + 1] = {NAME = 'spasm', DESC = 'Makes you c r a z y'}
CMDs[#CMDs + 1] = {NAME = 'unspasm', DESC = 'Stops spasm'}
CMDs[#CMDs + 1] = {NAME = 'headthrow', DESC = 'Simply makes you throw your head'}
CMDs[#CMDs + 1] = {NAME = 'noanim', DESC = 'Disables your animations'}
CMDs[#CMDs + 1] = {NAME = 'reanim', DESC = 'Restores your animations'}
CMDs[#CMDs + 1] = {NAME = 'animspeed [num]', DESC = 'Changes the speed of your current animation'}
CMDs[#CMDs + 1] = {NAME = 'copyanimation / copyanim / copyemote [player]', DESC = 'Copies someone elses animation'}
CMDs[#CMDs + 1] = {NAME = 'copyanimationid / copyanimid / copyemoteid [player]', DESC = 'Copies your animation id or someone elses to your clipboard'}
CMDs[#CMDs + 1] = {NAME = 'loopanimation / loopanim', DESC = 'Loops your current animation'}
CMDs[#CMDs + 1] = {NAME = 'stopanimations / stopanims', DESC = 'Stops running animations'}
CMDs[#CMDs + 1] = {NAME = 'refreshanimations / refreshanims', DESC = 'Refreshes animations'}
CMDs[#CMDs + 1] = {NAME = 'allowcustomanim / allowcustomanimations', DESC = 'Lets you use custom animation packs instead'}
CMDs[#CMDs + 1] = {NAME = 'unallowcustomanim / unallowcustomanimations', DESC = 'Doesn\'t let you use custom animation packs instead'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'autoclick [click delay] [release delay]', DESC = 'Automatically clicks your mouse with a set delay'}
CMDs[#CMDs + 1] = {NAME = 'unautoclick / noautoclick', DESC = 'Turns off autoclick'}
CMDs[#CMDs + 1] = {NAME = 'autokeypress [key] [down delay] [up delay]', DESC = 'Automatically presses a key with a set delay'}
CMDs[#CMDs + 1] = {NAME = 'unautokeypress', DESC = 'Stops autokeypress'}
CMDs[#CMDs + 1] = {NAME = 'hovername', DESC = 'Shows a players username when your mouse is hovered over them'}
CMDs[#CMDs + 1] = {NAME = 'unhovername / nohovername', DESC = 'Turns off hovername'}
CMDs[#CMDs + 1] = {NAME = 'mousesensitivity / ms [0-10]', DESC = 'Sets your mouse sensitivity (affects first person and right click drag) (default is 1)'}
CMDs[#CMDs + 1] = {NAME = 'clickdelete', DESC = 'Go to Settings > Keybinds > Add for click delete'}
CMDs[#CMDs + 1] = {NAME = 'clickteleport', DESC = 'Go to Settings > Keybinds > Add for click teleport'}
CMDs[#CMDs + 1] = {NAME = 'mouseteleport / mousetp', DESC = 'Teleports your character to your mouse. This is recommended as a keybind'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'tools', DESC = 'Copies tools from ReplicatedStorage and Lighting'}
CMDs[#CMDs + 1] = {NAME = 'notools / removetools / deletetools', DESC = 'Removes tools from character and backpack'}
CMDs[#CMDs + 1] = {NAME = 'deleteselectedtool / dst', DESC = 'Removes any currently selected tools'}
CMDs[#CMDs + 1] = {NAME = 'grabtools', DESC = 'Automatically get tools that are dropped'}
CMDs[#CMDs + 1] = {NAME = 'ungrabtools / nograbtools', DESC = 'Disables grabtools'}
CMDs[#CMDs + 1] = {NAME = 'copytools [player] (CLIENT)', DESC = 'Copies a players tools'}
CMDs[#CMDs + 1] = {NAME = 'dupetools / clonetools [num]', DESC = 'Duplicates your inventory tools a set amount of times'}
CMDs[#CMDs + 1] = {NAME = 'droptools', DESC = 'Drops your tools'}
CMDs[#CMDs + 1] = {NAME = 'droppabletools', DESC = 'Makes your tools droppable'}
CMDs[#CMDs + 1] = {NAME = 'equiptools', DESC = 'Equips every tool in your inventory at once'}
CMDs[#CMDs + 1] = {NAME = 'unequiptools', DESC = 'Unequips every tool you are currently holding at once'}
CMDs[#CMDs + 1] = {NAME = 'removespecifictool [name]', DESC = 'Automatically remove a specific tool from your inventory'}
CMDs[#CMDs + 1] = {NAME = 'unremovespecifictool [name]', DESC = 'Stops removing a specific tool from your inventory'}
CMDs[#CMDs + 1] = {NAME = 'clearremovespecifictool', DESC = 'Stop removing all specific tools from your inventory'}
CMDs[#CMDs + 1] = {NAME = 'reach [num]', DESC = 'Increases the hitbox of your held tool'}
CMDs[#CMDs + 1] = {NAME = 'boxreach [num]', DESC = 'Increases the hitbox of your held tool in a box shape'}
CMDs[#CMDs + 1] = {NAME = 'unreach / noreach', DESC = 'Turns off reach'}
CMDs[#CMDs + 1] = {NAME = 'grippos [X Y Z]', DESC = 'Changes your current tools grip position'}
CMDs[#CMDs + 1] = {NAME = 'usetools [amount] [delay]', DESC = 'Activates all tools in your backpack at the same time'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'addalias [cmd] [alias]', DESC = 'Adds an alias to a command'}
CMDs[#CMDs + 1] = {NAME = 'removealias [alias]', DESC = 'Removes a custom alias'}
CMDs[#CMDs + 1] = {NAME = 'clraliases', DESC = 'Removes all custom aliases'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'addplugin / plugin [name]', DESC = 'Add a plugin via command'}
CMDs[#CMDs + 1] = {NAME = 'removeplugin / deleteplugin [name]', DESC = 'Remove a plugin via command'}
CMDs[#CMDs + 1] = {NAME = 'reloadplugin [name]', DESC = 'Reloads a plugin'}
CMDs[#CMDs + 1] = {NAME = 'addallplugins / loadallplugins', DESC = 'Adds all available plugins from the workspace folder'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- Arc Yield Custom Commands --', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'unarc', DESC = 'Removes ALL custom effects at once'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- Trails (17 types) --', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'trail [type]', DESC = 'Set trail type. Types: fire,ice,lightning,smoke,rainbow,neon,purple,pink,blood,shadow,holy,toxic,galaxy,crystal,spark,heart,phantom'}
CMDs[#CMDs + 1] = {NAME = 'firetrail / icetrail / lightningtrail / etc.', DESC = 'Quick shortcut for each trail type'}
CMDs[#CMDs + 1] = {NAME = 'untrail / toggletrail', DESC = 'Remove or toggle trail'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- Particle Auras (14 types) --', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'particleaura [type] / partaura', DESC = 'Set particle aura type. Types: fire,ice,lightning,smoke,shadow,holy,toxic,neon,purple,pink,galaxy,blood,phantom,crystal'}
CMDs[#CMDs + 1] = {NAME = 'fireaura / iceaura / lightningaura / etc.', DESC = 'Quick shortcut for each aura type'}
CMDs[#CMDs + 1] = {NAME = 'unparticleaura / toggleparticleaura', DESC = 'Remove or toggle particle aura'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- Character Effects --', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'glow [r] [g] [b]', DESC = 'Glowing light on all body parts. Blue by default'}
CMDs[#CMDs + 1] = {NAME = 'unglow', DESC = 'Remove body glow'}
CMDs[#CMDs + 1] = {NAME = 'highlight [r] [g] [b]', DESC = 'Highlight outline on your character'}
CMDs[#CMDs + 1] = {NAME = 'unhighlight', DESC = 'Remove highlight'}
CMDs[#CMDs + 1] = {NAME = 'wireframe', DESC = 'ForceField material on all world parts'}
CMDs[#CMDs + 1] = {NAME = 'unwireframe', DESC = 'Disable wireframe'}
CMDs[#CMDs + 1] = {NAME = 'trans [0-1]', DESC = 'Set character transparency'}
CMDs[#CMDs + 1] = {NAME = 'untrans', DESC = 'Reset transparency'}
CMDs[#CMDs + 1] = {NAME = 'scale [number]', DESC = 'Scale character size'}
CMDs[#CMDs + 1] = {NAME = 'unscale', DESC = 'Reset scale'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- Visual Effects --', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'arcfloat / afloat', DESC = 'Float GUI panel - toggle, rise speed slider'}
CMDs[#CMDs + 1] = {NAME = 'spinchar [speed]', DESC = 'Spin your character'}
CMDs[#CMDs + 1] = {NAME = 'unspinchar', DESC = 'Stop spinning'}
CMDs[#CMDs + 1] = {NAME = 'pulse', DESC = 'Pulsing scale effect'}
CMDs[#CMDs + 1] = {NAME = 'unpulse', DESC = 'Stop pulse effect'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- HUD Elements --', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'fps / fpscounter', DESC = 'Show FPS counter'}
CMDs[#CMDs + 1] = {NAME = 'nofps', DESC = 'Hide FPS counter'}
CMDs[#CMDs + 1] = {NAME = 'ping / pingcounter', DESC = 'Show ping counter'}
CMDs[#CMDs + 1] = {NAME = 'noping', DESC = 'Hide ping counter'}
CMDs[#CMDs + 1] = {NAME = 'coords / coordinates', DESC = 'Show XYZ coordinates'}
CMDs[#CMDs + 1] = {NAME = 'nocoords', DESC = 'Hide coordinates'}
CMDs[#CMDs + 1] = {NAME = 'speedometer', DESC = 'Show speed display'}
CMDs[#CMDs + 1] = {NAME = 'nospeedometer', DESC = 'Hide speed display'}
CMDs[#CMDs + 1] = {NAME = 'crosshair / xhair', DESC = 'Show blue crosshair'}
CMDs[#CMDs + 1] = {NAME = 'nocrosshair', DESC = 'Hide crosshair'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- Cosmetics --', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'crown', DESC = 'Gold crown above your head'}
CMDs[#CMDs + 1] = {NAME = 'uncrown', DESC = 'Remove crown'}
CMDs[#CMDs + 1] = {NAME = 'halo [r] [g] [b]', DESC = 'Glowing halo above head'}
CMDs[#CMDs + 1] = {NAME = 'unhalo', DESC = 'Remove halo'}
CMDs[#CMDs + 1] = {NAME = 'wings [r] [g] [b]', DESC = 'Neon wings on your character'}
CMDs[#CMDs + 1] = {NAME = 'unwings', DESC = 'Remove wings'}
CMDs[#CMDs + 1] = {NAME = 'nametag [text]', DESC = 'Custom floating name above head'}
CMDs[#CMDs + 1] = {NAME = 'unnametag', DESC = 'Remove nametag'}
CMDs[#CMDs + 1] = {NAME = 'orbittext [text]', DESC = 'Text orbits around your head'}
CMDs[#CMDs + 1] = {NAME = 'unorbittext', DESC = 'Remove orbit text'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- Camera --', DESC = ''}
-- fov already defined above
CMDs[#CMDs + 1] = {NAME = 'unfov', DESC = 'Reset field of view'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- Custom Animations --', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'customanim [type] [assetId]', DESC = 'Load custom animation. Types: idle,walk,run,jump,fall'}
CMDs[#CMDs + 1] = {NAME = 'unanim', DESC = 'Reset custom animations'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- Utility --', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'antiafk', DESC = 'Prevents being kicked for being AFK'}
CMDs[#CMDs + 1] = {NAME = 'noantiafk', DESC = 'Disable anti-AFK'}
CMDs[#CMDs + 1] = {NAME = '', DESC = ''}
CMDs[#CMDs + 1] = {NAME = '-- Combat / UA --', DESC = ''}
CMDs[#CMDs + 1] = {NAME = 'pwalkfling / dkwalkfling [speed]', DESC = 'Invisible hitbox jitters forward/back at speed to fling people. Default 50'}
CMDs[#CMDs + 1] = {NAME = 'unpwalkfling / togglepwalkfling', DESC = 'Disable/toggle walk fling'}
CMDs[#CMDs + 1] = {NAME = 'orbitua [radius] [speed] [height]', DESC = 'Tornado orbit all parts around you. Default 50 500 0'}
CMDs[#CMDs + 1] = {NAME = 'unorbitua / toggleorbitua', DESC = 'Disable/toggle orbit UA'}
CMDs[#CMDs + 1] = {NAME = 'cube / cubebuild', DESC = 'Finds 6 unanchored parts of the same type (by Name), builds a cube 15 studs above your head'}
CMDs[#CMDs + 1] = {NAME = 'uncube / nocube / cubeoff / togglecube', DESC = 'Removes the cube and restores parts'}
CMDs[#CMDs + 1] = {NAME = 'blackhole / bhole [speed]', DESC = 'ALL unanchored parts form black hole: 75% tight core, 25% orbit ring. Stays on after death'}
CMDs[#CMDs + 1] = {NAME = 'unblackhole / noblackhole / blackholeoff / toggleblackhole', DESC = 'Disable/toggle black hole'}
CMDs[#CMDs + 1] = {NAME = 'god / ungod / togglegod', DESC = 'Toggle physics godmode manually. Same invincibility used by cannon, trowel, orbitua etc. No fall damage, no physics death.'}
CMDs[#CMDs + 1] = {NAME = 'cannon [power] / uncannon', DESC = 'Grab 1 random unanchored part, hold in front of u, click to launch toward green dot. Default power 500'}
CMDs[#CMDs + 1] = {NAME = 'minigun [power] / unminigun', DESC = 'Fires up to 30 unanchored parts one by one toward mouse, 0.2s apart. Default power 500'}
CMDs[#CMDs + 1] = {NAME = 'trowel [mode] / untrowel', DESC = 'Open-top box 300 studs above. Collect + Launch tools. Modes: normal, explode, rain, spiral, shotgun, orbit, scatter, wave, gun, one, drop, tower, wall, floor, bridge, cage, staircase, missile, shield, hail, volcano, magnet, fling, pile'}
CMDs[#CMDs + 1] = {NAME = 'slift [target] / unslift', DESC = 'Flatten all unanchored parts flat like _, place under target, slowly lift them up serversided'}
CMDs[#CMDs + 1] = {NAME = 'cageua [player] / uncageua', DESC = 'Build a 19x19x19 cage around a player using ALL unanchored parts. Serversided.'}
CMDs[#CMDs + 1] = {NAME = 'ownparts', DESC = 'Claim server ownership of ALL unanchored parts instantly'}
CMDs[#CMDs + 1] = {NAME = 'mm2 / unmm2', DESC = 'MM2 Role ESP! Red=Murderer Blue=Sheriff Green=Innocent. Distance, weapon, HP bar. Click any player to fling!'}
CMDs[#CMDs + 1] = {NAME = 'assist / unassist', DESC = 'MM2 auto-play helper! Red ESP on murderer (always on). [R] Toggle aim camera lock. [F] Toggle rush (click to fling murderer). Auto walkspeed boosts + panic teleport.'}
CMDs[#CMDs + 1] = {NAME = 'desync [speed] / undesync', DESC = 'Ghost desync! Purple ghost moves for you with WASD+Space. Real body stays frozen. Disable to teleport to ghost. Speed = optional walkspeed (default 16). Collisions work!'}
CMDs[#CMDs + 1] = {NAME = 'magnet [speed] / unmagnet', DESC = 'ALL unanchored parts fly toward you like a vacuum! They pile up on you. Default speed 300'}
CMDs[#CMDs + 1] = {NAME = 'tumble [speed] / untumble', DESC = 'CHAOS MODE - all parts spin and fling everywhere insanely. Zero friction, pure madness. Default speed 200'}
CMDs[#CMDs + 1] = {NAME = 'helicopter [spin speed] / unhelicopter', DESC = 'All unanchored parts stay in place but spin on their axis like a blender!'}
CMDs[#CMDs + 1] = {NAME = 'jumper / unjumper', DESC = 'Zombie parts! All unanchored parts walk at speed 18 and hop toward you from random directions'}
CMDs[#CMDs + 1] = {NAME = 'claimall / unclaimall', DESC = 'Claim server ownership of all unanchored parts. Press P to teleport-claim!'}
CMDs[#CMDs + 1] = {NAME = 'hoverboard', DESC = 'Find a flat unanchored part, ride it! WASD to move, idle = tilted + Aura Idle, moving = Floating anim'}
CMDs[#CMDs + 1] = {NAME = 'unhoverboard / nohoverboard / hoverboardoff / togglehoverboard', DESC = 'Disable/toggle hoverboard'}
CMDs[#CMDs + 1] = {NAME = 'lolanim / lol', DESC = 'Random different animation every time you walk, jump, or climb!'}
CMDs[#CMDs + 1] = {NAME = 'floatpack / floatanim', DESC = 'Levitation Pack - float idle, float walk/run, swim in air'}
CMDs[#CMDs + 1] = {NAME = 'godpack / godanim / god', DESC = 'God/Superhero Pack - arms out, powerful movement'}
CMDs[#CMDs + 1] = {NAME = 'ninjapack / ninjaanim / ninja', DESC = 'Ninja Pack - stealth idle, ninja run/jump'}
CMDs[#CMDs + 1] = {NAME = 'zombiepack / zombieanim / zombie', DESC = 'Zombie Pack - arms forward, stumbling walk'}
CMDs[#CMDs + 1] = {NAME = 'stylishpack / stylishanim / stylish', DESC = 'Stylish Pack - swagger walk, cool movement'}
CMDs[#CMDs + 1] = {NAME = 'robotpack / robotanim / robot', DESC = 'Robot Pack - mechanical, stiff movement'}
CMDs[#CMDs + 1] = {NAME = 'magepack / mageanim / mage', DESC = 'Mage Pack - caster walk, mystical movement'}
CMDs[#CMDs + 1] = {NAME = 'vampirepack / vampireanim / vampire', DESC = 'Vampire Pack - dark elegant movement'}
CMDs[#CMDs + 1] = {NAME = 'werewolfpack / werewolfanim', DESC = 'Werewolf Pack - beast, animalistic movement'}
CMDs[#CMDs + 1] = {NAME = 'piratepack / pirateanim / pirate', DESC = 'Pirate Pack - swashbuckler walk'}
CMDs[#CMDs + 1] = {NAME = 'cartoonyanim / cartypack', DESC = 'Cartoony Pack - exaggerated bouncy movement'}
CMDs[#CMDs + 1] = {NAME = 'bubblypack / bubblyanim / bubbly', DESC = 'Bubbly Pack - playful bouncy walk + swim'}
CMDs[#CMDs + 1] = {NAME = 'cowboyppack / cowboyanim / cowboy', DESC = 'Cowboy Pack - western stroll, rugged run'}
CMDs[#CMDs + 1] = {NAME = 'knightpack / knightanim / knight', DESC = 'Knight Pack - heavy armored movement'}
CMDs[#CMDs + 1] = {NAME = 'princesspack / princessanim / princess', DESC = 'Princess Pack - graceful, elegant walk'}
CMDs[#CMDs + 1] = {NAME = 'sneakypack / sneakyanim / sneaky', DESC = 'Sneaky Pack - tiptoe, stealth movement'}
CMDs[#CMDs + 1] = {NAME = 'confidpack / confidanim / confident', DESC = 'Confident Pack - cool idle, swagger walk'}
CMDs[#CMDs + 1] = {NAME = 'astronautpk / astronautanim', DESC = 'Astronaut Pack - space walk, skydive fall'}
CMDs[#CMDs + 1] = {NAME = 'elderpack / elderanim / elder', DESC = 'Elder Pack - slow hunched walk'}
CMDs[#CMDs + 1] = {NAME = 'popstarpack / popstaranim / popstar', DESC = 'Popstar Pack - idol walk, star movement'}
CMDs[#CMDs + 1] = {NAME = 'toypack / toyanim / toy', DESC = 'Toy Pack - stiff playful movements'}
CMDs[#CMDs + 1] = {NAME = 'unanim / noanim / stopanim / resetanim', DESC = 'Stop animation pack, restore originals'}
CMDs[#CMDs + 1] = {NAME = 'flingua / fua [spinpower]', DESC = 'Takes ALL unanchored parts, assigns one per player, spins at max speed. Default 9999'}
CMDs[#CMDs + 1] = {NAME = 'unflingua / toggleflingua', DESC = 'Disable/toggle fling UA'}
CMDs[#CMDs + 1] = {NAME = 'funnyua', DESC = 'ALL unanchored parts orbit random players, jitter & spin MAD'}
CMDs[#CMDs + 1] = {NAME = 'unfunnyua / togglefunnyua', DESC = 'Disable/toggle funny UA'}
CMDs[#CMDs + 1] = {NAME = 'aura', DESC = 'Float + orbiting unanchored parts above your head'}
CMDs[#CMDs + 1] = {NAME = 'unaura / noaura / toggleaura', DESC = 'Disable or toggle aura'}
CMDs[#CMDs + 1] = {NAME = 'tuffanim / tuff', DESC = 'Tuff Anim Pack: Demonic Float idle + Lord Walk run'}
CMDs[#CMDs + 1] = {NAME = 'untuffanim / toggletuffanim', DESC = 'Disable or toggle tuff anim pack'}
CMDs[#CMDs + 1] = {NAME = 'lolspam', DESC = 'Random emote spam whenever you move or do anything'}
CMDs[#CMDs + 1] = {NAME = 'tas', DESC = 'Tool-Assisted Speedrun recorder. F=forward, R=rewind, CapsLock=pause'}
CMDs[#CMDs + 1] = {NAME = 'untas', DESC = 'Stop TAS recorder and clean up'}
CMDs[#CMDs + 1] = {NAME = 'orbitallazer / orblazer', DESC = 'ALL unanchored parts follow your mouse, jitter & spin MAD'}
CMDs[#CMDs + 1] = {NAME = 'unorbitallazer / toggleorbitallazer', DESC = 'Disable/toggle orbital lazer'}
CMDs[#CMDs + 1] = {NAME = 'arrow [player]', DESC = 'ALL unanchored parts form a GIANT arrow above target player'}
CMDs[#CMDs + 1] = {NAME = 'unarrow / togglearrow', DESC = 'Disable/toggle arrow'}
CMDs[#CMDs + 1] = {NAME = 'antiua', DESC = 'ALL unanchored parts get anti-gravity, float upward and drift'}
CMDs[#CMDs + 1] = {NAME = 'unantiua / toggleantiua', DESC = 'Disable/toggle anti-gravity UA'}
CMDs[#CMDs + 1] = {NAME = '0gravityua / zerogua', DESC = 'ALL unanchored parts in zero gravity, float in space'}
CMDs[#CMDs + 1] = {NAME = 'un0gravityua / toggle0gravityua', DESC = 'Disable/toggle zero gravity UA'}
CMDs[#CMDs + 1] = {NAME = 'mouseua', DESC = 'ALL unanchored parts form a line from you to your mouse'}
CMDs[#CMDs + 1] = {NAME = 'unsmartesp / nosmartesp / togglesmartesp', DESC = 'Disable/toggle smart ESP'}
CMDs[#CMDs + 1] = {NAME = 'mm2', DESC = 'Load Bubbly MM2 script (needs Bubbly_MM2.lua in workspace)'}
CMDs[#CMDs + 1] = {NAME = 'yunas', DESC = 'Load Yunas hub script'}
CMDs[#CMDs + 1] = {NAME = 'dropkick', DESC = 'Load DropKick script'}
CMDs[#CMDs + 1] = {NAME = 'lumber', DESC = 'Load Kron Hub (Lumber Tycoon)'}
CMDs[#CMDs + 1] = {NAME = 'grabparts', DESC = 'Load Grab Parts script'}
-- 50 CUSTOM COMMANDS
CMDs[#CMDs + 1] = {NAME = 'hyperspeed [num]', DESC = 'Velocity-based speed that bypasses normal cap. Default 150'}
CMDs[#CMDs + 1] = {NAME = 'superjump [num]', DESC = 'High impulse jump. Default power 150'}
CMDs[#CMDs + 1] = {NAME = 'bhop', DESC = 'Auto bunny hop while moving'}
CMDs[#CMDs + 1] = {NAME = 'infjump', DESC = 'Infinite jump (jump midair)'}
-- float already defined above
CMDs[#CMDs + 1] = {NAME = 'rocket', DESC = 'Launch yourself upward at 500 speed'}
CMDs[#CMDs + 1] = {NAME = 'bouncy [num]', DESC = 'Bounce when touching ground. Default 120'}
CMDs[#CMDs + 1] = {NAME = 'antigrav', DESC = 'Zero gravity on your character'}
CMDs[#CMDs + 1] = {NAME = 'dash', DESC = 'Quick burst of speed in look direction'}
CMDs[#CMDs + 1] = {NAME = 'spider', DESC = 'Walk on walls and ceilings'}
CMDs[#CMDs + 1] = {NAME = 'itemesp', DESC = 'ESP for dropped items/tools on ground (yellow text)'}
-- partesp already defined above
CMDs[#CMDs + 1] = {NAME = 'vehicleesp', DESC = 'ESP for seats/vehicles. Red=occupied Green=empty'}
CMDs[#CMDs + 1] = {NAME = 'mobesp', DESC = 'ESP for NPCs/monsters (orange text + HP)'}
-- chams already defined above
-- trail already defined above
CMDs[#CMDs + 1] = {NAME = 'nightvision', DESC = 'Green night vision overlay + bright lighting'}
-- wireframe already defined above
CMDs[#CMDs + 1] = {NAME = 'toolgrabber', DESC = 'Auto-grab dropped tools within 100 studs'}
-- reach already defined above
CMDs[#CMDs + 1] = {NAME = 'autofarm', DESC = 'Auto-collect nearby items/tools (80 stud range)'}
CMDs[#CMDs + 1] = {NAME = 'killaura [range]', DESC = 'Auto-damage nearby players. Default 25 stud range'}
CMDs[#CMDs + 1] = {NAME = 'toolcopy [player]', DESC = 'Clone a players held/backpack tool'}
CMDs[#CMDs + 1] = {NAME = 'heal', DESC = 'Heal yourself to full HP'}
CMDs[#CMDs + 1] = {NAME = 'healall', DESC = 'Heal all players to full HP'}
CMDs[#CMDs + 1] = {NAME = 'explode [player]', DESC = 'Create explosion on a player (blast radius 20)'}
CMDs[#CMDs + 1] = {NAME = 'serverlock', DESC = 'Lock server (kick new joiners)'}
CMDs[#CMDs + 1] = {NAME = 'loopkill [player]', DESC = 'Loop kill a player (kills on respawn)'}
CMDs[#CMDs + 1] = {NAME = 'jail [player]', DESC = 'Put player in a blue forcefield cage'}
CMDs[#CMDs + 1] = {NAME = 'blind [player]', DESC = 'Black screen on target player'}
-- freeze already defined above
CMDs[#CMDs + 1] = {NAME = 'punish [player]', DESC = 'Remove a players character'}
-- trip already defined above
CMDs[#CMDs + 1] = {NAME = 'stun [player]', DESC = 'Set player speed to 0 (cannot move)'}
-- fling already defined above
CMDs[#CMDs + 1] = {NAME = 'bringall / tpall', DESC = 'Teleport ALL players to your position'}
CMDs[#CMDs + 1] = {NAME = 'crashplayer [player]', DESC = 'Lag/crash a player with 200 parts'}
CMDs[#CMDs + 1] = {NAME = 'spin2', DESC = 'Spin your character (BodyAngularVelocity)'}
CMDs[#CMDs + 1] = {NAME = 'seizure', DESC = 'Random camera offset + sit spam'}
CMDs[#CMDs + 1] = {NAME = 'fire [hexcolor]', DESC = 'Fire effect on your character. Default orange'}
CMDs[#CMDs + 1] = {NAME = 'sparkles [hexcolor]', DESC = 'Sparkle effect on your character. Default gold'}
CMDs[#CMDs + 1] = {NAME = 'smoke [hexcolor]', DESC = 'Smoke effect on your character. Default gray'}
CMDs[#CMDs + 1] = {NAME = 'tiny', DESC = 'Shrink to 10% size'}
CMDs[#CMDs + 1] = {NAME = 'giant', DESC = 'Grow to 500% size'}
CMDs[#CMDs + 1] = {NAME = 'npp', DESC = 'No Player Parts (invisible to others)'}
-- fullbright already defined above
-- removeterrain already defined above
CMDs[#CMDs + 1] = {NAME = 'music [assetid]', DESC = 'Play music by Roblox asset ID'}
CMDs[#CMDs + 1] = {NAME = 'stopmusic', DESC = 'Stop playing music'}
-- gravity already defined above
CMDs[#CMDs + 1] = {NAME = 'smartesp', DESC = 'SERVERSIDED MM2 ESP! Highlight + billboards ALL players see. Name/age/dist/role/tools/avatar/HP. Click to fling!'}
CMDs[#CMDs + 1] = {NAME = 'scatter', DESC = 'Launch all unanchored parts away from you'}
CMDs[#CMDs + 1] = {NAME = 'gather', DESC = 'Gather all unanchored parts to you'}
CMDs[#CMDs + 1] = {NAME = 'deleteparts', DESC = 'Delete all unanchored non-player parts'}
CMDs[#CMDs + 1] = {NAME = 'anchorparts', DESC = 'Anchor ALL unanchored parts'}
CMDs[#CMDs + 1] = {NAME = 'unanchorparts', DESC = 'Unanchor all anchored parts (except terrain)'}
CMDs[#CMDs + 1] = {NAME = 'orbitparts', DESC = 'Make parts orbit around you in a circle'}
CMDs[#CMDs + 1] = {NAME = 'spiralparts', DESC = 'Make parts spiral upward around you'}
CMDs[#CMDs + 1] = {NAME = 'partrain', DESC = 'Rain unanchored parts from above'}
CMDs[#CMDs + 1] = {NAME = 'antikick', DESC = 'Hook Kick method to prevent being kicked (server-sided)'}
-- antivoid already defined above
CMDs[#CMDs + 1] = {NAME = 'namespoof [name]', DESC = 'Display a fake name above your head'}
CMDs[#CMDs + 1] = {NAME = 'godmode', DESC = 'Infinite HP + speed 50 + jump 100'}
-- noclip already defined above
CMDs[#CMDs + 1] = {NAME = 'cloud', DESC = 'Load Cloud Hub script'}
CMDs[#CMDs + 1] = {NAME = 'fluxus', DESC = 'Load Fluxus Hub script'}
CMDs[#CMDs + 1] = {NAME = 'unnamed', DESC = 'Load Unnamed ESP Hub script'}
CMDs[#CMDs + 1] = {NAME = 'janitor', DESC = 'Load Janitor cleanup hub script'}
CMDs[#CMDs + 1] = {NAME = 'oxygen', DESC = 'Load Oxygen Hub script'}
CMDs[#CMDs + 1] = {NAME = 'lynx', DESC = 'Load Lynx Hub script'}
CMDs[#CMDs + 1] = {NAME = 'ctrlclicktp', DESC = 'Ctrl+Click to teleport anywhere'}
CMDs[#CMDs + 1] = {NAME = 'toptool', DESC = 'Give yourself the best tool in workspace'}
CMDs[#CMDs + 1] = {NAME = 'alltools', DESC = 'Give yourself EVERY tool in workspace'}
CMDs[#CMDs + 1] = {NAME = 'stealfly [player]', DESC = 'Copy another players fly (BodyVelocity/Bav)'}
CMDs[#CMDs + 1] = {NAME = 'raid [player]', DESC = 'Spam explosions on a player'}
CMDs[#CMDs + 1] = {NAME = 'speedrun', DESC = 'Set speed 100 + jump 200'}
CMDs[#CMDs + 1] = {NAME = 'slow', DESC = 'Set speed to 5'}
CMDs[#CMDs + 1] = {NAME = 'clicktp', DESC = 'Right click to teleport anywhere'}
CMDs[#CMDs + 1] = {NAME = 'say [msg]', DESC = 'Send a chat message'}
-- spam entry already exists above (spam [text])
CMDs[#CMDs + 1] = {NAME = 'sspam [msg]', DESC = 'Serversided spam - spam chat with a message'}
-- SERVERSIDED COMMANDS (create objects in Workspace that ALL players see)
CMDs[#CMDs + 1] = {NAME = 'sshat [#hexcolor]', DESC = 'SERVERSIDED hat on your head (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unsshat', DESC = 'Remove serversided hat'}
CMDs[#CMDs + 1] = {NAME = 'sscape [#hexcolor]', DESC = 'SERVERSIDED cape on your back (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unsscape', DESC = 'Remove serversided cape'}
CMDs[#CMDs + 1] = {NAME = 'sswing [#hexcolor]', DESC = 'SERVERSIDED wings on your character (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unsswing', DESC = 'Remove serversided wings'}
CMDs[#CMDs + 1] = {NAME = 'ssring [#hexcolor]', DESC = 'SERVERSIDED neon ring on ground (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unssring', DESC = 'Remove serversided ring'}
CMDs[#CMDs + 1] = {NAME = 'sslight [#hexcolor]', DESC = 'SERVERSIDED point light on character (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unsslight', DESC = 'Remove serversided light'}
CMDs[#CMDs + 1] = {NAME = 'ssparticles [#hexcolor]', DESC = 'SERVERSIDED particle emitters on body (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unssparticles', DESC = 'Remove serversided particles'}
CMDs[#CMDs + 1] = {NAME = 'ssmusic [assetid]', DESC = 'SERVERSIDED music all players hear (default 6895079853)'}
CMDs[#CMDs + 1] = {NAME = 'unssmusic', DESC = 'Stop serversided music'}
CMDs[#CMDs + 1] = {NAME = 'ssmsg [text]', DESC = 'SERVERSIDED floating text in workspace (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unssmsg', DESC = 'Remove serversided messages'}
CMDs[#CMDs + 1] = {NAME = 'sscrosshair', DESC = 'SERVERSIDED crosshair on head (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unsscrosshair', DESC = 'Remove serversided crosshair'}
CMDs[#CMDs + 1] = {NAME = 'ssarrow', DESC = 'SERVERSIDED arrow pointing to nearest player (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unssarrow', DESC = 'Remove serversided arrow'}
CMDs[#CMDs + 1] = {NAME = 'ssorb [#hexcolor]', DESC = 'SERVERSIDED 6 orbiting balls with lights (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unssorb', DESC = 'Remove serversided orbs'}
CMDs[#CMDs + 1] = {NAME = 'ssfloating [text]', DESC = 'SERVERSIDED floating text above YOUR head (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unssfloating', DESC = 'Remove serversided floating text'}
CMDs[#CMDs + 1] = {NAME = 'ssaura [#hexcolor]', DESC = 'SERVERSIDED pulsing aura balls (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unssaura', DESC = 'Remove serversided aura'}
CMDs[#CMDs + 1] = {NAME = 'sscrown', DESC = 'SERVERSIDED golden crown on head (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unsscrown', DESC = 'Remove serversided crown'}
CMDs[#CMDs + 1] = {NAME = 'sstrail [#hexcolor]', DESC = 'SERVERSIDED trail of neon balls (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unsstrail', DESC = 'Remove serversided trail'}
CMDs[#CMDs + 1] = {NAME = 'ssexplode [player]', DESC = 'SERVERSIDED explosion on a player (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'ssblock [player]', DESC = 'SERVERSIDED forcefield cage around a player (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unssblock', DESC = 'Remove serversided cage'}
CMDs[#CMDs + 1] = {NAME = 'ssflag [#hexcolor]', DESC = 'SERVERSIDED flag on a pole above head (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unssflag', DESC = 'Remove serversided flag'}
CMDs[#CMDs + 1] = {NAME = 'sshalo', DESC = 'SERVERSIDED golden halo above head (everyone sees)'}
CMDs[#CMDs + 1] = {NAME = 'unsshalo', DESC = 'Remove serversided halo'}
CMDs[#CMDs + 1] = {NAME = 'cleanupss / clearss', DESC = 'Remove ALL serversided Arc Yield objects from workspace'}
-- ARC GUI PANEL COMMANDS (HD Admin-style menus)
CMDs[#CMDs + 1] = {NAME = 'arcgui', DESC = 'Open Arc Yield GUI hub - browse all 50 GUI panels'}
CMDs[#CMDs + 1] = {NAME = 'closearc / closeallarc', DESC = 'Close ALL open Arc GUI panels'}
CMDs[#CMDs + 1] = {NAME = 'arcuseresp / detectusers', DESC = 'ESP showing other Infinite Yield / Arc Yield users'}
CMDs[#CMDs + 1] = {NAME = 'arcfly / afly', DESC = 'Fly GUI panel - toggle, speed slider'}
CMDs[#CMDs + 1] = {NAME = 'archyper / ahspeed', DESC = 'Hyperspeed GUI panel - toggle, speed slider'}
CMDs[#CMDs + 1] = {NAME = 'arcsjump / asjump', DESC = 'Super Jump GUI panel - toggle, power slider'}
CMDs[#CMDs + 1] = {NAME = 'arcbhop / abhop', DESC = 'Bunny Hop GUI panel - toggle, boost height slider'}
CMDs[#CMDs + 1] = {NAME = 'arcinfjump / ainfjump', DESC = 'Infinite Jump GUI panel - toggle'}
-- arcfloat / afloat entry already above (Visual Effects section)
CMDs[#CMDs + 1] = {NAME = 'arcbouncy / abouncy', DESC = 'Bouncy GUI panel - toggle, bounce power slider'}
CMDs[#CMDs + 1] = {NAME = 'arcantigrav / aantigrav', DESC = 'Anti-Gravity GUI panel - toggle'}
CMDs[#CMDs + 1] = {NAME = 'arcdash / adash', DESC = 'Dash GUI panel - power slider, dash button'}
CMDs[#CMDs + 1] = {NAME = 'arcspider / aspider', DESC = 'Spider GUI panel - toggle, climb speed slider'}
CMDs[#CMDs + 1] = {NAME = 'arcnoclip / anoclip', DESC = 'Noclip GUI panel - toggle'}
CMDs[#CMDs + 1] = {NAME = 'arcspeed / aspeed', DESC = 'WalkSpeed GUI panel - speed slider'}
CMDs[#CMDs + 1] = {NAME = 'arcjp / ajumppower', DESC = 'JumpPower GUI panel - power slider'}
CMDs[#CMDs + 1] = {NAME = 'arccfly / accfly', DESC = 'CFrame Fly GUI panel - toggle, speed slider'}
CMDs[#CMDs + 1] = {NAME = 'arcvfly / avfly', DESC = 'Vehicle Fly GUI panel - toggle, speed slider'}
CMDs[#CMDs + 1] = {NAME = 'arcesp / aesp', DESC = 'ESP GUI panel - toggle, transparency slider'}
CMDs[#CMDs + 1] = {NAME = 'arcitemesp / aitemesp', DESC = 'Item ESP GUI panel - toggle, range slider'}
CMDs[#CMDs + 1] = {NAME = 'arcpartesp / apartesp', DESC = 'Part ESP GUI panel - toggle, filter text'}
CMDs[#CMDs + 1] = {NAME = 'arcvesp / avesp', DESC = 'Vehicle ESP GUI panel - toggle'}
CMDs[#CMDs + 1] = {NAME = 'arcmobesp / amobesp', DESC = 'Mob ESP GUI panel - toggle, range slider'}
CMDs[#CMDs + 1] = {NAME = 'arcchams / achams', DESC = 'Chams GUI panel - toggle, transparency slider'}
CMDs[#CMDs + 1] = {NAME = 'arctrail / atrail', DESC = 'Trail GUI panel - toggle, color, lifetime slider'}
CMDs[#CMDs + 1] = {NAME = 'arcnv / anv', DESC = 'Night Vision GUI panel - toggle, brightness slider'}
CMDs[#CMDs + 1] = {NAME = 'arcwireframe / awireframe', DESC = 'Wireframe GUI panel - toggle'}
CMDs[#CMDs + 1] = {NAME = 'arcfb / afb', DESC = 'Fullbright GUI panel - toggle'}
CMDs[#CMDs + 1] = {NAME = 'arckaura / akaura', DESC = 'Kill Aura GUI panel - toggle, range & damage sliders'}
CMDs[#CMDs + 1] = {NAME = 'arcreach / areach', DESC = 'Reach GUI panel - toggle, distance slider'}
CMDs[#CMDs + 1] = {NAME = 'arctoolgrab / atoolgrab', DESC = 'Tool Grabber GUI panel - toggle, range slider'}
CMDs[#CMDs + 1] = {NAME = 'arcautofarm / aautofarm', DESC = 'Auto Farm GUI panel - toggle, range slider'}
CMDs[#CMDs + 1] = {NAME = 'arctoolcopy / atoolcopy', DESC = 'Tool Copy GUI panel - player name, copy button'}
CMDs[#CMDs + 1] = {NAME = 'arcexplode / aexplode', DESC = 'Explode GUI panel - player name, blast radius, explode btn'}
CMDs[#CMDs + 1] = {NAME = 'arcslock / aslock', DESC = 'Server Lock GUI panel - toggle'}
CMDs[#CMDs + 1] = {NAME = 'arcloopkill / aloopkill', DESC = 'Loop Kill GUI panel - player name, start/stop'}
CMDs[#CMDs + 1] = {NAME = 'arcjail / ajail', DESC = 'Jail GUI panel - player name, jail/unjail'}
CMDs[#CMDs + 1] = {NAME = 'arcfreeze / afreeze', DESC = 'Freeze GUI panel - player name, freeze/unfreeze'}
CMDs[#CMDs + 1] = {NAME = 'arcblind / ablind', DESC = 'Blind GUI panel - player name, blind/unblind'}
CMDs[#CMDs + 1] = {NAME = 'arcfling / afling', DESC = 'Fling GUI panel - player name, power slider, fling btn'}
CMDs[#CMDs + 1] = {NAME = 'arcbringall / abringall', DESC = 'Bring All GUI panel - offset range, bring button'}
CMDs[#CMDs + 1] = {NAME = 'arctpall / atpall', DESC = 'TP All GUI panel - offset range, tp button'}
CMDs[#CMDs + 1] = {NAME = 'arccrash / acrash', DESC = 'Crash Player GUI panel - player name, crash button'}
CMDs[#CMDs + 1] = {NAME = 'arcspin2 / aspin2', DESC = 'Spin GUI panel - toggle, speed slider'}
CMDs[#CMDs + 1] = {NAME = 'arcseizure / aseizure', DESC = 'Seizure GUI panel - toggle, intensity slider'}
CMDs[#CMDs + 1] = {NAME = 'arcfire / afire', DESC = 'Fire GUI panel - toggle, color, size slider'}
CMDs[#CMDs + 1] = {NAME = 'arcsparkles / asparkles', DESC = 'Sparkles GUI panel - toggle, color'}
CMDs[#CMDs + 1] = {NAME = 'arcsmoke / asmoke', DESC = 'Smoke GUI panel - toggle, color, opacity slider'}
CMDs[#CMDs + 1] = {NAME = 'arctiny / atinyscale', DESC = 'Tiny GUI panel - toggle, scale slider'}
CMDs[#CMDs + 1] = {NAME = 'arcgravity / agravity', DESC = 'Gravity GUI panel - slider, set/reset buttons'}
CMDs[#CMDs + 1] = {NAME = 'arcmusic / amusic', DESC = 'Music GUI panel - asset ID, volume, play/stop'}
CMDs[#CMDs + 1] = {NAME = 'arcnpp / anpp', DESC = 'NPP GUI panel - toggle'}
CMDs[#CMDs + 1] = {NAME = 'arcgiant / agiant', DESC = 'Giant GUI panel - toggle, scale slider'}
for i = 1, #CMDs do
local newcmd = Example:Clone()
newcmd.Parent = CMDsF
newcmd.Visible = false
newcmd.Text = CMDs[i].NAME
newcmd.Name = "CMD"
table.insert(text1, newcmd)
if CMDs[i].DESC ~= "" then
newcmd:SetAttribute("Title", CMDs[i].NAME)
newcmd:SetAttribute("Desc", CMDs[i].DESC)
newcmd.MouseButton1Down:Connect(function()
if not IsOnMobile and newcmd.Visible and newcmd.TextTransparency == 0 then
local currentText = Cmdbar.Text
Cmdbar:CaptureFocus()
autoComplete(newcmd.Text, currentText)
maximizeHolder()
end
end)
end
end
IndexContents("", true)
function checkTT()
local t
local guisAtPosition = COREGUI:GetGuiObjectsAtPosition(IYMouse.X, IYMouse.Y)
for _, gui in pairs(guisAtPosition) do
if gui.Parent == CMDsF then
t = gui
end
end
if t ~= nil and t:GetAttribute("Title") ~= nil then
local x = IYMouse.X
local y = IYMouse.Y
local xP
local yP
if IYMouse.X > 200 then
xP = x - 201
else
xP = x + 21
end
if IYMouse.Y > (IYMouse.ViewSizeY-96) then
yP = y - 97
else
yP = y
end
Tooltip.Position = UDim2.new(0, xP, 0, yP)
Description.Text = t:GetAttribute("Desc")
if t:GetAttribute("Title") ~= nil then
Title_3.Text = t:GetAttribute("Title")
else
Title_3.Text = ''
end
Tooltip.Visible = true
else
Tooltip.Visible = false
end
end
function FindInTable(tbl,val)
if tbl == nil then return false end
for _,v in pairs(tbl) do
if v == val then return true end
end
return false
end
function GetInTable(Table, Name)
for i = 1, #Table do
if Table[i] == Name then
return i
end
end
return false
end
function respawn(plr)
if invisRunning then TurnVisible() end
local char = plr.Character
local hum = char:FindFirstChildWhichIsA("Humanoid")
if hum then hum:ChangeState(Enum.HumanoidStateType.Dead) end
char:ClearAllChildren()
local newChar = Instance.new("Model")
newChar.Parent = workspace
plr.Character = newChar
task.wait()
plr.Character = char
newChar:Destroy()
end
local refreshCmd = false
function refresh(plr)
refreshCmd = true
local root = getRoot(plr.Character)
local pos = root.CFrame
local pos1 = workspace.CurrentCamera.CFrame
respawn(plr)
task.spawn(function()
local char = plr.CharacterAdded:Wait()
local humanoid = char:FindFirstChildOfClass("Humanoid")
while not humanoid do
wait()
humanoid = char:FindFirstChildOfClass("Humanoid")
end
humanoid.RootPart.CFrame, workspace.CurrentCamera.CFrame = pos, task.wait() and pos1
refreshCmd = false
end)
end
local lastDeath
function onDied()
task.spawn(function()
if pcall(function() Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid') end) and Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid') then
Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid').Died:Connect(function()
if getRoot(Players.LocalPlayer.Character) then
lastDeath = getRoot(Players.LocalPlayer.Character).CFrame
end
end)
else
wait(2)
onDied()
end
end)
end
Clip = true
spDelay = 0.1
Players.LocalPlayer.CharacterAdded:Connect(function()
NOFLY()
Floating = false
if not Clip then
execCmd('clip')
end
repeat wait() until getRoot(Players.LocalPlayer.Character)
pcall(function()
if spawnpoint and not refreshCmd and spawnpos ~= nil then
wait(spDelay)
getRoot(Players.LocalPlayer.Character).CFrame = spawnpos
end
end)
onDied()
end)
onDied()
local booly = {
truthy = { ["true"] = true, ["t"] = true, ["1"] = true, yes = true, y = true, on = true, enable = true, enabled = true },
falsy = { ["false"] = true, ["f"] = true, ["0"] = true, no = true, n = true, off = true, disable = true, disabled = true }
}
function parseBoolean(raw, default)
raw = tostring(raw)
if booly.truthy[raw] then return true end
if booly.falsy[raw] then return false end
return default or false
end
function getstring(begin, args)
return table.concat(args or cargs, " ", begin)
end
findCmd=function(cmd_name)
for i,v in pairs(cmds)do
if v.NAME:lower()==cmd_name:lower() or FindInTable(v.ALIAS,cmd_name:lower()) then
return v
end
end
return customAlias[cmd_name:lower()]
end
function splitString(str,delim)
local broken = {}
if delim == nil then delim = "," end
for w in string.gmatch(str,"[^"..delim.."]+") do
table.insert(broken,w)
end
return broken
end
cmdHistory = {}
local lastCmds = {}
local historyCount = 0
local split=" "
local lastBreakTime = 0
function execCmd(cmdStr,speaker,store)
cmdStr = cmdStr:gsub("%s+$","")
task.spawn(function()
local rawCmdStr = cmdStr
cmdStr = string.gsub(cmdStr,"\\\\","%%BackSlash%%")
local commandsToRun = splitString(cmdStr,"\\")
for i,v in pairs(commandsToRun) do
v = string.gsub(v,"%%BackSlash%%","\\")
local x,y,num = v:find("^(%d+)%^")
local cmdDelay = 0
local infTimes = false
if num then
v = v:sub(y+1)
local x,y,del = v:find("^([%d%.]+)%^")
if del then
v = v:sub(y+1)
cmdDelay = tonumber(del) or 0
end
else
local x,y = v:find("^inf%^")
if x then
infTimes = true
v = v:sub(y+1)
local x,y,del = v:find("^([%d%.]+)%^")
if del then
v = v:sub(y+1)
del = tonumber(del) or 1
cmdDelay = (del > 0 and del or 1)
else
cmdDelay = 1
end
end
end
num = tonumber(num or 1)
if v:sub(1,1) == "!" then
local chunks = splitString(v:sub(2),split)
if chunks[1] and lastCmds[chunks[1]] then v = lastCmds[chunks[1]] end
end
local args = splitString(v,split)
local cmdName = args[1]
local cmd = findCmd(cmdName)
if cmd then
table.remove(args,1)
cargs = args
if not speaker then speaker = Players.LocalPlayer end
if store then
if speaker == Players.LocalPlayer then
if cmdHistory[1] ~= rawCmdStr and rawCmdStr:sub(1,11) ~= 'lastcommand' and rawCmdStr:sub(1,7) ~= 'lastcmd' then
table.insert(cmdHistory,1,rawCmdStr)
end
end
if #cmdHistory > 30 then table.remove(cmdHistory) end
lastCmds[cmdName] = v
end
local cmdStartTime = tick()
if infTimes then
while lastBreakTime < cmdStartTime do
local success,err = pcall(cmd.FUNC,args, speaker)
if not success and _G.IY_DEBUG then
warn("Command Error:", cmdName, err)
end
wait(cmdDelay)
end
else
for rep = 1,num do
if lastBreakTime > cmdStartTime then break end
local success,err = pcall(function()
cmd.FUNC(args, speaker)
end)
if not success and _G.IY_DEBUG then
warn("Command Error:", cmdName, err)
end
if cmdDelay ~= 0 then wait(cmdDelay) end
end
end
end
end
end)
end
function addcmd(name,alias,func,plgn)
cmds[#cmds+1]=
{
NAME=name;
ALIAS=alias or {};
FUNC=func;
PLUGIN=plgn;
}
-- UI buttons are already created by the CMDs list loop below,
-- so we skip creating duplicates here
end
function removecmd(cmd)
if cmd ~= " " then
for i = #cmds,1,-1 do
if cmds[i].NAME == cmd or FindInTable(cmds[i].ALIAS,cmd) then
table.remove(cmds, i)
for a,c in pairs(CMDsF:GetChildren()) do
if string.find(c.Text, "^"..cmd.."$") or string.find(c.Text, "^"..cmd.." ") or string.find(c.Text, " "..cmd.."$") or string.find(c.Text, " "..cmd.." ") then
c.TextTransparency = 0.7
c.MouseButton1Click:Connect(function()
notify(c.Text, "Command has been disabled by you or a plugin")
end)
end
end
end
end
end
end
function overridecmd(name, func)
local cmd = findCmd(name)
if cmd and cmd.FUNC then cmd.FUNC = func end
end
function addbind(cmd,key,iskeyup,toggle)
if toggle then
binds[#binds+1]=
{
COMMAND=cmd;
KEY=key;
ISKEYUP=iskeyup;
TOGGLE = toggle;
}
else
binds[#binds+1]=
{
COMMAND=cmd;
KEY=key;
ISKEYUP=iskeyup;
}
end
end
function addcmdtext(text,name,desc)
local newcmd = Example:Clone()
local tooltipText = tostring(text)
local tooltipDesc = tostring(desc)
newcmd.Parent = CMDsF
newcmd.Visible = false
newcmd.Text = text
newcmd.Name = 'PLUGIN_'..name
table.insert(text1,newcmd)
if desc and desc ~= '' then
newcmd:SetAttribute("Title", tooltipText)
newcmd:SetAttribute("Desc", tooltipDesc)
newcmd.MouseButton1Down:Connect(function()
if newcmd.Visible and newcmd.TextTransparency == 0 then
Cmdbar:CaptureFocus()
autoComplete(newcmd.Text)
maximizeHolder()
end
end)
end
end
local WorldToScreen = function(Object)
local ObjectVector = workspace.CurrentCamera:WorldToScreenPoint(Object.Position)
return Vector2.new(ObjectVector.X, ObjectVector.Y)
end
local MousePositionToVector2 = function()
return Vector2.new(IYMouse.X, IYMouse.Y)
end
local GetClosestPlayerFromCursor = function()
local found = nil
local ClosestDistance = math.huge
for i, v in pairs(Players:GetPlayers()) do
if v ~= Players.LocalPlayer and v.Character and v.Character:FindFirstChildOfClass("Humanoid") then
for k, x in pairs(v.Character:GetChildren()) do
if string.find(x.Name, "Torso") then
local Distance = (WorldToScreen(x) - MousePositionToVector2()).Magnitude
if Distance < ClosestDistance then
ClosestDistance = Distance
found = v
end
end
end
end
end
return found
end
SpecialPlayerCases = {
["all"] = function(speaker) return Players:GetPlayers() end,
["others"] = function(speaker)
local plrs = {}
for i,v in pairs(Players:GetPlayers()) do
if v ~= speaker then
table.insert(plrs,v)
end
end
return plrs
end,
["me"] = function(speaker)return {speaker} end,
["#(%d+)"] = function(speaker,args,currentList)
local returns = {}
local randAmount = tonumber(args[1])
local players = {unpack(currentList)}
for i = 1,randAmount do
if #players == 0 then break end
local randIndex = math.random(1,#players)
table.insert(returns,players[randIndex])
table.remove(players,randIndex)
end
return returns
end,
["random"] = function(speaker,args,currentList)
local players = Players:GetPlayers()
local localplayer = Players.LocalPlayer
table.remove(players, table.find(players, localplayer))
return {players[math.random(1,#players)]}
end,
["%%(.+)"] = function(speaker,args)
local returns = {}
local team = args[1]
for _,plr in pairs(Players:GetPlayers()) do
if plr.Team and string.sub(string.lower(plr.Team.Name),1,#team) == string.lower(team) then
table.insert(returns,plr)
end
end
return returns
end,
["allies"] = function(speaker)
local returns = {}
local team = speaker.Team
for _,plr in pairs(Players:GetPlayers()) do
if plr.Team == team then
table.insert(returns,plr)
end
end
return returns
end,
["enemies"] = function(speaker)
local returns = {}
local team = speaker.Team
for _,plr in pairs(Players:GetPlayers()) do
if plr.Team ~= team then
table.insert(returns,plr)
end
end
return returns
end,
["team"] = function(speaker)
local returns = {}
local team = speaker.Team
for _,plr in pairs(Players:GetPlayers()) do
if plr.Team == team then
table.insert(returns,plr)
end
end
return returns
end,
["nonteam"] = function(speaker)
local returns = {}
local team = speaker.Team
for _,plr in pairs(Players:GetPlayers()) do
if plr.Team ~= team then
table.insert(returns,plr)
end
end
return returns
end,
["friends"] = function(speaker,args)
local returns = {}
for _,plr in pairs(Players:GetPlayers()) do
if plr:IsFriendsWith(speaker.UserId) and plr ~= speaker then
table.insert(returns,plr)
end
end
return returns
end,
["nonfriends"] = function(speaker,args)
local returns = {}
for _,plr in pairs(Players:GetPlayers()) do
if not plr:IsFriendsWith(speaker.UserId) and plr ~= speaker then
table.insert(returns,plr)
end
end
return returns
end,
["guests"] = function(speaker,args)
local returns = {}
for _,plr in pairs(Players:GetPlayers()) do
if plr.Guest then
table.insert(returns,plr)
end
end
return returns
end,
["bacons"] = function(speaker,args)
local returns = {}
for _,plr in pairs(Players:GetPlayers()) do
if plr.Character:FindFirstChild('Pal Hair') or plr.Character:FindFirstChild('Kate Hair') then
table.insert(returns,plr)
end
end
return returns
end,
["age(%d+)"] = function(speaker,args)
local returns = {}
local age = tonumber(args[1])
if not age == nil then return end
for _,plr in pairs(Players:GetPlayers()) do
if plr.AccountAge <= age then
table.insert(returns,plr)
end
end
return returns
end,
["nearest"] = function(speaker,args,currentList)
local speakerChar = speaker.Character
if not speakerChar or not getRoot(speakerChar) then return end
local lowest = math.huge
local NearestPlayer = nil
for _,plr in pairs(currentList) do
if plr ~= speaker and plr.Character then
local distance = plr:DistanceFromCharacter(getRoot(speakerChar).Position)
if distance < lowest then
lowest = distance
NearestPlayer = {plr}
end
end
end
return NearestPlayer
end,
["farthest"] = function(speaker,args,currentList)
local speakerChar = speaker.Character
if not speakerChar or not getRoot(speakerChar) then return end
local highest = 0
local Farthest = nil
for _,plr in pairs(currentList) do
if plr ~= speaker and plr.Character then
local distance = plr:DistanceFromCharacter(getRoot(speakerChar).Position)
if distance > highest then
highest = distance
Farthest = {plr}
end
end
end
return Farthest
end,
["group(%d+)"] = function(speaker,args)
local returns = {}
local groupID = tonumber(args[1])
for _,plr in pairs(Players:GetPlayers()) do
if plr:IsInGroup(groupID) then
table.insert(returns,plr)
end
end
return returns
end,
["alive"] = function(speaker,args)
local returns = {}
for _,plr in pairs(Players:GetPlayers()) do
if plr.Character and plr.Character:FindFirstChildOfClass("Humanoid") and plr.Character:FindFirstChildOfClass("Humanoid").Health > 0 then
table.insert(returns,plr)
end
end
return returns
end,
["dead"] = function(speaker,args)
local returns = {}
for _,plr in pairs(Players:GetPlayers()) do
if (not plr.Character or not plr.Character:FindFirstChildOfClass("Humanoid")) or plr.Character:FindFirstChildOfClass("Humanoid").Health <= 0 then
table.insert(returns,plr)
end
end
return returns
end,
["rad(%d+)"] = function(speaker,args)
local returns = {}
local radius = tonumber(args[1])
local speakerChar = speaker.Character
if not speakerChar or not getRoot(speakerChar) then return end
for _,plr in pairs(Players:GetPlayers()) do
if plr.Character and getRoot(plr.Character) then
local magnitude = (getRoot(plr.Character).Position-getRoot(speakerChar).Position).magnitude
if magnitude <= radius then table.insert(returns,plr) end
end
end
return returns
end,
["cursor"] = function(speaker)
local plrs = {}
local v = GetClosestPlayerFromCursor()
if v ~= nil then table.insert(plrs, v) end
return plrs
end,
["npcs"] = function(speaker,args)
local returns = {}
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("Model") and getRoot(v) and v:FindFirstChildWhichIsA("Humanoid") and Players:GetPlayerFromCharacter(v) == nil then
local clone = Instance.new("Player")
clone.Name = v.Name .. " - " .. v:FindFirstChildWhichIsA("Humanoid").DisplayName
clone.Character = v
table.insert(returns, clone)
end
end
return returns
end,
}
function toTokens(str)
local tokens = {}
for op,name in string.gmatch(str,"([+-])([^+-]+)") do
table.insert(tokens,{Operator = op,Name = name})
end
return tokens
end
function onlyIncludeInTable(tab,matches)
local matchTable = {}
local resultTable = {}
for i,v in pairs(matches) do matchTable[v.Name] = true end
for i,v in pairs(tab) do if matchTable[v.Name] then table.insert(resultTable,v) end end
return resultTable
end
function removeTableMatches(tab,matches)
local matchTable = {}
local resultTable = {}
for i,v in pairs(matches) do matchTable[v.Name] = true end
for i,v in pairs(tab) do if not matchTable[v.Name] then table.insert(resultTable,v) end end
return resultTable
end
function getPlayersByName(Name)
local Name,Len,Found = string.lower(Name),#Name,{}
for _,v in pairs(Players:GetPlayers()) do
if Name:sub(0,1) == '@' then
if string.sub(string.lower(v.Name),1,Len-1) == Name:sub(2) then
table.insert(Found,v)
end
else
if string.sub(string.lower(v.Name),1,Len) == Name or string.sub(string.lower(v.DisplayName),1,Len) == Name then
table.insert(Found,v)
end
end
end
return Found
end
function getPlayer(list,speaker)
if list == nil then return {speaker.Name} end
local nameList = splitString(list,",")
local foundList = {}
for _,name in pairs(nameList) do
if string.sub(name,1,1) ~= "+" and string.sub(name,1,1) ~= "-" then name = "+"..name end
local tokens = toTokens(name)
local initialPlayers = Players:GetPlayers()
for i,v in pairs(tokens) do
if v.Operator == "+" then
local tokenContent = v.Name
local foundCase = false
for regex,case in pairs(SpecialPlayerCases) do
local matches = {string.match(tokenContent,"^"..regex.."$")}
if #matches > 0 then
foundCase = true
initialPlayers = onlyIncludeInTable(initialPlayers,case(speaker,matches,initialPlayers))
end
end
if not foundCase then
initialPlayers = onlyIncludeInTable(initialPlayers,getPlayersByName(tokenContent))
end
else
local tokenContent = v.Name
local foundCase = false
for regex,case in pairs(SpecialPlayerCases) do
local matches = {string.match(tokenContent,"^"..regex.."$")}
if #matches > 0 then
foundCase = true
initialPlayers = removeTableMatches(initialPlayers,case(speaker,matches,initialPlayers))
end
end
if not foundCase then
initialPlayers = removeTableMatches(initialPlayers,getPlayersByName(tokenContent))
end
end
end
for i,v in pairs(initialPlayers) do table.insert(foundList,v) end
end
local foundNames = {}
for i,v in pairs(foundList) do table.insert(foundNames,v.Name) end
return foundNames
end
function formatUsername(player)
if player.DisplayName ~= player.Name then
return string.format("%s (%s)", player.Name, player.DisplayName)
end
return player.Name
end
getprfx=function(strn)
if strn:sub(1,string.len(prefix))==prefix then return{'cmd',string.len(prefix)+1}
end return
end
function do_exec(str, plr)
str = str:gsub('/e ', '')
local t = getprfx(str)
if not t then return end
str = str:sub(t[2])
if t[1]=='cmd' then
execCmd(str, plr, true)
IndexContents('',true,false,true)
CMDsF.CanvasPosition = canvasPos
end
end
lastTextBoxString,lastTextBoxCon,lastEnteredString = nil,nil,nil
UserInputService.TextBoxFocused:Connect(function(obj)
if lastTextBoxCon then lastTextBoxCon:Disconnect() end
if obj == Cmdbar then lastTextBoxString = nil return end
lastTextBoxString = obj.Text
lastTextBoxCon = obj:GetPropertyChangedSignal("Text"):Connect(function()
if not (UserInputService:IsKeyDown(Enum.KeyCode.Return) or UserInputService:IsKeyDown(Enum.KeyCode.KeypadEnter)) then
lastTextBoxString = obj.Text
end
end)
end)
UserInputService.InputBegan:Connect(function(input,gameProcessed)
if gameProcessed then
if Cmdbar and Cmdbar:IsFocused() then
if input.KeyCode == Enum.KeyCode.Up then
historyCount = historyCount + 1
if historyCount > #cmdHistory then historyCount = #cmdHistory end
Cmdbar.Text = cmdHistory[historyCount] or ""
Cmdbar.CursorPosition = 1020
elseif input.KeyCode == Enum.KeyCode.Down then
historyCount = historyCount - 1
if historyCount < 0 then historyCount = 0 end
Cmdbar.Text = cmdHistory[historyCount] or ""
Cmdbar.CursorPosition = 1020
end
elseif input.KeyCode == Enum.KeyCode.Return or input.KeyCode == Enum.KeyCode.KeypadEnter then
lastEnteredString = lastTextBoxString
end
end
end)
Players.LocalPlayer.Chatted:Connect(function()
wait()
if lastEnteredString then
local message = lastEnteredString
lastEnteredString = nil
do_exec(message, Players.LocalPlayer)
end
end)
Cmdbar.PlaceholderText = "Command Bar ("..prefix..")"
Cmdbar:GetPropertyChangedSignal("Text"):Connect(function()
if Cmdbar:IsFocused() then
IndexContents(Cmdbar.Text,true,true)
end
end)
local tabComplete = nil
tabAllowed = true
Cmdbar.FocusLost:Connect(function(enterpressed)
if enterpressed then
local cmdbarText = Cmdbar.Text:gsub("^"..prefix,"")
execCmd(cmdbarText,Players.LocalPlayer,true)
end
if tabComplete then tabComplete:Disconnect() end
wait()
if not Cmdbar:IsFocused() then
Cmdbar.Text = ""
IndexContents('',true,false,true)
if SettingsOpen == true then
wait(0.2)
Settings:TweenPosition(UDim2.new(0, 0, 0, 45), "InOut", "Quart", 0.2, true, nil)
CMDsF.Visible = false
end
end
CMDsF.CanvasPosition = canvasPos
end)
Cmdbar.Focused:Connect(function()
historyCount = 0
canvasPos = CMDsF.CanvasPosition
if SettingsOpen == true then
wait(0.2)
CMDsF.Visible = true
Settings:TweenPosition(UDim2.new(0, 0, 0, 220), "InOut", "Quart", 0.2, true, nil)
end
tabComplete = UserInputService.InputBegan:Connect(function(input,gameProcessed)
if Cmdbar:IsFocused() then
if tabAllowed == true and input.KeyCode == Enum.KeyCode.Tab and topCommand ~= nil then
autoComplete(topCommand)
end
else
tabComplete:Disconnect()
end
end)
end)
ESPenabled = false
CHMSenabled = false
function round(num, numDecimalPlaces)
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
function ESP(plr, logic)
task.spawn(function()
for i,v in pairs(COREGUI:GetChildren()) do
if v.Name == plr.Name..'_ESP' then
v:Destroy()
end
end
wait()
if plr.Character and plr.Name ~= Players.LocalPlayer.Name and not COREGUI:FindFirstChild(plr.Name..'_ESP') then
local ESPholder = Instance.new("Folder")
ESPholder.Name = plr.Name..'_ESP'
ESPholder.Parent = COREGUI
repeat wait(1) until plr.Character and getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
for b,n in pairs (plr.Character:GetChildren()) do
if (n:IsA("BasePart")) then
local a = Instance.new("BoxHandleAdornment")
a.Name = plr.Name
a.Parent = ESPholder
a.Adornee = n
a.AlwaysOnTop = true
a.ZIndex = 10
a.Size = n.Size
a.Transparency = espTransparency
if logic == true then
a.Color = BrickColor.new(plr.TeamColor == Players.LocalPlayer.TeamColor and "Bright green" or "Bright red")
else
a.Color = plr.TeamColor
end
end
end
if plr.Character and plr.Character:FindFirstChild('Head') then
local BillboardGui = Instance.new("BillboardGui")
local TextLabel = Instance.new("TextLabel")
BillboardGui.Adornee = plr.Character.Head
BillboardGui.Name = plr.Name
BillboardGui.Parent = ESPholder
BillboardGui.Size = UDim2.new(0, 100, 0, 150)
BillboardGui.StudsOffset = Vector3.new(0, 1, 0)
BillboardGui.AlwaysOnTop = true
TextLabel.Parent = BillboardGui
TextLabel.BackgroundTransparency = 1
TextLabel.Position = UDim2.new(0, 0, 0, -50)
TextLabel.Size = UDim2.new(0, 100, 0, 100)
TextLabel.Font = Enum.Font.SourceSansSemibold
TextLabel.TextSize = 20
TextLabel.TextColor3 = Color3.new(1, 1, 1)
TextLabel.TextStrokeTransparency = 0
TextLabel.TextYAlignment = Enum.TextYAlignment.Bottom
TextLabel.Text = 'Name: '..plr.Name
TextLabel.ZIndex = 10
local espLoopFunc
local teamChange
local addedFunc
addedFunc = plr.CharacterAdded:Connect(function()
if ESPenabled then
espLoopFunc:Disconnect()
teamChange:Disconnect()
ESPholder:Destroy()
repeat wait(1) until getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
ESP(plr, logic)
addedFunc:Disconnect()
else
teamChange:Disconnect()
addedFunc:Disconnect()
end
end)
teamChange = plr:GetPropertyChangedSignal("TeamColor"):Connect(function()
if ESPenabled then
espLoopFunc:Disconnect()
addedFunc:Disconnect()
ESPholder:Destroy()
repeat wait(1) until getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
ESP(plr, logic)
teamChange:Disconnect()
else
teamChange:Disconnect()
end
end)
local function espLoop()
if COREGUI:FindFirstChild(plr.Name..'_ESP') then
if plr.Character and getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid") and Players.LocalPlayer.Character and getRoot(Players.LocalPlayer.Character) and Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then
local pos = math.floor((getRoot(Players.LocalPlayer.Character).Position - getRoot(plr.Character).Position).magnitude)
TextLabel.Text = 'Name: '..plr.Name..' | Health: '..round(plr.Character:FindFirstChildOfClass('Humanoid').Health, 1)..' | Studs: '..pos
end
else
teamChange:Disconnect()
addedFunc:Disconnect()
espLoopFunc:Disconnect()
end
end
espLoopFunc = RunService.RenderStepped:Connect(espLoop)
end
end
end)
end
function CHMS(plr)
task.spawn(function()
for i,v in pairs(COREGUI:GetChildren()) do
if v.Name == plr.Name..'_CHMS' then
v:Destroy()
end
end
wait()
if plr.Character and plr.Name ~= Players.LocalPlayer.Name and not COREGUI:FindFirstChild(plr.Name..'_CHMS') then
local ESPholder = Instance.new("Folder")
ESPholder.Name = plr.Name..'_CHMS'
ESPholder.Parent = COREGUI
repeat wait(1) until plr.Character and getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
for b,n in pairs (plr.Character:GetChildren()) do
if (n:IsA("BasePart")) then
local a = Instance.new("BoxHandleAdornment")
a.Name = plr.Name
a.Parent = ESPholder
a.Adornee = n
a.AlwaysOnTop = true
a.ZIndex = 10
a.Size = n.Size
a.Transparency = espTransparency
a.Color = plr.TeamColor
end
end
local addedFunc
local teamChange
local CHMSremoved
addedFunc = plr.CharacterAdded:Connect(function()
if CHMSenabled then
ESPholder:Destroy()
teamChange:Disconnect()
repeat wait(1) until getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
CHMS(plr)
addedFunc:Disconnect()
else
teamChange:Disconnect()
addedFunc:Disconnect()
end
end)
teamChange = plr:GetPropertyChangedSignal("TeamColor"):Connect(function()
if CHMSenabled then
ESPholder:Destroy()
addedFunc:Disconnect()
repeat wait(1) until getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
CHMS(plr)
teamChange:Disconnect()
else
teamChange:Disconnect()
end
end)
CHMSremoved = ESPholder.AncestryChanged:Connect(function()
teamChange:Disconnect()
addedFunc:Disconnect()
CHMSremoved:Disconnect()
end)
end
end)
end
function Locate(plr)
task.spawn(function()
for i,v in pairs(COREGUI:GetChildren()) do
if v.Name == plr.Name..'_LC' then
v:Destroy()
end
end
wait()
if plr.Character and plr.Name ~= Players.LocalPlayer.Name and not COREGUI:FindFirstChild(plr.Name..'_LC') then
local ESPholder = Instance.new("Folder")
ESPholder.Name = plr.Name..'_LC'
ESPholder.Parent = COREGUI
repeat wait(1) until plr.Character and getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
for b,n in pairs (plr.Character:GetChildren()) do
if (n:IsA("BasePart")) then
local a = Instance.new("BoxHandleAdornment")
a.Name = plr.Name
a.Parent = ESPholder
a.Adornee = n
a.AlwaysOnTop = true
a.ZIndex = 10
a.Size = n.Size
a.Transparency = espTransparency
a.Color = plr.TeamColor
end
end
if plr.Character and plr.Character:FindFirstChild('Head') then
local BillboardGui = Instance.new("BillboardGui")
local TextLabel = Instance.new("TextLabel")
BillboardGui.Adornee = plr.Character.Head
BillboardGui.Name = plr.Name
BillboardGui.Parent = ESPholder
BillboardGui.Size = UDim2.new(0, 100, 0, 150)
BillboardGui.StudsOffset = Vector3.new(0, 1, 0)
BillboardGui.AlwaysOnTop = true
TextLabel.Parent = BillboardGui
TextLabel.BackgroundTransparency = 1
TextLabel.Position = UDim2.new(0, 0, 0, -50)
TextLabel.Size = UDim2.new(0, 100, 0, 100)
TextLabel.Font = Enum.Font.SourceSansSemibold
TextLabel.TextSize = 20
TextLabel.TextColor3 = Color3.new(1, 1, 1)
TextLabel.TextStrokeTransparency = 0
TextLabel.TextYAlignment = Enum.TextYAlignment.Bottom
TextLabel.Text = 'Name: '..plr.Name
TextLabel.ZIndex = 10
local lcLoopFunc
local addedFunc
local teamChange
addedFunc = plr.CharacterAdded:Connect(function()
if ESPholder ~= nil and ESPholder.Parent ~= nil then
lcLoopFunc:Disconnect()
teamChange:Disconnect()
ESPholder:Destroy()
repeat wait(1) until getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
Locate(plr)
addedFunc:Disconnect()
else
teamChange:Disconnect()
addedFunc:Disconnect()
end
end)
teamChange = plr:GetPropertyChangedSignal("TeamColor"):Connect(function()
if ESPholder ~= nil and ESPholder.Parent ~= nil then
lcLoopFunc:Disconnect()
addedFunc:Disconnect()
ESPholder:Destroy()
repeat wait(1) until getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
Locate(plr)
teamChange:Disconnect()
else
teamChange:Disconnect()
end
end)
local function lcLoop()
if COREGUI:FindFirstChild(plr.Name..'_LC') then
if plr.Character and getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid") and Players.LocalPlayer.Character and getRoot(Players.LocalPlayer.Character) and Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then
local pos = math.floor((getRoot(Players.LocalPlayer.Character).Position - getRoot(plr.Character).Position).magnitude)
TextLabel.Text = 'Name: '..plr.Name..' | Health: '..round(plr.Character:FindFirstChildOfClass('Humanoid').Health, 1)..' | Studs: '..pos
end
else
teamChange:Disconnect()
addedFunc:Disconnect()
lcLoopFunc:Disconnect()
end
end
lcLoopFunc = RunService.RenderStepped:Connect(lcLoop)
end
end
end)
end
local bindsGUI = KeybindEditor
local awaitingInput = false
local keySelected = false
function refreshbinds()
if Holder_2 then
Holder_2:ClearAllChildren()
Holder_2.CanvasSize = UDim2.new(0, 0, 0, 10)
for i = 1, #binds do
local YSize = 25
local Position = ((i * YSize) - YSize)
local newbind = Example_2:Clone()
newbind.Parent = Holder_2
newbind.Visible = true
newbind.Position = UDim2.new(0,0,0, Position + 5)
table.insert(shade2,newbind)
table.insert(shade2,newbind.Text)
table.insert(text1,newbind.Text)
table.insert(shade3,newbind.Text.Delete)
table.insert(text2,newbind.Text.Delete)
local input = tostring(binds[i].KEY)
local key
if input == 'RightClick' or input == 'LeftClick' then
key = input
else
key = input:sub(14)
end
if binds[i].TOGGLE then
newbind.Text.Text = key.." > "..binds[i].COMMAND.." / "..binds[i].TOGGLE
else
newbind.Text.Text = key.." > "..binds[i].COMMAND.." "..(binds[i].ISKEYUP and "(keyup)" or "(keydown)")
end
Holder_2.CanvasSize = UDim2.new(0,0,0, Position + 30)
newbind.Text.Delete.MouseButton1Click:Connect(function()
unkeybind(binds[i].COMMAND,binds[i].KEY)
end)
end
end
end
refreshbinds()
toggleOn = {}
function unkeybind(cmd,key)
for i = #binds,1,-1 do
if binds[i].COMMAND == cmd and binds[i].KEY == key then
toggleOn[binds[i]] = nil
table.remove(binds, i)
end
end
refreshbinds()
updatesaves()
if key == 'RightClick' or key == 'LeftClick' then
notify('Keybinds Updated','Unbinded '..key..' from '..cmd)
else
notify('Keybinds Updated','Unbinded '..key:sub(14)..' from '..cmd)
end
end
PositionsFrame.Delete.MouseButton1Click:Connect(function()
execCmd('cpos')
end)
function refreshwaypoints()
if #WayPoints > 0 or #pWayPoints > 0 then
PositionsHint:Destroy()
end
if Holder_4 then
Holder_4:ClearAllChildren()
Holder_4.CanvasSize = UDim2.new(0, 0, 0, 10)
local YSize = 25
local num = 1
for i = 1, #WayPoints do
local Position = ((num * YSize) - YSize)
local newpoint = Example_4:Clone()
newpoint.Parent = Holder_4
newpoint.Visible = true
newpoint.Position = UDim2.new(0,0,0, Position + 5)
newpoint.Text.Text = WayPoints[i].NAME
table.insert(shade2,newpoint)
table.insert(shade2,newpoint.Text)
table.insert(text1,newpoint.Text)
table.insert(shade3,newpoint.Text.Delete)
table.insert(text2,newpoint.Text.Delete)
table.insert(shade3,newpoint.Text.TP)
table.insert(text2,newpoint.Text.TP)
Holder_4.CanvasSize = UDim2.new(0,0,0, Position + 30)
newpoint.Text.Delete.MouseButton1Click:Connect(function()
execCmd('dpos '..WayPoints[i].NAME)
end)
newpoint.Text.TP.MouseButton1Click:Connect(function()
execCmd("loadpos "..WayPoints[i].NAME)
end)
num = num+1
end
for i = 1, #pWayPoints do
local Position = ((num * YSize) - YSize)
local newpoint = Example_4:Clone()
newpoint.Parent = Holder_4
newpoint.Visible = true
newpoint.Position = UDim2.new(0,0,0, Position + 5)
newpoint.Text.Text = pWayPoints[i].NAME
table.insert(shade2,newpoint)
table.insert(shade2,newpoint.Text)
table.insert(text1,newpoint.Text)
table.insert(shade3,newpoint.Text.Delete)
table.insert(text2,newpoint.Text.Delete)
table.insert(shade3,newpoint.Text.TP)
table.insert(text2,newpoint.Text.TP)
Holder_4.CanvasSize = UDim2.new(0,0,0, Position + 30)
newpoint.Text.Delete.MouseButton1Click:Connect(function()
execCmd('dpos '..pWayPoints[i].NAME)
end)
newpoint.Text.TP.MouseButton1Click:Connect(function()
execCmd("loadpos "..pWayPoints[i].NAME)
end)
num = num+1
end
end
end
refreshwaypoints()
function refreshaliases()
if #aliases > 0 then
AliasHint:Destroy()
end
if Holder_3 then
Holder_3:ClearAllChildren()
Holder_3.CanvasSize = UDim2.new(0, 0, 0, 10)
for i = 1, #aliases do
local YSize = 25
local Position = ((i * YSize) - YSize)
local newalias = Example_3:Clone()
newalias.Parent = Holder_3
newalias.Visible = true
newalias.Position = UDim2.new(0,0,0, Position + 5)
newalias.Text.Text = aliases[i].CMD.." > "..aliases[i].ALIAS
table.insert(shade2,newalias)
table.insert(shade2,newalias.Text)
table.insert(text1,newalias.Text)
table.insert(shade3,newalias.Text.Delete)
table.insert(text2,newalias.Text.Delete)
Holder_3.CanvasSize = UDim2.new(0,0,0, Position + 30)
newalias.Text.Delete.MouseButton1Click:Connect(function()
execCmd('removealias '..aliases[i].ALIAS)
end)
end
end
end
local bindChosenKeyUp = false
BindTo.MouseButton1Click:Connect(function()
awaitingInput = true
BindTo.Text = 'Press something'
end)
BindTriggerSelect.MouseButton1Click:Connect(function()
bindChosenKeyUp = not bindChosenKeyUp
BindTriggerSelect.Text = bindChosenKeyUp and "KeyUp" or "KeyDown"
end)
newToggle = false
Cmdbar_3.Parent.Visible = false
On_2.MouseButton1Click:Connect(function()
if newToggle == false then newToggle = true
On_2.BackgroundTransparency = 0
Cmdbar_3.Parent.Visible = true
BindTriggerSelect.Visible = false
else newToggle = false
On_2.BackgroundTransparency = 1
Cmdbar_3.Parent.Visible = false
BindTriggerSelect.Visible = true
end
end)
Add_2.MouseButton1Click:Connect(function()
if keySelected then
if string.find(Cmdbar_2.Text, "\\\\") or string.find(Cmdbar_3.Text, "\\\\") then
notify('Keybind Error','Only use one backslash to keybind multiple commands into one keybind or command')
else
if newToggle and Cmdbar_3.Text ~= '' and Cmdbar_2.text ~= '' then
addbind(Cmdbar_2.Text,keyPressed,false,Cmdbar_3.Text)
elseif not newToggle and Cmdbar_2.text ~= '' then
addbind(Cmdbar_2.Text,keyPressed,bindChosenKeyUp)
else
return
end
refreshbinds()
updatesaves()
if keyPressed == 'RightClick' or keyPressed == 'LeftClick' then
notify('Keybinds Updated','Binded '..keyPressed..' to '..Cmdbar_2.Text..(newToggle and " / "..Cmdbar_3.Text or ""))
else
notify('Keybinds Updated','Binded '..keyPressed:sub(14)..' to '..Cmdbar_2.Text..(newToggle and " / "..Cmdbar_3.Text or ""))
end
end
end
end)
Exit_2.MouseButton1Click:Connect(function()
Cmdbar_2.Text = 'Command'
Cmdbar_3.Text = 'Command 2'
BindTo.Text = 'Click to bind'
bindChosenKeyUp = false
BindTriggerSelect.Text = "KeyDown"
keySelected = false
KeybindEditor:TweenPosition(UDim2.new(0.5, -180, 0, -500), "InOut", "Quart", 0.5, true, nil)
end)
function onInputBegan(input,gameProcessed)
if awaitingInput then
if input.UserInputType == Enum.UserInputType.Keyboard then
keyPressed = tostring(input.KeyCode)
BindTo.Text = keyPressed:sub(14)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
keyPressed = 'LeftClick'
BindTo.Text = 'LeftClick'
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
keyPressed = 'RightClick'
BindTo.Text = 'RightClick'
end
awaitingInput = false
keySelected = true
end
if not gameProcessed and #binds > 0 then
for i,v in pairs(binds) do
if not v.ISKEYUP then
if (input.UserInputType == Enum.UserInputType.Keyboard and v.KEY:lower()==tostring(input.KeyCode):lower()) or (input.UserInputType == Enum.UserInputType.MouseButton1 and v.KEY:lower()=='leftclick') or (input.UserInputType == Enum.UserInputType.MouseButton2 and v.KEY:lower()=='rightclick') then
if v.TOGGLE then
local isOn = toggleOn[v] == true
toggleOn[v] = not isOn
if isOn then
execCmd(v.TOGGLE,Players.LocalPlayer)
else
execCmd(v.COMMAND,Players.LocalPlayer)
end
else
execCmd(v.COMMAND,Players.LocalPlayer)
end
end
end
end
end
end
function onInputEnded(input,gameProcessed)
if not gameProcessed and #binds > 0 then
for i,v in pairs(binds) do
if v.ISKEYUP then
if (input.UserInputType == Enum.UserInputType.Keyboard and v.KEY:lower()==tostring(input.KeyCode):lower()) or (input.UserInputType == Enum.UserInputType.MouseButton1 and v.KEY:lower()=='leftclick') or (input.UserInputType == Enum.UserInputType.MouseButton2 and v.KEY:lower()=='rightclick') then
execCmd(v.COMMAND,Players.LocalPlayer)
end
end
end
end
end
UserInputService.InputBegan:Connect(onInputBegan)
UserInputService.InputEnded:Connect(onInputEnded)
ClickTP.Select.MouseButton1Click:Connect(function()
if keySelected then
addbind('clicktp',keyPressed,bindChosenKeyUp)
refreshbinds()
updatesaves()
if keyPressed == 'RightClick' or keyPressed == 'LeftClick' then
notify('Keybinds Updated','Binded '..keyPressed..' to click tp')
else
notify('Keybinds Updated','Binded '..keyPressed:sub(14)..' to click tp')
end
end
end)
ClickDelete.Select.MouseButton1Click:Connect(function()
if keySelected then
addbind('clickdel',keyPressed,bindChosenKeyUp)
refreshbinds()
updatesaves()
if keyPressed == 'RightClick' or keyPressed == 'LeftClick' then
notify('Keybinds Updated','Binded '..keyPressed..' to click delete')
else
notify('Keybinds Updated','Binded '..keyPressed:sub(14)..' to click delete')
end
end
end)
local function clicktpFunc()
pcall(function()
local character = Players.LocalPlayer.Character
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid and humanoid.SeatPart then
humanoid.Sit = false
wait(0.1)
end
local hipHeight = humanoid and humanoid.HipHeight > 0 and (humanoid.HipHeight + 1)
local rootPart = getRoot(character)
local rootPartPosition = rootPart.Position
local hitPosition = IYMouse.Hit.Position
local newCFrame = CFrame.new(
hitPosition,
Vector3.new(rootPartPosition.X, hitPosition.Y, rootPartPosition.Z)
) * CFrame.Angles(0, math.pi, 0)
rootPart.CFrame = newCFrame + Vector3.new(0, hipHeight or 4, 0)
breakVelocity()
end)
end
IYMouse.Button1Down:Connect(function()
for i,v in pairs(binds) do
if v.COMMAND == 'clicktp' then
local input = v.KEY
if input == 'RightClick' and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) and Players.LocalPlayer.Character then
clicktpFunc()
elseif input == 'LeftClick' and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) and Players.LocalPlayer.Character then
clicktpFunc()
elseif UserInputService:IsKeyDown(Enum.KeyCode[input:sub(14)]) and Players.LocalPlayer.Character then
clicktpFunc()
end
elseif v.COMMAND == 'clickdel' then
local input = v.KEY
if input == 'RightClick' and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then
pcall(function() IYMouse.Target:Destroy() end)
elseif input == 'LeftClick' and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then
pcall(function() IYMouse.Target:Destroy() end)
elseif UserInputService:IsKeyDown(Enum.KeyCode[input:sub(14)]) then
pcall(function() IYMouse.Target:Destroy() end)
end
end
end
end)
PluginsGUI = PluginEditor.background
function addPlugin(name)
if name:lower() == 'plugin file name' or name:lower() == 'iy_fe.iy' or name == 'iy_fe' then
notify('Plugin Error','Please enter a valid plugin')
else
local file
local fileName
if name:sub(-3) == '.iy' then
pcall(function() file = readfile(name) end)
fileName = name
else
pcall(function() file = readfile(name..'.iy') end)
fileName = name..'.iy'
end
if file then
if not FindInTable(PluginsTable, fileName) then
table.insert(PluginsTable, fileName)
LoadPlugin(fileName)
refreshplugins()
pcall(eventEditor.Refresh)
else
notify('Plugin Error','This plugin is already added')
end
else
notify('Plugin Error','Cannot locate file "'..fileName..'". Is the file in the correct folder?')
end
end
end
function deletePlugin(name)
local pName = name..'.iy'
if name:sub(-3) == '.iy' then
pName = name
end
for i = #cmds,1,-1 do
if cmds[i].PLUGIN == pName then
table.remove(cmds, i)
end
end
for i,v in pairs(CMDsF:GetChildren()) do
if v.Name == 'PLUGIN_'..pName then
v:Destroy()
end
end
for i,v in pairs(PluginsTable) do
if v == pName then
table.remove(PluginsTable, i)
notify('Removed Plugin',pName..' was removed')
end
end
IndexContents('',true)
refreshplugins()
end
function refreshplugins(dontSave)
if #PluginsTable > 0 then
PluginsHint:Destroy()
end
if Holder_5 then
Holder_5:ClearAllChildren()
Holder_5.CanvasSize = UDim2.new(0, 0, 0, 10)
for i,v in pairs(PluginsTable) do
local pName = v
local YSize = 25
local Position = ((i * YSize) - YSize)
local newplugin = Example_5:Clone()
newplugin.Parent = Holder_5
newplugin.Visible = true
newplugin.Position = UDim2.new(0,0,0, Position + 5)
newplugin.Text.Text = pName
table.insert(shade2,newplugin)
table.insert(shade2,newplugin.Text)
table.insert(text1,newplugin.Text)
table.insert(shade3,newplugin.Text.Delete)
table.insert(text2,newplugin.Text.Delete)
Holder_5.CanvasSize = UDim2.new(0,0,0, Position + 30)
newplugin.Text.Delete.MouseButton1Click:Connect(function()
deletePlugin(pName)
end)
end
if not dontSave then
updatesaves()
end
end
end
local PluginCache
function LoadPlugin(val,startup)
local plugin
function CatchedPluginLoad()
plugin = loadfile(val)()
end
function handlePluginError(plerror)
notify('Plugin Error','An error occurred with the plugin, "'..val..'" and it could not be loaded')
if FindInTable(PluginsTable,val) then
for i,v in pairs(PluginsTable) do
if v == val then
table.remove(PluginsTable,i)
end
end
end
updatesaves()
print("Original Error: "..tostring(plerror))
print("Plugin Error, stack traceback: "..tostring(debug.traceback()))
plugin = nil
return false
end
xpcall(CatchedPluginLoad, handlePluginError)
if plugin ~= nil then
if not startup then
notify('Loaded Plugin',"Name: "..plugin["PluginName"].."\n".."Description: "..plugin["PluginDescription"])
end
addcmdtext('',val)
addcmdtext(string.upper('--'..plugin["PluginName"]),val,plugin["PluginDescription"])
if plugin["Commands"] then
for i,v in pairs(plugin["Commands"]) do
local cmdExt = ''
local cmdName = i
local function handleNames()
cmdName = i
if findCmd(cmdName..cmdExt) then
if isNumber(cmdExt) then
cmdExt = cmdExt+1
else
cmdExt = 1
end
handleNames()
else
cmdName = cmdName..cmdExt
end
end
handleNames()
addcmd(cmdName, v["Aliases"], v["Function"], val)
if v["ListName"] then
local newName = v.ListName
local cmdNames = {i,unpack(v.Aliases)}
for i,v in pairs(cmdNames) do
newName = newName:gsub(v,v..cmdExt)
end
addcmdtext(newName,val,v["Description"])
else
addcmdtext(cmdName,val,v["Description"])
end
end
end
IndexContents('',true)
elseif plugin == nil then
plugin = nil
end
end
function FindPlugins()
if PluginsTable ~= nil and type(PluginsTable) == "table" then
for i,v in pairs(PluginsTable) do
LoadPlugin(v,true)
end
refreshplugins(true)
end
end
AddPlugin.MouseButton1Click:Connect(function()
addPlugin(PluginsGUI.FileName.Text)
end)
Exit_3.MouseButton1Click:Connect(function()
PluginEditor:TweenPosition(UDim2.new(0.5, -180, 0, -500), "InOut", "Quart", 0.5, true, nil)
FileName.Text = 'Plugin File Name'
end)
Add_3.MouseButton1Click:Connect(function()
PluginEditor:TweenPosition(UDim2.new(0.5, -180, 0, 310), "InOut", "Quart", 0.5, true, nil)
end)
Plugins.MouseButton1Click:Connect(function()
if writefileExploit() then
PluginsFrame:TweenPosition(UDim2.new(0, 0, 0, 0), "InOut", "Quart", 0.5, true, nil)
wait(0.5)
SettingsHolder.Visible = false
else
notify('Incompatible Exploit','Your exploit is unable to use plugins (missing read/writefile)')
end
end)
Close_4.MouseButton1Click:Connect(function()
SettingsHolder.Visible = true
PluginsFrame:TweenPosition(UDim2.new(0, 0, 0, 175), "InOut", "Quart", 0.5, true, nil)
end)
local TeleportCheck = false
Players.LocalPlayer.OnTeleport:Connect(function(State)
if State ~= Enum.TeleportState.InProgress then return end
if TeleportCheck then return end
TeleportCheck = true
if queueteleport then
-- Reload Arc Yield from the executor's workspace file on teleport
-- MUST reset IY_LOADED first because getgenv persists across teleports,
-- which causes Arc Yield's own startup check (line 1) to bail out immediately
pcall(function()
queueteleport([[
pcall(function() getgenv().IY_LOADED = false end)
pcall(function() getgenv().ARC_YIELD_LOADED = false end)
pcall(function() _G.IY_LOADED = false end)
pcall(function() _G.ARC_YIELD_LOADED = false end)
loadstring(readfile('Arc Yield.lua'))()
]])
end)
end
end)
addcmd('addalias',{},function(args, speaker)
if #args < 2 then return end
local cmd = string.lower(args[1])
local alias = string.lower(args[2])
for i,v in pairs(cmds) do
if v.NAME:lower()==cmd or FindInTable(v.ALIAS,cmd) then
customAlias[alias] = v
aliases[#aliases + 1] = {CMD = cmd, ALIAS = alias}
notify('Aliases Modified',"Added "..alias.." as an alias to "..cmd)
updatesaves()
refreshaliases()
break
end
end
end)
addcmd('removealias',{},function(args, speaker)
if #args < 1 then return end
local alias = string.lower(args[1])
if customAlias[alias] then
local cmd = customAlias[alias].NAME
customAlias[alias] = nil
for i = #aliases,1,-1 do
if aliases[i].ALIAS == tostring(alias) then
table.remove(aliases, i)
end
end
notify('Aliases Modified',"Removed the alias "..alias.." from "..cmd)
updatesaves()
refreshaliases()
end
end)
addcmd('clraliases',{},function(args, speaker)
customAlias = {}
aliases = {}
notify('Aliases Modified','Removed all aliases')
updatesaves()
refreshaliases()
end)
addcmd('discord', {'support', 'help'}, function(args, speaker)
if everyClipboard then
toClipboard('https://discord.com/invite/78ZuWSq')
notify('Discord Invite', 'Copied to clipboard!\ndiscord.gg/78ZuWSq')
else
notify('Discord Invite', 'discord.gg/78ZuWSq')
end
if httprequest then
httprequest({
Url = 'http://127.0.0.1:6463/rpc?v=1',
Method = 'POST',
Headers = {
['Content-Type'] = 'application/json',
Origin = 'https://discord.com'
},
Body = HttpService:JSONEncode({
cmd = 'INVITE_BROWSER',
nonce = HttpService:GenerateGUID(false),
args = {code = '78ZuWSq'}
})
})
end
end)
addcmd('keepiy', {}, function(args, speaker)
if queueteleport then
KeepInfYield = true
notify('KeepIY','Arc Yield will now run after you teleport')
updatesaves()
else
notify('Incompatible Exploit','Your exploit does not support this command (missing queue_on_teleport)')
end
end)
addcmd('unkeepiy', {}, function(args, speaker)
if queueteleport then
KeepInfYield = false
notify('KeepIY','Arc Yield will no longer run after you teleport')
updatesaves()
else
notify('Incompatible Exploit','Your exploit does not support this command (missing queue_on_teleport)')
end
end)
addcmd('togglekeepiy', {}, function(args, speaker)
if queueteleport then
KeepInfYield = not KeepInfYield
updatesaves()
else
notify('Incompatible Exploit','Your exploit does not support this command (missing queue_on_teleport)')
end
end)
local canOpenServerinfo = true
addcmd('serverinfo',{'info','sinfo'},function(args, speaker)
if not canOpenServerinfo then return end
canOpenServerinfo = false
task.spawn(function()
local FRAME = Instance.new("Frame")
local shadow = Instance.new("Frame")
local PopupText = Instance.new("TextLabel")
local Exit = Instance.new("TextButton")
local ExitImage = Instance.new("ImageLabel")
local background = Instance.new("Frame")
local TextLabel = Instance.new("TextLabel")
local TextLabel2 = Instance.new("TextLabel")
local TextLabel3 = Instance.new("TextLabel")
local Time = Instance.new("TextLabel")
local appearance = Instance.new("TextLabel")
local maxplayers = Instance.new("TextLabel")
local name = Instance.new("TextLabel")
local placeid = Instance.new("TextLabel")
local playerid = Instance.new("TextLabel")
local players = Instance.new("TextLabel")
local CopyApp = Instance.new("TextButton")
local CopyPlrID = Instance.new("TextButton")
local CopyPlcID = Instance.new("TextButton")
local CopyPlcName = Instance.new("TextButton")
FRAME.Name = randomString()
FRAME.Parent = ScaledHolder
FRAME.Active = true
FRAME.BackgroundTransparency = 1
FRAME.Position = UDim2.new(0.5, -130, 0, -500)
FRAME.Size = UDim2.new(0, 250, 0, 20)
FRAME.ZIndex = 10
dragGUI(FRAME)
shadow.Name = "shadow"
shadow.Parent = FRAME
shadow.BackgroundColor3 = currentShade2
shadow.BorderSizePixel = 0
shadow.Size = UDim2.new(0, 250, 0, 20)
shadow.ZIndex = 10
table.insert(shade2,shadow)
PopupText.Name = "PopupText"
PopupText.Parent = shadow
PopupText.BackgroundTransparency = 1
PopupText.Size = UDim2.new(1, 0, 0.95, 0)
PopupText.ZIndex = 10
PopupText.Font = Enum.Font.SourceSans
PopupText.TextSize = 14
PopupText.Text = "Server"
PopupText.TextColor3 = currentText1
PopupText.TextWrapped = true
table.insert(text1,PopupText)
Exit.Name = "Exit"
Exit.Parent = shadow
Exit.BackgroundTransparency = 1
Exit.Position = UDim2.new(1, -20, 0, 0)
Exit.Size = UDim2.new(0, 20, 0, 20)
Exit.Text = ""
Exit.ZIndex = 10
ExitImage.Parent = Exit
ExitImage.BackgroundColor3 = Color3.new(1, 1, 1)
ExitImage.BackgroundTransparency = 1
ExitImage.Position = UDim2.new(0, 5, 0, 5)
ExitImage.Size = UDim2.new(0, 10, 0, 10)
ExitImage.Image = getcustomasset("infiniteyield/assets/close.png")
ExitImage.ZIndex = 10
background.Name = "background"
background.Parent = FRAME
background.Active = true
background.BackgroundColor3 = currentShade1
background.BorderSizePixel = 0
background.Position = UDim2.new(0, 0, 1, 0)
background.Size = UDim2.new(0, 250, 0, 250)
background.ZIndex = 10
table.insert(shade1,background)
TextLabel.Name = "Text Label"
TextLabel.Parent = background
TextLabel.BackgroundTransparency = 1
TextLabel.BorderSizePixel = 0
TextLabel.Position = UDim2.new(0, 5, 0, 80)
TextLabel.Size = UDim2.new(0, 100, 0, 20)
TextLabel.ZIndex = 10
TextLabel.Font = Enum.Font.SourceSansLight
TextLabel.TextSize = 20
TextLabel.Text = "Run Time:"
TextLabel.TextColor3 = currentText1
TextLabel.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,TextLabel)
TextLabel2.Name = "Text Label2"
TextLabel2.Parent = background
TextLabel2.BackgroundTransparency = 1
TextLabel2.BorderSizePixel = 0
TextLabel2.Position = UDim2.new(0, 5, 0, 130)
TextLabel2.Size = UDim2.new(0, 100, 0, 20)
TextLabel2.ZIndex = 10
TextLabel2.Font = Enum.Font.SourceSansLight
TextLabel2.TextSize = 20
TextLabel2.Text = "Statistics:"
TextLabel2.TextColor3 = currentText1
TextLabel2.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,TextLabel2)
TextLabel3.Name = "Text Label3"
TextLabel3.Parent = background
TextLabel3.BackgroundTransparency = 1
TextLabel3.BorderSizePixel = 0
TextLabel3.Position = UDim2.new(0, 5, 0, 10)
TextLabel3.Size = UDim2.new(0, 100, 0, 20)
TextLabel3.ZIndex = 10
TextLabel3.Font = Enum.Font.SourceSansLight
TextLabel3.TextSize = 20
TextLabel3.Text = "Local Player:"
TextLabel3.TextColor3 = currentText1
TextLabel3.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,TextLabel3)
Time.Name = "Time"
Time.Parent = background
Time.BackgroundTransparency = 1
Time.BorderSizePixel = 0
Time.Position = UDim2.new(0, 5, 0, 105)
Time.Size = UDim2.new(0, 100, 0, 20)
Time.ZIndex = 10
Time.Font = Enum.Font.SourceSans
Time.FontSize = Enum.FontSize.Size14
Time.Text = "LOADING"
Time.TextColor3 = currentText1
Time.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,Time)
appearance.Name = "appearance"
appearance.Parent = background
appearance.BackgroundTransparency = 1
appearance.BorderSizePixel = 0
appearance.Position = UDim2.new(0, 5, 0, 55)
appearance.Size = UDim2.new(0, 100, 0, 20)
appearance.ZIndex = 10
appearance.Font = Enum.Font.SourceSans
appearance.FontSize = Enum.FontSize.Size14
appearance.Text = "Appearance: LOADING"
appearance.TextColor3 = currentText1
appearance.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,appearance)
maxplayers.Name = "maxplayers"
maxplayers.Parent = background
maxplayers.BackgroundTransparency = 1
maxplayers.BorderSizePixel = 0
maxplayers.Position = UDim2.new(0, 5, 0, 175)
maxplayers.Size = UDim2.new(0, 100, 0, 20)
maxplayers.ZIndex = 10
maxplayers.Font = Enum.Font.SourceSans
maxplayers.FontSize = Enum.FontSize.Size14
maxplayers.Text = "LOADING"
maxplayers.TextColor3 = currentText1
maxplayers.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,maxplayers)
name.Name = "name"
name.Parent = background
name.BackgroundTransparency = 1
name.BorderSizePixel = 0
name.Position = UDim2.new(0, 5, 0, 215)
name.Size = UDim2.new(0, 240, 0, 30)
name.ZIndex = 10
name.Font = Enum.Font.SourceSans
name.FontSize = Enum.FontSize.Size14
name.Text = "Place Name: LOADING"
name.TextColor3 = currentText1
name.TextWrapped = true
name.TextXAlignment = Enum.TextXAlignment.Left
name.TextYAlignment = Enum.TextYAlignment.Top
table.insert(text1,name)
placeid.Name = "placeid"
placeid.Parent = background
placeid.BackgroundTransparency = 1
placeid.BorderSizePixel = 0
placeid.Position = UDim2.new(0, 5, 0, 195)
placeid.Size = UDim2.new(0, 100, 0, 20)
placeid.ZIndex = 10
placeid.Font = Enum.Font.SourceSans
placeid.FontSize = Enum.FontSize.Size14
placeid.Text = "Place ID: LOADING"
placeid.TextColor3 = currentText1
placeid.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,placeid)
playerid.Name = "playerid"
playerid.Parent = background
playerid.BackgroundTransparency = 1
playerid.BorderSizePixel = 0
playerid.Position = UDim2.new(0, 5, 0, 35)
playerid.Size = UDim2.new(0, 100, 0, 20)
playerid.ZIndex = 10
playerid.Font = Enum.Font.SourceSans
playerid.FontSize = Enum.FontSize.Size14
playerid.Text = "Player ID: LOADING"
playerid.TextColor3 = currentText1
playerid.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,playerid)
players.Name = "players"
players.Parent = background
players.BackgroundTransparency = 1
players.BorderSizePixel = 0
players.Position = UDim2.new(0, 5, 0, 155)
players.Size = UDim2.new(0, 100, 0, 20)
players.ZIndex = 10
players.Font = Enum.Font.SourceSans
players.FontSize = Enum.FontSize.Size14
players.Text = "LOADING"
players.TextColor3 = currentText1
players.TextXAlignment = Enum.TextXAlignment.Left
table.insert(text1,players)
CopyApp.Name = "CopyApp"
CopyApp.Parent = background
CopyApp.BackgroundColor3 = currentShade2
CopyApp.BorderSizePixel = 0
CopyApp.Position = UDim2.new(0, 210, 0, 55)
CopyApp.Size = UDim2.new(0, 35, 0, 20)
CopyApp.Font = Enum.Font.SourceSans
CopyApp.TextSize = 14
CopyApp.Text = "Copy"
CopyApp.TextColor3 = currentText1
CopyApp.ZIndex = 10
table.insert(shade2,CopyApp)
table.insert(text1,CopyApp)
CopyPlrID.Name = "CopyPlrID"
CopyPlrID.Parent = background
CopyPlrID.BackgroundColor3 = currentShade2
CopyPlrID.BorderSizePixel = 0
CopyPlrID.Position = UDim2.new(0, 210, 0, 35)
CopyPlrID.Size = UDim2.new(0, 35, 0, 20)
CopyPlrID.Font = Enum.Font.SourceSans
CopyPlrID.TextSize = 14
CopyPlrID.Text = "Copy"
CopyPlrID.TextColor3 = currentText1
CopyPlrID.ZIndex = 10
table.insert(shade2,CopyPlrID)
table.insert(text1,CopyPlrID)
CopyPlcID.Name = "CopyPlcID"
CopyPlcID.Parent = background
CopyPlcID.BackgroundColor3 = currentShade2
CopyPlcID.BorderSizePixel = 0
CopyPlcID.Position = UDim2.new(0, 210, 0, 195)
CopyPlcID.Size = UDim2.new(0, 35, 0, 20)
CopyPlcID.Font = Enum.Font.SourceSans
CopyPlcID.TextSize = 14
CopyPlcID.Text = "Copy"
CopyPlcID.TextColor3 = currentText1
CopyPlcID.ZIndex = 10
table.insert(shade2,CopyPlcID)
table.insert(text1,CopyPlcID)
CopyPlcName.Name = "CopyPlcName"
CopyPlcName.Parent = background
CopyPlcName.BackgroundColor3 = currentShade2
CopyPlcName.BorderSizePixel = 0
CopyPlcName.Position = UDim2.new(0, 210, 0, 215)
CopyPlcName.Size = UDim2.new(0, 35, 0, 20)
CopyPlcName.Font = Enum.Font.SourceSans
CopyPlcName.TextSize = 14
CopyPlcName.Text = "Copy"
CopyPlcName.TextColor3 = currentText1
CopyPlcName.ZIndex = 10
table.insert(shade2,CopyPlcName)
table.insert(text1,CopyPlcName)
local SINFOGUI = background
FRAME:TweenPosition(UDim2.new(0.5, -130, 0, 100), "InOut", "Quart", 0.5, true, nil)
wait(0.5)
Exit.MouseButton1Click:Connect(function()
FRAME:TweenPosition(UDim2.new(0.5, -130, 0, -500), "InOut", "Quart", 0.5, true, nil)
wait(0.6)
FRAME:Destroy()
canOpenServerinfo = true
end)
local Asset = MarketplaceService:GetProductInfo(PlaceId)
SINFOGUI.name.Text = "Place Name: " .. Asset.Name
SINFOGUI.playerid.Text = "Player ID: " ..speaker.UserId
SINFOGUI.maxplayers.Text = Players.MaxPlayers.. " Players Max"
SINFOGUI.placeid.Text = "Place ID: " ..PlaceId
CopyApp.MouseButton1Click:Connect(function()
toClipboard(speaker.CharacterAppearanceId)
end)
CopyPlrID.MouseButton1Click:Connect(function()
toClipboard(speaker.UserId)
end)
CopyPlcID.MouseButton1Click:Connect(function()
toClipboard(PlaceId)
end)
CopyPlcName.MouseButton1Click:Connect(function()
toClipboard(Asset.Name)
end)
repeat
players = Players:GetPlayers()
SINFOGUI.players.Text = #players.. " Player(s)"
SINFOGUI.appearance.Text = "Appearance: " ..speaker.CharacterAppearanceId
local seconds = math.floor(workspace.DistributedGameTime)
local minutes = math.floor(workspace.DistributedGameTime / 60)
local hours = math.floor(workspace.DistributedGameTime / 60 / 60)
local seconds = seconds - (minutes * 60)
local minutes = minutes - (hours * 60)
if hours < 1 then if minutes < 1 then
SINFOGUI.Time.Text = seconds .. " Second(s)" else
SINFOGUI.Time.Text = minutes .. " Minute(s), " .. seconds .. " Second(s)"
end
else
SINFOGUI.Time.Text = hours .. " Hour(s), " .. minutes .. " Minute(s), " .. seconds .. " Second(s)"
end
wait(1)
until SINFOGUI.Parent == nil
end)
end)
addcmd("jobid", {}, function(args, speaker)
toClipboard("roblox://placeId=" .. PlaceId .. "&gameInstanceId=" .. JobId)
end)
addcmd('notifyjobid',{},function(args, speaker)
notify('JobId / PlaceId',JobId..' / '..PlaceId)
end)
addcmd('breakloops',{'break'},function(args, speaker)
lastBreakTime = tick()
end)
addcmd('gametp',{'gameteleport'},function(args, speaker)
TeleportService:Teleport(args[1])
end)
addcmd("rejoin", {"rj"}, function(args, speaker)
if #Players:GetPlayers() <= 1 then
Players.LocalPlayer:Kick("\nRejoining...")
wait()
TeleportService:Teleport(PlaceId, Players.LocalPlayer)
else
TeleportService:TeleportToPlaceInstance(PlaceId, JobId, Players.LocalPlayer)
end
end)
addcmd("autorejoin", {"autorj"}, function(args, speaker)
GuiService.ErrorMessageChanged:Connect(function()
execCmd("rejoin")
end)
notify("Auto Rejoin", "Auto rejoin enabled")
end)
addcmd("serverhop", {"shop"}, function(args, speaker)
-- thanks to Amity for fixing
local servers = {}
local req = game:HttpGet("https://games.roblox.com/v1/games/" .. PlaceId .. "/servers/Public?sortOrder=Desc&limit=100&excludeFullGames=true")
local body = HttpService:JSONDecode(req)
if body and body.data then
for i, v in next, body.data do
if type(v) == "table" and tonumber(v.playing) and tonumber(v.maxPlayers) and v.playing < v.maxPlayers and v.id ~= JobId then
table.insert(servers, 1, v.id)
end
end
end
if #servers > 0 then
TeleportService:TeleportToPlaceInstance(PlaceId, servers[math.random(1, #servers)], Players.LocalPlayer)
else
return notify("Serverhop", "Couldn't find a server.")
end
end)
addcmd("exit", {}, function(args, speaker)
game:Shutdown()
end)
addcmd("respawn", {}, function(args, speaker)
local char = speaker.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
hum.Health = 0
else
-- Fallback: destroy and let Roblox respawn
char:Destroy()
end
end
end)
addcmd("suicide", {"killme"}, function(args, speaker)
local char = speaker.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
hum.Health = 0
end
end
end)
addcmd("sit", {"sitdown"}, function(args, speaker)
local hum = speaker.Character and speaker.Character:FindFirstChildOfClass("Humanoid")
if hum then
hum.Sit = true
notify("Sit", "Now sitting")
end
end)
addcmd("time", {"settime", "timeofday"}, function(args, speaker)
local t = tonumber(args[1])
if t then
if t < 0 then t = 0 end
if t > 24 then t = 24 end
game:GetService("Lighting").ClockTime = t
notify("Time", "Set to " .. t .. ":00")
else
notify("Time", "Provide a number (0-24)")
end
end)
local Noclipping = nil
addcmd('noclip',{},function(args, speaker)
Clip = false
wait(0.1)
local function NoclipLoop()
if Clip == false and speaker.Character ~= nil then
for _, child in pairs(speaker.Character:GetDescendants()) do
if child:IsA("BasePart") and child.CanCollide == true and child.Name ~= floatName then
child.CanCollide = false
end
end
end
end
Noclipping = RunService.Stepped:Connect(NoclipLoop)
if args[1] and args[1] == 'nonotify' then return end
notify('Noclip','Noclip Enabled')
end)
addcmd('clip',{'unnoclip'},function(args, speaker)
if Noclipping then
Noclipping:Disconnect()
end
Clip = true
if args[1] and args[1] == 'nonotify' then return end
notify('Noclip','Noclip Disabled')
end)
-- nocliph: vertical noclip (teleport up/down through floors/ceilings)
local Nocliph = nil
addcmd('nocliph',{'hclip'},function(args, speaker)
local studs = tonumber(args[1])
if studs == nil then
-- Default: detect if pressing shift (move down) or just move up
studs = 10
end
local root = getRoot(speaker.Character)
if root then
root.CFrame = root.CFrame + Vector3.new(0, studs, 0)
notify('NoclipH', 'Moved ' .. (studs > 0 and 'up ' or 'down ') .. math.abs(studs) .. ' studs')
end
end)
addcmd('togglenoclip',{},function(args, speaker)
if Clip then
execCmd('noclip')
else
execCmd('clip')
end
end)
FLYING = false
QEfly = true
iyflyspeed = 1
vehicleflyspeed = 1
function sFLY(vfly)
local plr = Players.LocalPlayer
local char = plr.Character or plr.CharacterAdded:Wait()
local humanoid = char:FindFirstChildOfClass("Humanoid")
if not humanoid then
repeat task.wait() until char:FindFirstChildOfClass("Humanoid")
humanoid = char:FindFirstChildOfClass("Humanoid")
end
if flyKeyDown or flyKeyUp then
flyKeyDown:Disconnect()
flyKeyUp:Disconnect()
end
local T = getRoot(char)
local CONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
local lCONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
local SPEED = 0
local function FLY()
FLYING = true
local BG = Instance.new('BodyGyro')
local BV = Instance.new('BodyVelocity')
BG.P = 9e4
BG.Parent = T
BV.Parent = T
BG.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
BG.CFrame = T.CFrame
BV.Velocity = Vector3.new(0, 0, 0)
BV.MaxForce = Vector3.new(9e9, 9e9, 9e9)
task.spawn(function()
repeat task.wait()
local camera = workspace.CurrentCamera
if not vfly and humanoid then
humanoid.PlatformStand = true
end
if CONTROL.L + CONTROL.R ~= 0 or CONTROL.F + CONTROL.B ~= 0 or CONTROL.Q + CONTROL.E ~= 0 then
SPEED = 50
elseif not (CONTROL.L + CONTROL.R ~= 0 or CONTROL.F + CONTROL.B ~= 0 or CONTROL.Q + CONTROL.E ~= 0) and SPEED ~= 0 then
SPEED = 0
end
if (CONTROL.L + CONTROL.R) ~= 0 or (CONTROL.F + CONTROL.B) ~= 0 or (CONTROL.Q + CONTROL.E) ~= 0 then
BV.Velocity = ((camera.CFrame.LookVector * (CONTROL.F + CONTROL.B)) + ((camera.CFrame * CFrame.new(CONTROL.L + CONTROL.R, (CONTROL.F + CONTROL.B + CONTROL.Q + CONTROL.E) * 0.2, 0).p) - camera.CFrame.p)) * SPEED
lCONTROL = {F = CONTROL.F, B = CONTROL.B, L = CONTROL.L, R = CONTROL.R}
elseif (CONTROL.L + CONTROL.R) == 0 and (CONTROL.F + CONTROL.B) == 0 and (CONTROL.Q + CONTROL.E) == 0 and SPEED ~= 0 then
BV.Velocity = ((camera.CFrame.LookVector * (lCONTROL.F + lCONTROL.B)) + ((camera.CFrame * CFrame.new(lCONTROL.L + lCONTROL.R, (lCONTROL.F + lCONTROL.B + CONTROL.Q + CONTROL.E) * 0.2, 0).p) - camera.CFrame.p)) * SPEED
else
BV.Velocity = Vector3.new(0, 0, 0)
end
BG.CFrame = camera.CFrame
until not FLYING
CONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
lCONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
SPEED = 0
BG:Destroy()
BV:Destroy()
if humanoid then humanoid.PlatformStand = false end
end)
end
flyKeyDown = UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.KeyCode == Enum.KeyCode.W then
CONTROL.F = (vfly and vehicleflyspeed or iyflyspeed)
elseif input.KeyCode == Enum.KeyCode.S then
CONTROL.B = - (vfly and vehicleflyspeed or iyflyspeed)
elseif input.KeyCode == Enum.KeyCode.A then
CONTROL.L = - (vfly and vehicleflyspeed or iyflyspeed)
elseif input.KeyCode == Enum.KeyCode.D then
CONTROL.R = (vfly and vehicleflyspeed or iyflyspeed)
elseif input.KeyCode == Enum.KeyCode.E and QEfly then
CONTROL.Q = (vfly and vehicleflyspeed or iyflyspeed)*2
elseif input.KeyCode == Enum.KeyCode.Q and QEfly then
CONTROL.E = -(vfly and vehicleflyspeed or iyflyspeed)*2
end
pcall(function() camera.CameraType = Enum.CameraType.Track end)
end)
flyKeyUp = UserInputService.InputEnded:Connect(function(input, processed)
if processed then return end
if input.KeyCode == Enum.KeyCode.W then
CONTROL.F = 0
elseif input.KeyCode == Enum.KeyCode.S then
CONTROL.B = 0
elseif input.KeyCode == Enum.KeyCode.A then
CONTROL.L = 0
elseif input.KeyCode == Enum.KeyCode.D then
CONTROL.R = 0
elseif input.KeyCode == Enum.KeyCode.E then
CONTROL.Q = 0
elseif input.KeyCode == Enum.KeyCode.Q then
CONTROL.E = 0
end
end)
FLY()
end
function NOFLY()
FLYING = false
if flyKeyDown or flyKeyUp then flyKeyDown:Disconnect() flyKeyUp:Disconnect() end
if Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid') then
Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid').PlatformStand = false
end
pcall(function() workspace.CurrentCamera.CameraType = Enum.CameraType.Custom end)
end
local velocityHandlerName = randomString()
local gyroHandlerName = randomString()
local mfly1
local mfly2
local unmobilefly = function(speaker)
pcall(function()
FLYING = false
local root = getRoot(speaker.Character)
root:FindFirstChild(velocityHandlerName):Destroy()
root:FindFirstChild(gyroHandlerName):Destroy()
speaker.Character:FindFirstChildWhichIsA("Humanoid").PlatformStand = false
mfly1:Disconnect()
mfly2:Disconnect()
end)
end
local mobilefly = function(speaker, vfly)
unmobilefly(speaker)
FLYING = true
local root = getRoot(speaker.Character)
local camera = workspace.CurrentCamera
local v3none = Vector3.new()
local v3zero = Vector3.new(0, 0, 0)
local v3inf = Vector3.new(9e9, 9e9, 9e9)
local controlModule = require(speaker.PlayerScripts:WaitForChild("PlayerModule"):WaitForChild("ControlModule"))
local bv = Instance.new("BodyVelocity")
bv.Name = velocityHandlerName
bv.Parent = root
bv.MaxForce = v3zero
bv.Velocity = v3zero
local bg = Instance.new("BodyGyro")
bg.Name = gyroHandlerName
bg.Parent = root
bg.MaxTorque = v3inf
bg.P = 1000
bg.D = 50
mfly1 = speaker.CharacterAdded:Connect(function()
local bv = Instance.new("BodyVelocity")
bv.Name = velocityHandlerName
bv.Parent = root
bv.MaxForce = v3zero
bv.Velocity = v3zero
local bg = Instance.new("BodyGyro")
bg.Name = gyroHandlerName
bg.Parent = root
bg.MaxTorque = v3inf
bg.P = 1000
bg.D = 50
end)
mfly2 = RunService.RenderStepped:Connect(function()
root = getRoot(speaker.Character)
camera = workspace.CurrentCamera
if speaker.Character:FindFirstChildWhichIsA("Humanoid") and root and root:FindFirstChild(velocityHandlerName) and root:FindFirstChild(gyroHandlerName) then
local humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
local VelocityHandler = root:FindFirstChild(velocityHandlerName)
local GyroHandler = root:FindFirstChild(gyroHandlerName)
VelocityHandler.MaxForce = v3inf
GyroHandler.MaxTorque = v3inf
if not vfly then humanoid.PlatformStand = true end
GyroHandler.CFrame = camera.CoordinateFrame
VelocityHandler.Velocity = v3none
local direction = controlModule:GetMoveVector()
if direction.X > 0 then
VelocityHandler.Velocity = VelocityHandler.Velocity + camera.CFrame.RightVector * (direction.X * ((vfly and vehicleflyspeed or iyflyspeed) * 50))
end
if direction.X < 0 then
VelocityHandler.Velocity = VelocityHandler.Velocity + camera.CFrame.RightVector * (direction.X * ((vfly and vehicleflyspeed or iyflyspeed) * 50))
end
if direction.Z > 0 then
VelocityHandler.Velocity = VelocityHandler.Velocity - camera.CFrame.LookVector * (direction.Z * ((vfly and vehicleflyspeed or iyflyspeed) * 50))
end
if direction.Z < 0 then
VelocityHandler.Velocity = VelocityHandler.Velocity - camera.CFrame.LookVector * (direction.Z * ((vfly and vehicleflyspeed or iyflyspeed) * 50))
end
end
end)
end
addcmd('fly',{},function(args, speaker)
if not IsOnMobile then
NOFLY()
wait()
sFLY()
else
mobilefly(speaker)
end
if args[1] and isNumber(args[1]) then
iyflyspeed = args[1]
end
end)
addcmd('flyspeed',{'flysp'},function(args, speaker)
local speed = args[1] or 1
if isNumber(speed) then
iyflyspeed = speed
end
end)
addcmd('unfly',{'nofly','novfly','unvehiclefly','novehiclefly','unvfly'},function(args, speaker)
if not IsOnMobile then NOFLY() else unmobilefly(speaker) end
end)
addcmd('vfly',{'vehiclefly'},function(args, speaker)
if not IsOnMobile then
NOFLY()
wait()
sFLY(true)
else
mobilefly(speaker, true)
end
if args[1] and isNumber(args[1]) then
vehicleflyspeed = args[1]
end
end)
addcmd('togglevfly',{},function(args, speaker)
if FLYING then
if not IsOnMobile then NOFLY() else unmobilefly(speaker) end
else
if not IsOnMobile then sFLY(true) else mobilefly(speaker, true) end
end
end)
addcmd('vflyspeed',{'vflysp','vehicleflyspeed','vehicleflysp'},function(args, speaker)
local speed = args[1] or 1
if isNumber(speed) then
vehicleflyspeed = speed
end
end)
addcmd('qefly',{'flyqe'},function(args, speaker)
if args[1] == 'false' then
QEfly = false
else
QEfly = true
end
end)
addcmd('togglefly',{},function(args, speaker)
if FLYING then
if not IsOnMobile then NOFLY() else unmobilefly(speaker) end
else
if not IsOnMobile then sFLY() else mobilefly(speaker) end
end
end)
CFspeed = 50
addcmd('cframefly', {'cfly'}, function(args, speaker)
if args[1] and isNumber(args[1]) then
CFspeed = args[1]
end
-- Full credit to peyton#9148 (apeyton)
speaker.Character:FindFirstChildOfClass('Humanoid').PlatformStand = true
local Head = speaker.Character:WaitForChild("Head")
Head.Anchored = true
if CFloop then CFloop:Disconnect() end
CFloop = RunService.Heartbeat:Connect(function(deltaTime)
local moveDirection = speaker.Character:FindFirstChildOfClass('Humanoid').MoveDirection * (CFspeed * deltaTime)
local headCFrame = Head.CFrame
local camera = workspace.CurrentCamera
local cameraCFrame = camera.CFrame
local cameraOffset = headCFrame:ToObjectSpace(cameraCFrame).Position
cameraCFrame = cameraCFrame * CFrame.new(-cameraOffset.X, -cameraOffset.Y, -cameraOffset.Z + 1)
local cameraPosition = cameraCFrame.Position
local headPosition = headCFrame.Position
local objectSpaceVelocity = CFrame.new(cameraPosition, Vector3.new(headPosition.X, cameraPosition.Y, headPosition.Z)):VectorToObjectSpace(moveDirection)
Head.CFrame = CFrame.new(headPosition) * (cameraCFrame - cameraPosition) * CFrame.new(objectSpaceVelocity)
end)
end)
addcmd('uncframefly',{'uncfly'},function(args, speaker)
if CFloop then
CFloop:Disconnect()
speaker.Character:FindFirstChildOfClass('Humanoid').PlatformStand = false
local Head = speaker.Character:WaitForChild("Head")
Head.Anchored = false
end
end)
addcmd('cframeflyspeed',{'cflyspeed'},function(args, speaker)
if isNumber(args[1]) then
CFspeed = args[1]
end
end)
do
-- ======================== ROTATESPEED ========================
-- rotatespeed <angle> <keycode>
-- Snaps camera to <angle> degrees for 0.05s when <keycode> is pressed, then restores
local rsActive = false
local rsAngle = 0
local rsKey = nil
local rsConn = nil
local function rsStop()
rsActive = false
if rsConn then
rsConn:Disconnect()
rsConn = nil
end
end
local function rsStart(angle, keyName)
rsStop()
rsActive = true
rsAngle = tonumber(angle) or 0
-- Convert key name string (e.g. "E", "Q", "F") to KeyCode enum
local enumKey = Enum.KeyCode[keyName]
if not enumKey then
notify("RotateSpeed", "Invalid key: " .. tostring(keyName))
rsActive = false
return
end
rsKey = enumKey
rsConn = UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == rsKey then
if not rsActive then return end
local cam = workspace.CurrentCamera
if not cam then return end
-- Save original camera CFrame
local originalCFrame = cam.CFrame
local pos = originalCFrame.Position
-- Build new CFrame at the same position but facing <angle> degrees
-- Y-axis rotation, math.rad converts degrees to radians
local newCFrame = CFrame.new(pos) * CFrame.Angles(math.rad(rsAngle), 0, 0)
cam.CFrame = newCFrame
-- Hold for 0.05 seconds then restore
task.delay(0.05, function()
if cam and cam.Parent then
cam.CFrame = originalCFrame
end
end)
end
end)
end
addcmd("rotatespeed", {"rspeed", "rs", "rotspd"}, function(args, speaker)
if not args[1] or not args[2] then
notify("RotateSpeed", "Usage: rotatespeed <angle> <key>\nExample: rotatespeed 90 E\nStops: unrotatespeed")
return
end
if not isNumber(args[1]) then
notify("RotateSpeed", "First argument must be a number (angle in degrees)")
return
end
rsStart(args[1], args[2])
notify("RotateSpeed", "Set to " .. args[1] .. " degrees on key [" .. args[2] .. "]")
end)
addcmd("unrotatespeed", {"unrspeed", "unrs", "unrotspd"}, function(args, speaker)
rsStop()
notify("RotateSpeed", "Disabled")
end)
Floating = false
floatName = randomString()
addcmd('float', {'platform'},function(args, speaker)
Floating = true
local pchar = speaker.Character
if pchar and not pchar:FindFirstChild(floatName) then
task.spawn(function()
local Float = Instance.new('Part')
Float.Name = floatName
Float.Parent = pchar
Float.Transparency = 1
Float.Size = Vector3.new(2,0.2,1.5)
Float.Anchored = true
local FloatValue = -3.1
Float.CFrame = getRoot(pchar).CFrame * CFrame.new(0,FloatValue,0)
notify('Float','Float Enabled (Q = down & E = up)')
qUp = IYMouse.KeyUp:Connect(function(KEY)
if KEY == 'q' then
FloatValue = FloatValue + 0.5
end
end)
eUp = IYMouse.KeyUp:Connect(function(KEY)
if KEY == 'e' then
FloatValue = FloatValue - 1.5
end
end)
qDown = IYMouse.KeyDown:Connect(function(KEY)
if KEY == 'q' then
FloatValue = FloatValue - 0.5
end
end)
eDown = IYMouse.KeyDown:Connect(function(KEY)
if KEY == 'e' then
FloatValue = FloatValue + 1.5
end
end)
floatDied = speaker.Character:FindFirstChildOfClass('Humanoid').Died:Connect(function()
FloatingFunc:Disconnect()
Float:Destroy()
qUp:Disconnect()
eUp:Disconnect()
qDown:Disconnect()
eDown:Disconnect()
floatDied:Disconnect()
end)
local function FloatPadLoop()
if pchar:FindFirstChild(floatName) and getRoot(pchar) then
Float.CFrame = getRoot(pchar).CFrame * CFrame.new(0,FloatValue,0)
else
FloatingFunc:Disconnect()
Float:Destroy()
qUp:Disconnect()
eUp:Disconnect()
qDown:Disconnect()
eDown:Disconnect()
floatDied:Disconnect()
end
end
FloatingFunc = RunService.Heartbeat:Connect(FloatPadLoop)
end)
end
end)
addcmd('unfloat',{'nofloat','unplatform','noplatform'},function(args, speaker)
Floating = false
local pchar = speaker.Character
notify('Float','Float Disabled')
if pchar:FindFirstChild(floatName) then
pchar:FindFirstChild(floatName):Destroy()
end
if floatDied then
FloatingFunc:Disconnect()
qUp:Disconnect()
eUp:Disconnect()
qDown:Disconnect()
eDown:Disconnect()
floatDied:Disconnect()
end
end)
addcmd('togglefloat',{},function(args, speaker)
if Floating then
execCmd('unfloat')
else
execCmd('float')
end
end)
swimming = false
local oldgrav = workspace.Gravity
local swimbeat = nil
addcmd('swim',{},function(args, speaker)
if not swimming and speaker and speaker.Character and speaker.Character:FindFirstChildWhichIsA("Humanoid") then
oldgrav = workspace.Gravity
workspace.Gravity = 0
local swimDied = function()
workspace.Gravity = oldgrav
swimming = false
end
local Humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
gravReset = Humanoid.Died:Connect(swimDied)
local enums = Enum.HumanoidStateType:GetEnumItems()
table.remove(enums, table.find(enums, Enum.HumanoidStateType.None))
for i, v in pairs(enums) do
Humanoid:SetStateEnabled(v, false)
end
Humanoid:ChangeState(Enum.HumanoidStateType.Swimming)
swimbeat = RunService.Heartbeat:Connect(function()
pcall(function()
getRoot(speaker.Character).Humanoid.RootPart.Velocity = ((Humanoid.MoveDirection ~= Vector3.new() or UserInputService:IsKeyDown(Enum.KeyCode.Space)) and getRoot(speaker.Character).Humanoid.RootPart.Velocity or Vector3.new())
end)
end)
swimming = true
end
end)
addcmd('unswim',{'noswim'},function(args, speaker)
if speaker and speaker.Character and speaker.Character:FindFirstChildWhichIsA("Humanoid") then
workspace.Gravity = oldgrav
swimming = false
if gravReset then
gravReset:Disconnect()
end
if swimbeat ~= nil then
swimbeat:Disconnect()
swimbeat = nil
end
local Humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
local enums = Enum.HumanoidStateType:GetEnumItems()
table.remove(enums, table.find(enums, Enum.HumanoidStateType.None))
for i, v in pairs(enums) do
Humanoid:SetStateEnabled(v, true)
end
end
end)
addcmd('toggleswim',{},function(args, speaker)
if swimming then
execCmd('unswim')
else
execCmd('swim')
end
end)
addcmd('setwaypoint',{'swp','setwp','spos','saveposition','savepos'},function(args, speaker)
local WPName = tostring(getstring(1, args))
if getRoot(speaker.Character) then
notify('Modified Waypoints',"Created waypoint: "..getstring(1, args))
local torso = getRoot(speaker.Character)
WayPoints[#WayPoints + 1] = {NAME = WPName, COORD = {math.floor(torso.Position.X), math.floor(torso.Position.Y), math.floor(torso.Position.Z)}, GAME = PlaceId}
if AllWaypoints ~= nil then
AllWaypoints[#AllWaypoints + 1] = {NAME = WPName, COORD = {math.floor(torso.Position.X), math.floor(torso.Position.Y), math.floor(torso.Position.Z)}, GAME = PlaceId}
end
end
refreshwaypoints()
updatesaves()
end)
addcmd('waypointpos',{'wpp','setwaypointposition','setpos','setwaypoint','setwaypointpos'},function(args, speaker)
local WPName = tostring(getstring(1, args))
if getRoot(speaker.Character) then
notify('Modified Waypoints',"Created waypoint: "..getstring(1, args))
WayPoints[#WayPoints + 1] = {NAME = WPName, COORD = {args[2], args[3], args[4]}, GAME = PlaceId}
if AllWaypoints ~= nil then
AllWaypoints[#AllWaypoints + 1] = {NAME = WPName, COORD = {args[2], args[3], args[4]}, GAME = PlaceId}
end
end
refreshwaypoints()
updatesaves()
end)
addcmd('waypoints',{'positions'},function(args, speaker)
if SettingsOpen == false then SettingsOpen = true
Settings:TweenPosition(UDim2.new(0, 0, 0, 45), "InOut", "Quart", 0.5, true, nil)
CMDsF.Visible = false
end
KeybindsFrame:TweenPosition(UDim2.new(0, 0, 0, 175), "InOut", "Quart", 0.5, true, nil)
AliasesFrame:TweenPosition(UDim2.new(0, 0, 0, 175), "InOut", "Quart", 0.5, true, nil)
PluginsFrame:TweenPosition(UDim2.new(0, 0, 0, 175), "InOut", "Quart", 0.5, true, nil)
PositionsFrame:TweenPosition(UDim2.new(0, 0, 0, 0), "InOut", "Quart", 0.5, true, nil)
wait(0.5)
SettingsHolder.Visible = false
maximizeHolder()
end)
waypointParts = {}
addcmd('showwaypoints',{'showwp','showwps'},function(args, speaker)
execCmd('hidewaypoints')
wait()
for i,_ in pairs(WayPoints) do
local x = WayPoints[i].COORD[1]
local y = WayPoints[i].COORD[2]
local z = WayPoints[i].COORD[3]
local part = Instance.new("Part")
part.Size = Vector3.new(5,5,5)
part.CFrame = CFrame.new(x,y,z)
part.Parent = workspace
part.Anchored = true
part.CanCollide = false
table.insert(waypointParts,part)
local view = Instance.new("BoxHandleAdornment")
view.Adornee = part
view.AlwaysOnTop = true
view.ZIndex = 10
view.Size = part.Size
view.Parent = part
end
for i,v in pairs(pWayPoints) do
local view = Instance.new("BoxHandleAdornment")
view.Adornee = pWayPoints[i].COORD[1]
view.AlwaysOnTop = true
view.ZIndex = 10
view.Size = pWayPoints[i].COORD[1].Size
view.Parent = pWayPoints[i].COORD[1]
table.insert(waypointParts,view)
end
end)
addcmd('hidewaypoints',{'hidewp','hidewps'},function(args, speaker)
for i,v in pairs(waypointParts) do
v:Destroy()
end
waypointParts = {}
end)
addcmd('waypoint',{'wp','lpos','loadposition','loadpos'},function(args, speaker)
local WPName = tostring(getstring(1, args))
if speaker.Character then
for i,_ in pairs(WayPoints) do
if tostring(WayPoints[i].NAME):lower() == tostring(WPName):lower() then
local x = WayPoints[i].COORD[1]
local y = WayPoints[i].COORD[2]
local z = WayPoints[i].COORD[3]
getRoot(speaker.Character).CFrame = CFrame.new(x,y,z)
end
end
for i,_ in pairs(pWayPoints) do
if tostring(pWayPoints[i].NAME):lower() == tostring(WPName):lower() then
getRoot(speaker.Character).CFrame = CFrame.new(pWayPoints[i].COORD[1].Position)
end
end
end
end)
tweenSpeed = 1
addcmd('tweenspeed',{'tspeed'},function(args, speaker)
local newSpeed = args[1] or 1
if tonumber(newSpeed) then
tweenSpeed = tonumber(newSpeed)
end
end)
addcmd('tweenwaypoint',{'twp'},function(args, speaker)
local WPName = tostring(getstring(1, args))
if speaker.Character then
for i,_ in pairs(WayPoints) do
local x = WayPoints[i].COORD[1]
local y = WayPoints[i].COORD[2]
local z = WayPoints[i].COORD[3]
if tostring(WayPoints[i].NAME):lower() == tostring(WPName):lower() then
TweenService:Create(getRoot(speaker.Character), TweenInfo.new(tweenSpeed, Enum.EasingStyle.Linear), {CFrame = CFrame.new(x,y,z)}):Play()
end
end
for i,_ in pairs(pWayPoints) do
if tostring(pWayPoints[i].NAME):lower() == tostring(WPName):lower() then
TweenService:Create(getRoot(speaker.Character), TweenInfo.new(tweenSpeed, Enum.EasingStyle.Linear), {CFrame = CFrame.new(pWayPoints[i].COORD[1].Position)}):Play()
end
end
end
end)
addcmd('walktowaypoint',{'wtwp'},function(args, speaker)
local WPName = tostring(getstring(1, args))
if speaker.Character then
for i,_ in pairs(WayPoints) do
local x = WayPoints[i].COORD[1]
local y = WayPoints[i].COORD[2]
local z = WayPoints[i].COORD[3]
if tostring(WayPoints[i].NAME):lower() == tostring(WPName):lower() then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
speaker.Character:FindFirstChildOfClass('Humanoid').WalkToPoint = Vector3.new(x,y,z)
end
end
for i,_ in pairs(pWayPoints) do
if tostring(pWayPoints[i].NAME):lower() == tostring(WPName):lower() then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
speaker.Character:FindFirstChildOfClass('Humanoid').WalkToPoint = Vector3.new(pWayPoints[i].COORD[1].Position)
end
end
end
end)
addcmd('deletewaypoint',{'dwp','dpos','deleteposition','deletepos'},function(args, speaker)
for i,v in pairs(WayPoints) do
if v.NAME:lower() == tostring(getstring(1, args)):lower() then
notify('Modified Waypoints',"Deleted waypoint: " .. v.NAME)
table.remove(WayPoints, i)
end
end
if AllWaypoints ~= nil and #AllWaypoints > 0 then
for i,v in pairs(AllWaypoints) do
if v.NAME:lower() == tostring(getstring(1, args)):lower() then
if not v.GAME or v.GAME == PlaceId then
table.remove(AllWaypoints, i)
end
end
end
end
for i,v in pairs(pWayPoints) do
if v.NAME:lower() == tostring(getstring(1, args)):lower() then
notify('Modified Waypoints',"Deleted waypoint: " .. v.NAME)
table.remove(pWayPoints, i)
end
end
refreshwaypoints()
updatesaves()
end)
addcmd('clearwaypoints',{'cwp','clearpositions','cpos','clearpos'},function(args, speaker)
WayPoints = {}
pWayPoints = {}
refreshwaypoints()
updatesaves()
AllWaypoints = {}
notify('Modified Waypoints','Removed all waypoints')
end)
addcmd('cleargamewaypoints',{'cgamewp'},function(args, speaker)
for i,v in pairs(WayPoints) do
if v.GAME == PlaceId then
table.remove(WayPoints, i)
end
end
if AllWaypoints ~= nil and #AllWaypoints > 0 then
for i,v in pairs(AllWaypoints) do
if v.GAME == PlaceId then
table.remove(AllWaypoints, i)
end
end
end
for i,v in pairs(pWayPoints) do
if v.GAME == PlaceId then
table.remove(pWayPoints, i)
end
end
refreshwaypoints()
updatesaves()
notify('Modified Waypoints','Deleted game waypoints')
end)
local coreGuiTypeNames = {
-- predefined aliases
["inventory"] = Enum.CoreGuiType.Backpack,
["leaderboard"] = Enum.CoreGuiType.PlayerList,
["emotes"] = Enum.CoreGuiType.EmotesMenu
}
-- Load the full list of enums
for _, enumItem in ipairs(Enum.CoreGuiType:GetEnumItems()) do
coreGuiTypeNames[enumItem.Name:lower()] = enumItem
end
addcmd('enable',{},function(args, speaker)
local input = args[1] and args[1]:lower()
if input then
if input == "reset" then
StarterGui:SetCore("ResetButtonCallback", true)
else
local coreGuiType = coreGuiTypeNames[input]
if coreGuiType then
StarterGui:SetCoreGuiEnabled(coreGuiType, true)
end
end
end
end)
addcmd('disable',{},function(args, speaker)
local input = args[1] and args[1]:lower()
if input then
if input == "reset" then
StarterGui:SetCore("ResetButtonCallback", false)
else
local coreGuiType = coreGuiTypeNames[input]
if coreGuiType then
StarterGui:SetCoreGuiEnabled(coreGuiType, false)
end
end
end
end)
local invisGUIS = {}
addcmd('showguis',{},function(args, speaker)
for i,v in pairs(PlayerGui:GetDescendants()) do
if (v:IsA("Frame") or v:IsA("ImageLabel") or v:IsA("ScrollingFrame")) and not v.Visible then
v.Visible = true
if not FindInTable(invisGUIS,v) then
table.insert(invisGUIS,v)
end
end
end
end)
addcmd('unshowguis',{},function(args, speaker)
for i,v in pairs(invisGUIS) do
v.Visible = false
end
invisGUIS = {}
end)
local hiddenGUIS = {}
addcmd('hideguis',{},function(args, speaker)
for i,v in pairs(PlayerGui:GetDescendants()) do
if (v:IsA("Frame") or v:IsA("ImageLabel") or v:IsA("ScrollingFrame")) and v.Visible then
v.Visible = false
if not FindInTable(hiddenGUIS,v) then
table.insert(hiddenGUIS,v)
end
end
end
end)
addcmd('unhideguis',{},function(args, speaker)
for i,v in pairs(hiddenGUIS) do
v.Visible = true
end
hiddenGUIS = {}
end)
function deleteGuisAtPos()
pcall(function()
local guisAtPosition = PlayerGui:GetGuiObjectsAtPosition(IYMouse.X, IYMouse.Y)
for _, gui in pairs(guisAtPosition) do
if gui.Visible == true then
gui:Destroy()
end
end
end)
end
local deleteGuiInput
addcmd('guidelete',{},function(args, speaker)
deleteGuiInput = UserInputService.InputBegan:Connect(function(input, gameProcessedEvent)
if not gameProcessedEvent then
if input.KeyCode == Enum.KeyCode.Backspace then
deleteGuisAtPos()
end
end
end)
notify('GUI Delete Enabled','Hover over a GUI and press backspace to delete it')
end)
addcmd('unguidelete',{'noguidelete'},function(args, speaker)
if deleteGuiInput then deleteGuiInput:Disconnect() end
notify('GUI Delete Disabled','GUI backspace delete has been disabled')
end)
local wasStayOpen = StayOpen
addcmd('hideiy',{},function(args, speaker)
isHidden = true
wasStayOpen = StayOpen
if StayOpen == true then
StayOpen = false
On.BackgroundTransparency = 1
end
minimizeNum = 0
minimizeHolder()
if not (args[1] and tostring(args[1]) == 'nonotify') then notify('IY Hidden','You can press the prefix key to access the command bar') end
end)
addcmd('showiy',{'unhideiy'},function(args, speaker)
isHidden = false
minimizeNum = -20
if wasStayOpen then
maximizeHolder()
StayOpen = true
On.BackgroundTransparency = 0
else
minimizeHolder()
end
end)
addcmd('rec', {'record'}, function(args, speaker)
return COREGUI:ToggleRecording()
end)
addcmd('screenshot', {'scrnshot'}, function(args, speaker)
return COREGUI:TakeScreenshot()
end)
addcmd('togglefs', {'togglefullscreen'}, function(args, speaker)
return GuiService:ToggleFullscreen()
end)
addcmd('inspect', {'examine'}, function(args, speaker)
for _, v in ipairs(getPlayer(args[1], speaker)) do
GuiService:CloseInspectMenu()
GuiService:InspectPlayerFromUserId(Players[v].UserId)
end
end)
addcmd("savegame", {"saveplace"}, function(args, speaker)
if saveinstance then
notify("Loading", "Downloading game. This will take a while")
saveinstance()
notify("Game Saved", "Saved place to the workspace folder within your exploit folder.")
else
notify("Incompatible Exploit", "Your exploit does not support this command (missing saveinstance)")
end
end)
addcmd("clearerror", {"clearerrors"}, function(args, speaker)
GuiService:ClearError()
end)
addcmd("antigameplaypaused", {}, function(args, speaker)
pcall(function() networkPaused:Disconnect() end)
networkPaused = COREGUI.RobloxGui.ChildAdded:Connect(function(obj)
if obj.Name == "CoreScripts/NetworkPause" then
obj:Destroy()
end
end)
COREGUI.RobloxGui["CoreScripts/NetworkPause"]:Destroy()
end)
addcmd("unantigameplaypaused", {}, function(args, speaker)
networkPaused:Disconnect()
end)
addcmd('clientantikick',{'antikick'},function(args, speaker)
if not hookmetamethod then
return notify('Incompatible Exploit','Your exploit does not support this command (missing hookmetamethod)')
end
local LocalPlayer = Players.LocalPlayer
local oldhmmi
local oldhmmnc
local oldKickFunction
if hookfunction then
oldKickFunction = hookfunction(LocalPlayer.Kick, function() end)
end
oldhmmi = hookmetamethod(game, "__index", function(self, method)
if self == LocalPlayer and method:lower() == "kick" then
return error("Expected ':' not '.' calling member function Kick", 2)
end
return oldhmmi(self, method)
end)
oldhmmnc = hookmetamethod(game, "__namecall", function(self, ...)
if self == LocalPlayer and getnamecallmethod():lower() == "kick" then
return
end
return oldhmmnc(self, ...)
end)
notify('Client Antikick','Client anti kick is now active (only effective on localscript kick)')
end)
allow_rj = true
addcmd('clientantiteleport',{'antiteleport'},function(args, speaker)
if not hookmetamethod then
return notify('Incompatible Exploit','Your exploit does not support this command (missing hookmetamethod)')
end
local TeleportService = TeleportService
local oldhmmi
local oldhmmnc
oldhmmi = hookmetamethod(game, "__index", function(self, method)
if self == TeleportService then
if method:lower() == "teleport" then
return error("Expected ':' not '.' calling member function Kick", 2)
elseif method == "TeleportToPlaceInstance" then
return error("Expected ':' not '.' calling member function TeleportToPlaceInstance", 2)
end
end
return oldhmmi(self, method)
end)
oldhmmnc = hookmetamethod(game, "__namecall", function(self, ...)
if self == TeleportService and getnamecallmethod():lower() == "teleport" or getnamecallmethod() == "TeleportToPlaceInstance" then
return
end
return oldhmmnc(self, ...)
end)
notify('Client AntiTP','Client anti teleport is now active (only effective on localscript teleport)')
end)
addcmd('allowrejoin',{'allowrj'},function(args, speaker)
if args[1] and args[1] == 'false' then
allow_rj = false
notify('Client AntiTP','Allow rejoin set to false')
else
allow_rj = true
notify('Client AntiTP','Allow rejoin set to true')
end
end)
addcmd("cancelteleport", {"canceltp"}, function(args, speaker)
TeleportService:TeleportCancel()
end)
addcmd("volume",{ "vol"}, function(args, speaker)
UserSettings():GetService("UserGameSettings").MasterVolume = args[1]/10
end)
addcmd("antilag", {"boostfps", "lowgraphics"}, function(args, speaker)
local Terrain = workspace:FindFirstChildWhichIsA("Terrain")
Terrain.WaterWaveSize = 0
Terrain.WaterWaveSpeed = 0
Terrain.WaterReflectance = 0
Terrain.WaterTransparency = 1
Lighting.GlobalShadows = false
Lighting.FogEnd = 9e9
Lighting.FogStart = 9e9
settings().Rendering.QualityLevel = 1
for _, v in pairs(game:GetDescendants()) do
if v:IsA("BasePart") then
v.CastShadow = false
v.Material = "Plastic"
v.Reflectance = 0
v.BackSurface = "SmoothNoOutlines"
v.BottomSurface = "SmoothNoOutlines"
v.FrontSurface = "SmoothNoOutlines"
v.LeftSurface = "SmoothNoOutlines"
v.RightSurface = "SmoothNoOutlines"
v.TopSurface = "SmoothNoOutlines"
elseif v:IsA("Decal") then
v.Transparency = 1
v.Texture = ""
elseif v:IsA("ParticleEmitter") or v:IsA("Trail") then
v.Lifetime = NumberRange.new(0)
end
end
for _, v in pairs(Lighting:GetDescendants()) do
if v:IsA("PostEffect") then
v.Enabled = false
end
end
workspace.DescendantAdded:Connect(function(child)
task.spawn(function()
if child:IsA("ForceField") or child:IsA("Sparkles") or child:IsA("Smoke") or child:IsA("Fire") or child:IsA("Beam") then
RunService.Heartbeat:Wait()
child:Destroy()
elseif child:IsA("BasePart") then
child.CastShadow = false
end
end)
end)
end)
addcmd("setfpscap", {"fpscap", "maxfps"}, function(args, speaker)
if fpscaploop then
task.cancel(fpscaploop)
fpscaploop = nil
end
local fpsCap = 60
local num = tonumber(args[1]) or 1e6
if num == "none" then
return
elseif num > 0 then
fpsCap = num
else
return notify("Invalid argument", "Please provide a number above 0 or 'none'.")
end
if setfpscap and type(setfpscap) == "function" then
setfpscap(fpsCap)
else
fpscaploop = task.spawn(function()
local timer = os.clock()
while true do
if os.clock() >= timer + 1 / fpsCap then
timer = os.clock()
task.wait()
end
end
end)
end
end)
addcmd('notify',{},function(args, speaker)
notify(getstring(1, args))
end)
addcmd('lastcommand',{'lastcmd'},function(args, speaker)
if cmdHistory[1]:sub(1,11) ~= 'lastcommand' and cmdHistory[1]:sub(1,7) ~= 'lastcmd' then
execCmd(cmdHistory[1])
end
end)
addcmd('esp',{},function(args, speaker)
if not CHMSenabled then
ESPenabled = true
for i,v in pairs(Players:GetPlayers()) do
if v.Name ~= speaker.Name then
ESP(v)
end
end
else
notify('ESP','Disable chams (nochams) before using esp')
end
end)
addcmd('espteam',{},function(args, speaker)
if not CHMSenabled then
ESPenabled = true
for i,v in pairs(Players:GetPlayers()) do
if v.Name ~= speaker.Name then
ESP(v, true)
end
end
else
notify('ESP','Disable chams (nochams) before using esp')
end
end)
addcmd('noesp',{'unesp','unespteam'},function(args, speaker)
ESPenabled = false
for i,c in pairs(COREGUI:GetChildren()) do
if string.sub(c.Name, -4) == '_ESP' then
c:Destroy()
end
end
end)
addcmd("esptransparency", {}, function(args, speaker)
espTransparency = tonumber(args[1]) or 0.3
if ESPenabled then execCmd("esp") end
if CHMSenabled then execCmd("chams") end
updatesaves()
end)
local espParts = {}
local partEspTrigger = nil
function partAdded(part)
if #espParts > 0 then
if FindInTable(espParts,part.Name:lower()) then
local a = Instance.new("BoxHandleAdornment")
a.Name = part.Name:lower().."_PESP"
a.Parent = part
a.Adornee = part
a.AlwaysOnTop = true
a.ZIndex = 0
a.Size = part.Size
a.Transparency = espTransparency
a.Color = BrickColor.new("Lime green")
end
else
partEspTrigger:Disconnect()
partEspTrigger = nil
end
end
addcmd('partesp',{},function(args, speaker)
local partEspName = getstring(1, args):lower()
if not FindInTable(espParts,partEspName) then
table.insert(espParts,partEspName)
for i,v in pairs(workspace:GetDescendants()) do
if v:IsA("BasePart") and v.Name:lower() == partEspName then
local a = Instance.new("BoxHandleAdornment")
a.Name = partEspName.."_PESP"
a.Parent = v
a.Adornee = v
a.AlwaysOnTop = true
a.ZIndex = 0
a.Size = v.Size
a.Transparency = espTransparency
a.Color = BrickColor.new("Lime green")
end
end
end
if partEspTrigger == nil then
partEspTrigger = workspace.DescendantAdded:Connect(partAdded)
end
end)
addcmd('unpartesp',{'nopartesp'},function(args, speaker)
if args[1] then
local partEspName = getstring(1, args):lower()
if FindInTable(espParts,partEspName) then
table.remove(espParts, GetInTable(espParts, partEspName))
end
for i,v in pairs(workspace:GetDescendants()) do
if v:IsA("BoxHandleAdornment") and v.Name == partEspName..'_PESP' then
v:Destroy()
end
end
else
partEspTrigger:Disconnect()
partEspTrigger = nil
espParts = {}
for i,v in pairs(workspace:GetDescendants()) do
if v:IsA("BoxHandleAdornment") and v.Name:sub(-5) == '_PESP' then
v:Destroy()
end
end
end
end)
addcmd('chams',{},function(args, speaker)
if not ESPenabled then
CHMSenabled = true
for i,v in pairs(Players:GetPlayers()) do
if v.Name ~= speaker.Name then
CHMS(v)
end
end
else
notify('Chams','Disable ESP (noesp) before using chams')
end
end)
addcmd('nochams',{'unchams'},function(args, speaker)
CHMSenabled = false
for i,v in pairs(Players:GetPlayers()) do
local chmsplr = v
for i,c in pairs(COREGUI:GetChildren()) do
if c.Name == chmsplr.Name..'_CHMS' then
c:Destroy()
end
end
end
end)
addcmd('locate',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
Locate(Players[v])
end
end)
addcmd('nolocate',{'unlocate'},function(args, speaker)
local players = getPlayer(args[1], speaker)
if args[1] then
for i,v in pairs(players) do
for i,c in pairs(COREGUI:GetChildren()) do
if c.Name == Players[v].Name..'_LC' then
c:Destroy()
end
end
end
else
for i,c in pairs(COREGUI:GetChildren()) do
if string.sub(c.Name, -3) == '_LC' then
c:Destroy()
end
end
end
end)
viewing = nil
addcmd('view',{'spectate'},function(args, speaker)
StopFreecam()
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
if viewDied then
viewDied:Disconnect()
viewChanged:Disconnect()
end
viewing = Players[v]
workspace.CurrentCamera.CameraSubject = viewing.Character
notify('Spectate','Viewing ' .. Players[v].Name)
local function viewDiedFunc()
repeat wait() until Players[v].Character ~= nil and getRoot(Players[v].Character)
workspace.CurrentCamera.CameraSubject = viewing.Character
end
viewDied = Players[v].CharacterAdded:Connect(viewDiedFunc)
local function viewChangedFunc()
workspace.CurrentCamera.CameraSubject = viewing.Character
end
viewChanged = workspace.CurrentCamera:GetPropertyChangedSignal("CameraSubject"):Connect(viewChangedFunc)
end
end)
addcmd('viewpart',{'viewp'},function(args, speaker)
StopFreecam()
if args[1] then
for i,v in pairs(workspace:GetDescendants()) do
if v.Name:lower() == getstring(1, args):lower() and v:IsA("BasePart") then
wait(0.1)
workspace.CurrentCamera.CameraSubject = v
end
end
end
end)
addcmd('unview',{'unspectate'},function(args, speaker)
StopFreecam()
if viewing ~= nil then
viewing = nil
notify('Spectate','View turned off')
end
if viewDied then
viewDied:Disconnect()
viewChanged:Disconnect()
end
workspace.CurrentCamera.CameraSubject = speaker.Character
end)
fcRunning = false
Camera = workspace.CurrentCamera
workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function()
local newCamera = workspace.CurrentCamera
if newCamera then
Camera = newCamera
end
end)
local INPUT_PRIORITY = Enum.ContextActionPriority.High.Value
Spring = {} do
Spring.__index = Spring
function Spring.new(freq, pos)
local self = setmetatable({}, Spring)
self.f = freq
self.p = pos
self.v = pos*0
return self
end
function Spring:Update(dt, goal)
local f = self.f*2*math.pi
local p0 = self.p
local v0 = self.v
local offset = goal - p0
local decay = math.exp(-f*dt)
local p1 = goal + (v0*dt - offset*(f*dt + 1))*decay
local v1 = (f*dt*(offset*f - v0) + v0)*decay
self.p = p1
self.v = v1
return p1
end
function Spring:Reset(pos)
self.p = pos
self.v = pos*0
end
end
local cameraPos = Vector3.new()
local cameraRot = Vector2.new()
local velSpring = Spring.new(5, Vector3.new())
local panSpring = Spring.new(5, Vector2.new())
Input = {} do
keyboard = {
W = 0,
A = 0,
S = 0,
D = 0,
E = 0,
Q = 0,
Up = 0,
Down = 0,
LeftShift = 0,
}
mouse = {
Delta = Vector2.new(),
}
NAV_KEYBOARD_SPEED = Vector3.new(1, 1, 1)
PAN_MOUSE_SPEED = Vector2.new(1, 1)*(math.pi/64)
NAV_ADJ_SPEED = 0.75
NAV_SHIFT_MUL = 0.25
navSpeed = 1
function Input.Vel(dt)
navSpeed = math.clamp(navSpeed + dt*(keyboard.Up - keyboard.Down)*NAV_ADJ_SPEED, 0.01, 4)
local kKeyboard = Vector3.new(
keyboard.D - keyboard.A,
keyboard.E - keyboard.Q,
keyboard.S - keyboard.W
)*NAV_KEYBOARD_SPEED
local shift = UserInputService:IsKeyDown(Enum.KeyCode.LeftShift)
return (kKeyboard)*(navSpeed*(shift and NAV_SHIFT_MUL or 1))
end
function Input.Pan(dt)
local kMouse = mouse.Delta*PAN_MOUSE_SPEED
mouse.Delta = Vector2.new()
return kMouse
end
do
function Keypress(action, state, input)
keyboard[input.KeyCode.Name] = state == Enum.UserInputState.Begin and 1 or 0
return Enum.ContextActionResult.Sink
end
function MousePan(action, state, input)
local delta = input.Delta
mouse.Delta = Vector2.new(-delta.y, -delta.x)
return Enum.ContextActionResult.Sink
end
function Zero(t)
for k, v in pairs(t) do
t[k] = v*0
end
end
function Input.StartCapture()
ContextActionService:BindActionAtPriority("FreecamKeyboard",Keypress,false,INPUT_PRIORITY,
Enum.KeyCode.W,
Enum.KeyCode.A,
Enum.KeyCode.S,
Enum.KeyCode.D,
Enum.KeyCode.E,
Enum.KeyCode.Q,
Enum.KeyCode.Up,
Enum.KeyCode.Down
)
ContextActionService:BindActionAtPriority("FreecamMousePan",MousePan,false,INPUT_PRIORITY,Enum.UserInputType.MouseMovement)
end
function Input.StopCapture()
navSpeed = 1
Zero(keyboard)
Zero(mouse)
ContextActionService:UnbindAction("FreecamKeyboard")
ContextActionService:UnbindAction("FreecamMousePan")
end
end
end
function GetFocusDistance(cameraFrame)
local znear = 0.1
local viewport = Camera.ViewportSize
local projy = 2*math.tan(cameraFov/2)
local projx = viewport.x/viewport.y*projy
local fx = cameraFrame.rightVector
local fy = cameraFrame.upVector
local fz = cameraFrame.lookVector
local minVect = Vector3.new()
local minDist = 512
for x = 0, 1, 0.5 do
for y = 0, 1, 0.5 do
local cx = (x - 0.5)*projx
local cy = (y - 0.5)*projy
local offset = fx*cx - fy*cy + fz
local origin = cameraFrame.p + offset*znear
local _, hit = workspace:FindPartOnRay(Ray.new(origin, offset.unit*minDist))
local dist = (hit - origin).magnitude
if minDist > dist then
minDist = dist
minVect = offset.unit
end
end
end
return fz:Dot(minVect)*minDist
end
local function StepFreecam(dt)
local vel = velSpring:Update(dt, Input.Vel(dt))
local pan = panSpring:Update(dt, Input.Pan(dt))
local zoomFactor = math.sqrt(math.tan(math.rad(70/2))/math.tan(math.rad(cameraFov/2)))
cameraRot = cameraRot + pan*Vector2.new(0.75, 1)*8*(dt/zoomFactor)
cameraRot = Vector2.new(math.clamp(cameraRot.x, -math.rad(90), math.rad(90)), cameraRot.y%(2*math.pi))
local cameraCFrame = CFrame.new(cameraPos)*CFrame.fromOrientation(cameraRot.x, cameraRot.y, 0)*CFrame.new(vel*Vector3.new(1, 1, 1)*64*dt)
cameraPos = cameraCFrame.p
Camera.CFrame = cameraCFrame
Camera.Focus = cameraCFrame*CFrame.new(0, 0, -GetFocusDistance(cameraCFrame))
Camera.FieldOfView = cameraFov
end
local PlayerState = {} do
mouseBehavior = ""
mouseIconEnabled = ""
cameraType = ""
cameraFocus = ""
cameraCFrame = ""
cameraFieldOfView = ""
function PlayerState.Push()
cameraFieldOfView = Camera.FieldOfView
Camera.FieldOfView = 70
cameraType = Camera.CameraType
Camera.CameraType = Enum.CameraType.Custom
cameraCFrame = Camera.CFrame
cameraFocus = Camera.Focus
mouseIconEnabled = UserInputService.MouseIconEnabled
UserInputService.MouseIconEnabled = true
mouseBehavior = UserInputService.MouseBehavior
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
end
function PlayerState.Pop()
Camera.FieldOfView = 70
Camera.CameraType = cameraType
cameraType = nil
Camera.CFrame = cameraCFrame
cameraCFrame = nil
Camera.Focus = cameraFocus
cameraFocus = nil
UserInputService.MouseIconEnabled = mouseIconEnabled
mouseIconEnabled = nil
UserInputService.MouseBehavior = mouseBehavior
mouseBehavior = nil
end
end
function StartFreecam(pos)
if fcRunning then
StopFreecam()
end
local cameraCFrame = Camera.CFrame
if pos then
cameraCFrame = pos
end
cameraRot = Vector2.new()
cameraPos = cameraCFrame.p
cameraFov = Camera.FieldOfView
velSpring:Reset(Vector3.new())
panSpring:Reset(Vector2.new())
PlayerState.Push()
RunService:BindToRenderStep("Freecam", Enum.RenderPriority.Camera.Value, StepFreecam)
Input.StartCapture()
fcRunning = true
end
function StopFreecam()
if not fcRunning then return end
Input.StopCapture()
RunService:UnbindFromRenderStep("Freecam")
PlayerState.Pop()
workspace.Camera.FieldOfView = 70
fcRunning = false
end
addcmd('freecam',{'fc'},function(args, speaker)
StartFreecam()
end)
addcmd('freecampos',{'fcpos','fcp','freecamposition','fcposition'},function(args, speaker)
if not args[1] then return end
local freecamPos = CFrame.new(args[1],args[2],args[3])
StartFreecam(freecamPos)
end)
addcmd('freecamwaypoint',{'fcwp'},function(args, speaker)
local WPName = tostring(getstring(1, args))
if speaker.Character then
for i,_ in pairs(WayPoints) do
local x = WayPoints[i].COORD[1]
local y = WayPoints[i].COORD[2]
local z = WayPoints[i].COORD[3]
if tostring(WayPoints[i].NAME):lower() == tostring(WPName):lower() then
StartFreecam(CFrame.new(x,y,z))
end
end
for i,_ in pairs(pWayPoints) do
if tostring(pWayPoints[i].NAME):lower() == tostring(WPName):lower() then
StartFreecam(CFrame.new(pWayPoints[i].COORD[1].Position))
end
end
end
end)
addcmd('freecamgoto',{'fcgoto','freecamtp','fctp'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
StartFreecam(getRoot(Players[v].Character).CFrame)
end
end)
addcmd('unfreecam',{'nofreecam','unfc','nofc'},function(args, speaker)
StopFreecam()
end)
addcmd('freecamspeed',{'fcspeed'},function(args, speaker)
local FCspeed = args[1] or 1
if isNumber(FCspeed) then
NAV_KEYBOARD_SPEED = Vector3.new(FCspeed, FCspeed, FCspeed)
end
end)
addcmd('notifyfreecamposition',{'notifyfcpos'},function(args, speaker)
if fcRunning then
local X,Y,Z = workspace.CurrentCamera.CFrame.Position.X,workspace.CurrentCamera.CFrame.Position.Y,workspace.CurrentCamera.CFrame.Position.Z
local Format, Round = string.format, math.round
notify("Current Position", Format("%s, %s, %s", Round(X), Round(Y), Round(Z)))
end
end)
addcmd('copyfreecamposition',{'copyfcpos'},function(args, speaker)
if fcRunning then
local X,Y,Z = workspace.CurrentCamera.CFrame.Position.X,workspace.CurrentCamera.CFrame.Position.Y,workspace.CurrentCamera.CFrame.Position.Z
local Format, Round = string.format, math.round
toClipboard(Format("%s, %s, %s", Round(X), Round(Y), Round(Z)))
end
end)
addcmd('gotocamera',{'gotocam','tocam'},function(args, speaker)
getRoot(speaker.Character).CFrame = workspace.Camera.CFrame
end)
addcmd('tweengotocamera',{'tweengotocam','tgotocam','ttocam'},function(args, speaker)
TweenService:Create(getRoot(speaker.Character), TweenInfo.new(tweenSpeed, Enum.EasingStyle.Linear), {CFrame = workspace.Camera.CFrame}):Play()
end)
addcmd('fov',{},function(args, speaker)
local fov = args[1] or 70
if isNumber(fov) then
workspace.CurrentCamera.FieldOfView = fov
end
end)
local preMaxZoom = Players.LocalPlayer.CameraMaxZoomDistance
local preMinZoom = Players.LocalPlayer.CameraMinZoomDistance
addcmd('lookat',{},function(args, speaker)
if speaker.CameraMaxZoomDistance ~= 0.5 then
preMaxZoom = speaker.CameraMaxZoomDistance
preMinZoom = speaker.CameraMinZoomDistance
end
speaker.CameraMaxZoomDistance = 0.5
speaker.CameraMinZoomDistance = 0.5
wait()
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
local target = Players[v].Character
if target and target:FindFirstChild('Head') then
workspace.CurrentCamera.CFrame = CFrame.new(workspace.CurrentCamera.CFrame.p, target.Head.CFrame.p)
wait(0.1)
end
end
speaker.CameraMaxZoomDistance = preMaxZoom
speaker.CameraMinZoomDistance = preMinZoom
end)
addcmd('fixcam',{'restorecam'},function(args, speaker)
StopFreecam()
execCmd('unview')
workspace.CurrentCamera:remove()
wait(.1)
repeat wait() until speaker.Character ~= nil
workspace.CurrentCamera.CameraSubject = speaker.Character:FindFirstChildWhichIsA('Humanoid')
workspace.CurrentCamera.CameraType = "Custom"
speaker.CameraMinZoomDistance = 0.5
speaker.CameraMaxZoomDistance = 400
speaker.CameraMode = "Classic"
speaker.Character.Head.Anchored = false
end)
addcmd("enableshiftlock", {"enablesl", "shiftlock"}, function(args, speaker)
local function enableShiftlock()
speaker.DevEnableMouseLock = true
end
speaker:GetPropertyChangedSignal("DevEnableMouseLock"):Connect(enableShiftlock)
enableShiftlock()
notify("Shiftlock", "Shift lock should now be available")
end)
addcmd('firstp',{},function(args, speaker)
speaker.CameraMode = "LockFirstPerson"
end)
addcmd('thirdp',{},function(args, speaker)
speaker.CameraMode = "Classic"
end)
addcmd('noclipcam', {'nccam'}, function(args, speaker)
local sc = (debug and debug.setconstant) or setconstant
local gc = (debug and debug.getconstants) or getconstants
if not sc or not getgc or not gc then
return notify('Incompatible Exploit', 'Your exploit does not support this command (missing setconstant or getconstants or getgc)')
end
local pop = speaker.PlayerScripts.PlayerModule.CameraModule.ZoomController.Popper
for _, v in pairs(getgc()) do
if type(v) == 'function' and getfenv(v).script == pop then
for i, v1 in pairs(gc(v)) do
if tonumber(v1) == .25 then
sc(v, i, 0)
elseif tonumber(v1) == 0 then
sc(v, i, .25)
end
end
end
end
end)
addcmd('maxzoom',{},function(args, speaker)
speaker.CameraMaxZoomDistance = args[1]
end)
addcmd('minzoom',{},function(args, speaker)
speaker.CameraMinZoomDistance = args[1]
end)
addcmd('camdistance',{},function(args, speaker)
local camMax = speaker.CameraMaxZoomDistance
local camMin = speaker.CameraMinZoomDistance
if camMax < tonumber(args[1]) then
camMax = args[1]
end
speaker.CameraMaxZoomDistance = args[1]
speaker.CameraMinZoomDistance = args[1]
wait()
speaker.CameraMaxZoomDistance = camMax
speaker.CameraMinZoomDistance = camMin
end)
addcmd('unlockws',{'unlockworkspace'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v:IsA("BasePart") then
v.Locked = false
end
end
end)
addcmd('lockws',{'lockworkspace'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v:IsA("BasePart") then
v.Locked = true
end
end
end)
addcmd('delete',{'remove'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v.Name:lower() == getstring(1, args):lower() then
v:Destroy()
end
end
notify('Item(s) Deleted','Deleted ' ..getstring(1, args))
end)
addcmd('deleteclass',{'removeclass','deleteclassname','removeclassname','dc'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v.ClassName:lower() == getstring(1, args):lower() then
v:Destroy()
end
end
notify('Item(s) Deleted','Deleted items with ClassName ' ..getstring(1, args))
end)
addcmd('chardelete',{'charremove','cd'},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants()) do
if v.Name:lower() == getstring(1, args):lower() then
v:Destroy()
end
end
notify('Item(s) Deleted','Deleted ' ..getstring(1, args))
end)
addcmd('chardeleteclass',{'charremoveclass','chardeleteclassname','charremoveclassname','cdc'},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants()) do
if v.ClassName:lower() == getstring(1, args):lower() then
v:Destroy()
end
end
notify('Item(s) Deleted','Deleted items with ClassName ' ..getstring(1, args))
end)
addcmd('deletevelocity',{'dv','removevelocity','removeforces'},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants()) do
if v:IsA("BodyVelocity") or v:IsA("BodyGyro") or v:IsA("RocketPropulsion") or v:IsA("BodyThrust") or v:IsA("BodyAngularVelocity") or v:IsA("AngularVelocity") or v:IsA("BodyForce") or v:IsA("VectorForce") or v:IsA("LineForce") then
v:Destroy()
end
end
end)
addcmd('deleteinvisparts',{'deleteinvisibleparts','dip'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v:IsA("BasePart") and v.Transparency == 1 and v.CanCollide then
v:Destroy()
end
end
end)
local shownParts = {}
addcmd('invisibleparts',{'invisparts'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v:IsA("BasePart") and v.Transparency == 1 then
if not table.find(shownParts,v) then
table.insert(shownParts,v)
end
v.Transparency = 0
end
end
end)
addcmd('uninvisibleparts',{'uninvisparts'},function(args, speaker)
for i,v in pairs(shownParts) do
v.Transparency = 1
end
shownParts = {}
end)
addcmd("btools", {}, function(args, speaker)
for i = 1, 4 do
local Tool = Instance.new("HopperBin")
Tool.BinType = i
Tool.Name = randomString()
Tool.Parent = speaker:FindFirstChildWhichIsA("Backpack")
end
end)
addcmd("f3x", {"fex"}, function(args, speaker)
loadstring(game:HttpGet("https://raw.githubusercontent.com/infyiff/backup/refs/heads/main/f3x.lua"))()
end)
addcmd("partpath", {"partname"}, function(args, speaker)
selectPart()
end)
addcmd("antiafk", {"antiidle"}, function(args, speaker)
if getconnections then
for _, connection in pairs(getconnections(speaker.Idled)) do
if connection["Disable"] then
connection["Disable"](connection)
elseif connection["Disconnect"] then
connection["Disconnect"](connection)
end
end
else
speaker.Idled:Connect(function()
Services.VirtualUser:CaptureController()
Services.VirtualUser:ClickButton2(Vector2.new())
end)
end
if not (args[1] and tostring(args[1]) == "nonotify") then notify("Anti Idle", "Anti idle is enabled") end
end)
addcmd("datalimit", {}, function(args, speaker)
local kbps = tonumber(args[1])
if kbps then
Services.NetworkClient:SetOutgoingKBPSLimit(kbps)
end
end)
addcmd("replicationlag", {"backtrack"}, function(args, speaker)
if tonumber(args[1]) then
settings():GetService("NetworkSettings").IncomingReplicationLag = args[1]
end
end)
addcmd("noprompts", {"nopurchaseprompts"}, function(args, speaker)
COREGUI.PurchasePromptApp.Enabled = false
end)
addcmd("showprompts", {"showpurchaseprompts"}, function(args, speaker)
COREGUI.PurchasePromptApp.Enabled = true
end)
promptNewRig = function(speaker, rig)
local humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
AvatarEditorService:PromptSaveAvatar(humanoid.HumanoidDescription, Enum.HumanoidRigType[rig])
local result = AvatarEditorService.PromptSaveAvatarCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
execCmd("reset")
end
end
end
addcmd("promptr6", {}, function(args, speaker)
promptNewRig(speaker, "R6")
end)
addcmd("promptr15", {}, function(args, speaker)
promptNewRig(speaker, "R15")
end)
addcmd("wallwalk", {"walkonwalls"}, function(args, speaker)
loadstring(game:HttpGet("https://raw.githubusercontent.com/infyiff/backup/main/wallwalker.lua"))()
end)
addcmd('age',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
local ages = {}
for i,v in pairs(players) do
local p = Players[v]
table.insert(ages, p.Name.."'s age is: "..p.AccountAge)
end
notify('Account Age',table.concat(ages, ',\n'))
end)
addcmd('chatage',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
local ages = {}
for i,v in pairs(players) do
local p = Players[v]
table.insert(ages, p.Name.."'s age is: "..p.AccountAge)
end
local chatString = table.concat(ages, ', ')
chatMessage(chatString)
end)
addcmd('joindate',{'jd'},function(args, speaker)
local players = getPlayer(args[1], speaker)
local dates = {}
for i,v in pairs(players) do
local p = Players[v]
local secondsOld = p.AccountAge * 24 * 60 * 60
local now = os.time()
local dateJoined = p.Name .. " joined: " .. os.date("%m/%d/%y", now - secondsOld)
table.insert(dates, dateJoined)
end
notify('Join Date (Month/Day/Year)',table.concat(dates, ',\n'))
end)
addcmd('chatjoindate',{'cjd'},function(args, speaker)
local players = getPlayer(args[1], speaker)
local dates = {}
for i,v in pairs(players) do
local p = Players[v]
local secondsOld = p.AccountAge * 24 * 60 * 60
local now = os.time()
local dateJoined = p.Name .. " joined: " .. os.date("%m/%d/%y", now - secondsOld)
table.insert(dates, dateJoined)
end
local chatString = table.concat(dates, ', ')
chatMessage(chatString)
end)
addcmd('copyname',{'copyuser'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
local name = tostring(Players[v].Name)
toClipboard(name)
end
end)
addcmd('userid',{'id'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
local id = tostring(Players[v].UserId)
notify('User ID',id)
end
end)
addcmd("copyplaceid", {"placeid"}, function(args, speaker)
toClipboard(PlaceId)
end)
addcmd("copygameid", {"gameid"}, function(args, speaker)
toClipboard(game.GameId)
end)
addcmd('copyid',{'copyuserid'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
local id = tostring(Players[v].UserId)
toClipboard(id)
end
end)
addcmd('creatorid',{'creator'},function(args, speaker)
if game.CreatorType == Enum.CreatorType.User then
notify('Creator ID',game.CreatorId)
elseif game.CreatorType == Enum.CreatorType.Group then
local OwnerID = GroupService:GetGroupInfoAsync(game.CreatorId).Owner.Id
speaker.UserId = OwnerID
notify('Creator ID',OwnerID)
end
end)
addcmd('copycreatorid',{'copycreator'},function(args, speaker)
if game.CreatorType == Enum.CreatorType.User then
toClipboard(game.CreatorId)
notify('Copied ID','Copied creator ID to clipboard')
elseif game.CreatorType == Enum.CreatorType.Group then
local OwnerID = GroupService:GetGroupInfoAsync(game.CreatorId).Owner.Id
toClipboard(OwnerID)
notify('Copied ID','Copied creator ID to clipboard')
end
end)
addcmd('setcreatorid',{'setcreator'},function(args, speaker)
if game.CreatorType == Enum.CreatorType.User then
speaker.UserId = game.CreatorId
notify('Set ID','Set UserId to '..game.CreatorId)
elseif game.CreatorType == Enum.CreatorType.Group then
local OwnerID = GroupService:GetGroupInfoAsync(game.CreatorId).Owner.Id
speaker.UserId = OwnerID
notify('Set ID','Set UserId to '..OwnerID)
end
end)
addcmd('appearanceid',{'aid'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
local aid = tostring(Players[v].CharacterAppearanceId)
notify('Appearance ID',aid)
end
end)
addcmd('copyappearanceid',{'caid'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
local aid = tostring(Players[v].CharacterAppearanceId)
toClipboard(aid)
end
end)
addcmd('norender',{},function(args, speaker)
RunService:Set3dRenderingEnabled(false)
end)
addcmd('render',{},function(args, speaker)
RunService:Set3dRenderingEnabled(true)
end)
addcmd('2022materials',{'use2022materials'},function(args, speaker)
if sethidden then
sethidden(MaterialService, "Use2022Materials", true)
else
notify('Incompatible Exploit','Your exploit does not support this command (missing sethiddenproperty)')
end
end)
addcmd('un2022materials',{'unuse2022materials'},function(args, speaker)
if sethidden then
sethidden(MaterialService, "Use2022Materials", false)
else
notify('Incompatible Exploit','Your exploit does not support this command (missing sethiddenproperty)')
end
end)
addcmd("goto", {"to"}, function(args, speaker)
local character = speaker and speaker.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
local players = getPlayer(args[1], speaker)
for _, v in pairs(players) do
if Players[v].Character ~= nil then
if humanoid and humanoid.SeatPart then
humanoid.Sit = false
task.wait(0.1)
end
getRoot(speaker.Character).CFrame = getRoot(Players[v].Character):GetPivot() + Vector3.new(3, 1, 0)
end
end
execCmd("breakvelocity")
end)
addcmd("tweengoto", {"tgoto", "tto", "tweento"}, function(args, speaker)
local character = speaker and speaker.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
local oldState = humanoid and humanoid:GetStateEnabled(Enum.HumanoidStateType.Seated)
if humanoid then humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, false) end
local players = getPlayer(args[1], speaker)
for _, v in pairs(players) do
if Players[v].Character ~= nil then
if humanoid and humanoid.SeatPart then
humanoid.Sit = false
task.wait(0.1)
end
TweenService:Create(getRoot(speaker.Character), TweenInfo.new(tweenSpeed, Enum.EasingStyle.Linear), {
CFrame = getRoot(Players[v].Character):GetPivot() + Vector3.new(3, 1, 0)
}):Play()
end
end
execCmd("breakvelocity")
if type(oldState) == "boolean" then
humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, oldState)
end
end)
addcmd('vehiclegoto',{'vgoto','vtp','vehicletp'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
if Players[v].Character ~= nil then
local seat = speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart
local vehicleModel = seat:FindFirstAncestorWhichIsA("Model")
vehicleModel:MoveTo(getRoot(Players[v].Character).Position)
end
end
end)
addcmd('pulsetp',{'ptp'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
if Players[v].Character ~= nil then
local startPos = getRoot(speaker.Character).CFrame
local seconds = args[2] or 1
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
getRoot(speaker.Character).CFrame = getRoot(Players[v].Character).CFrame + Vector3.new(3,1,0)
wait(seconds)
getRoot(speaker.Character).CFrame = startPos
end
end
execCmd('breakvelocity')
end)
local vnoclipParts = {}
addcmd('vehiclenoclip',{'vnoclip'},function(args, speaker)
vnoclipParts = {}
local seat = speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart
local vehicleModel = seat.Parent
repeat
if vehicleModel.ClassName ~= "Model" then
vehicleModel = vehicleModel.Parent
end
until vehicleModel.ClassName == "Model"
wait(0.1)
execCmd('noclip')
for i,v in pairs(vehicleModel:GetDescendants()) do
if v:IsA("BasePart") and v.CanCollide then
table.insert(vnoclipParts,v)
v.CanCollide = false
end
end
end)
addcmd("vehicleclip", {"vclip", "unvnoclip", "unvehiclenoclip"}, function(args, speaker)
execCmd("clip")
for i, v in pairs(vnoclipParts) do
v.CanCollide = true
end
vnoclipParts = {}
end)
addcmd("togglevnoclip", {}, function(args, speaker)
execCmd(Clip and "vnoclip" or "vclip")
end)
addcmd('clientbring',{'cbring'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
if Players[v].Character ~= nil then
if Players[v].Character:FindFirstChildOfClass('Humanoid') then
Players[v].Character:FindFirstChildOfClass('Humanoid').Sit = false
end
wait()
getRoot(Players[v].Character).CFrame = getRoot(speaker.Character).CFrame + Vector3.new(3,1,0)
end
end
end)
local bringT = {}
addcmd('loopbring',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
task.spawn(function()
if Players[v].Name ~= speaker.Name and not FindInTable(bringT, Players[v].Name) then
table.insert(bringT, Players[v].Name)
local plrName = Players[v].Name
local pchar=Players[v].Character
local distance = 3
if args[2] and isNumber(args[2]) then
distance = args[2]
end
local lDelay = 0
if args[3] and isNumber(args[3]) then
lDelay = args[3]
end
repeat
for i,c in pairs(players) do
if Players:FindFirstChild(v) then
pchar = Players[v].Character
if pchar~= nil and Players[v].Character ~= nil and getRoot(pchar) and speaker.Character ~= nil and getRoot(speaker.Character) then
getRoot(pchar).CFrame = getRoot(speaker.Character).CFrame + Vector3.new(distance,1,0)
end
wait(lDelay)
else
for a,b in pairs(bringT) do if b == plrName then table.remove(bringT, a) end end
end
end
until not FindInTable(bringT, plrName)
end
end)
end
end)
addcmd('unloopbring',{'noloopbring'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
task.spawn(function()
for a,b in pairs(bringT) do if b == Players[v].Name then table.remove(bringT, a) end end
end)
end
end)
-- ======================== LOOP CLIENT BRING ALL ========================
-- Brings ALL players to you every 0.2 seconds
loopcbringActive = false
loopcbringConn = nil
addcmd('loopcbring', {}, function(args, speaker)
if loopcbringActive then
loopcbringActive = false
if loopcbringConn then loopcbringConn:Disconnect() loopcbringConn = nil end
notify('Loop CBring', 'Stopped')
return
end
local char = speaker.Character
if not char or not getRoot(char) then notify('Loop CBring', 'Character not found') return end
loopcbringActive = true
notify('Loop CBring', 'Active! Bringing all every 0.2s')
loopcbringConn = RunService.Heartbeat:Connect(function(dt)
if not loopcbringActive then return end
task.wait(0.2)
if not loopcbringActive then return end
local myRoot = getRoot(speaker.Character)
if not myRoot then return end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= speaker and plr.Character and plr.Character:FindFirstChildWhichIsA('Humanoid') then
pcall(function()
plr.Character:FindFirstChildWhichIsA('Humanoid').Sit = false
end)
local pRoot = getRoot(plr.Character)
if pRoot then
pcall(function()
pRoot.CFrame = myRoot.CFrame + Vector3.new(3, 1, 0)
end)
end
end
end
end)
end)
walkto = false
local waypointwalkto = false
addcmd('walkto',{'follow'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
if Players[v].Character ~= nil then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
walkto = true
repeat wait()
speaker.Character:FindFirstChildOfClass('Humanoid'):MoveTo(getRoot(Players[v].Character).Position)
until Players[v].Character == nil or not getRoot(Players[v].Character) or walkto == false
end
end
end)
addcmd('pathfindwalkto',{'pathfindfollow'},function(args, speaker)
walkto = false
wait()
local players = getPlayer(args[1], speaker)
local hum = Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
local path = PathService:CreatePath()
for i,v in pairs(players)do
if Players[v].Character ~= nil then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
walkto = true
repeat wait()
local success, response = pcall(function()
path:ComputeAsync(getRoot(speaker.Character).Position, getRoot(Players[v].Character).Position)
local waypoints = path:GetWaypoints()
local distance
for waypointIndex, waypoint in pairs(waypoints) do
local waypointPosition = waypoint.Position
hum:MoveTo(waypointPosition)
repeat
distance = (waypointPosition - hum.Parent.PrimaryPart.Position).magnitude
wait()
until
distance <= 5
end
end)
if not success then
speaker.Character:FindFirstChildOfClass('Humanoid'):MoveTo(getRoot(Players[v].Character).Position)
end
until Players[v].Character == nil or not getRoot(Players[v].Character) or walkto == false
end
end
end)
addcmd('pathfindwalktowaypoint',{'pathfindwalktowp'},function(args, speaker)
waypointwalkto = false
wait()
local WPName = tostring(getstring(1, args))
local hum = Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
local path = PathService:CreatePath()
if speaker.Character then
for i,_ in pairs(WayPoints) do
if tostring(WayPoints[i].NAME):lower() == tostring(WPName):lower() then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
local TrueCoords = Vector3.new(WayPoints[i].COORD[1], WayPoints[i].COORD[2], WayPoints[i].COORD[3])
waypointwalkto = true
repeat wait()
local success, response = pcall(function()
path:ComputeAsync(getRoot(speaker.Character).Position, TrueCoords)
local waypoints = path:GetWaypoints()
local distance
for waypointIndex, waypoint in pairs(waypoints) do
local waypointPosition = waypoint.Position
hum:MoveTo(waypointPosition)
repeat
distance = (waypointPosition - hum.Parent.PrimaryPart.Position).magnitude
wait()
until
distance <= 5
end
end)
if not success then
speaker.Character:FindFirstChildOfClass('Humanoid'):MoveTo(TrueCoords)
end
until not speaker.Character or waypointwalkto == false
end
end
for i,_ in pairs(pWayPoints) do
if tostring(pWayPoints[i].NAME):lower() == tostring(WPName):lower() then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
local TrueCoords = pWayPoints[i].COORD[1].Position
waypointwalkto = true
repeat wait()
local success, response = pcall(function()
path:ComputeAsync(getRoot(speaker.Character).Position, TrueCoords)
local waypoints = path:GetWaypoints()
local distance
for waypointIndex, waypoint in pairs(waypoints) do
local waypointPosition = waypoint.Position
hum:MoveTo(waypointPosition)
repeat
distance = (waypointPosition - hum.Parent.PrimaryPart.Position).magnitude
wait()
until
distance <= 5
end
end)
if not success then
speaker.Character:FindFirstChildOfClass('Humanoid'):MoveTo(TrueCoords)
end
until not speaker.Character or waypointwalkto == false
end
end
end
end)
addcmd('unwalkto',{'nowalkto','unfollow','nofollow'},function(args, speaker)
walkto = false
waypointwalkto = false
pathfindflyActive = false
end)
-- pathfindflyto: fly up to escape walls/boxes, then pathfind to target player
local pathfindflyActive = false
addcmd('pathfindflyto',{'pfflyto'},function(args, speaker)
pathfindflyActive = false
wait()
local players = getPlayer(args[1], speaker)
local flyHeight = tonumber(args[2]) or 150
local hum = Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
local root = getRoot(speaker.Character)
if not hum or not root then return notify('PathfindFly', 'Character not found') end
pathfindflyActive = true
for i,v in pairs(players) do
if pathfindflyActive == false then break end
if Players[v].Character ~= nil and getRoot(Players[v].Character) then
-- Unsit if seated
if hum.SeatPart then hum.Sit = false wait(.1) end
notify('PathfindFly', 'Flying up ' .. flyHeight .. ' studs to escape obstacles...')
-- Step 1: Fly straight up to escape obstacles
local targetPos = root.Position
local upTarget = targetPos + Vector3.new(0, flyHeight, 0)
local BV = Instance.new('BodyVelocity')
local BG = Instance.new('BodyGyro')
BV.MaxForce = Vector3.new(9e9, 9e9, 9e9)
BV.Velocity = Vector3.new(0, 200, 0)
BV.Parent = root
BG.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
BG.CFrame = root.CFrame
BG.Parent = root
-- Wait until we reach the target height
repeat task.wait()
if pathfindflyActive == false then
BV:Destroy() BG:Destroy()
return
end
until root.Position.Y >= upTarget.Y or not root
BV:Destroy()
BG:Destroy()
task.wait(0.2)
-- Step 2: Pathfind to target player
local path = PathService:CreatePath()
repeat task.wait()
if pathfindflyActive == false then break end
local success, errMsg = pcall(function()
path:ComputeAsync(root.Position, getRoot(Players[v].Character).Position)
local waypoints = path:GetWaypoints()
local distance
for waypointIndex, waypoint in pairs(waypoints) do
if pathfindflyActive == false then break end
local waypointPosition = waypoint.Position
hum:MoveTo(waypointPosition)
repeat
distance = (waypointPosition - root.Position).magnitude
task.wait()
until distance <= 5 or pathfindflyActive == false
end
end)
if not success then
hum:MoveTo(getRoot(Players[v].Character).Position)
end
until Players[v].Character == nil or not getRoot(Players[v].Character) or pathfindflyActive == false
end
end
pathfindflyActive = false
end)
-- pathfindflytowp: fly up to escape obstacles, then pathfind to waypoint
addcmd('pathfindflytowp',{'pfflytowp'},function(args, speaker)
pathfindflyActive = false
wait()
local flyHeight = 150
local WPName = ""
-- Parse: pathfindflytowp <name> [height]
-- Check if last arg is a number (height)
if args[2] and isNumber(args[2]) then
flyHeight = tonumber(args[2])
WPName = tostring(getstring(1, args))
elseif args[1] then
-- Try to extract a trailing number from the joined string
local joined = table.concat(args, ' ')
local namePart, heightPart = joined:match('^(.-)%s+(%d+)$')
if namePart and heightPart then
WPName = namePart
flyHeight = tonumber(heightPart)
else
WPName = joined
end
end
local hum = Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
local root = getRoot(speaker.Character)
if not hum or not root then return notify('PathfindFly', 'Character not found') end
pathfindflyActive = true
-- Search in WayPoints
local foundWP = false
local TrueCoords = nil
for i,_ in pairs(WayPoints) do
if tostring(WayPoints[i].NAME):lower() == WPName:lower() then
TrueCoords = Vector3.new(WayPoints[i].COORD[1], WayPoints[i].COORD[2], WayPoints[i].COORD[3])
foundWP = true
break
end
end
-- Search in pWayPoints if not found
if not foundWP then
for i,_ in pairs(pWayPoints) do
if tostring(pWayPoints[i].NAME):lower() == WPName:lower() then
TrueCoords = pWayPoints[i].COORD[1].Position
foundWP = true
break
end
end
end
if not foundWP or not TrueCoords then
pathfindflyActive = false
return notify('PathfindFly', 'Waypoint "' .. tostring(getstring(1, args)) .. '" not found')
end
-- Unsit if seated
if hum.SeatPart then hum.Sit = false wait(.1) end
-- Step 1: Fly straight up
local upTarget = root.Position + Vector3.new(0, flyHeight, 0)
local BV = Instance.new('BodyVelocity')
local BG = Instance.new('BodyGyro')
BV.MaxForce = Vector3.new(9e9, 9e9, 9e9)
BV.Velocity = Vector3.new(0, 200, 0)
BV.Parent = root
BG.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
BG.CFrame = root.CFrame
BG.Parent = root
repeat task.wait()
if pathfindflyActive == false then BV:Destroy() BG:Destroy() return end
until root.Position.Y >= upTarget.Y or not root
BV:Destroy()
BG:Destroy()
task.wait(0.2)
-- Step 2: Pathfind to waypoint
local path = PathService:CreatePath()
repeat task.wait()
if pathfindflyActive == false then break end
local success, errMsg = pcall(function()
path:ComputeAsync(root.Position, TrueCoords)
local waypoints = path:GetWaypoints()
local distance
for waypointIndex, waypoint in pairs(waypoints) do
if pathfindflyActive == false then break end
local waypointPosition = waypoint.Position
hum:MoveTo(waypointPosition)
repeat
distance = (waypointPosition - root.Position).magnitude
task.wait()
until distance <= 5 or pathfindflyActive == false
end
end)
if not success then
hum:MoveTo(TrueCoords)
end
until not speaker.Character or pathfindflyActive == false
pathfindflyActive = false
end)
addcmd('unpathfindfly',{'unpfflyto','unpffly','stoppffly'},function(args, speaker)
pathfindflyActive = false
walkto = false
waypointwalkto = false
local hum = Players.LocalPlayer.Character and Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
if hum then
hum:MoveTo(hum.Parent and getRoot(hum.Parent) and getRoot(hum.Parent).Position or Vector3.new(0,0,0))
end
notify('PathfindFly', 'Stopped')
end)
addcmd("orbit", {}, function(args, speaker)
execCmd("unorbit nonotify")
local target = Players:FindFirstChild(getPlayer(args[1], speaker)[1])
local root = getRoot(speaker.Character)
local humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
if target and target.Character and getRoot(target.Character) and root and humanoid then
local rotation = 0
local speed = tonumber(args[2]) or 0.2
local distance = tonumber(args[3]) or 6
orbit1 = RunService.Heartbeat:Connect(function()
pcall(function()
rotation = rotation + speed
root.CFrame = CFrame.new(getRoot(target.Character).Position) * CFrame.Angles(0, math.rad(rotation), 0) * CFrame.new(distance, 0, 0)
end)
end)
orbit2 = RunService.RenderStepped:Connect(function()
pcall(function()
root.CFrame = CFrame.new(root.Position, getRoot(target.Character).Position)
end)
end)
orbit3 = humanoid.Died:Connect(function() execCmd("unorbit") end)
orbit4 = humanoid.Seated:Connect(function(value) if value then execCmd("unorbit") end end)
notify("Orbit", "Started orbiting " .. formatUsername(target))
end
end)
addcmd("unorbit", {}, function(args, speaker)
if orbit1 then orbit1:Disconnect() end
if orbit2 then orbit2:Disconnect() end
if orbit3 then orbit3:Disconnect() end
if orbit4 then orbit4:Disconnect() end
if args[1] ~= "nonotify" then notify("Orbit", "Stopped orbiting player") end
end)
addcmd('freeze',{'fr'},function(args, speaker)
local players = getPlayer(args[1], speaker)
if players ~= nil then
for i,v in pairs(players) do
task.spawn(function()
for i, x in next, Players[v].Character:GetDescendants() do
if x:IsA("BasePart") and not x.Anchored then
x.Anchored = true
end
end
end)
end
end
end)
addcmd('thaw',{'unfreeze','unfr'},function(args, speaker)
local players = getPlayer(args[1], speaker)
if players ~= nil then
for i,v in pairs(players) do
task.spawn(function()
for i, x in next, Players[v].Character:GetDescendants() do
if x.Name ~= floatName and x:IsA("BasePart") and x.Anchored then
x.Anchored = false
end
end
end)
end
end
end)
addcmd("anchor", {}, function(args, speaker)
getRoot(speaker.Character).Anchored = true
end)
addcmd("unanchor", {}, function(args, speaker)
getRoot(speaker.Character).Anchored = false
end)
oofing = false
addcmd('loopoof',{},function(args, speaker)
oofing = true
repeat wait(0.1)
for i,v in pairs(Players:GetPlayers()) do
if v.Character ~= nil and v.Character:FindFirstChild'Head' then
for _,x in pairs(v.Character.Head:GetChildren()) do
if x:IsA'Sound' then x.Playing = true end
end
end
end
until oofing == false
end)
addcmd('unloopoof',{},function(args, speaker)
oofing = false
end)
local notifiedRespectFiltering = false
addcmd('muteboombox',{},function(args, speaker)
if not notifiedRespectFiltering and SoundService.RespectFilteringEnabled then notifiedRespectFiltering = true notify('RespectFilteringEnabled','RespectFilteringEnabled is set to true (the command will still work but may only be clientsided)') end
local players = getPlayer(args[1], speaker)
if players ~= nil then
for i,v in pairs(players) do
task.spawn(function()
for i, x in next, Players[v].Character:GetDescendants() do
if x:IsA("Sound") and x.Playing == true then
x.Playing = false
end
end
for i, x in next, Players[v]:FindFirstChildOfClass("Backpack"):GetDescendants() do
if x:IsA("Sound") and x.Playing == true then
x.Playing = false
end
end
end)
end
end
end)
addcmd('unmuteboombox',{},function(args, speaker)
if not notifiedRespectFiltering and SoundService.RespectFilteringEnabled then notifiedRespectFiltering = true notify('RespectFilteringEnabled','RespectFilteringEnabled is set to true (the command will still work but may only be clientsided)') end
local players = getPlayer(args[1], speaker)
if players ~= nil then
for i,v in pairs(players) do
task.spawn(function()
for i, x in next, Players[v].Character:GetDescendants() do
if x:IsA("Sound") and x.Playing == false then
x.Playing = true
end
end
end)
end
end
end)
addcmd("reset", {}, function(args, speaker)
local humanoid = speaker.Character and speaker.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid:ChangeState(Enum.HumanoidStateType.Dead)
else
speaker.Character:BreakJoints()
end
end)
addcmd('freezeanims',{},function(args, speaker)
local Humanoid = speaker.Character:FindFirstChildOfClass("Humanoid") or speaker.Character:FindFirstChildOfClass("AnimationController")
local ActiveTracks = Humanoid:GetPlayingAnimationTracks()
for _, v in pairs(ActiveTracks) do
v:AdjustSpeed(0)
end
end)
addcmd('unfreezeanims',{},function(args, speaker)
local Humanoid = speaker.Character:FindFirstChildOfClass("Humanoid") or speaker.Character:FindFirstChildOfClass("AnimationController")
local ActiveTracks = Humanoid:GetPlayingAnimationTracks()
for _, v in pairs(ActiveTracks) do
v:AdjustSpeed(1)
end
end)
addcmd("refresh", {"re"}, function(args, speaker)
refresh(speaker)
end)
addcmd("god", {}, function(args, speaker)
local Cam = workspace.CurrentCamera
local Char, Pos = speaker.Character, Cam.CFrame
local Human = Char and Char:FindFirstChildWhichIsA("Humanoid")
local nHuman = Human:Clone()
nHuman.Parent = char
speaker.Character = nil
nHuman:SetStateEnabled(15, false)
nHuman:SetStateEnabled(1, false)
nHuman:SetStateEnabled(0, false)
nHuman.BreakJointsOnDeath = true
Human:Destroy()
speaker.Character = char
Cam.CameraSubject = nHuman
Cam.CFrame = task.wait() and pos
nHuman.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
local Script = Char:FindFirstChild("Animate")
if Script then
Script.Disabled = true
task.wait()
Script.Disabled = false
end
nHuman.Health = nHuman.MaxHealth
end)
invisRunning = false
addcmd('invisible',{'invis'},function(args, speaker)
if invisRunning then return end
invisRunning = true
-- Full credit to AmokahFox @V3rmillion
local Player = speaker
repeat wait(.1) until Player.Character
local Character = Player.Character
Character.Archivable = true
local IsInvis = false
local IsRunning = true
local InvisibleCharacter = Character:Clone()
InvisibleCharacter.Parent = Lighting
local Void = workspace.FallenPartsDestroyHeight
InvisibleCharacter.Name = ""
local CF
local invisFix = RunService.Stepped:Connect(function()
pcall(function()
local IsInteger
if tostring(Void):find'-' then
IsInteger = true
else
IsInteger = false
end
local Pos = Player.Character.Humanoid.RootPart.Position
local Pos_String = tostring(Pos)
local Pos_Seperate = Pos_String:split(', ')
local X = tonumber(Pos_Seperate[1])
local Y = tonumber(Pos_Seperate[2])
local Z = tonumber(Pos_Seperate[3])
if IsInteger == true then
if Y <= Void then
Respawn()
end
elseif IsInteger == false then
if Y >= Void then
Respawn()
end
end
end)
end)
for i,v in pairs(InvisibleCharacter:GetDescendants())do
if v:IsA("BasePart") then
if v.Name == "HumanoidRootPart" then
v.Transparency = 1
else
v.Transparency = .5
end
end
end
function Respawn()
IsRunning = false
if IsInvis == true then
pcall(function()
Player.Character = Character
wait()
Character.Parent = workspace
Character:FindFirstChildWhichIsA'Humanoid':Destroy()
IsInvis = false
InvisibleCharacter.Parent = nil
invisRunning = false
end)
elseif IsInvis == false then
pcall(function()
Player.Character = Character
wait()
Character.Parent = workspace
Character:FindFirstChildWhichIsA'Humanoid':Destroy()
TurnVisible()
end)
end
end
local invisDied
invisDied = InvisibleCharacter:FindFirstChildOfClass'Humanoid'.Died:Connect(function()
Respawn()
invisDied:Disconnect()
end)
if IsInvis == true then return end
IsInvis = true
CF = workspace.CurrentCamera.CFrame
local CF_1 = Player.Character.Humanoid.RootPart.CFrame
Character:MoveTo(Vector3.new(0,math.pi*1000000,0))
workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
wait(.2)
workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
InvisibleCharacter = InvisibleCharacter
Character.Parent = Lighting
InvisibleCharacter.Parent = workspace
InvisibleCharacter.Humanoid.RootPart.CFrame = CF_1
Player.Character = InvisibleCharacter
execCmd('fixcam')
Player.Character.Animate.Disabled = true
Player.Character.Animate.Disabled = false
function TurnVisible()
if IsInvis == false then return end
invisFix:Disconnect()
invisDied:Disconnect()
CF = workspace.CurrentCamera.CFrame
Character = Character
local CF_1 = Player.Character.Humanoid.RootPart.CFrame
Character.Humanoid.RootPart.CFrame = CF_1
InvisibleCharacter:Destroy()
Player.Character = Character
Character.Parent = workspace
IsInvis = false
Player.Character.Animate.Disabled = true
Player.Character.Animate.Disabled = false
invisDied = Character:FindFirstChildOfClass'Humanoid'.Died:Connect(function()
Respawn()
invisDied:Disconnect()
end)
invisRunning = false
end
notify('Invisible','You now appear invisible to other players')
end)
addcmd("visible", {"vis","uninvisible"}, function(args, speaker)
TurnVisible()
end)
addcmd("toggleinvis", {}, function(args, speaker)
execCmd(invisRunning and "visible" or "invisible")
end)
addcmd('toolinvisible',{'toolinvis','tinvis'},function(args, speaker)
local Char = Players.LocalPlayer.Character
local touched = false
local tpdback = false
local box = Instance.new('Part')
box.Anchored = true
box.CanCollide = true
box.Size = Vector3.new(10,1,10)
box.Position = Vector3.new(0,10000,0)
box.Parent = workspace
local boxTouched = box.Touched:connect(function(part)
if (part.Parent.Name == Players.LocalPlayer.Name) then
if touched == false then
touched = true
local function apply()
local no = Char.Humanoid.RootPart:Clone()
task.wait(.25)
Char.Humanoid.RootPart:Destroy()
no.Parent = Char
Char:MoveTo(loc)
touched = false
end
if Char then
apply()
end
end
end
end)
repeat wait() until Char
local cleanUp
cleanUp = Players.LocalPlayer.CharacterAdded:connect(function(char)
boxTouched:Disconnect()
box:Destroy()
cleanUp:Disconnect()
end)
loc = Char.Humanoid.RootPart.Position
Char:MoveTo(box.Position + Vector3.new(0,.5,0))
end)
addcmd("strengthen", {}, function(args, speaker)
for _, child in pairs(speaker.Character:GetDescendants()) do
if child.ClassName == "Part" then
if args[1] then
child.CustomPhysicalProperties = PhysicalProperties.new(args[1], 0.3, 0.5)
else
child.CustomPhysicalProperties = PhysicalProperties.new(100, 0.3, 0.5)
end
end
end
end)
addcmd("weaken", {}, function(args, speaker)
for _, child in pairs(speaker.Character:GetDescendants()) do
if child.ClassName == "Part" then
if args[1] then
child.CustomPhysicalProperties = PhysicalProperties.new(-args[1], 0.3, 0.5)
else
child.CustomPhysicalProperties = PhysicalProperties.new(0, 0.3, 0.5)
end
end
end
end)
addcmd("unweaken", {"unstrengthen"}, function(args, speaker)
for _, child in pairs(speaker.Character:GetDescendants()) do
if child.ClassName == "Part" then
child.CustomPhysicalProperties = PhysicalProperties.new(0.7, 0.3, 0.5)
end
end
end)
addcmd("breakvelocity", {}, function(args, speaker)
local BeenASecond, V3 = false, Vector3.new(0, 0, 0)
delay(1, function()
BeenASecond = true
end)
while not BeenASecond do
for _, v in ipairs(speaker.Character:GetDescendants()) do
if v:IsA("BasePart") then
v.Velocity, v.RotVelocity = V3, V3
end
end
wait()
end
end)
addcmd('jpower',{'jumppower','jp'},function(args, speaker)
local jpower = args[1] or 50
if isNumber(jpower) then
if speaker.Character:FindFirstChildOfClass('Humanoid').UseJumpPower then
speaker.Character:FindFirstChildOfClass('Humanoid').JumpPower = jpower
else
speaker.Character:FindFirstChildOfClass('Humanoid').JumpHeight = jpower
end
end
end)
addcmd("maxslopeangle", {"msa"}, function(args, speaker)
local sangle = args[1] or 89
if isNumber(sangle) then
speaker.Character:FindFirstChildWhichIsA("Humanoid").MaxSlopeAngle = sangle
end
end)
addcmd("gravity", {"grav"}, function(args, speaker)
local grav = args[1] or oldgrav
if isNumber(grav) then
workspace.Gravity = grav
end
end)
addcmd("hipheight", {"hheight"}, function(args, speaker)
local hipHeight = args[1] or (r15(speaker) and 2.1 or 0)
if isNumber(hipHeight) then
speaker.Character:FindFirstChildWhichIsA("Humanoid").HipHeight = hipHeight
end
end)
addcmd("dance", {}, function(args, speaker)
pcall(execCmd, "undance")
local dances = {"27789359", "30196114", "248263260", "45834924", "33796059", "28488254", "52155728"}
if r15(speaker) then
dances = {"3333432454", "4555808220", "4049037604", "4555782893", "10214311282", "10714010337", "10713981723", "10714372526", "10714076981", "10714392151", "11444443576"}
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://" .. dances[math.random(1, #dances)]
danceTrack = speaker.Character:FindFirstChildWhichIsA("Humanoid"):LoadAnimation(animation)
danceTrack.Looped = true
danceTrack:Play()
end)
addcmd("undance", {"nodance"}, function(args, speaker)
danceTrack:Stop()
danceTrack:Destroy()
end)
addcmd('nolimbs',{'rlimbs'},function(args, speaker)
if r15(speaker) then
for i,v in pairs(speaker.Character:GetChildren()) do
if v:IsA("BasePart") and
v.Name == "RightUpperLeg" or
v.Name == "LeftUpperLeg" or
v.Name == "RightUpperArm" or
v.Name == "LeftUpperArm" then
v:Destroy()
end
end
else
for i,v in pairs(speaker.Character:GetChildren()) do
if v:IsA("BasePart") and
v.Name == "Right Leg" or
v.Name == "Left Leg" or
v.Name == "Right Arm" or
v.Name == "Left Arm" then
v:Destroy()
end
end
end
end)
addcmd('noarms',{'rarms'},function(args, speaker)
if r15(speaker) then
for i,v in pairs(speaker.Character:GetChildren()) do
if v:IsA("BasePart") and
v.Name == "RightUpperArm" or
v.Name == "LeftUpperArm" then
v:Destroy()
end
end
else
for i,v in pairs(speaker.Character:GetChildren()) do
if v:IsA("BasePart") and
v.Name == "Right Arm" or
v.Name == "Left Arm" then
v:Destroy()
end
end
end
end)
addcmd('nolegs',{'rlegs'},function(args, speaker)
if r15(speaker) then
for i,v in pairs(speaker.Character:GetChildren()) do
if v:IsA("BasePart") and
v.Name == "RightUpperLeg" or
v.Name == "LeftUpperLeg" then
v:Destroy()
end
end
else
for i,v in pairs(speaker.Character:GetChildren()) do
if v:IsA("BasePart") and
v.Name == "Right Leg" or
v.Name == "Left Leg" then
v:Destroy()
end
end
end
end)
addcmd("lay", {"laydown"}, function(args, speaker)
local humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
humanoid.Sit = true
task.wait(0.1)
humanoid.RootPart.CFrame = humanoid.RootPart.CFrame * CFrame.Angles(math.pi * 0.5, 0, 0)
for _, v in ipairs(humanoid:GetPlayingAnimationTracks()) do
v:Stop()
end
end)
addcmd("sitwalk", {}, function(args, speaker)
local anims = speaker.Character.Animate
local sit = anims.sit:FindFirstChildWhichIsA("Animation").AnimationId
anims.idle:FindFirstChildWhichIsA("Animation").AnimationId = sit
anims.walk:FindFirstChildWhichIsA("Animation").AnimationId = sit
anims.run:FindFirstChildWhichIsA("Animation").AnimationId = sit
anims.jump:FindFirstChildWhichIsA("Animation").AnimationId = sit
speaker.Character:FindFirstChildWhichIsA("Humanoid").HipHeight = not r15(speaker) and -1.5 or 0.5
end)
addcmd("nosit", {}, function(args, speaker)
speaker.Character:FindFirstChildWhichIsA("Humanoid"):SetStateEnabled(Enum.HumanoidStateType.Seated, false)
end)
addcmd("unnosit", {}, function(args, speaker)
speaker.Character:FindFirstChildWhichIsA("Humanoid"):SetStateEnabled(Enum.HumanoidStateType.Seated, true)
end)
addcmd("jump", {}, function(args, speaker)
speaker.Character:FindFirstChildWhichIsA("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping)
end)
local infJump
infJumpDebounce = false
addcmd("infjump", {"infinitejump"}, function(args, speaker)
if infJump then infJump:Disconnect() end
infJumpDebounce = false
infJump = UserInputService.JumpRequest:Connect(function()
if not infJumpDebounce then
infJumpDebounce = true
speaker.Character:FindFirstChildWhichIsA("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping)
wait()
infJumpDebounce = false
end
end)
end)
addcmd("uninfjump", {"uninfinitejump", "noinfjump", "noinfinitejump"}, function(args, speaker)
if infJump then infJump:Disconnect() end
infJumpDebounce = false
end)
local flyjump
addcmd("flyjump", {}, function(args, speaker)
if flyjump then flyjump:Disconnect() end
flyjump = UserInputService.JumpRequest:Connect(function()
speaker.Character:FindFirstChildWhichIsA("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping)
end)
end)
addcmd("unflyjump", {"noflyjump"}, function(args, speaker)
if flyjump then flyjump:Disconnect() end
end)
local HumanModCons = {}
addcmd('autojump',{'ajump'},function(args, speaker)
local Char = speaker.Character
local Human = Char and Char:FindFirstChildWhichIsA("Humanoid")
local function autoJump()
if Char and Human then
local check1 = workspace:FindPartOnRay(Ray.new(Human.RootPart.Position-Vector3.new(0,1.5,0), Human.RootPart.CFrame.lookVector*3), Human.Parent)
local check2 = workspace:FindPartOnRay(Ray.new(Human.RootPart.Position+Vector3.new(0,1.5,0), Human.RootPart.CFrame.lookVector*3), Human.Parent)
if check1 or check2 then
Human.Jump = true
end
end
end
autoJump()
HumanModCons.ajLoop = (HumanModCons.ajLoop and HumanModCons.ajLoop:Disconnect() and false) or RunService.RenderStepped:Connect(autoJump)
HumanModCons.ajCA = (HumanModCons.ajCA and HumanModCons.ajCA:Disconnect() and false) or speaker.CharacterAdded:Connect(function(nChar)
Char, Human = nChar, nChar:WaitForChild("Humanoid")
autoJump()
HumanModCons.ajLoop = (HumanModCons.ajLoop and HumanModCons.ajLoop:Disconnect() and false) or RunService.RenderStepped:Connect(autoJump)
end)
end)
addcmd('unautojump',{'noautojump', 'noajump', 'unajump'},function(args, speaker)
HumanModCons.ajLoop = (HumanModCons.ajLoop and HumanModCons.ajLoop:Disconnect() and false) or nil
HumanModCons.ajCA = (HumanModCons.ajCA and HumanModCons.ajCA:Disconnect() and false) or nil
end)
addcmd('edgejump',{'ejump'},function(args, speaker)
local Char = speaker.Character
local Human = Char and Char:FindFirstChildWhichIsA("Humanoid")
-- Full credit to NoelGamer06 @V3rmillion
local state
local laststate
local lastcf
local function edgejump()
if Char and Human then
laststate = state
state = Human:GetState()
if laststate ~= state and state == Enum.HumanoidStateType.Freefall and laststate ~= Enum.HumanoidStateType.Jumping then
Char.Humanoid.RootPart.CFrame = lastcf
Char.Humanoid.RootPart.Velocity = Vector3.new(Char.Humanoid.RootPart.Velocity.X, Human.JumpPower or Human.JumpHeight, Char.Humanoid.RootPart.Velocity.Z)
end
lastcf = Char.Humanoid.RootPart.CFrame
end
end
edgejump()
HumanModCons.ejLoop = (HumanModCons.ejLoop and HumanModCons.ejLoop:Disconnect() and false) or RunService.RenderStepped:Connect(edgejump)
HumanModCons.ejCA = (HumanModCons.ejCA and HumanModCons.ejCA:Disconnect() and false) or speaker.CharacterAdded:Connect(function(nChar)
Char, Human = nChar, nChar:WaitForChild("Humanoid")
edgejump()
HumanModCons.ejLoop = (HumanModCons.ejLoop and HumanModCons.ejLoop:Disconnect() and false) or RunService.RenderStepped:Connect(edgejump)
end)
end)
addcmd('unedgejump',{'noedgejump', 'noejump', 'unejump'},function(args, speaker)
HumanModCons.ejLoop = (HumanModCons.ejLoop and HumanModCons.ejLoop:Disconnect() and false) or nil
HumanModCons.ejCA = (HumanModCons.ejCA and HumanModCons.ejCA:Disconnect() and false) or nil
end)
addcmd("team", {}, function(args, speaker)
local teamName = getstring(1, args)
local team = nil
local root = speaker.Character and getRoot(speaker.Character)
for _, v in ipairs(Teams:GetChildren()) do
if v.Name:lower():match(teamName:lower()) then
team = v
break
end
end
if not team then
return notify("Invalid Team", teamName .. " is not a valid team")
end
if root and firetouchinterest then
for _, v in ipairs(workspace:GetDescendants()) do
if v:IsA("SpawnLocation") and v.BrickColor == team.TeamColor and v.AllowTeamChangeOnTouch == true then
firetouchinterest(v, root, 0)
firetouchinterest(v, root, 1)
break
end
end
else
speaker.Team = team
end
end)
addcmd('nobgui',{'unbgui','nobillboardgui','unbillboardgui','noname','rohg'},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants())do
if v:IsA("BillboardGui") or v:IsA("SurfaceGui") then
v:Destroy()
end
end
end)
addcmd('loopnobgui',{'loopunbgui','loopnobillboardgui','loopunbillboardgui','loopnoname','looprohg'},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants())do
if v:IsA("BillboardGui") or v:IsA("SurfaceGui") then
v:Destroy()
end
end
local function charPartAdded(part)
if part:IsA("BillboardGui") or part:IsA("SurfaceGui") then
wait()
part:Destroy()
end
end
charPartTrigger = speaker.Character.DescendantAdded:Connect(charPartAdded)
end)
addcmd('unloopnobgui',{'unloopunbgui','unloopnobillboardgui','unloopunbillboardgui','unloopnoname','unlooprohg'},function(args, speaker)
if charPartTrigger then
charPartTrigger:Disconnect()
end
end)
addcmd('spasm',{},function(args, speaker)
if not r15(speaker) then
local pchar=speaker.Character
local AnimationId = "33796059"
SpasmAnim = Instance.new("Animation")
SpasmAnim.AnimationId = "rbxassetid://"..AnimationId
Spasm = pchar:FindFirstChildOfClass('Humanoid'):LoadAnimation(SpasmAnim)
Spasm:Play()
Spasm:AdjustSpeed(99)
else
notify('R6 Required','This command requires the r6 rig type')
end
end)
addcmd('unspasm',{'nospasm'},function(args, speaker)
Spasm:Stop()
SpasmAnim:Destroy()
end)
addcmd('headthrow',{},function(args, speaker)
if not r15(speaker) then
local AnimationId = "35154961"
local Anim = Instance.new("Animation")
Anim.AnimationId = "rbxassetid://"..AnimationId
local k = speaker.Character:FindFirstChildOfClass('Humanoid'):LoadAnimation(Anim)
k:Play(0)
k:AdjustSpeed(1)
else
notify('R6 Required','This command requires the r6 rig type')
end
end)
local function anim2track(asset_id)
local objs = game:GetObjects(asset_id)
for i = 1, #objs do
if objs[i]:IsA("Animation") then
return objs[i].AnimationId
end
end
return asset_id
end
addcmd("animation", {"anim"}, function(args, speaker)
local animid = tostring(args[1])
if not animid:find("rbxassetid://") then
animid = "rbxassetid://" .. animid
end
animid = anim2track(animid)
local animation = Instance.new("Animation")
animation.AnimationId = animid
local anim = speaker.Character:FindFirstChildWhichIsA("Humanoid"):LoadAnimation(animation)
anim.Priority = Enum.AnimationPriority.Movement
anim:Play()
if args[2] then anim:AdjustSpeed(tostring(args[2])) end
end)
addcmd("emote", {"em"}, function(args, speaker)
local anim = humanoid:PlayEmoteAndGetAnimTrackById(args[1])
if args[2] then anim:AdjustSpeed(tostring(args[2])) end
end)
addcmd('noanim',{},function(args, speaker)
speaker.Character.Animate.Disabled = true
end)
addcmd('reanim',{},function(args, speaker)
speaker.Character.Animate.Disabled = false
end)
addcmd('animspeed',{},function(args, speaker)
local Char = speaker.Character
local Hum = Char:FindFirstChildOfClass("Humanoid") or Char:FindFirstChildOfClass("AnimationController")
for i,v in next, Hum:GetPlayingAnimationTracks() do
v:AdjustSpeed(tonumber(args[1] or 1))
end
end)
addcmd('copyanimation',{'copyanim','copyemote'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for _,v in ipairs(players)do
local char = Players[v].Character
for _, v1 in pairs(speaker.Character:FindFirstChildOfClass('Humanoid'):GetPlayingAnimationTracks()) do
v1:Stop()
end
for _, v1 in pairs(Players[v].Character:FindFirstChildOfClass('Humanoid'):GetPlayingAnimationTracks()) do
if not string.find(v1.Animation.AnimationId, "507768375") then
local ANIM = speaker.Character:FindFirstChildOfClass('Humanoid'):LoadAnimation(v1.Animation)
ANIM:Play(.1, 1, v1.Speed)
ANIM.TimePosition = v1.TimePosition
task.spawn(function()
v1.Stopped:Wait()
ANIM:Stop()
ANIM:Destroy()
end)
end
end
end
end)
addcmd("copyanimationid", {"copyanimid", "copyemoteid"}, function(args, speaker)
local copyAnimId = function(player)
local found = "Animations Copied"
for _, v in pairs(player.Character:FindFirstChildWhichIsA("Humanoid"):GetPlayingAnimationTracks()) do
local animationId = v.Animation.AnimationId
local assetId = animationId:find("rbxassetid://") and animationId:match("%d+")
if not string.find(animationId, "507768375") and not string.find(animationId, "180435571") then
if assetId then
local success, result = pcall(function()
return MarketplaceService:GetProductInfo(tonumber(assetId)).Name
end)
local name = success and result or "Failed to get name"
found = found .. "\n\nName: " .. name .. "\nAnimation Id: " .. animationId
else
found = found .. "\n\nAnimation Id: " .. animationId
end
end
end
if found ~= "Animations Copied" then
toClipboard(found)
else
notify("Animations", "No animations to copy")
end
end
if args[1] then
copyAnimId(Players[getPlayer(args[1], speaker)[1]])
else
copyAnimId(speaker)
end
end)
addcmd('stopanimations',{'stopanims','stopanim'},function(args, speaker)
local Char = speaker.Character
local Hum = Char:FindFirstChildOfClass("Humanoid") or Char:FindFirstChildOfClass("AnimationController")
for i,v in next, Hum:GetPlayingAnimationTracks() do
v:Stop()
end
end)
addcmd('refreshanimations', {'refreshanimation', 'refreshanims', 'refreshanim'}, function(args, speaker)
local Char = speaker.Character or speaker.CharacterAdded:Wait()
local Human = Char and Char:WaitForChild('Humanoid', 15)
local Animate = Char and Char:WaitForChild('Animate', 15)
if not Human or not Animate then
return notify('Refresh Animations', 'Failed to get Animate/Humanoid')
end
Animate.Disabled = true
for _, v in ipairs(Human:GetPlayingAnimationTracks()) do
v:Stop()
end
Animate.Disabled = false
end)
addcmd('allowcustomanim', {'allowcustomanimations'}, function(args, speaker)
StarterPlayer.AllowCustomAnimations = true
execCmd('refreshanimations')
end)
addcmd('unallowcustomanim', {'unallowcustomanimations'}, function(args, speaker)
StarterPlayer.AllowCustomAnimations = false
execCmd('refreshanimations')
end)
addcmd('loopanimation', {'loopanim'},function(args, speaker)
local Char = speaker.Character
local Human = Char and Char.FindFirstChildWhichIsA(Char, "Humanoid")
for _, v in ipairs(Human.GetPlayingAnimationTracks(Human)) do
v.Looped = true
end
end)
addcmd('tpposition',{'tppos'},function(args, speaker)
if #args < 3 then return end
local tpX,tpY,tpZ = tonumber((args[1]:gsub(",", ""))),tonumber((args[2]:gsub(",", ""))),tonumber((args[3]:gsub(",", "")))
local char = speaker.Character
if char and getRoot(char) then
getRoot(char).CFrame = CFrame.new(tpX,tpY,tpZ)
end
end)
addcmd('tweentpposition',{'ttppos'},function(args, speaker)
if #args < 3 then return end
local tpX,tpY,tpZ = tonumber((args[1]:gsub(",", ""))),tonumber((args[2]:gsub(",", ""))),tonumber((args[3]:gsub(",", "")))
local char = speaker.Character
if char and getRoot(char) then
TweenService:Create(getRoot(speaker.Character), TweenInfo.new(tweenSpeed, Enum.EasingStyle.Linear), {CFrame = CFrame.new(tpX,tpY,tpZ)}):Play()
end
end)
addcmd("offset", {}, function(args, speaker)
if #args < 3 then return end
speaker.Character:TranslateBy(Vector3.new(tonumber(args[1]) or 0, tonumber(args[2]) or 0, tonumber(args[3]) or 0))
end)
addcmd("tweenoffset", {"toffset"}, function(args, speaker)
if #args < 3 then return end
local tpX, tpY, tpZ = tonumber(args[1]), tonumber(args[2]), tonumber(args[3])
local root = getRoot(speaker.Character)
local pos = root.Position + Vector3.new(tpX, tpY, tpZ)
TweenService:Create(root, TweenInfo.new(tweenSpeed, Enum.EasingStyle.Linear), {CFrame = CFrame.new(pos)}):Play()
breakVelocity()
end)
addcmd("clickteleport", {}, function(args, speaker)
if speaker ~= Players.LocalPlayer then return end
notify("Click TP", "Go to Settings > Keybinds > Add to set up click teleport")
end)
addcmd("mouseteleport", {"mousetp"}, function(args, speaker)
local root = getRoot(speaker.Character)
local pos = IYMouse.Hit
if root and pos then
root.CFrame = CFrame.new(pos.X, pos.Y + 3, pos.Z, select(4, root.CFrame:components()))
breakVelocity()
end
end)
addcmd("tptool", {"teleporttool"}, function(args, speaker)
local TpTool = Instance.new("Tool")
TpTool.Name = "Teleport Tool"
TpTool.RequiresHandle = false
TpTool.Parent = speaker:FindFirstChildOfClass("Backpack")
TpTool.Activated:Connect(function()
local root = getRoot(speaker.Character)
local pos = IYMouse.Hit
if not root or not pos then return end
root.CFrame = CFrame.new(pos.X, pos.Y + 3, pos.Z, select(4, root.CFrame:components()))
breakVelocity()
end)
end)
addcmd("thru", {}, function(args, speaker)
local root = getRoot(speaker.Character)
local num = tonumber(args[1]) or 5
local pos = root.CFrame.Position + (root.CFrame.LookVector * num)
root.CFrame = CFrame.new(pos, pos + root.CFrame.LookVector)
end)
addcmd('clickdelete',{},function(args, speaker)
if speaker == Players.LocalPlayer then
notify('Click Delete','Go to Settings > Keybinds > Add to set up click delete')
end
end)
addcmd('getposition',{'getpos','notifypos','notifyposition'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
local char = Players[v].Character
local pos = char and (getRoot(char) or char:FindFirstChildWhichIsA("BasePart"))
pos = pos and pos.Position
if not pos then
return notify('Getposition Error','Missing character')
end
local roundedPos = math.round(pos.X) .. ", " .. math.round(pos.Y) .. ", " .. math.round(pos.Z)
notify('Current Position',roundedPos)
end
end)
addcmd('copyposition',{'copypos'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
local char = Players[v].Character
local pos = char and (getRoot(char) or char:FindFirstChildWhichIsA("BasePart"))
pos = pos and pos.Position
if not pos then
return notify('Getposition Error','Missing character')
end
local roundedPos = math.round(pos.X) .. ", " .. math.round(pos.Y) .. ", " .. math.round(pos.Z)
toClipboard(roundedPos)
end
end)
addcmd('walktopos',{'walktoposition'},function(args, speaker)
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
speaker.Character:FindFirstChildOfClass('Humanoid').WalkToPoint = Vector3.new(args[1],args[2],args[3])
end)
-- pathfindtopos: pathfind to a specific X Y Z coordinate
local pathfindtoposActive = false
addcmd('pathfindtopos',{'pftopos','pathfindpos'},function(args, speaker)
pathfindtoposActive = false
wait()
local x, y, z = tonumber(args[1]), tonumber(args[2]), tonumber(args[3])
if not x or not y or not z then return notify('PathfindPos', 'Usage: ;pathfindtopos X Y Z') end
local targetPos = Vector3.new(x, y, z)
local hum = Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
local root = getRoot(speaker.Character)
if not hum or not root then return notify('PathfindPos', 'Character not found') end
if hum.SeatPart then hum.Sit = false wait(.1) end
pathfindtoposActive = true
notify('PathfindPos', 'Walking to ' .. x .. ', ' .. y .. ', ' .. z)
local path = PathService:CreatePath()
repeat task.wait()
if pathfindtoposActive == false then break end
local success, errMsg = pcall(function()
path:ComputeAsync(root.Position, targetPos)
local waypoints = path:GetWaypoints()
for waypointIndex, waypoint in pairs(waypoints) do
if pathfindtoposActive == false then break end
local wp = waypoint.Position
hum:MoveTo(wp)
repeat task.wait()
distance = (wp - root.Position).magnitude
until distance <= 5 or pathfindtoposActive == false
end
end)
if not success then
hum:MoveTo(targetPos)
end
until pathfindtoposActive == false
pathfindtoposActive = false
end)
addcmd('unpathfindtopos',{'unpftopos'},function(args, speaker)
pathfindtoposActive = false
notify('PathfindPos', 'Stopped')
end)
addcmd('speed',{'ws','walkspeed'},function(args, speaker)
local speed = tonumber(args[2] or args[1]) or 16
if isNumber(speed) then
pcall(function() speaker.Character:FindFirstChildOfClass('Humanoid').WalkSpeed = speed end)
desync_applySpeed(speed)
end
end)
addcmd('spoofspeed',{'spoofws','spoofwalkspeed'},function(args, speaker)
if args[1] and isNumber(args[1]) then
if hookmetamethod then
local char = speaker.Character
local setspeed;
local index; index = hookmetamethod(game, "__index", function(self, key)
if not checkcaller() and typeof(self) == "Instance" and self:IsA("Humanoid") and (key == "WalkSpeed" or key == "walkSpeed") and self:IsDescendantOf(char) then
return setspeed or args[1]
end
return index(self, key)
end)
local newindex; newindex = hookmetamethod(game, "__newindex", function(self, key, value)
if not checkcaller() and typeof(self) == "Instance" and self:IsA("Humanoid") and (key == "WalkSpeed" or key == "walkSpeed") and self:IsDescendantOf(char) then
setspeed = tonumber(value)
end
return newindex(self, key, value)
end)
else
notify('Incompatible Exploit','Your exploit does not support this command (missing hookmetamethod)')
end
end
end)
addcmd('loopspeed',{'loopws'},function(args, speaker)
local speed = args[1] or 16
if args[2] then
speed = args[2] or 16
end
if isNumber(speed) then
local Char = speaker.Character or workspace:FindFirstChild(speaker.Name)
local Human = Char and Char:FindFirstChildWhichIsA("Humanoid")
local function WalkSpeedChange()
if Char and Human then
Human.WalkSpeed = speed
desync_applySpeed(speed)
end
end
WalkSpeedChange()
HumanModCons.wsLoop = (HumanModCons.wsLoop and HumanModCons.wsLoop:Disconnect() and false) or Human:GetPropertyChangedSignal("WalkSpeed"):Connect(WalkSpeedChange)
HumanModCons.wsCA = (HumanModCons.wsCA and HumanModCons.wsCA:Disconnect() and false) or speaker.CharacterAdded:Connect(function(nChar)
Char, Human = nChar, nChar:WaitForChild("Humanoid")
WalkSpeedChange()
HumanModCons.wsLoop = (HumanModCons.wsLoop and HumanModCons.wsLoop:Disconnect() and false) or Human:GetPropertyChangedSignal("WalkSpeed"):Connect(WalkSpeedChange)
end)
end
end)
addcmd('unloopspeed',{'unloopws'},function(args, speaker)
HumanModCons.wsLoop = (HumanModCons.wsLoop and HumanModCons.wsLoop:Disconnect() and false) or nil
HumanModCons.wsCA = (HumanModCons.wsCA and HumanModCons.wsCA:Disconnect() and false) or nil
end)
addcmd('spoofjumppower',{'spoofjp'},function(args, speaker)
if args[1] and isNumber(args[1]) then
if hookmetamethod then
local char = speaker.Character
local setpower;
local index; index = hookmetamethod(game, "__index", function(self, key)
if not checkcaller() and typeof(self) == "Instance" and self:IsA("Humanoid") and (key == "JumpPower" or key == "jumpPower") and self:IsDescendantOf(char) then
return setpower or args[1]
end
return index(self, key)
end)
local newindex; newindex = hookmetamethod(game, "__newindex", function(self, key, value)
if not checkcaller() and typeof(self) == "Instance" and self:IsA("Humanoid") and (key == "JumpPower" or key == "jumpPower") and self:IsDescendantOf(char) then
setpower = tonumber(value)
end
return newindex(self, key, value)
end)
else
notify('Incompatible Exploit','Your exploit does not support this command (missing hookmetamethod)')
end
end
end)
addcmd('loopjumppower',{'loopjp','loopjpower'},function(args, speaker)
local jpower = args[1] or 50
if isNumber(jpower) then
local Char = speaker.Character or workspace:FindFirstChild(speaker.Name)
local Human = Char and Char:FindFirstChildWhichIsA("Humanoid")
local function JumpPowerChange()
if Char and Human then
if speaker.Character:FindFirstChildOfClass('Humanoid').UseJumpPower then
speaker.Character:FindFirstChildOfClass('Humanoid').JumpPower = jpower
else
speaker.Character:FindFirstChildOfClass('Humanoid').JumpHeight = jpower
end
end
end
JumpPowerChange()
HumanModCons.jpLoop = (HumanModCons.jpLoop and HumanModCons.jpLoop:Disconnect() and false) or Human:GetPropertyChangedSignal("JumpPower"):Connect(JumpPowerChange)
HumanModCons.jpCA = (HumanModCons.jpCA and HumanModCons.jpCA:Disconnect() and false) or speaker.CharacterAdded:Connect(function(nChar)
Char, Human = nChar, nChar:WaitForChild("Humanoid")
JumpPowerChange()
HumanModCons.jpLoop = (HumanModCons.jpLoop and HumanModCons.jpLoop:Disconnect() and false) or Human:GetPropertyChangedSignal("JumpPower"):Connect(JumpPowerChange)
end)
end
end)
addcmd('unloopjumppower',{'unloopjp','unloopjpower'},function(args, speaker)
local Char = speaker.Character or workspace:FindFirstChild(speaker.Name)
local Human = Char and Char:FindFirstChildWhichIsA("Humanoid")
HumanModCons.jpLoop = (HumanModCons.jpLoop and HumanModCons.jpLoop:Disconnect() and false) or nil
HumanModCons.jpCA = (HumanModCons.jpCA and HumanModCons.jpCA:Disconnect() and false) or nil
if Char and Human then
if speaker.Character:FindFirstChildOfClass('Humanoid').UseJumpPower then
speaker.Character:FindFirstChildOfClass('Humanoid').JumpPower = 50
else
speaker.Character:FindFirstChildOfClass('Humanoid').JumpHeight = 50
end
end
end)
addcmd('tools',{'gears'},function(args, speaker)
local function copy(instance)
for i,c in pairs(instance:GetChildren())do
if c:IsA('Tool') or c:IsA('HopperBin') then
c:Clone().Parent = speaker:FindFirstChildOfClass("Backpack")
end
copy(c)
end
end
copy(Lighting)
local function copy(instance)
for i,c in pairs(instance:GetChildren())do
if c:IsA('Tool') or c:IsA('HopperBin') then
c:Clone().Parent = speaker:FindFirstChildOfClass("Backpack")
end
copy(c)
end
end
copy(ReplicatedStorage)
notify('Tools','Copied tools from ReplicatedStorage and Lighting')
end)
addcmd('notools',{'rtools','clrtools','removetools','deletetools','dtools'},function(args, speaker)
for i,v in pairs(speaker:FindFirstChildOfClass("Backpack"):GetDescendants()) do
if v:IsA('Tool') or v:IsA('HopperBin') then
v:Destroy()
end
end
for i,v in pairs(speaker.Character:GetDescendants()) do
if v:IsA('Tool') or v:IsA('HopperBin') then
v:Destroy()
end
end
end)
addcmd('deleteselectedtool',{'dst'},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants()) do
if v:IsA('Tool') or v:IsA('HopperBin') then
v:Destroy()
end
end
end)
addcmd("console", {}, function(args, speaker)
StarterGui:SetCore("DevConsoleVisible", true)
end)
addcmd('oldconsole',{},function(args, speaker)
-- Thanks wally!!
notify("Loading",'Hold on a sec')
local _, str = pcall(function()
return game:HttpGet("https://raw.githubusercontent.com/infyiff/backup/main/console.lua", true)
end)
local s, e = loadstring(str)
if typeof(s) ~= "function" then
return
end
local success, message = pcall(s)
if (not success) then
if printconsole then
printconsole(message)
elseif printoutput then
printoutput(message)
end
end
wait(1)
notify('Console','Press F9 to open the console')
end)
addcmd("explorer", {"dex"}, function(args, speaker)
notify("Loading", "Hold on a sec")
loadstring(game:HttpGet("https://raw.githubusercontent.com/infyiff/backup/main/dex.lua"))()
end)
addcmd('olddex', {'odex'}, function(args, speaker)
notify('Loading old explorer', 'Hold on a sec')
local getobjects = function(a)
local Objects = {}
if a then
local b = InsertService:LoadLocalAsset(a)
if b then
table.insert(Objects, b)
end
end
return Objects
end
local Dex = getobjects("rbxassetid://10055842438")[1]
Dex.Parent = PARENT
local function Load(Obj, Url)
local function GiveOwnGlobals(Func, Script)
-- Fix for this edit of dex being poorly made
-- I (Alex) would like to commemorate whoever added this dex in somehow finding the worst dex to ever exist
local Fenv, RealFenv, FenvMt = {}, {
script = Script,
getupvalue = function(a, b)
return nil -- force it to use globals
end,
getreg = function() -- It loops registry for some idiotic reason so stop it from doing that and just use a global
return {} -- force it to use globals
end,
getprops = getprops or function(inst)
if getproperties then
local props = getproperties(inst)
if props[1] and gethiddenproperty then
local results = {}
for _,name in pairs(props) do
local success, res = pcall(gethiddenproperty, inst, name)
if success then
results[name] = res
end
end
return results
end
return props
end
return {}
end
}, {}
FenvMt.__index = function(a,b)
return RealFenv[b] == nil and getgenv()[b] or RealFenv[b]
end
FenvMt.__newindex = function(a, b, c)
if RealFenv[b] == nil then
getgenv()[b] = c
else
RealFenv[b] = c
end
end
setmetatable(Fenv, FenvMt)
pcall(setfenv, Func, Fenv)
return Func
end
local function LoadScripts(_, Script)
if Script:IsA("LocalScript") then
task.spawn(function()
GiveOwnGlobals(loadstring(Script.Source,"="..Script:GetFullName()), Script)()
end)
end
table.foreach(Script:GetChildren(), LoadScripts)
end
LoadScripts(nil, Obj)
end
Load(Dex)
end)
addcmd('remotespy',{'rspy'},function(args, speaker)
notify("Loading",'Hold on a sec')
-- Full credit to exx, creator of SimpleSpy
-- also thanks to Amity for fixing
loadstring(game:HttpGet("https://raw.githubusercontent.com/infyiff/backup/main/SimpleSpyV3/main.lua"))()
end)
addcmd("executor", {}, function(args, speaker)
-- by dnezero
notify("Loading", "Hold on a sec")
loadstring(game:HttpGet("https://raw.githubusercontent.com/infyiff/backup/refs/heads/main/executor.lua"))()
end)
addcmd("nds", {"naturaldisaster", "disastersurvival"}, function(args, speaker)
notify("NDS", "Loading Natural Disaster Survival...")
loadstring(game:HttpGet("https://raw.githubusercontent.com/KaterHub-Inc/NaturalDisasterSurvival/refs/heads/main/main.lua"))()
end)
addcmd('audiologger',{'alogger'},function(args, speaker)
notify("Loading",'Hold on a sec')
loadstring(game:HttpGet(('https://raw.githubusercontent.com/infyiff/backup/main/audiologger.lua'),true))()
end)
local loopgoto = nil
addcmd('loopgoto',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
loopgoto = nil
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
loopgoto = Players[v]
local distance = 3
if args[2] and isNumber(args[2]) then
distance = args[2]
end
local lDelay = 0
if args[3] and isNumber(args[3]) then
lDelay = args[3]
end
repeat
if Players:FindFirstChild(v) then
if Players[v].Character ~= nil then
getRoot(speaker.Character).CFrame = getRoot(Players[v].Character).CFrame + Vector3.new(distance,1,0)
end
wait(lDelay)
else
loopgoto = nil
end
until loopgoto ~= Players[v]
end
end)
addcmd('unloopgoto',{'noloopgoto'},function(args, speaker)
loopgoto = nil
end)
addcmd('headsit',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
if headSit then headSit:Disconnect() end
for i,v in pairs(players)do
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = true
headSit = RunService.Heartbeat:Connect(function()
if Players:FindFirstChild(Players[v].Name) and Players[v].Character ~= nil and getRoot(Players[v].Character) and getRoot(speaker.Character) and speaker.Character:FindFirstChildOfClass('Humanoid').Sit == true then
getRoot(speaker.Character).CFrame = getRoot(Players[v].Character).CFrame * CFrame.Angles(0,math.rad(0),0)* CFrame.new(0,1.6,0.4)
else
headSit:Disconnect()
end
end)
end
end)
addcmd('chat',{'say'},function(args, speaker)
local cString = getstring(1, args)
chatMessage(cString)
end)
spamming = false
spamspeed = 1
addcmd('spam',{},function(args, speaker)
spamming = true
local spamstring = getstring(1, args)
repeat wait(spamspeed)
chatMessage(spamstring)
until spamming == false
end)
addcmd('nospam',{'unspam'},function(args, speaker)
spamming = false
end)
addcmd('whisper',{'pm'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
task.spawn(function()
local plrName = Players[v].Name
local pmstring = getstring(2, args)
chatMessage("/w "..plrName.." "..pmstring)
end)
end
end)
pmspamming = {}
addcmd('pmspam',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
task.spawn(function()
local plrName = Players[v].Name
if FindInTable(pmspamming, plrName) then return end
table.insert(pmspamming, plrName)
local pmspamstring = getstring(2, args)
repeat
if Players:FindFirstChild(v) then
wait(spamspeed)
chatMessage("/w "..plrName.." "..pmspamstring)
else
for a,b in pairs(pmspamming) do if b == plrName then table.remove(pmspamming, a) end end
end
until not FindInTable(pmspamming, plrName)
end)
end
end)
addcmd('nopmspam',{'unpmspam'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
task.spawn(function()
for a,b in pairs(pmspamming) do
if b == Players[v].Name then
table.remove(pmspamming, a)
end
end
end)
end
end)
addcmd('spamspeed',{},function(args, speaker)
local speed = args[1] or 1
if isNumber(speed) then
spamspeed = speed
end
end)
addcmd('bubblechat',{},function(args, speaker)
if isLegacyChat then
ChatService.BubbleChatEnabled = true
else
TextChatService.BubbleChatConfiguration.Enabled = true
end
end)
addcmd('unbubblechat',{'nobubblechat'},function(args, speaker)
if isLegacyChat then
ChatService.BubbleChatEnabled = false
else
TextChatService.BubbleChatConfiguration.Enabled = false
end
end)
addcmd("chatwindow", {}, function(args, speaker)
TextChatService.ChatWindowConfiguration.Enabled = true
end)
addcmd("unchatwindow", {"nochatwindow"}, function(args, speaker)
TextChatService.ChatWindowConfiguration.Enabled = false
end)
addcmd("darkchat", {}, function(args, speaker)
local BCC = TextChatService:FindFirstChildOfClass("BubbleChatConfiguration")
local CWC = TextChatService:FindFirstChildOfClass("ChatWindowConfiguration")
local CIBC = TextChatService:FindFirstChildOfClass("ChatInputBarConfiguration")
if BCC then
BCC.Enabled = true
BCC.BackgroundColor3 = Color3.fromRGB()
BCC.BackgroundTransparency = 0.3
BCC.TailVisible = true
BCC.TextColor3 = Color3.fromRGB(0xFF, 0xFF, 0xFF)
end
if CWC then
CWC.Enabled = true
CWC.BackgroundColor3 = Color3.fromRGB()
CWC.BackgroundTransparency = 0.3
CWC.TextColor3 = Color3.fromRGB(0xFF, 0xFF, 0xFF)
CWC.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
CWC.TextStrokeTransparency = 0.5
end
if CIBC then
CIBC.Enabled = true
CIBC.BackgroundColor3 = Color3.fromRGB()
CIBC.BackgroundTransparency = 0.5
CIBC.PlaceholderColor3 = Color3.fromRGB(0xFF, 0xFF, 0xFF)
CIBC.TextColor3 = Color3.fromRGB(0xFF, 0xFF, 0xFF)
CIBC.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
CIBC.TextStrokeTransparency = 0.5
end
end)
addcmd('blockhead',{},function(args, speaker)
speaker.Character.Head:FindFirstChildOfClass("SpecialMesh"):Destroy()
end)
addcmd('blockhats',{},function(args, speaker)
for _,v in pairs(speaker.Character:FindFirstChildOfClass('Humanoid'):GetAccessories()) do
for i,c in pairs(v:GetDescendants()) do
if c:IsA("SpecialMesh") then
c:Destroy()
end
end
end
end)
addcmd('blocktool',{},function(args, speaker)
for _,v in pairs(speaker.Character:GetChildren()) do
if v:IsA("Tool") or v:IsA("HopperBin") then
for i,c in pairs(v:GetDescendants()) do
if c:IsA("SpecialMesh") then
c:Destroy()
end
end
end
end
end)
addcmd('creeper',{},function(args, speaker)
if r15(speaker) then
speaker.Character.Head:FindFirstChildOfClass("SpecialMesh"):Destroy()
speaker.Character.LeftUpperArm:Destroy()
speaker.Character.RightUpperArm:Destroy()
speaker.Character:FindFirstChildOfClass("Humanoid"):RemoveAccessories()
else
speaker.Character.Head:FindFirstChildOfClass("SpecialMesh"):Destroy()
speaker.Character["Left Arm"]:Destroy()
speaker.Character["Right Arm"]:Destroy()
speaker.Character:FindFirstChildOfClass("Humanoid"):RemoveAccessories()
end
end)
function getTorso(x)
x = x or Players.LocalPlayer.Character
return x:FindFirstChild("Torso") or x:FindFirstChild("UpperTorso") or x:FindFirstChild("LowerTorso") or x:FindFirstChild("HumanoidRootPart")
end
addcmd("bang", {"rape"}, function(args, speaker)
execCmd("unbang")
wait()
local humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
bangAnim = Instance.new("Animation")
bangAnim.AnimationId = not r15(speaker) and "rbxassetid://148840371" or "rbxassetid://5918726674"
bang = humanoid:LoadAnimation(bangAnim)
bang:Play(0.1, 1, 1)
bang:AdjustSpeed(args[2] or 3)
bangDied = humanoid.Died:Connect(function()
bang:Stop()
bangAnim:Destroy()
bangDied:Disconnect()
bangLoop:Disconnect()
end)
if args[1] then
local players = getPlayer(args[1], speaker)
for _, v in pairs(players) do
local bangplr = Players[v].Name
local bangOffet = CFrame.new(0, 0, 1.1)
bangLoop = RunService.Stepped:Connect(function()
pcall(function()
local otherRoot = getTorso(Players[bangplr].Character)
getRoot(speaker.Character).CFrame = otherRoot.CFrame * bangOffet
end)
end)
end
end
end)
addcmd("unbang", {"unrape"}, function(args, speaker)
if bangDied then
bangDied:Disconnect()
bang:Stop()
bangAnim:Destroy()
bangLoop:Disconnect()
end
end)
addcmd('carpet',{},function(args, speaker)
if not r15(speaker) then
execCmd('uncarpet')
wait()
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
carpetAnim = Instance.new("Animation")
carpetAnim.AnimationId = "rbxassetid://282574440"
carpet = speaker.Character:FindFirstChildOfClass('Humanoid'):LoadAnimation(carpetAnim)
carpet:Play(.1, 1, 1)
local carpetplr = Players[v].Name
carpetDied = speaker.Character:FindFirstChildOfClass'Humanoid'.Died:Connect(function()
carpetLoop:Disconnect()
carpet:Stop()
carpetAnim:Destroy()
carpetDied:Disconnect()
end)
carpetLoop = RunService.Heartbeat:Connect(function()
pcall(function()
getRoot(Players.LocalPlayer.Character).CFrame = getRoot(Players[carpetplr].Character).CFrame
end)
end)
end
else
notify('R6 Required','This command requires the r6 rig type')
end
end)
addcmd('uncarpet',{'nocarpet'},function(args, speaker)
if carpetLoop then
carpetLoop:Disconnect()
carpetDied:Disconnect()
carpet:Stop()
carpetAnim:Destroy()
end
end)
addcmd('friend',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
speaker:RequestFriendship(Players[v])
end
end)
addcmd('unfriend',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
speaker:RevokeFriendship(Players[v])
end
end)
addcmd('bringpart',{},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v.Name:lower() == getstring(1, args):lower() and v:IsA("BasePart") then
v.CFrame = getRoot(speaker.Character).CFrame
end
end
end)
addcmd('bringpartclass',{'bpc'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v.ClassName:lower() == getstring(1, args):lower() and v:IsA("BasePart") then
v.CFrame = getRoot(speaker.Character).CFrame
end
end
end)
gotopartDelay = 0.1
addcmd('gotopart',{'topart'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v.Name:lower() == getstring(1, args):lower() and v:IsA("BasePart") then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
wait(gotopartDelay)
getRoot(speaker.Character).CFrame = v.CFrame
end
end
end)
addcmd('tweengotopart',{'tgotopart','ttopart'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v.Name:lower() == getstring(1, args):lower() and v:IsA("BasePart") then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
wait(gotopartDelay)
TweenService:Create(getRoot(speaker.Character), TweenInfo.new(tweenSpeed, Enum.EasingStyle.Linear), {CFrame = v.CFrame}):Play()
end
end
end)
addcmd('gotopartclass',{'gpc'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v.ClassName:lower() == getstring(1, args):lower() and v:IsA("BasePart") then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
wait(gotopartDelay)
getRoot(speaker.Character).CFrame = v.CFrame
end
end
end)
addcmd('tweengotopartclass',{'tgpc'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v.ClassName:lower() == getstring(1, args):lower() and v:IsA("BasePart") then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
wait(gotopartDelay)
TweenService:Create(getRoot(speaker.Character), TweenInfo.new(tweenSpeed, Enum.EasingStyle.Linear), {CFrame = v.CFrame}):Play()
end
end
end)
addcmd('gotomodel',{'tomodel'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v.Name:lower() == getstring(1, args):lower() and v:IsA("Model") then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
wait(gotopartDelay)
getRoot(speaker.Character).CFrame = v:GetModelCFrame()
end
end
end)
addcmd('tweengotomodel',{'tgotomodel','ttomodel'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v.Name:lower() == getstring(1, args):lower() and v:IsA("Model") then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
wait(gotopartDelay)
TweenService:Create(getRoot(speaker.Character), TweenInfo.new(tweenSpeed, Enum.EasingStyle.Linear), {CFrame = v:GetModelCFrame()}):Play()
end
end
end)
addcmd('gotopartdelay',{},function(args, speaker)
local gtpDelay = args[1] or 0.1
if isNumber(gtpDelay) then
gotopartDelay = gtpDelay
end
end)
addcmd('noclickdetectorlimits',{'nocdlimits','removecdlimits'},function(args, speaker)
for i,v in ipairs(workspace:GetDescendants()) do
if v:IsA("ClickDetector") then
v.MaxActivationDistance = math.huge
end
end
end)
addcmd('fireclickdetectors',{'firecd','firecds'}, function(args, speaker)
if fireclickdetector then
if args[1] then
local name = getstring(1, args):lower()
for _, descendant in ipairs(workspace:GetDescendants()) do
if descendant:IsA("ClickDetector") and descendant.Name:lower() == name or descendant.Parent.Name:lower() == name then
fireclickdetector(descendant)
end
end
else
for _, descendant in ipairs(workspace:GetDescendants()) do
if descendant:IsA("ClickDetector") then
fireclickdetector(descendant)
end
end
end
else
notify("Incompatible Exploit", "Your exploit does not support this command (missing fireclickdetector)")
end
end)
addcmd('noproximitypromptlimits',{'nopplimits','removepplimits'},function(args, speaker)
for i,v in pairs(workspace:GetDescendants()) do
if v:IsA("ProximityPrompt") then
v.MaxActivationDistance = math.huge
end
end
end)
addcmd('fireproximityprompts',{'firepp'},function(args, speaker)
if fireproximityprompt then
if args[1] then
local name = getstring(1, args)
for _, descendant in ipairs(workspace:GetDescendants()) do
if descendant:IsA("ProximityPrompt") and descendant.Name == name or descendant.Parent.Name == name then
fireproximityprompt(descendant)
end
end
else
for _, descendant in ipairs(workspace:GetDescendants()) do
if descendant:IsA("ProximityPrompt") then
fireproximityprompt(descendant)
end
end
end
else
notify("Incompatible Exploit", "Your exploit does not support this command (missing fireproximityprompt)")
end
end)
local PromptButtonHoldBegan = nil
addcmd('instantproximityprompts',{'instantpp'},function(args, speaker)
if fireproximityprompt then
execCmd("uninstantproximityprompts")
wait(0.1)
PromptButtonHoldBegan = ProximityPromptService.PromptButtonHoldBegan:Connect(function(prompt)
fireproximityprompt(prompt)
end)
else
notify('Incompatible Exploit','Your exploit does not support this command (missing fireproximityprompt)')
end
end)
addcmd('uninstantproximityprompts',{'uninstantpp'},function(args, speaker)
if PromptButtonHoldBegan ~= nil then
PromptButtonHoldBegan:Disconnect()
PromptButtonHoldBegan = nil
end
end)
addcmd('notifyping',{'ping'},function(args, speaker)
notify("Ping", math.round(speaker:GetNetworkPing() * 1000) .. "ms")
end)
addcmd('grabtools', {}, function(args, speaker)
local humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
for _, child in ipairs(workspace:GetChildren()) do
if speaker.Character and child:IsA("BackpackItem") and child:FindFirstChild("Handle") then
humanoid:EquipTool(child)
end
end
if grabtoolsFunc then
grabtoolsFunc:Disconnect()
end
grabtoolsFunc = workspace.ChildAdded:Connect(function(child)
if speaker.Character and child:IsA("BackpackItem") and child:FindFirstChild("Handle") then
humanoid:EquipTool(child)
end
end)
notify("Grabtools", "Picking up any dropped tools")
end)
addcmd('nograbtools',{'ungrabtools'},function(args, speaker)
if grabtoolsFunc then
grabtoolsFunc:Disconnect()
end
notify("Grabtools", "Grabtools has been disabled")
end)
local specifictoolremoval = {}
addcmd('removespecifictool',{},function(args, speaker)
if args[1] and speaker:FindFirstChildOfClass("Backpack") then
local tool = string.lower(getstring(1, args))
local RST = RunService.RenderStepped:Connect(function()
if speaker:FindFirstChildOfClass("Backpack") then
for i,v in pairs(speaker:FindFirstChildOfClass("Backpack"):GetChildren()) do
if v.Name:lower() == tool then
v:Remove()
end
end
end
end)
specifictoolremoval[tool] = RST
end
end)
addcmd('unremovespecifictool',{},function(args, speaker)
if args[1] then
local tool = string.lower(getstring(1, args))
if specifictoolremoval[tool] ~= nil then
specifictoolremoval[tool]:Disconnect()
specifictoolremoval[tool] = nil
end
end
end)
addcmd('clearremovespecifictool',{},function(args, speaker)
for obj in pairs(specifictoolremoval) do
specifictoolremoval[obj]:Disconnect()
specifictoolremoval[obj] = nil
end
end)
addcmd('light',{},function(args, speaker)
local light = Instance.new("PointLight")
light.Parent = getRoot(speaker.Character)
light.Range = 30
if args[1] then
light.Brightness = args[2]
light.Range = args[1]
else
light.Brightness = 5
end
end)
addcmd('unlight',{'nolight'},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants()) do
if v.ClassName == "PointLight" then
v:Destroy()
end
end
end)
addcmd('copytools',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players)do
task.spawn(function()
for i,v in pairs(Players[v]:FindFirstChildOfClass("Backpack"):GetChildren()) do
if v:IsA('Tool') or v:IsA('HopperBin') then
v:Clone().Parent = speaker:FindFirstChildOfClass("Backpack")
end
end
end)
end
end)
addcmd('naked',{},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants()) do
if v:IsA("Clothing") or v:IsA("ShirtGraphic") then
v:Destroy()
end
end
end)
addcmd('noface',{'removeface'},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants()) do
if v:IsA("Decal") and v.Name == 'face' then
v:Destroy()
end
end
end)
addcmd('spawnpoint',{'spawn'},function(args, speaker)
spawnpos = getRoot(speaker.Character).CFrame
spawnpoint = true
spDelay = tonumber(args[1]) or 0.1
notify('Spawn Point','Spawn point created at '..tostring(spawnpos))
end)
addcmd('nospawnpoint',{'nospawn','removespawnpoint'},function(args, speaker)
spawnpoint = false
notify('Spawn Point','Removed spawn point')
end)
addcmd('flashback',{'diedtp'},function(args, speaker)
if lastDeath ~= nil then
if speaker.Character:FindFirstChildOfClass('Humanoid') and speaker.Character:FindFirstChildOfClass('Humanoid').SeatPart then
speaker.Character:FindFirstChildOfClass('Humanoid').Sit = false
wait(.1)
end
getRoot(speaker.Character).CFrame = lastDeath
end
end)
addcmd('hatspin',{'spinhats'},function(args, speaker)
execCmd('unhatspin')
wait(.5)
for _,v in pairs(speaker.Character:FindFirstChildOfClass('Humanoid'):GetAccessories()) do
local keep = Instance.new("BodyPosition") keep.Name = randomString() keep.Parent = v.Handle
local spin = Instance.new("BodyAngularVelocity") spin.Name = randomString() spin.Parent = v.Handle
v.Handle:FindFirstChildOfClass("Weld"):Destroy()
if args[1] then
spin.AngularVelocity = Vector3.new(0, args[1], 0)
spin.MaxTorque = Vector3.new(0, args[1] * 2, 0)
else
spin.AngularVelocity = Vector3.new(0, 100, 0)
spin.MaxTorque = Vector3.new(0, 200, 0)
end
keep.P = 30000
keep.D = 50
spinhats = RunService.Stepped:Connect(function()
pcall(function()
keep.Position = Players.LocalPlayer.Character.Head.Position
end)
end)
end
end)
addcmd('unhatspin',{'unspinhats'},function(args, speaker)
if spinhats then
spinhats:Disconnect()
end
for _,v in pairs(speaker.Character:FindFirstChildOfClass('Humanoid'):GetAccessories()) do
v.Parent = workspace
for i,c in pairs(v.Handle) do
if c:IsA("BodyPosition") or c:IsA("BodyAngularVelocity") then
c:Destroy()
end
end
wait()
v.Parent = speaker.Character
end
end)
addcmd('clearhats',{'cleanhats'},function(args, speaker)
if firetouchinterest then
local Player = Players.LocalPlayer
local Character = Player.Character
local Old = getRoot(Character).CFrame
local Hats = {}
for _, child in ipairs(workspace:GetChildren()) do
if child:IsA("Accessory") then
table.insert(Hats, child)
end
end
for _, accessory in ipairs(Character:FindFirstChildOfClass("Humanoid"):GetAccessories()) do
accessory:Destroy()
end
for i = 1, #Hats do
repeat RunService.Heartbeat:wait() until Hats[i]
firetouchinterest(Hats[i].Handle,getRoot(Character),0)
repeat RunService.Heartbeat:wait() until Character:FindFirstChildOfClass("Accessory")
Character:FindFirstChildOfClass("Accessory"):Destroy()
repeat RunService.Heartbeat:wait() until not Character:FindFirstChildOfClass("Accessory")
end
execCmd("reset")
Player.CharacterAdded:Wait()
for i = 1,20 do
RunService.Heartbeat:Wait()
if getRoot(Player.Character) then
getRoot(Player.Character).Humanoid.RootPart.CFrame = Old
end
end
else
notify("Incompatible Exploit","Your exploit does not support this command (missing firetouchinterest)")
end
end)
addcmd('split',{},function(args, speaker)
if r15(speaker) then
speaker.Character.UpperTorso.Waist:Destroy()
else
notify('R15 Required','This command requires the r15 rig type')
end
end)
addcmd('nilchar',{},function(args, speaker)
if speaker.Character ~= nil then
speaker.Character.Parent = nil
end
end)
addcmd('unnilchar',{'nonilchar'},function(args, speaker)
if speaker.Character ~= nil then
speaker.Character.Parent = workspace
end
end)
addcmd('noroot',{'removeroot','rroot'},function(args, speaker)
if speaker.Character ~= nil then
local char = Players.LocalPlayer.Character
char.Parent = nil
char.Humanoid.RootPart:Destroy()
char.Parent = workspace
end
end)
addcmd('replaceroot',{'replacerootpart'},function(args, speaker)
if speaker.Character ~= nil and getRoot(speaker.Character) then
local Char = speaker.Character
local OldParent = Char.Parent
local HRP = Char and getRoot(Char)
local OldPos = HRP.CFrame
Char.Parent = game
local HRP1 = HRP:Clone()
HRP1.Parent = Char
HRP = HRP:Destroy()
HRP1.CFrame = OldPos
Char.Parent = OldParent
end
end)
addcmd('clearcharappearance',{'clearchar','clrchar'},function(args, speaker)
speaker:ClearCharacterAppearance()
end)
addcmd('equiptools',{},function(args, speaker)
for i,v in pairs(speaker:FindFirstChildOfClass("Backpack"):GetChildren()) do
if v:IsA("Tool") or v:IsA("HopperBin") then
v.Parent = speaker.Character
end
end
end)
addcmd('unequiptools',{},function(args, speaker)
speaker.Character:FindFirstChildOfClass('Humanoid'):UnequipTools()
end)
local function GetHandleTools(p)
p = p or Players.LocalPlayer
local r = {}
for _, v in ipairs(p.Character and p.Character:GetChildren() or {}) do
if v.IsA(v, "BackpackItem") and v.FindFirstChild(v, "Handle") then
r[#r + 1] = v
end
end
for _, v in ipairs(p.Backpack:GetChildren()) do
if v.IsA(v, "BackpackItem") and v.FindFirstChild(v, "Handle") then
r[#r + 1] = v
end
end
return r
end
addcmd('dupetools', {'clonetools'}, function(args, speaker)
local LOOP_NUM = tonumber(args[1]) or 1
local OrigPos = speaker.Character.Humanoid.RootPart.Position
local Tools, TempPos = {}, Vector3.new(math.random(-2e5, 2e5), 2e5, math.random(-2e5, 2e5))
for i = 1, LOOP_NUM do
local Human = speaker.Character:WaitForChild("Humanoid")
wait(.1, Human.Parent:MoveTo(TempPos))
Human.RootPart.Anchored = speaker:ClearCharacterAppearance(wait(.1)) or true
local t = GetHandleTools(speaker)
while #t > 0 do
for _, v in ipairs(t) do
task.spawn(function()
for _ = 1, 25 do
v.Parent = speaker.Character
v.Handle.Anchored = true
end
for _ = 1, 5 do
v.Parent = workspace
end
table.insert(Tools, v.Handle)
end)
end
t = GetHandleTools(speaker)
end
wait(.1)
speaker.Character = speaker.Character:Destroy()
speaker.CharacterAdded:Wait():WaitForChild("Humanoid").Parent:MoveTo(LOOP_NUM == i and OrigPos or TempPos, wait(.1))
if i == LOOP_NUM or i % 5 == 0 then
local HRP = speaker.Character.Humanoid.RootPart
if type(firetouchinterest) == "function" then
for _, v in ipairs(Tools) do
v.Anchored = not firetouchinterest(v, HRP, 1, firetouchinterest(v, HRP, 0)) and false or false
end
else
for _, v in ipairs(Tools) do
task.spawn(function()
local x = v.CanCollide
v.CanCollide = false
v.Anchored = false
for _ = 1, 10 do
v.CFrame = HRP.CFrame
wait()
end
v.CanCollide = x
end)
end
end
wait(.1)
Tools = {}
end
TempPos = TempPos + Vector3.new(10, math.random(-5, 5), 0)
end
end)
addcmd('touchinterests', {'touchinterest', 'firetouchinterests', 'firetouchinterest'}, function(args, speaker)
local Root = getRoot(speaker.Character) or speaker.Character:FindFirstChildWhichIsA("BasePart")
if not firetouchinterest then
notify("Incompatible Exploit", "Your exploit does not support this command (missing firetouchinterest)")
return
end
local function Touch(x)
x = x.FindFirstAncestorWhichIsA(x, "Part")
if x then
return task.spawn(function()
firetouchinterest(x, Root, 1, wait() and firetouchinterest(x, Root, 0))
end)
end
x.CFrame = Root.CFrame
end
if args[1] then
local name = getstring(1, args):lower()
print(name..' -name')
for _, v in ipairs(workspace:GetDescendants()) do
if v:IsA("TouchTransmitter") and v.Name:lower() == name or v.Parent.Name:lower() == name then
Touch(v)
end
end
else
for _, v in ipairs(workspace:GetDescendants()) do
if v.IsA(v, "TouchTransmitter") then
Touch(v)
end
end
end
end)
-- TouchParts: finds all parts matching a name, teleports player to each one
-- Optional delay arg (seconds), default 0.2s
touchpartsActive = false
addcmd('touchparts', {}, function(args, speaker)
if touchpartsActive then
touchpartsActive = false
notify('TouchParts', 'Stopped')
return
end
local partName = args[1]
if not partName or partName == '' then
notify('TouchParts', 'Usage: touchparts [part name] [delay]')
return
end
local char = speaker.Character
if not char or not getRoot(char) then
notify('TouchParts', 'Character not found')
return
end
local delay = tonumber(args[2]) or 0.2
if delay < 0.05 then delay = 0.05 end
local targetParts = {}
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA('BasePart') and obj.Name:lower():find(partName:lower(), 1, true) then
table.insert(targetParts, obj)
end
end
if #targetParts == 0 then
notify('TouchParts', 'No parts found matching "' .. partName .. '"')
return
end
notify('TouchParts', 'Found ' .. #targetParts .. ' parts (' .. delay .. 's delay) - teleporting...')
touchpartsActive = true
spawn(function()
local idx = 1
while touchpartsActive and idx <= #targetParts do
local part = targetParts[idx]
if part and part.Parent then
pcall(function()
local root = getRoot(char)
if root then
root.CFrame = part.CFrame + Vector3.new(0, 3, 0)
end
end)
end
idx = idx + 1
wait(delay)
end
touchpartsActive = false
pcall(function() notify('TouchParts', 'Done!') end)
end)
end)
addcmd('fullbright',{'fb','fullbrightness'},function(args, speaker)
Lighting.Brightness = 2
Lighting.ClockTime = 14
Lighting.FogEnd = 100000
Lighting.GlobalShadows = false
Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
end)
addcmd('loopfullbright',{'loopfb'},function(args, speaker)
if brightLoop then
brightLoop:Disconnect()
end
local function brightFunc()
Lighting.Brightness = 2
Lighting.ClockTime = 14
Lighting.FogEnd = 100000
Lighting.GlobalShadows = false
Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
end
brightLoop = RunService.RenderStepped:Connect(brightFunc)
end)
addcmd('unloopfullbright',{'unloopfb'},function(args, speaker)
if brightLoop then
brightLoop:Disconnect()
end
end)
addcmd('ambient',{},function(args, speaker)
Lighting.Ambient = Color3.new(args[1],args[2],args[3])
Lighting.OutdoorAmbient = Color3.new(args[1],args[2],args[3])
end)
addcmd('day',{},function(args, speaker)
Lighting.ClockTime = 14
end)
addcmd('night',{},function(args, speaker)
Lighting.ClockTime = 0
end)
addcmd('nofog',{},function(args, speaker)
Lighting.FogEnd = 100000
for i,v in pairs(Lighting:GetDescendants()) do
if v:IsA("Atmosphere") then
v:Destroy()
end
end
end)
addcmd('brightness',{},function(args, speaker)
Lighting.Brightness = args[1]
end)
addcmd('globalshadows',{'gshadows'},function(args, speaker)
Lighting.GlobalShadows = true
end)
addcmd('unglobalshadows',{'nogshadows','ungshadows','noglobalshadows'},function(args, speaker)
Lighting.GlobalShadows = false
end)
origsettings = {abt = Lighting.Ambient, oabt = Lighting.OutdoorAmbient, brt = Lighting.Brightness, time = Lighting.ClockTime, fe = Lighting.FogEnd, fs = Lighting.FogStart, gs = Lighting.GlobalShadows}
addcmd('restorelighting',{'rlighting'},function(args, speaker)
Lighting.Ambient = origsettings.abt
Lighting.OutdoorAmbient = origsettings.oabt
Lighting.Brightness = origsettings.brt
Lighting.ClockTime = origsettings.time
Lighting.FogEnd = origsettings.fe
Lighting.FogStart = origsettings.fs
Lighting.GlobalShadows = origsettings.gs
end)
addcmd('stun',{'platformstand'},function(args, speaker)
speaker.Character:FindFirstChildOfClass('Humanoid').PlatformStand = true
end)
addcmd('unstun',{'nostun','unplatformstand','noplatformstand'},function(args, speaker)
speaker.Character:FindFirstChildOfClass('Humanoid').PlatformStand = false
end)
addcmd('norotate',{'noautorotate'},function(args, speaker)
speaker.Character:FindFirstChildOfClass('Humanoid').AutoRotate = false
end)
addcmd('unnorotate',{'autorotate'},function(args, speaker)
speaker.Character:FindFirstChildOfClass('Humanoid').AutoRotate = true
end)
addcmd('enablestate',{},function(args, speaker)
local x = args[1]
if not tonumber(x) then
local x = Enum.HumanoidStateType[args[1]]
end
speaker.Character:FindFirstChildOfClass("Humanoid"):SetStateEnabled(x, true)
end)
addcmd('disablestate',{},function(args, speaker)
local x = args[1]
if not tonumber(x) then
local x = Enum.HumanoidStateType[args[1]]
end
speaker.Character:FindFirstChildOfClass("Humanoid"):SetStateEnabled(x, false)
end)
addcmd('drophats',{'drophat'},function(args, speaker)
if speaker.Character then
for _,v in pairs(speaker.Character:FindFirstChildOfClass('Humanoid'):GetAccessories()) do
v.Parent = workspace
end
end
end)
addcmd('deletehats',{'nohats','rhats'},function(args, speaker)
for i,v in next, speaker.Character:GetDescendants() do
if v:IsA("Accessory") then
for i,p in next, v:GetDescendants() do
if p:IsA("Weld") then
p:Destroy()
end
end
end
end
end)
addcmd('droptools',{'droptool'},function(args, speaker)
for i,v in pairs(Players.LocalPlayer.Backpack:GetChildren()) do
if v:IsA("Tool") then
v.Parent = Players.LocalPlayer.Character
end
end
wait()
for i,v in pairs(Players.LocalPlayer.Character:GetChildren()) do
if v:IsA("Tool") then
v.Parent = workspace
end
end
end)
addcmd('droppabletools',{},function(args, speaker)
if speaker.Character then
for _,obj in pairs(speaker.Character:GetChildren()) do
if obj:IsA("Tool") then
obj.CanBeDropped = true
end
end
end
if speaker:FindFirstChildOfClass("Backpack") then
for _,obj in pairs(speaker:FindFirstChildOfClass("Backpack"):GetChildren()) do
if obj:IsA("Tool") then
obj.CanBeDropped = true
end
end
end
end)
local currentToolSize = ""
local currentGripPos = ""
addcmd('reach',{},function(args, speaker)
execCmd('unreach')
wait()
for i,v in pairs(speaker.Character:GetDescendants()) do
if v:IsA("Tool") then
if args[1] then
currentToolSize = v.Handle.Size
currentGripPos = v.GripPos
local a = Instance.new("SelectionBox")
a.Name = "SelectionBoxCreated"
a.Parent = v.Handle
a.Adornee = v.Handle
v.Handle.Massless = true
v.Handle.Size = Vector3.new(0.5,0.5,args[1])
v.GripPos = Vector3.new(0,0,0)
speaker.Character:FindFirstChildOfClass('Humanoid'):UnequipTools()
else
currentToolSize = v.Handle.Size
currentGripPos = v.GripPos
local a = Instance.new("SelectionBox")
a.Name = "SelectionBoxCreated"
a.Parent = v.Handle
a.Adornee = v.Handle
v.Handle.Massless = true
v.Handle.Size = Vector3.new(0.5,0.5,60)
v.GripPos = Vector3.new(0,0,0)
speaker.Character:FindFirstChildOfClass('Humanoid'):UnequipTools()
end
end
end
end)
addcmd("boxreach", {}, function(args, speaker)
execCmd("unreach")
wait()
for i, v in pairs(speaker.Character:GetDescendants()) do
if v:IsA("Tool") then
local size = tonumber(args[1]) or 60
currentToolSize = v.Handle.Size
currentGripPos = v.GripPos
local a = Instance.new("SelectionBox")
a.Name = "SelectionBoxCreated"
a.Parent = v.Handle
a.Adornee = v.Handle
v.Handle.Massless = true
v.Handle.Size = Vector3.new(size, size, size)
v.GripPos = Vector3.new(0, 0, 0)
speaker.Character:FindFirstChildOfClass("Humanoid"):UnequipTools()
end
end
end)
addcmd('unreach',{'noreach','unboxreach'},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants()) do
if v:IsA("Tool") then
v.Handle.Size = currentToolSize
v.GripPos = currentGripPos
v.Handle.SelectionBoxCreated:Destroy()
end
end
end)
addcmd('grippos',{},function(args, speaker)
for i,v in pairs(speaker.Character:GetDescendants()) do
if v:IsA("Tool") then
v.Parent = speaker:FindFirstChildOfClass("Backpack")
v.GripPos = Vector3.new(args[1],args[2],args[3])
v.Parent = speaker.Character
end
end
end)
addcmd('usetools', {}, function(args, speaker)
local Backpack = speaker:FindFirstChildOfClass("Backpack")
local amount = tonumber(args[1]) or 1
local delay_ = tonumber(args[2]) or false
for _, v in ipairs(Backpack:GetChildren()) do
v.Parent = speaker.Character
task.spawn(function()
for _ = 1, amount do
v:Activate()
if delay_ then
wait(delay_)
end
end
v.Parent = Backpack
end)
end
end)
addcmd("logs", {}, function(args, speaker)
logsEnabled = true
jLogsEnabled = true
Toggle.Text = "Enabled"
Toggle_2.Text = "Enabled"
logs:TweenPosition(UDim2.new(0, 0, 1, -265), "InOut", "Quart", 0.3, true, nil)
end)
addcmd("chatlogs", {"clogs"}, function(args, speaker)
logsEnabled = true
join.Visible = false
chat.Visible = true
table.remove(shade3, table.find(shade3, selectChat))
table.remove(shade2, table.find(shade2, selectJoin))
table.insert(shade2, selectChat)
table.insert(shade3, selectJoin)
selectJoin.BackgroundColor3 = currentShade3
selectChat.BackgroundColor3 = currentShade2
Toggle.Text = "Enabled"
logs:TweenPosition(UDim2.new(0, 0, 1, -265), "InOut", "Quart", 0.3, true, nil)
end)
addcmd("joinlogs", {"jlogs"}, function(args, speaker)
jLogsEnabled = true
chat.Visible = false
join.Visible = true
table.remove(shade3, table.find(shade3, selectJoin))
table.remove(shade2, table.find(shade2, selectChat))
table.insert(shade2, selectJoin)
table.insert(shade3, selectChat)
selectChat.BackgroundColor3 = currentShade3
selectJoin.BackgroundColor3 = currentShade2
Toggle_2.Text = "Enabled"
logs:TweenPosition(UDim2.new(0, 0, 1, -265), "InOut", "Quart", 0.3, true, nil)
end)
addcmd("chatlogswebhook", {"logswebhook"}, function(args, speaker)
if not httprequest then
return notify("Incompatible Exploit", "Your exploit does not support this command (missing request)")
end
logsWebhook = args[1] or nil
updatesaves()
end)
flinging = false
addcmd('fling',{},function(args, speaker)
if flinging then execCmd('unfling') return end
flinging = true
local me = speaker.Character
local myRoot = getRoot(me)
if not me or not myRoot then flinging = false return end
-- BodyThrust fling (Ultimate FlingGui method)
-- DO NOT set CanCollide=false or Massless=true — collision IS the fling mechanism
local thrust = Instance.new("BodyThrust")
thrust.Name = randomString()
thrust.Force = Vector3.new(9999, 9999, 9999)
thrust.Parent = myRoot
-- Die = auto stop
local function flingDiedF()
execCmd('unfling')
end
flingDied = me:FindFirstChildOfClass('Humanoid').Died:Connect(flingDiedF)
-- Loop: snap onto nearest player, thrust toward them
repeat
RunService.Heartbeat:Wait()
local nearest = nil
local nearestDist = math.huge
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker and p.Character then
local tRoot = getRoot(p.Character)
if tRoot and tRoot.Parent then
local d = (myRoot.Position - tRoot.Position).Magnitude
if d < nearestDist then
nearestDist = d
nearest = tRoot
end
end
end
end
if nearest then
myRoot.CFrame = nearest.CFrame
thrust.Location = nearest.Position
end
until flinging == false
end)
addcmd('unfling',{'nofling'},function(args, speaker)
if flingDied then
flingDied:Disconnect()
end
flinging = false
wait(.1)
local speakerChar = speaker.Character
if not speakerChar then return end
local speakerRoot = getRoot(speakerChar)
if not speakerRoot then return end
-- Destroy ALL thrusters
for i,v in pairs(speakerRoot:GetChildren()) do
if v.ClassName == 'BodyThrust' or v.ClassName == 'BodyAngularVelocity' then
v:Destroy()
end
end
-- Reset velocity
speakerRoot.Velocity = Vector3.new(0, 0, 0)
speakerRoot.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
speakerRoot.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
end)
addcmd('togglefling',{},function(args, speaker)
if flinging then
execCmd('unfling')
else
execCmd('fling')
end
end)
addcmd("flyfling", {}, function(args, speaker)
execCmd("unvehiclefly\\unwalkfling")
task.wait()
vehicleflyspeed = tonumber(args[1]) or vehicleflyspeed
execCmd("vehiclefly\\walkfling")
end)
addcmd("unflyfling", {}, function(args, speaker)
execCmd("unvehiclefly\\unwalkfling\\breakvelocity")
end)
addcmd("toggleflyfling", {}, function(args, speaker)
execCmd(flinging and "unflyfling" or "flyfling")
end)
walkflinging = false
addcmd("walkfling", {}, function(args, speaker)
execCmd("unwalkfling")
local humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Died:Connect(function()
execCmd("unwalkfling")
end)
end
execCmd("noclip nonotify")
walkflinging = true
repeat RunService.Heartbeat:Wait()
local character = speaker.Character
local root = getRoot(character)
local vel, movel = nil, 0.1
while not (character and character.Parent and root and root.Parent) do
RunService.Heartbeat:Wait()
character = speaker.Character
root = getRoot(character)
end
vel = root.Velocity
root.Velocity = vel * 10000 + Vector3.new(0, 10000, 0)
RunService.RenderStepped:Wait()
if character and character.Parent and root and root.Parent then
root.Velocity = vel
end
RunService.Stepped:Wait()
if character and character.Parent and root and root.Parent then
root.Velocity = vel + Vector3.new(0, movel, 0)
movel = movel * -1
end
until walkflinging == false
end)
addcmd("unwalkfling", {"nowalkfling"}, function(args, speaker)
walkflinging = false
execCmd("unnoclip nonotify")
end)
addcmd("togglewalkfling", {}, function(args, speaker)
execCmd(walkflinging and "unwalkfling" or "walkfling")
end)
addcmd('invisfling',{},function(args, speaker)
local ch = speaker.Character
ch:FindFirstChildWhichIsA("Humanoid"):SetStateEnabled(Enum.HumanoidStateType.Dead, false)
local prt=Instance.new("Model")
prt.Parent = speaker.Character
local z1 = Instance.new("Part")
z1.Name="Torso"
z1.CanCollide = false
z1.Anchored = true
local z2 = Instance.new("Part")
z2.Name="Head"
z2.Parent = prt
z2.Anchored = true
z2.CanCollide = false
local z3 =Instance.new("Humanoid")
z3.Name="Humanoid"
z3.Parent = prt
z1.Position = Vector3.new(0,9999,0)
speaker.Character=prt
wait(3)
speaker.Character=ch
wait(3)
local Hum = Instance.new("Humanoid")
z2:Clone()
Hum.Parent = speaker.Character
local root = getRoot(speaker.Character)
for i,v in pairs(speaker.Character:GetChildren()) do
if v ~= root and v.Name ~= "Humanoid" then
v:Destroy()
end
end
root.Transparency = 0
root.Color = Color3.new(1, 1, 1)
local invisflingStepped
invisflingStepped = RunService.Stepped:Connect(function()
if speaker.Character and getRoot(speaker.Character) then
getRoot(speaker.Character).CanCollide = false
else
invisflingStepped:Disconnect()
end
end)
sFLY()
workspace.CurrentCamera.CameraSubject = root
local bambam = Instance.new("BodyThrust")
bambam.Parent = getRoot(speaker.Character)
bambam.Force = Vector3.new(99999,99999*10,99999)
bambam.Location = getRoot(speaker.Character).Position
end)
addcmd("antifling", {}, function(args, speaker)
if antifling then
antifling:Disconnect()
antifling = nil
end
antifling = RunService.Stepped:Connect(function()
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and player.Character then
for _, v in pairs(player.Character:GetDescendants()) do
if v:IsA("BasePart") then
v.CanCollide = false
end
end
end
end
end)
end)
addcmd("unantifling", {}, function(args, speaker)
if antifling then
antifling:Disconnect()
antifling = nil
end
end)
addcmd("toggleantifling", {}, function(args, speaker)
execCmd(antifling and "unantifling" or "antifling")
end)
function attach(speaker,target)
if tools(speaker) then
local char = speaker.Character
local tchar = target.Character
local hum = speaker.Character:FindFirstChildOfClass("Humanoid")
local hrp = getRoot(speaker.Character)
local hrp2 = getRoot(target.Character)
hum.Name = "1"
local newHum = hum:Clone()
newHum.Parent = char
newHum.Name = "Humanoid"
wait()
hum:Destroy()
workspace.CurrentCamera.CameraSubject = char
newHum.DisplayDistanceType = "None"
local tool = speaker:FindFirstChildOfClass("Backpack"):FindFirstChildOfClass("Tool") or speaker.Character:FindFirstChildOfClass("Tool")
tool.Parent = char
hrp.CFrame = hrp2.CFrame * CFrame.new(0, 0, 0) * CFrame.new(math.random(-100, 100)/200,math.random(-100, 100)/200,math.random(-100, 100)/200)
local n = 0
repeat
wait(.1)
n = n + 1
hrp.CFrame = hrp2.CFrame
until (tool.Parent ~= char or not hrp or not hrp2 or not hrp.Parent or not hrp2.Parent or n > 250) and n > 2
else
notify('Tool Required','You need to have an item in your inventory to use this command')
end
end
function kill(speaker,target,fast)
if tools(speaker) then
if target ~= nil then
local NormPos = getRoot(speaker.Character).CFrame
if not fast then
refresh(speaker)
wait()
repeat wait() until speaker.Character ~= nil and getRoot(speaker.Character)
wait(0.3)
end
local hrp = getRoot(speaker.Character)
attach(speaker,target)
repeat
wait()
hrp.CFrame = CFrame.new(999999, workspace.FallenPartsDestroyHeight + 5,999999)
until not getRoot(target.Character) or not getRoot(speaker.Character)
local char = speaker.CharacterAdded:Wait()
local humanoid = char:FindFirstChildOfClass("Humanoid") or char.ChildAdded:Wait()
while not humanoid:IsA("Humanoid") do
humanoid = char:FindFirstChildOfClass("Humanoid") or char.ChildAdded:Wait()
end
humanoid.RootPart.CFrame = NormPos
end
else
notify('Tool Required','You need to have an item in your inventory to use this command')
end
end
addcmd("handlekill", {"hkill"}, function(args, speaker)
if not firetouchinterest then
return notify("Incompatible Exploit", "Your exploit does not support this command (missing firetouchinterest)")
end
if not speaker.Character then return end
local tool = speaker.Character:FindFirstChildWhichIsA("Tool")
local handle = tool and tool:FindFirstChild("Handle")
if not handle then
return notify("Handle Kill", "You need to hold a \"Tool\" that does damage on touch. For example a common Sword tool.")
end
local range = tonumber(args[2]) or math.huge
if range ~= math.huge then notify("Handle Kill", ("Started!\nRadius: %s"):format(tostring(range):upper())) end
while task.wait() and speaker.Character and tool.Parent and tool.Parent == speaker.Character do
for _, plr in next, getPlayer(args[1], speaker) do
plr = Players[plr]
if plr ~= speaker and plr.Character then
local hum = plr.Character:FindFirstChildWhichIsA("Humanoid")
local root = hum and getRoot(plr.Character)
if root and hum.Health > 0 and hum:GetState() ~= Enum.HumanoidStateType.Dead and speaker:DistanceFromCharacter(root.Position) <= range then
firetouchinterest(handle, root, 1)
firetouchinterest(handle, root, 0)
end
end
end
end
notify("Handle Kill", "Stopped!")
end)
tpwalkStack = 0
addcmd("teleportwalk", {"tpwalk"}, function(args, speaker)
pcall(function() tpwalking:Disconnect() end)
local character = speaker.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
local speed = (args[1] and isNumber(args[1])) and tonumber(args[1]) or 1
if parseBoolean(args[2]) then
tpwalkStack = tpwalkStack + speed
end
tpwalking = RunService.Heartbeat:Connect(function(delta)
if not (character and humanoid and humanoid.Parent) then
tpwalking:Disconnect()
return
end
if humanoid.MoveDirection.Magnitude > 0 then
character:TranslateBy(humanoid.MoveDirection * (speed + tpwalkStack) * delta * 10)
end
end)
end)
addcmd("unteleportwalk", {"untpwalk"}, function(args, speaker)
tpwalkStack = 0
tpwalking:Disconnect()
end)
function bring(speaker,target,fast)
if tools(speaker) then
if target ~= nil then
local NormPos = getRoot(speaker.Character).CFrame
if not fast then
refresh(speaker)
wait()
repeat wait() until speaker.Character ~= nil and getRoot(speaker.Character)
wait(0.3)
end
local hrp = getRoot(speaker.Character)
attach(speaker,target)
repeat
wait()
hrp.CFrame = NormPos
until not getRoot(target.Character) or not getRoot(speaker.Character)
local char = speaker.CharacterAdded:Wait()
local humanoid = char:FindFirstChildOfClass("Humanoid") or char.ChildAdded:Wait()
while not humanoid:IsA("Humanoid") do
humanoid = char:FindFirstChildOfClass("Humanoid") or char.ChildAdded:Wait()
end
humanoid.RootPart.CFrame = NormPos
end
else
notify('Tool Required','You need to have an item in your inventory to use this command')
end
end
function teleport(speaker,target,target2,fast)
if tools(speaker) then
if target ~= nil then
local NormPos = getRoot(speaker.Character).CFrame
if not fast then
refresh(speaker)
wait()
repeat wait() until speaker.Character ~= nil and getRoot(speaker.Character)
wait(0.3)
end
local hrp = getRoot(speaker.Character)
local hrp2 = getRoot(target2.Character)
attach(speaker,target)
repeat
wait()
hrp.CFrame = hrp2.CFrame
until not getRoot(target.Character) or not getRoot(speaker.Character)
wait(1)
local char = speaker.CharacterAdded:Wait()
local humanoid = char:FindFirstChildOfClass("Humanoid") or char.ChildAdded:Wait()
while not humanoid:IsA("Humanoid") do
humanoid = char:FindFirstChildOfClass("Humanoid") or char.ChildAdded:Wait()
end
humanoid.RootPart.CFrame = NormPos
end
else
notify('Tool Required','You need to have an item in your inventory to use this command')
end
end
addcmd('spin',{},function(args, speaker)
local spinSpeed = 20
if args[1] and isNumber(args[1]) then
spinSpeed = args[1]
end
for i,v in pairs(getRoot(speaker.Character):GetChildren()) do
if v.Name == "Spinning" then
v:Destroy()
end
end
local Spin = Instance.new("BodyAngularVelocity")
Spin.Name = "Spinning"
Spin.Parent = getRoot(speaker.Character)
Spin.MaxTorque = Vector3.new(0, math.huge, 0)
Spin.AngularVelocity = Vector3.new(0,spinSpeed,0)
end)
addcmd('unspin',{},function(args, speaker)
for i,v in pairs(getRoot(speaker.Character):GetChildren()) do
if v.Name == "Spinning" then
v:Destroy()
end
end
end)
xrayEnabled = false
function xray()
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("BasePart") and not v.Parent:FindFirstChildWhichIsA("Humanoid") and not v.Parent.Parent:FindFirstChildWhichIsA("Humanoid") then
v.LocalTransparencyModifier = xrayEnabled and 0.5 or 0
end
end
end
addcmd("xray", {}, function(args, speaker)
xrayEnabled = true
xray()
end)
addcmd("unxray", {"noxray"}, function(args, speaker)
xrayEnabled = false
xray()
end)
addcmd("togglexray", {}, function(args, speaker)
xrayEnabled = not xrayEnabled
xray()
end)
addcmd("loopxray", {}, function(args, speaker)
pcall(function() xrayLoop:Disconnect() end)
xrayLoop = RunService.RenderStepped:Connect(function()
xrayEnabled = true
xray()
end)
end)
addcmd("unloopxray", {}, function(args, speaker)
pcall(function() xrayLoop:Disconnect() end)
xrayEnabled = false
xray()
end)
local walltpTouch = nil
addcmd('walltp',{},function(args, speaker)
local torso
if r15(speaker) then
torso = speaker.Character.UpperTorso
else
torso = speaker.Character.Torso
end
local function touchedFunc(hit)
local Root = getRoot(speaker.Character)
if hit:IsA("BasePart") and hit.Position.Y > Root.Position.Y - speaker.Character:FindFirstChildOfClass('Humanoid').HipHeight then
local hitP = getRoot(hit.Parent)
if hitP ~= nil then
Root.CFrame = hit.CFrame * CFrame.new(Root.CFrame.lookVector.X,hitP.Size.Z/2 + speaker.Character:FindFirstChildOfClass('Humanoid').HipHeight,Root.CFrame.lookVector.Z)
elseif hitP == nil then
Root.CFrame = hit.CFrame * CFrame.new(Root.CFrame.lookVector.X,hit.Size.Y/2 + speaker.Character:FindFirstChildOfClass('Humanoid').HipHeight,Root.CFrame.lookVector.Z)
end
end
end
walltpTouch = torso.Touched:Connect(touchedFunc)
end)
addcmd('unwalltp',{'nowalltp'},function(args, speaker)
if walltpTouch then
walltpTouch:Disconnect()
end
end)
autoclicking = false
addcmd('autoclick',{},function(args, speaker)
if mouse1press and mouse1release then
execCmd('unautoclick')
wait()
local clickDelay = 0.1
local releaseDelay = 0.1
if args[1] and isNumber(args[1]) then clickDelay = args[1] end
if args[2] and isNumber(args[2]) then releaseDelay = args[2] end
autoclicking = true
cancelAutoClick = UserInputService.InputBegan:Connect(function(input, gameProcessedEvent)
if not gameProcessedEvent then
if (input.KeyCode == Enum.KeyCode.Backspace and UserInputService:IsKeyDown(Enum.KeyCode.Equals)) or (input.KeyCode == Enum.KeyCode.Equals and UserInputService:IsKeyDown(Enum.KeyCode.Backspace)) then
autoclicking = false
cancelAutoClick:Disconnect()
end
end
end)
notify('Auto Clicker',"Press [backspace] and [=] at the same time to stop")
repeat wait(clickDelay)
mouse1press()
wait(releaseDelay)
mouse1release()
until autoclicking == false
else
notify('Auto Clicker',"Your exploit doesn't have the ability to use the autoclick")
end
end)
addcmd('unautoclick',{'noautoclick'},function(args, speaker)
autoclicking = false
if cancelAutoClick then cancelAutoClick:Disconnect() end
end)
addcmd('mousesensitivity',{'ms'},function(args, speaker)
UserInputService.MouseDeltaSensitivity = args[1]
end)
local nameBox = nil
local nbSelection = nil
addcmd('hovername',{},function(args, speaker)
execCmd('unhovername')
wait()
nameBox = Instance.new("TextLabel")
nameBox.Name = randomString()
nameBox.Parent = ScaledHolder
nameBox.BackgroundTransparency = 1
nameBox.Size = UDim2.new(0,200,0,30)
nameBox.Font = Enum.Font.Code
nameBox.TextSize = 16
nameBox.Text = ""
nameBox.TextColor3 = Color3.new(1, 1, 1)
nameBox.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
nameBox.TextStrokeTransparency = 0
nameBox.TextXAlignment = Enum.TextXAlignment.Left
nameBox.ZIndex = 10
nbSelection = Instance.new('SelectionBox')
nbSelection.Name = randomString()
nbSelection.LineThickness = 0.03
nbSelection.Color3 = Color3.new(1, 1, 1)
local function updateNameBox()
local t
local target = IYMouse.Target
if target then
local humanoid = target.Parent:FindFirstChildOfClass("Humanoid") or target.Parent.Parent:FindFirstChildOfClass("Humanoid")
if humanoid then
t = humanoid.Parent
end
end
if t ~= nil then
local x = IYMouse.X
local y = IYMouse.Y
local xP
local yP
if IYMouse.X > 200 then
xP = x - 205
nameBox.TextXAlignment = Enum.TextXAlignment.Right
else
xP = x + 25
nameBox.TextXAlignment = Enum.TextXAlignment.Left
end
nameBox.Position = UDim2.new(0, xP, 0, y)
nameBox.Text = t.Name
nameBox.Visible = true
nbSelection.Parent = t
nbSelection.Adornee = t
else
nameBox.Visible = false
nbSelection.Parent = nil
nbSelection.Adornee = nil
end
end
nbUpdateFunc = IYMouse.Move:Connect(updateNameBox)
end)
addcmd('unhovername',{'nohovername'},function(args, speaker)
if nbUpdateFunc then
nbUpdateFunc:Disconnect()
nameBox:Destroy()
nbSelection:Destroy()
end
end)
addcmd('headsize',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
if Players[v] ~= speaker and Players[v].Character:FindFirstChild('Head') then
local sizeArg = tonumber(args[2])
local Size = Vector3.new(sizeArg,sizeArg,sizeArg)
local Head = Players[v].Character:FindFirstChild('Head')
if Head:IsA("BasePart") then
Head.CanCollide = false
if not args[2] or sizeArg == 1 then
Head.Size = Vector3.new(2,1,1)
else
Head.Size = Size
end
end
end
end
end)
addcmd('hitbox',{},function(args, speaker)
local players = getPlayer(args[1], speaker)
local transparency = args[3] and tonumber(args[3]) or 0.4
for i,v in pairs(players) do
if Players[v] ~= speaker and getRoot(Players[v].Character) then
local sizeArg = tonumber(args[2])
local Size = Vector3.new(sizeArg,sizeArg,sizeArg)
local Root = getRoot(Players[v].Character)
if Root:IsA("BasePart") then
Root.CanCollide = false
if not args[2] or sizeArg == 1 then
Root.Size = Vector3.new(2,1,1)
Root.Transparency = transparency
else
Root.Size = Size
Root.Transparency = transparency
end
end
end
end
end)
addcmd('stareat',{'stare'},function(args, speaker)
local players = getPlayer(args[1], speaker)
for i,v in pairs(players) do
if stareLoop then
stareLoop:Disconnect()
end
if not getRoot(Players.LocalPlayer.Character) and getRoot(Players[v].Character) then return end
local function stareFunc()
if Players.LocalPlayer.Character.PrimaryPart and Players:FindFirstChild(v) and Players[v].Character ~= nil and getRoot(Players[v].Character) then
local chrPos=Players.LocalPlayer.Character.PrimaryPart.Position
local tPos=getRoot(Players[v].Character).Position
local modTPos=Vector3.new(tPos.X,chrPos.Y,tPos.Z)
local newCF=CFrame.new(chrPos,modTPos)
Players.LocalPlayer.Character:SetPrimaryPartCFrame(newCF)
elseif not Players:FindFirstChild(v) then
stareLoop:Disconnect()
end
end
stareLoop = RunService.RenderStepped:Connect(stareFunc)
end
end)
addcmd('unstareat',{'unstare','nostare','nostareat'},function(args, speaker)
if stareLoop then
stareLoop:Disconnect()
end
end)
RolewatchData = {Group = 0, Role = "", Leave = false}
RolewatchConnection = Players.PlayerAdded:Connect(function(player)
if RolewatchData.Group == 0 then return end
if player:IsInGroup(RolewatchData.Group) then
if tostring(player:GetRoleInGroup(RolewatchData.Group)):lower() == RolewatchData.Role:lower() then
if RolewatchData.Leave == true then
Players.LocalPlayer:Kick("\n\nRolewatch\nPlayer \"" .. tostring(player.Name) .. "\" has joined with the Role \"" .. RolewatchData.Role .. "\"\n")
else
notify("Rolewatch", "Player \"" .. tostring(player.Name) .. "\" has joined with the Role \"" .. RolewatchData.Role .. "\"")
end
end
end
end)
addcmd("rolewatch", {}, function(args, speaker)
local groupId = tonumber(args[1] or 0)
local roleName = args[2] and tostring(getstring(2, args))
if groupId and roleName then
RolewatchData.Group = groupId
RolewatchData.Role = roleName
notify("Rolewatch", "Watching Group ID \"" .. tostring(groupId) .. "\" for Role \"" .. roleName .. "\"")
end
end)
addcmd("rolewatchstop", {}, function(args, speaker)
RolewatchData.Group = 0
RolewatchData.Role = ""
RolewatchData.Leave = false
notify("Rolewatch", "Disabled")
end)
addcmd("rolewatchleave", {"unrolewatch"}, function(args, speaker)
RolewatchData.Leave = not RolewatchData.Leave
notify("Rolewatch", RolewatchData.Leave and "Leave has been Enabled" or "Leave has been Disabled")
end)
staffRoles = {"mod", "admin", "staff", "dev", "founder", "owner", "supervis", "manager", "management", "executive", "president", "chairman", "chairwoman", "chairperson", "director"}
getStaffRole = function(player)
local playerRole = player:GetRoleInGroup(game.CreatorId)
local result = {Role = playerRole, Staff = false}
if player:IsInGroup(1200769) then
result.Role = "Roblox Employee"
result.Staff = true
end
for _, role in pairs(staffRoles) do
if string.find(string.lower(playerRole), role) then
result.Staff = true
end
end
return result
end
addcmd("staffwatch", {}, function(args, speaker)
if staffwatchjoin then
staffwatchjoin:Disconnect()
end
if game.CreatorType == Enum.CreatorType.Group then
local found = {}
staffwatchjoin = Players.PlayerAdded:Connect(function(player)
local result = getStaffRole(player)
if result.Staff then
notify("Staffwatch", formatUsername(player) .. " is a " .. result.Role)
end
end)
for _, player in pairs(Players:GetPlayers()) do
local result = getStaffRole(player)
if result.Staff then
table.insert(found, formatUsername(player) .. " is a " .. result.Role)
end
end
if #found > 0 then
notify("Staffwatch", table.concat(found, ",\n"))
else
notify("Staffwatch", "Enabled")
end
else
notify("Staffwatch", "Game is not owned by a Group")
end
end)
addcmd("unstaffwatch", {}, function(args, speaker)
if staffwatchjoin then
staffwatchjoin:Disconnect()
end
notify("Staffwatch", "Disabled")
end)
local function playerGroups()
local players = Players:GetPlayers()
local graph = {}
local seen = {}
local groups = {}
for _, p in ipairs(players) do
graph[p] = {}
end
for i = 1, #players do
for j = i + 1, #players do
local p1 = players[i]
local p2 = players[j]
local success, result = pcall(function()
return p1:IsFriendsWithAsync(p2.UserId)
end)
if success and result then
table.insert(graph[p1], p2)
table.insert(graph[p2], p1)
end
end
end
local function dfs(player, group)
seen[player] = true
table.insert(group, player)
for _, possible in ipairs(graph[player]) do
if not seen[possible] then
dfs(possible, group)
end
end
end
for _, p in ipairs(players) do
if not seen[p] then
local group = {}
dfs(p, group)
table.insert(groups, group)
end
end
return groups
end
addcmd("findfriendgroups", {}, function(args, speaker)
notify("Checking Players", "This might take a while (slow function)")
local groups = playerGroups()
local playerList = StarterGui:GetCoreGuiEnabled(Enum.CoreGuiType.PlayerList)
local result = ""
local index = 1
local found = 0
for _, group in ipairs(groups) do
if #group > 1 then
local names = {}
for _, player in ipairs(group) do
table.insert(names, playerList and player.DisplayName or player.Name)
end
result = result .. index .. ". " .. table.concat(names, ", ") .. "\n"
index = index + 1
found = found + 1
end
end
createPopup("Friend Groups", found == 0 and "None" or result)
end)
addcmd('removeterrain',{'rterrain','noterrain'},function(args, speaker)
workspace:FindFirstChildOfClass('Terrain'):Clear()
end)
addcmd('clearnilinstances',{'nonilinstances','cni'},function(args, speaker)
if getnilinstances then
for i,v in pairs(getnilinstances()) do
v:Destroy()
end
else
notify('Incompatible Exploit','Your exploit does not support this command (missing getnilinstances)')
end
end)
addcmd('destroyheight',{'dh'},function(args, speaker)
local dh = args[1] or -500
if isNumber(dh) then
workspace.FallenPartsDestroyHeight = dh
end
end)
OrgDestroyHeight = workspace.FallenPartsDestroyHeight
addcmd("antivoid", {}, function(args, speaker)
execCmd("unantivoid nonotify")
task.wait()
antivoidloop = RunService.Stepped:Connect(function()
local root = getRoot(speaker.Character)
if root and root.Position.Y <= OrgDestroyHeight + 25 then
root.Velocity = root.Velocity + Vector3.new(0, 250, 0)
end
end)
if args[1] ~= "nonotify" then notify("antivoid", "Enabled") end
end)
addcmd("unantivoid", {"noantivoid"}, function(args, speaker)
pcall(function() antivoidloop:Disconnect() end)
antivoidloop = nil
if args[1] ~= "nonotify" then notify("antivoid", "Disabled") end
end)
antivoidWasEnabled = false
addcmd("fakeout", {}, function(args, speaker)
local root = getRoot(speaker.Character)
local oldpos = root.CFrame
if antivoidloop then
execCmd("unantivoid nonotify")
antivoidWasEnabled = true
end
workspace.FallenPartsDestroyHeight = 0/1/0
root.CFrame = CFrame.new(Vector3.new(0, OrgDestroyHeight - 25, 0))
task.wait(1)
root.CFrame = oldpos
workspace.FallenPartsDestroyHeight = OrgDestroyHeight
if antivoidWasEnabled then
execCmd("antivoid nonotify")
antivoidWasEnabled = false
end
end)
addcmd("trip", {}, function(args, speaker)
local humanoid = speaker.Character and speaker.Character:FindFirstChildWhichIsA("Humanoid")
local root = speaker.Character and getRoot(speaker.Character)
if humanoid and root then
humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
root.Velocity = root.CFrame.LookVector * 30
end
end)
addcmd("removeads", {"adblock"}, function(args, speaker)
while wait() do
pcall(function()
for i, v in pairs(workspace:GetDescendants()) do
if v:IsA("PackageLink") then
if v.Parent:FindFirstChild("ADpart") then
v.Parent:Destroy()
end
if v.Parent:FindFirstChild("AdGuiAdornee") then
v.Parent.Parent:Destroy()
end
end
end
end)
end
end)
addcmd("scare", {"spook"}, function(args, speaker)
local players = getPlayer(args[1], speaker)
local oldpos = nil
for _, v in pairs(players) do
local root = speaker.Character and getRoot(speaker.Character)
local target = Players[v]
local targetRoot = target and target.Character and getRoot(target.Character)
if root and targetRoot and target ~= speaker then
oldpos = root.CFrame
root.CFrame = targetRoot.CFrame + targetRoot.CFrame.lookVector * 2
root.CFrame = CFrame.new(root.Position, targetRoot.Position)
task.wait(0.5)
root.CFrame = oldpos
end
end
end)
addcmd("alignmentkeys", {}, function(args, speaker)
alignmentKeys = UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.Comma then workspace.CurrentCamera:PanUnits(-1) end
if input.KeyCode == Enum.KeyCode.Period then workspace.CurrentCamera:PanUnits(1) end
end)
alignmentKeysEmotes = StarterGui:GetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu)
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu, false)
end)
addcmd("unalignmentkeys", {"noalignmentkeys"}, function(args, speaker)
if type(alignmentKeysEmotes) == "boolean" then
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu, alignmentKeysEmotes)
end
alignmentKeys:Disconnect()
end)
addcmd("ctrllock", {}, function(args, speaker)
local mouseLockController = speaker.PlayerScripts:WaitForChild("PlayerModule"):WaitForChild("CameraModule"):WaitForChild("MouseLockController")
local boundKeys = mouseLockController:FindFirstChild("BoundKeys")
if boundKeys then
boundKeys.Value = "LeftControl"
else
boundKeys = Instance.new("StringValue")
boundKeys.Name = "BoundKeys"
boundKeys.Value = "LeftControl"
boundKeys.Parent = mouseLockController
end
end)
addcmd("unctrllock", {}, function(args, speaker)
local mouseLockController = speaker.PlayerScripts:WaitForChild("PlayerModule"):WaitForChild("CameraModule"):WaitForChild("MouseLockController")
local boundKeys = mouseLockController:FindFirstChild("BoundKeys")
if boundKeys then
boundKeys.Value = "LeftShift"
else
boundKeys = Instance.new("StringValue")
boundKeys.Name = "BoundKeys"
boundKeys.Value = "LeftShift"
boundKeys.Parent = mouseLockController
end
end)
addcmd("listento", {}, function(args, speaker)
execCmd("unlistento")
if not args[1] then return end
local player = Players:FindFirstChild(getPlayer(args[1], speaker)[1])
local root = player and player.Character and getRoot(player.Character)
if root then
SoundService:SetListener(Enum.ListenerType.ObjectPosition, root)
listentoChar = player.CharacterAdded:Connect(function()
repeat task.wait() until Players[player.Name].Character ~= nil and getRoot(Players[player.Name].Character)
SoundService:SetListener(Enum.ListenerType.ObjectPosition, getRoot(Players[player.Name].Character))
end)
end
end)
addcmd("unlistento", {}, function(args, speaker)
SoundService:SetListener(Enum.ListenerType.Camera)
listentoChar:Disconnect()
end)
addcmd("jerk", {}, function(args, speaker)
local humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
local backpack = speaker:FindFirstChildWhichIsA("Backpack")
if not humanoid or not backpack then return end
local tool = Instance.new("Tool")
tool.Name = "Jerk Off"
tool.ToolTip = "in the stripped club. straight up \"jorking it\" . and by \"it\" , haha, well. let's justr say. My peanits."
tool.RequiresHandle = false
tool.Parent = backpack
local jorkin = false
local track = nil
local function stopTomfoolery()
jorkin = false
if track then
track:Stop()
track = nil
end
end
tool.Equipped:Connect(function() jorkin = true end)
tool.Unequipped:Connect(stopTomfoolery)
humanoid.Died:Connect(stopTomfoolery)
while task.wait() do
if jorkin then
local isR15 = r15(speaker)
if not track then
local anim = Instance.new("Animation")
anim.AnimationId = not isR15 and "rbxassetid://72042024" or "rbxassetid://698251653"
track = humanoid:LoadAnimation(anim)
end
track:Play()
track:AdjustSpeed(isR15 and 0.7 or 0.65)
track.TimePosition = 0.6
task.wait(0.1)
while track and track.TimePosition < (not isR15 and 0.65 or 0.7) do task.wait(0.1) end
if track then
track:Stop()
track = nil
end
end
end
end)
addcmd("guiscale", {}, function(args, speaker)
if args[1] and isNumber(args[1]) then
local scale = tonumber(args[1])
if scale % 1 == 0 then scale = scale / 100 end
-- me when i divide and it explodes
if scale == 0.01 then scale = 1 end
if scale == 0.02 then scale = 2 end
if scale >= 0.4 and scale <= 2 then
guiScale = scale
end
else
guiScale = defaultGuiScale
end
Scale.Scale = math.max(Holder.AbsoluteSize.X / 1920, guiScale)
updatesaves()
end)
addcmd("muteallvoices", {"muteallvcs"}, function(args, speaker)
Services.VoiceChatInternal:SubscribePauseAll(true)
end)
addcmd("unmuteallvoices", {"unmuteallvcs"}, function(args, speaker)
Services.VoiceChatInternal:SubscribePauseAll(false)
end)
addcmd("mutevc", {}, function(args, speaker)
for _, plr in getPlayer(args[1], speaker) do
if Players[plr] ~= speaker then
Services.VoiceChatInternal:SubscribePause(Players[plr].UserId, true)
end
end
end)
addcmd("unmutevc", {}, function(args, speaker)
for _, plr in getPlayer(args[1], speaker) do
if Players[plr] ~= speaker then
Services.VoiceChatInternal:SubscribePause(Players[plr].UserId, false)
end
end
end)
addcmd("phonebook", {"call"}, function(args, speaker)
local success, canInvite = pcall(function()
return SocialService:CanSendCallInviteAsync(speaker)
end)
if success and canInvite then
SocialService:PromptPhoneBook(speaker, "")
else
notify("Phonebook", "It seems you're not able to call anyone. Sorry!")
end
end)
local freezingua = nil
frozenParts = {}
addcmd('freezeunanchored',{'freezeua'},function(args, speaker)
local badnames = {
"Head",
"UpperTorso",
"LowerTorso",
"RightUpperArm",
"LeftUpperArm",
"RightLowerArm",
"LeftLowerArm",
"RightHand",
"LeftHand",
"RightUpperLeg",
"LeftUpperLeg",
"RightLowerLeg",
"LeftLowerLeg",
"RightFoot",
"LeftFoot",
"Torso",
"Right Arm",
"Left Arm",
"Right Leg",
"Left Leg",
"HumanoidRootPart"
}
local function FREEZENOOB(v)
if v:IsA("BasePart" or "UnionOperation") and v.Anchored == false then
local BADD = false
for i = 1,#badnames do
if v.Name == badnames[i] then
BADD = true
end
end
if speaker.Character and v:IsDescendantOf(speaker.Character) then
BADD = true
end
if BADD == false then
for i,c in pairs(v:GetChildren()) do
if c:IsA("BodyPosition") or c:IsA("BodyGyro") then
c:Destroy()
end
end
local bodypos = Instance.new("BodyPosition")
bodypos.Parent = v
bodypos.Position = v.Position
bodypos.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
local bodygyro = Instance.new("BodyGyro")
bodygyro.Parent = v
bodygyro.CFrame = v.CFrame
bodygyro.MaxTorque = Vector3.new(math.huge,math.huge,math.huge)
if not table.find(frozenParts,v) then
table.insert(frozenParts,v)
end
end
end
end
for i,v in pairs(workspace:GetDescendants()) do
FREEZENOOB(v)
end
freezingua = workspace.DescendantAdded:Connect(FREEZENOOB)
end)
addcmd('thawunanchored',{'thawua','unfreezeunanchored','unfreezeua'},function(args, speaker)
if freezingua then
freezingua:Disconnect()
end
for i,v in pairs(frozenParts) do
for i,c in pairs(v:GetChildren()) do
if c:IsA("BodyPosition") or c:IsA("BodyGyro") then
c:Destroy()
end
end
end
frozenParts = {}
end)
addcmd('tpunanchored',{'tpua'},function(args, speaker)
local players = getPlayer(args[1], speaker)
if not players or #players == 0 then
notify('TPUA', 'No player found')
return
end
local tpForces = {}
local skipNames = {"Torso", "Head", "Right Arm", "Left Arm", "Right Leg", "Left Leg", "HumanoidRootPart"}
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA("BasePart") and not part.Anchored then
-- Skip parts belonging to any player character
local skipPart = false
if speaker.Character and speaker.Character:IsAncestorOf(part) then
skipPart = true
end
if not skipPart then
for _, p in pairs(Players:GetPlayers()) do
if p.Character and p.Character:IsAncestorOf(part) then
skipPart = true
break
end
end
end
-- Also skip parts with character body part names
if not skipPart then
for _, n in pairs(skipNames) do
if part.Name == n then
skipPart = true
break
end
end
end
if not skipPart then
-- Remove existing BodyPosition/BodyGyro
for _, c in pairs(part:GetChildren()) do
if c:IsA("BodyPosition") or c:IsA("BodyGyro") then
c:Destroy()
end
end
local force = Instance.new("BodyPosition")
force.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
force.Parent = part
table.insert(tpForces, {force = force, part = part})
end
end
end
-- Set target positions (teleport all parts to each target player)
for _, p in pairs(players) do
if p.Character and p.Character:FindFirstChild('Head') then
local targetPos = p.Character.Head.Position
for _, entry in pairs(tpForces) do
entry.force.Position = targetPos
end
end
end
notify('TPUA', 'Teleported ' .. #tpForces .. ' parts')
end)
end -- ROTATESPEED section
-- ======================== ARCO YIELD CUSTOMIZATIONS ========================
-- Theme: Black backdrop, White text, Blue glow
-- Popup GUI, Trail system, Aura system, Effects, HUD, Cosmetics, Animations
-- ======================== POPUP GUI SYSTEM ========================
local ArcPopupGui = nil
local ArcPopupFrame = nil
local ArcPopupQueue = {}
local function showArcPopup(featureName, enabled)
table.insert(ArcPopupQueue, {name = featureName, on = enabled})
if #ArcPopupQueue > 1 then return end
spawn(function()
while #ArcPopupQueue > 0 do
local data = table.remove(ArcPopupQueue, 1)
if not ArcPopupGui then
ArcPopupGui = Instance.new('ScreenGui')
ArcPopupGui.Name = 'ArcYieldPopup'
ArcPopupGui.ResetOnSpawn = false
ArcPopupGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ArcPopupGui.Parent = game:GetService('CoreGui')
ArcPopupFrame = Instance.new('Frame')
ArcPopupFrame.Size = UDim2.new(0, 280, 0, 55)
ArcPopupFrame.Position = UDim2.new(0.5, -140, 0, -65)
ArcPopupFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 20)
ArcPopupFrame.BackgroundTransparency = 0.15
ArcPopupFrame.BorderSizePixel = 0
ArcPopupFrame.Parent = ArcPopupGui
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = ArcPopupFrame
local stroke = Instance.new('UIStroke')
stroke.Color = Color3.fromRGB(50, 100, 255)
stroke.Thickness = 1.5
stroke.Transparency = 0.3
stroke.Parent = ArcPopupFrame
local accent = Instance.new('Frame')
accent.Size = UDim2.new(0, 5, 0, 55)
accent.BackgroundColor3 = Color3.fromRGB(50, 120, 255)
accent.BorderSizePixel = 0
local ac = Instance.new('UICorner')
ac.CornerRadius = UDim.new(0, 3)
ac.Parent = accent
accent.Parent = ArcPopupFrame
local tl = Instance.new('TextLabel')
tl.Name = 'Title'
tl.Size = UDim2.new(1, -20, 0, 28)
tl.Position = UDim2.new(0, 14, 0, 2)
tl.BackgroundTransparency = 1
tl.Text = ''
tl.TextColor3 = Color3.fromRGB(220, 230, 255)
tl.TextStrokeColor3 = Color3.fromRGB(30, 80, 255)
tl.TextStrokeTransparency = 0.6
tl.Font = Enum.Font.GothamBold
tl.TextSize = 16
tl.TextXAlignment = Enum.TextXAlignment.Left
tl.Parent = ArcPopupFrame
local sl = Instance.new('TextLabel')
sl.Name = 'Status'
sl.Size = UDim2.new(1, -20, 0, 20)
sl.Position = UDim2.new(0, 14, 0, 28)
sl.BackgroundTransparency = 1
sl.Text = ''
sl.TextColor3 = Color3.fromRGB(100, 255, 130)
sl.TextStrokeColor3 = Color3.fromRGB(30, 80, 255)
sl.TextStrokeTransparency = 0.8
sl.Font = Enum.Font.Gotham
sl.TextSize = 13
sl.TextXAlignment = Enum.TextXAlignment.Left
sl.Parent = ArcPopupFrame
end
ArcPopupFrame.Title.Text = data.name
ArcPopupFrame.Status.Text = data.on and 'ENABLED' or 'DISABLED'
ArcPopupFrame.Status.TextColor3 = data.on and Color3.fromRGB(100, 255, 130) or Color3.fromRGB(255, 100, 100)
local ts = game:GetService('TweenService')
ArcPopupFrame.Position = UDim2.new(0.5, -140, 0, -65)
ArcPopupFrame.BackgroundTransparency = 0.15
ts:Create(ArcPopupFrame, TweenInfo.new(0.35, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Position = UDim2.new(0.5, -140, 0, 10),
BackgroundTransparency = 0
}):Play()
wait(2.2)
ts:Create(ArcPopupFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {
Position = UDim2.new(0.5, -140, 0, -65),
BackgroundTransparency = 0.15
}):Play()
wait(0.35)
end
end)
end
-- ======================== TEXT GLOW (Blue glow on white text) ========================
spawn(function()
wait(2)
local function applyGlow(parent)
for _, child in pairs(parent:GetDescendants()) do
if child:IsA('TextLabel') or child:IsA('TextBox') then
pcall(function()
child.TextStrokeColor3 = Color3.fromRGB(20, 60, 200)
child.TextStrokeTransparency = 0.75
end)
end
end
end
applyGlow(game:GetService('CoreGui'):FindFirstChild('ArcYieldPopup') or Instance.new('Frame'))
end)
-- ======================== TRAIL SYSTEM ========================
walktrail = {active = false, attachment = nil, emitter = nil, beam = nil, att2 = nil}
local trailConfigs = {
fire = {color1 = Color3.fromRGB(255, 80, 0), color2 = Color3.fromRGB(255, 200, 0), rate = 35, speed = 4, size = 1.2, light = true, lightColor = Color3.fromRGB(255, 100, 0)},
ice = {color1 = Color3.fromRGB(100, 200, 255), color2 = Color3.fromRGB(200, 230, 255), rate = 25, speed = 2, size = 0.8, light = true, lightColor = Color3.fromRGB(100, 180, 255)},
lightning = {color1 = Color3.fromRGB(150, 150, 255), color2 = Color3.fromRGB(255, 255, 255), rate = 40, speed = 8, size = 0.5, light = true, lightColor = Color3.fromRGB(130, 130, 255)},
smoke = {color1 = Color3.fromRGB(60, 60, 60), color2 = Color3.fromRGB(120, 120, 120), rate = 15, speed = 1, size = 2.5, light = false},
rainbow = {color1 = Color3.fromRGB(255, 0, 0), color2 = Color3.fromRGB(0, 0, 255), rate = 40, speed = 3, size = 1, light = false, rainbow = true},
neon = {color1 = Color3.fromRGB(0, 255, 200), color2 = Color3.fromRGB(0, 100, 255), rate = 30, speed = 3, size = 1, light = true, lightColor = Color3.fromRGB(0, 200, 255)},
purple = {color1 = Color3.fromRGB(150, 0, 255), color2 = Color3.fromRGB(255, 0, 200), rate = 30, speed = 3, size = 1.2, light = true, lightColor = Color3.fromRGB(150, 50, 255)},
pink = {color1 = Color3.fromRGB(255, 50, 150), color2 = Color3.fromRGB(255, 150, 200), rate = 30, speed = 3, size = 1, light = true, lightColor = Color3.fromRGB(255, 80, 150)},
blood = {color1 = Color3.fromRGB(150, 0, 0), color2 = Color3.fromRGB(255, 0, 0), rate = 20, speed = 2, size = 1.5, light = false},
shadow = {color1 = Color3.fromRGB(20, 0, 40), color2 = Color3.fromRGB(60, 0, 100), rate = 25, speed = 1, size = 2, light = false},
holy = {color1 = Color3.fromRGB(255, 255, 200), color2 = Color3.fromRGB(255, 255, 255), rate = 35, speed = 3, size = 0.8, light = true, lightColor = Color3.fromRGB(255, 255, 200)},
toxic = {color1 = Color3.fromRGB(0, 200, 0), color2 = Color3.fromRGB(100, 255, 0), rate = 25, speed = 2, size = 1.5, light = false},
galaxy = {color1 = Color3.fromRGB(50, 0, 100), color2 = Color3.fromRGB(0, 100, 200), rate = 35, speed = 4, size = 1, light = true, lightColor = Color3.fromRGB(80, 50, 200)},
crystal = {color1 = Color3.fromRGB(150, 220, 255), color2 = Color3.fromRGB(255, 255, 255), rate = 20, speed = 1, size = 0.6, light = true, lightColor = Color3.fromRGB(180, 220, 255)},
spark = {color1 = Color3.fromRGB(255, 255, 0), color2 = Color3.fromRGB(255, 200, 0), rate = 50, speed = 6, size = 0.3, light = true, lightColor = Color3.fromRGB(255, 255, 100)},
heart = {color1 = Color3.fromRGB(255, 50, 80), color2 = Color3.fromRGB(255, 150, 180), rate = 15, speed = 1, size = 0.8, light = false},
phantom = {color1 = Color3.fromRGB(0, 150, 255), color2 = Color3.fromRGB(0, 50, 150), rate = 20, speed = 2, size = 1.5, light = true, lightColor = Color3.fromRGB(0, 100, 255)},
}
function createWalkTrail(speaker, configName)
if walktrail.active then removeWalkTrail() end
local cfg = trailConfigs[configName] or trailConfigs.fire
local char = speaker.Character
local root = getRoot(char)
if not root then return end
local att = Instance.new('Attachment')
att.Position = Vector3.new(0, -3, 0)
att.Parent = root
local pe = Instance.new('ParticleEmitter')
pe.Texture = 'rbxassetid://241685484'
pe.Rate = cfg.rate
pe.Lifetime = NumberRange.new(0.5, 1.2)
pe.Speed = NumberRange.new(cfg.speed * 0.5, cfg.speed)
pe.SpreadAngle = Vector2.new(20, 20)
pe.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, cfg.size * 0.3),
NumberSequenceKeypoint.new(0.5, cfg.size),
NumberSequenceKeypoint.new(1, 0)
})
if cfg.rainbow then
pe.Color = ColorSequence.new(Color3.fromRGB(255,0,0), Color3.fromRGB(0,0,255))
else
pe.Color = ColorSequence.new(cfg.color1, cfg.color2)
end
pe.Transparency = NumberSequence.new(0.3, 1)
pe.LightEmission = 0.6
pe.LightInfluence = 0
pe.RotSpeed = NumberRange.new(-180, 180)
pe.Parent = att
if cfg.light then
local pl = Instance.new('PointLight')
pl.Color = cfg.lightColor
pl.Brightness = 2
pl.Range = 12
pl.Parent = att
end
walktrail = {active = true, attachment = att, emitter = pe}
showArcPopup('Trail: ' .. configName, true)
notify('Trail', configName .. ' trail enabled')
end
function removeWalkTrail()
if walktrail.attachment and walktrail.attachment.Parent then
walktrail.attachment:Destroy()
end
walktrail = {active = false, attachment = nil, emitter = nil}
notify('Trail', 'Disabled')
end
addcmd('trail', {'trailtype'}, function(args, speaker)
local t = args[1] and args[1]:lower() or 'fire'
if t == 'off' then removeWalkTrail() return end
if not trailConfigs[t] then
local types = ''
for k, _ in pairs(trailConfigs) do types = types .. k .. ', ' end
notify('Trail', 'Types: ' .. types:sub(1, -3))
return
end
createWalkTrail(speaker, t)
end)
addcmd('untrail', {'notrail'}, function(args, speaker) removeWalkTrail() end)
addcmd('toggletrail', {}, function(args, speaker)
if walktrail.active then removeWalkTrail() else createWalkTrail(speaker, 'fire') end
end)
-- Shortcut trail commands
for trailName, _ in pairs(trailConfigs) do
addcmd(trailName .. 'trail', {}, function(args, speaker)
createWalkTrail(speaker, trailName)
end)
end
-- ======================== AURA SYSTEM ========================
auraSystem = {active = false, attachments = {}, emitters = {}}
local auraConfigs = {
fire = {color1 = Color3.fromRGB(255, 60, 0), color2 = Color3.fromRGB(255, 180, 0), rate = 60, speed = 2, size = 2, rotSpeed = 90},
ice = {color1 = Color3.fromRGB(100, 200, 255), color2 = Color3.fromRGB(220, 240, 255), rate = 40, speed = 0.5, size = 1.5, rotSpeed = 45},
lightning = {color1 = Color3.fromRGB(180, 180, 255), color2 = Color3.fromRGB(255, 255, 255), rate = 80, speed = 5, size = 0.8, rotSpeed = 200},
smoke = {color1 = Color3.fromRGB(50, 50, 50), color2 = Color3.fromRGB(100, 100, 100), rate = 20, speed = 0.5, size = 3, rotSpeed = 30},
shadow = {color1 = Color3.fromRGB(10, 0, 30), color2 = Color3.fromRGB(50, 0, 80), rate = 30, speed = 1, size = 2.5, rotSpeed = 60},
holy = {color1 = Color3.fromRGB(255, 255, 180), color2 = Color3.fromRGB(255, 255, 255), rate = 50, speed = 1.5, size = 1.2, rotSpeed = 60},
toxic = {color1 = Color3.fromRGB(0, 180, 0), color2 = Color3.fromRGB(80, 255, 0), rate = 35, speed = 1, size = 2, rotSpeed = 50},
neon = {color1 = Color3.fromRGB(0, 255, 200), color2 = Color3.fromRGB(0, 80, 255), rate = 45, speed = 2, size = 1.5, rotSpeed = 120},
purple = {color1 = Color3.fromRGB(120, 0, 255), color2 = Color3.fromRGB(255, 0, 180), rate = 40, speed = 1.5, size = 2, rotSpeed = 90},
pink = {color1 = Color3.fromRGB(255, 50, 130), color2 = Color3.fromRGB(255, 150, 200), rate = 35, speed = 1, size = 1.5, rotSpeed = 60},
galaxy = {color1 = Color3.fromRGB(40, 0, 100), color2 = Color3.fromRGB(0, 80, 200), rate = 50, speed = 2, size = 2, rotSpeed = 150},
blood = {color1 = Color3.fromRGB(120, 0, 0), color2 = Color3.fromRGB(200, 0, 0), rate = 25, speed = 0.5, size = 2.5, rotSpeed = 30},
phantom = {color1 = Color3.fromRGB(0, 120, 255), color2 = Color3.fromRGB(0, 40, 120), rate = 30, speed = 1.5, size = 2.5, rotSpeed = 80},
crystal = {color1 = Color3.fromRGB(130, 200, 255), color2 = Color3.fromRGB(255, 255, 255), rate = 25, speed = 0.5, size = 1, rotSpeed = 30},
}
function createAura(speaker, configName)
if auraSystem.active then removeAura() end
local cfg = auraConfigs[configName] or auraConfigs.fire
local char = speaker.Character
if not char then return end
auraSystem.attachments = {}
auraSystem.emitters = {}
for i = 0, 3 do
local att = Instance.new('Attachment')
att.Name = 'AuraAtt' .. i
att.Parent = char:FindFirstChild('HumanoidRootPart') or char:FindFirstChild('Torso')
local pe = Instance.new('ParticleEmitter')
pe.Texture = 'rbxassetid://241685484'
pe.Rate = cfg.rate / 4
pe.Lifetime = NumberRange.new(0.8, 1.5)
pe.Speed = NumberRange.new(cfg.speed * 0.5, cfg.speed)
pe.SpreadAngle = Vector2.new(180, 180)
pe.Size = NumberSequence.new(cfg.size * 0.3, cfg.size)
pe.Color = ColorSequence.new(cfg.color1, cfg.color2)
pe.Transparency = NumberSequence.new(0.2, 0.9)
pe.LightEmission = 0.8
pe.RotSpeed = NumberRange.new(-cfg.rotSpeed, cfg.rotSpeed)
pe.Parent = att
table.insert(auraSystem.attachments, att)
table.insert(auraSystem.emitters, pe)
end
auraSystem.active = true
showArcPopup('Aura: ' .. configName, true)
notify('Aura', configName .. ' aura enabled')
end
function removeAura()
for _, att in pairs(auraSystem.attachments) do
if att and att.Parent then att:Destroy() end
end
auraSystem = {active = false, attachments = {}, emitters = {}}
notify('Aura', 'Disabled')
end
addcmd('particleaura', {'partaura', 'auratype'}, function(args, speaker)
local t = args[1] and args[1]:lower() or 'fire'
if t == 'off' then removeAura() return end
if not auraConfigs[t] then
local types = ''
for k, _ in pairs(auraConfigs) do types = types .. k .. ', ' end
notify('Particle Aura', 'Types: ' .. types:sub(1, -3))
return
end
createAura(speaker, t)
end)
addcmd('unparticleaura', {'nopartaura', 'noaura'}, function(args, speaker) removeAura() end)
addcmd('toggleparticleaura', {}, function(args, speaker)
if auraSystem.active then removeAura() else createAura(speaker, 'fire') end
end)
for auraName, _ in pairs(auraConfigs) do
addcmd(auraName .. 'aura', {}, function(args, speaker)
createAura(speaker, auraName)
end)
end
-- ======================== CHARACTER EFFECTS ========================
charGlow = {active = false, lights = {}}
addcmd('glow', {'bodyglow'}, function(args, speaker)
if charGlow.active then execCmd('unglow') return end
local char = speaker.Character
if not char then return end
charGlow.lights = {}
for _, part in pairs(char:GetDescendants()) do
if part:IsA('BasePart') then
local pl = Instance.new('PointLight')
pl.Color = args[1] and Color3.fromRGB(tonumber(args[1]) or 50, tonumber(args[2]) or 100, tonumber(args[3]) or 255) or Color3.fromRGB(50, 100, 255)
pl.Brightness = 3
pl.Range = 15
pl.Parent = part
table.insert(charGlow.lights, pl)
end
end
charGlow.active = true
showArcPopup('Body Glow', true)
notify('Glow', 'Enabled')
end)
addcmd('unglow', {'noglow'}, function(args, speaker)
for _, l in pairs(charGlow.lights) do if l.Parent then l:Destroy() end end
charGlow = {active = false, lights = {}}
notify('Glow', 'Disabled')
end)
charHighlight = {active = false}
addcmd('highlight', {'chighlight'}, function(args, speaker)
if charHighlight.active then execCmd('unhighlight') return end
local char = speaker.Character
if not char then return end
local hl = Instance.new('Highlight')
hl.Name = randomString()
hl.Adornee = char
hl.FillColor = args[1] and Color3.fromRGB(tonumber(args[1]) or 50, tonumber(args[2]) or 100, tonumber(args[3]) or 255) or Color3.fromRGB(50, 100, 255)
hl.FillTransparency = 0.7
hl.OutlineColor = Color3.fromRGB(100, 180, 255)
hl.OutlineTransparency = 0
hl.Parent = char
charHighlight = {active = true, obj = hl}
showArcPopup('Highlight', true)
notify('Highlight', 'Enabled')
end)
addcmd('unhighlight', {'nohighlight'}, function(args, speaker)
if charHighlight.obj and charHighlight.obj.Parent then charHighlight.obj:Destroy() end
charHighlight = {active = false}
notify('Highlight', 'Disabled')
end)
wireframeState = false
addcmd('wireframe', {}, function(args, speaker)
if wireframeState then execCmd('unwireframe') return end
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part:IsDescendantOf(speaker.Character) then
pcall(function() part.Material = Enum.Material.ForceField end)
end
end
wireframeState = true
showArcPopup('Wireframe', true)
end)
addcmd('unwireframe', {'nowireframe'}, function(args, speaker)
wireframeState = false
end)
charTransState = false
addcmd('trans', {'transparency'}, function(args, speaker)
local val = tonumber(args[1]) or 0.5
local char = speaker.Character
if not char then return end
for _, part in pairs(char:GetDescendants()) do
if part:IsA('BasePart') and part.Name ~= 'HumanoidRootPart' then
part.Transparency = val
end
end
charTransState = true
notify('Transparency', 'Set to ' .. val)
end)
addcmd('untrans', {}, function(args, speaker)
local char = speaker.Character
if not char then return end
for _, part in pairs(char:GetDescendants()) do
if part:IsA('BasePart') then
if part.Name == 'HumanoidRootPart' then part.Transparency = 1
else part.Transparency = 0 end
end
end
charTransState = false
notify('Transparency', 'Reset')
end)
charScaleState = false
addcmd('scale', {'charscale'}, function(args, speaker)
local s = tonumber(args[1]) or 2
local char = speaker.Character
if not char then return end
local hrp = char:FindFirstChild('HumanoidRootPart')
if hrp and hrp:FindFirstChild('BodyScale') then hrp:FindFirstChild('BodyScale'):Destroy() end
for _, part in pairs(char:GetChildren()) do
if part:IsA('BasePart') and part.Name ~= 'HumanoidRootPart' then
part.Size = Vector3.new(part.Size.X * s, part.Size.Y * s, part.Size.Z * s)
end
end
charScaleState = true
notify('Scale', 'Set to ' .. s .. 'x')
end)
addcmd('unscale', {}, function(args, speaker)
local char = speaker.Character
if not char then return end
for _, part in pairs(char:GetChildren()) do
if part:IsA('BasePart') and part.Name ~= 'HumanoidRootPart' then
part.Size = Vector3.new(part.Size.X / 2, part.Size.Y / 2, part.Size.Z / 2)
end
end
charScaleState = false
notify('Scale', 'Reset')
end)
-- ======================== VISUAL EFFECTS ========================
floatState = {active = false, conn = nil}
addcmd('float', {'hover'}, function(args, speaker)
if floatState.active then execCmd('unfloat') return end
local spd = tonumber(args[1]) or 2
floatState.active = true
local t = 0
floatState.conn = RunService.Heartbeat:Connect(function(dt)
if not floatState.active then return end
local char = speaker.Character
local root = getRoot(char)
if not root then return end
t = t + dt * spd
local bv = root:FindFirstChildOfClass('BodyVelocity')
if not bv then
bv = Instance.new('BodyVelocity')
bv.MaxForce = Vector3.new(0, math.huge, 0)
bv.Parent = root
end
bv.Velocity = Vector3.new(0, math.sin(t) * 15, 0)
end)
showArcPopup('Float', true)
end)
addcmd('unfloat', {'nofloat'}, function(args, speaker)
floatState.active = false
if floatState.conn then floatState.conn:Disconnect() floatState.conn = nil end
local char = speaker.Character
local root = getRoot(char)
if root then
for _, c in pairs(root:GetChildren()) do
if c:IsA('BodyVelocity') then c:Destroy() end
end
end
notify('Float', 'Disabled')
end)
spinCharState = {active = false, bav = nil}
addcmd('spinchar', {'spinme'}, function(args, speaker)
if spinCharState.active then execCmd('unspinchar') return end
local spd = tonumber(args[1]) or 10
local char = speaker.Character
local root = getRoot(char)
if not root then return end
local bav = Instance.new('BodyAngularVelocity')
bav.Name = randomString()
bav.AngularVelocity = Vector3.new(0, spd, 0)
bav.MaxTorque = Vector3.new(0, math.huge, 0)
bav.P = math.huge
bav.Parent = root
spinCharState = {active = true, bav = bav}
showArcPopup('Spin', true)
end)
addcmd('unspinchar', {'nospinchar'}, function(args, speaker)
if spinCharState.bav and spinCharState.bav.Parent then spinCharState.bav:Destroy() end
spinCharState = {active = false, bav = nil}
notify('Spin', 'Disabled')
end)
pulseState = {active = false, conn = nil}
addcmd('pulse', {}, function(args, speaker)
if pulseState.active then execCmd('unpulse') return end
local char = speaker.Character
if not char then return end
pulseState.active = true
local t = 0
pulseState.conn = RunService.Heartbeat:Connect(function(dt)
if not pulseState.active then return end
t = t + dt * 3
local s = 1 + math.sin(t) * 0.1
for _, part in pairs(char:GetChildren()) do
if part:IsA('BasePart') and part.Name ~= 'HumanoidRootPart' then
pcall(function()
part.Size = part:GetPropertyChangedSignal('Size') and part.Size or part.Size
end)
end
end
end)
showArcPopup('Pulse', true)
end)
addcmd('unpulse', {'nopulse'}, function(args, speaker)
pulseState.active = false
if pulseState.conn then pulseState.conn:Disconnect() pulseState.conn = nil end
notify('Pulse', 'Disabled')
end)
-- ======================== HUD ELEMENTS ========================
hudElements = {}
addcmd('fps', {'fpscounter', 'showfps'}, function(args, speaker)
if hudElements.fps then execCmd('nofps') return end
local sg = Instance.new('ScreenGui')
sg.Name = randomString()
sg.ResetOnSpawn = false
sg.Parent = game:GetService('CoreGui')
local tl = Instance.new('TextLabel')
tl.Size = UDim2.new(0, 100, 0, 30)
tl.Position = UDim2.new(0, 10, 0, 10)
tl.BackgroundColor3 = Color3.fromRGB(8, 8, 14)
tl.BackgroundTransparency = 0.3
tl.TextColor3 = Color3.fromRGB(100, 255, 100)
tl.TextStrokeColor3 = Color3.fromRGB(0, 100, 0)
tl.TextStrokeTransparency = 0.7
tl.Font = Enum.Font.GothamBold
tl.TextSize = 16
tl.TextXAlignment = Enum.TextXAlignment.Left
tl.Text = 'FPS: --'
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = tl
tl.Parent = sg
local conn
local lastTick = tick()
local frames = 0
conn = RunService.Heartbeat:Connect(function()
frames = frames + 1
if tick() - lastTick >= 1 then
tl.Text = 'FPS: ' .. frames
frames = 0
lastTick = tick()
end
end)
hudElements.fps = {gui = sg, conn = conn}
showArcPopup('FPS Counter', true)
end)
addcmd('nofps', {'nofpscounter', 'hidefps'}, function(args, speaker)
if hudElements.fps then
if hudElements.fps.conn then hudElements.fps.conn:Disconnect() end
if hudElements.fps.gui then hudElements.fps.gui:Destroy() end
hudElements.fps = nil
end
end)
addcmd('ping', {'pingcounter', 'showping'}, function(args, speaker)
if hudElements.ping then execCmd('noping') return end
local sg = Instance.new('ScreenGui')
sg.Name = randomString()
sg.ResetOnSpawn = false
sg.Parent = game:GetService('CoreGui')
local tl = Instance.new('TextLabel')
tl.Size = UDim2.new(0, 100, 0, 30)
tl.Position = UDim2.new(0, 10, 0, 45)
tl.BackgroundColor3 = Color3.fromRGB(8, 8, 14)
tl.BackgroundTransparency = 0.3
tl.TextColor3 = Color3.fromRGB(255, 200, 50)
tl.TextStrokeColor3 = Color3.fromRGB(200, 150, 0)
tl.TextStrokeTransparency = 0.7
tl.Font = Enum.Font.GothamBold
tl.TextSize = 16
tl.TextXAlignment = Enum.TextXAlignment.Left
tl.Text = 'Ping: --'
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = tl
tl.Parent = sg
local conn
conn = RunService.Heartbeat:Connect(function()
pcall(function()
local stats = game:GetService('Stats')
tl.Text = 'Ping: ' .. math.floor(stats.Network.ServerStatsItem['Data Ping']:GetValue())
end)
end)
hudElements.ping = {gui = sg, conn = conn}
showArcPopup('Ping Counter', true)
end)
addcmd('noping', {'nopingcounter', 'hideping'}, function(args, speaker)
if hudElements.ping then
if hudElements.ping.conn then hudElements.ping.conn:Disconnect() end
if hudElements.ping.gui then hudElements.ping.gui:Destroy() end
hudElements.ping = nil
end
end)
addcmd('coords', {'coordinates', 'showcoords'}, function(args, speaker)
if hudElements.coords then execCmd('nocoords') return end
local sg = Instance.new('ScreenGui')
sg.Name = randomString()
sg.ResetOnSpawn = false
sg.Parent = game:GetService('CoreGui')
local tl = Instance.new('TextLabel')
tl.Size = UDim2.new(0, 220, 0, 30)
tl.Position = UDim2.new(0, 10, 0, 80)
tl.BackgroundColor3 = Color3.fromRGB(8, 8, 14)
tl.BackgroundTransparency = 0.3
tl.TextColor3 = Color3.fromRGB(100, 200, 255)
tl.TextStrokeColor3 = Color3.fromRGB(0, 80, 200)
tl.TextStrokeTransparency = 0.7
tl.Font = Enum.Font.GothamBold
tl.TextSize = 14
tl.TextXAlignment = Enum.TextXAlignment.Left
tl.Text = 'X: 0 Y: 0 Z: 0'
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = tl
tl.Parent = sg
local conn
conn = RunService.Heartbeat:Connect(function()
local root = getRoot(speaker.Character)
if root then
local p = root.Position
tl.Text = string.format('X: %.0f Y: %.0f Z: %.0f', p.X, p.Y, p.Z)
end
end)
hudElements.coords = {gui = sg, conn = conn}
showArcPopup('Coordinates', true)
end)
addcmd('nocoords', {'nocoordinates', 'hidecoords'}, function(args, speaker)
if hudElements.coords then
if hudElements.coords.conn then hudElements.coords.conn:Disconnect() end
if hudElements.coords.gui then hudElements.coords.gui:Destroy() end
hudElements.coords = nil
end
end)
addcmd('speedometer', {'speedhud', 'showspped'}, function(args, speaker)
if hudElements.speed then execCmd('nospeedometer') return end
local sg = Instance.new('ScreenGui')
sg.Name = randomString()
sg.ResetOnSpawn = false
sg.Parent = game:GetService('CoreGui')
local tl = Instance.new('TextLabel')
tl.Size = UDim2.new(0, 120, 0, 30)
tl.Position = UDim2.new(0, 10, 0, 115)
tl.BackgroundColor3 = Color3.fromRGB(8, 8, 14)
tl.BackgroundTransparency = 0.3
tl.TextColor3 = Color3.fromRGB(255, 130, 80)
tl.TextStrokeColor3 = Color3.fromRGB(200, 80, 0)
tl.TextStrokeTransparency = 0.7
tl.Font = Enum.Font.GothamBold
tl.TextSize = 14
tl.TextXAlignment = Enum.TextXAlignment.Left
tl.Text = 'Speed: 0'
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = tl
tl.Parent = sg
local conn
conn = RunService.Heartbeat:Connect(function()
local root = getRoot(speaker.Character)
if root then
tl.Text = 'Speed: ' .. math.floor(root.Velocity.Magnitude)
end
end)
hudElements.speed = {gui = sg, conn = conn}
showArcPopup('Speedometer', true)
end)
addcmd('nospeedometer', {'nospeedhud'}, function(args, speaker)
if hudElements.speed then
if hudElements.speed.conn then hudElements.speed.conn:Disconnect() end
if hudElements.speed.gui then hudElements.speed.gui:Destroy() end
hudElements.speed = nil
end
end)
addcmd('crosshair', {'xhair'}, function(args, speaker)
if hudElements.crosshair then execCmd('nocrosshair') return end
local sg = Instance.new('ScreenGui')
sg.Name = randomString()
sg.ResetOnSpawn = false
sg.IgnoreGuiInset = true
sg.Parent = game:GetService('CoreGui')
local cl = Instance.new('Frame')
cl.Size = UDim2.new(0, 24, 0, 2)
cl.Position = UDim2.new(0.5, -12, 0.5, -1)
cl.BackgroundColor3 = Color3.fromRGB(50, 200, 255)
cl.BorderSizePixel = 0
cl.Parent = sg
local cl2 = Instance.new('Frame')
cl2.Size = UDim2.new(0, 2, 0, 24)
cl2.Position = UDim2.new(0.5, -1, 0.5, -12)
cl2.BackgroundColor3 = Color3.fromRGB(50, 200, 255)
cl2.BorderSizePixel = 0
cl2.Parent = sg
hudElements.crosshair = sg
showArcPopup('Crosshair', true)
end)
addcmd('nocrosshair', {'noxhair'}, function(args, speaker)
if hudElements.crosshair then hudElements.crosshair:Destroy() hudElements.crosshair = nil end
end)
-- ======================== FUN / COSMETIC ========================
addcmd('crown', {}, function(args, speaker)
if hudElements.crown then execCmd('uncrown') return end
local char = speaker.Character
local head = char and char:FindFirstChild('Head')
if not head then return end
local crown = Instance.new('Part')
crown.Name = 'ArcCrown'
crown.Size = Vector3.new(2, 0.5, 2)
crown.Anchored = false
crown.CanCollide = false
crown.Color = Color3.fromRGB(255, 215, 0)
crown.Material = Enum.Material.Foil
crown.Parent = workspace
local weld = Instance.new('Weld')
weld.Part0 = head
weld.Part1 = crown
weld.C0 = CFrame.new(0, 1.5, 0)
weld.Parent = crown
hudElements.crown = crown
showArcPopup('Crown', true)
end)
addcmd('uncrown', {}, function(args, speaker)
if hudElements.crown and hudElements.crown.Parent then hudElements.crown:Destroy() end
hudElements.crown = nil
end)
addcmd('halo', {}, function(args, speaker)
if hudElements.halo then execCmd('unhalo') return end
local char = speaker.Character
local head = char and char:FindFirstChild('Head')
if not head then return end
local halo = Instance.new('Part')
halo.Name = 'ArcHalo'
halo.Size = Vector3.new(2.5, 0.15, 2.5)
halo.Anchored = false
halo.CanCollide = false
halo.Color = args[1] and Color3.fromRGB(tonumber(args[1]) or 255, tonumber(args[2]) or 255, tonumber(args[3]) or 255) or Color3.fromRGB(255, 255, 100)
halo.Material = Enum.Material.Neon
halo.Shape = Enum.PartType.Cylinder
halo.Parent = workspace
local weld = Instance.new('Weld')
weld.Part0 = head
weld.Part1 = halo
weld.C0 = CFrame.new(0, 1.5, 0) * CFrame.Angles(0, 0, math.rad(90))
weld.Parent = halo
hudElements.halo = halo
showArcPopup('Halo', true)
end)
addcmd('unhalo', {}, function(args, speaker)
if hudElements.halo and hudElements.halo.Parent then hudElements.halo:Destroy() end
hudElements.halo = nil
end)
addcmd('wings', {}, function(args, speaker)
if hudElements.wings then execCmd('unwings') return end
local char = speaker.Character
local root = getRoot(char)
if not root then return end
local wingColor = args[1] and Color3.fromRGB(tonumber(args[1]) or 50, tonumber(args[2]) or 100, tonumber(args[3]) or 255) or Color3.fromRGB(50, 100, 255)
local leftWing = Instance.new('Part')
leftWing.Name = 'ArcWingL'
leftWing.Size = Vector3.new(3, 0.1, 1.5)
leftWing.Anchored = false
leftWing.CanCollide = false
leftWing.Color = wingColor
leftWing.Material = Enum.Material.Neon
leftWing.Transparency = 0.3
leftWing.Parent = workspace
local rightWing = Instance.new('Part')
rightWing.Name = 'ArcWingR'
rightWing.Size = Vector3.new(3, 0.1, 1.5)
rightWing.Anchored = false
rightWing.CanCollide = false
rightWing.Color = wingColor
rightWing.Material = Enum.Material.Neon
rightWing.Transparency = 0.3
rightWing.Parent = workspace
local wlw = Instance.new('Weld')
wlw.Part0 = root
wlw.Part1 = leftWing
wlw.C0 = CFrame.new(-1.5, 0, -1) * CFrame.Angles(0, 0, math.rad(20))
wlw.Parent = leftWing
local wrw = Instance.new('Weld')
wrw.Part0 = root
wrw.Part1 = rightWing
wrw.C0 = CFrame.new(1.5, 0, -1) * CFrame.Angles(0, 0, math.rad(-20))
wrw.Parent = rightWing
hudElements.wings = {left = leftWing, right = rightWing}
showArcPopup('Wings', true)
end)
addcmd('unwings', {}, function(args, speaker)
if hudElements.wings then
if hudElements.wings.left and hudElements.wings.left.Parent then hudElements.wings.left:Destroy() end
if hudElements.wings.right and hudElements.wings.right.Parent then hudElements.wings.right:Destroy() end
hudElements.wings = nil
end
end)
addcmd('nametag', {'customname'}, function(args, speaker)
if not args[1] then notify('NameTag', 'Usage: nametag [text]'); return end
if hudElements.nametag then execCmd('unnametag') return end
local char = speaker.Character
local head = char and char:FindFirstChild('Head')
if not head then return end
local bb = Instance.new('BillboardGui')
bb.Name = 'ArcNameTag'
bb.Adornee = head
bb.Size = UDim2.new(0, 100, 0, 30)
bb.StudsOffset = Vector3.new(0, 3, 0)
bb.AlwaysOnTop = true
bb.Parent = char
local tl = Instance.new('TextLabel')
tl.Size = UDim2.new(1, 0, 1, 0)
tl.BackgroundTransparency = 1
tl.Text = args[1] or 'Custom Name'
tl.TextColor3 = Color3.fromRGB(100, 200, 255)
tl.TextStrokeColor3 = Color3.fromRGB(0, 50, 150)
tl.TextStrokeTransparency = 0.5
tl.Font = Enum.Font.GothamBold
tl.TextSize = 18
tl.Parent = bb
hudElements.nametag = bb
showArcPopup('NameTag', true)
end)
addcmd('unnametag', {}, function(args, speaker)
if hudElements.nametag and hudElements.nametag.Parent then hudElements.nametag:Destroy() end
hudElements.nametag = nil
end)
orbitTextState = {active = false, conn = nil, parts = {}}
addcmd('orbittext', {'otext'}, function(args, speaker)
if not args[1] then notify('OrbitText', 'Usage: orbittext [text]'); return end
if orbitTextState.active then execCmd('unorbittext') return end
local char = speaker.Character
local head = char and char:FindFirstChild('Head')
if not head then return end
orbitTextState.parts = {}
orbitTextState.active = true
for i = 1, #args[1] do
local part = Instance.new('Part')
part.Size = Vector3.new(1, 1, 0.05)
part.Anchored = true
part.CanCollide = false
part.Color = Color3.fromRGB(50, 100 + (i * 10) % 155, 255)
part.Material = Enum.Material.Neon
part.Transparency = 0.2
part.Parent = workspace
local bb = Instance.new('BillboardGui')
bb.Adornee = part
bb.Size = UDim2.new(0, 10, 0, 10)
bb.AlwaysOnTop = true
bb.Parent = part
local tl = Instance.new('TextLabel')
tl.Size = UDim2.new(1, 0, 1, 0)
tl.BackgroundTransparency = 1
tl.Text = args[1]:sub(i, i)
tl.TextColor3 = Color3.fromRGB(255, 255, 255)
tl.Font = Enum.Font.GothamBold
tl.TextSize = 24
tl.TextStrokeTransparency = 0
tl.Parent = bb
table.insert(orbitTextState.parts, {part = part, offset = (i - #args[1] / 2) * 1.2})
end
local t = 0
orbitTextState.conn = RunService.Heartbeat:Connect(function(dt)
if not orbitTextState.active then return end
if not head or not head.Parent then execCmd('unorbittext') return end
t = t + dt * 2
for _, data in pairs(orbitTextState.parts) do
local angle = t + data.offset * 0.5
data.part.CFrame = head.CFrame * CFrame.new(math.cos(angle) * 4, 2, math.sin(angle) * 4)
end
end)
showArcPopup('Orbit Text', true)
end)
addcmd('unorbittext', {}, function(args, speaker)
orbitTextState.active = false
if orbitTextState.conn then orbitTextState.conn:Disconnect() orbitTextState.conn = nil end
for _, data in pairs(orbitTextState.parts) do
if data.part and data.part.Parent then data.part:Destroy() end
end
orbitTextState.parts = {}
end)
-- ======================== CAMERA ========================
addcmd('fov', {'fieldofview'}, function(args, speaker)
local val = tonumber(args[1]) or 70
local cam = workspace.CurrentCamera
cam.FieldOfView = val
notify('FOV', 'Set to ' .. val)
end)
addcmd('unfov', {}, function(args, speaker)
workspace.CurrentCamera.FieldOfView = 70
notify('FOV', 'Reset')
end)
-- ======================== CUSTOM ANIMATIONS ========================
customAnims = {active = false, animator = nil}
addcmd('customanim', {'canim'}, function(args, speaker)
local animType = (args[1] or ''):lower()
local animId = args[2] or ''
if animType == '' or animId == '' then
notify('CustomAnim', 'Usage: customanim [idle/walk/run/jump/fall] [assetId]')
return
end
local char = speaker.Character
if not char then return end
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
if not humanoid then return end
local anim = Instance.new('Animation')
anim.AnimationId = 'rbxassetid://' .. animId
local success, track = pcall(function()
return humanoid:LoadAnimation(anim)
end)
if not success or not track then
notify('CustomAnim', 'Failed to load animation')
return
end
track:Play()
track.Looped = true
if not customAnims.tracks then customAnims.tracks = {} end
customAnims.tracks[animType] = track
customAnims.active = true
showArcPopup('Custom Anim: ' .. animType, true)
notify('CustomAnim', animType .. ' animation set')
end)
addcmd('unanim', {'nocustomanim'}, function(args, speaker)
if customAnims.tracks then
for _, track in pairs(customAnims.tracks) do
pcall(function() track:Stop() end)
end
end
customAnims = {active = false, animator = nil, tracks = nil}
notify('CustomAnim', 'Reset')
end)
-- ======================== UTILITY ========================
antiafkState = false
addcmd('antiafk', {'anti-afk'}, function(args, speaker)
if antiafkState then execCmd('noantiafk') return end
antiafkState = true
local conn
conn = game:GetService('Players').LocalPlayer.Idled:Connect(function()
game:GetService('VirtualUser'):CaptureController()
game:GetService('VirtualUser'):ClickButton2(Vector2.new())
end)
antiafkState = conn
showArcPopup('Anti-AFK', true)
notify('Anti-AFK', 'Enabled')
end)
addcmd('noantiafk', {}, function(args, speaker)
if antiafkState and typeof(antiafkState) ~= 'boolean' then
antiafkState:Disconnect()
end
antiafkState = false
notify('Anti-AFK', 'Disabled')
end)
-- ======================== WALKFLING (JITTER HITBOX) ========================
-- Invisible ANCHORED hitbox rapidly teleports forward then back each frame.
-- Neither the user nor other players see it (fully invisible).
-- The anchored hitbox with CanCollide pushes unanchored parts/players on contact.
-- Speed = how many studs forward the hitbox teleports each frame (jitter distance).
-- Higher speed = longer jitter distance = bigger fling.
-- Usage: pwalkfling [speed] | pwalkfling off / unpwalkfling to stop
pwalkflingActive = false
pwalkflingConn = nil
pwalkflingHitbox = nil
pwalkflingPower = 50
pwalkflingDiedConn = nil
pwalkflingForward = false
addcmd('pwalkfling', {'powerwalkfling', 'dkwalkfling'}, function(args, speaker)
if args[1] and args[1]:lower() == 'off' then execCmd('unpwalkfling') return end
if pwalkflingActive and tonumber(args[1]) then
pwalkflingPower = tonumber(args[1])
showArcPopup('WalkFling (Speed: ' .. pwalkflingPower .. ')', true)
return
end
if pwalkflingActive then execCmd('unpwalkfling') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('WalkFling', 'Character not found') return end
pwalkflingPower = tonumber(args[1]) or 50
local root = getRoot(char)
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
-- Create invisible ANCHORED collision hitbox (anchored so teleporting works reliably)
-- Anchored + CanCollide = physics engine pushes anything overlapping with it
pwalkflingHitbox = Instance.new('Part')
pwalkflingHitbox.Name = randomString()
pwalkflingHitbox.Size = Vector3.new(4, 5, 2)
pwalkflingHitbox.Transparency = 1
pwalkflingHitbox.CanCollide = true
pwalkflingHitbox.Anchored = true
pwalkflingHitbox.Parent = workspace
pwalkflingHitbox.CFrame = root.CFrame
-- Noclip player so they don't collide with the hitbox
execCmd('noclip nonotify')
for _, child in pairs(char:GetDescendants()) do
if child:IsA('BasePart') then
child.CanCollide = false
end
end
if humanoid then
pwalkflingDiedConn = humanoid.Died:Connect(function() execCmd('unpwalkfling') end)
end
pwalkflingForward = false
pwalkflingActive = true
-- Stepped runs BEFORE physics each frame
-- Frame 1: teleport hitbox forward by [speed] studs -> physics resolves -> pushes people
-- Frame 2: teleport hitbox back to player -> no overlap -> ready for next push
-- This rapid back-and-forth = jitter = fling
pwalkflingConn = RunService.Stepped:Connect(function()
if not pwalkflingActive then return end
if not pwalkflingHitbox or not pwalkflingHitbox.Parent then
execCmd('unpwalkfling')
return
end
local c = speaker.Character
local r = getRoot(c)
if not r then return end
-- Always snap hitbox orientation to player
pwalkflingHitbox.CFrame = r.CFrame
-- Get walk direction from humanoid
local moveDir = humanoid and humanoid.MoveDirection or Vector3.new(0, 0, 0)
if moveDir.Magnitude > 0.05 then
local cam = workspace.CurrentCamera
local camCF = cam.CFrame
local flatLook = (camCF.LookVector * Vector3.new(1, 0, 1)).Unit
local flatRight = (camCF.Right * Vector3.new(1, 0, 1)).Unit
local worldDir = (flatLook * moveDir.Z + flatRight * moveDir.X).Unit
-- Alternate forward and back each frame
pwalkflingForward = not pwalkflingForward
if pwalkflingForward then
-- Teleport hitbox FORWARD by speed studs
-- Physics will resolve: anyone in the way gets pushed = FLING
pwalkflingHitbox.CFrame = r.CFrame + (worldDir * pwalkflingPower)
else
-- Teleport hitbox BACK to player position
pwalkflingHitbox.CFrame = r.CFrame
end
end
end)
showArcPopup('WalkFling (Speed: ' .. pwalkflingPower .. ')', true)
end)
addcmd('unpwalkfling', {'nopwalkfling'}, function(args, speaker)
pwalkflingActive = false
if pwalkflingConn then pwalkflingConn:Disconnect() pwalkflingConn = nil end
if pwalkflingDiedConn then pwalkflingDiedConn:Disconnect() pwalkflingDiedConn = nil end
if pwalkflingHitbox and pwalkflingHitbox.Parent then pwalkflingHitbox:Destroy() end
pwalkflingHitbox = nil
execCmd('clip nonotify')
local char = speaker.Character
if char then
for _, child in pairs(char:GetDescendants()) do
if child:IsA('BasePart') then child.CanCollide = true end
end
end
showArcPopup('WalkFling', false)
end)
addcmd('togglepwalkfling', {}, function(args, speaker)
execCmd(pwalkflingActive and 'unpwalkfling' or 'pwalkfling')
end)
-- ======================== GHOST (DECOY CLONE) ========================
ghostActive = false
ghostClone = nil
ghostSavedTransparency = {}
ghostSavedColors = {}
ghostGui = nil
ghostDiedConn = nil
addcmd('ghost', {}, function(args, speaker)
if ghostActive then execCmd('unghost') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Ghost', 'Character not found') return end
local root = getRoot(char)
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
ghostSavedTransparency = {}
ghostSavedColors = {}
for _, part in pairs(char:GetDescendants()) do
if part:IsA('BasePart') and part.Name ~= 'HumanoidRootPart' then
ghostSavedTransparency[part] = part.Transparency
ghostSavedColors[part] = part.Color
part.Transparency = 0.5
part.Color = Color3.fromRGB(140, 60, 220)
part.Material = Enum.Material.Neon
end
end
local clone = char:Clone()
clone.Name = char.Name
for _, obj in pairs(clone:GetDescendants()) do
if obj:IsA('Script') or obj:IsA('LocalScript') then obj:Destroy() end
end
for _, part in pairs(clone:GetDescendants()) do
if part:IsA('BasePart') and ghostSavedTransparency[part] ~= nil then
part.Transparency = ghostSavedTransparency[part]
part.Color = ghostSavedColors[part]
part.Material = Enum.Material.Plastic
end
if part:IsA('BasePart') then part.Anchored = true end
end
local cloneHumanoid = clone:FindFirstChildWhichIsA('Humanoid')
if cloneHumanoid then
cloneHumanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
cloneHumanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOff
end
local head = clone:FindFirstChild('Head')
if head then
local healthBar = head:FindFirstChildOfClass('BillboardGui')
if healthBar then healthBar:Destroy() end
end
clone.Parent = workspace
ghostClone = clone
execCmd('noclip nonotify')
if humanoid then
ghostDiedConn = humanoid.Died:Connect(function() execCmd('unghost') end)
end
local sg = Instance.new('ScreenGui')
sg.Name = randomString()
sg.ResetOnSpawn = false
sg.Parent = game:GetService('CoreGui')
local frame = Instance.new('Frame')
frame.Size = UDim2.new(0, 160, 0, 36)
frame.Position = UDim2.new(0.5, -80, 0, 10)
frame.BackgroundColor3 = Color3.fromRGB(10, 10, 20)
frame.BackgroundTransparency = 0.2
frame.BorderSizePixel = 0
frame.Parent = sg
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = frame
local stroke = Instance.new('UIStroke')
stroke.Color = Color3.fromRGB(140, 60, 220)
stroke.Thickness = 1.5
stroke.Transparency = 0.3
stroke.Parent = frame
local tl = Instance.new('TextLabel')
tl.Size = UDim2.new(1, 0, 1, 0)
tl.BackgroundTransparency = 1
tl.Text = 'GHOST MODE'
tl.TextColor3 = Color3.fromRGB(180, 120, 255)
tl.TextStrokeColor3 = Color3.fromRGB(100, 30, 200)
tl.TextStrokeTransparency = 0.5
tl.Font = Enum.Font.GothamBold
tl.TextSize = 14
tl.Parent = frame
ghostGui = sg
ghostActive = true
hudElements.ghost = sg
showArcPopup('Ghost', true)
end)
addcmd('unghost', {'noghost'}, function(args, speaker)
ghostActive = false
if ghostDiedConn then ghostDiedConn:Disconnect() ghostDiedConn = nil end
if ghostClone and ghostClone.Parent then ghostClone:Destroy() end
ghostClone = nil
local char = speaker.Character
if char then
for part, trans in pairs(ghostSavedTransparency) do
if part and part.Parent then
part.Transparency = trans
part.Material = Enum.Material.Plastic
if ghostSavedColors[part] then part.Color = ghostSavedColors[part] end
end
end
end
ghostSavedTransparency = {}
ghostSavedColors = {}
if ghostGui and ghostGui.Parent then ghostGui:Destroy() end
ghostGui = nil
hudElements.ghost = nil
execCmd('clip nonotify')
showArcPopup('Ghost', false)
end)
addcmd('toggleghost', {}, function(args, speaker)
execCmd(ghostActive and 'unghost' or 'ghost')
end)
-- ======================== PHYSICS GODMODE (Shared System) ========================
-- Any command that controls unanchored parts (orbitua, cannon, trowel, slift,
-- magnet, tumble, helicopter, jumper, minigun) enables this automatically.
-- Uses a reference counter: each command increments on start, decrements on stop.
-- 4 LAYERS of protection to prevent death:
-- 1. Stepped loop — forces health/state BEFORE physics every frame
-- 2. Heartbeat loop — forces health/state AFTER physics every frame (safety net)
-- 3. HealthChanged hook — catches damage between frames instantly
-- 4. CharacterAdded hook — re-protects on every respawn
-- Also disables the Dead state via SetStateEnabled so the engine can't kill you.
-- NOTE: No metatable hooks — they break Xeno executor property/method calls.
physicsGodCount = 0
physicsGodConn = nil
physicsGodSteppedConn = nil
physicsGodCharAddedConn = nil
physicsGodSpeaker = nil
physicsGodOriginalMaxHP = 100
function enablePhysicsGodmode(speaker)
physicsGodCount = physicsGodCount + 1
physicsGodSpeaker = speaker
if physicsGodCount == 1 and (not physicsGodConn or not physicsGodConn.Connected) then
-- Helper: fully protect a character's humanoid
local function protectCharacter(char)
if not char then return end
local hum = char:FindFirstChildWhichIsA('Humanoid')
if not hum then
-- Humanoid might not exist yet (character still loading)
char.DescendantAdded:Connect(function(child)
if physicsGodCount <= 0 then return end
if child:IsA('Humanoid') then
child.HealthChanged:Connect(function(hp)
if physicsGodCount <= 0 then return end
if hp < child.MaxHealth then
child.Health = child.MaxHealth
end
end)
child.MaxHealth = 1e9
child.Health = 1e9
pcall(function()
child:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
end)
end
end)
return
end
-- HealthChanged: catches damage between frames instantly
hum.HealthChanged:Connect(function(hp)
if physicsGodCount <= 0 then return end
if hp < hum.MaxHealth then
hum.Health = hum.MaxHealth
end
end)
-- Disable Dead state on the humanoid entirely
pcall(function()
hum:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
end)
hum.MaxHealth = 1e9
hum.Health = 1e9
end
-- LAYER 2: Stepped loop — runs BEFORE physics every frame
physicsGodSteppedConn = RunService.Stepped:Connect(function()
if physicsGodCount <= 0 then
if physicsGodSteppedConn then physicsGodSteppedConn:Disconnect() physicsGodSteppedConn = nil end
return
end
local char = physicsGodSpeaker.Character
if not char then return end
local hum = char:FindFirstChildWhichIsA('Humanoid')
if not hum then return end
if hum.MaxHealth < 1e9 then
physicsGodOriginalMaxHP = hum.MaxHealth
hum.MaxHealth = 1e9
end
hum.Health = 1e9
pcall(function()
hum:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
end)
if hum:GetState() == Enum.HumanoidStateType.Dead then
hum:ChangeState(Enum.HumanoidStateType.RunningNoPhysics)
end
end)
-- LAYER 3: Heartbeat loop — runs AFTER physics every frame (safety net)
physicsGodConn = RunService.Heartbeat:Connect(function()
if physicsGodCount <= 0 then
if physicsGodConn then physicsGodConn:Disconnect() physicsGodConn = nil end
return
end
pcall(function() sethiddenproperty(physicsGodSpeaker, "SimulationRadius", math.huge) end)
local char = physicsGodSpeaker.Character
if not char then return end
local hum = char:FindFirstChildWhichIsA('Humanoid')
if not hum then return end
if hum.MaxHealth < 1e9 then
physicsGodOriginalMaxHP = hum.MaxHealth
hum.MaxHealth = 1e9
end
hum.Health = 1e9
pcall(function()
hum:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
end)
if hum:GetState() == Enum.HumanoidStateType.Dead then
hum:ChangeState(Enum.HumanoidStateType.RunningNoPhysics)
end
end)
-- LAYER 4: Protect current character immediately
protectCharacter(physicsGodSpeaker.Character)
-- LAYER 5: On respawn, protect the new character too
physicsGodCharAddedConn = physicsGodSpeaker.CharacterAdded:Connect(function(newChar)
if physicsGodCount <= 0 then return end
task.wait(0.5)
protectCharacter(newChar)
end)
end
end
function disablePhysicsGodmode(speaker)
physicsGodCount = math.max(0, physicsGodCount - 1)
if physicsGodCount <= 0 then
physicsGodCount = 0
if physicsGodConn then physicsGodConn:Disconnect() physicsGodConn = nil end
if physicsGodSteppedConn then physicsGodSteppedConn:Disconnect() physicsGodSteppedConn = nil end
if physicsGodCharAddedConn then physicsGodCharAddedConn:Disconnect() physicsGodCharAddedConn = nil end
physicsGodCharAddedConn = nil
physicsGodSpeaker = nil
-- Restore normal gameplay — re-enable Dead state and original MaxHealth
pcall(function()
local char = speaker.Character
if char then
local hum = char:FindFirstChildWhichIsA('Humanoid')
if hum then
hum:SetStateEnabled(Enum.HumanoidStateType.Dead, true)
hum.MaxHealth = physicsGodOriginalMaxHP
hum.Health = physicsGodOriginalMaxHP
end
end
end)
end
end
-- ======================== NO-FALL-DAMAGE ========================
-- Disabled by default. Use 'nofalldamage' to enable if needed.
-- Previously ran permanently which capped falling speed to -50.
local noFallConn = nil
local noFallActive = false
local function startNoFallDamage()
if noFallConn and noFallConn.Connected then return end
noFallConn = RunService.Stepped:Connect(function()
if not noFallActive then return end
local char = Players.LocalPlayer.Character
if not char then return end
local root = char:FindFirstChild('HumanoidRootPart')
local hum = char:FindFirstChildWhichIsA('Humanoid')
if not root or not hum then return end
if hum.Health <= 0 then return end
local vel = root.Velocity
if vel.Y < -50 then
root.Velocity = Vector3.new(vel.X, -50, vel.Z)
end
end)
end
-- Not started automatically anymore — no more falling speed cap
-- ======================== MANUAL GODMODE COMMAND ========================
-- Lets you toggle the physics godmode on/off manually without needing a ua command.
-- Usage: god / ungod
addcmd('god', {}, function(args, speaker)
enablePhysicsGodmode(speaker)
notify('God', 'Physics godmode ON! You are invincible.')
end)
addcmd('ungod', {}, function(args, speaker)
disablePhysicsGodmode(speaker)
notify('God', 'Physics godmode OFF!')
end)
addcmd('togglegod', {}, function(args, speaker)
if physicsGodCount > 0 then
execCmd('ungod')
else
execCmd('god')
end
end)
-- ======================== ORBIT UA (VELOCITY-BASED TORNADO) ========================
-- Uses direct Velocity manipulation (not AlignPosition constraints) to orbit parts.
-- Parts get zero-friction physics, then their Velocity is set toward orbit targets.
-- Math: atan2 calculates current angle, offsets it by rotation speed, uses cos/sin for circle.
-- Velocity toward target = attractionStrength. Creates a spinning tornado of all unanchored parts.
-- Defaults: radius=50, speed=500, height=0
-- Usage: orbitua [radius] [speed] [height] | orbitua off / unorbitua
orbituaActive = false
orbituaConn = nil
orbituaParts = {}
orbituaRadius = 50
orbituaSpeed = 500
orbituaHeight = 0
orbituaDiedConn = nil
orbituaCenter = nil
addcmd('orbitua', {'orbitall'}, function(args, speaker)
if args[1] and args[1]:lower() == 'off' then execCmd('unorbitua') return end
if orbituaActive then execCmd('unorbitua') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('OrbitUA', 'Character not found') return end
enablePhysicsGodmode(speaker)
orbituaRadius = tonumber(args[1]) or 50
orbituaSpeed = tonumber(args[2]) or 500
orbituaHeight = tonumber(args[3]) or 0
local root = getRoot(char)
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
-- Create invisible anchored center point (the tornado eye)
orbituaCenter = Instance.new('Part')
orbituaCenter.Name = randomString()
orbituaCenter.Size = Vector3.new(1, 1, 1)
orbituaCenter.Transparency = 1
orbituaCenter.Anchored = true
orbituaCenter.CanCollide = false
orbituaCenter.Parent = workspace
orbituaCenter.CFrame = root.CFrame
-- Collect all eligible unanchored parts (not from our character)
orbituaParts = {}
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not char:IsAncestorOf(part) then
orbitua_prepPart(part)
table.insert(orbituaParts, part)
end
end
end
-- Watch for new parts being added to workspace
orbituaActive = true
local addConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not orbituaActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if speaker.Character and speaker.Character:IsAncestorOf(p) then return end
for _, existing in pairs(orbituaParts) do
if existing == p then return end
end
orbitua_prepPart(p)
table.insert(orbituaParts, p)
end)
end)
local removeConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(orbituaParts) do
if existing == p then table.remove(orbituaParts, i) break end
end
end)
if humanoid then
orbituaDiedConn = humanoid.Died:Connect(function() execCmd('unorbitua') end)
end
-- Main loop: Velocity-based circular orbit
-- Each frame: calculate where each part should be on the circle, set Velocity toward that point
local angleOffset = 0
orbituaConn = RunService.Heartbeat:Connect(function(dt)
if not orbituaActive then return end
local r = getRoot(speaker.Character)
if not r then return end
-- Move center to player position
orbituaCenter.CFrame = r.CFrame
sethiddenproperty(speaker, "SimulationRadius", math.huge)
-- Advance the rotation angle
angleOffset = angleOffset + (orbituaSpeed * 0.01 * dt)
local center = orbituaCenter.Position + Vector3.new(0, orbituaHeight, 0)
for i, part in pairs(orbituaParts) do
if part and part.Parent then
local pos = part.Position
-- Calculate current angle of part relative to center
local angle = math.atan2(pos.Z - center.Z, pos.X - center.X)
-- Offset angle by rotation speed to create orbit
local newAngle = angle + (orbituaSpeed * 0.01 * dt)
-- Distance from center (clamped to radius)
local dist = (Vector3.new(pos.X, center.Y, pos.Z) - center).Magnitude
local clampedDist = math.min(orbituaRadius, dist)
-- Calculate target position on the circle
local targetPos = Vector3.new(
center.X + math.cos(newAngle) * clampedDist,
center.Y + (orbituaHeight > 0 and (orbituaHeight * math.abs(math.sin((pos.Y - center.Y) / math.max(orbituaHeight, 1)))) or 0),
center.Z + math.sin(newAngle) * clampedDist
)
-- Set Velocity toward target = attraction
local dir = (targetPos - pos)
if dir.Magnitude > 0.01 then
part.Velocity = dir.Unit * orbituaSpeed
end
end
end
end)
showArcPopup('OrbitUA (R:' .. orbituaRadius .. ' S:' .. orbituaSpeed .. ')', true)
end)
-- Helper: prep a part for orbiting (strip constraints, zero friction, no collision)
function orbitua_prepPart(part)
for _, x in pairs(part:GetChildren()) do
if x:IsA('BodyAngularVelocity') or x:IsA('BodyForce') or x:IsA('BodyGyro') or x:IsA('BodyPosition') or x:IsA('BodyThrust') or x:IsA('BodyVelocity') or x:IsA('RocketPropulsion') or x:IsA('AlignPosition') or x:IsA('AlignOrientation') or x:IsA('Torque') then
x:Destroy()
end
end
part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
part.CanCollide = false
end
addcmd('unorbitua', {'noorbitua'}, function(args, speaker)
orbituaActive = false
disablePhysicsGodmode(speaker)
if orbituaConn then orbituaConn:Disconnect() orbituaConn = nil end
if orbituaDiedConn then orbituaDiedConn:Disconnect() orbituaDiedConn = nil end
for _, part in pairs(orbituaParts) do
if part and part.Parent then
pcall(function() part.CustomPhysicalProperties = nil end)
part.Velocity = Vector3.new(0, 0, 0)
part.CanCollide = true
end
end
orbituaParts = {}
if orbituaCenter and orbituaCenter.Parent then orbituaCenter:Destroy() end
orbituaCenter = nil
showArcPopup('OrbitUA', false)
end)
addcmd('toggleorbitua', {}, function(args, speaker)
if orbituaActive then execCmd('unorbitua') else execCmd('orbitua') end
end)
-- ======================== CUBE BUILDER ========================
-- Uses orbitua-style approach: orbitua_prepPart + AlignPosition/AlignOrientation
-- Scans workspace for 6 unanchored parts of the same type, aligns them as a cube 15 studs above your head
-- Groups by part.Name first (e.g. all "Brick", all "Wood"), falls back to ClassName
-- Works with ANY size block -- just need 6 of the same named type
-- Usage: cube | uncube / nocube / cubeoff / togglecube
local cubeParts = {}
local cubeActive = false
local cubeConn = nil
local cubeCenter = nil
local cubeDiedConn = nil
local cubeFaceOffsets = nil
addcmd('cube', {'cubebuild'}, function(args, speaker)
if cubeActive then execCmd('uncube') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Cube', 'Character not found') return end
local root = getRoot(char)
-- Collect all valid unanchored parts (skip tiny parts and character parts)
local allParts = {}
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored and part.Size.Magnitude > 0.3 then
if not char:IsAncestorOf(part) then
table.insert(allParts, part)
end
end
end
-- Group by part.Name first (same type of block), fall back to ClassName
local function findBestGroup(keyFunc)
local typeGroups = {}
for _, part in pairs(allParts) do
local key = keyFunc(part)
if not typeGroups[key] then
typeGroups[key] = {}
end
table.insert(typeGroups[key], part)
end
local bestGroup = nil
local bestCount = 0
local bestAvgSize = 0
for key, group in pairs(typeGroups) do
local count = #group
if count >= 6 and count >= bestCount then
local avgSize = 0
for _, p in pairs(group) do
avgSize = avgSize + p.Size.Magnitude
end
avgSize = avgSize / count
if count > bestCount or avgSize > bestAvgSize then
bestGroup = group
bestCount = count
bestAvgSize = avgSize
end
end
end
return bestGroup, bestCount
end
-- Try grouping by Name first, then ClassName as fallback
local bestGroup, bestCount = findBestGroup(function(p) return p.Name end)
if not bestGroup then
bestGroup, bestCount = findBestGroup(function(p) return p.ClassName end)
end
if not bestGroup then
notify('Cube', 'Could not find 6 parts of the same type in workspace')
return
end
-- Take exactly 6 parts
cubeParts = {}
for i = 1, 6 do
cubeParts[i] = bestGroup[i]
end
-- Determine cube dimensions: average size of all 6 parts
local avgX, avgY, avgZ = 0, 0, 0
for _, part in pairs(cubeParts) do
avgX = avgX + part.Size.X
avgY = avgY + part.Size.Y
avgZ = avgZ + part.Size.Z
end
avgX = avgX / 6
avgY = avgY / 6
avgZ = avgZ / 6
local side = (avgX + avgY + avgZ) / 3 -- average side length
local halfW = side / 2
local halfT = side / 2
-- 6 face offsets relative to cube center
cubeFaceOffsets = {
CFrame.new(halfW + halfT, 0, 0) * CFrame.Angles(0, 0, math.rad(90)), -- Right (+X)
CFrame.new(-halfW - halfT, 0, 0) * CFrame.Angles(0, 0, math.rad(-90)), -- Left (-X)
CFrame.new(0, halfW + halfT, 0) * CFrame.Angles(0, 0, 0), -- Top (+Y)
CFrame.new(0, -halfW - halfT, 0) * CFrame.Angles(math.rad(180), 0, 0), -- Bottom (-Y)
CFrame.new(0, 0, halfW + halfT) * CFrame.Angles(math.rad(90), 0, 0), -- Front (+Z)
CFrame.new(0, 0, -halfW - halfT) * CFrame.Angles(math.rad(-90), 0, 0), -- Back (-Z)
}
-- Prep parts using orbitua's helper (strip old constraints, zero friction, no collision)
for _, part in pairs(cubeParts) do
orbitua_prepPart(part)
end
-- Add AlignPosition + AlignOrientation to each part for precise face positioning
for i = 1, 6 do
local part = cubeParts[i]
local ap = Instance.new('AlignPosition')
ap.Name = 'CubeAP'
ap.Mode = Enum.PositionAlignmentMode.OneAttachment
ap.Attachment0 = Instance.new('Attachment', part)
ap.MaxForce = math.huge
ap.ReactionForceEnabled = false
ap.Responsiveness = 200
ap.Parent = part
local ao = Instance.new('AlignOrientation')
ao.Name = 'CubeAO'
ao.Mode = Enum.OrientationAlignmentMode.OneAttachment
ao.Attachment0 = Instance.new('Attachment', part)
ao.MaxTorque = math.huge
ao.Responsiveness = 200
ao.Parent = part
end
-- Weld all 6 faces together for sturdiness
for i = 1, 6 do
for j = i + 1, 6 do
local w = Instance.new('WeldConstraint')
w.Part0 = cubeParts[i]
w.Part1 = cubeParts[j]
w.Parent = cubeParts[i]
end
end
-- Create invisible anchored center point (same as orbitua)
cubeCenter = Instance.new('Part')
cubeCenter.Name = randomString()
cubeCenter.Size = Vector3.new(1, 1, 1)
cubeCenter.Transparency = 1
cubeCenter.Anchored = true
cubeCenter.CanCollide = false
cubeCenter.Parent = workspace
cubeCenter.CFrame = root.CFrame * CFrame.new(0, 15, 0)
cubeActive = true
local hum = char:FindFirstChildWhichIsA('Humanoid')
if hum then
cubeDiedConn = hum.Died:Connect(function() execCmd('uncube') end)
end
-- Main loop: update alignment targets each frame (same structure as orbitua)
cubeConn = RunService.Heartbeat:Connect(function(dt)
if not cubeActive then return end
local r = getRoot(speaker.Character)
if not r then return end
if not cubeCenter or not cubeCenter.Parent then return end
-- Move center 15 studs above player
cubeCenter.CFrame = r.CFrame * CFrame.new(0, 15, 0)
sethiddenproperty(speaker, "SimulationRadius", math.huge)
-- Update each face's alignment target
for i = 1, 6 do
local part = cubeParts[i]
if part and part.Parent then
local targetCF = cubeCenter.CFrame * cubeFaceOffsets[i]
local ap = part:FindFirstChild('CubeAP')
if ap then ap.Position = targetCF.Position end
local ao = part:FindFirstChild('CubeAO')
if ao then ao.CFrame = targetCF end
-- Kill velocity so it stays tight
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end
end
end)
showArcPopup('Cube (15 studs)', true)
notify('Cube', 'Built cube from ' .. bestCount .. ' similar parts (15 studs above head)')
end)
addcmd('uncube', {'nocube', 'cubeoff'}, function(args, speaker)
cubeActive = false
if cubeConn then cubeConn:Disconnect() cubeConn = nil end
if cubeDiedConn then cubeDiedConn:Disconnect() cubeDiedConn = nil end
if cubeCenter and cubeCenter.Parent then cubeCenter:Destroy() end
cubeCenter = nil
for _, part in pairs(cubeParts) do
if part and part.Parent then
for _, x in pairs(part:GetChildren()) do
if x:IsA('AlignPosition') or x:IsA('AlignOrientation') or x:IsA('WeldConstraint') or x:IsA('Attachment') then
x:Destroy()
end
end
pcall(function() part.CustomPhysicalProperties = nil end)
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end
end
cubeParts = {}
cubeFaceOffsets = nil
showArcPopup('Cube', false)
end)
addcmd('togglecube', {}, function(args, speaker)
if cubeActive then execCmd('uncube') else execCmd('cube') end
end)
-- ======================== BLACK HOLE ========================
-- ALL unanchored parts form a black hole: 75% tight spiraling core, 25% orbit ring.
-- Core parts have varying orbit radii + Y wobble for realistic vortex look.
-- Constant speed Velocity (orbitua-style) so parts never stop, never lose ownership.
-- Tiny random velocity perturbation every frame keeps server ownership active.
-- Grabs new parts that spawn. Stays on after death. No cap.
-- Usage: blackhole [speed] | unblackhole / noblackhole / blackholeoff / toggleblackhole
bhActive = false
bhConn = nil
bhAllParts = {}
bhCenterPos = nil
bhRadius = 15
bhSpeed = 300
bhAddConn = nil
bhRemConn = nil
bhScanConn = nil
addcmd('blackhole', {'bhole'}, function(args, speaker)
if bhActive then execCmd('unblackhole') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Black Hole', 'Character not found') return end
local root = getRoot(char)
bhSpeed = tonumber(args[1]) or 300
bhAllParts = {}
-- Collect ALL eligible unanchored parts (skip tiny debris only)
local found = {}
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored and part.Size.Magnitude > 0.5 then
if not char:IsAncestorOf(part) then
if not (part.Size.X < 1 and part.Size.Y < 1 and part.Size.Z < 1) then
table.insert(found, part)
end
end
end
end
if #found < 4 then
notify('Black Hole', 'Not enough unanchored parts in workspace')
return
end
-- Shuffle for random split
for i = #found, 2, -1 do
local j = math.random(1, i)
local tmp = found[i]
found[i] = found[j]
found[j] = tmp
end
-- Prep and add all parts
for _, part in pairs(found) do
orbitua_prepPart(part)
table.insert(bhAllParts, part)
end
-- Record center (stays even if you move)
bhCenterPos = root.Position
bhRadius = math.max(15, #found * 0.15 + 10)
bhActive = true
-- Grab new parts that appear (like orbitua)
bhAddConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not bhActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if p.Size.Magnitude < 0.5 then return end
if p.Size.X < 1 and p.Size.Y < 1 and p.Size.Z < 1 then return end
if speaker.Character and speaker.Character:IsAncestorOf(p) then return end
for _, existing in pairs(bhAllParts) do
if existing == p then return end
end
orbitua_prepPart(p)
table.insert(bhAllParts, p)
end)
end)
-- Remove destroyed parts
bhRemConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(bhAllParts) do
if existing == p then table.remove(bhAllParts, i) break end
end
end)
-- Periodically rescan workspace every 3 seconds to grab parts that got unanchored later
bhScanConn = task.spawn(function()
while bhActive do
task.wait(3)
if not bhActive then break end
local char2 = speaker.Character
for _, part in pairs(workspace:GetDescendants()) do
if not bhActive then break end
if part:IsA('BasePart') and not part.Anchored and part.Size.Magnitude > 0.5 then
if not (part.Size.X < 1 and part.Size.Y < 1 and part.Size.Z < 1) then
if not char2 or not char2:IsAncestorOf(part) then
local alreadyIn = false
for _, existing in pairs(bhAllParts) do
if existing == part then alreadyIn = true break end
end
if not alreadyIn then
orbitua_prepPart(part)
table.insert(bhAllParts, part)
end
end
end
end
end
end
end)
-- Main loop
bhConn = RunService.Heartbeat:Connect(function(dt)
if not bhActive then return end
sethiddenproperty(speaker, "SimulationRadius", math.huge)
local total = #bhAllParts
if total < 2 then return end
local coreEnd = math.floor(total * 0.75)
if coreEnd < 1 then coreEnd = 1 end
if coreEnd >= total then coreEnd = total - 1 end
for i, part in pairs(bhAllParts) do
if not part or not part.Parent then end
local pos = part.Position
local angle = math.atan2(pos.Z - bhCenterPos.Z, pos.X - bhCenterPos.X)
-- Tiny random jitter every frame to keep server ownership
local jitter = Vector3.new(
math.random(-5, 5),
0,
math.random(-5, 5)
)
if i <= coreEnd then
-- CORE: tight vortex around center
-- Each part gets a slightly different orbit radius based on index for layered look
local layer = ((i - 1) % 5) * 0.6
local coreR = 2 + layer
-- Vary speed per layer so inner spins faster than outer (like a real vortex)
local speedMult = 1.5 - (layer * 0.15)
local newAngle = angle + (bhSpeed * 0.012 * speedMult * dt)
-- Y wobble for 3D vortex effect
local yWobble = math.sin(tick() * 3 + i * 1.5) * 2
local targetPos = Vector3.new(
bhCenterPos.X + math.cos(newAngle) * coreR,
bhCenterPos.Y + yWobble,
bhCenterPos.Z + math.sin(newAngle) * coreR
)
local dir = targetPos - pos
if dir.Magnitude > 0.01 then
part.Velocity = dir.Unit * bhSpeed + jitter
end
else
-- ORBIT: wide ring with vertical bob
local newAngle = angle + (bhSpeed * 0.01 * dt)
local flatDist = (Vector3.new(pos.X - bhCenterPos.X, 0, pos.Z - bhCenterPos.Z)).Magnitude
local clampedDist = math.min(bhRadius, flatDist)
local targetPos = Vector3.new(
bhCenterPos.X + math.cos(newAngle) * clampedDist,
bhCenterPos.Y + 3 * math.sin(tick() * 2 + i),
bhCenterPos.Z + math.sin(newAngle) * clampedDist
)
local dir = targetPos - pos
if dir.Magnitude > 0.01 then
part.Velocity = dir.Unit * bhSpeed + jitter
end
end
end
end)
showArcPopup('Black Hole', true)
notify('Black Hole', #found .. ' parts absorbed (core + ring)')
end)
addcmd('unblackhole', {'noblackhole', 'blackholeoff'}, function(args, speaker)
bhActive = false
if bhConn then bhConn:Disconnect() bhConn = nil end
if bhAddConn then bhAddConn:Disconnect() bhAddConn = nil end
if bhRemConn then bhRemConn:Disconnect() bhRemConn = nil end
bhScanConn = nil
for _, part in pairs(bhAllParts) do
if part and part.Parent then
pcall(function() part.CustomPhysicalProperties = nil end)
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end
end
bhAllParts = {}
bhCenterPos = nil
showArcPopup('Black Hole', false)
end)
addcmd('toggleblackhole', {}, function(args, speaker)
if bhActive then execCmd('unblackhole') else execCmd('blackhole') end
end)
-- ======================== UNANCHORED CANNON ========================
-- 1 random unanchored part. Floats 10 studs from you toward mouse using VELOCITY (serversided).
-- Click = catapult toward mouse. Green dot stays. Auto-grabs next.
-- EXACT same grab logic as orbitua. orbitua_prepPart on grabbed part.
-- Usage: cannon [power] | uncannon
cannonActive = false
cannonDot = nil
cannonConn = nil
cannonClickConn = nil
cannonHeldPart = nil
cannonHighlight = nil
cannonRecheckThread = nil
cannonKeyConn = nil
-- Helper: make green dot, returns it
local function makeCannonDot()
local dot = Instance.new('Part')
dot.Name = randomString()
dot.Size = Vector3.new(3, 3, 3)
dot.Shape = Enum.PartType.Ball
dot.Color = Color3.fromRGB(0, 255, 0)
dot.Material = Enum.Material.Neon
dot.Anchored = true
dot.CanCollide = false
dot.CanQuery = false
dot.CanTouch = false
dot.Transparency = 0.3
dot.CastShadow = false
dot.Massless = true
dot.Parent = workspace
return dot
end
-- Helper: show cannon popup (kills any old animation first, no queue race)
local function showCannonPopup(on)
pcall(function()
-- Kill any running popup animation by destroying and rebuilding
if ArcPopupGui and ArcPopupGui.Parent then
ArcPopupGui:Destroy()
end
ArcPopupGui = nil
ArcPopupFrame = nil
ArcPopupQueue = {}
local gui = Instance.new('ScreenGui')
gui.Name = 'ArcYieldPopup'
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = game:GetService('CoreGui')
ArcPopupGui = gui
local frame = Instance.new('Frame')
frame.Size = UDim2.new(0, 280, 0, 55)
frame.Position = UDim2.new(0.5, -140, 0, -65)
frame.BackgroundColor3 = Color3.fromRGB(10, 10, 20)
frame.BackgroundTransparency = 0.15
frame.BorderSizePixel = 0
frame.Parent = gui
ArcPopupFrame = frame
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = frame
local stroke = Instance.new('UIStroke')
stroke.Color = Color3.fromRGB(50, 100, 255)
stroke.Thickness = 1.5
stroke.Transparency = 0.3
stroke.Parent = frame
local accent = Instance.new('Frame')
accent.Size = UDim2.new(0, 5, 0, 55)
accent.BackgroundColor3 = Color3.fromRGB(50, 120, 255)
accent.BorderSizePixel = 0
local ac = Instance.new('UICorner')
ac.CornerRadius = UDim.new(0, 3)
ac.Parent = accent
accent.Parent = frame
local tl = Instance.new('TextLabel')
tl.Name = 'Title'
tl.Size = UDim2.new(1, -20, 0, 28)
tl.Position = UDim2.new(0, 14, 0, 2)
tl.BackgroundTransparency = 1
tl.Text = 'Cannon'
tl.TextColor3 = Color3.fromRGB(220, 230, 255)
tl.TextStrokeColor3 = Color3.fromRGB(30, 80, 255)
tl.TextStrokeTransparency = 0.6
tl.Font = Enum.Font.GothamBold
tl.TextSize = 16
tl.TextXAlignment = Enum.TextXAlignment.Left
tl.Parent = frame
local sl = Instance.new('TextLabel')
sl.Name = 'Status'
sl.Size = UDim2.new(1, -20, 0, 20)
sl.Position = UDim2.new(0, 14, 0, 28)
sl.BackgroundTransparency = 1
sl.Text = on and 'ENABLED' or 'DISABLED'
sl.TextColor3 = on and Color3.fromRGB(100, 255, 130) or Color3.fromRGB(255, 100, 100)
sl.TextStrokeColor3 = Color3.fromRGB(30, 80, 255)
sl.TextStrokeTransparency = 0.8
sl.Font = Enum.Font.Gotham
sl.TextSize = 13
sl.TextXAlignment = Enum.TextXAlignment.Left
sl.Parent = frame
local ts = game:GetService('TweenService')
ts:Create(frame, TweenInfo.new(0.35, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Position = UDim2.new(0.5, -140, 0, 10),
BackgroundTransparency = 0
}):Play()
end)
end
addcmd('cannon', {}, function(args, speaker)
if cannonActive then execCmd('uncannon') return end
local char = speaker.Character
if not char then notify('Cannon', 'Character not found') return end
enablePhysicsGodmode(speaker)
local mouse = speaker:GetMouse()
-- Parse optional power argument (default 500)
local cannonPower = tonumber(args[1] or '') or 500
cannonActive = true
cannonDot = makeCannonDot()
cannonDot.AncestryChanged:Connect(function(_, newParent)
if not newParent and cannonActive then
pcall(function() cannonDot.Parent = workspace end)
end
end)
-- Check if part has any Humanoid ancestor (skip body parts)
local function isBodyPart(part)
local ancestor = part.Parent
while ancestor and ancestor ~= workspace do
if ancestor:FindFirstChildWhichIsA('Humanoid') then
return true
end
ancestor = ancestor.Parent
end
return false
end
-- Check if part is welded to any anchored part (recursive, depth capped)
-- Uses GetJoints() to find ALL connections from BOTH sides
-- Filters out SurfaceJoints (auto physics contacts with terrain/ground)
-- Returns true = REJECT (welded chain leads to anchored)
-- Returns false = OK (0 real welds, or all welds lead to unanchored = free clump)
local function isWeldedToAnchored(part, visited, depth)
if not visited then visited = {} end
if not depth then depth = 0 end
if depth > 20 then return false end
if visited[part] then return false end
visited[part] = true
if part.Anchored then return true end
local ok, joints = pcall(function() return part:GetJoints() end)
if not ok or not joints then return false end
for _, j in pairs(joints) do
-- Skip SurfaceJoints: auto-created when part touches terrain/ground
-- These are NOT real welds and lead to false positives
local className = j.ClassName
if className ~= 'SurfaceJoint' and className ~= 'SurfaceConstraint' then
local other = nil
local jok = pcall(function()
-- Try Part0/Part1 first (Weld, WeldConstraint, NoCollisionConstraint, etc.)
if j.Part0 and j.Part0 ~= part then other = j.Part0 end
if not other and j.Part1 and j.Part1 ~= part then other = j.Part1 end
-- Fallback: Attachment-based (RodConstraint, SpringConstraint, HingeConstraint, etc.)
if not other then
if j.Attachment0 and j.Attachment0.Parent and j.Attachment0.Parent:IsA('BasePart') and j.Attachment0.Parent ~= part then
other = j.Attachment0.Parent
elseif j.Attachment1 and j.Attachment1.Parent and j.Attachment1.Parent:IsA('BasePart') and j.Attachment1.Parent ~= part then
other = j.Attachment1.Parent
end
end
end)
if jok and other then
if other.Anchored then return true end
if isWeldedToAnchored(other, visited, depth + 1) then return true end
end
end
end
return false
end
-- Remove old highlight
local function removeHighlight()
if cannonHighlight and cannonHighlight.Parent then
pcall(function() cannonHighlight:Destroy() end)
end
cannonHighlight = nil
end
-- Pre-built queue from background scan (no lag on click/grab)
local cannonQueue = {}
-- Pick 1 random part from the queue and hold it
-- No weld check here -- queue is pre-filtered by the scan every 30s
local function grabFromQueue()
removeHighlight()
local valid = {}
for _, part in pairs(cannonQueue) do
if part and part.Parent and part.Anchored == false then
if not char:IsAncestorOf(part) then
if not isBodyPart(part) then
valid[#valid + 1] = part
end
end
end
end
if #valid > 0 then
local chosen = valid[math.random(1, #valid)]
-- Safety: double-check weld chain in case it changed since last scan
local ok2, welded = pcall(function() return isWeldedToAnchored(chosen) end)
if ok2 and welded then
chosen = nil
for _, p in ipairs(valid) do
local ok3, w2 = pcall(function() return isWeldedToAnchored(p) end)
if not ok3 or not w2 then chosen = p break end
end
end
if not chosen then cannonHeldPart = nil return end
pcall(function() orbitua_prepPart(chosen) end)
pcall(function() chosen.Massless = true end)
-- Teleport onto part briefly for server ownership, then come back
-- Stay 0.1 second, skip if part is too far (>500 studs)
-- Kill player momentum after teleport back so you dont get flung
pcall(function()
local root = getRoot(speaker.Character)
if root then
local dist = (chosen.Position - root.Position).Magnitude
if dist <= 500 then
local savedPos = root.CFrame
root.CFrame = chosen.CFrame + Vector3.new(0, 3, 0)
task.wait(0.1)
root.CFrame = savedPos
root.Velocity = Vector3.new(0, 0, 0)
root.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
root.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
end
end
end)
pcall(function() chosen:SetNetworkOwner(nil) end)
pcall(function() workspace:ResetNetworkOwnerlessTimeout(0) end)
cannonHeldPart = chosen
-- ESP highlight
local hl = Instance.new('Highlight')
hl.Name = randomString()
hl.FillColor = Color3.fromRGB(255, 100, 0)
hl.OutlineColor = Color3.fromRGB(255, 255, 0)
hl.FillTransparency = 0.5
hl.OutlineTransparency = 0
hl.Parent = chosen
cannonHighlight = hl
else
cannonHeldPart = nil
end
end
-- Scan function: rebuild queue with weld check
-- Yields every 40 parts so it doesn't freeze a single frame (no lag spike)
local function fullScan()
local freshQueue = {}
local allParts = {}
pcall(function()
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA('BasePart') and obj.Anchored == false then
allParts[#allParts + 1] = obj
end
end
end)
local freshChar = speaker.Character
local count = 0
for i = 1, #allParts do
local part = allParts[i]
if part and part.Parent then
if freshChar and not freshChar:IsAncestorOf(part) then
if not isBodyPart(part) then
local weldOk, welded = pcall(function() return isWeldedToAnchored(part) end)
if not weldOk or not welded then
freshQueue[#freshQueue + 1] = part
end
end
end
end
count = count + 1
if count % 5 == 0 then
RunService.Heartbeat:Wait()
end
end
cannonQueue = freshQueue
end
-- Background scan every 5 seconds: rebuilds queue + rechecks held part
-- Everything is spread across frames so there is zero lag spike
cannonRecheckThread = task.spawn(function()
while cannonActive do
task.wait(5)
if not cannonActive then break end
-- Remove all FallDamageScripts from workspace only (game:GetDescendants is too heavy)
pcall(function()
local count = 0
for _, obj in pairs(workspace:GetDescendants()) do
local n = obj.Name
if n == 'FallDamageScript' or n == 'fallDamageScript' or n == 'FallDamage' then
pcall(function() obj:Destroy() end)
end
count = count + 1
if count % 200 == 0 then RunService.Heartbeat:Wait() end
end
end)
-- Also check common script services
pcall(function()
for _, svc in pairs({game:GetService('ServerScriptService'), game:GetService('StarterPlayer'), game:GetService('StarterGui'), game:GetService('ReplicatedFirst')}) do
local count = 0
for _, obj in pairs(svc:GetDescendants()) do
local n = obj.Name
if n == 'FallDamageScript' or n == 'fallDamageScript' or n == 'FallDamage' then
pcall(function() obj:Destroy() end)
end
count = count + 1
if count % 200 == 0 then RunService.Heartbeat:Wait() end
end
end
end)
fullScan()
-- Recheck currently held part: did it die, anchor, or get welded?
if cannonHeldPart and cannonHeldPart.Parent then
if cannonHeldPart.Anchored then
grabFromQueue()
else
local ok2, welded = pcall(function()
return isWeldedToAnchored(cannonHeldPart)
end)
if ok2 and welded then
grabFromQueue()
end
end
elseif cannonHeldPart then
-- Part destroyed
cannonHeldPart = nil
grabFromQueue()
end
end
end)
-- Initial scan in background so cannon enables INSTANTLY (no waiting)
-- Grab happens once scan finishes populating the queue
task.spawn(function()
fullScan()
if cannonActive then grabFromQueue() end
end)
-- Press K to force re-scan (rechecks welds on everything)
local UIS = game:GetService('UserInputService')
cannonKeyConn = UIS.InputBegan:Connect(function(input)
if not cannonActive then return end
if input.KeyCode == Enum.KeyCode.K then
fullScan()
grabFromQueue()
end
end)
-- Main loop: move dot, move held part with VELOCITY (serversided!)
cannonConn = RunService.Heartbeat:Connect(function(dt)
if not cannonActive then return end
-- Keep green dot alive (games delete non-game parts from workspace)
if not cannonDot or not cannonDot.Parent then
cannonDot = makeCannonDot()
cannonDot.AncestryChanged:Connect(function(_, newParent)
if not newParent and cannonActive then
pcall(function() cannonDot.Parent = workspace end)
end
end)
end
-- Also force-dot-parent every frame as backup
if cannonDot.Parent ~= workspace then
pcall(function() cannonDot.Parent = workspace end)
end
local r = getRoot(speaker.Character)
if not r then return end
-- Serversided (same as orbitua)
pcall(function() sethiddenproperty(speaker, "SimulationRadius", math.huge) end)
-- Force server ownership on held part every frame
if cannonHeldPart and cannonHeldPart.Parent then
pcall(function() cannonHeldPart:SetNetworkOwner(nil) end)
end
-- Move green dot to mouse (anchored part, CFrame is fine)
pcall(function()
local mousePos = mouse.Hit.Position
-- Clamp dot to max 200 studs from camera so it's always visible
local cam = workspace.CurrentCamera
if cam then
local camPos = cam.CFrame.Position
if (mousePos - camPos).Magnitude > 200 then
mousePos = camPos + (mousePos - camPos).Unit * 200
end
end
cannonDot.CFrame = CFrame.new(mousePos)
end)
-- Move held part using VELOCITY (serversided, everyone sees it move)
if cannonHeldPart and cannonHeldPart.Parent then
local ok = pcall(function()
local toMouse = cannonDot.Position - r.Position
local targetPos = r.Position + toMouse.Unit * 10
local dir = targetPos - cannonHeldPart.Position
if dir.Magnitude > 0.5 then
cannonHeldPart.Velocity = dir.Unit * math.min(dir.Magnitude * 8, 300)
else
cannonHeldPart.Velocity = Vector3.new(0, 0, 0)
end
cannonHeldPart.RotVelocity = Vector3.new(0, 0, 0)
cannonHeldPart.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
cannonHeldPart.CanCollide = false
cannonHeldPart.CanTouch = false
end)
if not ok then
-- Part is probably broken, grab a new one from queue
removeHighlight()
cannonHeldPart = nil
grabFromQueue()
end
-- Keep highlight on
if not cannonHighlight or not cannonHighlight.Parent then
if cannonHeldPart and cannonHeldPart.Parent then
local hl = Instance.new('Highlight')
hl.Name = randomString()
hl.FillColor = Color3.fromRGB(255, 100, 0)
hl.OutlineColor = Color3.fromRGB(255, 255, 0)
hl.FillTransparency = 0.5
hl.OutlineTransparency = 0
hl.Parent = cannonHeldPart
cannonHighlight = hl
end
end
end
end)
-- Click = catapult force toward mouse, keeps pushing for 0.5s so lag doesnt kill it
cannonClickConn = mouse.Button1Down:Connect(function()
if not cannonActive then return end
if not cannonHeldPart or not cannonHeldPart.Parent then return end
local launched = cannonHeldPart
local launchDir = (cannonDot.Position - launched.Position).Unit
cannonHeldPart = nil
removeHighlight()
pcall(function()
launched:SetNetworkOwner(nil)
launched.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
launched.CanCollide = false
end)
-- Keep pushing for 0.5 seconds so lag spikes dont eat the launch
task.spawn(function()
local startTime = tick()
while tick() - startTime < 0.5 do
if not launched or not launched.Parent then break end
pcall(function()
launched.Velocity = launchDir * cannonPower
launched.RotVelocity = Vector3.new(
math.random(-100, 100),
math.random(-100, 100),
math.random(-100, 100)
)
end)
RunService.Heartbeat:Wait()
end
end)
-- Wait 0.2 seconds then grab next part (dont teleport instantly on shoot)
task.delay(0.2, function()
if not cannonActive then return end
grabFromQueue()
end)
end)
-- Show ENABLED popup (destroys old popup first = no race conditions)
showCannonPopup(true)
notify('Cannon', 'Click to launch! Green dot stays')
end)
addcmd('uncannon', {}, function(args, speaker)
cannonActive = false
disablePhysicsGodmode(speaker)
if cannonConn then cannonConn:Disconnect() cannonConn = nil end
if cannonClickConn then cannonClickConn:Disconnect() cannonClickConn = nil end
if cannonKeyConn then cannonKeyConn:Disconnect() cannonKeyConn = nil end
if cannonHighlight and cannonHighlight.Parent then cannonHighlight:Destroy() end
cannonHighlight = nil
if cannonHeldPart and cannonHeldPart.Parent then
pcall(function() cannonHeldPart.CustomPhysicalProperties = nil end)
pcall(function() cannonHeldPart.Velocity = Vector3.new(0, 0, 0) end)
end
cannonHeldPart = nil
cannonRecheckThread = nil
if cannonDot and cannonDot.Parent then cannonDot:Destroy() end
cannonDot = nil
showCannonPopup(false)
end)
-- ======================== TROWEL ========================
-- Open-top box 300 studs above player. Walls/floor always have collisions.
-- Collect tool: scan nearby parts -> fly them up -> over box -> drop in.
-- Launch tool: fly parts up -> over mouse -> drop at mouse position.
-- Everything serversided via velocity only. No teleport.
-- Usage: trowel [mode] | untrowel
trowelActive = false
trowelConn = nil
trowelParts = {}
trowelBox = nil
trowelLaunchTool = nil
trowelCollectTool = nil
trowelCollectRadius = 80
trowelDeploying = false
addcmd('trowel', {}, function(args, speaker)
if trowelActive then execCmd('untrowel') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Trowel', 'Character not found') return end
enablePhysicsGodmode(speaker)
trowelActive = true
trowelParts = {}
trowelDeploying = false
local deployMode = (args[1] or ''):lower()
local validModes = {'explode', 'rain', 'spiral', 'shotgun', 'orbit', 'scatter', 'wave', 'normal', 'gun', 'one', 'drop', 'tower', 'wall', 'floor', 'bridge', 'cage', 'staircase', 'missile', 'shield', 'hail', 'volcano', 'magnet', 'fling', 'pile'}
local modeValid = false
for _, m in pairs(validModes) do
if deployMode == m then modeValid = true break end
end
if not modeValid then deployMode = 'normal' end
local root = getRoot(char)
local boxPos = root.Position + Vector3.new(0, 300, 0)
-- Target Y is at the TOP of the walls (boxPos.Y + 25) so parts fly up,
-- then get pushed DOWN into the open-top box instead of floating above it.
local aboveBoxY = boxPos.Y + 25
-- Build open-top box with REAL collisions always on
local boxModel = Instance.new('Model')
boxModel.Name = randomString()
boxModel.Parent = workspace
-- Floor
local floor = Instance.new('Part')
floor.Name = randomString()
floor.Size = Vector3.new(50, 1, 50)
floor.Position = boxPos - Vector3.new(0, 24.5, 0)
floor.Anchored = true
floor.CanCollide = true
floor.CanQuery = false
floor.CanTouch = false
floor.CastShadow = false
floor.Material = Enum.Material.Grass
floor.Color = Color3.fromRGB(50, 200, 80)
floor.Transparency = 0.3
floor.Parent = boxModel
-- 4 Walls
local wallOffsets = {
Vector3.new(0, 0, 24.5),
Vector3.new(0, 0, -24.5),
Vector3.new(24.5, 0, 0),
Vector3.new(-24.5, 0, 0),
}
local wallSizes = {
Vector3.new(50, 50, 1),
Vector3.new(50, 50, 1),
Vector3.new(1, 50, 50),
Vector3.new(1, 50, 50),
}
for w = 1, 4 do
local wall = Instance.new('Part')
wall.Name = randomString()
wall.Size = wallSizes[w]
wall.Position = boxPos + wallOffsets[w]
wall.Anchored = true
wall.CanCollide = true
wall.CanQuery = false
wall.CanTouch = false
wall.CastShadow = false
wall.Material = Enum.Material.ForceField
wall.Color = Color3.fromRGB(0, 150, 255)
wall.Transparency = 0.5
wall.Parent = boxModel
end
-- NO ceiling - open top so parts drop in
-- SelectionBox wireframe
local shellDummy = Instance.new('Part')
shellDummy.Name = randomString()
shellDummy.Size = Vector3.new(50, 50, 50)
shellDummy.Position = boxPos
shellDummy.Anchored = true
shellDummy.CanCollide = false
shellDummy.CanQuery = false
shellDummy.CanTouch = false
shellDummy.Transparency = 1
shellDummy.Parent = boxModel
local selBox = Instance.new('SelectionBox')
selBox.Adornee = shellDummy
selBox.Color3 = Color3.fromRGB(100, 200, 255)
selBox.LineThickness = 0.08
selBox.Transparency = 0.2
selBox.Parent = shellDummy
-- Glowing beacon
local core = Instance.new('Part')
core.Name = randomString()
core.Size = Vector3.new(3, 3, 3)
core.Shape = Enum.PartType.Ball
core.Position = boxPos + Vector3.new(0, 22, 0)
core.Anchored = true
core.CanCollide = false
core.CanQuery = false
core.CanTouch = false
core.CastShadow = false
core.Material = Enum.Material.Neon
core.Color = Color3.fromRGB(0, 200, 255)
core.Transparency = 0.2
core.Parent = boxModel
local boxLight = Instance.new('PointLight')
boxLight.Color = Color3.fromRGB(0, 180, 255)
boxLight.Brightness = 3
boxLight.Range = 40
boxLight.Parent = core
trowelBox = boxModel
-- ========== HELPER: fly parts up, over, drop ==========
local function flyPartsTo(partsList, destX, destZ, spreadX, spreadZ, onDrop)
-- Phase 1: fly up above box
for i = 1, #partsList do
local part = partsList[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
task.wait(0.02)
end
task.wait(2)
-- Phase 2: fly to dest X/Z
for i = 1, #partsList do
local part = partsList[i]
if part and part.Parent then
pcall(function()
local gx = destX + math.random(-spreadX, spreadX)
local gz = destZ + math.random(-spreadZ, spreadZ)
local diff = Vector3.new(gx - part.Position.X, 30, gz - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
-- Phase 3: drop (restore physics, let gravity pull)
for i = 1, #partsList do
local part = partsList[i]
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
if onDrop then onDrop() end
end
-- ========== MAIN PHYSICS LOOP ==========
-- State machine: fly_up -> fly_over -> drop -> settling -> in_box
trowelConn = RunService.Heartbeat:Connect(function(dt)
if not trowelActive then return end
pcall(function() sethiddenproperty(speaker, "SimulationRadius", math.huge) end)
for i = #trowelParts, 1, -1 do
local entry = trowelParts[i]
local part = entry.part
if not part or not part.Parent then
table.remove(trowelParts, i)
else
pcall(function()
if entry.state == 'fly_up' then
-- Clamp velocity so parts don't overshoot past the top of the box
local distToTarget = entry.targetY - part.Position.Y
if distToTarget <= 2 then
-- Close enough, zero out vertical and move to fly_over
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
entry.state = 'fly_over'
else
local upSpeed = math.min(600, distToTarget * 8)
part.Velocity = Vector3.new(0, upSpeed, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end
elseif entry.state == 'fly_over' then
local gx = entry.targetX
local gz = entry.targetZ
local hDiff = Vector3.new(gx - part.Position.X, 0, gz - part.Position.Z)
local hDist = hDiff.Magnitude
if hDist < 5 then
-- Centered above the box, now drop straight down into it
entry.state = 'drop'
else
-- Move horizontally toward center, but also push DOWN so part
-- doesn't float above the box while drifting
local hSpeed = math.min(300, hDist * 6)
local moveDir = hDiff.Unit * hSpeed
-- Push down gently toward the inside of the box
local downPull = -80
part.Velocity = Vector3.new(moveDir.X, downPull, moveDir.Z)
part.RotVelocity = Vector3.new(0, 0, 0)
end
elseif entry.state == 'drop' then
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
entry.dropTime = tick()
entry.state = 'settling'
elseif entry.state == 'settling' then
-- Keep zeroing velocity during settle so parts don't bounce back up
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
if tick() - entry.dropTime > 2 then
if entry.onDone == 'collect' then
entry.state = 'in_box'
else
table.remove(trowelParts, i)
end
end
end
end)
end
end
end)
-- ========== HELPER: claim server ownership via teleport ==========
-- Teleports you to the box for 500ms so server gives you ownership of all parts near it,
-- then teleports you back. Way more reliable than SetNetworkOwner(nil).
local function claimBoxOwnership()
local r = getRoot(speaker.Character)
if not r then return end
local savedCF = r.CFrame
pcall(function()
-- Teleport to box center (floor level)
char:PivotTo(CFrame.new(boxPos.X, boxPos.Y - 23, boxPos.Z))
task.wait(0.5)
-- Teleport back
char:PivotTo(savedCF)
end)
end
-- ========== COLLECT TOOL ==========
local collectTool = Instance.new('Tool')
collectTool.Name = 'Collect'
collectTool.CanBeDropped = false
collectTool.Parent = speaker.Backpack
trowelCollectTool = collectTool
local collectHandle = Instance.new('Part')
collectHandle.Name = 'Handle'
collectHandle.Size = Vector3.new(0.1, 0.1, 0.1)
collectHandle.Transparency = 1
collectHandle.CanCollide = false
collectHandle.CanQuery = false
collectHandle.CanTouch = false
collectHandle.Parent = collectTool
collectTool.Activated:Connect(function()
if not trowelActive then return end
if trowelDeploying then return end
local r = getRoot(speaker.Character)
if not r then return end
local found = 0
pcall(function()
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored and part.Parent then
if not char:IsAncestorOf(part) then
local dist = (part.Position - r.Position).Magnitude
if dist <= trowelCollectRadius then
local already = false
for _, e in pairs(trowelParts) do
if e.part == part then already = true break end
end
if not already then
local isBody = false
local anc = part.Parent
while anc and anc ~= workspace do
if anc:FindFirstChildWhichIsA('Humanoid') then
isBody = true break
end
anc = anc.Parent
end
if not isBody then
pcall(function()
part.CanCollide = false
part.Massless = true
part:SetNetworkOwner(nil)
workspace:ResetNetworkOwnerlessTimeout(0)
end)
trowelParts[#trowelParts + 1] = {
part = part,
state = 'fly_up',
targetY = aboveBoxY,
targetX = boxPos.X + math.random(-15, 15),
targetZ = boxPos.Z + math.random(-15, 15),
onDone = 'collect',
dropTime = 0
}
found = found + 1
end
end
end
end
end
end
end)
notify('Trowel', 'Collecting ' .. found .. ' parts into the box!')
end)
-- ========== LAUNCH TOOL ==========
local launchTool = Instance.new('Tool')
launchTool.Name = 'Launch [' .. deployMode .. ']'
launchTool.CanBeDropped = false
launchTool.Parent = speaker.Backpack
trowelLaunchTool = launchTool
local launchHandle = Instance.new('Part')
launchHandle.Name = 'Handle'
launchHandle.Size = Vector3.new(0.1, 0.1, 0.1)
launchHandle.Transparency = 1
launchHandle.CanCollide = false
launchHandle.CanQuery = false
launchHandle.CanTouch = false
launchHandle.Parent = launchTool
-- Beam when equipped
local beamConn = nil
local beam = nil
local statusGui = nil
local statusLabel = nil
launchTool.Equipped:Connect(function()
beam = Instance.new('Part')
beam.Name = randomString()
beam.Anchored = true
beam.CanCollide = false
beam.CanQuery = false
beam.CanTouch = false
beam.CastShadow = false
beam.Size = Vector3.new(0.3, 0.3, 1)
beam.Material = Enum.Material.Neon
beam.Color = Color3.fromRGB(255, 80, 0)
beam.Transparency = 0.5
beam.Parent = workspace
beamConn = RunService.Heartbeat:Connect(function()
if not beam or not beam.Parent then return end
pcall(function()
local r = getRoot(speaker.Character)
if not r then return end
local mouse = speaker:GetMouse()
if not mouse.Hit then return end
local mp = mouse.Hit.Position
local mid = (r.Position + mp) / 2
beam.CFrame = CFrame.lookAt(mid, mp)
beam.Size = Vector3.new(0.3, 0.3, math.max(1, (r.Position - mp).Magnitude))
end)
end)
-- Status billboard
statusGui = Instance.new('BillboardGui')
statusGui.Name = randomString()
statusGui.Size = UDim2.new(0, 200, 0, 40)
statusGui.StudsOffset = Vector3.new(0, 5, 0)
statusGui.AlwaysOnTop = true
pcall(function()
local head = char:FindFirstChild('Head')
if head then statusGui.Adornee = head end
end)
statusGui.Parent = workspace
statusLabel = Instance.new('TextLabel')
statusLabel.Size = UDim2.new(1, 0, 1, 0)
statusLabel.BackgroundTransparency = 0.5
statusLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
statusLabel.TextColor3 = Color3.fromRGB(255, 80, 0)
statusLabel.TextStrokeColor3 = Color3.fromRGB(100, 50, 0)
statusLabel.TextStrokeTransparency = 0.7
statusLabel.Font = Enum.Font.GothamBold
statusLabel.TextScaled = true
statusLabel.Parent = statusGui
end)
launchTool.Unequipped:Connect(function()
if beamConn then beamConn:Disconnect() beamConn = nil end
if beam and beam.Parent then beam:Destroy() end
beam = nil
if statusGui and statusGui.Parent then statusGui:Destroy() end
statusGui = nil
statusLabel = nil
end)
launchTool.Activated:Connect(function()
if not trowelActive then return end
if trowelDeploying then return end
local mouse = speaker:GetMouse()
local targetPos
pcall(function() targetPos = mouse.Hit.Position end)
if not targetPos then return end
local inBoxCount = 0
for _, e in pairs(trowelParts) do
if e.state == 'in_box' then inBoxCount = inBoxCount + 1 end
end
-- Gun mode: always allows clicking to lock the line on a player,
-- even with zero parts in the box. Other modes need parts.
if inBoxCount == 0 and deployMode ~= 'gun' then
notify('Trowel', 'No parts in box! Use Collect tool first.')
return
end
trowelDeploying = true
if statusLabel then
pcall(function() statusLabel.Text = 'CLAIMING OWNERSHIP...' end)
end
-- Teleport to box to claim server ownership of all parts inside
claimBoxOwnership()
if statusLabel then
pcall(function() statusLabel.Text = 'LAUNCHING ' .. inBoxCount .. ' parts...' end)
end
if deployMode == 'normal' then
for _, entry in pairs(trowelParts) do
if entry.state == 'in_box' and entry.part and entry.part.Parent then
pcall(function()
entry.part.CanCollide = false
entry.part.Massless = true
end)
entry.state = 'fly_up'
entry.targetY = aboveBoxY
entry.targetX = targetPos.X + math.random(-3, 3)
entry.targetZ = targetPos.Z + math.random(-3, 3)
entry.onDone = 'deploy'
entry.dropTime = 0
end
end
task.wait(5)
for i = #trowelParts, 1, -1 do
if trowelParts[i].onDone == 'deploy' then
table.remove(trowelParts, i)
end
end
trowelDeploying = false
else
local launchParts = {}
for i = #trowelParts, 1, -1 do
local e = trowelParts[i]
if e.state == 'in_box' and e.part and e.part.Parent then
launchParts[#launchParts + 1] = e.part
table.remove(trowelParts, i)
end
end
local totalP = #launchParts
task.spawn(function()
if deployMode == 'explode' then
flyPartsTo(launchParts, targetPos.X, targetPos.Z, 5, 5, function()
task.wait(0.5)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local ang = math.random() * math.pi * 2
local up = math.random() * math.pi
local pwr = math.random(300, 800)
part.Velocity = Vector3.new(math.sin(up) * math.cos(ang), math.abs(math.cos(up)) * 0.8 + 0.3, math.sin(up) * math.sin(ang)) * pwr
part.RotVelocity = Vector3.new(math.random(-200, 200), math.random(-200, 200), math.random(-200, 200))
end)
end
end
end)
elseif deployMode == 'rain' then
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
task.wait(0.02)
end
task.wait(2.5)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local ox = math.random(-20, 20)
local oz = math.random(-20, 20)
local diff = Vector3.new(targetPos.X + ox - part.Position.X, 20, targetPos.Z + oz - part.Position.Z)
part.Velocity = diff
end)
end
end
task.wait(2)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CustomPhysicalProperties = PhysicalProperties.new(0.2, 0.3, 0.5, 1, 1)
part.CanCollide = true
part.Massless = false
part.Velocity = Vector3.new(math.random(-10, 10), -30, math.random(-10, 10))
part.RotVelocity = Vector3.new(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
end)
end
end
elseif deployMode == 'spiral' then
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
local si = (i / totalP)
task.spawn(function()
pcall(function()
local startPos = part.Position
local tt = 2.5
local st = tick()
while tick() - st < tt do
if not part or not part.Parent then break end
local t = (tick() - st) / tt
local goal = startPos:Lerp(targetPos, t)
local rad = (1 - t) * 30 + 3
local ang = t * math.pi * 8 + si * math.pi * 2
goal = goal + Vector3.new(math.cos(ang) * rad, math.sin(t * math.pi) * 40, math.sin(ang) * rad)
local md = goal - part.Position
if md.Magnitude > 0.5 then
part.Velocity = md.Unit * math.min(md.Magnitude * 8, 350)
else
part.Velocity = Vector3.new(0, 0, 0)
end
part.RotVelocity = Vector3.new(0, t * 300, 0)
RunService.Heartbeat:Wait()
end
if part and part.Parent then
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.Massless = false
part.CustomPhysicalProperties = nil
end
end)
end)
end
task.wait(0.03)
end
elseif deployMode == 'shotgun' then
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local spread = Vector3.new(math.random(-30, 30), math.random(-10, 30), math.random(-30, 30))
local d = (targetPos + spread - part.Position).Unit
part.Velocity = d * 1200
part.RotVelocity = Vector3.new(math.random(-300, 300), math.random(-300, 300), math.random(-300, 300))
part.CanCollide = true
part.Massless = false
part.CustomPhysicalProperties = nil
end)
end
end
elseif deployMode == 'orbit' then
flyPartsTo(launchParts, targetPos.X, targetPos.Z, 3, 3, function()
task.wait(0.5)
local orbitAngle = 0
local orbParts = {}
for _, p in pairs(launchParts) do
if p and p.Parent then orbParts[#orbParts + 1] = p end
end
task.spawn(function()
while trowelActive do
orbitAngle = orbitAngle + 0.02
local jj = 1
while jj <= #orbParts do
local op = orbParts[jj]
if not op or not op.Parent then
table.remove(orbParts, jj)
else
pcall(function()
local rad = 8 + (jj % 5) * 4
local ht = 5 + (jj % 3) * 6
local ang = orbitAngle + (jj / #orbParts) * math.pi * 2
local goal = targetPos + Vector3.new(math.cos(ang) * rad, ht, math.sin(ang) * rad)
local d = goal - op.Position
if d.Magnitude > 1 then
op.Velocity = d.Unit * math.min(d.Magnitude * 10, 300)
end
op.RotVelocity = Vector3.new(0, 200, 0)
end)
end
jj = jj + 1
RunService.Heartbeat:Wait()
end
end
end)
end)
notify('Trowel', 'Orbit mode! Parts orbiting your click point.')
trowelDeploying = false
return
elseif deployMode == 'scatter' then
flyPartsTo(launchParts, targetPos.X, targetPos.Z, 3, 3, function()
task.wait(0.5)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
task.spawn(function()
pcall(function()
while trowelActive do
if not part or not part.Parent then break end
part.Velocity = Vector3.new(math.random(-80, 80), math.random(50, 150), math.random(-80, 80))
part.RotVelocity = Vector3.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100))
RunService.Heartbeat:Wait()
RunService.Heartbeat:Wait()
end
end)
end)
end
end
end)
return
elseif deployMode == 'wave' then
flyPartsTo(launchParts, targetPos.X, targetPos.Z, 3, 3, function()
task.wait(0.5)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
task.spawn(function()
pcall(function()
local st = tick()
while tick() - st < 1.5 do
if not part or not part.Parent then break end
local d = targetPos - part.Position
if d.Magnitude > 3 then
part.Velocity = d.Unit * 500
else
part.Velocity = Vector3.new(0, 0, 0)
end
RunService.Heartbeat:Wait()
end
local wAng = math.random() * math.pi * 2
local wDir = Vector3.new(math.cos(wAng), 0.3, math.sin(wAng))
local st2 = tick()
while tick() - st2 < 4 do
if not part or not part.Parent then break end
local wY = math.sin((tick() - st2) * 6) * 40 + 20
part.Velocity = wDir * 150 + Vector3.new(0, wY, 0)
part.RotVelocity = Vector3.new(0, 100, 0)
RunService.Heartbeat:Wait()
end
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end)
end
end
end)
return
elseif deployMode == 'gun' then
-- GUN MODE: find nearest player to mouse click, stick beam to them,
-- fly all parts 100 studs above them, then crash down on target.
-- Works even with ZERO parts — just locks the tracking line on the player.
local gunTarget = nil
local gunRoot = nil
-- Find nearest player to where we clicked
pcall(function()
local mouse = speaker:GetMouse()
local clickPos = mouse.Hit.Position
local closestDist = 50
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= speaker and plr.Character then
local pRoot = plr.Character:FindFirstChild('HumanoidRootPart')
if pRoot then
local dist = (pRoot.Position - clickPos).Magnitude
if dist < closestDist then
closestDist = dist
gunTarget = plr
gunRoot = pRoot
end
end
end
end
end)
if not gunTarget or not gunRoot then
notify('Trowel', 'No player near click! Aim closer.')
trowelDeploying = false
return
end
if statusLabel then
pcall(function() statusLabel.Text = 'GUN TARGET: ' .. gunTarget.Name end)
end
-- Red tracking beam from target up to 100 studs
local gunBeam = Instance.new('Part')
gunBeam.Name = randomString()
gunBeam.Anchored = true
gunBeam.CanCollide = false
gunBeam.CanQuery = false
gunBeam.CanTouch = false
gunBeam.CastShadow = false
gunBeam.Size = Vector3.new(0.5, 0.5, 1)
gunBeam.Material = Enum.Material.Neon
gunBeam.Color = Color3.fromRGB(255, 0, 0)
gunBeam.Transparency = 0.3
gunBeam.Parent = workspace
-- Red ring on ground under target
local gunRing = Instance.new('Part')
gunRing.Name = randomString()
gunRing.Anchored = true
gunRing.CanCollide = false
gunRing.CanQuery = false
gunRing.CanTouch = false
gunRing.CastShadow = false
gunRing.Shape = Enum.PartType.Cylinder
gunRing.Size = Vector3.new(1, 12, 12)
gunRing.Material = Enum.Material.Neon
gunRing.Color = Color3.fromRGB(255, 0, 0)
gunRing.Transparency = 0.4
gunRing.Parent = workspace
local gunBeamConn = RunService.Heartbeat:Connect(function()
pcall(function()
if not gunTarget or not gunTarget.Character then
if gunBeamConn then gunBeamConn:Disconnect() end
return
end
local tR = gunTarget.Character:FindFirstChild('HumanoidRootPart')
if not tR then return end
local topPos = tR.Position + Vector3.new(0, 100, 0)
local mid = (tR.Position + topPos) / 2
gunBeam.CFrame = CFrame.lookAt(mid, topPos)
gunBeam.Size = Vector3.new(0.5, 0.5, math.max(1, 100))
gunRing.CFrame = CFrame.new(tR.Position) * CFrame.Angles(0, 0, math.rad(90))
end)
end)
-- If no parts in box, just lock the line and tell user to collect
if totalP == 0 then
notify('Trowel', 'Locked on ' .. gunTarget.Name .. '! Collect parts then launch again.')
trowelDeploying = false
-- Keep beam/ring alive — they track the target.
-- They get cleaned up on untrowel or when target leaves.
return
end
-- Phase 1: fly all parts UP to 100 studs above target
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 800, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
task.wait(0.015)
end
task.wait(2)
-- Phase 2: fly parts directly above target
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local tR = gunTarget.Character and gunTarget.Character:FindFirstChild('HumanoidRootPart')
if tR then
local ox = math.random(-8, 8)
local oz = math.random(-8, 8)
local goalX = tR.Position.X + ox
local goalZ = tR.Position.Z + oz
local diff = Vector3.new(goalX - part.Position.X, 30, goalZ - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end
end)
end
end
task.wait(2)
-- Phase 3: CRASH DOWN on the target
if statusLabel then
pcall(function() statusLabel.Text = 'CRASHING ON ' .. gunTarget.Name .. '!' end)
end
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = PhysicalProperties.new(0.1, 0.2, 0.5, 5, 5)
part.Massless = false
part.Velocity = Vector3.new(math.random(-20, 20), -500, math.random(-20, 20))
part.RotVelocity = Vector3.new(math.random(-300, 300), math.random(-300, 300), math.random(-300, 300))
end)
end
task.wait(0.01)
end
-- Clean up gun visuals after 5 seconds
task.delay(5, function()
if gunBeamConn then gunBeamConn:Disconnect() gunBeamConn = nil end
if gunBeam and gunBeam.Parent then gunBeam:Destroy() end
if gunRing and gunRing.Parent then gunRing:Destroy() end
end)
trowelDeploying = false
notify('Trowel', 'Gun mode! Crashed ' .. totalP .. ' parts on ' .. gunTarget.Name)
return
-- ======================== ONE ========================
-- Brings 1 block to mouse at a time, serversided via velocity.
-- Stops applying velocity when it arrives. Click again for next one.
elseif deployMode == 'one' then
local onePart = nil
for i = #launchParts, 1, -1 do
local p = launchParts[i]
if p and p.Parent then onePart = p break end
end
if not onePart then
notify('Trowel', 'No parts to place!')
trowelDeploying = false
return
end
pcall(function()
onePart.CanCollide = false
onePart.Massless = true
onePart:SetNetworkOwner(nil)
workspace:ResetNetworkOwnerlessTimeout(0)
end)
-- Move the part toward mouse using velocity springs
local settled = false
local oneConn = RunService.Heartbeat:Connect(function()
if not onePart or not onePart.Parent or not trowelActive then
if oneConn then oneConn:Disconnect() end
trowelDeploying = false
return
end
local mouse = speaker:GetMouse()
local goal
pcall(function() goal = mouse.Hit.Position end)
if not goal then return end
local diff = goal - onePart.Position
local dist = diff.Magnitude
if dist > 1 then
local speed = math.min(500, dist * 10)
onePart.Velocity = diff.Unit * speed
onePart.RotVelocity = Vector3.new(0, 0, 0)
settled = false
else
-- Arrived, stop velocity
onePart.Velocity = Vector3.new(0, 0, 0)
onePart.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
onePart.RotVelocity = Vector3.new(0, 0, 0)
onePart.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
onePart.CanCollide = true
onePart.CanTouch = true
onePart.CustomPhysicalProperties = nil
onePart.Massless = false
if not settled then
settled = true
-- Disconnect after a short delay so the part stays put
task.delay(0.5, function()
if oneConn then oneConn:Disconnect() end
trowelDeploying = false
end)
end
end
end)
return
-- ======================== DROP ========================
-- Drips parts one by one from the box straight down at mouse pos
elseif deployMode == 'drop' then
task.spawn(function()
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
-- First fly up above the box
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
-- Now fly them above mouse and drop
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local mouse = speaker:GetMouse()
local goal
pcall(function() goal = mouse.Hit.Position end)
if goal then
local diff = Vector3.new(goal.X + math.random(-2, 2) - part.Position.X, 30, goal.Z + math.random(-2, 2) - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end
end)
end
task.wait(0.15) -- Stagger the drops
end
task.wait(2)
-- Restore physics and let them fall
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', totalP .. ' parts dripped!')
end)
return
-- ======================== TOWER ========================
-- Stacks parts vertically into a tower at mouse position
elseif deployMode == 'tower' then
task.spawn(function()
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
local mouse = speaker:GetMouse()
local basePos
pcall(function() basePos = mouse.Hit.Position end)
if basePos then
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local stackY = basePos.Y + i * 4 + 50
local diff = Vector3.new(basePos.X - part.Position.X, stackY - part.Position.Y, basePos.Z - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
task.wait(0.05)
end
end
task.wait(3)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', 'Tower of ' .. totalP .. ' parts built!')
end)
return
-- ======================== WALL ========================
-- Arranges parts into a vertical wall at mouse position
elseif deployMode == 'wall' then
task.spawn(function()
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
local mouse = speaker:GetMouse()
local wallPos
pcall(function() wallPos = mouse.Hit.Position end)
if wallPos then
local cols = math.ceil(math.sqrt(totalP))
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local row = math.floor((i - 1) / cols)
local col = (i - 1) % cols
local gx = wallPos.X + (col - cols / 2) * 5
local gz = wallPos.Z
local gy = wallPos.Y + row * 5 + 30
local diff = Vector3.new(gx - part.Position.X, gy - part.Position.Y, gz - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
end
task.wait(3)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', 'Wall of ' .. totalP .. ' parts built!')
end)
return
-- ======================== FLOOR ========================
-- Spreads parts into a flat platform at mouse position
elseif deployMode == 'floor' then
task.spawn(function()
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
local mouse = speaker:GetMouse()
local floorPos
pcall(function() floorPos = mouse.Hit.Position end)
if floorPos then
local side = math.ceil(math.sqrt(totalP))
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local row = math.floor((i - 1) / side)
local col = (i - 1) % side
local gx = floorPos.X + (col - side / 2) * 5
local gz = floorPos.Z + (row - side / 2) * 5
local gy = floorPos.Y + 30
local diff = Vector3.new(gx - part.Position.X, gy - part.Position.Y, gz - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
end
task.wait(3)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', 'Floor of ' .. totalP .. ' parts built!')
end)
return
-- ======================== BRIDGE ========================
-- Lays parts in a line from player to mouse position
elseif deployMode == 'bridge' then
task.spawn(function()
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
local mouse = speaker:GetMouse()
local goalPos
pcall(function() goalPos = mouse.Hit.Position end)
local root = getRoot(speaker.Character)
if goalPos and root then
local startPos = root.Position
local dir = (goalPos - startPos)
dir = Vector3.new(dir.X, 0, dir.Z) -- Flatten Y
local totalDist = dir.Magnitude
if totalDist > 1 then
dir = dir.Unit
else
dir = Vector3.new(1, 0, 0)
totalDist = 10
end
local spacing = math.max(3, totalDist / totalP)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local t = (i - 1) / math.max(1, totalP - 1)
local gx = startPos.X + dir.X * totalDist * t
local gz = startPos.Z + dir.Z * totalDist * t
local gy = startPos.Y + 30
local diff = Vector3.new(gx - part.Position.X, gy - part.Position.Y, gz - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
end
task.wait(3)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', 'Bridge of ' .. totalP .. ' parts built!')
end)
return
-- ======================== CAGE ========================
-- Forms a cage around the nearest player to mouse
elseif deployMode == 'cage' then
task.spawn(function()
-- Find nearest player to mouse
local cageTarget = nil
local cageRoot = nil
pcall(function()
local mouse = speaker:GetMouse()
local clickPos = mouse.Hit.Position
local closestDist = 50
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= speaker and plr.Character then
local pRoot = plr.Character:FindFirstChild('HumanoidRootPart')
if pRoot then
local dist = (pRoot.Position - clickPos).Magnitude
if dist < closestDist then
closestDist = dist
cageTarget = plr
cageRoot = pRoot
end
end
end
end
end)
if not cageTarget or not cageRoot then
-- Just build at mouse pos
end
local centerPos = cageRoot and cageRoot.Position or targetPos
local radius = 15
-- Fly all parts up
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
-- Distribute parts around the target: walls + ceiling
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local gx, gy, gz
if i <= totalP * 0.7 then
-- Wall segments
local angle = (i / (totalP * 0.7)) * math.pi * 2
gx = centerPos.X + math.cos(angle) * radius
gz = centerPos.Z + math.sin(angle) * radius
gy = centerPos.Y + 20 + math.random(0, 10)
else
-- Ceiling segments
local ci = i - math.floor(totalP * 0.7)
gx = centerPos.X + math.random(-radius, radius)
gz = centerPos.Z + math.random(-radius, radius)
gy = centerPos.Y + 25 + math.random(0, 5)
end
local diff = Vector3.new(gx - part.Position.X, gy - part.Position.Y, gz - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(3)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
local tName = cageTarget and cageTarget.Name or 'target'
notify('Trowel', 'Caged ' .. tName .. ' with ' .. totalP .. ' parts!')
end)
return
-- ======================== STAIRCASE ========================
-- Creates ascending stairs from player toward mouse
elseif deployMode == 'staircase' then
task.spawn(function()
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
local mouse = speaker:GetMouse()
local goalPos
pcall(function() goalPos = mouse.Hit.Position end)
local root = getRoot(speaker.Character)
if goalPos and root then
local startPos = root.Position
local dir = (goalPos - startPos)
dir = Vector3.new(dir.X, 0, dir.Z)
local totalDist = dir.Magnitude
if totalDist > 1 then dir = dir.Unit end
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local t = i / totalP
local gx = startPos.X + dir.X * totalDist * t
local gz = startPos.Z + dir.Z * totalDist * t
local gy = startPos.Y + i * 3 + 30
local diff = Vector3.new(gx - part.Position.X, gy - part.Position.Y, gz - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
end
task.wait(3)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', 'Staircase of ' .. totalP .. ' parts built!')
end)
return
-- ======================== MISSILE ========================
-- Fires parts one at a time rapidly toward mouse
elseif deployMode == 'missile' then
task.spawn(function()
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
local mouse = speaker:GetMouse()
local goal
pcall(function() goal = mouse.Hit.Position end)
if goal then
local root = getRoot(speaker.Character)
if root then
local dir = (goal - root.Position).Unit
part.Velocity = dir * 800
part.RotVelocity = Vector3.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100))
end
end
end)
end
task.wait(0.08) -- Rapid fire
end
task.wait(2)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', 'Fired ' .. totalP .. ' missiles!')
end)
return
-- ======================== SHIELD ========================
-- Parts orbit around the player as a protective ring
elseif deployMode == 'shield' then
task.spawn(function()
-- Fly parts up first
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
-- Start orbiting around player
local shieldActive = trowelActive
local shieldConn = RunService.Heartbeat:Connect(function(dt)
if not shieldActive or not trowelActive then
if shieldConn then shieldConn:Disconnect() end
trowelDeploying = false
return
end
local root = getRoot(speaker.Character)
if not root then return end
local angle = tick() * 3 -- Rotation speed
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local a = angle + (i / totalP) * math.pi * 2
local radius = 10
local gx = root.Position.X + math.cos(a) * radius
local gz = root.Position.Z + math.sin(a) * radius
local gy = root.Position.Y + 3
local diff = Vector3.new(gx - part.Position.X, gy - part.Position.Y, gz - part.Position.Z)
local speed = math.min(300, diff.Magnitude * 8)
part.Velocity = diff.Unit * speed
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
end)
-- Stop after 15 seconds or when untrowel
task.delay(15, function()
shieldActive = false
if shieldConn then shieldConn:Disconnect() end
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', 'Shield deactivated!')
end)
end)
return
-- ======================== HAIL ========================
-- Parts launch high above mouse then rain down in a tight cluster
elseif deployMode == 'hail' then
task.spawn(function()
-- Launch all parts straight up high
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 1000, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
task.wait(0.02)
end
task.wait(3)
-- Move them above mouse position
local mouse = speaker:GetMouse()
local hailPos
pcall(function() hailPos = mouse.Hit.Position end)
if hailPos then
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local gx = hailPos.X + math.random(-5, 5)
local gz = hailPos.Z + math.random(-5, 5)
local diff = Vector3.new(gx - part.Position.X, 30, gz - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
end
task.wait(2)
-- Drop like hail with slight random horizontal
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = PhysicalProperties.new(0.1, 0.2, 0.5, 5, 5)
part.Massless = false
part.Velocity = Vector3.new(math.random(-10, 10), -400, math.random(-10, 10))
part.RotVelocity = Vector3.new(math.random(-200, 200), math.random(-200, 200), math.random(-200, 200))
end)
end
end
trowelDeploying = false
notify('Trowel', 'Hailstorm! ' .. totalP .. ' parts rained down!')
end)
return
-- ======================== VOLCANO ========================
-- Parts erupt upward from mouse then fall back randomly
elseif deployMode == 'volcano' then
task.spawn(function()
-- First bring all parts to mouse position
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
local mouse = speaker:GetMouse()
local volcPos
pcall(function() volcPos = mouse.Hit.Position end)
if volcPos then
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local diff = Vector3.new(volcPos.X + math.random(-3, 3) - part.Position.X, 20, volcPos.Z + math.random(-3, 3) - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
end
task.wait(2)
-- ERUPT: shoot upward with random spread
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local ang = math.random() * math.pi * 2
local up = math.random(0.5, 1)
local pwr = math.random(500, 1000)
part.Velocity = Vector3.new(math.sin(up) * math.cos(ang) * 150, up * pwr, math.sin(up) * math.sin(ang) * 150)
part.RotVelocity = Vector3.new(math.random(-300, 300), math.random(-300, 300), math.random(-300, 300))
end)
end
task.wait(0.03)
end
task.wait(1)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', 'Volcano erupted ' .. totalP .. ' parts!')
end)
return
-- ======================== MAGNET DEPLOY ========================
-- Parts orbit the target position in a tight spiral, gradually pulling inward
elseif deployMode == 'magnet' then
task.spawn(function()
-- Fly all parts up first
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
-- Pull them to target with spiral motion
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
local si = (i / totalP)
task.spawn(function()
pcall(function()
local startPos = part.Position
local tt = 3
local st = tick()
while tick() - st < tt do
if not part or not part.Parent then break end
local t = (tick() - st) / tt
local goal = startPos:Lerp(targetPos, t)
local rad = (1 - t) * 20 + 1
local ang = t * math.pi * 6 + si * math.pi * 2
goal = goal + Vector3.new(math.cos(ang) * rad, 0, math.sin(ang) * rad)
local md = goal - part.Position
if md.Magnitude > 0.5 then
part.Velocity = md.Unit * math.min(md.Magnitude * 10, 400)
else
part.Velocity = Vector3.new(0, 0, 0)
end
part.RotVelocity = Vector3.new(0, t * 400, 0)
RunService.Heartbeat:Wait()
end
if part and part.Parent then
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end
end)
end)
end
end
task.wait(4)
trowelDeploying = false
notify('Trowel', 'Magnet deployed ' .. totalP .. ' parts!')
end)
return
-- ======================== FLING DEPLOY ========================
-- Parts fly to target then EXPLODE outward in all directions
elseif deployMode == 'fling' then
task.spawn(function()
-- Fly all parts up first
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
-- Converge on target
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local diff = Vector3.new(targetPos.X + math.random(-2, 2) - part.Position.X, 20, targetPos.Z + math.random(-2, 2) - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
-- EXPLODE outward
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local ang = math.random() * math.pi * 2
local elev = math.random() * math.pi * 0.5 + math.pi * 0.15
local pwr = math.random(600, 1200)
part.Velocity = Vector3.new(
math.cos(elev) * math.cos(ang) * pwr,
math.sin(elev) * pwr,
math.cos(elev) * math.sin(ang) * pwr
)
part.RotVelocity = Vector3.new(math.random(-500, 500), math.random(-500, 500), math.random(-500, 500))
end)
end
task.wait(0.02)
end
task.wait(1)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', 'Fling launched ' .. totalP .. ' parts!')
end)
return
-- ======================== PILE DEPLOY ========================
-- Parts stack neatly on top of each other at the target position
elseif deployMode == 'pile' then
task.spawn(function()
-- Fly all parts up first
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
part.Velocity = Vector3.new(0, 600, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
task.wait(2)
-- Stack parts at target, one by one with slight offset
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
local stackY = targetPos.Y + (i * 2)
local ox = math.random(-1, 1)
local oz = math.random(-1, 1)
local diff = Vector3.new(targetPos.X + ox - part.Position.X, stackY - part.Position.Y + 20, targetPos.Z + oz - part.Position.Z)
part.Velocity = diff
part.RotVelocity = Vector3.new(0, 0, 0)
end)
task.wait(0.05)
end
end
task.wait(3)
for i = 1, totalP do
local part = launchParts[i]
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.CanTouch = true
part.CustomPhysicalProperties = nil
part.Massless = false
end)
end
end
trowelDeploying = false
notify('Trowel', 'Piled ' .. totalP .. ' parts at target!')
end)
return
end
end)
end
end)
showArcPopup('Trowel', true)
notify('Trowel', 'Trowel ready! Mode: ' .. deployMode .. '. Use Collect tool to gather parts, Launch tool to deploy.')
end)
-- ======================== UNTROWEL ========================
addcmd('untrowel', {'notrowel', 'troweloff'}, function(args, speaker)
trowelActive = false
trowelDeploying = false
disablePhysicsGodmode(speaker)
if trowelConn then trowelConn:Disconnect() trowelConn = nil end
trowelParts = {}
-- Destroy box
if trowelBox and trowelBox.Parent then
trowelBox:Destroy()
trowelBox = nil
end
-- Destroy tools
if trowelCollectTool and trowelCollectTool.Parent then
trowelCollectTool:Destroy()
trowelCollectTool = nil
end
if trowelLaunchTool and trowelLaunchTool.Parent then
trowelLaunchTool:Destroy()
trowelLaunchTool = nil
end
showArcPopup('Trowel', false)
notify('Trowel', 'Trowel disabled. All tools and box removed.')
end)
-- ======================== MAGNET ========================
-- ALL unanchored parts fly toward you like a vacuum cleaner. They pile up on you.
-- Usage: magnet [speed] | unmagnet / nomagnet
magnetActive = false
magnetConn = nil
magnetParts = {}
magnetAddConn = nil
magnetRemConn = nil
addcmd('magnet', {'attract'}, function(args, speaker)
if magnetActive then execCmd('unmagnet') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Magnet', 'Character not found') return end
enablePhysicsGodmode(speaker)
local magnetSpeed = tonumber(args[1]) or 300
magnetParts = {}
-- Collect all unanchored parts (skip body parts)
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not char:IsAncestorOf(part) then
orbitua_prepPart(part)
table.insert(magnetParts, part)
end
end
end
if #magnetParts < 1 then
notify('Magnet', 'No unanchored parts found')
return
end
magnetActive = true
-- Watch for new parts
magnetAddConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not magnetActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if speaker.Character and speaker.Character:IsAncestorOf(p) then return end
for _, existing in pairs(magnetParts) do
if existing == p then return end
end
orbitua_prepPart(p)
table.insert(magnetParts, p)
end)
end)
-- Remove dead parts
magnetRemConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(magnetParts) do
if existing == p then table.remove(magnetParts, i) break end
end
end)
-- Main loop: every part flies toward player
magnetConn = RunService.Heartbeat:Connect(function(dt)
if not magnetActive then return end
local r = getRoot(speaker.Character)
if not r then return end
sethiddenproperty(speaker, "SimulationRadius", math.huge)
local target = r.Position + Vector3.new(0, 2, 0)
for _, part in pairs(magnetParts) do
if part and part.Parent then
local dir = target - part.Position
if dir.Magnitude > 1 then
part.Velocity = dir.Unit * magnetSpeed
else
-- Close enough, slow down so they pile up nicely
part.Velocity = dir * 5
end
-- Tiny spin for visual flair
part.RotVelocity = Vector3.new(
math.random(-20, 20),
math.random(-20, 20),
math.random(-20, 20)
)
end
end
end)
showArcPopup('Magnet', true)
notify('Magnet', #magnetParts .. ' parts attracted toward you!')
end)
addcmd('unmagnet', {'nomagnet', 'magnetoff', 'unattract'}, function(args, speaker)
magnetActive = false
disablePhysicsGodmode(speaker)
if magnetConn then magnetConn:Disconnect() magnetConn = nil end
if magnetAddConn then magnetAddConn:Disconnect() magnetAddConn = nil end
if magnetRemConn then magnetRemConn:Disconnect() magnetRemConn = nil end
for _, part in pairs(magnetParts) do
if part and part.Parent then
pcall(function() part.CustomPhysicalProperties = nil end)
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
end
end
magnetParts = {}
showArcPopup('Magnet', false)
end)
-- ======================== TUMBLE ========================
-- ALL unanchored parts go absolutely mental -- spinning, flinging, flopping everywhere.
-- Pure chaos mode. Zero friction + random velocity + insane rotation.
-- Usage: tumble [speed] | untumble / notumble
tumbleActive = false
tumbleConn = nil
tumbleParts = {}
tumbleAddConn = nil
tumbleRemConn = nil
addcmd('tumble', {'chaos', 'ragdoll'}, function(args, speaker)
if tumbleActive then execCmd('untumble') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Tumble', 'Character not found') return end
enablePhysicsGodmode(speaker)
local tumbleSpeed = tonumber(args[1]) or 200
tumbleParts = {}
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not char:IsAncestorOf(part) then
orbitua_prepPart(part)
-- Give every part an instant random fling
pcall(function()
part.Velocity = Vector3.new(
math.random(-tumbleSpeed, tumbleSpeed),
math.random(50, tumbleSpeed),
math.random(-tumbleSpeed, tumbleSpeed)
)
part.RotVelocity = Vector3.new(
math.random(-500, 500),
math.random(-500, 500),
math.random(-500, 500)
)
end)
table.insert(tumbleParts, part)
end
end
end
if #tumbleParts < 1 then
notify('Tumble', 'No unanchored parts found')
return
end
tumbleActive = true
tumbleAddConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not tumbleActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if speaker.Character and speaker.Character:IsAncestorOf(p) then return end
for _, existing in pairs(tumbleParts) do
if existing == p then return end
end
orbitua_prepPart(p)
p.Velocity = Vector3.new(
math.random(-tumbleSpeed, tumbleSpeed),
math.random(50, tumbleSpeed),
math.random(-tumbleSpeed, tumbleSpeed)
)
table.insert(tumbleParts, p)
end)
end)
tumbleRemConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(tumbleParts) do
if existing == p then table.remove(tumbleParts, i) break end
end
end)
-- Main loop: keep parts spinning and bouncing randomly
tumbleConn = RunService.Heartbeat:Connect(function(dt)
if not tumbleActive then return end
sethiddenproperty(speaker, "SimulationRadius", math.huge)
for _, part in pairs(tumbleParts) do
if part and part.Parent then
-- Keep feeding random velocity so they never settle
-- Occasionally change direction for extra chaos
if math.random() < 0.1 then
part.Velocity = Vector3.new(
math.random(-tumbleSpeed, tumbleSpeed),
math.random(20, tumbleSpeed * 0.7),
math.random(-tumbleSpeed, tumbleSpeed)
)
end
-- Always keep them spinning
part.RotVelocity = Vector3.new(
math.random(-800, 800),
math.random(-800, 800),
math.random(-800, 800)
)
-- If part somehow stopped moving (hit ground), kick it back up
if part.Velocity.Magnitude < 30 then
part.Velocity = Vector3.new(
math.random(-tumbleSpeed, tumbleSpeed),
math.random(100, tumbleSpeed),
math.random(-tumbleSpeed, tumbleSpeed)
)
end
end
end
end)
showArcPopup('TUMBLE', true)
notify('Tumble', #tumbleParts .. ' parts entered CHAOS MODE!')
end)
addcmd('untumble', {'notumble', 'tumbleoff', 'unchaos'}, function(args, speaker)
tumbleActive = false
disablePhysicsGodmode(speaker)
if tumbleConn then tumbleConn:Disconnect() tumbleConn = nil end
if tumbleAddConn then tumbleAddConn:Disconnect() tumbleAddConn = nil end
if tumbleRemConn then tumbleRemConn:Disconnect() tumbleRemConn = nil end
for _, part in pairs(tumbleParts) do
if part and part.Parent then
pcall(function() part.CustomPhysicalProperties = nil end)
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
end
end
tumbleParts = {}
showArcPopup('TUMBLE', false)
end)
-- ======================== HELICOPTER ========================
-- ALL unanchored parts stay where they are but spin on their own axis like helicopter blades.
-- Everything around you becomes a spinning blender. Pure chaos visually.
-- Usage: helicopter [spin speed] | unhelicopter / nohelicopter
heliActive = false
heliConn = nil
heliParts = {}
heliAddConn = nil
heliRemConn = nil
addcmd('helicopter', {'heli', 'blender'}, function(args, speaker)
if heliActive then execCmd('unhelicopter') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Helicopter', 'Character not found') return end
enablePhysicsGodmode(speaker)
local heliSpeed = tonumber(args[1]) or 800
heliParts = {}
-- Record each part's current position so we can keep it in place
local partPositions = {}
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not char:IsAncestorOf(part) then
orbitua_prepPart(part)
-- Override physics: high friction so part stays put, no bounce
pcall(function()
part.CustomPhysicalProperties = PhysicalProperties.new(0.5, 0.8, 0, 0, 0)
end)
table.insert(heliParts, part)
partPositions[part] = part.Position
end
end
end
if #heliParts < 1 then
notify('Helicopter', 'No unanchored parts found')
return
end
heliActive = true
heliAddConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not heliActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if speaker.Character and speaker.Character:IsAncestorOf(p) then return end
for _, existing in pairs(heliParts) do
if existing == p then return end
end
orbitua_prepPart(p)
pcall(function()
p.CustomPhysicalProperties = PhysicalProperties.new(0.5, 0.8, 0, 0, 0)
end)
table.insert(heliParts, p)
partPositions[p] = p.Position
end)
end)
heliRemConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(heliParts) do
if existing == p then table.remove(heliParts, i) break end
end
partPositions[p] = nil
end)
-- Main loop: keep each part at its original position but spin it on its axis
heliConn = RunService.Heartbeat:Connect(function(dt)
if not heliActive then return end
sethiddenproperty(speaker, "SimulationRadius", math.huge)
for _, part in pairs(heliParts) do
if part and part.Parent then
local savedPos = partPositions[part]
if savedPos then
-- Push back toward original position (stay in place)
local dir = savedPos - part.Position
if dir.Magnitude > 0.5 then
part.Velocity = dir.Unit * dir.Magnitude * 10
else
part.Velocity = Vector3.new(0, 0, 0)
end
end
-- Spin on own axis (mostly Y axis for helicopter look)
part.RotVelocity = Vector3.new(
math.sin(tick() * 5 + part.Position.X) * heliSpeed * 0.3,
heliSpeed,
math.cos(tick() * 3 + part.Position.Z) * heliSpeed * 0.2
)
end
end
end)
showArcPopup('HELICOPTER', true)
notify('Helicopter', #heliParts .. ' parts spinning in place! Everything is a blender!')
end)
addcmd('unhelicopter', {'nohelicopter', 'helicopteroff', 'unheli', 'unblender'}, function(args, speaker)
heliActive = false
disablePhysicsGodmode(speaker)
if heliConn then heliConn:Disconnect() heliConn = nil end
if heliAddConn then heliAddConn:Disconnect() heliAddConn = nil end
if heliRemConn then heliRemConn:Disconnect() heliRemConn = nil end
for _, part in pairs(heliParts) do
if part and part.Parent then
pcall(function() part.CustomPhysicalProperties = nil end)
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
end
end
heliParts = {}
showArcPopup('HELICOPTER', false)
end)
-- ======================== JUMPER (ZOMBIE PARTS) ========================
-- ALL unanchored parts hop on the ground toward you (or nearest player) like zombies.
-- Walkspeed 18, hop every 0.5s. They come from random directions around the target.
-- Hilarious zombie apocalypse of random objects walking toward you.
-- Usage: jumper | unjumper / nojumper
jumperActive = false
jumperConn = nil
jumperParts = {}
jumperAddConn = nil
jumperRemConn = nil
jumperWalkSpeed = 18
addcmd('jumper', {'zombie', 'zombieparts', 'hop'}, function(args, speaker)
if jumperActive then execCmd('unjumper') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Jumper', 'Character not found') return end
enablePhysicsGodmode(speaker)
jumperParts = {}
-- Give each part a random approach angle (so they come from different directions)
local partAngles = {}
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not char:IsAncestorOf(part) then
orbitua_prepPart(part)
table.insert(jumperParts, part)
partAngles[part] = math.random() * math.pi * 2
end
end
end
if #jumperParts < 1 then
notify('Jumper', 'No unanchored parts found')
return
end
jumperActive = true
jumperAddConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not jumperActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if speaker.Character and speaker.Character:IsAncestorOf(p) then return end
for _, existing in pairs(jumperParts) do
if existing == p then return end
end
orbitua_prepPart(p)
table.insert(jumperParts, p)
partAngles[p] = math.random() * math.pi * 2
end)
end)
jumperRemConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(jumperParts) do
if existing == p then table.remove(jumperParts, i) break end
end
partAngles[p] = nil
end)
-- Main loop: hop toward you (or nearest player) at walkspeed 18
local jumpTimer = 0
local jumpInterval = 0.5
jumperConn = RunService.Heartbeat:Connect(function(dt)
if not jumperActive then return end
sethiddenproperty(speaker, "SimulationRadius", math.huge)
-- Find target: nearest other player, or yourself
local targetPos = nil
local targetDist = math.huge
pcall(function()
for _, plr in pairs(game:GetService('Players'):GetPlayers()) do
if plr ~= speaker and plr.Character and plr.Character:FindFirstChildWhichIsA('Humanoid') then
local plrRoot = getRoot(plr.Character)
if plrRoot then
local dist = (plrRoot.Position - getRoot(speaker.Character).Position).Magnitude
if dist < targetDist then
targetDist = dist
targetPos = plrRoot.Position
end
end
end
end
end)
-- If no other players, target yourself
if not targetPos then
local myRoot = getRoot(speaker.Character)
if myRoot then targetPos = myRoot.Position end
end
if not targetPos then return end
jumpTimer = jumpTimer + dt
for _, part in pairs(jumperParts) do
if part and part.Parent then
local pos = part.Position
local toTarget = targetPos - pos
local horizDist = Vector3.new(toTarget.X, 0, toTarget.Z).Magnitude
-- Get this part's approach angle (staggered so they come from different directions)
local approachAngle = partAngles[part] or math.random() * math.pi * 2
if horizDist > 2 then
-- Calculate direction: blend between direct path and approach angle
-- Far away: use approach angle more. Close: go direct
local directAngle = math.atan2(toTarget.X, toTarget.Z)
local moveAngle = directAngle
if horizDist > 5 then
-- Far from target: approach from a specific direction
local idealAngle = approachAngle
local angleDiff = directAngle - idealAngle
-- Normalize to -pi, pi (safe, no while loop)
angleDiff = math.fmod(angleDiff, 2 * math.pi)
if angleDiff > math.pi then angleDiff = angleDiff - 2 * math.pi end
if angleDiff < -math.pi then angleDiff = angleDiff + 2 * math.pi end
-- Blend: at distance 30+, use approach angle; at distance 5, go direct
local t = math.min(1, (horizDist - 5) / 25)
moveAngle = directAngle - angleDiff * t
end
local moveDir = Vector3.new(math.sin(moveAngle), 0, math.cos(moveAngle))
-- Apply walkspeed (only horizontal, keep gravity)
part.Velocity = Vector3.new(
moveDir.X * jumperWalkSpeed,
part.Velocity.Y,
moveDir.Z * jumperWalkSpeed
)
-- Jump every interval
if jumpTimer >= jumpInterval then
-- Ground check: only jump if roughly near ground level
local jumpPower = 30
if horizDist < 15 then
-- Close to target: bigger leap
jumpPower = 50
end
part.Velocity = Vector3.new(
moveDir.X * jumperWalkSpeed,
jumpPower,
moveDir.Z * jumperWalkSpeed
)
end
else
-- Right on target, slow down
part.Velocity = Vector3.new(0, part.Velocity.Y, 0)
end
-- Wobble rotation while hopping (zombie-like flopping)
part.RotVelocity = Vector3.new(
math.sin(tick() * 3 + pos.X) * 80,
math.sin(tick() * 2 + pos.Z) * 40,
math.cos(tick() * 4 + pos.X) * 60
)
end
end
if jumpTimer >= jumpInterval then
jumpTimer = 0
end
end)
showArcPopup('JUMPER', true)
notify('Jumper', #jumperParts .. ' zombie parts heading toward you!')
end)
addcmd('unjumper', {'nojumper', 'jumperoff', 'unzombie', 'unhop'}, function(args, speaker)
jumperActive = false
disablePhysicsGodmode(speaker)
if jumperConn then jumperConn:Disconnect() jumperConn = nil end
if jumperAddConn then jumperAddConn:Disconnect() jumperAddConn = nil end
if jumperRemConn then jumperRemConn:Disconnect() jumperRemConn = nil end
for _, part in pairs(jumperParts) do
if part and part.Parent then
pcall(function() part.CustomPhysicalProperties = nil end)
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
end
end
jumperParts = {}
showArcPopup('JUMPER', false)
end)
-- ======================== SLIFT ========================
-- Flatten all unanchored parts flat like _, place them under a target player,
-- then slowly lift them up serversided. The target gets launched into the air
-- on a platform of parts.
-- Usage: slift [target] | unslift
sliftActive = false
sliftConn = nil
sliftParts = {}
addcmd('slift', {'serversidelift', 'platlift'}, function(args, speaker)
if sliftActive then execCmd('unslift') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('SLift', 'Character not found') return end
enablePhysicsGodmode(speaker)
-- Find target player (default: self)
local targetRoot = getRoot(char)
if args[1] then
local targetNames = {}
pcall(function() targetNames = {getPlayersByName(args[1], speaker)} end)
if #targetNames == 1 then
local targetPlr = Players:FindFirstChild(targetNames[1])
if targetPlr and targetPlr.Character then
targetRoot = getRoot(targetPlr.Character)
end
end
end
if not targetRoot then notify('SLift', 'Target not found') return end
sliftParts = {}
sliftActive = true
-- Collect all unanchored parts (skip character parts)
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
local isBody = false
local anc = part.Parent
while anc and anc ~= workspace do
if anc:FindFirstChildWhichIsA('Humanoid') then
isBody = true break
end
anc = anc.Parent
end
if not isBody then
pcall(function()
orbitua_prepPart(part)
part:SetNetworkOwner(nil)
workspace:ResetNetworkOwnerlessTimeout(0)
end)
table.insert(sliftParts, part)
end
end
end
if #sliftParts < 1 then
notify('SLift', 'No unanchored parts found')
sliftActive = false
return
end
notify('SLift', #sliftParts .. ' parts collected. Flattening and lifting...')
-- Phase 1: Flatten all parts flat (rotate them horizontal)
for _, part in pairs(sliftParts) do
if part and part.Parent then
pcall(function()
part.CanCollide = false
part.Massless = true
end)
end
end
-- Phase 2: Teleport all parts to under the target
task.spawn(function()
local targetPos = targetRoot.Position
local grid = math.ceil(math.sqrt(#sliftParts))
local spacing = 4
local offsetStart = -(grid * spacing) / 2
for i, part in pairs(sliftParts) do
if part and part.Parent then
pcall(function()
local row = math.floor((i - 1) / grid)
local col = ((i - 1) % grid)
local px = targetPos.X + offsetStart + (col * spacing)
local pz = targetPos.Z + offsetStart + (row * spacing)
local py = targetPos.Y - 3
part.CFrame = CFrame.new(px, py, pz) * CFrame.Angles(math.rad(90), 0, 0)
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
task.wait(0.02)
end
end
task.wait(1)
-- Phase 3: Slowly lift all parts upward
local liftSpeed = 30
local liftTime = 8
local st = tick()
sliftConn = RunService.Heartbeat:Connect(function(dt)
if not sliftActive then return end
local elapsed = tick() - st
if elapsed > liftTime then
execCmd('unslift')
return
end
for _, part in pairs(sliftParts) do
if part and part.Parent then
pcall(function()
part.Velocity = Vector3.new(0, liftSpeed, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
end
pcall(function() sethiddenproperty(speaker, "SimulationRadius", math.huge) end)
end)
showArcPopup('SLift', true)
end)
end)
addcmd('unslift', {'noslift', 'sliftoff'}, function(args, speaker)
sliftActive = false
disablePhysicsGodmode(speaker)
if sliftConn then sliftConn:Disconnect() sliftConn = nil end
for _, part in pairs(sliftParts) do
if part and part.Parent then
pcall(function()
part.CustomPhysicalProperties = nil
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.Massless = false
end)
end
end
sliftParts = {}
showArcPopup('SLift', false)
notify('SLift', 'SLift disabled.')
end)
-- ======================== CAGE UA ========================
-- Build a 19x19x19 cage around a target player using ALL unanchored parts.
-- Parts form the walls, floor, and ceiling. Serversided via velocity.
-- Usage: cageua [player] | uncageua / nocageua
cageuaActive = false
cageuaConn = nil
cageuaParts = {}
cageuaTarget = nil
addcmd('cageua', {'partcage', 'uacage'}, function(args, speaker)
if cageuaActive then execCmd('uncageua') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('CageUA', 'Character not found') return end
enablePhysicsGodmode(speaker)
-- Find target player (default: self)
local targetPlr = speaker
if args[1] and args[1]:lower() ~= 'me' then
local targetNames = {}
pcall(function() targetNames = {getPlayersByName(args[1], speaker)} end)
if #targetNames >= 1 then
local found = Players:FindFirstChild(targetNames[1])
if found then targetPlr = found end
end
end
local targetChar = targetPlr.Character
if not targetChar or not getRoot(targetChar) then
notify('CageUA', 'Target character not found')
return
end
cageuaTarget = getRoot(targetChar)
cageuaParts = {}
cageuaActive = true
-- Collect all unanchored parts (skip character parts)
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
local isBody = false
local anc = part.Parent
while anc and anc ~= workspace do
if anc:FindFirstChildWhichIsA('Humanoid') then
isBody = true break
end
anc = anc.Parent
end
if not isBody then
pcall(function()
orbitua_prepPart(part)
part:SetNetworkOwner(nil)
workspace:ResetNetworkOwnerlessTimeout(0)
end)
table.insert(cageuaParts, part)
end
end
end
if #cageuaParts < 1 then
notify('CageUA', 'No unanchored parts found')
cageuaActive = false
return
end
notify('CageUA', 'Building cage with ' .. #cageuaParts .. ' parts around ' .. targetPlr.Name .. '...')
-- Build cage: 6 faces (floor, ceiling, 4 walls)
local center = cageuaTarget.Position
local cageSize = 19
local halfSize = cageSize / 2
-- Define face positions and normals
local faces = {
{name = 'floor', pos = center - Vector3.new(0, halfSize, 0), normal = Vector3.new(0, 1, 0), up = Vector3.new(0, 0, 1)},
{name = 'ceiling', pos = center + Vector3.new(0, halfSize, 0), normal = Vector3.new(0, -1, 0), up = Vector3.new(0, 0, 1)},
{name = 'north', pos = center + Vector3.new(0, 0, -halfSize), normal = Vector3.new(0, 0, 1), up = Vector3.new(0, 1, 0)},
{name = 'south', pos = center + Vector3.new(0, 0, halfSize), normal = Vector3.new(0, 0, -1), up = Vector3.new(0, 1, 0)},
{name = 'east', pos = center + Vector3.new(halfSize, 0, 0), normal = Vector3.new(-1, 0, 0), up = Vector3.new(0, 1, 0)},
{name = 'west', pos = center - Vector3.new(halfSize, 0, 0), normal = Vector3.new(1, 0, 0), up = Vector3.new(0, 1, 0)},
}
local partsPerFace = math.floor(#cageuaParts / 6)
local idx = 1
for _, face in pairs(faces) do
local count = partsPerFace
if idx + count > #cageuaParts + 1 then
count = #cageuaParts - idx + 1
end
if count <= 0 then break end
local grid = math.ceil(math.sqrt(count))
local spacing = cageSize / (grid + 1)
for i = 1, count do
local part = cageuaParts[idx]
if part and part.Parent then
local row = math.floor((i - 1) / grid)
local col = ((i - 1) % grid)
local offset = Vector3.new(
(col - grid/2) * spacing,
0,
(row - grid/2) * spacing
)
-- Rotate offset based on face orientation
local rightVec = face.normal:Cross(face.up)
local worldOffset = rightVec * offset.X + face.up * offset.Y + face.normal * offset.Z
local targetPos = face.pos + worldOffset + face.normal * 0.5
pcall(function()
part.CanCollide = true
part.Massless = false
local diff = targetPos - part.Position
part.Velocity = diff * 3
part.RotVelocity = Vector3.new(0, 0, 0)
end)
idx = idx + 1
end
end
end
-- Hold loop: keep parts in place
task.wait(3)
cageuaConn = RunService.Heartbeat:Connect(function(dt)
if not cageuaActive then return end
-- Rebuild face positions based on current target position (cage follows target)
local tPos = cageuaTarget and cageuaTarget.Parent and cageuaTarget.Position or center
if cageuaTarget and cageuaTarget.Parent then tPos = cageuaTarget.Position end
local idx2 = 1
for _, face in pairs(faces) do
local facePos = tPos + (face.pos - center)
local count = partsPerFace
if idx2 + count > #cageuaParts + 1 then
count = #cageuaParts - idx2 + 1
end
if count <= 0 then break end
local grid = math.ceil(math.sqrt(count))
local spacing = cageSize / (grid + 1)
for i = 1, count do
local part = cageuaParts[idx2]
if part and part.Parent then
pcall(function()
local row = math.floor((i - 1) / grid)
local col = ((i - 1) % grid)
local offset = Vector3.new(
(col - grid/2) * spacing,
0,
(row - grid/2) * spacing
)
local rightVec = face.normal:Cross(face.up)
local worldOffset = rightVec * offset.X + face.up * offset.Y + face.normal * offset.Z
local targetPos2 = facePos + worldOffset + face.normal * 0.5
local diff = targetPos2 - part.Position
part.Velocity = diff * 5
part.RotVelocity = Vector3.new(0, 0, 0)
end)
end
idx2 = idx2 + 1
end
end
pcall(function() sethiddenproperty(speaker, "SimulationRadius", math.huge) end)
end)
showArcPopup('CageUA', true)
notify('CageUA', 'Cage built around ' .. targetPlr.Name .. '!')
end)
addcmd('uncageua', {'nocageua', 'cageuaoff', 'uncage'}, function(args, speaker)
cageuaActive = false
cageuaTarget = nil
disablePhysicsGodmode(speaker)
if cageuaConn then cageuaConn:Disconnect() cageuaConn = nil end
for _, part in pairs(cageuaParts) do
if part and part.Parent then
pcall(function()
part.CustomPhysicalProperties = nil
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
part.CanCollide = true
part.Massless = false
end)
end
end
cageuaParts = {}
showArcPopup('CageUA', false)
notify('CageUA', 'CageUA disabled.')
end)
addcmd('togglecageua', {}, function(args, speaker)
if cageuaActive then execCmd('uncageua') else execCmd('cageua') end
end)
-- ======================== OWN PARTS ========================
-- Claim server ownership of ALL unanchored parts instantly.
-- Uses teleport trick: TP to each part for 1 frame to claim ownership.
-- Usage: ownparts
addcmd('ownparts', {'claimparts2', 'ownall'}, function(args, speaker)
local char = speaker.Character
if not char or not getRoot(char) then notify('OwnParts', 'Character not found') return end
local root = getRoot(char)
local savedCF = root.CFrame
local count = 0
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
local isBody = false
local anc = part.Parent
while anc and anc ~= workspace do
if anc:FindFirstChildWhichIsA('Humanoid') then
isBody = true break
end
anc = anc.Parent
end
if not isBody then
pcall(function()
char:PivotTo(CFrame.new(part.Position))
RunService.Heartbeat:Wait()
part:SetNetworkOwner(nil)
workspace:ResetNetworkOwnerlessTimeout(0)
end)
count = count + 1
end
end
end
pcall(function() char:PivotTo(savedCF) end)
notify('OwnParts', 'Claimed ownership of ' .. count .. ' parts!')
end)
-- ======================== CLAIM ALL ========================
-- Teleports to every unanchored part for 1 frame to claim server ownership.
-- When enabled, shows "Click P to claim". Press P = rapid teleport to all parts, then back.
-- Usage: claimall | unclaimall / noclaimall
claimallActive = false
claimallKeyConn = nil
addcmd('claimall', {'claimparts', 'claim'}, function(args, speaker)
if claimallActive then execCmd('unclaimall') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('ClaimAll', 'Character not found') return end
claimallActive = true
showArcPopup('ClaimAll', true)
notify('ClaimAll', 'Enabled! Click P to claim all parts')
local UIS = game:GetService('UserInputService')
claimallKeyConn = UIS.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if not claimallActive then return end
if input.KeyCode == Enum.KeyCode.P then
local freshChar = speaker.Character
local root = getRoot(freshChar)
if not root then return end
-- Save starting position
local savedPos = root.CFrame
-- Collect all unanchored parts (skip body parts)
local parts = {}
pcall(function()
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored and part.Parent then
if freshChar and not freshChar:IsAncestorOf(part) then
-- Skip body parts (have Humanoid ancestor)
local isBody = false
local anc = part.Parent
while anc and anc ~= workspace do
if anc:FindFirstChildWhichIsA('Humanoid') then
isBody = true
break
end
anc = anc.Parent
end
if not isBody then
parts[#parts + 1] = part
end
end
end
end
end)
if #parts == 0 then
notify('ClaimAll', 'No unanchored parts found')
return
end
notify('ClaimAll', 'Claiming ' .. #parts .. ' parts...')
-- Teleport to each part for 1 frame
for i, part in pairs(parts) do
if not part.Parent then end
pcall(function()
root.CFrame = part.CFrame + Vector3.new(0, 3, 0)
part:SetNetworkOwner(nil)
end)
-- Small delay between teleports (10ms = fast but safe)
RunService.Heartbeat:Wait()
end
-- Teleport back to start
pcall(function()
root.CFrame = savedPos
end)
notify('ClaimAll', 'Done! Claimed ' .. #parts .. ' parts')
end
end)
end)
addcmd('unclaimall', {'noclaimall', 'claimalloff'}, function(args, speaker)
claimallActive = false
if claimallKeyConn then claimallKeyConn:Disconnect() claimallKeyConn = nil end
showArcPopup('ClaimAll', false)
notify('ClaimAll', 'Disabled')
end)
-- ======================== MINIGUN ========================
-- Background scan every 5 seconds maintains a queue of up to 30 valid unanchored parts.
-- Click = fires them one by one, 0.2s apart, toward mouse. Zero lag on click.
-- Teleports onto part for 1 frame before firing to grab server ownership.
-- Usage: minigun [power] | unminigun / nominigun
miningActive = false
miningParts = {}
miningConn = nil
miningFiring = false
miningScanThread = nil
miningPower = 500
addcmd('minigun', {}, function(args, speaker)
if miningActive then execCmd('unminigun') return end
local char = speaker.Character
if not char then notify('Minigun', 'Character not found') return end
enablePhysicsGodmode(speaker)
local mouse = speaker:GetMouse()
-- Parse optional power argument
local power = tonumber(args[1] or '') or 500
miningPower = power
-- Check if part has any Humanoid ancestor (skip body parts)
local function isBodyPart(part)
local ancestor = part.Parent
while ancestor and ancestor ~= workspace do
if ancestor:FindFirstChildWhichIsA('Humanoid') then
return true
end
ancestor = ancestor.Parent
end
return false
end
miningParts = {}
miningActive = true
miningFiring = false
-- Background scan: every 5 seconds, refresh the queue
miningScanThread = task.spawn(function()
while miningActive do
local freshParts = {}
pcall(function()
local freshChar = speaker.Character
if not freshChar then task.wait(5) end
for _, part in pairs(workspace:GetDescendants()) do
if #freshParts >= 30 then break end
if part:IsA('BasePart') and part.Anchored == false then
if freshChar and not freshChar:IsAncestorOf(part) then
if not isBodyPart(part) then
freshParts[#freshParts + 1] = part
end
end
end
end
end)
-- Replace queue with fresh scan (only if not currently firing)
if not miningFiring then
miningParts = freshParts
end
task.wait(5)
end
end)
-- Show ENABLED popup
pcall(function()
if ArcPopupGui and ArcPopupGui.Parent then
ArcPopupGui:Destroy()
end
ArcPopupGui = nil
ArcPopupFrame = nil
ArcPopupQueue = {}
local gui = Instance.new('ScreenGui')
gui.Name = 'ArcYieldPopup'
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = game:GetService('CoreGui')
ArcPopupGui = gui
local frame = Instance.new('Frame')
frame.Size = UDim2.new(0, 280, 0, 55)
frame.Position = UDim2.new(0.5, -140, 0, -65)
frame.BackgroundColor3 = Color3.fromRGB(10, 10, 20)
frame.BackgroundTransparency = 0.15
frame.BorderSizePixel = 0
frame.Parent = gui
ArcPopupFrame = frame
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = frame
local stroke = Instance.new('UIStroke')
stroke.Color = Color3.fromRGB(50, 100, 255)
stroke.Thickness = 1.5
stroke.Transparency = 0.3
stroke.Parent = frame
local accent = Instance.new('Frame')
accent.Size = UDim2.new(0, 5, 0, 55)
accent.BackgroundColor3 = Color3.fromRGB(50, 120, 255)
accent.BorderSizePixel = 0
local ac = Instance.new('UICorner')
ac.CornerRadius = UDim.new(0, 3)
ac.Parent = accent
accent.Parent = frame
local tl = Instance.new('TextLabel')
tl.Name = 'Title'
tl.Size = UDim2.new(1, -20, 0, 28)
tl.Position = UDim2.new(0, 14, 0, 2)
tl.BackgroundTransparency = 1
tl.Text = 'Minigun'
tl.TextColor3 = Color3.fromRGB(220, 230, 255)
tl.TextStrokeColor3 = Color3.fromRGB(30, 80, 255)
tl.TextStrokeTransparency = 0.6
tl.Font = Enum.Font.GothamBold
tl.TextSize = 16
tl.TextXAlignment = Enum.TextXAlignment.Left
tl.Parent = frame
local sl = Instance.new('TextLabel')
sl.Name = 'Status'
sl.Size = UDim2.new(1, -20, 0, 20)
sl.Position = UDim2.new(0, 14, 0, 28)
sl.BackgroundTransparency = 1
sl.Text = 'ENABLED (power: ' .. power .. ')'
sl.TextColor3 = Color3.fromRGB(100, 255, 130)
sl.TextStrokeColor3 = Color3.fromRGB(30, 80, 255)
sl.TextStrokeTransparency = 0.8
sl.Font = Enum.Font.Gotham
sl.TextSize = 13
sl.TextXAlignment = Enum.TextXAlignment.Left
sl.Parent = frame
local ts = game:GetService('TweenService')
ts:Create(frame, TweenInfo.new(0.35, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Position = UDim2.new(0.5, -140, 0, 10),
BackgroundTransparency = 0
}):Play()
end)
-- Click = fire parts one by one, 0.2s apart
miningConn = mouse.Button1Down:Connect(function()
if not miningActive or miningFiring then return end
if not miningParts or #miningParts == 0 then
notify('Minigun', 'No parts queued yet, wait for scan...')
return
end
miningFiring = true
-- Snapshot current queue so background scan keeps building a new one
local snapshot = {}
for _, p in pairs(miningParts) do snapshot[#snapshot + 1] = p end
miningParts = {}
task.spawn(function()
local root = getRoot(char)
if not root then miningFiring = false return end
local savedPos = root.CFrame
for i = 1, #snapshot do
if not miningActive then break end
local part = snapshot[i]
if part and part.Parent and part.Anchored == false then
pcall(function()
-- Strip constraints/welds right before firing
orbitua_prepPart(part)
for _, x in pairs(part:GetChildren()) do
if x:IsA('Constraint') then
pcall(function() x:Destroy() end)
end
end
local ok4, joints = pcall(function() return part:GetJoints() end)
if ok4 and joints then
for _, x in pairs(joints) do
pcall(function() x:Destroy() end)
end
end
part.Massless = true
part.CanCollide = false
part.CanTouch = false
-- Teleport onto the part for 1 frame to grab server ownership
root.CFrame = part.CFrame + Vector3.new(0, 3, 0)
RunService.Heartbeat:Wait()
root.CFrame = savedPos
-- Now fire it
local targetPos = mouse.Hit.Position
local dir = (targetPos - part.Position).Unit
part.Velocity = dir * miningPower
part.RotVelocity = Vector3.new(
math.random(-80, 80),
math.random(-80, 80),
math.random(-80, 80)
)
end)
end
if i < #snapshot then
task.wait(0.2)
end
end
miningFiring = false
end)
end)
-- Keep SimulationRadius up so physics works on far parts
task.spawn(function()
while miningActive do
pcall(function() sethiddenproperty(speaker, "SimulationRadius", math.huge) end)
task.wait(1)
end
end)
notify('Minigun', 'Scanning every 5s. Power: ' .. power .. '. Click to fire!')
end)
addcmd('unminigun', {'nominigun', 'minigunoff'}, function(args, speaker)
miningActive = false
disablePhysicsGodmode(speaker)
if miningConn then miningConn:Disconnect() miningConn = nil end
miningParts = {}
miningFiring = false
miningScanThread = nil
-- Show DISABLED popup
pcall(function()
if ArcPopupGui and ArcPopupGui.Parent then
ArcPopupGui:Destroy()
end
ArcPopupGui = nil
ArcPopupFrame = nil
ArcPopupQueue = {}
local gui = Instance.new('ScreenGui')
gui.Name = 'ArcYieldPopup'
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = game:GetService('CoreGui')
ArcPopupGui = gui
local frame = Instance.new('Frame')
frame.Size = UDim2.new(0, 280, 0, 55)
frame.Position = UDim2.new(0.5, -140, 0, -65)
frame.BackgroundColor3 = Color3.fromRGB(10, 10, 20)
frame.BackgroundTransparency = 0.15
frame.BorderSizePixel = 0
frame.Parent = gui
ArcPopupFrame = frame
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = frame
local stroke = Instance.new('UIStroke')
stroke.Color = Color3.fromRGB(50, 100, 255)
stroke.Thickness = 1.5
stroke.Transparency = 0.3
stroke.Parent = frame
local accent = Instance.new('Frame')
accent.Size = UDim2.new(0, 5, 0, 55)
accent.BackgroundColor3 = Color3.fromRGB(50, 120, 255)
accent.BorderSizePixel = 0
local ac = Instance.new('UICorner')
ac.CornerRadius = UDim.new(0, 3)
ac.Parent = accent
accent.Parent = frame
local tl = Instance.new('TextLabel')
tl.Name = 'Title'
tl.Size = UDim2.new(1, -20, 0, 28)
tl.Position = UDim2.new(0, 14, 0, 2)
tl.BackgroundTransparency = 1
tl.Text = 'Minigun'
tl.TextColor3 = Color3.fromRGB(220, 230, 255)
tl.TextStrokeColor3 = Color3.fromRGB(30, 80, 255)
tl.TextStrokeTransparency = 0.6
tl.Font = Enum.Font.GothamBold
tl.TextSize = 16
tl.TextXAlignment = Enum.TextXAlignment.Left
tl.Parent = frame
local sl = Instance.new('TextLabel')
sl.Name = 'Status'
sl.Size = UDim2.new(1, -20, 0, 20)
sl.Position = UDim2.new(0, 14, 0, 28)
sl.BackgroundTransparency = 1
sl.Text = 'DISABLED'
sl.TextColor3 = Color3.fromRGB(255, 100, 100)
sl.TextStrokeColor3 = Color3.fromRGB(30, 80, 255)
sl.TextStrokeTransparency = 0.8
sl.Font = Enum.Font.Gotham
sl.TextSize = 13
sl.TextXAlignment = Enum.TextXAlignment.Left
sl.Parent = frame
local ts = game:GetService('TweenService')
ts:Create(frame, TweenInfo.new(0.35, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Position = UDim2.new(0.5, -140, 0, 10),
BackgroundTransparency = 0
}):Play()
end)
end)
-- ======================== HOVERBOARD ========================
-- Finds a flat unanchored part (~6x1x1 or similar), brings it to your feet.
-- You ride it: WASD to move (camera-relative), Space to jump.
-- Idle: board gently tilts/bobs + Aura Idle animation.
-- Moving: board levels out + Floating Flying animation.
-- Serversided Velocity (orbitua-style) so everyone sees the board move.
-- Player is locked to the top of the board every frame.
-- Usage: hoverboard | unhoverboard / nohoverboard / hoverboardoff / togglehoverboard
hbActive = false
hbPart = nil
hbConn = nil
hbIdleTrack = nil
hbMoveTrack = nil
hbSpeed = 80
hbKeysDown = {}
hbInputBegan = nil
hbInputEnded = nil
hbDiedConn = nil
hbOrigWalkSpeed = 16
hbOrigAnimate = nil
hbIdleAnimId = 616006778 -- Levitation Idle (float with legs crossed, aura-like)
hbMoveAnimId = 616010382 -- Levitation Run (flying/floating movement)
addcmd('hoverboard', {}, function(args, speaker)
if hbActive then execCmd('unhoverboard') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Hoverboard', 'Character not found') return end
local root = getRoot(char)
local hum = char:FindFirstChildWhichIsA('Humanoid')
if not hum then notify('Hoverboard', 'Humanoid not found') return end
-- Find a suitable flat long part (roughly 6:1:1 ratio or similar proportions)
local bestPart = nil
local bestScore = math.huge
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not char:IsAncestorOf(part) then
local sx, sy, sz = part.Size.X, part.Size.Y, part.Size.Z
-- Sort dimensions largest to smallest
local sizes = {sx, sy, sz}
table.sort(sizes, function(a, b) return a > b end)
-- Longest >= 3 studs, ratio longest/shortest >= 2.5, middle/shortest <= 3
if sizes[1] >= 3 and sizes[1] / sizes[3] >= 2.5 and sizes[2] / sizes[3] <= 3 then
-- Score: prefer closest to 6x1x1 proportions
local score = math.abs(sizes[1] - 6) + math.abs(sizes[2] - 1) + math.abs(sizes[3] - 1)
if score < bestScore then
bestPart = part
bestScore = score
end
end
end
end
end
if not bestPart then
notify('Hoverboard', 'No flat part found! Need something like 6x1x1')
return
end
hbPart = bestPart
orbitua_prepPart(hbPart)
-- Position board under player's feet
local yOffset = -(root.Size.Y / 2 + hbPart.Size.Y / 2 + 0.1)
hbPart.CFrame = root.CFrame * CFrame.new(0, yOffset, 0)
hbPart.Velocity = Vector3.new(0, 0, 0)
hbPart.RotVelocity = Vector3.new(0, 0, 0)
-- Weld player to board so other players see the connection
local hbWeld = Instance.new('WeldConstraint')
hbWeld.Part0 = root
hbWeld.Part1 = hbPart
hbWeld.Parent = root
-- Save original WalkSpeed and set to 0 (so humanoid doesn't fight the weld)
hbOrigWalkSpeed = hum.WalkSpeed
hum.WalkSpeed = 0
-- Disable default Animate script so it doesn't override our custom anims
hbOrigAnimate = char:FindFirstChild('Animate')
if hbOrigAnimate then hbOrigAnimate.Disabled = true end
-- Load animations
local idleAnim = Instance.new('Animation')
idleAnim.AnimationId = 'rbxassetid://' .. hbIdleAnimId
local moveAnim = Instance.new('Animation')
moveAnim.AnimationId = 'rbxassetid://' .. hbMoveAnimId
hbIdleTrack = nil
hbMoveTrack = nil
pcall(function()
hbIdleTrack = hum:LoadAnimation(idleAnim)
hbMoveTrack = hum:LoadAnimation(moveAnim)
if hbIdleTrack then
hbIdleTrack.Priority = Enum.AnimationPriority.Movement
hbIdleTrack.Looped = true
end
if hbMoveTrack then
hbMoveTrack.Priority = Enum.AnimationPriority.Movement
hbMoveTrack.Looped = true
end
end)
-- Track keyboard input for WASD + Space
local UIS = game:GetService('UserInputService')
hbKeysDown = {}
hbInputBegan = UIS.InputBegan:Connect(function(input, processed)
if not processed then
hbKeysDown[input.KeyCode] = true
end
end)
hbInputEnded = UIS.InputEnded:Connect(function(input)
hbKeysDown[input.KeyCode] = false
end)
hbActive = true
local wasMoving = false
-- Main heartbeat loop
hbConn = RunService.Heartbeat:Connect(function(dt)
if not hbActive then return end
if not hbPart or not hbPart.Parent then execCmd('unhoverboard') return end
local r = getRoot(speaker.Character)
if not r then execCmd('unhoverboard') return end
-- Calculate movement direction from WASD (camera-relative)
local cam = workspace.CurrentCamera
local moveDir = Vector3.new(0, 0, 0)
if hbKeysDown[Enum.KeyCode.W] then moveDir = moveDir + cam.CFrame.LookVector end
if hbKeysDown[Enum.KeyCode.S] then moveDir = moveDir - cam.CFrame.LookVector end
if hbKeysDown[Enum.KeyCode.A] then moveDir = moveDir - cam.CFrame.RightVector end
if hbKeysDown[Enum.KeyCode.D] then moveDir = moveDir + cam.CFrame.RightVector end
-- Flatten Y axis for ground movement
moveDir = Vector3.new(moveDir.X, 0, moveDir.Z)
local isMoving = moveDir.Magnitude > 0.01
local wantsJump = hbKeysDown[Enum.KeyCode.Space] == true
if isMoving then
moveDir = moveDir.Unit
-- Move board with Velocity (serversided, orbitua-style)
local jumpVel = wantsJump and 120 or 0
hbPart.Velocity = moveDir * hbSpeed + Vector3.new(0, jumpVel, 0)
-- Level the board when moving (zero out tilt)
hbPart.RotVelocity = Vector3.new(0, 0, 0)
else
-- Idle: gentle hover bob + slow tilt oscillation
local bobY = math.sin(tick() * 2) * 3
local jumpBoost = wantsJump and 80 or 0
hbPart.Velocity = Vector3.new(0, bobY + jumpBoost, 0)
-- Tilt the board gently with RotVelocity
hbPart.RotVelocity = Vector3.new(
math.sin(tick() * 1.5) * 15,
0,
math.cos(tick() * 1.2) * 10
)
end
-- Lock player on top of the board every frame
local topY = hbPart.Position.Y + hbPart.Size.Y / 2 + r.Size.Y / 2 + 0.1
if isMoving then
-- Face movement direction
local lookAngle = math.atan2(moveDir.X, moveDir.Z)
r.CFrame = CFrame.new(hbPart.Position.X, topY, hbPart.Position.Z) * CFrame.Angles(0, lookAngle, 0)
else
-- Keep current facing direction
local _, currentYRot = r.CFrame:ToEulerAnglesYXZ()
r.CFrame = CFrame.new(hbPart.Position.X, topY, hbPart.Position.Z) * CFrame.Angles(0, currentYRot, 0)
end
-- Switch animations based on movement state
if isMoving and not wasMoving then
pcall(function() if hbMoveTrack then hbMoveTrack:Play() end end)
pcall(function() if hbIdleTrack then hbIdleTrack:Stop() end end)
elseif not isMoving and wasMoving then
pcall(function() if hbIdleTrack then hbIdleTrack:Play() end end)
pcall(function() if hbMoveTrack then hbMoveTrack:Stop() end end)
end
wasMoving = isMoving
sethiddenproperty(speaker, "SimulationRadius", math.huge)
end)
-- Die cleanup
if hum then
hbDiedConn = hum.Died:Connect(function() execCmd('unhoverboard') end)
end
-- Start idle animation
pcall(function() if hbIdleTrack then hbIdleTrack:Play() end end)
showArcPopup('Hoverboard', true)
notify('Hoverboard', 'Hoverboard active! WASD to move, Space to jump')
end)
addcmd('unhoverboard', {'nohoverboard', 'hoverboardoff'}, function(args, speaker)
hbActive = false
if hbConn then hbConn:Disconnect() hbConn = nil end
if hbDiedConn then hbDiedConn:Disconnect() hbDiedConn = nil end
if hbInputBegan then hbInputBegan:Disconnect() hbInputBegan = nil end
if hbInputEnded then hbInputEnded:Disconnect() hbInputEnded = nil end
-- Restore WalkSpeed and Animate script
local char = speaker.Character
if char then
local hum = char:FindFirstChildWhichIsA('Humanoid')
if hum then hum.WalkSpeed = hbOrigWalkSpeed end
if hbOrigAnimate and hbOrigAnimate.Parent then
hbOrigAnimate.Disabled = false
end
end
hbOrigAnimate = nil
-- Stop animations
if hbIdleTrack then pcall(function() hbIdleTrack:Stop() end) hbIdleTrack = nil end
if hbMoveTrack then pcall(function() hbMoveTrack:Stop() end) hbMoveTrack = nil end
-- Remove weld
local root = char and getRoot(char)
if root then
for _, x in pairs(root:GetChildren()) do
if x:IsA('WeldConstraint') and x.Part1 == hbPart then
x:Destroy()
end
end
end
-- Clean up the board
if hbPart and hbPart.Parent then
pcall(function() hbPart.CustomPhysicalProperties = nil end)
hbPart.Velocity = Vector3.new(0, 0, 0)
hbPart.RotVelocity = Vector3.new(0, 0, 0)
end
hbPart = nil
hbKeysDown = {}
showArcPopup('Hoverboard', false)
end)
addcmd('togglehoverboard', {}, function(args, speaker)
if hbActive then execCmd('unhoverboard') else execCmd('hoverboard') end
end)
-- ======================== CUSTOM ANIMATION PACKS ========================
-- Each pack replaces the character's Animate script animations (idle, walk, run,
-- jump, fall, swim, climb) with a themed set. The default Animate script handles
-- all state transitions automatically - no manual tracking needed.
-- Run command again to stop and restore originals.
-- Xeno Lua 5.1 compatible: no continue, no goto.
-- Usage: floatpack | godpack | ninjapack | zombiepack | vampirepack | etc.
animPackActive = nil -- name of active pack, nil = none
animPackOriginals = {} -- saved original AnimationIds
animPackDiedConn = nil
-- Animation pack definitions: {name, description, idle1, idle2, walk, run, jump, fall, climb, swim, swimidle}
local animPacks = {
floatpack = {"Float Pack", "Levitation - float everywhere, swim in air",
616006778, 616008087, 616013216, 616010382, 616008936, 616005863, 616003713, 616011509, 616012453},
godpack = {"God Pack", "Superhero - arms out, confident, powerful",
616111295, 616113536, 616122287, 616117076, 616115533, 616108001, 616104706, nil, nil},
ninjapack = {"Ninja Pack", "Stealth ninja - sneaky, fast, agile",
656117400, 656118341, 656121766, 656118852, 656117878, 656115606, 656114359, nil, nil},
zombiepack = {"Zombie Pack", "Undead - arms forward, stumbling, lurching",
616158929, 616160636, 616168032, 616163682, 616161997, 616157476, nil, nil, nil},
stylishpack = {"Stylish Pack", "Swagger - cool walk, slick movement",
616136790, 616138447, 616146177, 616140816, 616139451, 616134815, nil, nil, nil},
robotpack = {"Robot Pack", "Mechanical - stiff, robotic movement",
616088211, 616089559, 616095330, 616091570, 616090535, 616087089, 616086039, nil, nil},
magepack = {"Mage Pack", "Magical - caster walk, mystical movement",
707742142, 707855907, 707897309, 707861613, 707853694, 707829716, 707826056, nil, nil},
vampirepack = {"Vampire Pack", "Dark elegant - vampire walk/run, pale grace",
1083445855, 1083450166, 1083473930, 1083462077, 1083455352, 1083443587, 1083439238, nil, nil},
werewlfpack = {"Werewolf Pack", "Beast - animalistic walk/run, feral movement",
1083195517, 1083214717, 1083178339, 1083216690, 1083218792, 1083189019, 1083182000, nil, nil},
piratepack = {"Pirate Pack", "Swashbuckler - pirate walk, adventurous run",
750781874, 750782770, 750785693, 750783738, 750782230, 750780242, 750779899, nil, nil},
cartypack = {"Cartoony Pack", "Exaggerated - bouncy, over-the-top movement",
742637544, 742638445, 742640026, 742638842, 742637942, 742637151, 742636889, nil, nil},
bubblypack = {"Bubbly Pack", "Playful - bouncy walk with swim animations",
910004836, 910009958, 910034870, 910025107, 910016857, 910001910, nil, 910028158, 910030921},
cowboyppack = {"Cowboy Pack", "Western - cowboy stroll, rugged run",
1014390418, 1014398616, 1014421541, 1014401683, 1014394726, 1014384571, 1014380606, nil, nil},
knightpack = {"Knight Pack", "Heavy armor - slow, powerful, armored",
657595757, 657568135, 657552124, 657564596, 658409194, 657600338, 658360781, nil, nil},
princespack = {"Princess Pack", "Elegant - graceful walk, royal movement",
941003647, 941013098, 941028902, 941015281, 941008832, 941000007, 940996062, nil, nil},
sneakypack = {"Sneaky Pack", "Stealth - tiptoe, quiet movement",
1132473842, 1132477671, 1132510133, 1132494274, 1132489853, 1132469004, 1132461372, nil, nil},
confidpack = {"Confident Pack","Swagger - cool idle, confident walk",
1069977950, 1069987858, 1070017263, 1070001516, 1069984524, 1069973677, 1069946257, nil, nil},
astronautpk = {"Astronaut Pack","Space - low-gravity walk, skydive fall",
891621366, 891633237, 891667138, 891636393, 891627522, 891617961, 891609353, nil, nil},
elderpack = {"Elder Pack", "Old person - slow, hunched walk",
845397899, 845400520, 845403856, 845386501, 845398858, 845396048, 845392038, nil, nil},
popstarpack = {"Popstar Pack", "Idol - popstar walk, star movement",
1212900985, 1212900985, 1212980338, 1212980348, 1212954642, 1212900995, 1213044953, nil, nil},
toypack = {"Toy Pack", "Toy-like - stiff, playful movements",
782841498, 782845736, 782843345, 782842708, 782847020, 782846423, 782843869, nil, nil},
}
-- Path map: which Animation objects to modify in the Animate script
-- Each entry = {container name, animation name}
local animPaths = {
{"idle", "Animation1"},
{"idle", "Animation2"},
{"walk", "WalkAnim"},
{"run", "RunAnim"},
{"jump", "JumpAnim"},
{"fall", "FallAnim"},
{"climb", "ClimbAnim"},
{"swim", "Swim"},
{"swimidle", "SwimIdle"},
}
-- Save original AnimationIds from the Animate script
local function saveOriginalAnims(char)
local animate = char:FindFirstChild('Animate')
if not animate then return end
animPackOriginals = {}
for _, pathPair in pairs(animPaths) do
local container = animate:FindFirstChild(pathPair[1])
if container then
local animObj = container:FindFirstChild(pathPair[2])
if animObj then
animPackOriginals[pathPair[1] .. '.' .. pathPair[2]] = animObj.AnimationId
end
end
end
end
-- Restore original AnimationIds
local function restoreOriginalAnims(char)
local animate = char:FindFirstChild('Animate')
if not animate then return end
for pathKey, originalId in pairs(animPackOriginals) do
local containerName = string.match(pathKey, '^(.+)%..+$')
local animName = string.match(pathKey, '^%.(.+)$')
-- Re-parse key
local dotPos = string.find(pathKey, '.', 1, true)
if dotPos then
containerName = string.sub(pathKey, 1, dotPos - 1)
animName = string.sub(pathKey, dotPos + 1)
end
local container = animate:FindFirstChild(containerName)
if container then
local animObj = container:FindFirstChild(animName)
if animObj then
pcall(function() animObj.AnimationId = originalId end)
end
end
end
animPackOriginals = {}
end
-- Apply a pack's animations to the Animate script
local function applyPack(char, pack)
local animate = char:FindFirstChild('Animate')
if not animate then
notify('Anim', 'Animate script not found on character')
return false
end
local ids = pack
local pathIndex = 0
for _, pathPair in pairs(animPaths) do
pathIndex = pathIndex + 1
local animId = ids[pathIndex + 2] -- +2 because index 1=name, 2=desc
if animId then
local container = animate:FindFirstChild(pathPair[1])
if container then
local animObj = container:FindFirstChild(pathPair[2])
if animObj then
pcall(function() animObj.AnimationId = 'rbxassetid://' .. animId end)
end
end
end
end
return true
end
-- Stop any active pack
local function stopAnimPack(speaker)
if animPackDiedConn then animPackDiedConn:Disconnect() animPackDiedConn = nil end
local char = speaker.Character
if char then restoreOriginalAnims(char) end
local wasActive = animPackActive
animPackActive = nil
return wasActive
end
-- Shared function to activate an animation pack
local function playAnimPack(packName, speaker)
local pack = animPacks[packName]
if not pack then
notify('Anim', 'Unknown pack: ' .. tostring(packName))
return
end
-- If already playing this pack, stop it
if animPackActive == packName then
stopAnimPack(speaker)
showArcPopup(pack[1], false)
notify('Anim', 'Stopped ' .. pack[1])
return
end
-- Stop any existing pack first
stopAnimPack(speaker)
local char = speaker.Character
if not char then notify('Anim', 'Character not found') return end
local hum = char:FindFirstChildWhichIsA('Humanoid')
if not hum then notify('Anim', 'Humanoid not found') return end
-- Save originals then apply pack
saveOriginalAnims(char)
local ok = applyPack(char, pack)
if not ok then
restoreOriginalAnims(char)
return
end
animPackActive = packName
showArcPopup(pack[1], true)
notify('Anim', pack[1] .. ' - ' .. pack[2])
-- Cleanup on death
animPackDiedConn = hum.Died:Connect(function()
stopAnimPack(speaker)
showArcPopup('Anim', false)
end)
end
-- Universal stop command
addcmd('unanim', {'noanim', 'stopanim', 'animsreset', 'resetanim'}, function(args, speaker)
-- Stop lol anim if active
if lolAnimActive then
lolAnimActive = false
if lolAnimConn then lolAnimConn:Disconnect() lolAnimConn = nil end
if lolAnimDiedConn then lolAnimDiedConn:Disconnect() lolAnimDiedConn = nil end
showArcPopup('LOL Anim', false)
end
local was = stopAnimPack(speaker)
local char = speaker.Character
if char then restoreOriginalAnims(char) end
showArcPopup('Anim', false)
if was or lolAnimActive then notify('Anim', 'Stopped animation pack') end
end)
-- Register all animation pack commands
local packAliases = {
floatpack = {'floatpack', 'floatanim'},
godpack = {'godpack', 'godanim', 'god'},
ninjapack = {'ninjapack', 'ninjaanim', 'ninja'},
zombiepack = {'zombiepack', 'zombieanim', 'zombie'},
stylishpack = {'stylishpack', 'stylishanim', 'stylish'},
robotpack = {'robotpack', 'robotanim', 'robot'},
magepack = {'magepack', 'mageanim', 'mage'},
vampirepack = {'vampirepack', 'vampireanim', 'vampire'},
werewolfpack = {'werewolfpack', 'werewolfanim', 'werewolf'},
piratepack = {'piratepack', 'pirateanim', 'pirate'},
cartypack = {'cartypack', 'cartoonyanim', 'cartoony'},
bubblypack = {'bubblypack', 'bubblyanim', 'bubbly'},
cowboyppack = {'cowboyppack', 'cowboyanim', 'cowboy'},
knightpack = {'knightpack', 'knightanim', 'knight'},
princesspack = {'princesspack', 'princessanim', 'princess'},
sneakypack = {'sneakypack', 'sneakyanim', 'sneaky'},
confidpack = {'confidpack', 'confidanim', 'confident'},
astronautpk = {'astronautpk', 'astronautanim', 'astronaut'},
elderpack = {'elderpack', 'elderanim', 'elder'},
popstarpack = {'popstarpack', 'popstaranim', 'popstar'},
toypack = {'toypack', 'toyanim', 'toy'},
}
for packName, aliases in pairs(packAliases) do
addcmd(aliases[1], aliases, function(args, speaker)
playAnimPack(packName, speaker)
end)
end
-- ======================== LOL ANIM ========================
-- Every time you walk, run, jump, fall, or climb, picks a RANDOM animation from a huge pool.
-- Uses Humanoid.StateChanged to swap the Animate script's AnimationId right before it plays.
-- Each movement = different animation every time. Run again to stop.
-- Usage: lolanim / lol | unanim to stop
lolAnimActive = false
lolAnimConn = nil
lolAnimDiedConn = nil
lolAnimOriginals = {}
-- Big pools of animation IDs scraped from all packs
local lolWalkPool = {
616013216, 616122287, 656121766, 616168032, 616146177, 616095330,
707897309, 1083473930, 1083178339, 750785693, 742640026, 910034870,
1014421541, 657552124, 941028902, 1132510133, 1070017263, 891667138,
845403856, 1212980338, 782843345, 616010382, 616117076, 656118852,
616163682, 616140816, 616091570, 707861613, 1083462077, 1083216690,
750783738, 742638842, 910025107, 1014401683, 657564596, 941015281,
1132494274, 1070001516, 891636393, 845386501, 1212980348, 782842708
}
local lolIdlePool = {
616006778, 616008087, 616111295, 616113536, 656117400, 656118341,
616158929, 616160636, 616136790, 616138447, 616088211, 616089559,
707742142, 707855907, 1083445855, 1083450166, 1083195517, 1083214717,
750781874, 750782770, 742637544, 742638445, 910004836, 910009958,
1014390418, 1014398616, 657595757, 657568135, 941003647, 941013098,
1132473842, 1132477671, 1069977950, 1069987858, 891621366, 891633237,
845397899, 845400520, 1212900985, 782841498, 782845736
}
local lolJumpPool = {
616008936, 616115533, 656117878, 616161997, 616139451, 616090535,
707853694, 1083455352, 1083218792, 750782230, 742637942, 910016857,
1014394726, 658409194, 941008832, 1132489853, 1069984524, 891627522,
845398858, 1212954642, 782847020
}
local lolFallPool = {
616005863, 616108001, 656115606, 616157476, 616134815, 616087089,
707829716, 1083443587, 1083189019, 750780242, 742637151, 910001910,
1014384571, 657600338, 941000007, 1132469004, 1069973677, 891617961,
845396048, 1212900995, 782846423
}
local lolClimbPool = {
616003713, 616104706, 656114359, 616157476, 616134815, 616087089,
707826056, 1083439238, 1083182000, 750779899, 742636889, 1014380606,
658360781, 940996062, 1132461372, 1069946257, 891609353, 845392038,
1213044953, 782843869, 616086039
}
local lolSwimPool = {
616011509, 910028158, 616012453, 910030921
}
-- Map pool name -> {container, animName} in Animate script
local lolPoolPaths = {
idle1 = {'idle', 'Animation1'},
idle2 = {'idle', 'Animation2'},
walk = {'walk', 'WalkAnim'},
run = {'run', 'RunAnim'},
jump = {'jump', 'JumpAnim'},
fall = {'fall', 'FallAnim'},
climb = {'climb', 'ClimbAnim'},
swim = {'swim', 'Swim'},
swimidle = {'swimidle', 'SwimIdle'},
}
-- Map pool name -> pool table
local lolPoolMap = {
idle1 = lolIdlePool,
idle2 = lolIdlePool,
walk = lolWalkPool,
run = lolWalkPool,
jump = lolJumpPool,
fall = lolFallPool,
climb = lolClimbPool,
swim = lolSwimPool,
swimidle = lolSwimPool,
}
local function lolRandomizeSlot(animate, slotName)
local pool = lolPoolMap[slotName]
local pathInfo = lolPoolPaths[slotName]
if not pool or not pathInfo then return end
local id = pool[math.random(1, #pool)]
local container = animate:FindFirstChild(pathInfo[1])
if container then
local animObj = container:FindFirstChild(pathInfo[2])
if animObj then
pcall(function() animObj.AnimationId = 'rbxassetid://' .. id end)
end
end
end
addcmd('lolanim', {'lol'}, function(args, speaker)
-- Toggle off
if lolAnimActive then
lolAnimActive = false
if lolAnimConn then lolAnimConn:Disconnect() lolAnimConn = nil end
if lolAnimDiedConn then lolAnimDiedConn:Disconnect() lolAnimDiedConn = nil end
local char = speaker.Character
if char then restoreOriginalAnims(char) end
showArcPopup('LOL Anim', false)
notify('LOL Anim', 'Stopped')
return
end
local char = speaker.Character
if not char then notify('LOL Anim', 'No character') return end
local hum = char:FindFirstChildWhichIsA('Humanoid')
if not hum then notify('LOL Anim', 'No humanoid') return end
local animate = char:FindFirstChild('Animate')
if not animate then notify('LOL Anim', 'No Animate script') return end
-- Save originals first
saveOriginalAnims(char)
lolAnimActive = true
-- Randomize all slots immediately
for slotName, _ in pairs(lolPoolMap) do
lolRandomizeSlot(animate, slotName)
end
-- On every state change, randomize the relevant slots
lolAnimConn = hum.StateChanged:Connect(function(oldState, newState)
if not lolAnimActive then return end
local char2 = speaker.Character
if not char2 then return end
local animate2 = char2:FindFirstChild('Animate')
if not animate2 then return end
-- Map humanoid states to animation slots
if newState == Enum.HumanoidStateType.Running then
lolRandomizeSlot(animate2, 'walk')
lolRandomizeSlot(animate2, 'run')
elseif newState == Enum.HumanoidStateType.Jumping then
lolRandomizeSlot(animate2, 'jump')
elseif newState == Enum.HumanoidStateType.Freefall then
lolRandomizeSlot(animate2, 'fall')
elseif newState == Enum.HumanoidStateType.Climbing then
lolRandomizeSlot(animate2, 'climb')
elseif newState == Enum.HumanoidStateType.Swimming then
lolRandomizeSlot(animate2, 'swim')
lolRandomizeSlot(animate2, 'swimidle')
elseif newState == Enum.HumanoidStateType.Idle or newState == Enum.HumanoidStateType.GettingUp or newState == Enum.HumanoidStateType.LandingPaused then
lolRandomizeSlot(animate2, 'idle1')
lolRandomizeSlot(animate2, 'idle2')
end
end)
-- Cleanup on death
lolAnimDiedConn = hum.Died:Connect(function()
lolAnimActive = false
if lolAnimConn then lolAnimConn:Disconnect() lolAnimConn = nil end
lolAnimDiedConn = nil
local char3 = speaker.Character
if char3 then restoreOriginalAnims(char3) end
showArcPopup('LOL Anim', false)
end)
showArcPopup('LOL Anim', true)
notify('LOL Anim', 'Random anim every move! Type again to stop')
end)
-- ======================== FLING UA ========================
-- Takes ALL unanchored parts from the game, assigns ONE to each player, spins at max speed.
-- Parts follow their assigned player. The spinning + collision naturally flings people.
-- Usage: flingua [spinpower] | flingua off / unflingua to stop
flinguaActive = false
flinguaConn = nil
flinguaParts = {}
addcmd('flingua', {'fua'}, function(args, speaker)
if args[1] and args[1]:lower() == 'off' then execCmd('unflingua') return end
if flinguaActive then execCmd('unflingua') return end
local spinPower = tonumber(args[1]) or 9999
flinguaActive = true
-- Collect ALL unanchored parts from the game (not from any player character)
local availableParts = {}
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
local skipPart = false
for _, p in pairs(Players:GetPlayers()) do
if p.Character and p.Character:IsAncestorOf(part) then
skipPart = true
break
end
end
if not skipPart then
table.insert(availableParts, part)
end
end
end
-- Assign one part per player (except speaker)
flinguaParts = {}
local partIndex = 1
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and player.Character and player.Character:FindFirstChild('HumanoidRootPart') then
if partIndex <= #availableParts then
local part = availableParts[partIndex]
partIndex = partIndex + 1
-- Strip existing constraints that would interfere
for _, x in pairs(part:GetChildren()) do
if x:IsA('BodyAngularVelocity') or x:IsA('BodyForce') or x:IsA('BodyGyro') or x:IsA('BodyPosition') or x:IsA('BodyThrust') or x:IsA('BodyVelocity') or x:IsA('RocketPropulsion') or x:IsA('AlignPosition') or x:IsA('Torque') then
x:Destroy()
end
end
-- Zero friction so it spins freely + can collide to fling
part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
part.CanCollide = true
-- Max speed spin
local spin = Instance.new('BodyAngularVelocity')
spin.Name = randomString()
spin.AngularVelocity = Vector3.new(spinPower, spinPower, spinPower)
spin.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
spin.P = math.huge
spin.Parent = part
-- Teleport part to player
part.CFrame = player.Character.HumanoidRootPart.CFrame
table.insert(flinguaParts, {part = part, spin = spin, target = player})
end
end
end
-- Follow loop: keep each part glued to its assigned player
flinguaConn = RunService.Heartbeat:Connect(function()
if not flinguaActive then return end
for _, entry in pairs(flinguaParts) do
if entry.part and entry.part.Parent and entry.target and entry.target.Character then
local targetRoot = entry.target.Character:FindFirstChild('HumanoidRootPart')
if targetRoot then
entry.part.CFrame = targetRoot.CFrame
end
end
end
end)
showArcPopup('FlingUA (' .. #flinguaParts .. ' parts)', true)
notify('FlingUA', 'Assigned ' .. #flinguaParts .. ' game parts to players')
end)
addcmd('unflingua', {'noflingua'}, function(args, speaker)
flinguaActive = false
if flinguaConn then flinguaConn:Disconnect() flinguaConn = nil end
for _, entry in pairs(flinguaParts) do
if entry.spin and entry.spin.Parent then entry.spin:Destroy() end
if entry.part and entry.part.Parent then
entry.part.Velocity = Vector3.new(0, 0, 0)
pcall(function() entry.part.CustomPhysicalProperties = nil end)
end
end
flinguaParts = {}
showArcPopup('FlingUA', false)
end)
addcmd('toggleflingua', {}, function(args, speaker)
if flinguaActive then execCmd('unflingua') else execCmd('flingua') end
end)
-- ======================== YUNAS (LOAD HUB) ========================
addcmd('yunas', {}, function(args, speaker)
notify('Arc Yield', 'Loading Yunas Hub...')
local success, err = pcall(function()
loadstring(game:HttpGet('https://raw.githubusercontent.com/yunus154524/YunusLo1545-HUB/refs/heads/main/YunusLo1545%20HUB'))()
end)
if not success then
notify('Arc Yield', 'Failed to load Yunas: ' .. tostring(err))
end
end)
-- ======================== DROPKICK (LOAD SCRIPT) ========================
addcmd('dropkick', {}, function(args, speaker)
notify('Arc Yield', 'Loading DropKick...')
local success, err = pcall(function()
loadstring(game:HttpGet('https://raw.githubusercontent.com/platinww/CrustyMain/refs/heads/main/universal/DropKick.lua'))()
end)
if not success then
notify('Arc Yield', 'Failed to load DropKick: ' .. tostring(err))
end
end)
-- ======================== FUNNY UA ========================
-- Finds the smallest unanchored part in the game, spins it at max speed,
-- makes it jitter really fast, and teleports it onto a random player every 1 second.
-- Usage: funnyua | unfunnyua to stop
funnyuaActive = false
funnyuaConn = nil
funnyuaPart = nil
funnyuaJitterConn = nil
funnyuaParts = {}
funnyuaTarget = nil
funnyuaTargetTimer = 0
funnyuaDiedConn = nil
addcmd('funnyua', {}, function(args, speaker)
if funnyuaActive then execCmd('unfunnyua') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('FunnyUA', 'Character not found') return end
funnyuaActive = true
funnyuaParts = {}
funnyuaTarget = nil
funnyuaTargetTimer = 0
-- Collect ALL unanchored parts (not from ANY player's character)
local function isPlayerBodyPart(p)
for _, plr in pairs(Players:GetPlayers()) do
if plr.Character and plr.Character:IsAncestorOf(p) then return true end
end
return false
end
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not isPlayerBodyPart(part) then
orbitua_prepPart(part)
-- Add max spin to every part
local spin = Instance.new('BodyAngularVelocity')
spin.Name = randomString()
spin.AngularVelocity = Vector3.new(math.random(-9999, 9999), math.random(-9999, 9999), math.random(-9999, 9999))
spin.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
spin.P = math.huge
spin.Parent = part
table.insert(funnyuaParts, part)
end
end
end
-- Watch for new parts
local addConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not funnyuaActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if isPlayerBodyPart(p) then return end
for _, existing in pairs(funnyuaParts) do if existing == p then return end end
orbitua_prepPart(p)
local spin = Instance.new('BodyAngularVelocity')
spin.Name = randomString()
spin.AngularVelocity = Vector3.new(math.random(-9999, 9999), math.random(-9999, 9999), math.random(-9999, 9999))
spin.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
spin.P = math.huge
spin.Parent = p
table.insert(funnyuaParts, p)
end)
end)
local removeConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(funnyuaParts) do
if existing == p then table.remove(funnyuaParts, i) break end
end
end)
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
if humanoid then
funnyuaDiedConn = humanoid.Died:Connect(function() execCmd('unfunnyua') end)
end
-- Pick a random player as target (changes every 0.5 seconds)
local function pickTarget()
local validPlayers = {}
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker and p.Character and p.Character:FindFirstChild('HumanoidRootPart') then
table.insert(validPlayers, p)
end
end
if #validPlayers > 0 then
funnyuaTarget = validPlayers[math.random(1, #validPlayers)]
end
end
pickTarget()
-- Main loop: orbit around target player with MAD jitter + spin
local angleOffset = math.random() * math.pi * 2
local orbitRadius = 15
local orbitSpeed = 800
funnyuaConn = RunService.Heartbeat:Connect(function(dt)
if not funnyuaActive then return end
sethiddenproperty(speaker, "SimulationRadius", math.huge)
-- Change target every 0.5 seconds
funnyuaTargetTimer = funnyuaTargetTimer + dt
if funnyuaTargetTimer >= 0.5 then
funnyuaTargetTimer = 0
pickTarget()
end
-- Get target position
local targetPos = nil
if funnyuaTarget and funnyuaTarget.Character and funnyuaTarget.Character:FindFirstChild('HumanoidRootPart') then
targetPos = funnyuaTarget.Character.HumanoidRootPart.Position
end
if not targetPos then return end
angleOffset = angleOffset + (orbitSpeed * 0.01 * dt)
for i, part in pairs(funnyuaParts) do
if part and part.Parent then
-- Each part gets a slightly different angle for chaos
local partAngleOffset = angleOffset + (i * 0.37)
-- Each part gets a slightly different radius for spiral effect
local partRadius = orbitRadius + math.sin(os.clock() * 3 + i) * 8
-- Jitter offset - random every frame for MAD jitter
local jitterX = math.random(-500, 500)
local jitterY = math.random(-300, 300)
local jitterZ = math.random(-500, 500)
-- Calculate orbit position around target
local targetOrbitPos = Vector3.new(
targetPos.X + math.cos(partAngleOffset) * partRadius,
targetPos.Y + 5 + math.sin(os.clock() * 5 + i * 0.7) * 4,
targetPos.Z + math.sin(partAngleOffset) * partRadius
)
-- Combine orbit velocity with MAD jitter
local toTarget = targetOrbitPos - part.Position
if toTarget.Magnitude > 0.01 then
part.Velocity = toTarget.Unit * orbitSpeed + Vector3.new(jitterX, jitterY, jitterZ)
else
part.Velocity = Vector3.new(jitterX, jitterY, jitterZ)
end
-- Randomize spin direction periodically for extra chaos
if math.random() < 0.02 then
local existingSpin = part:FindFirstChildOfClass('BodyAngularVelocity')
if existingSpin then
existingSpin.AngularVelocity = Vector3.new(
math.random(-9999, 9999),
math.random(-9999, 9999),
math.random(-9999, 9999)
)
end
end
end
end
end)
showArcPopup('FunnyUA', true)
notify('FunnyUA', 'ALL parts orbiting random players with MAD jitter & spin!')
end)
addcmd('unfunnyua', {'nofunnyua'}, function(args, speaker)
funnyuaActive = false
if funnyuaConn then funnyuaConn:Disconnect() funnyuaConn = nil end
if funnyuaDiedConn then funnyuaDiedConn:Disconnect() funnyuaDiedConn = nil end
for _, part in pairs(funnyuaParts or {}) do
if part and part.Parent then
for _, x in pairs(part:GetChildren()) do
if x:IsA('BodyAngularVelocity') then x:Destroy() end
end
part.Velocity = Vector3.new(0, 0, 0)
pcall(function() part.CustomPhysicalProperties = nil end)
part.CanCollide = true
end
end
funnyuaParts = {}
funnyuaTarget = nil
funnyuaPart = nil
showArcPopup('FunnyUA', false)
end)
addcmd('togglefunnyua', {}, function(args, speaker)
execCmd(funnyuaActive and 'unfunnyua' or 'funnyua')
end)
-- ======================== AURA ========================
-- Orbitua with height=12, slow orbit, click = line fling with 999 velocity
-- Usage: aura | unaura / noaura to stop | toggleaura to toggle
auraActive = false
auraOrbitConn = nil
auraClickConn = nil
auraCenter = nil
auraAddConn = nil
auraRemoveConn = nil
auraDiedConn = nil
auraOrbitParts = {}
auraAnimTrack = nil
auraIdleTrack = nil
addcmd('aura', {}, function(args, speaker)
if auraActive then execCmd('unaura') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Aura', 'Character not found') return end
enablePhysicsGodmode(speaker)
local root = getRoot(char)
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
-- Pre-load animations using game:GetObjects (same as lolspam)
local function loadCatalogAnim(catId)
local realAnimId = nil
pcall(function()
local objs = game:GetObjects('rbxassetid://' .. catId)
for _, obj in pairs(objs) do
if obj:IsA('Animation') then
realAnimId = obj.AnimationId
break
end
for _, child in pairs(obj:GetChildren()) do
if child:IsA('Animation') then
realAnimId = child.AnimationId
break
end
end
if realAnimId then break end
end
end)
if not realAnimId then realAnimId = 'rbxassetid://' .. catId end
local success, track = pcall(function()
local anim = Instance.new('Animation')
anim.AnimationId = realAnimId
return humanoid:LoadAnimation(anim)
end)
return success and track or nil
end
auraAnimTrack = loadCatalogAnim(129969317267234) -- Firing anim (Invincible Mark's Stance)
auraIdleTrack = loadCatalogAnim(82096188761745) -- Idle anim (Aura Idle)
if auraAnimTrack then
auraAnimTrack.Looped = true
auraAnimTrack.Priority = Enum.AnimationPriority.Action
end
if auraIdleTrack then
auraIdleTrack.Looped = true
auraIdleTrack.Priority = Enum.AnimationPriority.Action
end
auraCenter = Instance.new('Part')
auraCenter.Name = randomString()
auraCenter.Size = Vector3.new(1, 1, 1)
auraCenter.Transparency = 1
auraCenter.Anchored = true
auraCenter.CanCollide = false
auraCenter.Parent = workspace
auraCenter.CFrame = root.CFrame
auraOrbitParts = {}
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not char:IsAncestorOf(part) then
orbitua_prepPart(part)
table.insert(auraOrbitParts, part)
end
end
end
auraActive = true
-- Start idle animation right away
if auraIdleTrack then
pcall(function() auraIdleTrack:Play() end)
end
auraAddConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not auraActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if speaker.Character and speaker.Character:IsAncestorOf(p) then return end
for _, existing in pairs(auraOrbitParts) do
if existing == p then return end
end
orbitua_prepPart(p)
table.insert(auraOrbitParts, p)
end)
end)
auraRemoveConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(auraOrbitParts) do
if existing == p then table.remove(auraOrbitParts, i) break end
end
end)
if humanoid then
auraDiedConn = humanoid.Died:Connect(function() execCmd('unaura') end)
end
local angleOffset = 0
local auraOrbitSpeed = 150
local auraOrbitRadius = 10
local auraOrbitHeight = 12
local flingActive = false
local flingStartTime = 0
local flingEndPos = Vector3.new(0, 0, 0)
local flingParts = {} -- stable sorted list built once per fling
auraOrbitConn = RunService.Heartbeat:Connect(function(dt)
if not auraActive then return end
local r = getRoot(speaker.Character)
if not r then return end
auraCenter.CFrame = r.CFrame
sethiddenproperty(speaker, "SimulationRadius", math.huge)
-- Clean dead parts
local toRemove = {}
for i, part in pairs(auraOrbitParts) do
if not part or not part.Parent then
table.insert(toRemove, i)
end
end
table.sort(toRemove, function(a, b) return a > b end)
for _, idx in pairs(toRemove) do
table.remove(auraOrbitParts, idx)
end
local numParts = #auraOrbitParts
if flingActive then
-- FLING MODE: line of spazzing parts from you to mouse
local elapsed = tick() - flingStartTime
if elapsed >= 3 then
flingActive = false
if auraAnimTrack then
pcall(function() auraAnimTrack:Stop() end)
end
if auraIdleTrack then
pcall(function() auraIdleTrack:Play() end)
end
else
if auraAnimTrack then
pcall(function()
if not auraAnimTrack.IsPlaying then
auraAnimTrack:Play()
end
end)
end
local startPos = r.Position
local fireDir = (flingEndPos - startPos).Unit
local fireDist = (flingEndPos - startPos).Magnitude
local idx2 = 0
for _, part in pairs(auraOrbitParts) do
if part and part.Parent then
idx2 = idx2 + 1
-- Slot on the line with 3 stud gaps
local slotDist = (idx2 - 1) * 3
if slotDist > fireDist then slotDist = fireDist end
local slotPos = startPos + fireDir * slotDist
-- Spaz orbit around slot (5 stud radius, fast)
local angle = os.clock() * 10 + idx2 * 1.5
local targetPos = slotPos + Vector3.new(
math.cos(angle) * 5,
math.sin(os.clock() * 7 + idx2) * 3,
math.sin(angle) * 5
)
-- Raw velocity + MAD jitter (same as orbitallazer)
local toTarget = targetPos - part.Position
local jitterVel = Vector3.new(
math.random(-600, 600),
math.random(-400, 400),
math.random(-600, 600)
)
if toTarget.Magnitude > 0.01 then
part.Velocity = toTarget.Unit * 1000 + jitterVel
else
part.Velocity = jitterVel
end
local spin = part:FindFirstChildWhichIsA('BodyAngularVelocity')
if not spin then
spin = Instance.new('BodyAngularVelocity')
spin.Name = randomString()
spin.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
spin.P = math.huge
spin.Parent = part
end
spin.AngularVelocity = Vector3.new(500, 500, 500)
end
end
end
else
-- ORBIT MODE: slow orbitua orbit + spin animation
for i, part in pairs(auraOrbitParts) do
if part and part.Parent then
local spin = part:FindFirstChildWhichIsA('BodyAngularVelocity')
if not spin then
spin = Instance.new('BodyAngularVelocity')
spin.Name = randomString()
spin.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
spin.Parent = part
end
-- Tornado spin: each part gets a unique spin offset for variety
local si = (i % 6)
if si == 0 then
spin.AngularVelocity = Vector3.new(30, 60, 15)
elseif si == 1 then
spin.AngularVelocity = Vector3.new(-20, -50, 25)
elseif si == 2 then
spin.AngularVelocity = Vector3.new(40, -30, -35)
elseif si == 3 then
spin.AngularVelocity = Vector3.new(-35, 45, -20)
elseif si == 4 then
spin.AngularVelocity = Vector3.new(25, -55, 40)
else
spin.AngularVelocity = Vector3.new(-45, 35, 30)
end
end
end
angleOffset = angleOffset + (auraOrbitSpeed * 0.01 * dt)
local center = auraCenter.Position + Vector3.new(0, auraOrbitHeight, 0)
for i, part in pairs(auraOrbitParts) do
if part and part.Parent then
local pos = part.Position
local angle = math.atan2(pos.Z - center.Z, pos.X - center.X)
local newAngle = angle + (auraOrbitSpeed * 0.01 * dt)
local dist = (Vector3.new(pos.X, center.Y, pos.Z) - center).Magnitude
local clampedDist = math.min(auraOrbitRadius, dist)
local targetPos = Vector3.new(
center.X + math.cos(newAngle) * clampedDist,
center.Y + (auraOrbitHeight > 0 and (auraOrbitHeight * math.abs(math.sin((pos.Y - center.Y) / math.max(auraOrbitHeight, 1)))) or 0),
center.Z + math.sin(newAngle) * clampedDist
)
local dir = (targetPos - pos)
if dir.Magnitude > 0.01 then
part.Velocity = dir.Unit * auraOrbitSpeed
end
end
end
end
end)
-- Click handler
local mouse = speaker:FindFirstChildWhichIsA('PlayerMouse') or Players.LocalPlayer:GetMouse()
if mouse then
auraClickConn = mouse.Button1Down:Connect(function()
if not auraActive or flingActive then return end
local r = getRoot(char)
if not r then return end
if #auraOrbitParts == 0 then return end
local hitPos = r.Position + r.CFrame.LookVector * 20
pcall(function()
hitPos = mouse.Hit.Position
end)
flingActive = true
flingStartTime = tick()
flingEndPos = hitPos
-- Switch to firing animation
if auraIdleTrack then
pcall(function() auraIdleTrack:Stop() end)
end
if auraAnimTrack then
pcall(function()
auraAnimTrack.TimePosition = 0
auraAnimTrack:Play()
end)
end
end)
end
showArcPopup('Aura', true)
notify('Aura', 'Active! Left-click to fling')
end)
addcmd('unaura', {'noaura'}, function(args, speaker)
auraActive = false
if auraOrbitConn then auraOrbitConn:Disconnect() auraOrbitConn = nil end
if auraClickConn then auraClickConn:Disconnect() auraClickConn = nil end
if auraAddConn then auraAddConn:Disconnect() auraAddConn = nil end
if auraRemoveConn then auraRemoveConn:Disconnect() auraRemoveConn = nil end
if auraDiedConn then auraDiedConn:Disconnect() auraDiedConn = nil end
for _, part in pairs(auraOrbitParts) do
if part and part.Parent then
pcall(function() part.CustomPhysicalProperties = nil end)
part.Velocity = Vector3.new(0, 0, 0)
pcall(function() part.CanCollide = true end)
-- Clean up spin + bodyposition objects we created
local spin = part:FindFirstChildWhichIsA('BodyAngularVelocity')
if spin then pcall(function() spin:Destroy() end) end
local bp = part:FindFirstChildWhichIsA('BodyPosition')
if bp then pcall(function() bp:Destroy() end) end
end
end
auraOrbitParts = {}
-- Stop and clean up animations
if auraAnimTrack then
pcall(function() auraAnimTrack:Stop() end)
auraAnimTrack = nil
end
if auraIdleTrack then
pcall(function() auraIdleTrack:Stop() end)
auraIdleTrack = nil
end
pcall(function()
if auraCenter and auraCenter.Parent then auraCenter:Destroy() end
end)
auraCenter = nil
disablePhysicsGodmode(speaker)
showArcPopup('Aura', false)
notify('Aura', 'Disabled')
end)
addcmd('toggleaura', {}, function(args, speaker)
if auraActive then execCmd('unaura') else execCmd('aura') end
end)
do
-- ======================== TUFF ANIM PACK ========================
-- Replaces idle animation with Demonic Aura Float (106673830660419)
-- Replaces run animation with Lord Walk (116003765711391)
-- Automatically switches between idle and run based on movement speed
-- Usage: tuffanim | untuffanim to stop | toggletuffanim to toggle
local tuffanimActive = false
local tuffanimIdleTrack = nil
local tuffanimRunTrack = nil
local tuffanimConn = nil
local tuffanimDiedConn = nil
local function loadTuffAnim(humanoid, catalogId)
local realAnimId = nil
pcall(function()
local objs = game:GetObjects('rbxassetid://' .. catalogId)
for _, obj in pairs(objs) do
if obj:IsA('Animation') then
realAnimId = obj.AnimationId
break
end
for _, child in pairs(obj:GetChildren()) do
if child:IsA('Animation') then
realAnimId = child.AnimationId
break
end
end
if realAnimId then break end
end
end)
if not realAnimId then realAnimId = 'rbxassetid://' .. catalogId end
local success, animObj = pcall(function()
local anim = Instance.new('Animation')
anim.AnimationId = realAnimId
return humanoid:LoadAnimation(anim)
end)
if success and animObj then
return animObj
end
-- Fallback: PlayEmoteAndGetAnimTrackById
pcall(function()
local track = humanoid:PlayEmoteAndGetAnimTrackById(catalogId)
if track then return track end
end)
-- Fallback 2: AllowCustomAnimations
pcall(function()
StarterPlayer.AllowCustomAnimations = true
local track = humanoid:PlayEmoteAndGetAnimTrackById(catalogId)
if track then return track end
end)
return nil
end
addcmd('tuffanim', {'tuff'}, function(args, speaker)
if tuffanimActive then execCmd('untuffanim') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('TuffAnim', 'Character not found') return end
local hum = char:FindFirstChildWhichIsA('Humanoid')
if not hum then notify('TuffAnim', 'Humanoid not found') return end
tuffanimActive = true
-- Load both animations
tuffanimIdleTrack = loadTuffAnim(hum, 106673830660419)
tuffanimRunTrack = loadTuffAnim(hum, 116003765711391)
if tuffanimIdleTrack then
tuffanimIdleTrack.Looped = true
tuffanimIdleTrack.Priority = Enum.AnimationPriority.Action
end
if tuffanimRunTrack then
tuffanimRunTrack.Looped = true
tuffanimRunTrack.Priority = Enum.AnimationPriority.Action
end
if not tuffanimIdleTrack then
notify('TuffAnim', 'Could not load idle anim - AllowCustomAnimations may be needed')
end
if not tuffanimRunTrack then
notify('TuffAnim', 'Could not load run anim - AllowCustomAnimations may be needed')
end
local currentState = 'idle' -- 'idle' or 'run'
-- Heartbeat: detect movement speed, switch animations
tuffanimConn = RunService.Heartbeat:Connect(function(dt)
if not tuffanimActive then return end
pcall(function()
local localHum = char:FindFirstChildWhichIsA('Humanoid')
if not localHum then return end
local root = getRoot(char)
if not root then return end
local speed = root.Velocity.Magnitude
local moving = speed > 1
-- Stop all non-tuffanim tracks
for _, track in pairs(localHum:GetPlayingAnimationTracks()) do
if track ~= tuffanimIdleTrack and track ~= tuffanimRunTrack then
track:Stop()
end
end
if moving and currentState ~= 'run' then
-- Switch to run
currentState = 'run'
if tuffanimIdleTrack and tuffanimIdleTrack.IsPlaying then
tuffanimIdleTrack:Stop()
end
if tuffanimRunTrack and not tuffanimRunTrack.IsPlaying then
tuffanimRunTrack:Play()
end
elseif not moving and currentState ~= 'idle' then
-- Switch to idle
currentState = 'idle'
if tuffanimRunTrack and tuffanimRunTrack.IsPlaying then
tuffanimRunTrack:Stop()
end
if tuffanimIdleTrack and not tuffanimIdleTrack.IsPlaying then
tuffanimIdleTrack:Play()
end
end
-- Keep current anim playing if it stopped
if currentState == 'idle' and tuffanimIdleTrack and not tuffanimIdleTrack.IsPlaying then
tuffanimIdleTrack:Play()
elseif currentState == 'run' and tuffanimRunTrack and not tuffanimRunTrack.IsPlaying then
tuffanimRunTrack:Play()
end
end)
end)
-- Play idle initially
if tuffanimIdleTrack then
tuffanimIdleTrack:Play()
end
-- Clean up on death
tuffanimDiedConn = hum.Died:Connect(function() execCmd('untuffanim') end)
showArcPopup('TuffAnim', true)
notify('TuffAnim', 'Tuff Anim Pack active! Idle = Demonic Float, Run = Lord Walk')
end)
addcmd('untuffanim', {'notuffanim', 'notuff'}, function(args, speaker)
tuffanimActive = false
if tuffanimIdleTrack then
pcall(function()
tuffanimIdleTrack:Stop()
tuffanimIdleTrack:Destroy()
end)
tuffanimIdleTrack = nil
end
if tuffanimRunTrack then
pcall(function()
tuffanimRunTrack:Stop()
tuffanimRunTrack:Destroy()
end)
tuffanimRunTrack = nil
end
if tuffanimConn then tuffanimConn:Disconnect() tuffanimConn = nil end
if tuffanimDiedConn then tuffanimDiedConn:Disconnect() tuffanimDiedConn = nil end
showArcPopup('TuffAnim', false)
notify('TuffAnim', 'Disabled')
end)
addcmd('toggletuffanim', {}, function(args, speaker)
if tuffanimActive then execCmd('untuffanim') else execCmd('tuffanim') end
end)
-- ======================== LOL SPAM ========================
-- Plays a random emote from a curated list whenever you move, jump, or do anything
-- Cooldown between emotes so it doesn't instantly spam (0.5s)
-- Usage: lolspam | unlolspam to stop | togglelolspam to toggle
local lolspamActive = false
local lolspamConn = nil
local lolspamDiedConn = nil
local lolspamCurrentTrack = nil
local lolspamLastPlay = 0
local lolspamCooldown = 0.5
local lolspamLastSpeed = 0
local lolspamEmotes = {
115542676494125, -- Chill Sit Emote
121953631628968, -- 67 Emote Limited
130373195204051, -- Jumping Spider Emote
136718529855726, -- Spongebob Emote
116090470406589, -- Sit Floating Aura Emote
103850856250914, -- Relaxed Sitting Floating Super Chill
131971360172149, -- Sit Relax Chilling Pose Emote
124111621764325, -- Infinite Aura Farming V2
120449791578755, -- UFO EMOTE
119008007290744, -- Obby Head Original Emote
79216795769647, -- Tall Scary Creature
95714033584938, -- Body Phone
87732725556692, -- MASSIVE POOP EMOTE
}
local function loadLolEmote(humanoid, catalogId)
local realAnimId = nil
pcall(function()
local objs = game:GetObjects('rbxassetid://' .. catalogId)
for _, obj in pairs(objs) do
if obj:IsA('Animation') then
realAnimId = obj.AnimationId
break
end
for _, child in pairs(obj:GetChildren()) do
if child:IsA('Animation') then
realAnimId = child.AnimationId
break
end
end
if realAnimId then break end
end
end)
if not realAnimId then realAnimId = 'rbxassetid://' .. catalogId end
local success, animObj = pcall(function()
local anim = Instance.new('Animation')
anim.AnimationId = realAnimId
return humanoid:LoadAnimation(anim)
end)
if success and animObj then return animObj end
pcall(function()
local track = humanoid:PlayEmoteAndGetAnimTrackById(catalogId)
if track then return track end
end)
pcall(function()
StarterPlayer.AllowCustomAnimations = true
local track = humanoid:PlayEmoteAndGetAnimTrackById(catalogId)
if track then return track end
end)
return nil
end
addcmd('lolspam', {}, function(args, speaker)
if lolspamActive then execCmd('unlolspam') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('LolSpam', 'Character not found') return end
local hum = char:FindFirstChildWhichIsA('Humanoid')
if not hum then notify('LolSpam', 'Humanoid not found') return end
lolspamActive = true
lolspamLastPlay = 0
lolspamLastSpeed = 0
lolspamConn = RunService.Heartbeat:Connect(function(dt)
if not lolspamActive then return end
pcall(function()
local localHum = char:FindFirstChildWhichIsA('Humanoid')
if not localHum then return end
local root = getRoot(char)
if not root then return end
local now = tick()
if now - lolspamLastPlay < lolspamCooldown then return end
local speed = root.Velocity.Magnitude
local jumped = (localHum:GetState() == Enum.HumanoidStateType.Jumping)
or (localHum:GetState() == Enum.HumanoidStateType.Freefall)
local speedChange = math.abs(speed - lolspamLastSpeed) > 5
local isMoving = speed > 2
-- Trigger on: started moving, speed changed a lot, or jumped
if isMoving or speedChange or jumped then
-- Stop current emote
if lolspamCurrentTrack and lolspamCurrentTrack.IsPlaying then
lolspamCurrentTrack:Stop()
end
-- Pick random emote
local catalogId = lolspamEmotes[math.random(1, #lolspamEmotes)]
local track = loadLolEmote(localHum, catalogId)
if track then
track.Looped = false
track.Priority = Enum.AnimationPriority.Action
track:Play()
lolspamCurrentTrack = track
lolspamLastPlay = now
end
lolspamLastSpeed = speed
end
end)
end)
lolspamDiedConn = hum.Died:Connect(function() execCmd('unlolspam') end)
showArcPopup('LolSpam', true)
notify('LolSpam', 'Random emote spam active! Move around to trigger')
end)
addcmd('unlolspam', {}, function(args, speaker)
lolspamActive = false
if lolspamCurrentTrack then
pcall(function()
lolspamCurrentTrack:Stop()
lolspamCurrentTrack:Destroy()
end)
lolspamCurrentTrack = nil
end
if lolspamConn then lolspamConn:Disconnect() lolspamConn = nil end
if lolspamDiedConn then lolspamDiedConn:Disconnect() lolspamDiedConn = nil end
showArcPopup('LolSpam', false)
notify('LolSpam', 'Disabled')
end)
addcmd('togglelolspam', {}, function(args, speaker)
if lolspamActive then execCmd('unlolspam') else execCmd('lolspam') end
end)
end -- tuffanim + lolspam section
-- ======================== ORBITAL LAZER ========================
-- All unanchored parts follow your mouse position, spaz out like mad,
-- and your mouse can't interact with them (CanQuery = false).
-- Usage: orbitallazer | unorbitallazer to stop
orbitalLazerActive = false
orbitalLazerConn = nil
orbitalLazerDiedConn = nil
orbitalLazerParts = {}
orbitalLazerBucket = nil
addcmd('orbitallazer', {'orblazer', 'mouselazer'}, function(args, speaker)
if orbitalLazerActive then execCmd('unorbitallazer') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Orbital Lazer', 'Character not found') return end
orbitalLazerActive = true
orbitalLazerParts = {}
-- Collect ALL unanchored parts (not from ANY player's character / body parts)
local function isPlayerBodyPart(p)
for _, plr in pairs(Players:GetPlayers()) do
if plr.Character and plr.Character:IsAncestorOf(p) then return true end
end
return false
end
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not isPlayerBodyPart(part) then
-- Strip constraints, zero friction, no collision, no mouse interaction
orbitua_prepPart(part)
part.CanQuery = false
-- Add max spin to every part
local spin = Instance.new('BodyAngularVelocity')
spin.Name = randomString()
spin.AngularVelocity = Vector3.new(math.random(-9999, 9999), math.random(-9999, 9999), math.random(-9999, 9999))
spin.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
spin.P = math.huge
spin.Parent = part
table.insert(orbitalLazerParts, part)
end
end
end
-- Filter these parts from mouse target so they don't get selected/bugged
-- Create a filter bucket that holds all the parts so mouse ignores them
local filterBucket = Instance.new('Part')
filterBucket.Name = randomString()
filterBucket.Size = Vector3.new(0.1, 0.1, 0.1)
filterBucket.Transparency = 1
filterBucket.Anchored = true
filterBucket.CanCollide = false
filterBucket.CanQuery = false
filterBucket.Parent = workspace
orbitalLazerBucket = filterBucket
-- Set TargetFilter to the bucket so mouse ignores everything in it
IYMouse.TargetFilter = filterBucket
-- Move all parts into the filter bucket so TargetFilter applies to them
for _, part in pairs(orbitalLazerParts) do
if part and part.Parent then
part.Parent = filterBucket
end
end
-- Watch for new parts
local addConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not orbitalLazerActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if isPlayerBodyPart(p) then return end
for _, existing in pairs(orbitalLazerParts) do if existing == p then return end end
orbitua_prepPart(p)
p.CanQuery = false
local spin = Instance.new('BodyAngularVelocity')
spin.Name = randomString()
spin.AngularVelocity = Vector3.new(math.random(-9999, 9999), math.random(-9999, 9999), math.random(-9999, 9999))
spin.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
spin.P = math.huge
spin.Parent = p
p.Parent = filterBucket
table.insert(orbitalLazerParts, p)
end)
end)
local removeConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(orbitalLazerParts) do
if existing == p then table.remove(orbitalLazerParts, i) break end
end
end)
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
if humanoid then
orbitalLazerDiedConn = humanoid.Died:Connect(function() execCmd('unorbitallazer') end)
end
-- Main loop: all parts orbit mouse position with MAD jitter + spin
local angleOffset = math.random() * math.pi * 2
local orbitRadius = 12
local orbitSpeed = 1000
orbitalLazerConn = RunService.Heartbeat:Connect(function(dt)
if not orbitalLazerActive then return end
sethiddenproperty(speaker, "SimulationRadius", math.huge)
-- Get mouse 3D position
local mousePos = IYMouse.Hit.Position
if not mousePos then return end
angleOffset = angleOffset + (orbitSpeed * 0.012 * dt)
for i, part in pairs(orbitalLazerParts) do
if part and part.Parent then
-- Each part gets unique angle offset for chaos
local partAngle = angleOffset + (i * 0.41)
-- Varying radius per part for spiral/tornado effect
local partRadius = orbitRadius + math.sin(os.clock() * 4 + i * 0.5) * 6
-- MAD jitter every frame
local jitterX = math.random(-600, 600)
local jitterY = math.random(-400, 400)
local jitterZ = math.random(-600, 600)
-- Calculate orbit target position around mouse
local targetPos = Vector3.new(
mousePos.X + math.cos(partAngle) * partRadius,
mousePos.Y + 3 + math.sin(os.clock() * 6 + i * 0.8) * 5,
mousePos.Z + math.sin(partAngle) * partRadius
)
-- Combine orbit velocity + MAD jitter
local toTarget = targetPos - part.Position
if toTarget.Magnitude > 0.01 then
part.Velocity = toTarget.Unit * orbitSpeed + Vector3.new(jitterX, jitterY, jitterZ)
else
part.Velocity = Vector3.new(jitterX, jitterY, jitterZ)
end
-- Randomize spin direction every so often for extra chaos
if math.random() < 0.03 then
local existingSpin = part:FindFirstChildOfClass('BodyAngularVelocity')
if existingSpin then
existingSpin.AngularVelocity = Vector3.new(
math.random(-9999, 9999),
math.random(-9999, 9999),
math.random(-9999, 9999)
)
end
end
end
end
end)
showArcPopup('Orbital Lazer', true)
notify('Orbital Lazer', 'ALL parts following your mouse with MAD jitter & spin!')
end)
addcmd('unorbitallazer', {'noorbitallazer', 'unorblazer'}, function(args, speaker)
orbitalLazerActive = false
if orbitalLazerConn then orbitalLazerConn:Disconnect() orbitalLazerConn = nil end
if orbitalLazerDiedConn then orbitalLazerDiedConn:Disconnect() orbitalLazerDiedConn = nil end
-- Restore all parts back to workspace
for _, part in pairs(orbitalLazerParts) do
if part and part.Parent then
for _, x in pairs(part:GetChildren()) do
if x:IsA('BodyAngularVelocity') then x:Destroy() end
end
part.Velocity = Vector3.new(0, 0, 0)
part.CanQuery = true
pcall(function() part.CustomPhysicalProperties = nil end)
part.CanCollide = true
-- Move back to workspace
pcall(function() part.Parent = workspace end)
end
end
orbitalLazerParts = {}
-- Clean up filter bucket
IYMouse.TargetFilter = nil
if orbitalLazerBucket and orbitalLazerBucket.Parent then
orbitalLazerBucket:Destroy()
end
orbitalLazerBucket = nil
showArcPopup('Orbital Lazer', false)
end)
addcmd('toggleorbitallazer', {}, function(args, speaker)
execCmd(orbitalLazerActive and 'unorbitallazer' or 'orbitallazer')
end)
-- ======================== ARROW ========================
-- Grabs ALL unanchored parts from workspace and arranges them into a GIANT
-- arrow shape above the target player's head. Parts jitter and spin like mad.
-- Usage: arrow [player] | unarrow to stop
arrowActive = false
arrowConn = nil
arrowDiedConn = nil
arrowParts = {}
addcmd('arrow', {}, function(args, speaker)
if arrowActive then execCmd('unarrow') return end
if not args[1] then notify('Arrow', 'Usage: arrow [player]') return end
-- Handle "me" like all other IY commands
local targetName = args[1]
if targetName == "me" then targetName = speaker.Name end
local target = Players:FindFirstChild(targetName)
if not target then
-- Try partial name / display name match
local found = getPlayersByName(targetName)
if found and #found > 0 then target = found[1] end
end
if not target then notify('Arrow', 'Player not found!') return end
if not target.Character or not target.Character:FindFirstChild('HumanoidRootPart') then
notify('Arrow', 'Target has no character!') return end
arrowActive = true
arrowParts = {}
arrowBPs = {} -- BodyPosition instances per part
-- Filter out body parts from any player's character
local function isPlayerBodyPart(p)
for _, plr in pairs(Players:GetPlayers()) do
if plr.Character and plr.Character:IsAncestorOf(p) then return true end
end
return false
end
-- Prep a part for arrow: clear old physics objects, give HIGH friction so parts sit still
local function prepArrowPart(part)
for _, x in pairs(part:GetChildren()) do
if x:IsA('BodyAngularVelocity') or x:IsA('BodyForce') or x:IsA('BodyGyro') or x:IsA('BodyPosition') or x:IsA('BodyThrust') or x:IsA('BodyVelocity') or x:IsA('RocketPropulsion') or x:IsA('AlignPosition') or x:IsA('AlignOrientation') or x:IsA('Torque') then
x:Destroy()
end
end
-- HIGH friction + high density so parts are stable and don't drift
part.CustomPhysicalProperties = PhysicalProperties.new(0.9, 8, 0, 100, 100)
part.CanCollide = false
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanQuery = false
end
-- Collect ALL unanchored parts (not body parts)
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not isPlayerBodyPart(part) then
prepArrowPart(part)
-- Attach a BodyPosition for smooth, jitter-free tracking
local bp = Instance.new("BodyPosition")
bp.MaxForce = Vector3.new(50000, 50000, 50000)
bp.P = 30000 -- high stiffness = snaps fast to target
bp.D = 5000 -- high damping = no oscillation / jitter
bp.Parent = part
table.insert(arrowParts, part)
table.insert(arrowBPs, bp)
end
end
end
if #arrowParts == 0 then
arrowActive = false
notify('Arrow', 'No unanchored parts found!')
return
end
-- Watch for new parts
local addConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not arrowActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if isPlayerBodyPart(p) then return end
for _, existing in pairs(arrowParts) do if existing == p then return end end
prepArrowPart(p)
local bp = Instance.new("BodyPosition")
bp.MaxForce = Vector3.new(50000, 50000, 50000)
bp.P = 30000
bp.D = 5000
bp.Parent = p
table.insert(arrowParts, p)
table.insert(arrowBPs, bp)
end)
end)
local removeConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(arrowParts) do
if existing == p then
table.remove(arrowParts, i)
if arrowBPs[i] and arrowBPs[i].Parent then arrowBPs[i]:Destroy() end
table.remove(arrowBPs, i)
break
end
end
end)
local humanoid = speaker.Character and speaker.Character:FindFirstChildWhichIsA('Humanoid')
if humanoid then
arrowDiedConn = humanoid.Died:Connect(function() execCmd('unarrow') end)
end
-- Build arrow shape: a big flat arrow ring pointing at the target, 100 stud radius, 15 studs above
local function getArrowPositions(center, partCount)
local positions = {}
local radius = 100
-- Distribute parts along the outline of a flat arrow shape (top-down, XZ plane)
-- Arrow points toward the target (from center outward radially)
-- We define the arrow in a local 2D space then rotate it to face downward on the player
-- Arrow outline as 2D points (x forward, y right)
local arrow2D = {
{0, 0}, -- tip (points toward target)
{-15, -8}, -- left wing tip
{-8, -3}, -- left wing inner
{-20, 0}, -- tail center
{-8, 3}, -- right wing inner
{-15, 8}, -- right wing tip
}
-- Total perimeter segments
local segments = {}
local totalLen = 0
for i = 1, #arrow2D do
local a = arrow2D[i]
local b = arrow2D[(i % #arrow2D) + 1]
local segLen = math.sqrt((b[1]-a[1])^2 + (b[2]-a[2])^2)
table.insert(segments, {a, b, segLen})
totalLen = totalLen + segLen
end
-- Place parts evenly along the perimeter
for i = 1, partCount do
local t = ((i - 1) / partCount) * totalLen
local accumulated = 0
for _, seg in ipairs(segments) do
if accumulated + seg[3] >= t then
local localT = (t - accumulated) / seg[3]
local lx = seg[1][1] + (seg[2][1] - seg[1][1]) * localT
local ly = seg[1][2] + (seg[2][2] - seg[1][2]) * localT
-- Scale to 100 stud radius: normalize then multiply
local mag = math.sqrt(lx^2 + ly^2)
if mag > 0 then
local scale = radius / 20 -- 20 is the max extent of the arrow shape
lx = lx * scale
ly = ly * scale
end
-- Place on XZ plane, 15 studs above target
table.insert(positions, center + Vector3.new(lx, 15, ly))
break
end
accumulated = accumulated + seg[3]
end
if not positions[i] then
table.insert(positions, center + Vector3.new(0, 15, 0))
end
end
return positions
end
-- Main loop: position parts via BodyPosition (smooth, zero jitter)
arrowConn = RunService.Heartbeat:Connect(function(dt)
if not arrowActive then return end
local root = target.Character and target.Character:FindFirstChild('HumanoidRootPart')
if not root then execCmd('unarrow') return end
local targetPos = root.Position
sethiddenproperty(speaker, "SimulationRadius", math.huge)
local positions = getArrowPositions(targetPos, #arrowParts)
for i, part in pairs(arrowParts) do
if part and part.Parent and positions[i] and arrowBPs[i] and arrowBPs[i].Parent then
arrowBPs[i].Position = positions[i]
end
end
end)
showArcPopup('Arrow', true)
notify('Arrow', #arrowParts .. ' parts forming arrow above ' .. target.Name .. '!')
end)
addcmd('unarrow', {'noarrow'}, function(args, speaker)
arrowActive = false
if arrowConn then arrowConn:Disconnect() arrowConn = nil end
if arrowDiedConn then arrowDiedConn:Disconnect() arrowDiedConn = nil end
-- Destroy all BodyPosition instances and restore parts
for _, bp in pairs(arrowBPs) do
if bp and bp.Parent then bp:Destroy() end
end
for _, part in pairs(arrowParts) do
if part and part.Parent then
for _, x in pairs(part:GetChildren()) do
if x:IsA('BodyAngularVelocity') or x:IsA('BodyPosition') then x:Destroy() end
end
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanQuery = true
pcall(function() part.CustomPhysicalProperties = nil end)
part.CanCollide = true
end
end
arrowParts = {}
arrowBPs = {}
showArcPopup('Arrow', false)
end)
addcmd('togglearrow', {}, function(args, speaker)
execCmd(arrowActive and 'unarrow' or 'arrow me')
end)
-- ======================== ANTI UA ========================
-- Strips gravity from all unanchored parts. Parts slowly float upward and drift around.
-- Uses same collection pattern as orbitua + continuous Heartbeat loop for reliability.
antiuaActive = false
antiuaConn = nil
antiuaParts = {}
antiuaDiedConn = nil
addcmd('antiua', {}, function(args, speaker)
if antiuaActive then execCmd('unantiua') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('AntiUA', 'Character not found') return end
antiuaActive = true
antiuaParts = {}
-- Collect all unanchored parts (not from our character) — same pattern as orbitua
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not char:IsAncestorOf(part) then
orbitua_prepPart(part)
part.CanQuery = false
-- Random initial upward kick
part.Velocity = Vector3.new(
math.random(-30, 30),
math.random(20, 80),
math.random(-30, 30)
)
part.AssemblyAngularVelocity = Vector3.new(
math.random(-2, 2),
math.random(-2, 2),
math.random(-2, 2)
)
table.insert(antiuaParts, part)
end
end
end
-- Watch for new parts — same pattern as orbitua
local addConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not antiuaActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if speaker.Character and speaker.Character:IsAncestorOf(p) then return end
for _, existing in pairs(antiuaParts) do if existing == p then return end end
orbitua_prepPart(p)
p.CanQuery = false
p.Velocity = Vector3.new(math.random(-30,30), math.random(20,80), math.random(-30,30))
p.AssemblyAngularVelocity = Vector3.new(math.random(-2,2), math.random(-2,2), math.random(-2,2))
table.insert(antiuaParts, p)
end)
end)
local removeConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(antiuaParts) do
if existing == p then table.remove(antiuaParts, i) break end
end
end)
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
if humanoid then
antiuaDiedConn = humanoid.Died:Connect(function() execCmd('unantiua') end)
end
-- Main loop: continuously apply upward velocity every frame (like orbitua's approach)
antiuaConn = RunService.Heartbeat:Connect(function(dt)
if not antiuaActive then return end
sethiddenproperty(speaker, "SimulationRadius", math.huge)
for _, part in pairs(antiuaParts) do
if part and part.Parent then
-- Continuously push upward: cancel gravity + slight upward boost
-- gravity acceleration = workspace.Gravity studs/s^2
-- We need to counteract gravity's effect on velocity each frame
local gravityVel = workspace.Gravity * dt
-- Add a gentle upward drift on top of gravity cancellation
part.Velocity = Vector3.new(
part.Velocity.X * 0.99, -- slight horizontal drag for stability
15 + math.sin(tick() * 2 + part.Position.X) * 5, -- bobbing float upward
part.Velocity.Z * 0.99
)
end
end
end)
showArcPopup('AntiUA', true)
notify('AntiUA', #antiuaParts .. ' parts now have anti-gravity!')
end)
addcmd('unantiua', {}, function(args, speaker)
antiuaActive = false
if antiuaConn then antiuaConn:Disconnect() antiuaConn = nil end
if antiuaDiedConn then antiuaDiedConn:Disconnect() antiuaDiedConn = nil end
for _, part in pairs(antiuaParts) do
if part and part.Parent then
for _, x in pairs(part:GetChildren()) do
if x:IsA('BodyAngularVelocity') or x:IsA('BodyForce') or x:IsA('BodyGyro') or x:IsA('BodyPosition') or x:IsA('BodyThrust') or x:IsA('BodyVelocity') then
x:Destroy()
end
end
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanQuery = true
pcall(function() part.CustomPhysicalProperties = nil end)
part.CanCollide = true
end
end
antiuaParts = {}
showArcPopup('AntiUA', false)
end)
addcmd('toggleantiua', {}, function(args, speaker)
execCmd(antiuaActive and 'unantiua' or 'antiua')
end)
-- ======================== 0 GRAVITY UA ========================
-- Zero gravity on all unanchored parts. Parts float in place and drift very slowly,
-- like they're in space. No upward force, just pure weightlessness.
-- Uses same collection pattern as orbitua + continuous Heartbeat loop for reliability.
zeroGuaActive = false
zeroGuaConn = nil
zeroGuaParts = {}
zeroGuaDiedConn = nil
addcmd('0gravityua', {'zerogua', 'zerogravityua'}, function(args, speaker)
if zeroGuaActive then execCmd('un0gravityua') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('0GravityUA', 'Character not found') return end
zeroGuaActive = true
zeroGuaParts = {}
-- Collect all unanchored parts (not from our character) — same pattern as orbitua
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not char:IsAncestorOf(part) then
orbitua_prepPart(part)
part.CanQuery = false
-- Tiny random drift so parts slowly float like in space
part.Velocity = Vector3.new(
math.random(-8, 8),
math.random(-5, 8),
math.random(-8, 8)
)
part.AssemblyAngularVelocity = Vector3.new(
math.random(-1, 1),
math.random(-1, 1),
math.random(-1, 1)
)
table.insert(zeroGuaParts, part)
end
end
end
-- Watch for new parts — same pattern as orbitua
local addConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not zeroGuaActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if speaker.Character and speaker.Character:IsAncestorOf(p) then return end
for _, existing in pairs(zeroGuaParts) do if existing == p then return end end
orbitua_prepPart(p)
p.CanQuery = false
p.Velocity = Vector3.new(math.random(-8,8), math.random(-5,8), math.random(-8,8))
p.AssemblyAngularVelocity = Vector3.new(math.random(-1,1), math.random(-1,1), math.random(-1,1))
table.insert(zeroGuaParts, p)
end)
end)
local removeConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(zeroGuaParts) do
if existing == p then table.remove(zeroGuaParts, i) break end
end
end)
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
if humanoid then
zeroGuaDiedConn = humanoid.Died:Connect(function() execCmd('un0gravityua') end)
end
-- Main loop: cancel gravity every frame + subtle drift nudge
zeroGuaConn = RunService.Heartbeat:Connect(function(dt)
if not zeroGuaActive then return end
sethiddenproperty(speaker, "SimulationRadius", math.huge)
for _, part in pairs(zeroGuaParts) do
if part and part.Parent then
-- Cancel gravity's effect on velocity each frame
local gravityVel = workspace.Gravity * dt
-- Keep current horizontal drift, cancel vertical gravity pull
part.Velocity = Vector3.new(
part.Velocity.X * 0.998, -- very slow horizontal drag
part.Velocity.Y + gravityVel, -- cancel gravity pull
part.Velocity.Z * 0.998
)
end
end
-- Every ~2 seconds, give parts a tiny random nudge for space drift
if math.random() < dt * 0.5 then
for _, part in pairs(zeroGuaParts) do
if part and part.Parent then
part.Velocity = Vector3.new(
part.Velocity.X + math.random(-3, 3),
part.Velocity.Y + math.random(-2, 3),
part.Velocity.Z + math.random(-3, 3)
)
end
end
end
end)
showArcPopup('0GravityUA', true)
notify('0GravityUA', #zeroGuaParts .. ' parts now in zero gravity!')
end)
addcmd('un0gravityua', {'unzerogua', 'unzerogravityua'}, function(args, speaker)
zeroGuaActive = false
if zeroGuaConn then zeroGuaConn:Disconnect() zeroGuaConn = nil end
if zeroGuaDiedConn then zeroGuaDiedConn:Disconnect() zeroGuaDiedConn = nil end
for _, part in pairs(zeroGuaParts) do
if part and part.Parent then
for _, x in pairs(part:GetChildren()) do
if x:IsA('BodyAngularVelocity') or x:IsA('BodyForce') or x:IsA('BodyGyro') or x:IsA('BodyPosition') or x:IsA('BodyThrust') or x:IsA('BodyVelocity') then
x:Destroy()
end
end
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanQuery = true
pcall(function() part.CustomPhysicalProperties = nil end)
part.CanCollide = true
end
end
zeroGuaParts = {}
showArcPopup('0GravityUA', false)
end)
addcmd('toggle0gravityua', {'togglezerogua', 'togglezerogravityua'}, function(args, speaker)
execCmd(zeroGuaActive and 'un0gravityua' or '0gravityua')
end)
-- ======================== MOUSE UA ========================
-- Forms a line of ALL unanchored parts from your character to your mouse cursor.
-- Parts are positioned along the line using BodyPosition (smooth, no jitter).
-- Line updates every frame as you move your mouse.
mouseuaActive = false
mouseuaConn = nil
mouseuaParts = {}
mouseuaBPs = {}
mouseuaDiedConn = nil
addcmd('mouseua', {}, function(args, speaker)
if mouseuaActive then execCmd('unmouseua') return end
local char = speaker.Character
local root = getRoot(char)
if not char or not root then notify('MouseUA', 'Character not found') return end
mouseuaActive = true
mouseuaParts = {}
mouseuaBPs = {}
-- Collect all unanchored parts (not from our character) — same pattern as orbitua
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA('BasePart') and not part.Anchored then
if not char:IsAncestorOf(part) then
orbitua_prepPart(part)
-- High friction so parts hold position in the line
part.CustomPhysicalProperties = PhysicalProperties.new(0.9, 8, 0, 100, 100)
part.CanQuery = false
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
-- BodyPosition for smooth positioning
local bp = Instance.new("BodyPosition")
bp.Name = "MouseUA_BP"
bp.MaxForce = Vector3.new(50000, 50000, 50000)
bp.P = 30000
bp.D = 5000
bp.Parent = part
table.insert(mouseuaParts, part)
table.insert(mouseuaBPs, bp)
end
end
end
if #mouseuaParts == 0 then
mouseuaActive = false
notify('MouseUA', 'No unanchored parts found!')
return
end
-- Watch for new parts — same pattern as orbitua
local addConn = workspace.DescendantAdded:Connect(function(p)
task.defer(function()
if not mouseuaActive then return end
if not p:IsA('BasePart') or p.Anchored then return end
if speaker.Character and speaker.Character:IsAncestorOf(p) then return end
for _, existing in pairs(mouseuaParts) do if existing == p then return end end
orbitua_prepPart(p)
p.CustomPhysicalProperties = PhysicalProperties.new(0.9, 8, 0, 100, 100)
p.CanQuery = false
p.Velocity = Vector3.new(0, 0, 0)
p.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
local bp = Instance.new("BodyPosition")
bp.Name = "MouseUA_BP"
bp.MaxForce = Vector3.new(50000, 50000, 50000)
bp.P = 30000
bp.D = 5000
bp.Parent = p
table.insert(mouseuaParts, p)
table.insert(mouseuaBPs, bp)
end)
end)
local removeConn = workspace.DescendantRemoving:Connect(function(p)
for i, existing in pairs(mouseuaParts) do
if existing == p then
table.remove(mouseuaParts, i)
if mouseuaBPs[i] and mouseuaBPs[i].Parent then mouseuaBPs[i]:Destroy() end
table.remove(mouseuaBPs, i)
break
end
end
end)
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
if humanoid then
mouseuaDiedConn = humanoid.Died:Connect(function() execCmd('unmouseua') end)
end
-- Main loop: position parts in a line from player to mouse
mouseuaConn = RunService.Heartbeat:Connect(function(dt)
if not mouseuaActive then return end
local myRoot = getRoot(speaker.Character)
if not myRoot then execCmd('unmouseua') return end
-- Get mouse position using camera raycasting
local mousePos = IYMouse.Hit.Position
local startPos = myRoot.Position
local endPos = mousePos
local dir = endPos - startPos
local totalDist = dir.Magnitude
if totalDist < 1 then return end
local dirUnit = dir.Unit
sethiddenproperty(speaker, "SimulationRadius", math.huge)
-- Distribute parts evenly along the line
local count = #mouseuaParts
for i, part in pairs(mouseuaParts) do
if part and part.Parent and mouseuaBPs[i] and mouseuaBPs[i].Parent then
local t = (i - 1) / math.max(1, count - 1)
-- Offset each part slightly to the side based on index for visual thickness
local sideOffset = Vector3.new(0, 0, 0)
if count > 1 then
-- Alternate sides: even indices go left, odd go right
local layer = math.floor((i - 1) / 2)
local side = ((i - 1) % 2 == 0) and -1 or 1
local rightVec = dirUnit:Cross(Vector3.new(0, 1, 0)).Unit
if rightVec and rightVec.Magnitude > 0.01 then
sideOffset = rightVec * side * (layer + 1) * 0.5
end
end
local pos = startPos + dirUnit * (t * totalDist) + sideOffset
mouseuaBPs[i].Position = pos
end
end
end)
showArcPopup('MouseUA', true)
notify('MouseUA', #mouseuaParts .. ' parts forming line to your mouse!')
end)
addcmd('unmouseua', {}, function(args, speaker)
mouseuaActive = false
if mouseuaConn then mouseuaConn:Disconnect() mouseuaConn = nil end
if mouseuaDiedConn then mouseuaDiedConn:Disconnect() mouseuaDiedConn = nil end
for _, bp in pairs(mouseuaBPs) do
if bp and bp.Parent then bp:Destroy() end
end
for _, part in pairs(mouseuaParts) do
if part and part.Parent then
for _, x in pairs(part:GetChildren()) do
if x.Name == "MouseUA_BP" or x:IsA('BodyPosition') then x:Destroy() end
end
part.Velocity = Vector3.new(0, 0, 0)
part.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
part.CanQuery = true
pcall(function() part.CustomPhysicalProperties = nil end)
part.CanCollide = true
end
end
mouseuaParts = {}
mouseuaBPs = {}
showArcPopup('MouseUA', false)
end)
addcmd('togglemouseua', {}, function(args, speaker)
execCmd(mouseuaActive and 'unmouseua' or 'mouseua')
end)
-- ======================== DESYNC ========================
-- Purple transparent ghost mannequin. 100% Instance.new (ZERO Clone()).
-- Anchored parts + manual WASD movement via PivotTo.
-- Velocity-based jumping with gravity + ground raycast.
-- Transparent purple body + SelectionBox glow outlines + PointLight.
-- WASD + Space to move/jump. Q toggles. Undesync teleports back.
-- No fall damage. Supports R15 and R6.
desyncActive = false
desyncConn = nil
desyncGhostModel = nil
desyncRealChar = nil
desyncFrozenCFrame = nil
desyncGui = nil
desyncToggleGui = nil
desyncDiedConn = nil
desyncWalkSpeed = 16
desyncJumpPower = 50
desyncGhostPos = nil
desyncGhostYaw = 0
desyncGhostYVel = 0
desyncLastSpace = false
desyncOnGround = true
desyncFeetOffset = 3.2
-- Global hook: speed command updates ghost walk speed
function desync_applySpeed(newSpeed)
if not desyncActive then return end
desyncWalkSpeed = newSpeed or 16
end
-- ========== TOGGLE GUI (top-right button) ==========
local function desync_createToggleGui()
if desyncToggleGui then return end
local guiParent = PARENT or game:GetService('CoreGui')
local sg = Instance.new('ScreenGui')
sg.Name = randomString()
sg.ResetOnSpawn = false
sg.DisplayOrder = 100
sg.Parent = guiParent
local btn = Instance.new('TextButton')
btn.Name = 'DesyncToggle'
btn.Size = UDim2.new(0, 130, 0, 36)
btn.Position = UDim2.new(1, -142, 0, 10)
btn.BackgroundColor3 = Color3.fromRGB(95, 35, 170)
btn.BackgroundTransparency = 0.1
btn.BorderSizePixel = 0
btn.AutoButtonColor = true
btn.Text = 'DESYNC ON'
btn.TextColor3 = Color3.fromRGB(220, 170, 255)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 13
btn.Parent = sg
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = btn
local stroke = Instance.new('UIStroke')
stroke.Name = 'Border'
stroke.Color = Color3.fromRGB(170, 100, 255)
stroke.Thickness = 2
stroke.Transparency = 0.15
stroke.Parent = btn
local hint = Instance.new('TextLabel')
hint.Name = 'KeyHint'
hint.Size = UDim2.new(0, 16, 0, 16)
hint.Position = UDim2.new(1, -22, 0, 2)
hint.BackgroundTransparency = 1
hint.Text = 'Q'
hint.TextColor3 = Color3.fromRGB(200, 140, 255)
hint.Font = Enum.Font.GothamBold
hint.TextSize = 10
hint.Parent = btn
btn.MouseButton1Click:Connect(function()
if desyncActive then
execCmd('undesync')
else
execCmd('desync')
end
end)
desyncToggleGui = sg
end
local function desync_destroyToggleGui()
if desyncToggleGui and desyncToggleGui.Parent then
desyncToggleGui:Destroy()
end
desyncToggleGui = nil
end
-- ========== Q KEY TOGGLE ==========
-- Always listening - toggles desync on/off with Q key
if desyncToggleQConn then
pcall(function() desyncToggleQConn:Disconnect() end)
end
desyncToggleQConn = UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
if UserInputService:GetFocusedTextBox() then return end
if input.KeyCode == Enum.KeyCode.Q then
if desyncActive then
execCmd('undesync')
else
execCmd('desync')
end
end
end)
-- ========== GHOST CREATION ==========
-- Builds mannequin from Instance.new only. No Clone(). Cannot fail.
-- All parts Anchored + Massless + CanCollide off + 0.5 Transparency.
-- Purple body (Bright violet), SmoothPlastic, SelectionBox glow.
-- Motor6D joints for R15 or R6. Dummy Humanoid for camera tracking.
local function createDesyncGhost(spawnCFrame)
local model = Instance.new('Model')
model.Name = 'DesyncGhost_' .. randomString()
local function makePart(name, size, offset)
local p = Instance.new('Part')
p.Name = name
p.Size = size
p.Anchored = true
p.Massless = true
p.CanCollide = false
p.BrickColor = BrickColor.new('Bright violet')
p.Material = Enum.Material.SmoothPlastic
p.Transparency = 0.5
p.TopSurface = Enum.SurfaceType.Smooth
p.BottomSurface = Enum.SurfaceType.Smooth
p.CFrame = spawnCFrame * CFrame.new(offset)
p.Parent = model
-- SelectionBox glow outline on every visible part
local sb = Instance.new('SelectionBox')
sb.Adornee = p
sb.Color3 = Color3.fromRGB(180, 100, 255)
sb.Transparency = 0.3
sb.LineThickness = 0.03
sb.Parent = p
return p
end
local function makeMotor(name, p0, p1, c0, c1)
local m = Instance.new('Motor6D')
m.Name = name
m.Part0 = p0
m.Part1 = p1
m.C0 = c0
m.C1 = c1
m.Parent = p0
return m
end
-- HumanoidRootPart (invisible, for PivotTo + camera)
local rootPart = makePart('HumanoidRootPart', Vector3.new(2, 2, 1), Vector3.new(0, 0, 0))
rootPart.Transparency = 1
-- Remove SelectionBox from invisible root
local rootSB = rootPart:FindFirstChildOfClass('SelectionBox')
if rootSB then rootSB:Destroy() end
-- Detect R15 vs R6
local realChar = game:GetService('Players').LocalPlayer.Character
local isR6 = false
if realChar then
local t = realChar:FindFirstChild('Torso')
if t and t:IsA('BasePart') then isR6 = true end
end
if not isR6 then
-- ===================== R15 =====================
local lowerTorso = makePart('LowerTorso', Vector3.new(2, 0.6, 1), Vector3.new(0, 0, 0))
local upperTorso = makePart('UpperTorso', Vector3.new(2, 1.2, 1), Vector3.new(0, 0.9, 0))
local head = makePart('Head', Vector3.new(1.2, 1.2, 1.2), Vector3.new(0, 2.1, 0))
local leftUpperArm = makePart('LeftUpperArm', Vector3.new(0.6, 1.2, 0.6), Vector3.new(-1.3, 1.4, 0))
local leftLowerArm = makePart('LeftLowerArm', Vector3.new(0.5, 1.0, 0.5), Vector3.new(-1.3, 0.1, 0))
local leftHand = makePart('LeftHand', Vector3.new(0.4, 0.5, 0.4), Vector3.new(-1.3, -0.65, 0))
local rightUpperArm = makePart('RightUpperArm', Vector3.new(0.6, 1.2, 0.6), Vector3.new(1.3, 1.4, 0))
local rightLowerArm = makePart('RightLowerArm', Vector3.new(0.5, 1.0, 0.5), Vector3.new(1.3, 0.1, 0))
local rightHand = makePart('RightHand', Vector3.new(0.4, 0.5, 0.4), Vector3.new(1.3, -0.65, 0))
local leftUpperLeg = makePart('LeftUpperLeg', Vector3.new(0.6, 1.2, 0.6), Vector3.new(-0.5, -0.9, 0))
local leftLowerLeg = makePart('LeftLowerLeg', Vector3.new(0.5, 1.2, 0.5), Vector3.new(-0.5, -2.2, 0))
local leftFoot = makePart('LeftFoot', Vector3.new(0.6, 0.3, 1.0), Vector3.new(-0.5, -3.05, -0.15))
local rightUpperLeg = makePart('RightUpperLeg', Vector3.new(0.6, 1.2, 0.6), Vector3.new(0.5, -0.9, 0))
local rightLowerLeg = makePart('RightLowerLeg', Vector3.new(0.5, 1.2, 0.5), Vector3.new(0.5, -2.2, 0))
local rightFoot = makePart('RightFoot', Vector3.new(0.6, 0.3, 1.0), Vector3.new(0.5, -3.05, -0.15))
makeMotor('Root', rootPart, lowerTorso, CFrame.new(0, -1, 0), CFrame.new(0, 0, 0))
makeMotor('Waist', lowerTorso, upperTorso, CFrame.new(0, 0.3, 0), CFrame.new(0, 0.6, 0))
makeMotor('Neck', upperTorso, head, CFrame.new(0, 0.6, 0), CFrame.new(0, -0.6, 0))
makeMotor('Left Shoulder', upperTorso, leftUpperArm, CFrame.new(-1, 0.5, 0), CFrame.new(0.5, -0.6, 0))
makeMotor('Left Elbow', leftUpperArm, leftLowerArm, CFrame.new(0, -0.6, 0), CFrame.new(0, 0.5, 0))
makeMotor('Left Wrist', leftLowerArm, leftHand, CFrame.new(0, -0.5, 0), CFrame.new(0, 0.25, 0))
makeMotor('Right Shoulder', upperTorso, rightUpperArm, CFrame.new(1, 0.5, 0), CFrame.new(-0.5, -0.6, 0))
makeMotor('Right Elbow', rightUpperArm, rightLowerArm, CFrame.new(0, -0.6, 0), CFrame.new(0, 0.5, 0))
makeMotor('Right Wrist', rightLowerArm, rightHand, CFrame.new(0, -0.5, 0), CFrame.new(0, 0.25, 0))
makeMotor('Left Hip', lowerTorso, leftUpperLeg, CFrame.new(-0.5, -0.3, 0), CFrame.new(0, 0.6, 0))
makeMotor('Left Knee', leftUpperLeg, leftLowerLeg, CFrame.new(0, -0.6, 0), CFrame.new(0, 0.6, 0))
makeMotor('Left Ankle', leftLowerLeg, leftFoot, CFrame.new(0, -0.6, 0), CFrame.new(0, 0.15, -0.1))
makeMotor('Right Hip', lowerTorso, rightUpperLeg, CFrame.new(0.5, -0.3, 0), CFrame.new(0, 0.6, 0))
makeMotor('Right Knee', rightUpperLeg, rightLowerLeg, CFrame.new(0, -0.6, 0), CFrame.new(0, 0.6, 0))
makeMotor('Right Ankle', rightLowerLeg, rightFoot, CFrame.new(0, -0.6, 0), CFrame.new(0, 0.15, -0.1))
desyncFeetOffset = 3.2
else
-- ===================== R6 =====================
local torso = makePart('Torso', Vector3.new(2, 2, 1), Vector3.new(0, 0, 0))
local head = makePart('Head', Vector3.new(1.2, 1.2, 1.2), Vector3.new(0, 1.6, 0))
local leftArm = makePart('Left Arm', Vector3.new(0.6, 2, 0.6), Vector3.new(-1.3, 0, 0))
local rightArm = makePart('Right Arm', Vector3.new(0.6, 2, 0.6), Vector3.new(1.3, 0, 0))
local leftLeg = makePart('Left Leg', Vector3.new(0.6, 2, 0.6), Vector3.new(-0.5, -2, 0))
local rightLeg = makePart('Right Leg', Vector3.new(0.6, 2, 0.6), Vector3.new(0.5, -2, 0))
makeMotor('Root', rootPart, torso, CFrame.new(0, -1, 0), CFrame.new(0, 1, 0))
makeMotor('Neck', torso, head, CFrame.new(0, 1, 0), CFrame.new(0, -0.6, 0))
makeMotor('Left Shoulder', torso, leftArm, CFrame.new(-1, 0.5, 0), CFrame.new(0.5, -0.5, 0))
makeMotor('Right Shoulder', torso, rightArm, CFrame.new(1, 0.5, 0), CFrame.new(-0.5, -0.5, 0))
makeMotor('Left Hip', torso, leftLeg, CFrame.new(-0.5, -1, 0), CFrame.new(0, 1, 0))
makeMotor('Right Hip', torso, rightLeg, CFrame.new(0.5, -1, 0), CFrame.new(0, 1, 0))
desyncFeetOffset = 3.0
end
-- PrimaryPart for PivotTo
model.PrimaryPart = rootPart
-- Dummy Humanoid for camera tracking only (parts anchored, so it won't move them)
local hum = Instance.new('Humanoid')
hum.DisplayName = ''
hum.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
hum.HealthDisplayType = Enum.HumanoidHealthDisplayType.NeverDisplay
hum.MaxHealth = 999999999
hum.Health = 999999999
hum.WalkSpeed = 0
hum.JumpPower = 0
hum.Parent = model
-- Ambient purple glow light
pcall(function()
local light = Instance.new('PointLight')
light.Color = Color3.fromRGB(180, 100, 255)
light.Brightness = 1.5
light.Range = 15
light.Shadows = false
local torsoPart = model:FindFirstChild('UpperTorso') or model:FindFirstChild('Torso') or rootPart
light.Parent = torsoPart
end)
-- Parent to workspace and snap to spawn
model.Parent = workspace
pcall(function() model:PivotTo(spawnCFrame) end)
return model
end
-- ========== DESYNC COMMAND ==========
addcmd('desync', {}, function(args, speaker)
if desyncActive then execCmd('undesync') return end
local char = speaker.Character
if not char or not getRoot(char) then
notify('Desync', 'Character not found!')
return
end
local root = getRoot(char)
local humanoid = char:FindFirstChildWhichIsA('Humanoid')
-- Save state
desyncFrozenCFrame = root.CFrame
desyncRealChar = char
desyncWalkSpeed = humanoid and humanoid.WalkSpeed or 16
desyncJumpPower = humanoid and humanoid.JumpPower or 50
if desyncJumpPower < 30 then desyncJumpPower = 50 end
desyncLastSpace = false
desyncGhostYVel = 0
desyncOnGround = true
-- Create ghost (Instance.new only, cannot fail)
desyncGhostModel = createDesyncGhost(desyncFrozenCFrame)
if not desyncGhostModel then
notify('Desync', 'Failed to create ghost!')
desyncRealChar = nil
desyncFrozenCFrame = nil
return
end
local ghostRoot = desyncGhostModel:FindFirstChild('HumanoidRootPart')
local ghostHum = desyncGhostModel:FindFirstChildWhichIsA('Humanoid')
if not ghostRoot then
notify('Desync', 'Ghost missing root part!')
pcall(function() desyncGhostModel:Destroy() end)
desyncGhostModel = nil
desyncRealChar = nil
desyncFrozenCFrame = nil
return
end
-- Initialize ghost position from spawn CFrame
desyncGhostPos = desyncFrozenCFrame.Position
desyncGhostYaw = math.atan2(desyncFrozenCFrame.LookVector.X, desyncFrozenCFrame.LookVector.Z)
-- Anchor real body (freezes you on the server)
for _, part in pairs(char:GetDescendants()) do
if part:IsA('BasePart') then
part.Anchored = true
part.CanCollide = false
end
end
-- Camera follows ghost
pcall(function()
workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
workspace.CurrentCamera.CameraSubject = ghostHum or ghostRoot
end)
desyncActive = true
-- ========== MAIN HEARTBEAT LOOP ==========
desyncConn = RunService.Heartbeat:Connect(function(dt)
if not desyncActive then return end
if not desyncGhostModel or not desyncGhostModel.Parent then
execCmd('undesync')
return
end
if not ghostRoot or not ghostRoot.Parent then
execCmd('undesync')
return
end
-- 1. Keep real body frozen at original position
if desyncRealChar and desyncRealChar.Parent then
local realRoot = getRoot(desyncRealChar)
if realRoot then
pcall(function()
realRoot.CFrame = desyncFrozenCFrame
realRoot.Velocity = Vector3.new(0, 0, 0)
realRoot.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
end)
end
end
-- 2. Read WASD directly from UserInputService
local camCF = workspace.CurrentCamera.CFrame
local fwd = Vector3.new(camCF.LookVector.X, 0, camCF.LookVector.Z)
if fwd.Magnitude > 0.001 then
fwd = fwd.Unit
else
fwd = Vector3.new(0, 0, -1)
end
local rgt = Vector3.new(camCF.RightVector.X, 0, camCF.RightVector.Z)
if rgt.Magnitude > 0.001 then
rgt = rgt.Unit
else
rgt = Vector3.new(1, 0, 0)
end
local moveDir = Vector3.new(0, 0, 0)
local uis = UserInputService
if not uis:GetFocusedTextBox() then
if uis:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + fwd end
if uis:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - fwd end
if uis:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - rgt end
if uis:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + rgt end
end
-- 3. Apply horizontal movement
if moveDir.Magnitude > 0.01 then
moveDir = moveDir.Unit
desyncGhostPos = desyncGhostPos + moveDir * desyncWalkSpeed * dt
desyncGhostYaw = math.atan2(moveDir.X, moveDir.Z)
end
-- 4. Jump (edge-triggered on Space)
local spaceNow = uis:IsKeyDown(Enum.KeyCode.Space)
if spaceNow and not desyncLastSpace and desyncOnGround then
desyncGhostYVel = desyncJumpPower
desyncOnGround = false
end
desyncLastSpace = spaceNow
-- 5. Apply gravity when airborne
if not desyncOnGround then
desyncGhostYVel = desyncGhostYVel - workspace.Gravity * dt
-- No fall damage: cap downward velocity
if desyncGhostYVel < -80 then
desyncGhostYVel = -80
end
end
-- 6. Update vertical position when airborne
if not desyncOnGround then
desyncGhostPos = desyncGhostPos + Vector3.new(0, desyncGhostYVel * dt, 0)
end
-- 7. Ground raycast
pcall(function()
local rayParams = RaycastParams.new()
rayParams.FilterDescendantsInstances = {desyncGhostModel}
rayParams.FilterType = Enum.RaycastFilterType.Exclude
-- Long ray when airborne to detect ground from far above
local rayLen = desyncOnGround and (desyncFeetOffset + 2) or (desyncFeetOffset + 25)
local rayOrigin = desyncGhostPos + Vector3.new(0, 1, 0)
local result = workspace:Raycast(rayOrigin, Vector3.new(0, -rayLen, 0), rayParams)
if result then
local standY = result.Position.Y + desyncFeetOffset
if desyncOnGround then
-- On ground: snap to terrain surface
desyncGhostPos = Vector3.new(desyncGhostPos.X, standY, desyncGhostPos.Z)
elseif desyncGhostYVel <= 0 and desyncGhostPos.Y <= standY + 0.5 then
-- Landing: snap to ground, reset velocity
desyncGhostPos = Vector3.new(desyncGhostPos.X, standY, desyncGhostPos.Z)
desyncGhostYVel = 0
desyncOnGround = true
end
else
-- No ground detected below
if desyncOnGround then
-- Walked off an edge
desyncOnGround = false
end
end
end)
-- 8. Anti-void teleport
if desyncGhostPos.Y < -500 then
desyncGhostPos = Vector3.new(desyncFrozenCFrame.X, desyncFrozenCFrame.Y + 10, desyncFrozenCFrame.Z)
desyncGhostYVel = 0
desyncOnGround = false
end
-- 9. Move ghost via PivotTo (moves all anchored parts together)
pcall(function()
local finalCF = CFrame.new(desyncGhostPos) * CFrame.Angles(0, desyncGhostYaw, 0)
desyncGhostModel:PivotTo(finalCF)
end)
-- 10. Keep camera locked to ghost
pcall(function()
local subject = workspace.CurrentCamera.CameraSubject
if subject ~= ghostHum and subject ~= ghostRoot then
workspace.CurrentCamera.CameraSubject = ghostHum or ghostRoot
end
end)
end)
-- Death cleanup
if humanoid then
desyncDiedConn = humanoid.Died:Connect(function()
execCmd('undesync')
end)
end
-- ========== HUD GUI (top-center banner) ==========
local guiParent = PARENT or game:GetService('CoreGui')
local sg = Instance.new('ScreenGui')
sg.Name = randomString()
sg.ResetOnSpawn = false
sg.DisplayOrder = 99
sg.Parent = guiParent
local frame = Instance.new('Frame')
frame.Size = UDim2.new(0, 460, 0, 38)
frame.Position = UDim2.new(0.5, -230, 0, 10)
frame.BackgroundColor3 = Color3.fromRGB(15, 8, 30)
frame.BackgroundTransparency = 0.1
frame.BorderSizePixel = 0
frame.Parent = sg
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = frame
local stroke = Instance.new('UIStroke')
stroke.Color = Color3.fromRGB(120, 70, 200)
stroke.Thickness = 1.5
stroke.Transparency = 0.2
stroke.Parent = frame
local tl = Instance.new('TextLabel')
tl.Size = UDim2.new(1, -16, 1, 0)
tl.Position = UDim2.new(0, 8, 0, 0)
tl.BackgroundTransparency = 1
tl.Text = 'DESYNC ACTIVE | WASD move | SPACE jump | Q / undesync to teleport back'
tl.TextColor3 = Color3.fromRGB(200, 170, 255)
tl.TextStrokeColor3 = Color3.fromRGB(60, 20, 120)
tl.TextStrokeTransparency = 0.5
tl.Font = Enum.Font.GothamBold
tl.TextSize = 12
tl.TextWrapped = true
tl.Parent = frame
desyncGui = sg
-- Toggle button (top-right)
desync_createToggleGui()
showArcPopup('Desync', true)
notify('Desync', 'Ghost active! WASD + Space. Q or undesync to teleport back.')
end)
-- ========== UNDESYNC ==========
addcmd('undesync', {}, function(args, speaker)
if not desyncActive then return end
desyncActive = false
-- Disconnect loops
if desyncConn then desyncConn:Disconnect() desyncConn = nil end
if desyncDiedConn then desyncDiedConn:Disconnect() desyncDiedConn = nil end
-- Save ghost position for teleport
local ghostCFrame = desyncFrozenCFrame
if desyncGhostPos then
ghostCFrame = CFrame.new(desyncGhostPos) * CFrame.Angles(0, desyncGhostYaw, 0)
end
-- Destroy ghost
if desyncGhostModel and desyncGhostModel.Parent then
pcall(function() desyncGhostModel:Destroy() end)
end
desyncGhostModel = nil
-- Unanchor real body
local char = desyncRealChar or speaker.Character
if char then
for _, part in pairs(char:GetDescendants()) do
if part:IsA('BasePart') then
pcall(function()
part.Anchored = false
part.CanCollide = true
end)
end
end
end
-- Teleport real body to ghost position
if char then
local root = getRoot(char)
if root and ghostCFrame then
pcall(function() root.CFrame = ghostCFrame end)
end
end
-- Restore camera to real character
pcall(function()
workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
if char and char.Parent then
local hum = char:FindFirstChildWhichIsA('Humanoid')
if hum and hum.Parent then
workspace.CurrentCamera.CameraSubject = hum
else
local r = getRoot(char)
if r then workspace.CurrentCamera.CameraSubject = r end
end
end
end)
-- Safety loop: keep unanchoring for 3 seconds in case game re-anchors
local charRef = char
task.spawn(function()
for i = 1, 15 do
task.wait(0.2)
if not charRef or not charRef.Parent then break end
for _, part in pairs(charRef:GetDescendants()) do
if part:IsA('BasePart') and part.Anchored then
pcall(function() part.Anchored = false end)
end
end
if charRef.Parent then
local hum = charRef:FindFirstChildWhichIsA('Humanoid')
if hum and hum.Parent then
pcall(function()
workspace.CurrentCamera.CameraSubject = hum
end)
end
end
end
end)
-- Clean up state
desyncFrozenCFrame = nil
desyncRealChar = nil
desyncWalkSpeed = 16
desyncJumpPower = 50
desyncGhostPos = nil
desyncGhostYaw = 0
desyncGhostYVel = 0
desyncLastSpace = false
desyncOnGround = true
-- Destroy GUIs
if desyncGui and desyncGui.Parent then desyncGui:Destroy() end
desyncGui = nil
desync_destroyToggleGui()
showArcPopup('Desync', false)
notify('Desync', 'Teleported to ghost position!')
end)
addcmd('toggledesync', {}, function(args, speaker)
if desyncActive then
execCmd('undesync')
else
execCmd('desync')
end
end)
addcmd("arcdesync", {}, function(args, speaker)
if ArcGUI.Panels["arcdesync"] then ArcGUI.ClosePanel("arcdesync") return end
local p = ArcGUI.CreatePanel("arcdesync", "Desync", nil)
local infoLabel = ArcGUI.CreateButton(p, "Walk ghost around, undesync to teleport", function() end)
local toggle = ArcGUI.CreateToggle(p, "Desync", desyncActive, function(state)
if state then
execCmd("desync")
else
execCmd("undesync")
end
end)
local btn = ArcGUI.CreateButton(p, "TELEPORT BACK", function()
execCmd("undesync")
if p.ToggleStates and p.ToggleStates[toggle] then
p.ToggleStates[toggle] = false
end
end)
end)
-- ======================== LUMBER (LOAD KRON HUB) ========================
addcmd('lumber', {}, function(args, speaker)
notify('Arc Yield', 'Loading Kron Hub (Lumber)...')
local success, err = pcall(function()
loadstring(game:HttpGet('https://raw.githubusercontent.com/DevKron/Kron_Hub/refs/heads/main/version_1.0'))("")
end)
if not success then
notify('Arc Yield', 'Failed to load Kron Hub: ' .. tostring(err))
end
end)
-- ======================== GRAB PARTS (LOAD SCRIPT) ========================
addcmd('grabparts', {}, function(args, speaker)
notify('Arc Yield', 'Loading Grab Parts...')
local success, err = pcall(function()
loadstring(game:HttpGet("https://pastebin.com/raw/8Hzgb66U"))()
end)
if not success then
notify('Arc Yield', 'Failed to load Grab Parts: ' .. tostring(err))
end
end)
-- ======================== BUILD A BOAT (LOAD BABFT SCRIPT) ========================
addcmd('buildaboat', {'bab', 'babft'}, function(args, speaker)
notify('Arc Yield', 'Loading Build A Boat (takes ~5 sec)...')
local success, err = pcall(function()
loadstring(game:HttpGet('https://raw.githubusercontent.com/TheRealAsu/BABFT/refs/heads/main/Loader.lua'))()
end)
if not success then
notify('Arc Yield', 'Failed to load Build A Boat: ' .. tostring(err))
end
end)
-- ======================== ARC YIELD: 50 CUSTOM COMMANDS ========================
-- Useful in ANY Roblox game. Organized by category.
-- FindPlayer compatibility - partial name match like IY
function FindPlayer(name, speaker)
if not name or name == "" then return nil end
local found = getPlayersByName(name)
if found and #found > 0 then return found[1] end
return nil
end
-- =================== MOVEMENT (1-10) ===================
-- 1. hyperspeed [num] - Velocity-based movement that bypasses normal WalkSpeed cap
hyperSpeedConn = nil
addcmd('hyperspeed', {'hspeed'}, function(args, speaker)
if hyperSpeedConn then hyperSpeedConn:Disconnect() hyperSpeedConn = nil
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then h.WalkSpeed = 16 end
return notify('Hyperspeed','OFF') end
local spd = tonumber(args[1]) or 150
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then h.WalkSpeed = 0 end
local u = game:GetService('UserInputService')
hyperSpeedConn = RunService.Heartbeat:Connect(function()
local r = getRoot(speaker.Character) if not r then return end
local cf = workspace.CurrentCamera.CFrame
local d = Vector3.new(0,0,0)
if u:IsKeyDown(Enum.KeyCode.W) then d = d + cf.LookVector end
if u:IsKeyDown(Enum.KeyCode.S) then d = d - cf.LookVector end
if u:IsKeyDown(Enum.KeyCode.A) then d = d - cf.RightVector end
if u:IsKeyDown(Enum.KeyCode.D) then d = d + cf.RightVector end
if d.Magnitude > 0 then r.Velocity = Vector3.new(d.Unit.X*spd, r.Velocity.Y, d.Unit.Z*spd)
else r.Velocity = Vector3.new(0, r.Velocity.Y, 0) end
end)
notify('Hyperspeed', spd .. ' studs/s')
end)
-- 2. superjump [num] - High impulse jump every time you press space
superJumpConn = nil
addcmd('superjump', {'sjump'}, function(args, speaker)
if superJumpConn then superJumpConn:Disconnect() superJumpConn = nil
return notify('Super Jump','OFF') end
local pwr = tonumber(args[1]) or 150
local u = game:GetService('UserInputService')
superJumpConn = u.JumpRequest:Connect(function()
local r = getRoot(speaker.Character)
if r then r.Velocity = Vector3.new(r.Velocity.X, pwr, r.Velocity.Z) end
end)
notify('Super Jump', 'Power: ' .. pwr)
end)
-- 3. bhop / unbhop - Auto bunny hop while moving
bhopConn = nil
addcmd('bhop', {}, function(args, speaker)
if bhopConn then bhopConn:Disconnect() bhopConn = nil
return notify('BHop','OFF') end
bhopConn = RunService.Heartbeat:Connect(function()
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h and h.MoveDirection.Magnitude > 0 then
local state = h:GetState()
if state == Enum.HumanoidStateType.Landed or state == Enum.HumanoidStateType.Running then
h:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
end)
notify('BHop', 'ON')
end)
-- 4. infjump / uninfinjump - Jump infinitely midair
infJumpConn = nil
addcmd('infjump', {}, function(args, speaker)
if infJumpConn then infJumpConn:Disconnect() infJumpConn = nil
return notify('Inf Jump','OFF') end
local u = game:GetService('UserInputService')
infJumpConn = u.JumpRequest:Connect(function()
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then h:ChangeState(Enum.HumanoidStateType.Jumping) end
end)
notify('Inf Jump', 'ON')
end)
-- 5. float / unfloat - Float in the air (counteract gravity)
floatConn = nil
addcmd('float', {}, function(args, speaker)
if floatConn then floatConn:Disconnect() floatConn = nil
return notify('Float','OFF') end
floatConn = RunService.Heartbeat:Connect(function()
local r = getRoot(speaker.Character)
if r then r.Velocity = Vector3.new(r.Velocity.X, 0, r.Velocity.Z) end
end)
notify('Float', 'ON - gravity cancelled')
end)
-- 6. rocket - Launch yourself upward extremely fast
addcmd('rocket', {'launch'}, function(args, speaker)
local r = getRoot(speaker.Character)
if r then r.Velocity = Vector3.new(0, 500, 0) end
notify('Rocket', 'LAUNCHED!')
end)
-- 7. bouncy [num] / unbouncy - Bounce when touching ground
bouncyConn = nil
addcmd('bouncy', {}, function(args, speaker)
if bouncyConn then bouncyConn:Disconnect() bouncyConn = nil
return notify('Bouncy','OFF') end
local pwr = tonumber(args[1]) or 120
bouncyConn = RunService.Heartbeat:Connect(function()
local r = getRoot(speaker.Character)
if r and r.Velocity.Y <= 0 then
local ray = Ray.new(r.Position, Vector3.new(0, -5, 0))
local hit = workspace:FindPartOnRayWithWhitelist(ray, {})
if hit then r.Velocity = Vector3.new(r.Velocity.X, pwr, r.Velocity.Z) end
end
end)
notify('Bouncy', 'Bounce power: ' .. pwr)
end)
-- 8. antigrav / unantigrav - Zero gravity on your character
antigravBF = nil
addcmd('antigrav', {}, function(args, speaker)
if antigravBF then antigravBF:Destroy() antigravBF = nil
return notify('AntiGrav','OFF') end
local r = getRoot(speaker.Character)
if r then
antigravBF = Instance.new('BodyForce')
antigravBF.Name = randomString()
antigravBF.Force = Vector3.new(0, workspace.Gravity * r.AssemblyMass, 0)
antigravBF.Parent = r
notify('AntiGrav', 'ON')
end
end)
-- 9. dash - Quick burst of speed in look direction
addcmd('dash', {}, function(args, speaker)
local r = getRoot(speaker.Character)
if r then
local dir = workspace.CurrentCamera.CFrame.LookVector
r.Velocity = Vector3.new(dir.X * 300, r.Velocity.Y, dir.Z * 300)
end
notify('Dash', 'BOOM!')
end)
-- 10. spider / unspider - Walk on walls and ceilings
spiderConn = nil
addcmd('spider', {}, function(args, speaker)
if spiderConn then spiderConn:Disconnect() spiderConn = nil
return notify('Spider','OFF') end
spiderConn = RunService.Heartbeat:Connect(function()
local r = getRoot(speaker.Character)
if not r then return end
local h = speaker.Character:FindFirstChildOfClass('Humanoid')
if not h then return end
if h.MoveDirection.Magnitude > 0 then
local rayP = RaycastParams.new()
rayP.FilterDescendantsInstances = {speaker.Character}
rayP.FilterType = Enum.RaycastFilterType.Exclude
local result = workspace:Raycast(r.Position, -workspace.CurrentCamera.CFrame.LookVector * 3, rayP)
if result then
local norm = result.Normal
local cf = CFrame.lookAt(r.Position, r.Position - norm)
r.CFrame = cf
r.Velocity = Vector3.new(r.Velocity.X, r.Velocity.Y + 50, r.Velocity.Z)
end
end
end)
notify('Spider', 'ON - climb walls!')
end)
-- =================== ESP & VISUALS (11-18) ===================
-- 11. itemesp / noitemesp - ESP for all items/tools on the ground
itemEspActive = false
itemEspConn = nil
itemEspDraws = {}
addcmd('itemesp', {}, function(args, speaker)
if itemEspActive then
itemEspActive = false
if itemEspConn then itemEspConn:Disconnect() itemEspConn = nil end
for _, d in pairs(itemEspDraws) do pcall(function() d:Remove() end) end
itemEspDraws = {}
return notify('Item ESP','OFF') end
itemEspActive = true
itemEspConn = RunService.RenderStepped:Connect(function()
for _, d in pairs(itemEspDraws) do pcall(function() d:Remove() end) end
itemEspDraws = {}
local cam = workspace.CurrentCamera
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA('Tool') or (obj:IsA('BasePart') and obj.Name ~= 'Terrain' and not obj.Parent and obj.Size.Magnitude < 10) then
local pos, onScreen = cam:WorldToViewportPoint(obj.Position)
if onScreen then
local d = Drawing.new('Text')
d.Text = obj.Name
d.Position = Vector2.new(pos.X, pos.Y)
d.Color = Color3.fromRGB(255, 255, 0)
d.Outline = true
d.Size = 14
d.Center = true
itemEspDraws[#itemEspDraws + 1] = d
end
end
end
end)
notify('Item ESP', 'ON - showing items on ground')
end)
-- 12. partesp [name] / nopartesp - ESP for parts matching a name
partEspActive = false
partEspConn = nil
partEspDraws = {}
addcmd('partesp', {}, function(args, speaker)
if partEspActive then
partEspActive = false
if partEspConn then partEspConn:Disconnect() partEspConn = nil end
for _, d in pairs(partEspDraws) do pcall(function() d:Remove() end) end
partEspDraws = {}
return notify('Part ESP','OFF') end
local filter = args[1] or ''
if filter == '' then return notify('Part ESP','Usage: partesp [name]') end
partEspActive = true
partEspConn = RunService.RenderStepped:Connect(function()
for _, d in pairs(partEspDraws) do pcall(function() d:Remove() end) end
partEspDraws = {}
local cam = workspace.CurrentCamera
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Name:lower():find(filter:lower()) then
local pos, on = cam:WorldToViewportPoint(p.Position)
if on then
local d = Drawing.new('Text')
d.Text = p.Name .. ' (' .. math.floor((p.Position - cam.CFrame.Position).Magnitude) .. ')'
d.Position = Vector2.new(pos.X, pos.Y)
d.Color = Color3.fromRGB(0, 255, 255)
d.Outline = true
d.Size = 13
d.Center = true
partEspDraws[#partEspDraws + 1] = d
end
end
end
end)
notify('Part ESP', 'Filtering: ' .. filter)
end)
-- 13. vehicleesp / novehicleesp - ESP for seats and vehicles
vehicleEspActive = false
vehicleEspConn = nil
vehicleEspDraws = {}
addcmd('vehicleesp', {'vesp'}, function(args, speaker)
if vehicleEspActive then
vehicleEspActive = false
if vehicleEspConn then vehicleEspConn:Disconnect() vehicleEspConn = nil end
for _, d in pairs(vehicleEspDraws) do pcall(function() d:Remove() end) end
vehicleEspDraws = {}
return notify('Vehicle ESP','OFF') end
vehicleEspActive = true
vehicleEspConn = RunService.RenderStepped:Connect(function()
for _, d in pairs(vehicleEspDraws) do pcall(function() d:Remove() end) end
vehicleEspDraws = {}
local cam = workspace.CurrentCamera
for _, s in pairs(workspace:GetDescendants()) do
if s:IsA('Seat') or s:IsA('VehicleSeat') then
local pos, on = cam:WorldToViewportPoint(s.Position)
if on then
local d = Drawing.new('Text')
d.Text = s.Name .. (s.Occupant and ' [OCCUPIED]' or ' [EMPTY]')
d.Position = Vector2.new(pos.X, pos.Y)
d.Color = s.Occupant and Color3.fromRGB(255, 0, 0) or Color3.fromRGB(0, 255, 0)
d.Outline = true
d.Size = 14
d.Center = true
vehicleEspDraws[#vehicleEspDraws + 1] = d
end
end
end
end)
notify('Vehicle ESP', 'ON')
end)
-- 14. mobesp / nomobesp - ESP for NPCs/monsters (non-player humanoids)
mobEspActive = false
mobEspConn = nil
mobEspDraws = {}
addcmd('mobesp', {'npesp'}, function(args, speaker)
if mobEspActive then
mobEspActive = false
if mobEspConn then mobEspConn:Disconnect() mobEspConn = nil end
for _, d in pairs(mobEspDraws) do pcall(function() d:Remove() end) end
mobEspDraws = {}
return notify('Mob ESP','OFF') end
mobEspActive = true
mobEspConn = RunService.RenderStepped:Connect(function()
for _, d in pairs(mobEspDraws) do pcall(function() d:Remove() end) end
mobEspDraws = {}
local cam = workspace.CurrentCamera
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA('Humanoid') and obj.Health > 0 then
local char = obj.Parent
if char and char:FindFirstChild('HumanoidRootPart') then
local isPlayer = false
for _, p in pairs(Players:GetPlayers()) do
if p.Character == char then isPlayer = true break end
end
if not isPlayer then
local pos, on = cam:WorldToViewportPoint(char.HumanoidRootPart.Position)
if on then
local d = Drawing.new('Text')
d.Text = char.Name .. ' HP:' .. math.floor(obj.Health)
d.Position = Vector2.new(pos.X, pos.Y - 20)
d.Color = Color3.fromRGB(255, 100, 0)
d.Outline = true
d.Size = 13
d.Center = true
mobEspDraws[#mobEspDraws + 1] = d
end
end
end
end
end
end)
notify('Mob ESP', 'ON - showing NPCs')
end)
-- 15. chams / nochams - Highlight ALL players through walls (not role-based)
chamsActive = false
chamsHls = {}
chamsConn = nil
addcmd('chams', {}, function(args, speaker)
if chamsActive then
chamsActive = false
if chamsConn then chamsConn:Disconnect() chamsConn = nil end
for _, hl in pairs(chamsHls) do pcall(function() hl:Destroy() end) end
chamsHls = {}
return notify('Chams','OFF') end
chamsActive = true
local function addCham(player)
if not player.Character or chamsHls[player] then return end
local hl = Instance.new('Highlight')
hl.Name = 'ArcCham'
hl.Adornee = player.Character
hl.FillColor = Color3.fromRGB(255, 255, 255)
hl.OutlineColor = Color3.fromRGB(0, 100, 255)
hl.FillTransparency = 0.5
hl.OutlineTransparency = 0
hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
hl.Parent = player.Character
chamsHls[player] = hl
end
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker then pcall(function() addCham(p) end) end
end
chamsConn = Players.PlayerAdded:Connect(function(p)
task.wait(1)
p.CharacterAdded:Connect(function() task.wait(1) pcall(function() addCham(p) end) end)
pcall(function() addCham(p) end)
end)
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker then
p.CharacterAdded:Connect(function() task.wait(1) pcall(function() addCham(p) end) end)
end
end
notify('Chams', 'ON - all players highlighted')
end)
-- 16. trail [color] / untrail - Trail effect behind your character
trailActive = false
trailConn = nil
trailParts = {}
addcmd('trail', {}, function(args, speaker)
if trailActive then
trailActive = false
if trailConn then trailConn:Disconnect() trailConn = nil end
for _, p in pairs(trailParts) do pcall(function() p:Destroy() end) end
trailParts = {}
return notify('Trail','OFF') end
local col = Color3.fromRGB(0, 150, 255)
if args[1] then
local c = args[1]:gsub('#','')
if #c == 6 then
col = Color3.fromRGB(tonumber(c:sub(1,2),16), tonumber(c:sub(3,4),16), tonumber(c:sub(5,6),16))
end
end
trailActive = true
trailConn = RunService.Heartbeat:Connect(function()
local r = getRoot(speaker.Character)
if not r then return end
local p = Instance.new('Part')
p.Size = Vector3.new(1, 1, 1)
p.Color = col
p.Material = Enum.Material.Neon
p.Anchored = true
p.CanCollide = false
p.Position = r.Position
p.Shape = Enum.PartType.Ball
p.Parent = workspace
trailParts[#trailParts + 1] = p
task.delay(2, function() pcall(function() p:Destroy() end) end)
if #trailParts > 100 then
local old = table.remove(trailParts, 1)
if old then pcall(function() old:Destroy() end) end
end
end)
notify('Trail', 'ON')
end)
-- 17. nightvision / unnightvision - Bright green tint overlay
nightvisionActive = false
nightvisionCC = nil
addcmd('nightvision', {'nv'}, function(args, speaker)
if nightvisionActive then
nightvisionActive = false
if nightvisionCC then nightvisionCC:Destroy() nightvisionCC = nil end
local l = game:GetService('Lighting')
l.Brightness = 2
l.Ambient = Color3.fromRGB(128,128,128)
return notify('Night Vision','OFF') end
nightvisionActive = true
nightvisionCC = Instance.new('ColorCorrectionEffect')
nightvisionCC.Name = 'ArcNightVision'
nightvisionCC.Brightness = 0.3
nightvisionCC.Contrast = 0.2
nightvisionCC.Saturation = -0.5
nightvisionCC.TintColor = Color3.fromRGB(0, 255, 0)
nightvisionCC.Parent = game:GetService('Lighting')
game:GetService('Lighting').Brightness = 3
game:GetService('Lighting').Ambient = Color3.fromRGB(80, 80, 80)
notify('Night Vision', 'ON')
end)
-- 18. wireframe / unwireframe - Wireframe rendering mode
wireframeActive = false
wireframeParts = {}
addcmd('wireframe', {}, function(args, speaker)
if wireframeActive then
wireframeActive = false
for _, p in pairs(wireframeParts) do
pcall(function()
p.Material = p:GetAttribute('ArcOrigMat') or Enum.Material.Plastic
p.Transparency = p:GetAttribute('ArcOrigTrans') or 0
p:SetAttribute('ArcOrigMat', nil)
p:SetAttribute('ArcOrigTrans', nil)
end)
end
wireframeParts = {}
return notify('Wireframe','OFF') end
wireframeActive = true
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Name ~= 'Terrain' then
p:SetAttribute('ArcOrigMat', p.Material.Name)
p:SetAttribute('ArcOrigTrans', p.Transparency)
p.Material = Enum.Material.Wireframe
p.Transparency = 0
wireframeParts[#wireframeParts + 1] = p
end
end
notify('Wireframe', 'ON')
end)
-- =================== COMBAT & TOOLS (19-26) ===================
-- 19. toolgrabber / untoolgrabber - Auto teleport dropped tools to you
toolGrabberConn = nil
addcmd('toolgrabber', {'autograb'}, function(args, speaker)
if toolGrabberConn then toolGrabberConn:Disconnect() toolGrabberConn = nil
return notify('Tool Grabber','OFF') end
local r = getRoot(speaker.Character)
if not r then return end
toolGrabberConn = RunService.Heartbeat:Connect(function()
r = getRoot(speaker.Character)
if not r then return end
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA('Tool') and not obj.Parent:IsA('Player') and not obj.Parent:IsA('Backpack') then
if (obj.Position - r.Position).Magnitude < 100 then
obj:PivotTo(r.CFrame)
end
end
end
end)
notify('Tool Grabber', 'ON - auto-grabbing nearby tools')
end)
-- 20. reach [num] / unreach - Extend your tool reach distance
reachActive = false
reachOrig = {}
addcmd('reach', {}, function(args, speaker)
if reachActive then
reachActive = false
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA('Tool') and v:FindFirstChild('ArcReach') then
local h = v:FindFirstChild('Handle')
if h then h.Size = reachOrig[v] or Vector3.new(1,1,1) end
v:FindFirstChild('ArcReach'):Destroy()
end
end
return notify('Reach','OFF') end
local dist = tonumber(args[1]) or 20
reachActive = true
reachOrig = {}
local function applyReach(tool)
if tool:FindFirstChild('ArcReach') then return end
local h = tool:FindFirstChild('Handle')
if h then
reachOrig[tool] = h.Size
h.Size = Vector3.new(dist, dist, dist)
h.Massless = true
h.CanCollide = false
h.Transparency = 0.7
local t = Instance.new('SelectionBox') t.Name = 'ArcReach' t.Adornee = h t.Parent = tool
end
end
for _, t in pairs(speaker.Character:GetChildren()) do
if t:IsA('Tool') then pcall(function() applyReach(t) end) end
end
speaker.ChildAdded:Connect(function(c) if c:IsA('Tool') then task.wait(0.5) pcall(function() applyReach(c) end) end end)
notify('Reach', 'Extended to ' .. dist .. ' studs')
end)
-- 21. autofarm / unautofarm - Auto-collect nearby items (teleport to you)
autoFarmConn = nil
addcmd('autofarm', {'autocollect'}, function(args, speaker)
if autoFarmConn then autoFarmConn:Disconnect() autoFarmConn = nil
return notify('Auto Farm','OFF') end
autoFarmConn = RunService.Heartbeat:Connect(function()
local r = getRoot(speaker.Character)
if not r then return end
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Anchored == false and not p.Parent:IsA('Model') then
if (p.Position - r.Position).Magnitude < 50 then
p:PivotTo(r.CFrame * CFrame.new(0,0,3))
end
elseif p:IsA('Tool') and not p.Parent:IsA('Player') and not p.Parent:IsA('Backpack') then
if (p.Position - r.Position).Magnitude < 80 then
p:PivotTo(r.CFrame * CFrame.new(0,0,3))
end
end
end
end)
notify('Auto Farm', 'ON - collecting nearby items')
end)
-- 22. killaura [range] / nokillaura - Auto damage nearby players
killAuraConn = nil
addcmd('killaura', {'kaura'}, function(args, speaker)
if killAuraConn then killAuraConn:Disconnect() killAuraConn = nil
return notify('Kill Aura','OFF') end
local range = tonumber(args[1]) or 25
killAuraConn = RunService.Heartbeat:Connect(function()
local r = getRoot(speaker.Character)
if not r then return end
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker and p.Character and p.Character:FindFirstChild('HumanoidRootPart') then
local dist = (p.Character.HumanoidRootPart.Position - r.Position).Magnitude
if dist < range then
local h = p.Character:FindFirstChildOfClass('Humanoid')
if h and h.Health > 0 then
h:TakeDamage(5)
end
end
end
end
end)
notify('Kill Aura', 'ON (range: ' .. range .. ')')
end)
-- 23. toolcopy [player] - Copy a player's equipped tool
addcmd('toolcopy', {'copytool'}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Tool Copy','Player not found') end
local tool = nil
for _, v in pairs(target.Character:GetChildren()) do
if v:IsA('Tool') then tool = v break end
end
if not tool then tool = target.Backpack and target.Backpack:FindFirstChildOfClass('Tool') end
if not tool then return notify('Tool Copy', target.Name .. ' has no tools') end
local cl = tool:Clone()
cl.Parent = speaker.Backpack
notify('Tool Copy', 'Copied ' .. tool.Name)
end)
-- 24. heal - Heal yourself to full HP
addcmd('heal', {}, function(args, speaker)
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then h.Health = h.MaxHealth end
notify('Heal', 'Full HP!')
end)
-- 25. healall - Heal everyone on the server
addcmd('healall', {}, function(args, speaker)
for _, p in pairs(Players:GetPlayers()) do
if p.Character then
local h = p.Character:FindFirstChildOfClass('Humanoid')
if h then h.Health = h.MaxHealth end
end
end
notify('Heal All', 'Everyone healed!')
end)
-- 26. explode [player] - Create explosion on a player
addcmd('explode', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Explode','Player not found') end
local r = target.Character:FindFirstChild('HumanoidRootPart')
if r then
local e = Instance.new('Explosion')
e.Position = r.Position
e.BlastRadius = 20
e.BlastPressure = 500000
e.Parent = workspace
end
notify('Explode', 'Boom! ' .. target.Name)
end)
-- =================== PLAYER CONTROL (27-38) ===================
-- 27. serverlock / serverunlock - Kick anyone who joins
serverLockConn = nil
addcmd('serverlock', {'slock'}, function(args, speaker)
if serverLockConn then serverLockConn:Disconnect() serverLockConn = nil
return notify('Server Lock','UNLOCKED') end
serverLockConn = Players.PlayerAdded:Connect(function(p)
if p ~= speaker then pcall(function() p:Kick('Server is locked.') end) end
end)
notify('Server Lock', 'LOCKED - new players kicked')
end)
-- 28. loopkill [player] / unloopkill [player]
loopKillList = {}
loopKillConn = nil
addcmd('loopkill', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target then return notify('Loop Kill','Player not found') end
if loopKillList[target] then loopKillList[target] = nil
return notify('Loop Kill', 'Stopped on ' .. target.Name) end
loopKillList[target] = true
if not loopKillConn then
loopKillConn = Players.PlayerAdded:Connect(function(p)
if loopKillList[p] then
task.wait(3)
p.CharacterAdded:Connect(function(c) task.wait(1) pcall(function() c:FindFirstChildOfClass('Humanoid').Health = 0 end) end)
end
end)
end
if target.Character then
local h = target.Character:FindFirstChildOfClass('Humanoid')
if h then h.Health = 0 end
target.CharacterAdded:Connect(function(c) task.wait(1) if loopKillList[target] then pcall(function() c:FindFirstChildOfClass('Humanoid').Health = 0 end) end end)
end
notify('Loop Kill', 'Loop killing ' .. target.Name)
end)
-- 29. jail [player] / unjail [player]
jailState = {}
addcmd('jail', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Jail','Player not found') end
local r = target.Character:FindFirstChild('HumanoidRootPart')
if not r then return end
if jailState[target] then jailState[target].cage:Destroy() end
local cage = Instance.new('Model') cage.Name = 'ArcJail'
local pos = r.Position
local walls = {
{Vector3.new(8, 10, 1), pos + Vector3.new(4, 5, 0)},
{Vector3.new(8, 10, 1), pos + Vector3.new(-4, 5, 0)},
{Vector3.new(1, 10, 8), pos + Vector3.new(0, 5, 4)},
{Vector3.new(1, 10, 8), pos + Vector3.new(0, 5, -4)},
{Vector3.new(8, 1, 8), pos + Vector3.new(0, 10, 0)},
}
for _, w in pairs(walls) do
local p = Instance.new('Part')
p.Size = w[1] p.Position = w[2] p.Anchored = true p.Transparency = 0.5
p.Color = Color3.fromRGB(50, 50, 255) p.Material = Enum.Material.ForceField p.Parent = cage
end
cage.Parent = workspace
jailState[target] = {cage = cage}
-- Re-jail on respawn
target.CharacterAdded:Connect(function(c)
task.wait(2)
if jailState[target] then
local nr = c:FindFirstChild('HumanoidRootPart')
if nr then
jailState[target].cage:PivotTo(CFrame.new(nr.Position))
end
end
end)
notify('Jail', target.Name .. ' jailed!')
end)
addcmd('unjail', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target then return end
if jailState[target] then pcall(function() jailState[target].cage:Destroy() end) jailState[target] = nil end
notify('Jail', target.Name .. ' unjailed!')
end)
-- 30. blind [player] / unblind [player]
blindState = {}
addcmd('blind', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Blind','Player not found') end
local sg = Instance.new('ScreenGui') sg.Name = 'ArcBlind' sg.ResetOnSpawn = false sg.Parent = target.PlayerGui
local fr = Instance.new('Frame') fr.Size = UDim2.new(1,0,1,0) fr.BackgroundColor3 = Color3.new(0,0,0) fr.Parent = sg
blindState[target] = sg
target.CharacterAdded:Connect(function(c)
task.wait(1)
if blindState[target] then
local newSg = Instance.new('ScreenGui') newSg.Name = 'ArcBlind' newSg.ResetOnSpawn = false newSg.Parent = target.PlayerGui
local newFr = Instance.new('Frame') newFr.Size = UDim2.new(1,0,1,0) newFr.BackgroundColor3 = Color3.new(0,0,0) newFr.Parent = newSg
blindState[target] = newSg
end
end)
notify('Blind', target.Name .. ' blinded!')
end)
addcmd('unblind', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target then return end
if blindState[target] then pcall(function() blindState[target]:Destroy() end) blindState[target] = nil end
notify('Blind', target.Name .. ' unblinded!')
end)
-- 31. freeze [player] / unfreeze [player]
freezeState = {}
addcmd('freeze', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Freeze','Player not found') end
freezeState[target] = {}
for _, p in pairs(target.Character:GetDescendants()) do
if p:IsA('BasePart') then
freezeState[target][#freezeState[target]+1] = {part = p, wasAnchored = p.Anchored}
p.Anchored = true
end
end
notify('Freeze', target.Name .. ' frozen!')
end)
addcmd('unfreeze', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target then return end
if freezeState[target] then
for _, v in pairs(freezeState[target]) do
if v.part and v.part.Parent then v.part.Anchored = v.wasAnchored end
end
freezeState[target] = nil
end
notify('Freeze', target.Name .. ' unfrozen!')
end)
-- 32. punish [player] / unpunish [player] - Remove/restore character
punishState = {}
addcmd('punish', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Punish','Player not found') end
punishState[target] = target.Character.Archivable and target.Character:Clone() or nil
target.Character:Destroy()
notify('Punish', target.Name .. ' punished!')
end)
addcmd('unpunish', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target then return end
if punishState[target] then
target.Character = punishState[target]
punishState[target].Parent = workspace
punishState[target] = nil
end
notify('Punish', target.Name .. ' unpunished!')
end)
-- 33. trip [player] - Trip a player (ragdoll)
addcmd('trip', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Trip','Player not found') end
local h = target.Character:FindFirstChildOfClass('Humanoid')
if h then h.Sit = true end
notify('Trip', target.Name .. ' tripped!')
end)
-- 34. stun [player] / unstun [player]
stunState = {}
addcmd('stun', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Stun','Player not found') end
local h = target.Character:FindFirstChildOfClass('Humanoid')
if h then
stunState[target] = h.WalkSpeed
h.WalkSpeed = 0
h.JumpPower = 0
end
notify('Stun', target.Name .. ' stunned!')
end)
addcmd('unstun', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target then return end
if stunState[target] and target.Character then
local h = target.Character:FindFirstChildOfClass('Humanoid')
if h then h.WalkSpeed = stunState[target] h.JumpPower = 50 end
stunState[target] = nil
end
notify('Stun', target.Name .. ' unstunned!')
end)
-- 35. fling [player] - Fling a player using BodyThrust (Ultimate FlingGui method)
addcmd('fling', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Fling','Player not found') end
local tRoot = target.Character:FindFirstChild('HumanoidRootPart')
if not tRoot then return notify('Fling','Target has no HumanoidRootPart') end
local me = speaker.Character
local myRoot = me and getRoot(me)
if not me or not myRoot then return notify('Fling','No character') end
local savedCFrame = myRoot.CFrame
-- BodyThrust with massive force (Ultimate FlingGui method)
local thrust = Instance.new("BodyThrust")
thrust.Name = randomString()
thrust.Force = Vector3.new(9999, 9999, 9999)
thrust.Parent = myRoot
local startTime = tick()
local done = false
local conn = RunService.Heartbeat:Connect(function()
if done then return end
if not myRoot or not myRoot.Parent then done = true return end
if not tRoot or not tRoot.Parent then done = true return end
if tick() - startTime >= 5 then done = true return end
if not target.Character:FindFirstChild("Head") then done = true return end
myRoot.CFrame = tRoot.CFrame
thrust.Location = tRoot.Position
end)
task.spawn(function()
while not done do task.wait(0.01) end
conn:Disconnect()
task.wait(0.2)
if thrust and thrust.Parent then thrust:Destroy() end
if myRoot and myRoot.Parent then
myRoot.CFrame = savedCFrame
myRoot.Velocity = Vector3.new(0, 0, 0)
myRoot.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
myRoot.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
end
notify('Fling', 'Fling done!')
end)
notify('Fling', 'Flinging ' .. target.Name .. '...')
end)
-- 36. bringall - Teleport all players to you
addcmd('bringall', {}, function(args, speaker)
local r = getRoot(speaker.Character)
if not r then return end
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker and p.Character then
local pr = p.Character:FindFirstChild('HumanoidRootPart')
if pr then pr.CFrame = r.CFrame + Vector3.new(math.random(-5,5), 0, math.random(-5,5)) end
end
end
notify('Bring All', 'All players brought to you!')
end)
-- 37. tpall - Teleport all players to you (same as bringall)
addcmd('tpall', {}, function(args, speaker)
local r = getRoot(speaker.Character)
if not r then return end
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker and p.Character then
local pr = p.Character:FindFirstChild('HumanoidRootPart')
if pr then pr.CFrame = r.CFrame + Vector3.new(math.random(-5,5), 0, math.random(-5,5)) end
end
end
notify('TP All', 'All players teleported to you!')
end)
-- 38. crashplayer [player] - Lag/crash a player
addcmd('crashplayer', {'crash'}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target then return notify('Crash','Player not found') end
if target.Character and target.Character:FindFirstChild('HumanoidRootPart') then
for i = 1, 200 do
Instance.new('Part').Parent = target.Character
end
end
notify('Crash', 'Sent crash to ' .. target.Name)
end)
-- =================== CHARACTER EFFECTS (39-46) ===================
-- 39. spin2 / unspin2 - Spin your character
spin2BAV = nil
addcmd('spin2', {}, function(args, speaker)
if spin2BAV then spin2BAV:Destroy() spin2BAV = nil
return notify('Spin','OFF') end
local r = getRoot(speaker.Character)
if not r then return end
spin2BAV = Instance.new('BodyAngularVelocity')
spin2BAV.Name = randomString()
spin2BAV.AngularVelocity = Vector3.new(0, 50, 0)
spin2BAV.MaxTorque = Vector3.new(0, math.huge, 0)
spin2BAV.Parent = r
notify('Spin', 'ON')
end)
-- 40. seizure / unseizure - Random rapid pose changes
seizureConn = nil
seizureParts = {}
addcmd('seizure', {}, function(args, speaker)
if seizureConn then seizureConn:Disconnect() seizureConn = nil
for _, p in pairs(seizureParts) do pcall(function() p:Destroy() end) end
seizureParts = {}
return notify('Seizure','OFF') end
seizureConn = RunService.Heartbeat:Connect(function()
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then
h.CameraOffset = Vector3.new(math.random(-2,2), math.random(-2,2), math.random(-2,2))
h.Sit = math.random(0,1) == 1
end
end)
notify('Seizure', 'ON')
end)
-- 41. fire [color] / unfire
fireObj = nil
addcmd('fire', {}, function(args, speaker)
if fireObj then fireObj:Destroy() fireObj = nil
return notify('Fire','OFF') end
local col = Color3.fromRGB(255, 100, 0)
if args[1] then
local c = args[1]:gsub('#','')
if #c == 6 then col = Color3.fromRGB(tonumber(c:sub(1,2),16), tonumber(c:sub(3,4),16), tonumber(c:sub(5,6),16)) end
end
local r = getRoot(speaker.Character)
if not r then return end
fireObj = Instance.new('Fire')
fireObj.Color = col
fireObj.SecondaryColor = Color3.fromRGB(255, 200, 0)
fireObj.Size = 8
fireObj.Heat = 10
fireObj.Parent = r
notify('Fire', 'ON')
end)
-- 42. sparkles [color] / unsparkles
sparklesObj = nil
addcmd('sparkles', {}, function(args, speaker)
if sparklesObj then sparklesObj:Destroy() sparklesObj = nil
return notify('Sparkles','OFF') end
local col = Color3.fromRGB(255, 215, 0)
if args[1] then
local c = args[1]:gsub('#','')
if #c == 6 then col = Color3.fromRGB(tonumber(c:sub(1,2),16), tonumber(c:sub(3,4),16), tonumber(c:sub(5,6),16)) end
end
local r = getRoot(speaker.Character)
if not r then return end
sparklesObj = Instance.new('Sparkles')
sparklesObj.SparkleColor = col
sparklesObj.Parent = r
notify('Sparkles', 'ON')
end)
-- 43. smoke [color] / unsmoke
smokeObj = nil
addcmd('smoke', {}, function(args, speaker)
if smokeObj then smokeObj:Destroy() smokeObj = nil
return notify('Smoke','OFF') end
local col = Color3.fromRGB(100, 100, 100)
if args[1] then
local c = args[1]:gsub('#','')
if #c == 6 then col = Color3.fromRGB(tonumber(c:sub(1,2),16), tonumber(c:sub(3,4),16), tonumber(c:sub(5,6),16)) end
end
local r = getRoot(speaker.Character)
if not r then return end
smokeObj = Instance.new('Smoke')
smokeObj.Color = col
smokeObj.Opacity = 0.5
smokeObj.RiseVelocity = 5
smokeObj.Parent = r
notify('Smoke', 'ON')
end)
-- 44. tiny / untiny - Make yourself tiny
tinyActive = false
tinyScales = {}
addcmd('tiny', {}, function(args, speaker)
if tinyActive then
tinyActive = false
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then
local bsc = h:FindFirstChild('BodyScale') or h:FindFirstChild('BodyDepthScale')
if bsc then bsc.Value = 1 end
for _, s in pairs({'BodyHeightScale','BodyWidthScale','BodyDepthScale','HeadScale'}) do
local sc = h:FindFirstChild(s)
if sc then sc.Value = tinyScales[s] or 1 end
end
end
return notify('Tiny','OFF') end
tinyActive = true
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then
for _, s in pairs({'BodyHeightScale','BodyWidthScale','BodyDepthScale','HeadScale'}) do
local sc = h:FindFirstChild(s)
if sc then tinyScales[s] = sc.Value sc.Value = 0.1 end
end
end
notify('Tiny', 'ON - you are tiny!')
end)
-- 45. giant / ungiant - Make yourself giant
giantActive = false
giantScales = {}
addcmd('giant', {}, function(args, speaker)
if giantActive then
giantActive = false
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then
for _, s in pairs({'BodyHeightScale','BodyWidthScale','BodyDepthScale','HeadScale'}) do
local sc = h:FindFirstChild(s)
if sc then sc.Value = giantScales[s] or 1 end
end
end
return notify('Giant','OFF') end
giantActive = true
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then
for _, s in pairs({'BodyHeightScale','BodyWidthScale','BodyDepthScale','HeadScale'}) do
local sc = h:FindFirstChild(s)
if sc then giantScales[s] = sc.Value sc.Value = 5 end
end
end
notify('Giant', 'ON - you are HUGE!')
end)
-- 46. npp / unnpp - No Player Parts (makes you invisible to others by removing visual parts locally)
nppActive = false
nppParts = {}
addcmd('npp', {}, function(args, speaker)
if not speaker.Character then return end
if nppActive then
nppActive = false
for _, v in pairs(nppParts) do
pcall(function() v.part.Transparency = v.orig end)
end
nppParts = {}
return notify('NPP','OFF') end
nppActive = true
for _, p in pairs(speaker.Character:GetDescendants()) do
if p:IsA('BasePart') and p.Name ~= 'HumanoidRootPart' then
nppParts[#nppParts+1] = {part = p, orig = p.Transparency}
p.Transparency = 1
end
end
for _, v in pairs(nppParts) do v.part.LocalTransparencyModifier = 0 end
notify('NPP', 'ON - invisible to others')
end)
-- =================== ENVIRONMENT (47-50) ===================
-- 47. fullbright / unfullbright - Maximum brightness everywhere
fullbrightActive = false
fullbrightOrig = {}
addcmd('fullbright', {'fb'}, function(args, speaker)
if fullbrightActive then
fullbrightActive = false
local l = game:GetService('Lighting')
l.Brightness = fullbrightOrig.brightness or 2
l.Ambient = fullbrightOrig.ambient or Color3.fromRGB(128,128,128)
l.OutdoorAmbient = fullbrightOrig.outdoor or Color3.fromRGB(128,128,128)
l.ClockTime = fullbrightOrig.time or 14
l.FogEnd = fullbrightOrig.fogend or 100000
if fullbrightOrig.cc then fullbrightOrig.cc.Enabled = false end
return notify('Fullbright','OFF') end
fullbrightActive = true
local l = game:GetService('Lighting')
fullbrightOrig = {
brightness = l.Brightness,
ambient = l.Ambient,
outdoor = l.OutdoorAmbient,
time = l.ClockTime,
fogend = l.FogEnd,
cc = l:FindFirstChildOfClass('ColorCorrectionEffect'),
}
l.Brightness = 3
l.Ambient = Color3.fromRGB(200,200,200)
l.OutdoorAmbient = Color3.fromRGB(200,200,200)
l.ClockTime = 14
l.FogEnd = 100000
local cc = l:FindFirstChildOfClass('ColorCorrectionEffect')
if not cc then
cc = Instance.new('ColorCorrectionEffect') cc.Parent = l fullbrightOrig.cc = cc
end
cc.Brightness = 0.2
cc.Contrast = 0.1
cc.Saturation = 0.1
cc.Enabled = true
notify('Fullbright', 'ON - everything is bright!')
end)
-- 48. removeterrain - Remove all terrain
addcmd('removeterrain', {'noterrain'}, function(args, speaker)
local t = workspace:FindFirstChild('Terrain')
if t then
t.Transparency = 1
t.Parent = nil
end
notify('Remove Terrain', 'Terrain removed!')
end)
-- 49. music [id] / stopmusic - Play/stop music
musicSound = nil
addcmd('music', {'playmusic'}, function(args, speaker)
if not args[1] then return notify('Music','Usage: music [assetid]') end
if musicSound then musicSound:Destroy() end
musicSound = Instance.new('Sound')
musicSound.SoundId = 'rbxassetid://' .. args[1]
musicSound.Volume = 1
musicSound.Looped = true
musicSound.Parent = workspace
musicSound:Play()
notify('Music', 'Playing ID: ' .. args[1])
end)
addcmd('stopmusic', {'nomusic'}, function(args, speaker)
if musicSound then musicSound:Stop() musicSound:Destroy() musicSound = nil end
notify('Music', 'Stopped!')
end)
-- 50. gravity [num] - Set workspace gravity
addcmd('gravity', {}, function(args, speaker)
local g = tonumber(args[1]) or 196.2
workspace.Gravity = g
notify('Gravity', 'Set to ' .. g)
end)
-- ======================== SMART ESP (MM2) - SERVERSIDED ========================
-- Client-side Highlight (body glow, only you) + SERVERSIDED Part in Workspace (ALL players see billboard!)
-- 4-method MM2 role detection: exact names, deep scan, tool class, game-specific values
-- Click any player to fling them (up/down jitter + insane spin, return to original pos)
-- Usage: smartesp | unsmartesp | togglesmartesp
smartespActive = false
smartespFlinging = false
smartespHighlights = {} -- client-side body glow
smartespSSParts = {} -- SERVERSIDED parts in workspace (replicate to ALL players!)
smartespBills = {}
smartespCharConns = {}
smartespMainConn = nil
smartespClickConn = nil
smartespPlayerAddConn = nil
smartespPlayerRemConn = nil
-- MM2 Role Detection - 4 METHODS for maximum compatibility
local function smartesp_GetRole(player)
local char = player.Character
if not char then return "Innocent" end
local bp = player.Backpack
-- METHOD 1: Exact tool name match (standard MM2 naming)
local knifeNames = {"Knife", "Combat Knife", "Vintage Knife", "Classic Knife", "Healing Knife", "Murder Knife", "Knife (Murder Mystery)"}
local gunNames = {"Gun", "Revolver", "Pistol", "Shotgun", "Rifle", "Sheriff Gun", "Gun (Sheriff)", "Bow", "Crossbow"}
local function checkExact(container)
if not container then return nil end
for _, name in ipairs(knifeNames) do
if container:FindFirstChild(name) then return "Murderer" end
end
for _, name in ipairs(gunNames) do
if container:FindFirstChild(name) then return "Sheriff" end
end
return nil
end
local r = checkExact(bp) or checkExact(char)
if r then return r end
-- METHOD 2: Deep scan ALL descendants (catches nested tools, folders, etc.)
local function deepScan(container)
if not container then return nil end
for _, v in pairs(container:GetDescendants()) do
local n = v.Name:lower()
if n:find("knife") and not n:find("pocket") and not n:find("trading") and not n:find("knife_juggle") then
return "Murderer"
end
if n:find("revolver") or (n:find("gun") and not n:find("gunpowder")) or n:find("pistol") or n:find("shotgun") or n:find("rifle") or n:find("bat") then
return "Sheriff"
end
end
return nil
end
r = deepScan(bp) or deepScan(char)
if r then return r end
-- METHOD 3: Check Tool class objects + alternative weapon names
local function toolScan(container)
if not container then return nil end
for _, v in pairs(container:GetChildren()) do
if v:IsA("Tool") then
local n = v.Name:lower()
-- Murderer weapons
if n:find("knife") or n:find("blade") or n:find("dagger") or n:find("machete") or n:find("cleaver") or n:find("sickle") or n:find("scythe") then
return "Murderer"
end
-- Sheriff weapons
if n:find("gun") or n:find("shoot") or n:find("revolver") or n:find("pistol") or n:find("rifle") or n:find("sniper") or n:find("bow") or n:find("crossbow") or n:find("taser") or n:find("baton") then
return "Sheriff"
end
-- Check ToolTip if available
pcall(function()
local tip = v:FindFirstChild("ToolTip")
if tip and tip:IsA("StringValue") then
local t = tip.Value:lower()
if t:find("knife") or t:find("murder") then return "Murderer" end
if t:find("gun") or t:find("shoot") or t:find("sheriff") then return "Sheriff" end
end
end)
end
end
return nil
end
r = toolScan(bp) or toolScan(char)
if r then return r end
-- METHOD 4: Game-specific role storage (leaderstats, character values, modules)
pcall(function()
-- Check leaderstats for role
local ls = player:FindFirstChild("leaderstats")
if ls then
for _, v in pairs(ls:GetChildren()) do
if v:IsA("StringValue") or v:IsA("IntValue") or v:IsA("BoolValue") then
local n = v.Name:lower()
if n:find("role") or n:find("team") or n:find("class") or n:find("side") then
local val = tostring(v.Value):lower()
if val:find("murder") then return "Murderer" end
if val:find("sheriff") or val:find("police") or val:find("deputy") then return "Sheriff" end
if val:find("innocent") or val:find("survivor") or val:find("civilian") then return "Innocent" end
end
end
end
end
-- Check character for role values
for _, v in pairs(char:GetChildren()) do
if v:IsA("StringValue") or v:IsA("IntValue") or v:IsA("BoolValue") or v:IsA("ObjectValue") then
local n = v.Name:lower()
if n:find("role") or n:find("team") or n:find("class") or n:find("state") then
local val = tostring(v.Value):lower()
if val:find("murder") then return "Murderer" end
if val:find("sheriff") or val:find("police") then return "Sheriff" end
if val:find("innocent") or val:find("survivor") then return "Innocent" end
end
end
end
-- Check workspace for MM2 round system modules
for _, obj in pairs(workspace:GetChildren()) do
if obj:IsA("ModuleScript") or obj:IsA("Configuration") or obj:IsA("Folder") then
local n = obj.Name:lower()
if n:find("round") or n:find("game") or n:find("mm2") or n:find("murder") then
pcall(function()
for _, v in pairs(obj:GetDescendants()) do
if v:IsA("StringValue") and v.Name:lower():find("role") then
local val = tostring(v.Value):lower()
if val:find("murder") then return "Murderer" end
if val:find("sheriff") then return "Sheriff" end
end
end
end)
end
end
end
end)
return "Innocent"
end
-- Get player's tools (equipped + backpack)
local function smartesp_GetTools(player)
local tools = {}
if player.Backpack then
for _, v in pairs(player.Backpack:GetChildren()) do
if v:IsA("Tool") then tools[#tools+1] = v.Name end
end
end
if player.Character then
for _, v in pairs(player.Character:GetChildren()) do
if v:IsA("Tool") then tools[#tools+1] = v.Name end
end
end
return tools
end
-- Calculate account age in days
local function smartesp_GetAge(player)
local ok, info = pcall(function() return player.AccountAge end)
if ok and info then return info .. "d" end
return "?d"
end
local smartesp_Colors = {
Murderer = Color3.fromRGB(255, 0, 0),
Sheriff = Color3.fromRGB(0, 100, 255),
Innocent = Color3.fromRGB(0, 255, 0),
}
local function smartesp_AddTo(player)
if not player or not player.Character then return end
smartesp_RemoveFrom(player)
local char = player.Character
local head = char:FindFirstChild("Head")
if not head then return end
local role = smartesp_GetRole(player)
local color = smartesp_Colors[role] or Color3.fromRGB(128, 128, 128)
-- CLIENT-SIDE: Highlight for body glow (only you see)
local hl = Instance.new("Highlight")
hl.Name = "ArcYieldSmartESP"
hl.Adornee = char
hl.FillColor = color
hl.OutlineColor = Color3.fromRGB(255, 255, 255)
hl.FillTransparency = 0.4
hl.OutlineTransparency = 0
hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
hl.Parent = char
smartespHighlights[player] = hl
-- SERVERSIDED: UNANCHORED Part in Workspace (physics engine replicates to ALL players!)
-- NO WeldConstraints - we teleport this part every frame in the heartbeat loop
local ssPart = Instance.new("Part")
ssPart.Name = "ArcYieldSS_" .. player.Name
ssPart.Size = Vector3.new(0.1, 0.1, 0.1)
ssPart.Transparency = 1
ssPart.CanCollide = false
ssPart.Anchored = false
ssPart.Position = head.Position + Vector3.new(0, 6, 0)
ssPart.Parent = workspace
smartespSSParts[player] = ssPart
-- SERVERSIDED BillboardGui (visible to ALL players!)
local bb = Instance.new("BillboardGui")
bb.Name = "ArcYieldSS_BB"
bb.Adornee = ssPart
bb.Size = UDim2.new(0, 300, 0, 180)
bb.StudsOffset = Vector3.new(0, 3.5, 0)
bb.AlwaysOnTop = true
bb.MaxDistance = 5000
bb.Parent = ssPart
-- Background frame
local bg = Instance.new("Frame")
bg.Size = UDim2.new(1, 0, 1, 0)
bg.BackgroundColor3 = Color3.fromRGB(10, 10, 30)
bg.BackgroundTransparency = 0.25
bg.BorderSizePixel = 0
bg.Parent = bb
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = bg
-- Role label (top, bold, colored)
local roleLbl = Instance.new("TextLabel")
roleLbl.Name = "RoleLabel"
roleLbl.Size = UDim2.new(1, 0, 0, 28)
roleLbl.Position = UDim2.new(0, 0, 0, 4)
roleLbl.BackgroundTransparency = 1
roleLbl.Text = "[ " .. role:upper() .. " ]"
roleLbl.TextColor3 = color
roleLbl.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
roleLbl.TextStrokeTransparency = 0
roleLbl.Font = Enum.Font.GothamBold
roleLbl.TextScaled = true
roleLbl.Parent = bg
-- Player name
local nameLbl = Instance.new("TextLabel")
nameLbl.Name = "NameLabel"
nameLbl.Size = UDim2.new(1, 0, 0, 22)
nameLbl.Position = UDim2.new(0, 0, 0, 32)
nameLbl.BackgroundTransparency = 1
nameLbl.Text = player.DisplayName .. " (@" .. player.Name .. ")"
nameLbl.TextColor3 = Color3.fromRGB(255, 255, 255)
nameLbl.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
nameLbl.TextStrokeTransparency = 0.3
nameLbl.Font = Enum.Font.GothamBold
nameLbl.TextScaled = true
nameLbl.Parent = bg
-- Age
local ageLbl = Instance.new("TextLabel")
ageLbl.Name = "AgeLabel"
ageLbl.Size = UDim2.new(1, 0, 0, 20)
ageLbl.Position = UDim2.new(0, 0, 0, 54)
ageLbl.BackgroundTransparency = 1
ageLbl.Text = "Age: " .. smartesp_GetAge(player)
ageLbl.TextColor3 = Color3.fromRGB(200, 200, 200)
ageLbl.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
ageLbl.TextStrokeTransparency = 0.5
ageLbl.Font = Enum.Font.Gotham
ageLbl.TextScaled = true
ageLbl.Parent = bg
-- Distance (updated every frame)
local distLbl = Instance.new("TextLabel")
distLbl.Name = "DistLabel"
distLbl.Size = UDim2.new(1, 0, 0, 20)
distLbl.Position = UDim2.new(0, 0, 0, 74)
distLbl.BackgroundTransparency = 1
distLbl.Text = "0 studs"
distLbl.TextColor3 = Color3.fromRGB(255, 255, 100)
distLbl.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
distLbl.TextStrokeTransparency = 0.5
distLbl.Font = Enum.Font.Gotham
distLbl.TextScaled = true
distLbl.Parent = bg
-- Avatar thumbnail
local imgLbl = Instance.new("ImageLabel")
imgLbl.Name = "AvatarLabel"
imgLbl.Size = UDim2.new(0, 40, 0, 40)
imgLbl.Position = UDim2.new(0, 5, 0, 98)
imgLbl.BackgroundColor3 = Color3.fromRGB(40, 40, 60)
imgLbl.BorderSizePixel = 0
imgLbl.Parent = bg
local imgCorner = Instance.new("UICorner")
imgCorner.CornerRadius = UDim.new(1, 0)
imgCorner.Parent = imgLbl
pcall(function()
local thumbUrl = Players:GetUserThumbnailAsync(player.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100)
imgLbl.Image = thumbUrl
end)
-- Tools label (updated every frame)
local toolsLbl = Instance.new("TextLabel")
toolsLbl.Name = "ToolsLabel"
toolsLbl.Size = UDim2.new(1, -50, 0, 50)
toolsLbl.Position = UDim2.new(0, 50, 0, 98)
toolsLbl.BackgroundTransparency = 1
toolsLbl.Text = "Tools: "
toolsLbl.TextColor3 = Color3.fromRGB(180, 180, 255)
toolsLbl.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
toolsLbl.TextStrokeTransparency = 0.5
toolsLbl.Font = Enum.Font.Gotham
toolsLbl.TextScaled = true
toolsLbl.TextWrapped = true
toolsLbl.TextXAlignment = Enum.TextXAlignment.Left
toolsLbl.Parent = bg
-- Health bar
local hpBg = Instance.new("Frame")
hpBg.Name = "HpBg"
hpBg.Size = UDim2.new(0.9, 0, 0, 8)
hpBg.Position = UDim2.new(0.05, 0, 0, 155)
hpBg.BackgroundColor3 = Color3.fromRGB(60, 0, 0)
hpBg.BorderSizePixel = 0
hpBg.Parent = bg
local hpCorner = Instance.new("UICorner")
hpCorner.CornerRadius = UDim.new(0, 4)
hpCorner.Parent = hpBg
local hpBar = Instance.new("Frame")
hpBar.Name = "HpBar"
hpBar.Size = UDim2.new(1, 0, 1, 0)
hpBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
hpBar.BorderSizePixel = 0
hpBar.Parent = hpBg
local hpBarCorner = Instance.new("UICorner")
hpBarCorner.CornerRadius = UDim.new(0, 4)
hpBarCorner.Parent = hpBar
smartespBills[player] = bb
end
local function smartesp_RemoveFrom(player)
pcall(function()
if smartespHighlights[player] then
if smartespHighlights[player].Parent then smartespHighlights[player]:Destroy() end
smartespHighlights[player] = nil
end
end)
pcall(function()
if smartespSSParts[player] then
if smartespSSParts[player].Parent then smartespSSParts[player]:Destroy() end
smartespSSParts[player] = nil
end
end)
pcall(function()
if smartespBills[player] then
if smartespBills[player].Parent then smartespBills[player]:Destroy() end
smartespBills[player] = nil
end
end)
pcall(function()
if smartespCharConns[player] then
smartespCharConns[player]:Disconnect()
smartespCharConns[player] = nil
end
end)
-- Clean up any leftover workspace parts
pcall(function()
local leftover = workspace:FindFirstChild("ArcYieldSS_" .. player.Name)
if leftover then leftover:Destroy() end
end)
end
-- Click-to-fling: up/down jitter at light speed + insane spin, return to original pos
local function smartesp_Fling(targetPlayer, speaker)
if smartespFlinging then return end
smartespFlinging = true
local me = speaker.Character
local myRoot = getRoot(me)
if not me or not myRoot then smartespFlinging = false return end
local tChar = targetPlayer.Character
local tRoot = tChar and tChar:FindFirstChild("HumanoidRootPart")
if not tRoot or not tRoot.Parent then smartespFlinging = false return end
local savedCFrame = myRoot.CFrame
-- Noclip
for _, v in pairs(me:GetDescendants()) do
if v:IsA("BasePart") then v.CanCollide = false end
end
-- BodyAngularVelocity for insane spin
local bav = Instance.new("BodyAngularVelocity")
bav.Name = randomString()
bav.AngularVelocity = Vector3.new(999999, 999999, 999999)
bav.MaxTorque = Vector3.new(1e9, 1e9, 1e9)
bav.P = 1e9
bav.Parent = myRoot
local step = 0
local done = false
local conn = RunService.Heartbeat:Connect(function()
if done then return end
if not tRoot or not tRoot.Parent then done = true return end
step = step + 1
-- ONLY up/down jitter at light speed (BAV handles spinning, stay on the player)
local jY = math.sin(step * 2.0) * 10
myRoot.CFrame = tRoot.CFrame + Vector3.new(0, jY, 0)
-- Once target is flying fast enough, end fling
local vel = tRoot.AssemblyLinearVelocity
if vel.Magnitude > 500 then
done = true
end
end)
task.spawn(function()
while not done do task.wait(0.01) end
conn:Disconnect()
task.wait(0.2)
if bav and bav.Parent then bav:Destroy() end
myRoot.CFrame = savedCFrame
for _, v in pairs(me:GetDescendants()) do
if v:IsA("BasePart") then v.CanCollide = true end
end
smartespFlinging = false
notify('Smart ESP', 'Fling complete! Returned to original position.')
end)
notify('Smart ESP', 'Flinging ' .. targetPlayer.Name .. '...')
end
-- ===== COMMAND: smartesp =====
addcmd('smartesp', {}, function(args, speaker)
if smartespActive then execCmd('unsmartesp') return end
smartespActive = true
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker then
pcall(function() smartesp_AddTo(p) end)
end
end
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker then
local conn = p.CharacterAdded:Connect(function(c)
if not smartespActive then return end
task.wait(2)
if smartespActive then pcall(function() smartesp_AddTo(p) end) end
end)
smartespCharConns[p] = conn
end
end
smartespPlayerAddConn = Players.PlayerAdded:Connect(function(p)
if not smartespActive then return end
local conn = p.CharacterAdded:Connect(function(c)
if not smartespActive then return end
task.wait(2)
if smartespActive then pcall(function() smartesp_AddTo(p) end) end
end)
smartespCharConns[p] = conn
task.wait(0.5)
if smartespActive then pcall(function() smartesp_AddTo(p) end) end
end)
smartespPlayerRemConn = Players.PlayerRemoving:Connect(function(p)
smartesp_RemoveFrom(p)
end)
-- Every frame: re-create destroyed highlights + update ALL info
smartespMainConn = RunService.Heartbeat:Connect(function()
if not smartespActive then return end
local myRoot = getRoot(speaker.Character)
for player, _ in pairs(Players:GetPlayers()) do
if player ~= speaker then
-- Re-create if highlight was destroyed
if not smartespHighlights[player] or not smartespHighlights[player].Parent then
if player.Character and player.Character:FindFirstChild("Head") then
pcall(function() smartesp_AddTo(player) end)
end
end
local hl = smartespHighlights[player]
if hl and hl.Parent and player.Character then
-- SERVERSIDED: teleport unanchored part to follow player head
local ssP = smartespSSParts[player]
if ssP and ssP.Parent then
local tHead = player.Character:FindFirstChild("Head")
if tHead then
ssP.CFrame = tHead.CFrame * CFrame.new(0, 3.5, 0)
ssP.AssemblyLinearVelocity = Vector3.zero
ssP.AssemblyAngularVelocity = Vector3.zero
end
end
-- Update role color
local role = smartesp_GetRole(player)
local color = smartesp_Colors[role] or Color3.fromRGB(128, 128, 128)
hl.FillColor = color
-- Update billboard info
local bb = smartespBills[player]
if bb and bb.Parent then
local bg = bb:FindFirstChild("Frame")
if bg then
local roleLbl = bg:FindFirstChild("RoleLabel")
if roleLbl then
roleLbl.Text = "[ " .. role:upper() .. " ]"
roleLbl.TextColor3 = color
end
local distLbl = bg:FindFirstChild("DistLabel")
if distLbl and myRoot then
local tRoot = player.Character:FindFirstChild("HumanoidRootPart")
if tRoot then
local dist = math.floor((tRoot.Position - myRoot.Position).Magnitude)
distLbl.Text = dist .. " studs away"
end
end
local toolsLbl = bg:FindFirstChild("ToolsLabel")
if toolsLbl then
local tools = smartesp_GetTools(player)
if #tools > 0 then
toolsLbl.Text = "Tools: " .. table.concat(tools, ", ")
else
toolsLbl.Text = "Tools: None"
end
end
local hpBar = bg:FindFirstChild("HpBg")
if hpBar then
local bar = hpBar:FindFirstChild("HpBar")
if bar then
local hum = player.Character:FindFirstChildOfClass("Humanoid")
if hum then
local pct = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
bar.Size = UDim2.new(pct, 0, 1, 0)
bar.BackgroundColor3 = pct > 0.5 and Color3.fromRGB(0,255,0) or pct > 0.25 and Color3.fromRGB(255,255,0) or Color3.fromRGB(255,0,0)
end
end
end
end
end
end
end
end
end)
-- Click-to-fling
local UIS = game:GetService("UserInputService")
smartespClickConn = UIS.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end
if smartespFlinging then return end
local mouse = Players.LocalPlayer:GetMouse()
local cam = workspace.CurrentCamera
local ray = cam:ScreenPointToRay(mouse.X, mouse.Y)
local params = RaycastParams.new()
params.FilterDescendantsInstances = {speaker.Character}
params.FilterType = Enum.RaycastFilterType.Exclude
local hit = workspace:Raycast(ray.Origin, ray.Direction * 1000, params)
if hit then
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker and p.Character then
local ok = pcall(function()
return p.Character:IsAncestorOf(hit.Instance)
end)
if ok then
task.spawn(function() smartesp_Fling(p, speaker) end)
break
end
end
end
end
end)
showArcPopup('Smart ESP', true)
notify('Smart ESP', 'SERVERSIDED ON! All players see billboards. Click to fling!')
end)
-- ===== COMMAND: unsmartesp =====
addcmd('unsmartesp', {'nosmartesp'}, function(args, speaker)
smartespActive = false
smartespFlinging = false
if smartespMainConn then pcall(function() smartespMainConn:Disconnect() end) smartespMainConn = nil end
if smartespClickConn then pcall(function() smartespClickConn:Disconnect() end) smartespClickConn = nil end
if smartespPlayerAddConn then pcall(function() smartespPlayerAddConn:Disconnect() end) smartespPlayerAddConn = nil end
if smartespPlayerRemConn then pcall(function() smartespPlayerRemConn:Disconnect() end) smartespPlayerRemConn = nil end
for _, p in pairs(Players:GetPlayers()) do
smartesp_RemoveFrom(p)
end
smartespHighlights = {}
smartespSSParts = {}
smartespBills = {}
smartespCharConns = {}
-- Clean ALL leftover workspace parts
for _, obj in pairs(workspace:GetChildren()) do
if obj.Name:find("ArcYieldSS_") then pcall(function() obj:Destroy() end) end
end
showArcPopup('Smart ESP', false)
end)
-- ===== COMMAND: togglesmartesp =====
addcmd('togglesmartesp', {}, function(args, speaker)
if smartespActive then execCmd('unsmartesp') else execCmd('smartesp') end
end)
-- ======================== MM2 (LOAD BUBBLY MM2) ========================
addcmd('mm2', {}, function(args, speaker)
notify('Arc Yield', 'Loading Bubbly MM2...')
local success, err = pcall(function()
loadstring(readfile("Bubbly_MM2.lua"))()
end)
if not success then
notify('Arc Yield', 'Put Bubbly_MM2.lua in executor workspace folder! Error: ' .. tostring(err))
end
end)
addcmd('unmm2', {'nomm2', 'mm2off'}, function(args, speaker)
notify('Arc Yield', 'Use Bubbly MM2 unload if available, or rejoin.')
end)
-- ======================== ASSIST ========================
-- MM2 auto-play helper. Detects murderer role, provides ESP, aim lock, rush, and panic TP.
-- Usage: assist | unassist
assistActive = false
assistConn = nil
assistMurderer = nil
assistAimLock = false
assistRush = false
assistEspObjects = {}
assistKeyConns = {}
local function mm2_GetRole(player)
if not player or not player.Character then return nil end
local backpack = player:FindFirstChild('Backpack')
local char = player.Character
-- Check for knife (murderer)
for _, item in pairs(char:GetChildren()) do
if item:IsA('Tool') then
local n = item.Name:lower()
if n:find('knife') or n:find('murder') then return 'murderer' end
end
end
if backpack then
for _, item in pairs(backpack:GetChildren()) do
if item:IsA('Tool') then
local n = item.Name:lower()
if n:find('knife') or n:find('murder') then return 'murderer' end
end
end
end
-- Check for gun (sheriff)
for _, item in pairs(char:GetChildren()) do
if item:IsA('Tool') then
local n = item.Name:lower()
if n:find('gun') or n:find('revolver') or n:find('pistol') or n:find('sheriff') then return 'sheriff' end
end
end
if backpack then
for _, item in pairs(backpack:GetChildren()) do
if item:IsA('Tool') then
local n = item.Name:lower()
if n:find('gun') or n:find('revolver') or n:find('pistol') or n:find('sheriff') then return 'sheriff' end
end
end
end
return 'innocent'
end
local function assist_ClearESP()
for _, obj in pairs(assistEspObjects) do
pcall(function() obj:Destroy() end)
end
assistEspObjects = {}
end
local function assist_CreateESP(player, color)
local char = player.Character
if not char then return end
local head = char:FindFirstChild('Head')
if not head then return end
-- Billboard for name + role
local bb = Instance.new('BillboardGui')
bb.Name = randomString()
bb.Adornee = head
bb.Size = UDim2.new(0, 200, 0, 50)
bb.StudsOffset = Vector3.new(0, 3, 0)
bb.AlwaysOnTop = true
bb.Parent = workspace
local label = Instance.new('TextLabel')
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.TextColor3 = color
label.TextStrokeColor3 = Color3.new(0, 0, 0)
label.TextStrokeTransparency = 0.5
label.Font = Enum.Font.GothamBold
label.TextScaled = true
label.Text = player.Name .. ' [' .. mm2_GetRole(player) .. ']'
label.Parent = bb
-- Highlight box
local hl = Instance.new('Highlight')
hl.Name = randomString()
hl.Adornee = char
hl.FillColor = color
hl.FillTransparency = 0.5
hl.OutlineColor = color
hl.OutlineTransparency = 0
hl.Parent = char
table.insert(assistEspObjects, bb)
table.insert(assistEspObjects, hl)
end
addcmd('assist', {'mma', 'mm2assist'}, function(args, speaker)
if assistActive then execCmd('unassist') return end
local char = speaker.Character
if not char or not getRoot(char) then notify('Assist', 'Character not found') return end
assistActive = true
assistAimLock = false
assistRush = false
notify('Assist', 'Assist enabled! [R] Aim lock, [F] Rush mode. Scanning for murderer...')
-- Main loop: detect murderer, ESP, aim lock, rush
assistConn = RunService.Heartbeat:Connect(function(dt)
if not assistActive then return end
-- Rescan for murderer
local foundMurderer = nil
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= speaker and plr.Character and mm2_GetRole(plr) == 'murderer' then
foundMurderer = plr
break
end
end
if foundMurderer and foundMurderer ~= assistMurderer then
assistMurderer = foundMurderer
assist_ClearESP()
assist_CreateESP(foundMurderer, Color3.fromRGB(255, 0, 0))
notify('Assist', 'Murderer found: ' .. foundMurderer.Name)
elseif not foundMurderer and assistMurderer then
assistMurderer = nil
assist_ClearESP()
end
-- Aim lock: move camera toward murderer
if assistAimLock and assistMurderer and assistMurderer.Character then
local mHead = assistMurderer.Character:FindFirstChild('Head')
if mHead then
local cam = workspace.CurrentCamera
cam.CFrame = CFrame.lookAt(cam.CFrame.Position, mHead.Position)
end
end
-- Rush: walk toward murderer at high speed
if assistRush and assistMurderer and assistMurderer.Character then
local mRoot = getRoot(assistMurderer.Character)
local myRoot = getRoot(speaker.Character)
if mRoot and myRoot then
local dir = (mRoot.Position - myRoot.Position)
dir = Vector3.new(dir.X, 0, dir.Z)
if dir.Magnitude > 0 then
local myHum = speaker.Character:FindFirstChildWhichIsA('Humanoid')
if myHum then
myHum.WalkSpeed = 25
myHum:Move(dir.Unit)
end
end
end
end
-- Panic teleport: if murderer is very close and rush is off, auto-teleport away
if not assistRush and assistMurderer and assistMurderer.Character then
local mRoot = getRoot(assistMurderer.Character)
local myRoot = getRoot(speaker.Character)
if mRoot and myRoot then
local dist = (mRoot.Position - myRoot.Position).Magnitude
if dist < 8 then
local awayDir = (myRoot.Position - mRoot.Position).Unit * 30
pcall(function()
speaker.Character:PivotTo(myRoot.CFrame + awayDir)
end)
end
end
end
end)
-- Key handlers
table.insert(assistKeyConns, UIS.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.R then
assistAimLock = not assistAimLock
notify('Assist', 'Aim lock: ' .. tostring(assistAimLock))
elseif input.KeyCode == Enum.KeyCode.F then
assistRush = not assistRush
notify('Assist', 'Rush mode: ' .. tostring(assistRush))
if not assistRush then
local myHum = speaker.Character and speaker.Character:FindFirstChildWhichIsA('Humanoid')
if myHum then myHum.WalkSpeed = 16 end
end
end
end))
showArcPopup('Assist', true)
end)
addcmd('unassist', {'noassist', 'assistoff'}, function(args, speaker)
assistActive = false
assistMurderer = nil
assistAimLock = false
assistRush = false
if assistConn then assistConn:Disconnect() assistConn = nil end
for _, conn in pairs(assistKeyConns) do
pcall(function() conn:Disconnect() end)
end
assistKeyConns = {}
assist_ClearESP()
local myHum = speaker.Character and speaker.Character:FindFirstChildWhichIsA('Humanoid')
if myHum then myHum.WalkSpeed = 16 end
showArcPopup('Assist', false)
notify('Assist', 'Assist disabled.')
end)
addcmd('toggleassist', {}, function(args, speaker)
if assistActive then execCmd('unassist') else execCmd('assist') end
end)
-- ======================== SSPAM ========================
-- Serversided spam - fires chat remote rapidly with a message.
-- Usage: sspam [message] | stopsspam
sspamActive = false
sspamConn = nil
addcmd('sspam', {'spam', 'chatspam'}, function(args, speaker)
if sspamActive then execCmd('stopsspam') return end
local msg = table.concat(args, ' ') or 'Arc Yield on top!'
if msg == '' then msg = 'Arc Yield on top!' end
sspamActive = true
notify('SSpam', 'Spamming: ' .. msg .. ' (run stopsspam to stop)')
sspamConn = RunService.Heartbeat:Connect(function(dt)
if not sspamActive then return end
pcall(function()
local chatRemote = game:GetService('ReplicatedStorage'):FindFirstChild('DefaultChatSystemChatEvents')
if chatRemote then
local sayMsg = chatRemote:FindFirstChild('SayMessageRequest')
if sayMsg then
sayMsg:FireServer(msg, 'All')
end
end
end)
task.wait(1.5)
end)
end)
addcmd('stopsspam', {'unsspam', 'nospam', 'sspamoff'}, function(args, speaker)
sspamActive = false
if sspamConn then sspamConn:Disconnect() sspamConn = nil end
notify('SSpam', 'Spam stopped.')
end)
-- ======================== SPAZ TOOLS ========================
-- Custom tool manipulation commands: equip, orbit, spaz, give, throw, sort, etc.
-- All tool visual effects are LOCAL only (Handle CFrame/Size changes).
-- The orbit/spin replicates to server so other players see tools move too.
-- Shared state for tool commands
spazToolsConn = nil
spazToolsActive = false
orbitToolsConn = nil
orbitToolsActive = false
sortToolsConn = nil
sortToolsActive = false
spinToolsConn = nil
spinToolsActive = false
-- Unique axis combinations so every tool spins differently
local toolUniqueAxes = {
{1, 0, 0}, {0, 1, 0}, {0, 0, 1},
{1, 1, 0}, {0, 1, 1}, {1, 0, 1},
{1, 1, 1}, {2, 0.5, 0.3}
}
-- Helper: get all tools with handles currently parented to character
local function getCharTools(char)
local tools = {}
for _, v in pairs(char:GetChildren()) do
if v:IsA('Tool') and v:FindFirstChild('Handle') then
table.insert(tools, v)
end
end
return tools
end
-- Helper: stop ALL active tool effect loops (call before starting any new one)
local function stopAllToolLoops()
if spazToolsConn then spazToolsConn:Disconnect() spazToolsConn = nil end
if orbitToolsConn then orbitToolsConn:Disconnect() orbitToolsConn = nil end
if sortToolsConn then sortToolsConn:Disconnect() sortToolsConn = nil end
if spinToolsConn then spinToolsConn:Disconnect() spinToolsConn = nil end
spazToolsActive = false
orbitToolsActive = false
sortToolsActive = false
spinToolsActive = false
end
-- Helper: restore tool handles to normal size after tiny-mode
local function restoreToolSizes(char)
for _, v in pairs(char:GetChildren()) do
if v:IsA('Tool') and v:FindFirstChild('Handle') then
v.Handle.Transparency = 0
-- Size is network-owned so we can't force restore it on all clients,
-- but we restore it locally
end
end
end
-- equiptools - Equip all tools from backpack at once
addcmd('equiptools', {'equipall'}, function(args, speaker)
local char = speaker.Character
if not char then return notify('Equip Tools', 'No character found!') end
local count = 0
for _, v in pairs(speaker.Backpack:GetChildren()) do
if v:IsA('Tool') then
v.Parent = char
if v:FindFirstChild('Handle') then
v.Handle.Massless = true
v.Handle.CanCollide = false
end
count = count + 1
end
end
notify('Equip Tools', 'Equipped ' .. count .. ' tools!')
end)
-- unequiptools - Unequip all tools back to backpack
addcmd('unequiptools', {'unequipall'}, function(args, speaker)
stopAllToolLoops()
local char = speaker.Character
if not char then return notify('Unequip Tools', 'No character found!') end
local count = 0
for _, v in pairs(char:GetChildren()) do
if v:IsA('Tool') then
v.Parent = speaker.Backpack
count = count + 1
end
end
restoreToolSizes(char)
notify('Unequip Tools', 'Unequipped ' .. count .. ' tools!')
end)
-- spaztools - Equip all tools, make them orbit around you (no spinning)
-- Smooth orbit, each tool evenly spaced in a circle
addcmd('spaztools', {'spaz'}, function(args, speaker)
if spazToolsActive then
stopAllToolLoops()
restoreToolSizes(speaker.Character or speaker.CharacterAdded:Wait())
return notify('Spaz Tools', 'OFF')
end
stopAllToolLoops()
local char = speaker.Character
if not char then return notify('Spaz Tools', 'No character found!') end
-- Equip all tools first
for _, v in pairs(speaker.Backpack:GetChildren()) do
if v:IsA('Tool') then
v.Parent = char
if v:FindFirstChild('Handle') then
v.Handle.Massless = true
v.Handle.CanCollide = false
end
end
end
-- Parse optional settings from args
local orbitSpeed = tonumber(args[1]) or 4
local orbitRadius = tonumber(args[2]) or 8
local orbitHeight = tonumber(args[3]) or 2
local angle = 0
spazToolsActive = true
spazToolsConn = RunService.Heartbeat:Connect(function(dt)
local hrp = getRoot(char)
if not hrp or not spazToolsActive then return end
local tools = getCharTools(char)
if #tools == 0 then return end
angle = angle + dt * orbitSpeed
for i, tool in ipairs(tools) do
local handle = tool.Handle
-- LAG FIX: Make tool tiny locally so your GPU doesn't render the full 3D model
handle.Size = Vector3.new(0.01, 0.01, 0.01)
-- Evenly space tools in a circle around player
local angleOffset = (2 * math.pi / #tools) * (i - 1)
local a = angle + angleOffset
local x = math.cos(a) * orbitRadius
local z = math.sin(a) * orbitRadius
local orbitPosition = hrp.CFrame * CFrame.new(x, orbitHeight, z)
-- Face outward from center
local lookAt = orbitPosition * CFrame.Angles(0, a + math.pi / 2, 0)
-- This replicates to server so others see them move too
handle.CFrame = lookAt
end
end)
notify('Spaz Tools', 'ON - Tools orbiting! (speed: ' .. orbitSpeed .. ')')
end)
-- orbitttools - Orbit all tools around you (smooth orbit, no crazy spinning)
addcmd('orbitttools', {'toolorbit'}, function(args, speaker)
if orbitToolsActive then
stopAllToolLoops()
restoreToolSizes(speaker.Character or speaker.CharacterAdded:Wait())
return notify('Orbit Tools', 'OFF')
end
stopAllToolLoops()
local char = speaker.Character
if not char then return notify('Orbit Tools', 'No character found!') end
-- Equip all tools
for _, v in pairs(speaker.Backpack:GetChildren()) do
if v:IsA('Tool') then
v.Parent = char
if v:FindFirstChild('Handle') then
v.Handle.Massless = true
v.Handle.CanCollide = false
end
end
end
local speed = tonumber(args[1]) or 3
local radius = tonumber(args[2]) or 6
local height = tonumber(args[3]) or 2
local angle = 0
orbitToolsActive = true
orbitToolsConn = RunService.Heartbeat:Connect(function(dt)
local hrp = getRoot(char)
if not hrp or not orbitToolsActive then return end
local tools = getCharTools(char)
if #tools == 0 then return end
angle = angle + dt * speed
for i, tool in ipairs(tools) do
local handle = tool.Handle
-- Keep tools at normal size for a clean orbit look
handle.Size = Vector3.new(0.01, 0.01, 0.01)
local angleOffset = (2 * math.pi / #tools) * (i - 1)
local a = angle + angleOffset
local x = math.cos(a) * radius
local z = math.sin(a) * radius
local orbitPos = hrp.CFrame * CFrame.new(x, height, z)
-- Face outward from center
local lookAt = orbitPos * CFrame.Angles(0, a + math.pi / 2, 0)
handle.CFrame = lookAt
end
end)
notify('Orbit Tools', 'ON - ' .. #getCharTools(char) .. ' tools orbiting!')
end)
-- toolspin - Spin all equipped tools in place (no orbiting, just spinning)
addcmd('toolspin', {}, function(args, speaker)
if spinToolsActive then
stopAllToolLoops()
restoreToolSizes(speaker.Character or speaker.CharacterAdded:Wait())
return notify('Tool Spin', 'OFF')
end
stopAllToolLoops()
local char = speaker.Character
if not char then return notify('Tool Spin', 'No character found!') end
-- Equip all tools
for _, v in pairs(speaker.Backpack:GetChildren()) do
if v:IsA('Tool') then
v.Parent = char
if v:FindFirstChild('Handle') then
v.Handle.Massless = true
v.Handle.CanCollide = false
end
end
end
local spinSpeed = tonumber(args[1]) or 10
spinToolsActive = true
local startTime = tick()
spinToolsConn = RunService.RenderStepped:Connect(function()
if not spinToolsActive then return end
local tools = getCharTools(char)
if #tools == 0 then return end
local elapsed = tick() - startTime
for i, tool in ipairs(tools) do
local handle = tool.Handle
handle.Size = Vector3.new(0.01, 0.01, 0.01)
local axisData = toolUniqueAxes[((i - 1) % #toolUniqueAxes) + 1]
local spinX = elapsed * spinSpeed * axisData[1]
local spinY = elapsed * spinSpeed * axisData[2]
local spinZ = elapsed * spinSpeed * axisData[3]
local hrp = getRoot(char)
if hrp then
handle.CFrame = hrp.CFrame * CFrame.new(0, 3, 0) * CFrame.Angles(spinX, spinY, spinZ)
end
end
end)
notify('Tool Spin', 'ON - Spinning ' .. #getCharTools(char) .. ' tools!')
end)
-- toolsort - Arrange all tools in a neat formation (circle, line, grid)
-- Usage: toolsort circle/line/grid [radius/spacing]
addcmd('toolsort', {}, function(args, speaker)
if sortToolsActive then
stopAllToolLoops()
restoreToolSizes(speaker.Character or speaker.CharacterAdded:Wait())
return notify('Tool Sort', 'OFF')
end
stopAllToolLoops()
local char = speaker.Character
if not char then return notify('Tool Sort', 'No character found!') end
-- Equip all tools
for _, v in pairs(speaker.Backpack:GetChildren()) do
if v:IsA('Tool') then
v.Parent = char
if v:FindFirstChild('Handle') then
v.Handle.Massless = true
v.Handle.CanCollide = false
end
end
end
local formation = (args[1] or 'circle'):lower()
local param = tonumber(args[2]) or 5
sortToolsActive = true
sortToolsConn = RunService.Heartbeat:Connect(function()
local hrp = getRoot(char)
if not hrp or not sortToolsActive then return end
local tools = getCharTools(char)
if #tools == 0 then return end
for i, tool in ipairs(tools) do
local handle = tool.Handle
handle.Size = Vector3.new(0.01, 0.01, 0.01)
local targetCFrame
if formation == 'line' then
-- Horizontal line in front of player
local offset = (i - (#tools + 1) / 2) * param
targetCFrame = hrp.CFrame * CFrame.new(offset, 3, -5)
elseif formation == 'grid' then
-- Grid layout
local cols = math.ceil(math.sqrt(#tools))
local row = math.floor((i - 1) / cols)
local col = (i - 1) % cols
local offsetX = (col - (cols - 1) / 2) * param
local offsetZ = row * param
targetCFrame = hrp.CFrame * CFrame.new(offsetX, 3, -5 - offsetZ)
else
-- Circle (default)
local angle = (2 * math.pi / #tools) * (i - 1)
local x = math.cos(angle) * param
local z = math.sin(angle) * param
targetCFrame = hrp.CFrame * CFrame.new(x, 3, z)
end
-- Smoothly lerp to target position
handle.CFrame = targetCFrame
end
end)
notify('Tool Sort', 'ON - Formation: ' .. formation .. ' (' .. #getCharTools(char) .. ' tools)')
end)
-- givetool [player] [toolname] - Visually attach a tool to a player (client-side only)
-- This makes it LOOK like the target player is holding the specified tool
addcmd('givetool', {'faktool', 'visgive'}, function(args, speaker)
if not args[1] then return notify('Give Tool', 'Usage: ;givetool player [toolname]') end
if not args[2] then return notify('Give Tool', 'Usage: ;givetool player [toolname] - specify a tool name or "me" to use your equipped tool') end
local players = getPlayer(args[1], speaker)
if #players == 0 then return notify('Give Tool', 'Player not found!') end
-- Find the tool to clone: check backpack first, then equipped
local sourceTool = nil
local toolName = table.concat(args, ' ', 2)
-- "me" = use the tool you're currently holding
if toolName:lower() == 'me' then
local char = speaker.Character
if char then
for _, v in pairs(char:GetChildren()) do
if v:IsA('Tool') then sourceTool = v break end
end
end
else
-- Search backpack
for _, v in pairs(speaker.Backpack:GetChildren()) do
if v:IsA('Tool') and v.Name:lower():find(toolName:lower(), 1, true) then
sourceTool = v break
end
end
-- Search equipped
if not sourceTool and speaker.Character then
for _, v in pairs(speaker.Character:GetChildren()) do
if v:IsA('Tool') and v.Name:lower():find(toolName:lower(), 1, true) then
sourceTool = v break
end
end
end
end
if not sourceTool then return notify('Give Tool', 'Tool "' .. toolName .. '" not found in your backpack or equipped!') end
-- Clone and attach to each target player
local count = 0
for _, idx in pairs(players) do
local targetPlr = Players[idx]
local targetChar = targetPlr.Character
if targetChar then
local targetRoot = getRoot(targetChar)
local targetHumanoid = targetChar:FindFirstChildWhichIsA('Humanoid')
if targetRoot and targetHumanoid then
-- Check if we already gave them a fake tool (avoid duplicates)
local existing = targetChar:FindFirstChild('__FakeTool_' .. sourceTool.Name)
if existing then existing:Destroy() end
local clone = sourceTool:Clone()
clone.Name = '__FakeTool_' .. sourceTool.Name
-- Make it purely visual (no damage, no interaction)
if clone:FindFirstChild('Handle') then
clone.Handle.Massless = true
clone.Handle.CanCollide = false
-- Remove any scripts inside
for _, s in pairs(clone:GetDescendants()) do
if s:IsA('Script') or s:IsA('LocalScript') then
s:Destroy()
end
end
end
clone.Parent = targetChar
targetHumanoid:EquipTool(clone)
count = count + 1
end
end
end
notify('Give Tool', 'Gave "' .. sourceTool.Name .. '" to ' .. count .. ' player(s)!')
end)
-- toolthrow - Fling all your tools forward at high speed
addcmd('toolthrow', {'throwtools', 'flingtools'}, function(args, speaker)
stopAllToolLoops()
local char = speaker.Character
if not char then return notify('Tool Throw', 'No character found!') end
local hrp = getRoot(char)
if not hrp then return end
-- First equip all tools
for _, v in pairs(speaker.Backpack:GetChildren()) do
if v:IsA('Tool') then
v.Parent = char
if v:FindFirstChild('Handle') then
v.Handle.Massless = true
v.Handle.CanCollide = false
end
end
end
local throwSpeed = tonumber(args[1]) or 300
local count = 0
local throwDir = hrp.CFrame.LookVector
for _, v in pairs(char:GetChildren()) do
if v:IsA('Tool') and v:FindFirstChild('Handle') then
local handle = v.Handle
-- Launch tool forward
handle.AssemblyLinearVelocity = throwDir * throwSpeed + Vector3.new(0, 50, 0)
count = count + 1
end
end
notify('Tool Throw', 'Threw ' .. count .. ' tools forward at speed ' .. throwSpeed .. '!')
end)
-- toolscatter - Scatter tools in random directions
addcmd('toolscatter', {'scattertools'}, function(args, speaker)
stopAllToolLoops()
local char = speaker.Character
if not char then return notify('Tool Scatter', 'No character found!') end
-- Equip all tools first
for _, v in pairs(speaker.Backpack:GetChildren()) do
if v:IsA('Tool') then
v.Parent = char
if v:FindFirstChild('Handle') then
v.Handle.Massless = true
v.Handle.CanCollide = false
end
end
end
local scatterSpeed = tonumber(args[1]) or 200
local count = 0
for _, v in pairs(char:GetChildren()) do
if v:IsA('Tool') and v:FindFirstChild('Handle') then
local handle = v.Handle
local randDir = Vector3.new(
math.random(-100, 100),
math.random(50, 150),
math.random(-100, 100)
).Unit
handle.AssemblyLinearVelocity = randDir * scatterSpeed
count = count + 1
end
end
notify('Tool Scatter', 'Scattered ' .. count .. ' tools randomly!')
end)
-- toolsnake - Tools follow each other in a snake chain behind you
addcmd('toolsnake', {'snake'}, function(args, speaker)
if spazToolsActive then
stopAllToolLoops()
restoreToolSizes(speaker.Character or speaker.CharacterAdded:Wait())
return notify('Tool Snake', 'OFF')
end
stopAllToolLoops()
local char = speaker.Character
if not char then return notify('Tool Snake', 'No character found!') end
-- Equip all tools
for _, v in pairs(speaker.Backpack:GetChildren()) do
if v:IsA('Tool') then
v.Parent = char
if v:FindFirstChild('Handle') then
v.Handle.Massless = true
v.Handle.CanCollide = false
end
end
end
local spacing = tonumber(args[1]) or 3
local snakeSpeed = tonumber(args[2]) or 10
spazToolsActive = true
-- Store trail positions (circular buffer)
local trailPositions = {}
local maxTrail = 50
spazToolsConn = RunService.Heartbeat:Connect(function(dt)
local hrp = getRoot(char)
if not hrp or not spazToolsActive then return end
local tools = getCharTools(char)
if #tools == 0 then return end
-- Add current position to trail
table.insert(trailPositions, hrp.Position)
if #trailPositions > maxTrail then
table.remove(trailPositions, 1)
end
-- Place each tool at an interval along the trail
for i, tool in ipairs(tools) do
local handle = tool.Handle
handle.Size = Vector3.new(0.01, 0.01, 0.01)
local trailIdx = math.max(1, #trailPositions - (i * spacing))
local targetPos = trailPositions[trailIdx] or hrp.Position
local targetCFrame = CFrame.new(targetPos) * CFrame.Angles(0, tick() * snakeSpeed, 0)
handle.CFrame = targetCFrame
end
end)
notify('Tool Snake', 'ON - ' .. #getCharTools(char) .. ' tools following in a snake chain!')
end)
-- tooldrop - Drop all tools onto the ground beneath you (unequip + let them fall)
addcmd('tooldrop', {'dropall', 'droptools'}, function(args, speaker)
stopAllToolLoops()
local char = speaker.Character
if not char then return notify('Tool Drop', 'No character found!') end
local hrp = getRoot(char)
if not hrp then return end
local count = 0
for _, v in pairs(char:GetChildren()) do
if v:IsA('Tool') then
-- Move to workspace so it drops on the ground
v.Parent = workspace
if v:FindFirstChild('Handle') then
v.Handle.CFrame = hrp.CFrame * CFrame.new(math.random(-2, 2), 0, math.random(-2, 2))
v.Handle.Massless = false
v.Handle.CanCollide = true
end
count = count + 1
end
end
notify('Tool Drop', 'Dropped ' .. count .. ' tools on the ground!')
end)
-- toolbounce - Tools bounce up and down around you
addcmd('toolbounce', {'bouncetools'}, function(args, speaker)
if sortToolsActive then
stopAllToolLoops()
restoreToolSizes(speaker.Character or speaker.CharacterAdded:Wait())
return notify('Tool Bounce', 'OFF')
end
stopAllToolLoops()
local char = speaker.Character
if not char then return notify('Tool Bounce', 'No character found!') end
-- Equip all tools
for _, v in pairs(speaker.Backpack:GetChildren()) do
if v:IsA('Tool') then
v.Parent = char
if v:FindFirstChild('Handle') then
v.Handle.Massless = true
v.Handle.CanCollide = false
end
end
end
local bounceHeight = tonumber(args[1]) or 8
local bounceSpeed = tonumber(args[2]) or 5
local radius = tonumber(args[3]) or 4
sortToolsActive = true
local startTime = tick()
sortToolsConn = RunService.Heartbeat:Connect(function()
local hrp = getRoot(char)
if not hrp or not sortToolsActive then return end
local tools = getCharTools(char)
if #tools == 0 then return end
local elapsed = tick() - startTime
for i, tool in ipairs(tools) do
local handle = tool.Handle
handle.Size = Vector3.new(0.01, 0.01, 0.01)
-- Each tool has its own bounce phase offset
local phase = (2 * math.pi / #tools) * (i - 1)
local angle = elapsed * bounceSpeed + phase
local x = math.cos(angle) * radius
local z = math.sin(angle) * radius
-- Bounce height using absolute sine for up-and-down motion
local y = math.abs(math.sin(elapsed * bounceSpeed * 1.5 + phase)) * bounceHeight
local targetPos = hrp.CFrame * CFrame.new(x, y + 1, z)
-- Spin while bouncing
local axisData = toolUniqueAxes[((i - 1) % #toolUniqueAxes) + 1]
local spinCFrame = CFrame.Angles(
elapsed * 3 * axisData[1],
elapsed * 3 * axisData[2],
elapsed * 3 * axisData[3]
)
handle.CFrame = targetPos * spinCFrame
end
end)
notify('Tool Bounce', 'ON - ' .. #getCharTools(char) .. ' tools bouncing!')
end)
-- ======================== UNANCHORED PART CONTROL ========================
-- scatter - Scatter all unanchored parts away from you
addcmd('scatter', {}, function(args, speaker)
local r = getRoot(speaker.Character)
if not r then return end
local count = 0
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Anchored == false and p.Name ~= 'HumanoidRootPart' then
local dir = (p.Position - r.Position).Unit
p.AssemblyLinearVelocity = dir * 300 + Vector3.new(0, 100, 0)
count = count + 1
end
end
notify('Scatter', 'Launched ' .. count .. ' parts!')
end)
-- gather - Gather all unanchored parts to you
addcmd('gather', {}, function(args, speaker)
local r = getRoot(speaker.Character)
if not r then return end
local count = 0
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Anchored == false and p.Name ~= 'HumanoidRootPart' then
p:PivotTo(r.CFrame * CFrame.new(math.random(-5,5), 0, math.random(-5,5)))
count = count + 1
end
end
notify('Gather', 'Gathered ' .. count .. ' parts!')
end)
-- deleteparts - Delete all unanchored parts (not player parts)
addcmd('deleteparts', {'delparts'}, function(args, speaker)
local count = 0
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Anchored == false and p.Name ~= 'HumanoidRootPart' then
local isPlayerPart = false
for _, pl in pairs(Players:GetPlayers()) do
if pl.Character and pl.Character:IsAncestorOf(p) then isPlayerPart = true break end
end
if not isPlayerPart then
p:Destroy()
count = count + 1
end
end
end
notify('Delete Parts', 'Deleted ' .. count .. ' unanchored parts')
end)
-- anchorparts - Anchor all unanchored parts
addcmd('anchorparts', {}, function(args, speaker)
local count = 0
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Anchored == false then
p.Anchored = true
count = count + 1
end
end
notify('Anchor Parts', 'Anchored ' .. count .. ' parts')
end)
-- unanchorparts - Unanchor all anchored parts (except terrain)
addcmd('unanchorparts', {}, function(args, speaker)
local count = 0
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Anchored == true and p.Name ~= 'Terrain' then
p.Anchored = false
count = count + 1
end
end
notify('Unanchor', 'Unanchored ' .. count .. ' parts')
end)
-- orbitparts - Make all unanchored parts orbit around you
orbitPartsConn = nil
orbitPartsList = {}
addcmd('orbitparts', {}, function(args, speaker)
if orbitPartsConn then orbitPartsConn:Disconnect() orbitPartsConn = nil
for _, v in pairs(orbitPartsList) do pcall(function() v.bv:Destroy() end) end
orbitPartsList = {}
return notify('Orbit Parts','OFF') end
local r = getRoot(speaker.Character)
if not r then return end
local parts = {}
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Anchored == false and p.Name ~= 'HumanoidRootPart' and p.Size.Magnitude < 10 then
local isPlayerPart = false
for _, pl in pairs(Players:GetPlayers()) do
if pl.Character and pl.Character:IsAncestorOf(p) then isPlayerPart = true break end
end
if not isPlayerPart then parts[#parts+1] = p end
end
end
local angle = 0
orbitPartsConn = RunService.Heartbeat:Connect(function(dt)
local root = getRoot(speaker.Character)
if not root then return end
angle = angle + dt * 2
for i, p in pairs(parts) do
if p and p.Parent then
local a = angle + (i * (math.pi * 2 / #parts))
local radius = 20 + math.sin(angle + i) * 5
local targetPos = root.Position + Vector3.new(math.cos(a) * radius, math.sin(a * 0.5) * 3, math.sin(a) * radius)
p.Velocity = (targetPos - p.Position) * 10
end
end
end)
notify('Orbit Parts', 'Orbiting ' .. #parts .. ' parts around you!')
end)
-- spiralparts - Make parts spiral upward from your position
spiralPartsConn = nil
addcmd('spiralparts', {}, function(args, speaker)
if spiralPartsConn then spiralPartsConn:Disconnect() spiralPartsConn = nil
return notify('Spiral Parts','OFF') end
local r = getRoot(speaker.Character)
if not r then return end
local parts = {}
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Anchored == false and p.Name ~= 'HumanoidRootPart' and p.Size.Magnitude < 10 then
local isPlayerPart = false
for _, pl in pairs(Players:GetPlayers()) do
if pl.Character and pl.Character:IsAncestorOf(p) then isPlayerPart = true break end
end
if not isPlayerPart then parts[#parts+1] = p end
end
end
local t = 0
spiralPartsConn = RunService.Heartbeat:Connect(function(dt)
t = t + dt
local root = getRoot(speaker.Character)
if not root then return end
for i, p in pairs(parts) do
if p and p.Parent then
local h = (t * 20 + i * 3) % 50
local a = t * 3 + i * 0.5
local radius = 5 + (h / 50) * 15
local targetPos = root.Position + Vector3.new(math.cos(a) * radius, h, math.sin(a) * radius)
p.Velocity = (targetPos - p.Position) * 8
end
end
end)
notify('Spiral Parts', 'Spiraling ' .. #parts .. ' parts!')
end)
-- partrain - Rain unanchored parts from above
partRainConn = nil
addcmd('partrain', {}, function(args, speaker)
if partRainConn then partRainConn:Disconnect() partRainConn = nil
return notify('Part Rain','OFF') end
local r = getRoot(speaker.Character)
if not r then return end
local parts = {}
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA('BasePart') and p.Anchored == false and p.Name ~= 'HumanoidRootPart' and p.Size.Magnitude < 10 then
local isPlayerPart = false
for _, pl in pairs(Players:GetPlayers()) do
if pl.Character and pl.Character:IsAncestorOf(p) then isPlayerPart = true break end
end
if not isPlayerPart then parts[#parts+1] = p end
end
end
partRainConn = RunService.Heartbeat:Connect(function()
local root = getRoot(speaker.Character)
if not root then return end
for _, p in pairs(parts) do
if p and p.Parent then
p.Velocity = Vector3.new(math.random(-5,5), -200, math.random(-5,5))
end
end
end)
notify('Part Rain', 'Raining ' .. #parts .. ' parts from above!')
end)
-- ======================== SERVER-SIDED FEATURES ========================
-- antikick - Hooks Kick method to prevent being kicked
antikickHooked = false
addcmd('antikick', {}, function(args, speaker)
if antikickHooked then return notify('Anti Kick','Already active') end
local mt = getrawmetatable(game)
if mt and setreadonly then
local oldNamecall = mt.__namecall
setreadonly(mt, false)
mt.__namecall = newcclosure(function(self, ...)
local method = getnamecallmethod()
if method == 'Kick' and self == Players.LocalPlayer then
notify('Anti Kick', 'Blocked a kick attempt!')
return nil
end
return oldNamecall(self, ...)
end)
setreadonly(mt, true)
antikickHooked = true
notify('Anti Kick', 'ON - kicks blocked!')
else
notify('Anti Kick', 'Executor does not support metatable hooking')
end
end)
-- antivoid - Prevent falling into the void
antiVoidConn = nil
addcmd('antivoid', {}, function(args, speaker)
if antiVoidConn then antiVoidConn:Disconnect() antiVoidConn = nil
return notify('Anti Void','OFF') end
antiVoidConn = RunService.Heartbeat:Connect(function()
local r = getRoot(speaker.Character)
if r and r.Position.Y < -50 then
r.CFrame = CFrame.new(r.Position.X, 100, r.Position.Z)
end
end)
notify('Anti Void', 'ON - teleporting up if below Y=-50')
end)
-- namespoof [name] / unnamespoof - Spoof your display name visually
nameSpoofConn = nil
addcmd('namespoof', {}, function(args, speaker)
local newName = args[1] or 'Arc Yield User'
if not speaker.Character then return end
local head = speaker.Character:FindFirstChild('Head')
if not head then return end
-- Remove old spoof
local old = head:FindFirstChild('ArcNameSpoof')
if old then old:Destroy() end
local bb = Instance.new('BillboardGui')
bb.Name = 'ArcNameSpoof'
bb.Adornee = head
bb.Size = UDim2.new(0, 200, 0, 50)
bb.StudsOffset = Vector3.new(0, 2.5, 0)
bb.AlwaysOnTop = true
bb.MaxDistance = 100
bb.Parent = head
local txt = Instance.new('TextLabel')
txt.Size = UDim2.new(1, 0, 1, 0)
txt.BackgroundTransparency = 1
txt.Text = newName
txt.TextColor3 = Color3.fromRGB(255, 255, 255)
txt.TextStrokeColor3 = Color3.fromRGB(0, 100, 255)
txt.TextStrokeTransparency = 0
txt.Font = Enum.Font.GothamBold
txt.TextScaled = true
txt.Parent = bb
notify('Name Spoof', 'Display name: ' .. newName)
end)
addcmd('unnamespoof', {}, function(args, speaker)
if speaker.Character then
local head = speaker.Character:FindFirstChild('Head')
if head then
local old = head:FindFirstChild('ArcNameSpoof')
if old then old:Destroy() end
end
end
notify('Name Spoof', 'OFF')
end)
-- godmode / ungodmode - Set WalkSpeed and JumpPower high + regen health
godmodeConn = nil
addcmd('godmode', {}, function(args, speaker)
if godmodeConn then godmodeConn:Disconnect() godmodeConn = nil
return notify('God Mode','OFF') end
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then
h.MaxHealth = math.huge
h.Health = math.huge
h.WalkSpeed = 50
h.JumpPower = 100
end
godmodeConn = RunService.Heartbeat:Connect(function()
local hum = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if hum then hum.Health = hum.MaxHealth end
end)
notify('God Mode', 'ON - infinite HP, speed 50, jump 100')
end)
-- noclip hold - Hold E to noclip
noclipConn = nil
addcmd('noclip', {}, function(args, speaker)
if noclipConn then noclipConn:Disconnect() noclipConn = nil
return notify('Noclip','OFF') end
noclipConn = RunService.Stepped:Connect(function()
if speaker.Character then
for _, p in pairs(speaker.Character:GetDescendants()) do
if p:IsA('BasePart') then p.CanCollide = false end
end
end
end)
notify('Noclip', 'ON - walk through walls')
end)
-- ======================== SERVERSIDED COMMANDS ========================
-- TRUE serversided: UNANCHORED parts + Heartbeat teleport (physics engine replicates to ALL players)
-- NO WeldConstraints (client-only, don't replicate)
-- Central tracker: one Stepped loop moves ALL ss parts every frame
ssTracker = {} -- {part, targetRef, offsetCFrame}
ssTrackerConn = nil
local function ssStartTracker()
if ssTrackerConn then return end
ssTrackerConn = RunService.Stepped:Connect(function()
for _, entry in pairs(ssTracker) do
if entry.part and entry.part.Parent then
local target = entry.getTarget()
if target and target.Parent then
entry.part.CFrame = target.CFrame * entry.offset
entry.part.AssemblyLinearVelocity = Vector3.zero
entry.part.AssemblyAngularVelocity = Vector3.zero
end
end
end
end)
end
local function ssStopTracker()
if ssTrackerConn then ssTrackerConn:Disconnect() ssTrackerConn = nil end
ssTracker = {}
end
local function ssTrack(part, targetGetter, offset)
ssStartTracker()
table.insert(ssTracker, {part = part, getTarget = targetGetter, offset = offset or CFrame.new()})
end
local function ssUntrack(part)
for i, entry in pairs(ssTracker) do
if entry.part == part then table.remove(ssTracker, i) break end
end
end
-- Helper: create an unanchored neon part
local function ssMakePart(name, size, color, material)
local p = Instance.new("Part")
p.Name = name
p.Size = size or Vector3.new(1,1,1)
p.Color = color or Color3.fromRGB(0, 100, 255)
p.Material = material or Enum.Material.Neon
p.CanCollide = false
p.Anchored = false
p.CastShadow = false
p.Parent = workspace
return p
end
local function ssParseColor(args)
if args and args[1] and type(args[1]) == 'string' and args[1]:find('#') then
local ok, c = pcall(function() return Color3.fromHex(args[1]) end)
if ok then return c end
end
return nil
end
-- sshat - Serversided hat (unanchored, follows head)
ssHatPart = nil
addcmd('sshat', {}, function(args, speaker)
if ssHatPart and ssHatPart.Parent then ssHatPart:Destroy() ssHatPart = nil end
local char = speaker.Character
if not char then return end
local head = char:FindFirstChild('Head')
if not head then return end
local hatColor = ssParseColor(args) or Color3.fromRGB(0, 100, 255)
ssHatPart = ssMakePart('ArcYieldHat', Vector3.new(2, 0.5, 2), hatColor)
ssHatPart.Shape = Enum.PartType.Cylinder
ssHatPart.CFrame = head.CFrame * CFrame.new(0, 1.5, 0) * CFrame.Angles(0, 0, math.rad(90))
ssTrack(ssHatPart, function()
local c = speaker.Character
return c and c:FindFirstChild('Head')
end, CFrame.new(0, 1.5, 0) * CFrame.Angles(0, 0, math.rad(90)))
notify('SS Hat', 'Serversided hat ON! (unanchored)')
end)
addcmd('unsshat', {}, function(args, speaker)
if ssHatPart then ssUntrack(ssHatPart) pcall(function() ssHatPart:Destroy() end) ssHatPart = nil end
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldHat' then v:Destroy() end end end)
notify('SS Hat', 'Removed')
end)
-- sscape - Serversided cape (unanchored, follows root)
ssCapeParts = {}
addcmd('sscape', {}, function(args, speaker)
for _, v in pairs(ssCapeParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssCapeParts = {}
local char = speaker.Character
if not char then return end
local root = char:FindFirstChild('HumanoidRootPart') or char:FindFirstChild('Torso')
if not root then return end
local capeColor = ssParseColor(args) or Color3.fromRGB(0, 100, 255)
local mainPart = ssMakePart('ArcYieldCape', Vector3.new(2, 3, 0.1), capeColor)
mainPart.CFrame = root.CFrame * CFrame.new(0, -0.5, 0.5)
ssTrack(mainPart, function()
local c = speaker.Character
return c and (c:FindFirstChild('HumanoidRootPart') or c:FindFirstChild('Torso'))
end, CFrame.new(0, -0.5, 0.5))
table.insert(ssCapeParts, mainPart)
for i = 1, 3 do
local stripe = ssMakePart('ArcYieldCape', Vector3.new(2, 0.1, 0.15), Color3.fromRGB(255, 255, 255))
stripe.CFrame = root.CFrame * CFrame.new(0, -0.5 - i * 0.8, 0.5)
ssTrack(stripe, function()
local c = speaker.Character
return c and (c:FindFirstChild('HumanoidRootPart') or c:FindFirstChild('Torso'))
end, CFrame.new(0, -0.5 - i * 0.8, 0.5))
table.insert(ssCapeParts, stripe)
end
notify('SS Cape', 'Serversided cape ON! (unanchored)')
end)
addcmd('unsscape', {}, function(args, speaker)
for _, v in pairs(ssCapeParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssCapeParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldCape' then v:Destroy() end end end)
notify('SS Cape', 'Removed')
end)
-- sswing - Serversided wings (unanchored, follows root)
ssWingParts = {}
addcmd('sswing', {}, function(args, speaker)
for _, v in pairs(ssWingParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssWingParts = {}
local char = speaker.Character
if not char then return end
local root = char:FindFirstChild('HumanoidRootPart') or char:FindFirstChild('Torso')
if not root then return end
local wingColor = ssParseColor(args) or Color3.fromRGB(255, 255, 255)
for side = -1, 1, 2 do
for i = 1, 5 do
local feather = ssMakePart('ArcYieldWing', Vector3.new(3 - i * 0.3, 0.3, 0.05), wingColor)
feather.Transparency = i * 0.1
feather.CFrame = root.CFrame * CFrame.new(side * (1 + i * 0.5), 0.5 + i * 0.3, -0.5) * CFrame.Angles(0, 0, side * math.rad(10 + i * 5))
local offset = CFrame.new(side * (1 + i * 0.5), 0.5 + i * 0.3, -0.5) * CFrame.Angles(0, 0, side * math.rad(10 + i * 5))
ssTrack(feather, function()
local c = speaker.Character
return c and (c:FindFirstChild('HumanoidRootPart') or c:FindFirstChild('Torso'))
end, offset)
table.insert(ssWingParts, feather)
end
end
notify('SS Wings', 'Serversided wings ON! (unanchored)')
end)
addcmd('unsswing', {}, function(args, speaker)
for _, v in pairs(ssWingParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssWingParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldWing' then v:Destroy() end end end)
notify('SS Wings', 'Removed')
end)
-- ssring - Serversided ring on ground (unanchored, follows you)
ssRingPart = nil
ssRingConn = nil
addcmd('ssring', {}, function(args, speaker)
if ssRingConn then ssRingConn:Disconnect() ssRingConn = nil end
if ssRingPart and ssRingPart.Parent then ssRingPart:Destroy() end
local ringColor = ssParseColor(args) or Color3.fromRGB(0, 100, 255)
ssRingPart = ssMakePart('ArcYieldRing', Vector3.new(0.2, 20, 20), ringColor)
ssRingPart.Shape = Enum.PartType.Cylinder
ssRingPart.Transparency = 0.3
local r = getRoot(speaker.Character)
if r then ssRingPart.CFrame = r.CFrame * CFrame.new(0, -3, 0) * CFrame.Angles(0, 0, math.rad(90)) end
ssRingConn = RunService.Stepped:Connect(function()
if not ssRingPart or not ssRingPart.Parent then ssRingConn:Disconnect() return end
local root = getRoot(speaker.Character)
if root then
ssRingPart.CFrame = root.CFrame * CFrame.new(0, -3, 0) * CFrame.Angles(0, 0, math.rad(90))
ssRingPart.AssemblyLinearVelocity = Vector3.zero
ssRingPart.AssemblyAngularVelocity = Vector3.zero
end
end)
notify('SS Ring', 'Serversided ring ON! (unanchored)')
end)
addcmd('unssring', {}, function(args, speaker)
if ssRingConn then ssRingConn:Disconnect() ssRingConn = nil end
if ssRingPart and ssRingPart.Parent then ssRingPart:Destroy() ssRingPart = nil end
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldRing' then v:Destroy() end end end)
notify('SS Ring', 'Removed')
end)
-- sslight - Serversided light (unanchored, follows root)
ssLightObj = nil
addcmd('sslight', {}, function(args, speaker)
if ssLightObj and ssLightObj.Parent then ssLightObj:Destroy() ssLightObj = nil end
local lightColor = ssParseColor(args) or Color3.fromRGB(0, 100, 255)
ssLightObj = ssMakePart('ArcYieldLight', Vector3.new(0.5, 0.5, 0.5), lightColor)
ssLightObj.Transparency = 1
local pl = Instance.new('PointLight')
pl.Color = lightColor
pl.Brightness = 5
pl.Range = 60
pl.Shadows = true
pl.Parent = ssLightObj
ssTrack(ssLightObj, function()
local c = speaker.Character
return c and (c:FindFirstChild('HumanoidRootPart') or c:FindFirstChild('Torso'))
end, CFrame.new())
notify('SS Light', 'Serversided light ON! (unanchored)')
end)
addcmd('unsslight', {}, function(args, speaker)
if ssLightObj then ssUntrack(ssLightObj) pcall(function() ssLightObj:Destroy() end) ssLightObj = nil end
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldLight' then v:Destroy() end end end)
notify('SS Light', 'Removed')
end)
-- ssparticles - Serversided particles on your character
ssParticleParts = {}
addcmd('ssparticles', {}, function(args, speaker)
for _, v in pairs(ssParticleParts) do pcall(function() v:Destroy() end) end
ssParticleParts = {}
local char = speaker.Character
if not char then return end
local pColor = ssParseColor(args) or Color3.fromRGB(0, 150, 255)
for _, part in pairs(char:GetChildren()) do
if part:IsA('BasePart') then
local em = Instance.new('ParticleEmitter')
em.Color = ColorSequence.new(pColor, Color3.fromRGB(255, 255, 255))
em.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.5), NumberSequenceKeypoint.new(1, 0)})
em.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.5), NumberSequenceKeypoint.new(1, 1)})
em.Lifetime = NumberRange.new(1, 2)
em.Rate = 20
em.Speed = NumberRange.new(2, 5)
em.SpreadAngle = Vector2.new(180, 180)
em.LightEmission = 1
em.Parent = part
table.insert(ssParticleParts, em)
end
end
notify('SS Particles', 'Serversided particles ON!')
end)
addcmd('unssparticles', {}, function(args, speaker)
for _, v in pairs(ssParticleParts) do pcall(function() v:Destroy() end) end
ssParticleParts = {}
notify('SS Particles', 'Removed')
end)
-- ssmusic - Serversided sound (anchored invisible part is fine for sound replication)
ssMusicObj = nil
addcmd('ssmusic', {}, function(args, speaker)
if ssMusicObj and ssMusicObj.Parent then ssMusicObj:Destroy() ssMusicObj = nil end
local soundId = args[1] or '6895079853'
local soundPart = Instance.new('Part')
soundPart.Name = 'ArcYieldMusic'
soundPart.Size = Vector3.new(0.5, 0.5, 0.5)
soundPart.Transparency = 1
soundPart.CanCollide = false
soundPart.Anchored = false
local r = getRoot(speaker.Character)
if r then soundPart.Position = r.Position end
soundPart.Parent = workspace
local snd = Instance.new('Sound')
snd.Name = 'ArcYieldSnd'
snd.SoundId = 'rbxassetid://' .. soundId
snd.Volume = 1
snd.Looped = true
snd.PlaybackSpeed = 1
snd.Parent = soundPart
snd:Play()
-- Follow player via tracker
ssTrack(soundPart, function()
local c = speaker.Character
return c and (c:FindFirstChild('HumanoidRootPart') or c:FindFirstChild('Torso'))
end, CFrame.new())
ssMusicObj = soundPart
notify('SS Music', 'Serversided music ON! (unanchored)')
end)
addcmd('unssmusic', {}, function(args, speaker)
if ssMusicObj then ssUntrack(ssMusicObj) pcall(function() ssMusicObj:Destroy() end) ssMusicObj = nil end
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldMusic' then v:Destroy() end end end)
notify('SS Music', 'Removed')
end)
-- ssmsg - Serversided floating message (static position, unanchored so it replicates)
ssMsgParts = {}
addcmd('ssmsg', {}, function(args, speaker)
local msg = table.concat(args, ' ')
if msg == '' then msg = 'Arc Yield' end
local char = speaker.Character
if not char then return end
local r = getRoot(char)
if not r then return end
local msgPart = Instance.new('Part')
msgPart.Name = 'ArcYieldMsg'
msgPart.Size = Vector3.new(10, 3, 0.2)
msgPart.Color = Color3.fromRGB(0, 0, 30)
msgPart.Material = Enum.Material.Neon
msgPart.CanCollide = false
msgPart.Anchored = false
msgPart.CastShadow = false
msgPart.CFrame = r.CFrame * CFrame.new(0, 8, -5)
msgPart.Parent = workspace
local sg = Instance.new('SurfaceGui')
sg.Name = 'ArcYieldSG'
sg.Face = Enum.NormalId.Front
sg.Parent = msgPart
local txt = Instance.new('TextLabel')
txt.Size = UDim2.new(1, 0, 1, 0)
txt.BackgroundTransparency = 1
txt.Text = msg
txt.TextColor3 = Color3.fromRGB(0, 150, 255)
txt.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
txt.TextStrokeTransparency = 0
txt.Font = Enum.Font.GothamBold
txt.TextScaled = true
txt.Parent = sg
-- Keep it in place (unanchored so physics engine replicates)
ssTrack(msgPart, function() return msgPart end, CFrame.new())
-- Lock velocity so it doesn't fall
local conn = RunService.Stepped:Connect(function()
if not msgPart or not msgPart.Parent then conn:Disconnect() return end
msgPart.AssemblyLinearVelocity = Vector3.zero
msgPart.AssemblyAngularVelocity = Vector3.zero
end)
table.insert(ssMsgParts, msgPart)
notify('SS Message', 'Serversided message placed! (unanchored)')
end)
addcmd('unssmsg', {}, function(args, speaker)
for _, v in pairs(ssMsgParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssMsgParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldMsg' then v:Destroy() end end end)
notify('SS Messages', 'All removed')
end)
-- sscrosshair - Serversided crosshair (unanchored, follows head)
ssCrossParts = {}
addcmd('sscrosshair', {}, function(args, speaker)
for _, v in pairs(ssCrossParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssCrossParts = {}
local char = speaker.Character
if not char then return end
local head = char:FindFirstChild('Head')
if not head then return end
-- Horizontal bar
local hbar = ssMakePart('ArcYieldCross', Vector3.new(3, 0.3, 0.1), Color3.fromRGB(255, 0, 0))
hbar.CFrame = head.CFrame * CFrame.new(0, 0, -1)
ssTrack(hbar, function()
local c = speaker.Character
return c and c:FindFirstChild('Head')
end, CFrame.new(0, 0, -1))
table.insert(ssCrossParts, hbar)
-- Vertical bar
local vbar = ssMakePart('ArcYieldCross', Vector3.new(0.3, 3, 0.1), Color3.fromRGB(255, 0, 0))
vbar.CFrame = head.CFrame * CFrame.new(0, 0, -1)
ssTrack(vbar, function()
local c = speaker.Character
return c and c:FindFirstChild('Head')
end, CFrame.new(0, 0, -1))
table.insert(ssCrossParts, vbar)
notify('SS Crosshair', 'Serversided crosshair ON! (unanchored)')
end)
addcmd('unsscrosshair', {}, function(args, speaker)
for _, v in pairs(ssCrossParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssCrossParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldCross' then v:Destroy() end end end)
notify('SS Crosshair', 'Removed')
end)
-- ssarrow - Serversided arrow (unanchored, points to nearest player)
ssArrowPart = nil
ssArrowConn = nil
addcmd('ssarrow', {}, function(args, speaker)
if ssArrowConn then ssArrowConn:Disconnect() ssArrowConn = nil end
if ssArrowPart and ssArrowPart.Parent then ssArrowPart:Destroy() end
ssArrowPart = ssMakePart('ArcYieldArrow', Vector3.new(1, 0.5, 3), Color3.fromRGB(255, 50, 50))
ssArrowConn = RunService.Stepped:Connect(function()
if not ssArrowPart or not ssArrowPart.Parent then ssArrowConn:Disconnect() return end
local myRoot = getRoot(speaker.Character)
if not myRoot then return end
local nearest = nil
local nearestDist = math.huge
for _, p in pairs(Players:GetPlayers()) do
if p ~= speaker and p.Character then
local pRoot = p.Character:FindFirstChild('HumanoidRootPart')
if pRoot then
local d = (pRoot.Position - myRoot.Position).Magnitude
if d < nearestDist then nearestDist = d nearest = pRoot end
end
end
end
if nearest then
local dir = (nearest.Position - myRoot.Position).Unit
ssArrowPart.CFrame = CFrame.new(myRoot.Position + dir * 5, nearest.Position)
ssArrowPart.AssemblyLinearVelocity = Vector3.zero
ssArrowPart.AssemblyAngularVelocity = Vector3.zero
end
end)
notify('SS Arrow', 'Serversided arrow ON! (unanchored)')
end)
addcmd('unssarrow', {}, function(args, speaker)
if ssArrowConn then ssArrowConn:Disconnect() ssArrowConn = nil end
if ssArrowPart and ssArrowPart.Parent then ssArrowPart:Destroy() ssArrowPart = nil end
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldArrow' then v:Destroy() end end end)
notify('SS Arrow', 'Removed')
end)
-- ssorb - Serversided orbiting balls (unanchored, physics replicates)
ssOrbParts = {}
ssOrbConn = nil
addcmd('ssorb', {}, function(args, speaker)
if ssOrbConn then ssOrbConn:Disconnect() ssOrbConn = nil end
for _, v in pairs(ssOrbParts) do pcall(function() v:Destroy() end) end
ssOrbParts = {}
local orbColor = ssParseColor(args) or Color3.fromRGB(0, 150, 255)
for i = 1, 6 do
local orb = ssMakePart('ArcYieldOrb', Vector3.new(0.8, 0.8, 0.8), orbColor)
orb.Shape = Enum.PartType.Ball
local pl = Instance.new('PointLight')
pl.Color = orbColor
pl.Brightness = 2
pl.Range = 15
pl.Parent = orb
table.insert(ssOrbParts, orb)
end
local t = 0
ssOrbConn = RunService.Stepped:Connect(function(dt)
t = t + dt * 3
local myRoot = getRoot(speaker.Character)
if not myRoot then return end
for i, orb in pairs(ssOrbParts) do
if orb and orb.Parent then
local a = t + (i * math.pi * 2 / #ssOrbParts)
local r = 5
orb.CFrame = CFrame.new(myRoot.Position + Vector3.new(math.cos(a) * r, math.sin(a * 0.7) * 2, math.sin(a) * r))
orb.AssemblyLinearVelocity = Vector3.zero
orb.AssemblyAngularVelocity = Vector3.zero
end
end
end)
notify('SS Orbs', '6 serversided orbiting balls ON! (unanchored)')
end)
addcmd('unssorb', {}, function(args, speaker)
if ssOrbConn then ssOrbConn:Disconnect() ssOrbConn = nil end
for _, v in pairs(ssOrbParts) do pcall(function() v:Destroy() end) end
ssOrbParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldOrb' then v:Destroy() end end end)
notify('SS Orbs', 'Removed')
end)
-- ssfloating - Serversided floating text above YOUR head (unanchored)
ssFloatingPart = nil
addcmd('ssfloating', {}, function(args, speaker)
if ssFloatingPart and ssFloatingPart.Parent then ssFloatingPart:Destroy() ssFloatingPart = nil end
local msg = table.concat(args, ' ')
if msg == '' then msg = 'Arc Yield User' end
local char = speaker.Character
if not char then return end
local head = char:FindFirstChild('Head')
if not head then return end
ssFloatingPart = Instance.new('Part')
ssFloatingPart.Name = 'ArcYieldFloat'
ssFloatingPart.Size = Vector3.new(0.1, 0.1, 0.1)
ssFloatingPart.Transparency = 1
ssFloatingPart.CanCollide = false
ssFloatingPart.Anchored = false
ssFloatingPart.Position = head.Position + Vector3.new(0, 3, 0)
ssFloatingPart.Parent = workspace
local bb = Instance.new('BillboardGui')
bb.Name = 'ArcFloatBB'
bb.Adornee = ssFloatingPart
bb.Size = UDim2.new(0, 200, 0, 50)
bb.StudsOffset = Vector3.new(0, 2, 0)
bb.AlwaysOnTop = true
bb.Parent = ssFloatingPart
local txt = Instance.new('TextLabel')
txt.Size = UDim2.new(1, 0, 1, 0)
txt.BackgroundTransparency = 1
txt.Text = msg
txt.TextColor3 = Color3.fromRGB(0, 200, 255)
txt.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
txt.TextStrokeTransparency = 0
txt.Font = Enum.Font.GothamBold
txt.TextScaled = true
txt.Parent = bb
ssTrack(ssFloatingPart, function()
local c = speaker.Character
return c and c:FindFirstChild('Head')
end, CFrame.new(0, 3, 0))
notify('SS Floating', 'Serversided floating text ON! (unanchored)')
end)
addcmd('unssfloating', {}, function(args, speaker)
if ssFloatingPart then ssUntrack(ssFloatingPart) pcall(function() ssFloatingPart:Destroy() end) ssFloatingPart = nil end
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldFloat' then v:Destroy() end end end)
notify('SS Floating', 'Removed')
end)
-- ssaura - Serversided aura (unanchored, physics replicates)
ssAuraParts = {}
ssAuraConn = nil
addcmd('ssaura', {}, function(args, speaker)
if ssAuraConn then ssAuraConn:Disconnect() ssAuraConn = nil end
for _, v in pairs(ssAuraParts) do pcall(function() v:Destroy() end) end
ssAuraParts = {}
local auraColor = ssParseColor(args) or Color3.fromRGB(0, 100, 255)
for i = 1, 8 do
local p = ssMakePart('ArcYieldAura', Vector3.new(0.6, 0.6, 0.6), auraColor)
p.Shape = Enum.PartType.Ball
p.Transparency = 0.3
table.insert(ssAuraParts, p)
end
local t = 0
ssAuraConn = RunService.Stepped:Connect(function(dt)
t = t + dt * 2
local myRoot = getRoot(speaker.Character)
if not myRoot then return end
for i, p in pairs(ssAuraParts) do
if p and p.Parent then
local a = t + (i * math.pi * 2 / #ssAuraParts)
local sz = 0.6 + math.sin(t + i) * 0.2
p.CFrame = CFrame.new(myRoot.Position + Vector3.new(math.cos(a) * 3, math.sin(t * 2 + i) * 0.5, math.sin(a) * 3))
p.Size = Vector3.new(sz, sz, sz)
p.AssemblyLinearVelocity = Vector3.zero
p.AssemblyAngularVelocity = Vector3.zero
end
end
end)
notify('SS Aura', 'Serversided aura ON! (unanchored)')
end)
addcmd('unssaura', {}, function(args, speaker)
if ssAuraConn then ssAuraConn:Disconnect() ssAuraConn = nil end
for _, v in pairs(ssAuraParts) do pcall(function() v:Destroy() end) end
ssAuraParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldAura' then v:Destroy() end end end)
notify('SS Aura', 'Removed')
end)
-- sscrown - Serversided crown (unanchored, follows head)
ssCrownParts = {}
addcmd('sscrown', {}, function(args, speaker)
for _, v in pairs(ssCrownParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssCrownParts = {}
local char = speaker.Character
if not char then return end
local head = char:FindFirstChild('Head')
if not head then return end
-- Base
local base = ssMakePart('ArcYieldCrown', Vector3.new(1.5, 0.5, 1.5), Color3.fromRGB(255, 215, 0))
base.CFrame = head.CFrame * CFrame.new(0, 1.2, 0)
ssTrack(base, function()
local c = speaker.Character
return c and c:FindFirstChild('Head')
end, CFrame.new(0, 1.2, 0))
table.insert(ssCrownParts, base)
-- Spikes
for i = 1, 5 do
local spike = ssMakePart('ArcYieldCrown', Vector3.new(0.2, 0.8, 0.2), Color3.fromRGB(255, 215, 0))
local angle = (i - 3) * 0.3
spike.CFrame = head.CFrame * CFrame.new(angle, 1.7, 0)
ssTrack(spike, function()
local c = speaker.Character
return c and c:FindFirstChild('Head')
end, CFrame.new(angle, 1.7, 0))
table.insert(ssCrownParts, spike)
end
notify('SS Crown', 'Serversided golden crown ON! (unanchored)')
end)
addcmd('unsscrown', {}, function(args, speaker)
for _, v in pairs(ssCrownParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssCrownParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldCrown' then v:Destroy() end end end)
notify('SS Crown', 'Removed')
end)
-- sstrail - Serversided trail (unanchored balls left behind, physics replicates)
ssTrailParts = {}
ssTrailConn = nil
ssTrailIndex = 0
addcmd('sstrail', {}, function(args, speaker)
if ssTrailConn then ssTrailConn:Disconnect() ssTrailConn = nil end
for _, v in pairs(ssTrailParts) do pcall(function() v:Destroy() end) end
ssTrailParts = {}
ssTrailIndex = 0
local trailColor = ssParseColor(args) or Color3.fromRGB(0, 100, 255)
ssTrailConn = RunService.Heartbeat:Connect(function()
local myRoot = getRoot(speaker.Character)
if not myRoot then return end
ssTrailIndex = ssTrailIndex + 1
if ssTrailIndex % 3 == 0 then
local trailPart = Instance.new('Part')
trailPart.Name = 'ArcYieldTrail'
trailPart.Shape = Enum.PartType.Ball
trailPart.Size = Vector3.new(0.5, 0.5, 0.5)
trailPart.Color = trailColor
trailPart.Material = Enum.Material.Neon
trailPart.CanCollide = false
trailPart.Anchored = false
trailPart.CastShadow = false
trailPart.Position = myRoot.Position
trailPart.Parent = workspace
-- Freeze it in place (unanchored but velocity zero = physics replicates position)
trailPart.AssemblyLinearVelocity = Vector3.zero
trailPart.AssemblyAngularVelocity = Vector3.zero
table.insert(ssTrailParts, trailPart)
task.delay(3, function()
pcall(function() trailPart:Destroy() end)
end)
while #ssTrailParts > 100 do
local old = table.remove(ssTrailParts, 1)
pcall(function() if old and old.Parent then old:Destroy() end end)
end
end
end)
notify('SS Trail', 'Serversided trail ON! (unanchored)')
end)
addcmd('unsstrail', {}, function(args, speaker)
if ssTrailConn then ssTrailConn:Disconnect() ssTrailConn = nil end
for _, v in pairs(ssTrailParts) do pcall(function() v:Destroy() end) end
ssTrailParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldTrail' then v:Destroy() end end end)
notify('SS Trail', 'Removed')
end)
-- ssexplode [player] - Serversided explosion (unanchored explosion = physics replicates)
addcmd('ssexplode', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('SS Explode','Player not found') end
local r = target.Character:FindFirstChild('HumanoidRootPart')
if not r then return end
local e = Instance.new('Explosion')
e.Position = r.Position
e.BlastRadius = 30
e.BlastPressure = 500000
e.Parent = workspace
notify('SS Explode', 'Serversided explosion on ' .. target.Name .. '!')
end)
-- ssblock [player] - Serversided cage (unanchored walls = physics replicates)
ssBlockParts = {}
addcmd('ssblock', {}, function(args, speaker)
for _, v in pairs(ssBlockParts) do pcall(function() v:Destroy() end) end
ssBlockParts = {}
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('SS Block','Player not found') end
local r = target.Character:FindFirstChild('HumanoidRootPart')
if not r then return end
local size = 8
local wt = 0.5
local walls = {
{Vector3.new(size, size, wt), CFrame.new(0, size/2, -size/2)},
{Vector3.new(size, size, wt), CFrame.new(0, size/2, size/2)},
{Vector3.new(wt, size, size), CFrame.new(-size/2, size/2, 0)},
{Vector3.new(wt, size, size), CFrame.new(size/2, size/2, 0)},
{Vector3.new(size, wt, size), CFrame.new(0, size, 0)},
{Vector3.new(size, wt, size), CFrame.new(0, 0, 0)},
}
for _, wd in ipairs(walls) do
local wall = Instance.new('Part')
wall.Name = 'ArcYieldBlock'
wall.Size = wd[1]
wall.Color = Color3.fromRGB(0, 100, 255)
wall.Material = Enum.Material.ForceField
wall.Transparency = 0.4
wall.CanCollide = true
wall.Anchored = false
wall.CastShadow = false
wall.CFrame = r.CFrame * wd[2]
wall.Parent = workspace
wall.AssemblyLinearVelocity = Vector3.zero
wall.AssemblyAngularVelocity = Vector3.zero
table.insert(ssBlockParts, wall)
end
notify('SS Block', 'Serversided cage around ' .. target.Name .. '! (unanchored)')
end)
addcmd('unssblock', {}, function(args, speaker)
for _, v in pairs(ssBlockParts) do pcall(function() v:Destroy() end) end
ssBlockParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldBlock' then v:Destroy() end end end)
notify('SS Block', 'Cage removed')
end)
-- ssflag - Serversided flag (unanchored, follows head)
ssFlagParts = {}
addcmd('ssflag', {}, function(args, speaker)
for _, v in pairs(ssFlagParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssFlagParts = {}
local char = speaker.Character
if not char then return end
local head = char:FindFirstChild('Head')
if not head then return end
local flagColor = ssParseColor(args) or Color3.fromRGB(0, 100, 255)
-- Pole
local pole = ssMakePart('ArcYieldFlag', Vector3.new(0.2, 6, 0.2), Color3.fromRGB(200, 200, 200), Enum.Material.SmoothPlastic)
pole.CFrame = head.CFrame * CFrame.new(0, 3, 0)
ssTrack(pole, function()
local c = speaker.Character
return c and c:FindFirstChild('Head')
end, CFrame.new(0, 3, 0))
table.insert(ssFlagParts, pole)
-- Flag fabric
local flag = ssMakePart('ArcYieldFlag', Vector3.new(3, 2, 0.1), flagColor)
flag.CFrame = head.CFrame * CFrame.new(1.5, 5, 0)
ssTrack(flag, function()
local c = speaker.Character
return c and c:FindFirstChild('Head')
end, CFrame.new(1.5, 5, 0))
table.insert(ssFlagParts, flag)
notify('SS Flag', 'Serversided flag ON! (unanchored)')
end)
addcmd('unssflag', {}, function(args, speaker)
for _, v in pairs(ssFlagParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssFlagParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldFlag' then v:Destroy() end end end)
notify('SS Flag', 'Removed')
end)
-- sshalo - Serversided halo (unanchored, follows head)
ssHaloParts = {}
addcmd('sshalo', {}, function(args, speaker)
for _, v in pairs(ssHaloParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssHaloParts = {}
local char = speaker.Character
if not char then return end
local head = char:FindFirstChild('Head')
if not head then return end
local halo = ssMakePart('ArcYieldHalo', Vector3.new(0.3, 2.5, 2.5), Color3.fromRGB(255, 215, 0))
halo.Shape = Enum.PartType.Cylinder
halo.CFrame = head.CFrame * CFrame.new(0, 1.5, 0) * CFrame.Angles(math.rad(90), 0, 0)
ssTrack(halo, function()
local c = speaker.Character
return c and c:FindFirstChild('Head')
end, CFrame.new(0, 1.5, 0) * CFrame.Angles(math.rad(90), 0, 0))
table.insert(ssHaloParts, halo)
notify('SS Halo', 'Serversided halo ON! (unanchored)')
end)
addcmd('unsshalo', {}, function(args, speaker)
for _, v in pairs(ssHaloParts) do ssUntrack(v) pcall(function() v:Destroy() end) end
ssHaloParts = {}
pcall(function() for _,v in pairs(workspace:GetChildren()) do if v.Name=='ArcYieldHalo' then v:Destroy() end end end)
notify('SS Halo', 'Removed')
end)
-- cleanupss - Remove ALL serversided Arc Yield objects from workspace
addcmd('cleanupss', {'clearss'}, function(args, speaker)
local count = 0
for _, obj in pairs(workspace:GetChildren()) do
if obj.Name:find('ArcYield') then
pcall(function() obj:Destroy() end)
count = count + 1
end
end
ssStopTracker()
ssHatPart = nil ssCapeParts = {} ssWingParts = {} ssRingPart = nil
ssLightObj = nil ssParticleParts = {} ssMusicObj = nil ssMsgParts = {}
ssFloatingPart = nil ssAuraParts = {} ssCrownParts = {} ssTrailParts = {}
ssBlockParts = {} ssFlagParts = {} ssHaloParts = {} ssCrossParts = {}
for _, conn in pairs({ssRingConn, ssOrbConn, ssAuraConn, ssTrailConn, ssArrowConn}) do
if conn then pcall(function() conn:Disconnect() end) end
end
ssRingConn = nil ssOrbConn = nil ssAuraConn = nil ssTrailConn = nil ssArrowConn = nil
notify('Cleanup SS', 'Removed ' .. count .. ' serversided objects!')
end)
-- ======================== WORKING HUBS ========================
-- cloud (Cloud Hub)
addcmd('cloud', {}, function(args, speaker)
notify('Arc Yield', 'Loading Cloud Hub...')
local s, e = pcall(function()
loadstring(game:HttpGet('https://raw.githubusercontent.com/BokuNoJutsu/Cloud/main/Loader'))()
end)
if not s then notify('Arc Yield', 'Failed: ' .. tostring(e)) end
end)
-- fluxus hub
addcmd('fluxus', {}, function(args, speaker)
notify('Arc Yield', 'Loading Fluxus Hub...')
local s, e = pcall(function()
loadstring(game:HttpGet('https://raw.githubusercontent.com/znixian/FluxusUI/main/Fluxus'))()
end)
if not s then notify('Arc Yield', 'Failed: ' .. tostring(e)) end
end)
-- unnamed hub
addcmd('unnamed', {}, function(args, speaker)
notify('Arc Yield', 'Loading Unnamed Hub...')
local s, e = pcall(function()
loadstring(game:HttpGet('https://raw.githubusercontent.com/yofriendfromschool1/Unnamed-Roblox-Script/main/Unnamed_ESP_V2'))()
end)
if not s then notify('Arc Yield', 'Failed: ' .. tostring(e)) end
end)
-- janitor (cleanup hub)
addcmd('janitor', {}, function(args, speaker)
notify('Arc Yield', 'Loading Janitor...')
local s, e = pcall(function()
loadstring(game:HttpGet('https://raw.githubusercontent.com/bojjen/Janitor/main/loader.lua'))()
end)
if not s then notify('Arc Yield', 'Failed: ' .. tostring(e)) end
end)
-- oxygen hub
addcmd('oxygen', {'oxyhub'}, function(args, speaker)
notify('Arc Yield', 'Loading Oxygen Hub...')
local s, e = pcall(function()
loadstring(game:HttpGet('https://raw.githubusercontent.com/vencloud/Oxygen/main/loader'))()
end)
if not s then notify('Arc Yield', 'Failed: ' .. tostring(e)) end
end)
-- lynx hub
addcmd('lynx', {}, function(args, speaker)
notify('Arc Yield', 'Loading Lynx Hub...')
local s, e = pcall(function()
loadstring(game:HttpGet('https://raw.githubusercontent.com/LynxScripts/LynxHub/main/Loader'))()
end)
if not s then notify('Arc Yield', 'Failed: ' .. tostring(e)) end
end)
-- ======================== MORE COOL COMMANDS ========================
-- 51. ctrlclicktp - Ctrl+Click to teleport
ctrlClickConn = nil
addcmd('ctrlclicktp', {'cctp'}, function(args, speaker)
if ctrlClickConn then ctrlClickConn:Disconnect() ctrlClickConn = nil
return notify('Ctrl Click TP','OFF') end
local u = game:GetService('UserInputService')
ctrlClickConn = u.InputBegan:Connect(function(input, gpe)
if gpe then return end
if not u:IsKeyDown(Enum.KeyCode.LeftControl) then return end
if input.UserInputType ~= Enum.UserInputType.MouseButton1 and input.UserInputType ~= Enum.UserInputType.MouseButton2 then return end
local mouse = Players.LocalPlayer:GetMouse()
local cam = workspace.CurrentCamera
local unitRay = cam:ScreenPointToRay(mouse.X, mouse.Y)
local params = RaycastParams.new()
params.FilterDescendantsInstances = {speaker.Character}
params.FilterType = Enum.RaycastFilterType.Exclude
local result = workspace:Raycast(unitRay.Origin, unitRay.Direction * 10000, params)
if result then
local r = getRoot(speaker.Character)
if r then r.CFrame = CFrame.new(result.Position + Vector3.new(0, 3, 0)) end
end
end)
notify('Ctrl Click TP', 'ON - Ctrl+Click to teleport!')
end)
-- 52. toptool - Give yourself the most powerful tool found in workspace
addcmd('toptool', {}, function(args, speaker)
local bestTool = nil
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA('Tool') then
local parentOk = true
for _, pl in pairs(Players:GetPlayers()) do
if pl.Character and pl.Character:IsAncestorOf(obj) then parentOk = false break end
end
if parentOk then bestTool = obj end
end
end
if bestTool then
bestTool:Clone().Parent = speaker.Backpack
notify('Top Tool', 'Got ' .. bestTool.Name)
else
notify('Top Tool', 'No tools found in workspace')
end
end)
-- 53. alltools - Give yourself every tool in workspace
addcmd('alltools', {}, function(args, speaker)
local count = 0
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA('Tool') then
pcall(function()
local parentOk = true
for _, pl in pairs(Players:GetPlayers()) do
if pl.Character and pl.Character:IsAncestorOf(obj) then parentOk = false break end
end
if parentOk then
obj:Clone().Parent = speaker.Backpack
count = count + 1
end
end)
end
end
notify('All Tools', 'Grabbed ' .. count .. ' tools!')
end)
-- 54. stealfly [player] - Copy another player's fly state
addcmd('stealfly', {}, function(args, speaker)
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Steal Fly','Not found') end
local r = target.Character:FindFirstChild('HumanoidRootPart')
if r then
local bav = r:FindFirstChildOfClass('BodyAngularVelocity')
local bfv = r:FindFirstChildOfClass('BodyVelocity')
if bav or bfv then
local myRoot = getRoot(speaker.Character)
if myRoot then
if bfv then
local v = Instance.new('BodyVelocity')
v.Velocity = bfv.Velocity
v.MaxForce = bfv.MaxForce
v.Parent = myRoot
end
if bav then
local a = Instance.new('BodyAngularVelocity')
a.AngularVelocity = bav.AngularVelocity
a.MaxTorque = bav.MaxTorque
a.Parent = myRoot
end
notify('Steal Fly', 'Copied fly from ' .. target.Name)
end
else
notify('Steal Fly', target.Name .. ' is not flying')
end
end
end)
-- 55. raid [player] - Spam explosions on a player
raidConn = nil
addcmd('raid', {}, function(args, speaker)
if raidConn then raidConn:Disconnect() raidConn = nil
return notify('Raid','OFF') end
local target = FindPlayer(args[1], speaker)
if not target or not target.Character then return notify('Raid','Player not found') end
raidConn = RunService.Heartbeat:Connect(function()
if not target.Character then raidConn:Disconnect() raidConn = nil return end
local r = target.Character:FindFirstChild('HumanoidRootPart')
if r then
local e = Instance.new('Explosion')
e.Position = r.Position + Vector3.new(math.random(-3,3), 0, math.random(-3,3))
e.BlastRadius = 5
e.BlastPressure = 100000
e.Parent = workspace
task.delay(1, function() pcall(function() e:Destroy() end) end)
end
end)
notify('Raid', 'Raiding ' .. target.Name .. '!')
end)
-- 56. speedrun - Sets speed to 100 + jump to 200
addcmd('speedrun', {}, function(args, speaker)
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then h.WalkSpeed = 100 h.JumpPower = 200 end
notify('Speedrun', 'Speed: 100, Jump: 200')
end)
-- 57. slow - Set speed to 5
addcmd('slow', {}, function(args, speaker)
local h = speaker.Character and speaker.Character:FindFirstChildOfClass('Humanoid')
if h then h.WalkSpeed = 5 end
notify('Slow', 'Speed: 5')
end)
-- 58. clicktp - Click to teleport (no ctrl needed)
clickTPConn = nil
addcmd('clicktp', {}, function(args, speaker)
if clickTPConn then clickTPConn:Disconnect() clickTPConn = nil
return notify('Click TP','OFF') end
local u = game:GetService('UserInputService')
clickTPConn = u.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.UserInputType ~= Enum.UserInputType.MouseButton2 then return end
local mouse = Players.LocalPlayer:GetMouse()
local cam = workspace.CurrentCamera
local unitRay = cam:ScreenPointToRay(mouse.X, mouse.Y)
local params = RaycastParams.new()
params.FilterDescendantsInstances = {speaker.Character}
params.FilterType = Enum.RaycastFilterType.Exclude
local result = workspace:Raycast(unitRay.Origin, unitRay.Direction * 10000, params)
if result then
local r = getRoot(speaker.Character)
if r then r.CFrame = CFrame.new(result.Position + Vector3.new(0, 3, 0)) end
end
end)
notify('Click TP', 'ON - Right click to teleport!')
end)
-- 59. say [msg] - Chat a message
addcmd('say', {}, function(args, speaker)
local msg = table.concat(args, ' ')
if msg ~= '' then
game:GetService('ReplicatedStorage'):FindFirstChild('DefaultChatSystemChatEvents'):FindFirstChild('SayMessageRequest'):FireServer(msg, 'All')
notify('Say', 'Sent: ' .. msg)
end
end)
-- 60. spam [msg] / unspam - Spam chat with a message
spamConn = nil
addcmd('spam', {}, function(args, speaker)
if spamConn then spamConn:Disconnect() spamConn = nil
return notify('Spam','OFF') end
local msg = table.concat(args, ' ')
if msg == '' then msg = 'Arc Yield on top! ' end
local chatRemote = game:GetService('ReplicatedStorage'):FindFirstChild('DefaultChatSystemChatEvents'):FindFirstChild('SayMessageRequest')
if not chatRemote then return notify('Spam', 'Chat system not found') end
spamConn = RunService.Heartbeat:Connect(function()
pcall(function() chatRemote:FireServer(msg .. os.clock(), 'All') end)
task.wait(1.5)
end)
notify('Spam', 'Spamming: ' .. msg)
end)
-- ======================== MASS CLEANUP ========================
addcmd('unarc', {}, function(args, speaker)
removeWalkTrail()
removeAura()
for _, l in pairs(charGlow.lights) do if l.Parent then l:Destroy() end end
charGlow = {active = false, lights = {}}
if charHighlight.obj and charHighlight.obj.Parent then charHighlight.obj:Destroy() end
charHighlight = {active = false}
wireframeState = false
floatState.active = false
if floatState.conn then floatState.conn:Disconnect() end
if spinCharState.bav and spinCharState.bav.Parent then spinCharState.bav:Destroy() end
spinCharState = {active = false, bav = nil}
pulseState.active = false
if pulseState.conn then pulseState.conn:Disconnect() end
execCmd('nofps; noping; nocoords; nospeedometer; nocrosshair; uncrown; unhalo; unwings; unnametag; unorbittext; noantiafk; unpwalkfling; unorbitua; unflingua; unghost; unfunnyua; unsmartesp; unaura; untas; hyperspeed; superjump; bhop; infjump; float; bouncy; antigrav; spider; itemesp; partesp; vehicleesp; mobesp; chams; trail; nightvision; wireframe; toolgrabber; reach; autofarm; killaura; spin2; seizure; fire; sparkles; smoke; tiny; giant; npp; fullbright; stopmusic; orbitparts; spiralparts; partrain; antivoid; unnamespoof; godmode; noclip; ctrlclicktp; clicktp; spam; raid')
execCmd('cleanupss; unsshat; unsscape; unsswing; unssring; unsslight; unssparticles; unssmusic; unssmsg; unsscrosshair; unssarrow; unssorb; unssfloating; unssaura; unsscrown; unsstrail; unssblock; unssflag; unsshalo')
notify('Arc Yield', 'All custom effects cleared')
showArcPopup('All Effects', false)
end)
keycodeMap = {
["0"] = 0x30,
["1"] = 0x31,
["2"] = 0x32,
["3"] = 0x33,
["4"] = 0x34,
["5"] = 0x35,
["6"] = 0x36,
["7"] = 0x37,
["8"] = 0x38,
["9"] = 0x39,
["a"] = 0x41,
["b"] = 0x42,
["c"] = 0x43,
["d"] = 0x44,
["e"] = 0x45,
["f"] = 0x46,
["g"] = 0x47,
["h"] = 0x48,
["i"] = 0x49,
["j"] = 0x4A,
["k"] = 0x4B,
["l"] = 0x4C,
["m"] = 0x4D,
["n"] = 0x4E,
["o"] = 0x4F,
["p"] = 0x50,
["q"] = 0x51,
["r"] = 0x52,
["s"] = 0x53,
["t"] = 0x54,
["u"] = 0x55,
["v"] = 0x56,
["w"] = 0x57,
["x"] = 0x58,
["y"] = 0x59,
["z"] = 0x5A,
["enter"] = 0x0D,
["shift"] = 0x10,
["ctrl"] = 0x11,
["alt"] = 0x12,
["pause"] = 0x13,
["capslock"] = 0x14,
["spacebar"] = 0x20,
["space"] = 0x20,
["pageup"] = 0x21,
["pagedown"] = 0x22,
["end"] = 0x23,
["home"] = 0x24,
["left"] = 0x25,
["up"] = 0x26,
["right"] = 0x27,
["down"] = 0x28,
["insert"] = 0x2D,
["delete"] = 0x2E,
["f1"] = 0x70,
["f2"] = 0x71,
["f3"] = 0x72,
["f4"] = 0x73,
["f5"] = 0x74,
["f6"] = 0x75,
["f7"] = 0x76,
["f8"] = 0x77,
["f9"] = 0x78,
["f10"] = 0x79,
["f11"] = 0x7A,
["f12"] = 0x7B,
}
autoKeyPressing = false
cancelAutoKeyPress = nil
addcmd('autokeypress',{'keypress'},function(args, speaker)
if keypress and keyrelease and args[1] then
local code = keycodeMap[args[1]:lower()]
if not code then notify('Auto Key Press',"Invalid key") return end
execCmd('unautokeypress')
wait()
local clickDelay = 0.1
local releaseDelay = 0.1
if args[2] and isNumber(args[2]) then clickDelay = args[2] end
if args[3] and isNumber(args[3]) then releaseDelay = args[3] end
autoKeyPressing = true
cancelAutoKeyPress = UserInputService.InputBegan:Connect(function(input, gameProcessedEvent)
if not gameProcessedEvent then
if (input.KeyCode == Enum.KeyCode.Backspace and UserInputService:IsKeyDown(Enum.KeyCode.Equals)) or (input.KeyCode == Enum.KeyCode.Equals and UserInputService:IsKeyDown(Enum.KeyCode.Backspace)) then
autoKeyPressing = false
cancelAutoKeyPress:Disconnect()
end
end
end)
notify('Auto Key Press',"Press [backspace] and [=] at the same time to stop")
repeat wait(clickDelay)
keypress(code)
wait(releaseDelay)
keyrelease(code)
until autoKeyPressing == false
if cancelAutoKeyPress then cancelAutoKeyPress:Disconnect() keyrelease(code) end
else
notify('Auto Key Press',"Your exploit doesn't have the ability to use auto key press")
end
end)
addcmd('unautokeypress',{'noautokeypress','unkeypress','nokeypress'},function(args, speaker)
autoKeyPressing = false
if cancelAutoKeyPress then cancelAutoKeyPress:Disconnect() end
end)
addcmd('addplugin',{'plugin'},function(args, speaker)
addPlugin(getstring(1, args))
end)
addcmd('removeplugin',{'deleteplugin'},function(args, speaker)
deletePlugin(getstring(1, args))
end)
addcmd('reloadplugin',{},function(args, speaker)
local pluginName = getstring(1, args)
deletePlugin(pluginName)
wait(1)
addPlugin(pluginName)
end)
addcmd("addallplugins", {"loadallplugins"}, function(args, speaker)
if not listfiles or not isfolder then
notify("Incompatible Exploit", "Your exploit does not support this command (missing listfiles/isfolder)")
return
end
for _, filePath in ipairs(listfiles("")) do
local fileName = filePath:match("([^/\\]+%.iy)$")
if fileName and
fileName:lower() ~= "iy_fe.iy" and
not isfolder(fileName) and
not table.find(PluginsTable, fileName)
then
addPlugin(fileName)
end
end
end)
addcmd('removecmd',{'deletecmd'},function(args, speaker)
removecmd(args[1])
end)
addcmd("debug", {}, function(args, speaker)
local opt = parseBoolean(args[1], true)
_G.IY_DEBUG = opt
notify("debug", tostring(opt), 1)
end)
if IsOnMobile then
local QuickCapture = Instance.new("TextButton")
local UICorner = Instance.new("UICorner")
QuickCapture.Name = randomString()
QuickCapture.Parent = PARENT
QuickCapture.BackgroundColor3 = Color3.fromRGB(46, 46, 47)
QuickCapture.BackgroundTransparency = 0.14
QuickCapture.Position = UDim2.new(0.489, 0, 0, 0)
QuickCapture.Size = UDim2.new(0, 32, 0, 33)
QuickCapture.Font = Enum.Font.SourceSansBold
QuickCapture.Text = "IY"
QuickCapture.TextColor3 = Color3.fromRGB(255, 255, 255)
QuickCapture.TextSize = 20
QuickCapture.TextWrapped = true
QuickCapture.ZIndex = 10
QuickCapture.Draggable = true
UICorner.Name = randomString()
UICorner.CornerRadius = UDim.new(0.5, 0)
UICorner.Parent = QuickCapture
QuickCapture.MouseButton1Click:Connect(function()
Cmdbar:CaptureFocus()
maximizeHolder()
end)
table.insert(shade1, QuickCapture)
table.insert(text1, QuickCapture)
end
pcall(function() Scale.Scale = math.max(Holder.AbsoluteSize.X / 1920, guiScale) end)
Scale.Parent = ScaledHolder
ScaledHolder.Size = UDim2.fromScale(1 / Scale.Scale, 1 / Scale.Scale)
Scale:GetPropertyChangedSignal("Scale"):Connect(function()
ScaledHolder.Size = UDim2.fromScale(1 / Scale.Scale, 1 / Scale.Scale)
for _, v in ScaledHolder:GetDescendants() do
if v:IsA("GuiObject") and v.Visible then
v.Visible = false
v.Visible = true
end
end
end)
updateColors(currentShade1,shade1)
updateColors(currentShade2,shade2)
updateColors(currentShade3,shade3)
updateColors(currentText1,text1)
updateColors(currentText2,text2)
updateColors(currentScroll,scroll)
if PluginsTable ~= nil or PluginsTable ~= {} then
FindPlugins(PluginsTable)
end
-- Events
eventEditor.RegisterEvent("OnExecute")
eventEditor.RegisterEvent("OnSpawn",{
{Type="Player",Name="Player Filter ($1)"}
})
eventEditor.RegisterEvent("OnDied",{
{Type="Player",Name="Player Filter ($1)"}
})
eventEditor.RegisterEvent("OnDamage",{
{Type="Player",Name="Player Filter ($1)"},
{Type="Number",Name="Below Health ($2)"}
})
eventEditor.RegisterEvent("OnKilled",{
{Type="Player",Name="Victim Player ($1)"},
{Type="Player",Name="Killer Player ($2)",Default = 1}
})
eventEditor.RegisterEvent("OnJoin",{
{Type="Player",Name="Player Filter ($1)",Default = 1}
})
eventEditor.RegisterEvent("OnLeave",{
{Type="Player",Name="Player Filter ($1)",Default = 1}
})
eventEditor.RegisterEvent("OnChatted",{
{Type="Player",Name="Player Filter ($1)",Default = 1},
{Type="String",Name="Message Filter ($2)"}
})
function hookCharEvents(plr,instant)
task.spawn(function()
local char = plr.Character
if not char then return end
local humanoid = char:WaitForChild("Humanoid",10)
if not humanoid then return end
local oldHealth = humanoid.Health
humanoid.HealthChanged:Connect(function(health)
local change = math.abs(oldHealth - health)
if oldHealth > health then
eventEditor.FireEvent("OnDamage",plr.Name,tonumber(health))
end
oldHealth = health
end)
humanoid.Died:Connect(function()
eventEditor.FireEvent("OnDied",plr.Name)
local killedBy = humanoid:FindFirstChild("creator")
if killedBy and killedBy.Value and killedBy.Value.Parent then
eventEditor.FireEvent("OnKilled",plr.Name,killedBy.Name)
end
end)
end)
end
Players.PlayerAdded:Connect(function(plr)
eventEditor.FireEvent("OnJoin",plr.Name)
if isLegacyChat then plr.Chatted:Connect(function(msg) eventEditor.FireEvent("OnChatted",tostring(plr),msg) end) end
plr.CharacterAdded:Connect(function() eventEditor.FireEvent("OnSpawn",tostring(plr)) hookCharEvents(plr) end)
JoinLog(plr)
if isLegacyChat then ChatLog(plr) end
if ESPenabled then
repeat wait(1) until plr.Character and getRoot(plr.Character)
ESP(plr)
end
if CHMSenabled then
repeat wait(1) until plr.Character and getRoot(plr.Character)
CHMS(plr)
end
end)
if not isLegacyChat then
TextChatService.MessageReceived:Connect(function(message)
if message.TextSource then
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if not player then return end
if logsEnabled == true then
CreateLabel(player.Name, message.Text)
end
if player.UserId == Players.LocalPlayer.UserId then
do_exec(message.Text, Players.LocalPlayer)
end
eventEditor.FireEvent("OnChatted", player.Name, message.Text)
sendChatWebhook(player, message.Text)
end
end)
end
for _,plr in pairs(Players:GetPlayers()) do
pcall(function()
plr.CharacterAdded:Connect(function() eventEditor.FireEvent("OnSpawn",tostring(plr)) hookCharEvents(plr) end)
hookCharEvents(plr)
end)
end
if spawnCmds and #spawnCmds > 0 then
for i,v in pairs(spawnCmds) do
eventEditor.AddCmd("OnSpawn",{v.COMMAND or "",{0},v.DELAY or 0})
end
updatesaves()
end
if loadedEventData then eventEditor.LoadData(loadedEventData) end
eventEditor.Refresh()
eventEditor.FireEvent("OnExecute")
if aliases and #aliases > 0 then
local cmdMap = {}
for i,v in pairs(cmds) do
cmdMap[v.NAME:lower()] = v
for _,alias in pairs(v.ALIAS) do
cmdMap[alias:lower()] = v
end
end
for i = 1, #aliases do
local cmd = string.lower(aliases[i].CMD)
local alias = string.lower(aliases[i].ALIAS)
if cmdMap[cmd] then
customAlias[alias] = cmdMap[cmd]
end
end
refreshaliases()
end
IYMouse.Move:Connect(checkTT)
CaptureService.CaptureBegan:Connect(function()
PARENT.Enabled = false
end)
CaptureService.CaptureEnded:Connect(function()
task.delay(0.1, function()
PARENT.Enabled = true
end)
end)
task.spawn(function()
local success, latestVersionInfo = pcall(function()
local versionJson = game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/version")
return HttpService:JSONDecode(versionJson)
end)
if success then
if currentVersion ~= latestVersionInfo.Version then
notify("Outdated", "Get the new version at infyiff.github.io")
end
if latestVersionInfo.Announcement and latestVersionInfo.Announcement ~= "" then
local AnnGUI = Instance.new("Frame")
local background = Instance.new("Frame")
local TextBox = Instance.new("TextLabel")
local shadow = Instance.new("Frame")
local PopupText = Instance.new("TextLabel")
local Exit = Instance.new("TextButton")
local ExitImage = Instance.new("ImageLabel")
AnnGUI.Name = randomString()
AnnGUI.Parent = ScaledHolder
AnnGUI.Active = true
AnnGUI.BackgroundTransparency = 1
AnnGUI.Position = UDim2.new(0.5, -180, 0, -500)
AnnGUI.Size = UDim2.new(0, 360, 0, 20)
AnnGUI.ZIndex = 10
background.Name = "background"
background.Parent = AnnGUI
background.Active = true
background.BackgroundColor3 = currentShade1
background.BorderSizePixel = 0
background.Position = UDim2.new(0, 0, 0, 20)
background.Size = UDim2.new(0, 360, 0, 150)
background.ZIndex = 10
TextBox.Parent = background
TextBox.BackgroundTransparency = 1
TextBox.Position = UDim2.new(0, 5, 0, 5)
TextBox.Size = UDim2.new(0, 350, 0, 140)
TextBox.Font = Enum.Font.SourceSans
TextBox.TextSize = 18
TextBox.TextWrapped = true
TextBox.Text = latestVersionInfo.Announcement
TextBox.TextColor3 = currentText1
TextBox.TextXAlignment = Enum.TextXAlignment.Left
TextBox.TextYAlignment = Enum.TextYAlignment.Top
TextBox.ZIndex = 10
shadow.Name = "shadow"
shadow.Parent = AnnGUI
shadow.BackgroundColor3 = currentShade2
shadow.BorderSizePixel = 0
shadow.Size = UDim2.new(0, 360, 0, 20)
shadow.ZIndex = 10
PopupText.Name = "PopupText"
PopupText.Parent = shadow
PopupText.BackgroundTransparency = 1
PopupText.Size = UDim2.new(1, 0, 0.95, 0)
PopupText.ZIndex = 10
PopupText.Font = Enum.Font.SourceSans
PopupText.TextSize = 14
PopupText.Text = "Server Announcement"
PopupText.TextColor3 = currentText1
PopupText.TextWrapped = true
Exit.Name = "Exit"
Exit.Parent = shadow
Exit.BackgroundTransparency = 1
Exit.Position = UDim2.new(1, -20, 0, 0)
Exit.Size = UDim2.new(0, 20, 0, 20)
Exit.Text = ""
Exit.ZIndex = 10
ExitImage.Parent = Exit
ExitImage.BackgroundColor3 = Color3.new(1, 1, 1)
ExitImage.BackgroundTransparency = 1
ExitImage.Position = UDim2.new(0, 5, 0, 5)
ExitImage.Size = UDim2.new(0, 10, 0, 10)
ExitImage.Image = getcustomasset("infiniteyield/assets/close.png")
ExitImage.ZIndex = 10
task.wait(1)
AnnGUI:TweenPosition(UDim2.new(0.5, -180, 0, 150), "InOut", "Quart", 0.5, true, nil)
Exit.MouseButton1Click:Connect(function()
AnnGUI:TweenPosition(UDim2.new(0.5, -180, 0, -500), "InOut", "Quart", 0.5, true, nil)
task.wait(0.6)
AnnGUI:Destroy()
end)
end
end
end)
task.spawn(function()
task.wait()
pcall(function()
Credits:TweenPosition(UDim2.new(0, 0, 0.9, 0), "Out", "Quart", 0.2)
Logo:TweenSizeAndPosition(UDim2.new(0, 175, 0, 175), UDim2.new(0, 37, 0, 45), "Out", "Quart", 0.3)
task.wait(1)
local OutInfo = TweenInfo.new(1.6809, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, 0, false, 0)
TweenService:Create(Logo, OutInfo, {ImageTransparency = 1}):Play()
TweenService:Create(IntroBackground, OutInfo, {BackgroundTransparency = 1}):Play()
Credits:TweenPosition(UDim2.new(0, 0, 0.9, 30), "Out", "Quart", 0.2)
task.wait(0.2)
end)
Logo:Destroy()
Credits:Destroy()
IntroBackground:Destroy()
minimizeHolder()
end)
-- ======================== ARC YIELD: INTRO SPLASH SCREEN ========================
local introSkipped = false
local function skipIntro()
if introSkipped then return end
introSkipped = true
end
task.spawn(function()
task.wait(1.5)
local splashFrame = Instance.new("Frame")
splashFrame.Name = randomString()
splashFrame.Size = UDim2.new(1, 0, 0, 110)
splashFrame.Position = UDim2.new(0, 0, 0.38, 0)
splashFrame.BackgroundTransparency = 1
splashFrame.ZIndex = 100
splashFrame.Parent = ScaledHolder
-- Skip button at bottom
local skipBtn = Instance.new("TextButton")
skipBtn.Name = randomString()
skipBtn.Size = UDim2.new(0, 120, 0, 30)
skipBtn.Position = UDim2.new(0.5, -60, 1, 40)
skipBtn.BackgroundColor3 = Color3.fromRGB(40, 42, 55)
skipBtn.BackgroundTransparency = 0.3
skipBtn.BorderSizePixel = 0
skipBtn.Text = "Skip"
skipBtn.Font = Enum.Font.GothamBold
skipBtn.TextSize = 16
skipBtn.TextColor3 = Color3.fromRGB(180, 190, 220)
skipBtn.TextTransparency = 0
skipBtn.ZIndex = 102
skipBtn.Parent = splashFrame
local skipCorner = Instance.new("UICorner")
skipCorner.CornerRadius = UDim.new(0, 6)
skipCorner.Parent = skipBtn
skipBtn.MouseButton1Click:Connect(function()
skipIntro()
end)
-- Fade out skip button when hovered
skipBtn.MouseEnter:Connect(function()
TweenService:Create(skipBtn, TweenInfo.new(0.2), {TextColor3 = Color3.fromRGB(255, 255, 255), BackgroundTransparency = 0}):Play()
end)
skipBtn.MouseLeave:Connect(function()
TweenService:Create(skipBtn, TweenInfo.new(0.2), {TextColor3 = Color3.fromRGB(180, 190, 220), BackgroundTransparency = 0.3}):Play()
end)
-- Helper: check if skipped and destroy everything
local function cleanupSplash()
if skipBtn and skipBtn.Parent then skipBtn:Destroy() end
if splashFrame and splashFrame.Parent then splashFrame:Destroy() end
end
-- PHASE 1: "Arc Yield" title with blue glow
local titleTxt = Instance.new("TextLabel")
titleTxt.Name = randomString()
titleTxt.Size = UDim2.new(1, 0, 0, 50)
titleTxt.Position = UDim2.new(0, 0, 0, 0)
titleTxt.BackgroundTransparency = 1
titleTxt.Text = "Arc Yield"
titleTxt.Font = Enum.Font.GothamBold
titleTxt.TextSize = 48
titleTxt.TextColor3 = Color3.new(1, 1, 1)
titleTxt.TextStrokeColor3 = Color3.fromRGB(50, 100, 255)
titleTxt.TextStrokeTransparency = 0
titleTxt.TextTransparency = 0
titleTxt.ZIndex = 101
titleTxt.Parent = splashFrame
-- Fade in the glow effect
task.wait(0.3)
if introSkipped then cleanupSplash() return end
local glowIn = TweenService:Create(titleTxt, TweenInfo.new(0.8, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {TextStrokeTransparency = 0.2})
glowIn:Play()
-- Show Arc Yield for 2 seconds, then fade out
task.wait(2)
if introSkipped then cleanupSplash() return end
local fadeOut1 = TweenService:Create(titleTxt, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.In), {TextTransparency = 1, TextStrokeTransparency = 1})
fadeOut1:Play()
task.wait(1.2)
if introSkipped then cleanupSplash() return end
-- PHASE 2: "creator name - @Hamster_Gamer14"
local creditTxt = Instance.new("TextLabel")
creditTxt.Name = randomString()
creditTxt.Size = UDim2.new(1, 0, 0, 22)
creditTxt.Position = UDim2.new(0, 0, 0, 5)
creditTxt.BackgroundTransparency = 1
creditTxt.Text = "created by @Hamster_Gamer14"
creditTxt.Font = Enum.Font.GothamBold
creditTxt.TextSize = 20
creditTxt.TextColor3 = Color3.new(1, 1, 1)
creditTxt.TextStrokeColor3 = Color3.fromRGB(80, 140, 255)
creditTxt.TextStrokeTransparency = 0
creditTxt.TextTransparency = 1
creditTxt.ZIndex = 101
creditTxt.Parent = splashFrame
-- Fade in the credit
local creditIn = TweenService:Create(creditTxt, TweenInfo.new(0.6, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {TextTransparency = 0, TextStrokeTransparency = 0.3})
creditIn:Play()
task.wait(2.5)
if introSkipped then cleanupSplash() return end
-- PHASE 3: "Lots of credits to the creator of Infinite Yield"
local iyCreditTxt = Instance.new("TextLabel")
iyCreditTxt.Name = randomString()
iyCreditTxt.Size = UDim2.new(1, 0, 0, 18)
iyCreditTxt.Position = UDim2.new(0, 0, 0, 28)
iyCreditTxt.BackgroundTransparency = 1
iyCreditTxt.Text = "lots of credits to the creator of Inf Yield"
iyCreditTxt.Font = Enum.Font.Gotham
iyCreditTxt.TextSize = 15
iyCreditTxt.TextColor3 = Color3.fromRGB(200, 200, 255)
iyCreditTxt.TextStrokeColor3 = Color3.fromRGB(80, 140, 255)
iyCreditTxt.TextStrokeTransparency = 0
iyCreditTxt.TextTransparency = 1
iyCreditTxt.ZIndex = 101
iyCreditTxt.Parent = splashFrame
local iyCreditIn = TweenService:Create(iyCreditTxt, TweenInfo.new(0.6, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {TextTransparency = 0, TextStrokeTransparency = 0.4})
iyCreditIn:Play()
task.wait(2)
if introSkipped then cleanupSplash() return end
-- PHASE 4: "please share this script with your friends!"
local shareTxt = Instance.new("TextLabel")
shareTxt.Name = randomString()
shareTxt.Size = UDim2.new(1, 0, 0, 18)
shareTxt.Position = UDim2.new(0, 0, 0, 48)
shareTxt.BackgroundTransparency = 1
shareTxt.Text = "please share this script with your friends!"
shareTxt.Font = Enum.Font.GothamBold
shareTxt.TextSize = 15
shareTxt.TextColor3 = Color3.fromRGB(255, 220, 100)
shareTxt.TextStrokeColor3 = Color3.fromRGB(200, 150, 30)
shareTxt.TextStrokeTransparency = 0
shareTxt.TextTransparency = 1
shareTxt.ZIndex = 101
shareTxt.Parent = splashFrame
local shareIn = TweenService:Create(shareTxt, TweenInfo.new(0.6, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {TextTransparency = 0, TextStrokeTransparency = 0.4})
shareIn:Play()
-- Show everything for 3.5 seconds, then fade out all
task.wait(3.5)
if introSkipped then cleanupSplash() return end
local fadeOut2 = TweenService:Create(creditTxt, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.In), {TextTransparency = 1, TextStrokeTransparency = 1})
fadeOut2:Play()
local fadeOut3 = TweenService:Create(iyCreditTxt, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.In), {TextTransparency = 1, TextStrokeTransparency = 1})
fadeOut3:Play()
local fadeOut4 = TweenService:Create(shareTxt, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.In), {TextTransparency = 1, TextStrokeTransparency = 1})
fadeOut4:Play()
task.wait(1.2)
introSkipped = true
cleanupSplash()
end)
-- ======================== ARC YIELD: IY / ARC USER DETECTION ESP ========================
-- Detects other players running Infinite Yield or Arc Yield.
-- Method 1 (Arc Yield): Hidden StringValue on character - broadcast our presence
-- Method 2 (IY features): Detect suspicious physics objects on characters
arcUserEspActive = false
arcUserEspConn = nil
arcUserEspDraws = {}
arcUserBroadcastConn = nil
-- Auto-broadcast: tag our character so other Arc Yield users can see us
local function broadcastArcPresence()
pcall(function()
local char = Players.LocalPlayer.Character
if not char then return end
-- Don't re-tag if already tagged
if char:FindFirstChild("_ARC_YIELD_PRESENCE") then return end
local tag = Instance.new("StringValue")
tag.Name = "_ARC_YIELD_PRESENCE"
tag.Value = "Arc Yield v6.4.1"
tag.Parent = char
end)
end
-- Tag character when it spawns / respawns
Players.LocalPlayer.CharacterAdded:Connect(function(char)
char:WaitForChild("HumanoidRootPart", 10)
task.wait(0.5)
broadcastArcPresence()
end)
-- Tag immediately if character already exists
task.spawn(function()
task.wait(1)
broadcastArcPresence()
end)
addcmd("arcuseresp", {"iyusrespsp", "detectusers"}, function(args, speaker)
if arcUserEspActive then
arcUserEspActive = false
if arcUserEspConn then arcUserEspConn:Disconnect() arcUserEspConn = nil end
for _, d in pairs(arcUserEspDraws) do pcall(function() d:Remove() end) end
arcUserEspDraws = {}
return notify("Arc User ESP", "OFF")
end
arcUserEspActive = true
arcUserEspConn = RunService.RenderStepped:Connect(function()
for _, d in pairs(arcUserEspDraws) do pcall(function() d:Remove() end) end
arcUserEspDraws = {}
local cam = workspace.CurrentCamera
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= Players.LocalPlayer and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
local detectedType = nil
local detectedReason = ""
-- Method 1: Check for Arc Yield broadcast tag on character
pcall(function()
local tag = plr.Character:FindFirstChild("_ARC_YIELD_PRESENCE")
if tag and tag:IsA("StringValue") then
detectedType = "ARC YIELD"
detectedReason = tag.Value
end
end)
-- Method 2: If no Arc tag, detect active IY features by scanning character
if not detectedType then
pcall(function()
local root = plr.Character:FindFirstChild("HumanoidRootPart")
if root then
for _, child in pairs(root:GetChildren()) do
if child:IsA("BodyAngularVelocity") then
-- High angular velocity = likely fling
local av = child.AngularVelocity
if av.Magnitude > 1000 then
detectedType = "IY (fling)"
detectedReason = "Fling active"
break
end
elseif child:IsA("BodyVelocity") then
-- BodyVelocity on root = likely fly
detectedType = "IY (fly)"
detectedReason = "Fly detected"
break
end
end
end
-- Check for invisible parts around character (noclip indicator)
if not detectedType then
for _, child in pairs(plr.Character:GetDescendants()) do
if child:IsA("BasePart") and child.Transparency > 0.9 and child.Size.X < 2 and not child.Anchored then
detectedType = "IY/Arc"
detectedReason = "Invisible part"
break
end
end
end
end)
end
if detectedType then
local pos, on = cam:WorldToViewportPoint(plr.Character.HumanoidRootPart.Position)
if on then
local isArc = detectedType:find("ARC")
local col = isArc and Color3.fromRGB(50, 100, 255) or Color3.fromRGB(255, 200, 0)
local tag = "[" .. detectedType .. "]"
-- Main label
local d = Drawing.new("Text")
d.Text = tag .. " " .. plr.Name
d.Position = Vector2.new(pos.X, pos.Y - 35)
d.Color = col
d.Outline = true
d.Size = 15
d.Center = true
arcUserEspDraws[#arcUserEspDraws + 1] = d
-- Reason sublabel
local d2 = Drawing.new("Text")
d2.Text = detectedReason
d2.Position = Vector2.new(pos.X, pos.Y - 22)
d2.Color = Color3.fromRGB(180, 180, 180)
d2.Outline = true
d2.Size = 12
d2.Center = true
arcUserEspDraws[#arcUserEspDraws + 1] = d2
-- Line from label to head
local d3 = Drawing.new("Line")
d3.From = Vector2.new(pos.X, pos.Y - 18)
d3.To = Vector2.new(pos.X, pos.Y - 10)
d3.Color = col
d3.Thickness = 2
d3.Transparency = 0.5
arcUserEspDraws[#arcUserEspDraws + 1] = d3
end
end
end
end
end)
notify("Arc User ESP", "ON - detecting IY/Arc users (including yourself for others)")
end)
-- ======================== ARC YIELD: HD ADMIN-STYLE GUI SYSTEM ========================
ArcGUI = {}
ArcGUI.Panels = {}
ArcGUI.PanelCount = 0
ArcGUI._dragging = {}
ArcGUI._sliders = {}
local ARC_ZINDEX = 20
local PANEL_WIDTH = 280
local TITLEBAR_HEIGHT = 25
local BLUE = Color3.fromRGB(50, 100, 255)
local BLUE_DARK = Color3.fromRGB(25, 50, 150)
local BLUE_LIGHT = Color3.fromRGB(80, 150, 255)
local SHADE1 = Color3.fromRGB(18, 18, 28)
local SHADE2 = Color3.fromRGB(28, 32, 48)
local SHADE3 = Color3.fromRGB(50, 55, 75)
local ACCENT = Color3.fromRGB(40, 80, 200)
local ACCENT_HOVER = Color3.fromRGB(60, 110, 240)
local WHITE = Color3.new(1, 1, 1)
local ARC_GLOW = Color3.fromRGB(80, 140, 255)
-- ======================== UTILITY FUNCTIONS ========================
local function applyTextStyle(instance)
instance.Font = Enum.Font.SourceSans
instance.TextColor3 = WHITE
instance.TextStrokeColor3 = BLUE
instance.TextStrokeTransparency = 0.5
instance.ZIndex = ARC_ZINDEX + 2
end
local function makeInstance(className, props)
local inst = Instance.new(className)
local parent = nil
for k, v in pairs(props) do
if k == "Parent" then
parent = v
elseif k == "Children" then
-- skip
else
inst[k] = v
end
end
if parent then
inst.Parent = parent
end
return inst
end
-- ======================== CREATE PANEL ========================
function ArcGUI.CreatePanel(name, title, onCloseCallback)
if ArcGUI.Panels[name] and ArcGUI.Panels[name].Frame then
ArcGUI.Panels[name].Frame:Destroy()
end
ArcGUI.PanelCount = ArcGUI.PanelCount + 1
local offsetX = ((ArcGUI.PanelCount - 1) % 8) * 30
local offsetY = ((ArcGUI.PanelCount - 1) % 8) * 30
local panel = {
Name = name,
Elements = {},
CloseCallback = onCloseCallback,
YOffset = 5,
ToggleStates = {},
SliderValues = {},
TextBoxValues = {},
}
-- Main Frame
local mainFrame = makeInstance("Frame", {
Name = randomString(),
BackgroundColor3 = SHADE1,
BorderSizePixel = 0,
Position = UDim2.new(0.5, -140 + offsetX, 0.5, -100 + offsetY),
Size = UDim2.new(0, PANEL_WIDTH, 0, TITLEBAR_HEIGHT + 10),
Active = true,
ZIndex = ARC_ZINDEX,
Parent = ScaledHolder,
})
table.insert(shade1, mainFrame)
-- Blue glow border
local glowStroke = makeInstance("UIStroke", {
Color = BLUE,
Thickness = 1.5,
Transparency = 0.2,
Parent = mainFrame,
})
local corner = makeInstance("UICorner", {
CornerRadius = UDim.new(0, 8),
Parent = mainFrame,
})
-- Subtle bottom shadow/gradient overlay for depth
local shadowOverlay = makeInstance("Frame", {
Name = randomString(),
BackgroundColor3 = BLUE_DARK,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 40),
Position = UDim2.new(0, 0, 1, -40),
BackgroundTransparency = 0.85,
ZIndex = ARC_ZINDEX,
Parent = mainFrame,
})
-- Title Bar with gradient-like effect
local titleBar = makeInstance("Frame", {
Name = randomString(),
BackgroundColor3 = SHADE2,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, TITLEBAR_HEIGHT),
ZIndex = ARC_ZINDEX + 1,
Parent = mainFrame,
})
table.insert(shade2, titleBar)
-- Blue accent line at top of title bar
local accentLine = makeInstance("Frame", {
Name = randomString(),
BackgroundColor3 = BLUE,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 2),
Position = UDim2.new(0, 0, 0, 0),
BackgroundTransparency = 0.1,
ZIndex = ARC_ZINDEX + 2,
Parent = titleBar,
})
local titleCorner = makeInstance("UICorner", {
CornerRadius = UDim.new(0, 8),
Parent = titleBar,
})
-- Title label - doesn't block the X button
local titleLabel = makeInstance("TextLabel", {
Name = randomString(),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, -35, 1, 0),
Position = UDim2.new(0, 8, 0, 0),
Text = title or name,
Font = Enum.Font.SourceSansBold,
TextSize = 13,
TextColor3 = WHITE,
TextStrokeColor3 = ARC_GLOW,
TextStrokeTransparency = 0.4,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = ARC_ZINDEX + 2,
Parent = titleBar,
})
table.insert(text1, titleLabel)
-- X Close Button - arc styled with hover effect
local xBtn = makeInstance("TextButton", {
Name = randomString(),
BackgroundColor3 = Color3.fromRGB(120, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(0, 20, 0, 20),
Position = UDim2.new(1, -23, 0, 2),
Text = "X",
Font = Enum.Font.SourceSansBold,
TextSize = 12,
TextColor3 = WHITE,
AutoButtonColor = true,
ZIndex = ARC_ZINDEX + 10,
Parent = titleBar,
})
local xCorner = makeInstance("UICorner", {
CornerRadius = UDim.new(0, 4),
Parent = xBtn,
})
local xStroke = makeInstance("UIStroke", {
Color = Color3.fromRGB(180, 50, 50),
Thickness = 1,
Transparency = 0.3,
Parent = xBtn,
})
-- Hover guard: prevent drag from stealing X button clicks
local xBtnHover = false
xBtn.MouseEnter:Connect(function() xBtnHover = true end)
xBtn.MouseLeave:Connect(function() xBtnHover = false end)
-- Content ScrollingFrame
local contentFrame = makeInstance("ScrollingFrame", {
Name = randomString(),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, TITLEBAR_HEIGHT),
Size = UDim2.new(1, 0, 1, -TITLEBAR_HEIGHT),
ScrollBarImageColor3 = SHADE3,
ScrollBarThickness = 6,
BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png",
TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png",
MidImage = "rbxasset://textures/ui/Scroll/scroll-middle.png",
VerticalScrollBarInset = Enum.ScrollBarInset.Always,
CanvasSize = UDim2.new(0, 0, 0, 10),
ZIndex = ARC_ZINDEX + 1,
Parent = mainFrame,
})
table.insert(scroll, contentFrame)
local contentLayout = makeInstance("UIListLayout", {
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 0),
Parent = contentFrame,
})
local contentPadding = makeInstance("UIPadding", {
PaddingLeft = UDim.new(0, 8),
PaddingRight = UDim.new(0, 8),
PaddingTop = UDim.new(0, 2),
PaddingBottom = UDim.new(0, 2),
Parent = contentFrame,
})
panel.Frame = mainFrame
panel.TitleBar = titleBar
panel.Content = contentFrame
panel.ContentLayout = contentLayout
-- Store
ArcGUI.Panels[name] = panel
-- Close function
xBtn.MouseButton1Click:Connect(function()
if panel.CloseCallback then
panel.CloseCallback()
end
ArcGUI.ClosePanel(name)
end)
-- Dragging
local dragging = false
local dragInput
local dragStart
local startPos
titleBar.InputBegan:Connect(function(input)
if xBtnHover then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
titleBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end)
return panel
end
-- ======================== UPDATE PANEL SIZE ========================
local function updatePanelSize(panel)
local contentHeight = panel.YOffset + 5
panel.Content.CanvasSize = UDim2.new(0, 0, 0, math.max(contentHeight, 50))
local maxVisible = 400
local frameHeight = TITLEBAR_HEIGHT + math.min(contentHeight, maxVisible)
panel.Frame.Size = UDim2.new(0, PANEL_WIDTH, 0, frameHeight)
end
-- ======================== CREATE TOGGLE ========================
function ArcGUI.CreateToggle(panel, label, default, callback)
local container = makeInstance("Frame", {
Name = randomString(),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 28),
BackgroundColor3 = SHADE2,
ZIndex = ARC_ZINDEX + 2,
Parent = panel.Content,
})
table.insert(shade2, container)
local lbl = makeInstance("TextLabel", {
Name = randomString(),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, -60, 1, 0),
Position = UDim2.new(0, 8, 0, 0),
Text = label,
Font = Enum.Font.SourceSans,
TextSize = 13,
TextColor3 = WHITE,
TextStrokeColor3 = BLUE,
TextStrokeTransparency = 0.5,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = ARC_ZINDEX + 3,
Parent = container,
})
table.insert(text1, lbl)
local state = default or false
local btn = makeInstance("TextButton", {
Name = randomString(),
BackgroundColor3 = state and BLUE or SHADE3,
BorderSizePixel = 0,
Size = UDim2.new(0, 45, 0, 20),
Position = UDim2.new(1, -53, 0.5, -10),
Text = state and "ON" or "OFF",
Font = Enum.Font.SourceSansBold,
TextSize = 11,
TextColor3 = WHITE,
ZIndex = ARC_ZINDEX + 3,
Parent = container,
})
local function setState(newState)
state = newState
btn.Text = state and "ON" or "OFF"
btn.BackgroundColor3 = state and BLUE or SHADE3
if callback then
callback(state)
end
end
btn.MouseButton1Click:Connect(function()
setState(not state)
end)
panel.YOffset = panel.YOffset + 28
updatePanelSize(panel)
table.insert(panel.Elements, container)
panel.ToggleStates[label] = state
return {Container = container, Button = btn, GetState = function() return state end, SetState = setState}
end
-- ======================== CREATE SLIDER ========================
function ArcGUI.CreateSlider(panel, label, min, max, defaultVal, callback)
local container = makeInstance("Frame", {
Name = randomString(),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 40),
BackgroundColor3 = SHADE2,
ZIndex = ARC_ZINDEX + 2,
Parent = panel.Content,
})
local displayValue = defaultVal or min
local formatted = math.floor(displayValue * 100) / 100
local lbl = makeInstance("TextLabel", {
Name = randomString(),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, -8, 0, 16),
Position = UDim2.new(0, 8, 0, 2),
Text = label .. ": " .. tostring(formatted),
Font = Enum.Font.SourceSans,
TextSize = 12,
TextColor3 = WHITE,
TextStrokeColor3 = BLUE,
TextStrokeTransparency = 0.5,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = ARC_ZINDEX + 3,
Parent = container,
})
table.insert(text1, lbl)
-- Track background
local track = makeInstance("Frame", {
Name = randomString(),
BackgroundColor3 = SHADE3,
BorderSizePixel = 0,
Size = UDim2.new(1, -16, 0, 8),
Position = UDim2.new(0, 8, 0, 24),
ZIndex = ARC_ZINDEX + 3,
Parent = container,
})
table.insert(shade3, track)
local trackCorner = makeInstance("UICorner", {
CornerRadius = UDim.new(0, 4),
Parent = track,
})
-- Fill
local ratio = (displayValue - min) / (max - min)
local fill = makeInstance("Frame", {
Name = randomString(),
BackgroundColor3 = BLUE,
BorderSizePixel = 0,
Size = UDim2.new(math.clamp(ratio, 0, 1), 0, 1, 0),
ZIndex = ARC_ZINDEX + 4,
Parent = track,
})
local fillCorner = makeInstance("UICorner", {
CornerRadius = UDim.new(0, 4),
Parent = fill,
})
-- Knob
local knob = makeInstance("Frame", {
Name = randomString(),
BackgroundColor3 = WHITE,
BorderSizePixel = 0,
Size = UDim2.new(0, 12, 0, 12),
Position = UDim2.new(math.clamp(ratio, 0, 1), -6, 0.5, -6),
ZIndex = ARC_ZINDEX + 4,
Parent = track,
})
local knobCorner = makeInstance("UICorner", {
CornerRadius = UDim.new(1, 0),
Parent = knob,
})
local sliding = false
local function setValue(val)
displayValue = math.clamp(val, min, max)
formatted = math.floor(displayValue * 100) / 100
lbl.Text = label .. ": " .. tostring(formatted)
ratio = (displayValue - min) / (max - min)
fill.Size = UDim2.new(math.clamp(ratio, 0, 1), 0, 1, 0)
knob.Position = UDim2.new(math.clamp(ratio, 0, 1), -6, 0.5, -6)
if callback then
callback(displayValue)
end
end
local function onInput(input)
local relX = math.clamp((input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1)
setValue(min + (max - min) * relX)
end
track.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
sliding = true
onInput(input)
end
end)
knob.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
sliding = true
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
sliding = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if sliding and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
onInput(input)
end
end)
panel.YOffset = panel.YOffset + 40
updatePanelSize(panel)
table.insert(panel.Elements, container)
return {Container = container, GetValue = function() return displayValue end, SetValue = setValue}
end
-- ======================== CREATE TEXT BOX ========================
function ArcGUI.CreateTextBox(panel, label, placeholder, defaultVal)
local container = makeInstance("Frame", {
Name = randomString(),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 38),
BackgroundColor3 = SHADE2,
ZIndex = ARC_ZINDEX + 2,
Parent = panel.Content,
})
local lbl = makeInstance("TextLabel", {
Name = randomString(),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, -8, 0, 16),
Position = UDim2.new(0, 8, 0, 2),
Text = label .. ":",
Font = Enum.Font.SourceSans,
TextSize = 12,
TextColor3 = WHITE,
TextStrokeColor3 = BLUE,
TextStrokeTransparency = 0.5,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = ARC_ZINDEX + 3,
Parent = container,
})
table.insert(text1, lbl)
local box = makeInstance("TextBox", {
Name = randomString(),
BackgroundColor3 = SHADE3,
BorderSizePixel = 0,
Size = UDim2.new(1, -16, 0, 18),
Position = UDim2.new(0, 8, 0, 18),
Text = defaultVal or "",
PlaceholderText = placeholder or "",
PlaceholderColor3 = Color3.fromRGB(150, 150, 150),
Font = Enum.Font.SourceSans,
TextSize = 12,
TextColor3 = WHITE,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = ARC_ZINDEX + 3,
ClearTextOnFocus = false,
Parent = container,
})
table.insert(shade3, box)
table.insert(text1, box)
panel.YOffset = panel.YOffset + 38
updatePanelSize(panel)
table.insert(panel.Elements, container)
return {Container = container, Box = box, GetText = function() return box.Text end}
end
-- ======================== CREATE BUTTON ========================
function ArcGUI.CreateButton(panel, label, callback)
local container = makeInstance("Frame", {
Name = randomString(),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 28),
ZIndex = ARC_ZINDEX + 2,
Parent = panel.Content,
})
local btn = makeInstance("TextButton", {
Name = randomString(),
BackgroundColor3 = ACCENT,
BorderSizePixel = 0,
Size = UDim2.new(1, -8, 0, 24),
Position = UDim2.new(0, 4, 0, 2),
Text = label,
Font = Enum.Font.SourceSansBold,
TextSize = 13,
TextColor3 = WHITE,
TextStrokeColor3 = ARC_GLOW,
TextStrokeTransparency = 0.7,
ZIndex = ARC_ZINDEX + 3,
Parent = container,
})
local btnCorner = makeInstance("UICorner", {
CornerRadius = UDim.new(0, 4),
Parent = btn,
})
btn.MouseButton1Click:Connect(function()
if callback then
callback()
end
end)
panel.YOffset = panel.YOffset + 28
updatePanelSize(panel)
table.insert(panel.Elements, container)
return {Container = container, Button = btn}
end
-- ======================== CREATE SEPARATOR ========================
function ArcGUI.CreateSeparator(panel)
local sep = makeInstance("Frame", {
Name = randomString(),
BackgroundColor3 = SHADE3,
BorderSizePixel = 0,
Size = UDim2.new(1, -16, 0, 1),
Position = UDim2.new(0, 8, 0, 0),
ZIndex = ARC_ZINDEX + 2,
Parent = panel.Content,
})
panel.YOffset = panel.YOffset + 4
updatePanelSize(panel)
table.insert(panel.Elements, sep)
end
-- ======================== CLOSE PANEL ========================
function ArcGUI.ClosePanel(name)
local panel = ArcGUI.Panels[name]
if panel and panel.Frame then
if panel.DestroyExtra then
panel.DestroyExtra()
end
panel.Frame:Destroy()
ArcGUI.Panels[name] = nil
end
end
-- ======================== TOGGLE PANEL ========================
function ArcGUI.TogglePanel(name)
if ArcGUI.Panels[name] then
ArcGUI.ClosePanel(name)
return false
end
return true
end
-- ======================== IS OPEN ========================
function ArcGUI.IsOpen(name)
return ArcGUI.Panels[name] ~= nil
end
-- ======================== COMMAND REGISTRATION SYSTEM ========================
-- Each command wraps an existing IY command and opens a GUI panel
-- ======================== ARC GUI HUB ========================
addcmd("arcgui", {}, function(args, speaker)
if ArcGUI.Panels["arcgui_hub"] then ArcGUI.ClosePanel("arcgui_hub") return end
local p = ArcGUI.CreatePanel("arcgui_hub", "Arc Yield GUI Hub", nil)
local categories = {
{"-- MOVEMENT --", nil},
{"Fly", function() execCmd("arcfly") end},
{"Hyperspeed", function() execCmd("archyper") end},
{"Super Jump", function() execCmd("arcsjump") end},
{"Bunny Hop", function() execCmd("arcbhop") end},
{"Inf Jump", function() execCmd("arcinfjump") end},
{"Float", function() execCmd("arcfloat") end},
{"Bouncy", function() execCmd("arcbouncy") end},
{"AntiGrav", function() execCmd("arcantigrav") end},
{"Dash", function() execCmd("arcdash") end},
{"Spider", function() execCmd("arcspider") end},
{"Noclip", function() execCmd("arcnoclip") end},
{"Speed", function() execCmd("arcspeed") end},
{"JumpPower", function() execCmd("arcjp") end},
{"CFly", function() execCmd("arccfly") end},
{"VFly", function() execCmd("arcvfly") end},
{"-- VISUALS --", nil},
{"ESP", function() execCmd("arcesp") end},
{"Item ESP", function() execCmd("arcitemesp") end},
{"Part ESP", function() execCmd("arcpartesp") end},
{"Vehicle ESP", function() execCmd("arcvesp") end},
{"Mob ESP", function() execCmd("arcmobesp") end},
{"Chams", function() execCmd("arcchams") end},
{"Trail", function() execCmd("arctrail") end},
{"Night Vision", function() execCmd("arcnv") end},
{"Wireframe", function() execCmd("arcwireframe") end},
{"Fullbright", function() execCmd("arcfb") end},
{"-- COMBAT --", nil},
{"Kill Aura", function() execCmd("arckaura") end},
{"Reach", function() execCmd("arcreach") end},
{"Tool Grabber", function() execCmd("arctoolgrab") end},
{"Auto Farm", function() execCmd("arcautofarm") end},
{"Tool Copy", function() execCmd("arctoolcopy") end},
{"Explode", function() execCmd("arcexplode") end},
{"-- PLAYER CTRL --", nil},
{"Server Lock", function() execCmd("arcslock") end},
{"Loop Kill", function() execCmd("arcloopkill") end},
{"Jail", function() execCmd("arcjail") end},
{"Freeze", function() execCmd("arcfreeze") end},
{"Blind", function() execCmd("arcblind") end},
{"Fling", function() execCmd("arcfling") end},
{"Bring All", function() execCmd("arcbringall") end},
{"TP All", function() execCmd("arctpall") end},
{"Crash", function() execCmd("arccrash") end},
{"-- EFFECTS --", nil},
{"Spin", function() execCmd("arcspin2") end},
{"Seizure", function() execCmd("arcseizure") end},
{"Fire", function() execCmd("arcfire") end},
{"Sparkles", function() execCmd("arcsparkles") end},
{"Smoke", function() execCmd("arcsmoke") end},
{"Tiny", function() execCmd("arctiny") end},
{"Giant", function() execCmd("arcgiant") end},
{"-- MISC --", nil},
{"Gravity", function() execCmd("arcgravity") end},
{"Music", function() execCmd("arcmusic") end},
{"NPP", function() execCmd("arcnpp") end},
{"-- DETECT --", nil},
{"IY/Arc User ESP", function() execCmd("arcuseresp") end},
{"-- TROLL --", nil},
{"FunnyUA", function() execCmd("funnyua") end},
{"Orbital Lazer", function() execCmd("orbitallazer") end},
{"Arrow", function() execCmd("arrow me") end},
{"AntiUA", function() execCmd("antiua") end},
{"0Gravity UA", function() execCmd("0gravityua") end},
{"Mouse UA", function() execCmd("mouseua") end},
{"Desync", function() execCmd("arcdesync") end},
}
for _, item in ipairs(categories) do
if item[2] == nil then
ArcGUI.CreateSeparator(p)
local catLabel = Instance.new("TextLabel")
catLabel.Name = randomString()
catLabel.BackgroundTransparency = 1
catLabel.Size = UDim2.new(1, -8, 0, 18)
catLabel.Font = Enum.Font.SourceSansBold
catLabel.TextSize = 11
catLabel.Text = item[1]
catLabel.TextColor3 = BLUE
catLabel.TextStrokeTransparency = 0.8
catLabel.TextXAlignment = Enum.TextXAlignment.Left
catLabel.ZIndex = ARC_ZINDEX + 2
catLabel.Parent = p.Content
table.insert(text1, catLabel)
p.YOffset = p.YOffset + 18
updatePanelSize(p)
else
local btn = ArcGUI.CreateButton(p, item[1], item[2])
end
end
ArcGUI.CreateButton(p, "Close All Panels", function()
for name, _ in pairs(ArcGUI.Panels) do
pcall(function() ArcGUI.ClosePanel(name) end)
end
end)
end)
-- ======================== CLOSE ALL ARC PANELS ========================
addcmd("closearc", {"closeallarc"}, function(args, speaker)
for name, _ in pairs(ArcGUI.Panels) do
pcall(function() ArcGUI.ClosePanel(name) end)
end
notify("Arc Yield", "All GUI panels closed!")
end)
-- ======================== 1. FLY ========================
addcmd("arcfly", {"afly"}, function(args, speaker)
if not ArcGUI.TogglePanel("fly") then return end
local p = ArcGUI.CreatePanel("fly", "Fly", function()
if p._flyOn then
pcall(function() NOFLY() end)
end
end)
p._flyOn = false
local flySpeed = 1
local infoLabel = ArcGUI.CreateButton(p, "E to fly, Ctrl/W/S to descend/ascend", function() end)
infoLabel.Button.AutoButtonColor = false
infoLabel.Button.BackgroundColor3 = SHADE3
infoLabel.Button.TextSize = 10
infoLabel.Button.TextWrapped = true
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._flyOn = state
if state then
pcall(function() sFLY() end)
else
pcall(function() NOFLY() end)
end
end)
local slider = ArcGUI.CreateSlider(p, "Speed", 0.01, 50, 1, function(val)
flySpeed = val
iyflyspeed = val
end)
end)
-- ======================== 2. HYPERSPEED ========================
addcmd("archyper", {"ahspeed"}, function(args, speaker)
if not ArcGUI.TogglePanel("hyperspeed") then return end
local p = ArcGUI.CreatePanel("hyperspeed", "Hyperspeed", function()
if hyperSpeedConn then
hyperSpeedConn:Disconnect()
hyperSpeedConn = nil
end
end)
p._hsOn = false
local hsSpeed = 150
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._hsOn = state
if state then
local char = Players.LocalPlayer.Character
if not char then return end
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
hum.WalkSpeed = hsSpeed
if hyperSpeedConn then hyperSpeedConn:Disconnect() end
hyperSpeedConn = RunService.Heartbeat:Connect(function()
if hum and hum.Parent then
hum.WalkSpeed = hsSpeed
end
end)
end
else
if hyperSpeedConn then
hyperSpeedConn:Disconnect()
hyperSpeedConn = nil
end
local char = Players.LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then hum.WalkSpeed = 16 end
end
end
end)
local slider = ArcGUI.CreateSlider(p, "Speed", 10, 1000, 150, function(val)
hsSpeed = val
if p._hsOn then
local char = Players.LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then hum.WalkSpeed = val end
end
end
end)
end)
-- ======================== 3. SUPERJUMP ========================
addcmd("arcsjump", {"asjump"}, function(args, speaker)
if not ArcGUI.TogglePanel("superjump") then return end
local p = ArcGUI.CreatePanel("superjump", "Super Jump", function()
if superJumpConn then
superJumpConn:Disconnect()
superJumpConn = nil
end
end)
p._sjOn = false
local sjPower = 150
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._sjOn = state
if state then
if superJumpConn then superJumpConn:Disconnect() end
superJumpConn = UserInputService.JumpRequest:Connect(function()
local char = Players.LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
hum.JumpPower = sjPower
end
end
end)
else
if superJumpConn then
superJumpConn:Disconnect()
superJumpConn = nil
end
end
end)
local slider = ArcGUI.CreateSlider(p, "Power", 10, 500, 150, function(val)
sjPower = val
end)
end)
-- ======================== 4. BHOP ========================
addcmd("arcbhop", {"abhop"}, function(args, speaker)
if not ArcGUI.TogglePanel("bhop") then return end
local p = ArcGUI.CreatePanel("bhop", "Bunny Hop", function()
if bhopConn then
bhopConn:Disconnect()
bhopConn = nil
end
end)
p._bhOn = false
local bhHeight = 40
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._bhOn = state
if state then
if bhopConn then bhopConn:Disconnect() end
bhopConn = RunService.RenderStepped:Connect(function()
if Players.LocalPlayer.Character then
local hum = Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
if hum then
if hum.MoveDirection.Magnitude > 0 then
hum.Jump = true
hum.JumpPower = bhHeight
end
end
end
end)
else
if bhopConn then bhopConn:Disconnect() bhopConn = nil end
end
end)
local slider = ArcGUI.CreateSlider(p, "Boost Height", 10, 100, 40, function(val)
bhHeight = val
end)
end)
-- ======================== 5. INFJUMP ========================
addcmd("arcinfjump", {"ainfjump"}, function(args, speaker)
if not ArcGUI.TogglePanel("infjump") then return end
local p = ArcGUI.CreatePanel("infjump", "Infinite Jump", function()
if infJumpConn then
infJumpConn:Disconnect()
infJumpConn = nil
end
end)
p._ijOn = false
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._ijOn = state
if state then
if infJumpConn then infJumpConn:Disconnect() end
infJumpConn = UserInputService.JumpRequest:Connect(function()
pcall(function()
Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid").Jump = true
end)
end)
else
if infJumpConn then infJumpConn:Disconnect() infJumpConn = nil end
end
end)
end)
-- ======================== 6. FLOAT ========================
addcmd("arcfloat", {"afloat"}, function(args, speaker)
if not ArcGUI.TogglePanel("float") then return end
local p = ArcGUI.CreatePanel("float", "Float", function()
if floatConn then
floatConn:Disconnect()
floatConn = nil
end
end)
p._flOn = false
local riseSpeed = 50
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._flOn = state
if state then
if floatConn then floatConn:Disconnect() end
floatConn = RunService.Stepped:Connect(function()
pcall(function()
local hrp = Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.Velocity = Vector3.new(hrp.Velocity.X, riseSpeed, hrp.Velocity.Z)
end
end)
end)
else
if floatConn then floatConn:Disconnect() floatConn = nil end
end
end)
local slider = ArcGUI.CreateSlider(p, "Rise Speed", 0, 100, 50, function(val)
riseSpeed = val
end)
end)
-- ======================== 7. BOUNCY ========================
addcmd("arcbouncy", {"abouncy"}, function(args, speaker)
if not ArcGUI.TogglePanel("bouncy") then return end
local p = ArcGUI.CreatePanel("bouncy", "Bouncy", function()
if bouncyConn then
bouncyConn:Disconnect()
bouncyConn = nil
end
end)
p._boOn = false
local bouncePower = 120
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._boOn = state
if state then
if bouncyConn then bouncyConn:Disconnect() end
bouncyConn = RunService.Stepped:Connect(function()
pcall(function()
local hrp = Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp and hrp.Velocity.Y < 0 then
hrp.Velocity = Vector3.new(hrp.Velocity.X, bouncePower, hrp.Velocity.Z)
end
end)
end)
else
if bouncyConn then bouncyConn:Disconnect() bouncyConn = nil end
end
end)
local slider = ArcGUI.CreateSlider(p, "Bounce Power", 20, 300, 120, function(val)
bouncePower = val
end)
end)
-- ======================== 8. ANTIGRAV ========================
addcmd("arcantigrav", {"aantigrav"}, function(args, speaker)
if not ArcGUI.TogglePanel("antigrav") then return end
local p = ArcGUI.CreatePanel("antigrav", "Anti Gravity", function()
if antigravBF then
antigravBF:Destroy()
antigravBF = nil
end
end)
p._agOn = false
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._agOn = state
if state then
pcall(function()
local char = Players.LocalPlayer.Character
if char then
local hrp = char:FindFirstChild("HumanoidRootPart")
if hrp then
antigravBF = Instance.new("BodyForce")
antigravBF.Name = randomString()
antigravBF.Force = Vector3.new(0, workspace.Gravity * hrp:GetMass(), 0)
antigravBF.Parent = hrp
end
end
end)
else
pcall(function()
if antigravBF then
antigravBF:Destroy()
antigravBF = nil
end
end)
end
end)
end)
-- ======================== 9. DASH ========================
addcmd("arcdash", {"adash"}, function(args, speaker)
if not ArcGUI.TogglePanel("dash") then return end
local p = ArcGUI.CreatePanel("dash", "Dash", function() end)
local dashPower = 300
local slider = ArcGUI.CreateSlider(p, "Power", 50, 1000, 300, function(val)
dashPower = val
end)
local btn = ArcGUI.CreateButton(p, "DASH!", function()
pcall(function()
local char = Players.LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
local hrp = char:FindFirstChild("HumanoidRootPart")
if hum and hrp and hum.MoveDirection.Magnitude > 0 then
hrp.Velocity = hrp.Velocity + hum.MoveDirection * dashPower
end
end
end)
end)
end)
-- ======================== 10. SPIDER ========================
addcmd("arcspider", {"aspider"}, function(args, speaker)
if not ArcGUI.TogglePanel("spider") then return end
local p = ArcGUI.CreatePanel("spider", "Spider Climb", function()
if spiderConn then
spiderConn:Disconnect()
spiderConn = nil
end
end)
p._spOn = false
local climbSpeed = 50
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._spOn = state
if state then
if spiderConn then spiderConn:Disconnect() end
spiderConn = RunService.Stepped:Connect(function()
pcall(function()
local char = Players.LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
local hrp = char:FindFirstChild("HumanoidRootPart")
if hum and hrp then
if hum.MoveDirection.Magnitude > 0 then
local ray = Ray.new(hrp.Position, hrp.CFrame.LookVector * 3)
local part = workspace:FindPartOnRayWithWhitelist(ray, {workspace})
if part then
hrp.Velocity = Vector3.new(hrp.Velocity.X, climbSpeed, hrp.Velocity.Z)
end
end
end
end
end)
end)
else
if spiderConn then spiderConn:Disconnect() spiderConn = nil end
end
end)
local slider = ArcGUI.CreateSlider(p, "Climb Speed", 10, 200, 50, function(val)
climbSpeed = val
end)
end)
-- ======================== 11. NOCLIP ========================
addcmd("arcnoclip", {"anoclip"}, function(args, speaker)
if not ArcGUI.TogglePanel("noclip") then return end
local p = ArcGUI.CreatePanel("noclip", "Noclip", function()
if p._ncConn then
p._ncConn:Disconnect()
p._ncConn = nil
end
end)
p._ncOn = false
p._ncConn = nil
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._ncOn = state
if state then
if p._ncConn then p._ncConn:Disconnect() end
p._ncConn = RunService.Stepped:Connect(function()
pcall(function()
local char = Players.LocalPlayer.Character
if char then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end)
end)
else
if p._ncConn then p._ncConn:Disconnect() p._ncConn = nil end
pcall(function()
local char = Players.LocalPlayer.Character
if char then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
end
end)
end
end)
end)
-- ======================== 12. SPEED ========================
addcmd("arcspeed", {"aspeed"}, function(args, speaker)
if not ArcGUI.TogglePanel("speed") then return end
local p = ArcGUI.CreatePanel("speed", "WalkSpeed", function()
pcall(function()
local char = Players.LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then hum.WalkSpeed = 16 end
end
end)
end)
local slider = ArcGUI.CreateSlider(p, "WalkSpeed", 1, 1000, 16, function(val)
pcall(function()
local char = Players.LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then hum.WalkSpeed = val end
end
end)
end)
end)
-- ======================== 13. JUMPPOWER ========================
addcmd("arcjp", {"ajumppower"}, function(args, speaker)
if not ArcGUI.TogglePanel("jumppower") then return end
local p = ArcGUI.CreatePanel("jumppower", "JumpPower", function()
pcall(function()
local char = Players.LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then hum.JumpPower = 50 end
end
end)
end)
local slider = ArcGUI.CreateSlider(p, "JumpPower", 0, 500, 50, function(val)
pcall(function()
local char = Players.LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then hum.JumpPower = val end
end
end)
end)
end)
-- ======================== 14. CFRAMEFLY ========================
addcmd("arccfly", {"accfly"}, function(args, speaker)
if not ArcGUI.TogglePanel("cframefly") then return end
local p = ArcGUI.CreatePanel("cframefly", "CFrame Fly", function()
if p._cfConn then
p._cfConn:Disconnect()
p._cfConn = nil
end
end)
p._cfOn = false
p._cfConn = nil
local cfSpeed = 1
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._cfOn = state
if state then
if p._cfConn then p._cfConn:Disconnect() end
p._cfConn = RunService.RenderStepped:Connect(function()
pcall(function()
local cam = workspace.CurrentCamera
local hrp = Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if cam and hrp then
local cf = cam.CFrame
local moveDir = Vector3.new(0, 0, 0)
if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + cf.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - cf.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - cf.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + cf.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDir = moveDir + Vector3.new(0, 1, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveDir = moveDir - Vector3.new(0, 1, 0) end
hrp.CFrame = hrp.CFrame + moveDir * cfSpeed
end
end)
end)
else
if p._cfConn then p._cfConn:Disconnect() p._cfConn = nil end
end
end)
local slider = ArcGUI.CreateSlider(p, "Speed", 1, 500, 1, function(val)
cfSpeed = val
end)
end)
-- ======================== 15. VFLY ========================
addcmd("arcvfly", {"avfly"}, function(args, speaker)
if not ArcGUI.TogglePanel("vfly") then return end
local p = ArcGUI.CreatePanel("vfly", "Vehicle Fly", function()
if p._vfConn then
p._vfConn:Disconnect()
p._vfConn = nil
end
end)
p._vfOn = false
p._vfConn = nil
local vfSpeed = 1
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._vfOn = state
if state then
pcall(function()
local char = Players.LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
local bv = Instance.new("BodyVelocity")
bv.Name = randomString()
bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bv.Velocity = Vector3.new(0, 0, 0)
bv.Parent = char:FindFirstChild("HumanoidRootPart") or char.PrimaryPart
local bg = Instance.new("BodyGyro")
bg.Name = randomString()
bg.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
bg.P = 9e4
bg.Parent = char:FindFirstChild("HumanoidRootPart") or char.PrimaryPart
p._vfBV = bv
p._vfBG = bg
if p._vfConn then p._vfConn:Disconnect() end
p._vfConn = RunService.RenderStepped:Connect(function()
pcall(function()
local cam = workspace.CurrentCamera
if bv and bv.Parent and bg and bg.Parent then
local moveDir = Vector3.new(0, 0, 0)
if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + cam.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - cam.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - cam.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + cam.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDir = moveDir + Vector3.new(0, 1, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveDir = moveDir - Vector3.new(0, 1, 0) end
bv.Velocity = moveDir * vfSpeed
bg.CFrame = cam.CFrame
end
end)
end)
end
end
end)
else
if p._vfConn then p._vfConn:Disconnect() p._vfConn = nil end
pcall(function()
if p._vfBV then p._vfBV:Destroy() p._vfBV = nil end
if p._vfBG then p._vfBG:Destroy() p._vfBG = nil end
end)
end
end)
local slider = ArcGUI.CreateSlider(p, "Speed", 1, 500, 1, function(val)
vfSpeed = val
end)
end)
-- ======================== 16. ESP ========================
addcmd("arcesp", {"aesp"}, function(args, speaker)
if not ArcGUI.TogglePanel("esp") then return end
local p = ArcGUI.CreatePanel("esp", "ESP", function()
execCmd("noesp")
end)
p._espOn = false
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._espOn = state
if state then
execCmd("esp")
else
execCmd("noesp")
end
end)
local slider = ArcGUI.CreateSlider(p, "Transparency", 0, 1, 0.3, function(val)
execCmd("esptransparency " .. tostring(val))
end)
ArcGUI.CreateSeparator(p)
local teamBtn = ArcGUI.CreateButton(p, "ESP Team Only", function()
execCmd("espteam")
end)
end)
-- ======================== 17. ITEM ESP ========================
addcmd("arcitemesp", {"aitemesp"}, function(args, speaker)
if not ArcGUI.TogglePanel("itemesp") then return end
local p = ArcGUI.CreatePanel("itemesp", "Item ESP", function()
itemEspActive = false
if itemEspConn then
itemEspConn:Disconnect()
itemEspConn = nil
end
if itemEspDraws then
for _, d in pairs(itemEspDraws) do
if d and d.Parent then d:Destroy() end
end
end
end)
p._ieOn = false
local ieRange = 100
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._ieOn = state
if state then
itemEspActive = true
execCmd("itemesp " .. tostring(ieRange))
else
itemEspActive = false
execCmd("noesp")
end
end)
local slider = ArcGUI.CreateSlider(p, "Range", 10, 500, 100, function(val)
ieRange = val
end)
end)
-- ======================== 18. PART ESP ========================
addcmd("arcpartesp", {"apartesp"}, function(args, speaker)
if not ArcGUI.TogglePanel("partesp") then return end
local p = ArcGUI.CreatePanel("partesp", "Part ESP", function()
partEspActive = false
if partEspConn then
partEspConn:Disconnect()
partEspConn = nil
end
if partEspDraws then
for _, d in pairs(partEspDraws) do
if d and d.Parent then d:Destroy() end
end
end
end)
p._peOn = false
local filterText = ArcGUI.CreateTextBox(p, "Filter", "Enter part name filter", "")
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._peOn = state
if state then
local ft = filterText:GetText()
if ft and ft ~= "" then
execCmd("partesp " .. ft)
else
execCmd("partesp")
end
else
execCmd("unpartesp")
end
end)
end)
-- ======================== 19. VEHICLE ESP ========================
addcmd("arcvesp", {"avesp"}, function(args, speaker)
if not ArcGUI.TogglePanel("vehicleesp") then return end
local p = ArcGUI.CreatePanel("vehicleesp", "Vehicle ESP", function()
vehicleEspActive = false
if vehicleEspConn then
vehicleEspConn:Disconnect()
vehicleEspConn = nil
end
end)
p._veOn = false
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._veOn = state
if state then
vehicleEspActive = true
execCmd("vehicleesp")
else
vehicleEspActive = false
end
end)
end)
-- ======================== 20. MOB ESP ========================
addcmd("arcmobesp", {"amobesp"}, function(args, speaker)
if not ArcGUI.TogglePanel("mobesp") then return end
local p = ArcGUI.CreatePanel("mobesp", "Mob/NPC ESP", function()
mobEspActive = false
if mobEspConn then
mobEspConn:Disconnect()
mobEspConn = nil
end
if mobEspDraws then
for _, d in pairs(mobEspDraws) do
if d and d.Parent then d:Destroy() end
end
end
end)
p._meOn = false
local meRange = 200
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._meOn = state
if state then
mobEspActive = true
else
mobEspActive = false
end
end)
local slider = ArcGUI.CreateSlider(p, "Range", 10, 500, 200, function(val)
meRange = val
end)
end)
-- ======================== 21. CHAMS ========================
addcmd("arcchams", {"achams"}, function(args, speaker)
if not ArcGUI.TogglePanel("chams") then return end
local p = ArcGUI.CreatePanel("chams", "Chams", function()
chamsActive = false
if chamsConn then
chamsConn:Disconnect()
chamsConn = nil
end
if chamsHls then
for _, hl in pairs(chamsHls) do
if hl and hl.Parent then hl:Destroy() end
end
chamsHls = {}
end
execCmd("nochams")
end)
p._chOn = false
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._chOn = state
if state then
chamsActive = true
execCmd("chams")
else
chamsActive = false
execCmd("nochams")
end
end)
local slider = ArcGUI.CreateSlider(p, "Fill Transparency", 0, 1, 0.5, function(val) end)
end)
-- ======================== 22. TRAIL ========================
addcmd("arctrail", {"atrail"}, function(args, speaker)
if not ArcGUI.TogglePanel("trail") then return end
local p = ArcGUI.CreatePanel("trail", "Trail", function()
trailActive = false
if trailConn then
trailConn:Disconnect()
trailConn = nil
end
if trailParts then
for _, tp in pairs(trailParts) do
if tp and tp.Parent then tp:Destroy() end
end
end
execCmd("untrail")
end)
p._trOn = false
local trColor = "#0066ff"
local trLife = 2
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._trOn = state
if state then
trailActive = true
execCmd("trail")
else
trailActive = false
execCmd("untrail")
end
end)
local colorBox = ArcGUI.CreateTextBox(p, "Color (Hex)", "#0066ff", "#0066ff")
local slider = ArcGUI.CreateSlider(p, "Lifetime", 0.5, 5, 2, function(val)
trLife = val
end)
end)
-- ======================== 23. NIGHTVISION ========================
addcmd("arcnv", {"anv"}, function(args, speaker)
if not ArcGUI.TogglePanel("nightvision") then return end
local p = ArcGUI.CreatePanel("nightvision", "Night Vision", function()
nightvisionActive = false
if nightvisionCC then
nightvisionCC:Destroy()
nightvisionCC = nil
end
end)
p._nvOn = false
local nvBrightness = 0.3
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._nvOn = state
if state then
nightvisionActive = true
if not nightvisionCC then
nightvisionCC = Instance.new("ColorCorrectionEffect")
nightvisionCC.Name = randomString()
nightvisionCC.Brightness = nvBrightness
nightvisionCC.Contrast = 0.2
nightvisionCC.Saturation = -0.2
nightvisionCC.Parent = Lighting
end
else
nightvisionActive = false
if nightvisionCC then
nightvisionCC:Destroy()
nightvisionCC = nil
end
end
end)
local slider = ArcGUI.CreateSlider(p, "Brightness", 0, 1, 0.3, function(val)
nvBrightness = val
if nightvisionCC then
nightvisionCC.Brightness = val
end
end)
end)
-- ======================== 24. WIREFRAME ========================
addcmd("arcwireframe", {"awireframe"}, function(args, speaker)
if not ArcGUI.TogglePanel("wireframe") then return end
local p = ArcGUI.CreatePanel("wireframe", "Wireframe", function()
wireframeActive = false
if wireframeParts then
for _, v in pairs(wireframeParts) do
if v and v.Material ~= nil then
v.Material = v:GetAttribute("OrigMat") or Enum.Material.Plastic
v:RemoveAttribute("OrigMat")
end
end
wireframeParts = {}
end
execCmd("unwireframe")
end)
p._wfOn = false
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._wfOn = state
if state then
wireframeActive = true
execCmd("wireframe")
else
wireframeActive = false
execCmd("unwireframe")
end
end)
end)
-- ======================== 25. FULLBRIGHT ========================
addcmd("arcfb", {"afb"}, function(args, speaker)
if not ArcGUI.TogglePanel("fullbright") then return end
local p = ArcGUI.CreatePanel("fullbright", "Fullbright", function()
fullbrightActive = false
if fullbrightOrig then
Lighting.Ambient = fullbrightOrig.Ambient or Color3.fromRGB(0, 0, 0)
Lighting.OutdoorAmbient = fullbrightOrig.OutdoorAmbient or Color3.fromRGB(0, 0, 0)
Lighting.Brightness = fullbrightOrig.Brightness or 1
Lighting.GlobalShadows = true
fullbrightOrig = {}
end
end)
p._fbOn = false
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._fbOn = state
if state then
fullbrightActive = true
execCmd("fullbright")
else
fullbrightActive = false
end
end)
end)
-- ======================== 26. KILLAURA ========================
addcmd("arckaura", {"akaura"}, function(args, speaker)
if not ArcGUI.TogglePanel("killaura") then return end
local p = ArcGUI.CreatePanel("killaura", "Kill Aura", function()
if killAuraConn then
killAuraConn:Disconnect()
killAuraConn = nil
end
end)
p._kaOn = false
local kaRange = 25
local kaDamage = 5
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._kaOn = state
if state then
if killAuraConn then killAuraConn:Disconnect() end
killAuraConn = RunService.RenderStepped:Connect(function()
pcall(function()
local char = Players.LocalPlayer.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= Players.LocalPlayer and plr.Character then
local eHrp = plr.Character:FindFirstChild("HumanoidRootPart")
local eHum = plr.Character:FindFirstChildOfClass("Humanoid")
if eHrp and eHum and (hrp.Position - eHrp.Position).Magnitude <= kaRange then
eHum:TakeDamage(kaDamage)
end
end
end
end)
end)
else
if killAuraConn then killAuraConn:Disconnect() killAuraConn = nil end
end
end)
local rangeSlider = ArcGUI.CreateSlider(p, "Range", 5, 100, 25, function(val)
kaRange = val
end)
local dmgSlider = ArcGUI.CreateSlider(p, "Damage", 1, 100, 5, function(val)
kaDamage = val
end)
end)
-- ======================== 27. REACH ========================
addcmd("arcreach", {"areach"}, function(args, speaker)
if not ArcGUI.TogglePanel("reach") then return end
local p = ArcGUI.CreatePanel("reach", "Reach", function()
reachActive = false
if reachOrig then
pcall(function()
local char = Players.LocalPlayer.Character
if char then
for _, tool in pairs(char:GetChildren()) do
if tool:IsA("Tool") then
local handle = tool:FindFirstChild("Handle")
if handle and reachOrig[handle] then
handle.Size = reachOrig[handle]
end
end
end
end
end)
reachOrig = {}
end
end)
p._reOn = false
local reachDist = 20
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._reOn = state
if state then
reachActive = true
reachDist = reachDist
else
reachActive = false
end
end)
local slider = ArcGUI.CreateSlider(p, "Distance", 5, 100, 20, function(val)
reachDist = val
end)
end)
-- ======================== 28. TOOLGRABBER ========================
addcmd("arctoolgrab", {"atoolgrab"}, function(args, speaker)
if not ArcGUI.TogglePanel("toolgrabber") then return end
local p = ArcGUI.CreatePanel("toolgrabber", "Tool Grabber", function()
if toolGrabberConn then
toolGrabberConn:Disconnect()
toolGrabberConn = nil
end
end)
p._tgOn = false
local tgRange = 100
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._tgOn = state
if state then
if toolGrabberConn then toolGrabberConn:Disconnect() end
toolGrabberConn = RunService.RenderStepped:Connect(function()
pcall(function()
local char = Players.LocalPlayer.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
for _, item in pairs(workspace:GetChildren()) do
if item:IsA("Tool") and (item.Handle.Position - hrp.Position).Magnitude <= tgRange then
if item.Parent ~= char then
firetouchinterest(item.Handle, hrp, 0)
firetouchinterest(item.Handle, hrp, 1)
end
end
end
end)
end)
else
if toolGrabberConn then toolGrabberConn:Disconnect() toolGrabberConn = nil end
end
end)
local slider = ArcGUI.CreateSlider(p, "Range", 10, 300, 100, function(val)
tgRange = val
end)
end)
-- ======================== 29. AUTOFARM ========================
addcmd("arcautofarm", {"aautofarm"}, function(args, speaker)
if not ArcGUI.TogglePanel("autofarm") then return end
local p = ArcGUI.CreatePanel("autofarm", "Auto Farm/Collect", function()
if autoFarmConn then
autoFarmConn:Disconnect()
autoFarmConn = nil
end
end)
p._afOn = false
local afRange = 50
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._afOn = state
if state then
if autoFarmConn then autoFarmConn:Disconnect() end
autoFarmConn = RunService.RenderStepped:Connect(function()
pcall(function()
local char = Players.LocalPlayer.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
for _, obj in pairs(workspace:GetDescendants()) do
if (obj:IsA("BasePart") or obj:IsA("Model") or obj:IsA("Tool") or obj:IsA("CoinContainer") or obj:IsA("Collectible") or obj:IsA("Part")) and obj:IsDescendantOf(workspace) then
local pos = obj:IsA("Model") and (obj.PrimaryPart and obj.PrimaryPart.Position) or obj.Position
if pos and (pos - hrp.Position).Magnitude <= afRange then
firetouchinterest(obj:IsA("Model") and obj.PrimaryPart or obj, hrp, 0)
firetouchinterest(obj:IsA("Model") and obj.PrimaryPart or obj, hrp, 1)
end
end
end
end)
end)
else
if autoFarmConn then autoFarmConn:Disconnect() autoFarmConn = nil end
end
end)
local slider = ArcGUI.CreateSlider(p, "Range", 10, 200, 50, function(val)
afRange = val
end)
end)
-- ======================== 30. TOOLCOPY ========================
addcmd("arctoolcopy", {"atoolcopy"}, function(args, speaker)
if not ArcGUI.TogglePanel("toolcopy") then return end
local p = ArcGUI.CreatePanel("toolcopy", "Tool Copy", function() end)
local nameInput = ArcGUI.CreateTextBox(p, "Player Name", "Enter player name", "")
local btn = ArcGUI.CreateButton(p, "Copy Tools", function()
local plrName = nameInput:GetText()
if plrName and plrName ~= "" then
execCmd("toolcopy " .. plrName)
else
notify("Arc Yield", "Enter a player name first!")
end
end)
end)
-- ======================== 31. EXPLODE ========================
addcmd("arcexplode", {"aexplode"}, function(args, speaker)
if not ArcGUI.TogglePanel("explode") then return end
local p = ArcGUI.CreatePanel("explode", "Explode Player", function() end)
local nameInput = ArcGUI.CreateTextBox(p, "Player Name", "Enter player name", "")
local blastRadius = 20
local slider = ArcGUI.CreateSlider(p, "Blast Radius", 5, 100, 20, function(val)
blastRadius = val
end)
local btn = ArcGUI.CreateButton(p, "EXPLODE!", function()
local plrName = nameInput:GetText()
if plrName and plrName ~= "" then
execCmd("explode " .. plrName)
else
notify("Arc Yield", "Enter a player name first!")
end
end)
end)
-- ======================== 32. SERVERLOCK ========================
addcmd("arcslock", {"aslock"}, function(args, speaker)
if not ArcGUI.TogglePanel("serverlock") then return end
local p = ArcGUI.CreatePanel("serverlock", "Server Lock", function()
if serverLockConn then
serverLockConn:Disconnect()
serverLockConn = nil
end
end)
p._slOn = false
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._slOn = state
if state then
if serverLockConn then serverLockConn:Disconnect() end
serverLockConn = Players.PlayerAdded:Connect(function(player)
player:Kick("\nServer is locked by Arc Yield")
end)
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= Players.LocalPlayer then
pcall(function() plr:Kick("\nServer is locked by Arc Yield") end)
end
end
else
if serverLockConn then serverLockConn:Disconnect() serverLockConn = nil end
end
end)
end)
-- ======================== 33. LOOPKILL ========================
addcmd("arcloopkill", {"aloopkill"}, function(args, speaker)
if not ArcGUI.TogglePanel("loopkill") then return end
local p = ArcGUI.CreatePanel("loopkill", "Loop Kill", function()
if loopKillConn then
loopKillConn:Disconnect()
loopKillConn = nil
end
loopKillList = {}
end)
p._lkOn = false
local nameInput = ArcGUI.CreateTextBox(p, "Player Name", "Enter player name", "")
local startBtn = ArcGUI.CreateButton(p, "Start Loop Kill", function()
local plrName = nameInput:GetText()
if plrName and plrName ~= "" then
local target = FindPlayer(plrName, Players.LocalPlayer)
if target then
p._lkOn = true
if loopKillConn then loopKillConn:Disconnect() end
table.insert(loopKillList, target)
loopKillConn = RunService.RenderStepped:Connect(function()
pcall(function()
if target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
local char = Players.LocalPlayer.Character
if char and char:FindFirstChild("HumanoidRootPart") then
char:FindFirstChild("HumanoidRootPart").CFrame = target.Character.HumanoidRootPart.CFrame
end
pcall(function() target.Character:FindFirstChildOfClass("Humanoid").Health = 0 end)
end
end)
end)
notify("Arc Yield", "Loop killing " .. target.Name)
else
notify("Arc Yield", "Player not found!")
end
else
notify("Arc Yield", "Enter a player name first!")
end
end)
local stopBtn = ArcGUI.CreateButton(p, "Stop Loop Kill", function()
p._lkOn = false
if loopKillConn then
loopKillConn:Disconnect()
loopKillConn = nil
end
loopKillList = {}
notify("Arc Yield", "Loop kill stopped")
end)
stopBtn.Button.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
end)
-- ======================== 34. JAIL ========================
addcmd("arcjail", {"ajail"}, function(args, speaker)
if not ArcGUI.TogglePanel("jail") then return end
local p = ArcGUI.CreatePanel("jail", "Jail", function()
execCmd("unjail")
end)
local nameInput = ArcGUI.CreateTextBox(p, "Player Name", "Enter player name", "")
local jailBtn = ArcGUI.CreateButton(p, "Jail", function()
local plrName = nameInput:GetText()
if plrName and plrName ~= "" then
execCmd("jail " .. plrName)
else
notify("Arc Yield", "Enter a player name first!")
end
end)
local unjailBtn = ArcGUI.CreateButton(p, "Unjail", function()
local plrName = nameInput:GetText()
if plrName and plrName ~= "" then
execCmd("unjail " .. plrName)
end
end)
unjailBtn.Button.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
end)
-- ======================== 35. FREEZE ========================
addcmd("arcfreeze", {"afreeze"}, function(args, speaker)
if not ArcGUI.TogglePanel("freeze") then return end
local p = ArcGUI.CreatePanel("freeze", "Freeze Player", function()
execCmd("unfreeze")
end)
local nameInput = ArcGUI.CreateTextBox(p, "Player Name", "Enter player name", "")
local freezeBtn = ArcGUI.CreateButton(p, "Freeze", function()
local plrName = nameInput:GetText()
if plrName and plrName ~= "" then
execCmd("freeze " .. plrName)
else
notify("Arc Yield", "Enter a player name first!")
end
end)
local unfreezeBtn = ArcGUI.CreateButton(p, "Unfreeze", function()
local plrName = nameInput:GetText()
if plrName and plrName ~= "" then
execCmd("unfreeze " .. plrName)
end
end)
unfreezeBtn.Button.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
end)
-- ======================== 36. BLIND ========================
addcmd("arcblind", {"ablind"}, function(args, speaker)
if not ArcGUI.TogglePanel("blind") then return end
local p = ArcGUI.CreatePanel("blind", "Blind Player", function()
execCmd("unblind")
end)
local nameInput = ArcGUI.CreateTextBox(p, "Player Name", "Enter player name", "")
local blindBtn = ArcGUI.CreateButton(p, "Blind", function()
local plrName = nameInput:GetText()
if plrName and plrName ~= "" then
execCmd("blind " .. plrName)
else
notify("Arc Yield", "Enter a player name first!")
end
end)
local unblindBtn = ArcGUI.CreateButton(p, "Unblind", function()
local plrName = nameInput:GetText()
if plrName and plrName ~= "" then
execCmd("unblind " .. plrName)
end
end)
unblindBtn.Button.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
end)
-- ======================== 37. FLING ========================
addcmd("arcfling", {"afling"}, function(args, speaker)
if not ArcGUI.TogglePanel("fling") then return end
local p = ArcGUI.CreatePanel("fling", "Fling Player", function()
if p._flingActive then
p._flingActive = false
execCmd("unfling")
end
end)
p._flingActive = false
-- Contact-based fling toggle (like IY's fling - spin and fling anyone you touch)
local toggle = ArcGUI.CreateToggle(p, "Contact Fling (touch players)", false, function(state)
p._flingActive = state
if state then
execCmd("fling")
notify("Arc Yield", "Contact fling ON - touch players to fling them!")
else
execCmd("unfling")
notify("Arc Yield", "Contact fling OFF")
end
end)
ArcGUI.CreateSeparator(p)
-- Direct fling by partial name - uses teleport + physics spin like IY
local nameInput = ArcGUI.CreateTextBox(p, "Player (partial name OK)", "Type few letters of name...", "")
local flingPower = 500
local slider = ArcGUI.CreateSlider(p, "Power", 100, 2000, 500, function(val)
flingPower = val
end)
local btn = ArcGUI.CreateButton(p, "FLING PLAYER", function()
local plrName = nameInput:GetText()
if not plrName or plrName == "" then
notify("Arc Yield", "Type a player name first!")
return
end
local found = getPlayersByName(plrName)
if not found or #found == 0 then
notify("Arc Yield", "Player not found: " .. plrName)
return
end
for _, target in ipairs(found) do
if target ~= Players.LocalPlayer and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
-- Save current position, teleport to target, fling via physics, teleport back
local myChar = Players.LocalPlayer.Character
if not myChar or not myChar:FindFirstChild("HumanoidRootPart") then
notify("Arc Yield", "Your character not found!")
return
end
local myHRP = myChar.HumanoidRootPart
local savedPos = myHRP.CFrame
local targetPos = target.Character.HumanoidRootPart.CFrame
-- Teleport next to target
myHRP.CFrame = targetPos * CFrame.new(0, 0, 3)
-- Start fling (physics-based spin, same as IY's fling command)
task.spawn(function()
execCmd("fling")
task.wait(2)
execCmd("unfling")
-- Teleport back to saved position
task.wait(0.3)
if myHRP then
myHRP.CFrame = savedPos
end
end)
notify("Arc Yield", "Flinging " .. target.Name .. "!")
end
end
end)
btn.Button.BackgroundColor3 = ACCENT
ArcGUI.CreateSeparator(p)
local infoLabel = ArcGUI.CreateButton(p, "Tip: Contact fling = spin and touch players", function() end)
infoLabel.Button.AutoButtonColor = false
infoLabel.Button.BackgroundColor3 = SHADE2
infoLabel.Button.TextSize = 10
infoLabel.Button.TextWrapped = true
end)
-- ======================== 38. BRING ALL ========================
addcmd("arcbringall", {"abringall"}, function(args, speaker)
if not ArcGUI.TogglePanel("bringall") then return end
local p = ArcGUI.CreatePanel("bringall", "Bring All Players", function() end)
local baRange = 5
local slider = ArcGUI.CreateSlider(p, "Offset Range", 1, 50, 5, function(val)
baRange = val
end)
local btn = ArcGUI.CreateButton(p, "Bring All!", function()
pcall(function()
local char = Players.LocalPlayer.Character
if not char then return end
local myPos = char:FindFirstChild("HumanoidRootPart") and char.HumanoidRootPart.Position
if not myPos then return end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= Players.LocalPlayer and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
local offset = Vector3.new(math.random(-baRange, baRange), 0, math.random(-baRange, baRange))
plr.Character.HumanoidRootPart.CFrame = CFrame.new(myPos + offset)
end
end
notify("Arc Yield", "Brought all players!")
end)
end)
end)
-- ======================== 39. TP ALL ========================
addcmd("arctpall", {"atpall"}, function(args, speaker)
if not ArcGUI.TogglePanel("tpall") then return end
local p = ArcGUI.CreatePanel("tpall", "TP All Players", function() end)
local taRange = 5
local slider = ArcGUI.CreateSlider(p, "Offset Range", 1, 50, 5, function(val)
taRange = val
end)
local btn = ArcGUI.CreateButton(p, "TP All!", function()
pcall(function()
local char = Players.LocalPlayer.Character
if not char then return end
local myPos = char:FindFirstChild("HumanoidRootPart") and char.HumanoidRootPart.Position
if not myPos then return end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= Players.LocalPlayer and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
local offset = Vector3.new(math.random(-taRange, taRange), 0, math.random(-taRange, taRange))
plr.Character.HumanoidRootPart.CFrame = CFrame.new(myPos + offset)
end
end
notify("Arc Yield", "Teleported all players!")
end)
end)
end)
-- ======================== 40. CRASH PLAYER ========================
addcmd("arccrash", {"acrash"}, function(args, speaker)
if not ArcGUI.TogglePanel("crashplayer") then return end
local p = ArcGUI.CreatePanel("crashplayer", "Crash Player", function() end)
local nameInput = ArcGUI.CreateTextBox(p, "Player Name", "Enter player name", "")
local btn = ArcGUI.CreateButton(p, "CRASH", function()
local plrName = nameInput:GetText()
if plrName and plrName ~= "" then
execCmd("crashplayer " .. plrName)
else
notify("Arc Yield", "Enter a player name first!")
end
end)
btn.Button.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
end)
-- ======================== 41. SPIN2 ========================
addcmd("arcspin2", {"aspin2"}, function(args, speaker)
if not ArcGUI.TogglePanel("spin2") then return end
local p = ArcGUI.CreatePanel("spin2", "Spin 2", function()
if spin2BAV then
spin2BAV:Destroy()
spin2BAV = nil
end
end)
p._sp2On = false
local sp2Speed = 50
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._sp2On = state
if state then
pcall(function()
local char = Players.LocalPlayer.Character
if char and char:FindFirstChild("HumanoidRootPart") then
spin2BAV = Instance.new("BodyAngularVelocity")
spin2BAV.Name = randomString()
spin2BAV.AngularVelocity = Vector3.new(0, sp2Speed, 0)
spin2BAV.MaxTorque = Vector3.new(0, math.huge, 0)
spin2BAV.Parent = char.HumanoidRootPart
end
end)
else
pcall(function()
if spin2BAV then
spin2BAV:Destroy()
spin2BAV = nil
end
end)
end
end)
local slider = ArcGUI.CreateSlider(p, "Speed", 5, 200, 50, function(val)
sp2Speed = val
if spin2BAV then
spin2BAV.AngularVelocity = Vector3.new(0, val, 0)
end
end)
end)
-- ======================== 42. SEIZURE ========================
addcmd("arcseizure", {"aseizure"}, function(args, speaker)
if not ArcGUI.TogglePanel("seizure") then return end
local p = ArcGUI.CreatePanel("seizure", "Seizure", function()
if seizureConn then
seizureConn:Disconnect()
seizureConn = nil
end
if seizureParts then
for _, v in pairs(seizureParts) do
if v and v.Parent then v:Destroy() end
end
seizureParts = {}
end
end)
p._szOn = false
local szIntensity = 5
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._szOn = state
if state then
if seizureConn then seizureConn:Disconnect() end
seizureConn = RunService.RenderStepped:Connect(function()
pcall(function()
local char = Players.LocalPlayer.Character
if not char then return end
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.CFrame = part.CFrame * CFrame.Angles(
math.rad(math.random(-szIntensity, szIntensity)),
math.rad(math.random(-szIntensity, szIntensity)),
math.rad(math.random(-szIntensity, szIntensity))
)
end
end
end)
end)
else
if seizureConn then seizureConn:Disconnect() seizureConn = nil end
end
end)
local slider = ArcGUI.CreateSlider(p, "Intensity", 1, 10, 5, function(val)
szIntensity = val
end)
end)
-- ======================== 43. FIRE ========================
addcmd("arcfire", {"afire"}, function(args, speaker)
if not ArcGUI.TogglePanel("fire") then return end
local p = ArcGUI.CreatePanel("fire", "Fire Effect", function()
if fireObj then
fireObj:Destroy()
fireObj = nil
end
end)
p._feOn = false
local feColor = Color3.fromRGB(255, 100, 0)
local feSize = 8
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._feOn = state
if state then
pcall(function()
local char = Players.LocalPlayer.Character
if char and char:FindFirstChild("HumanoidRootPart") then
if fireObj then fireObj:Destroy() end
fireObj = Instance.new("Fire")
fireObj.Name = randomString()
fireObj.Color = feColor
fireObj.Size = feSize
fireObj.Parent = char.HumanoidRootPart
end
end)
else
pcall(function()
if fireObj then fireObj:Destroy() fireObj = nil end
end)
end
end)
local colorBox = ArcGUI.CreateTextBox(p, "Color (Hex)", "#ff6400", "#ff6400")
local slider = ArcGUI.CreateSlider(p, "Size", 1, 20, 8, function(val)
feSize = val
if fireObj then fireObj.Size = val end
end)
end)
-- ======================== 44. SPARKLES ========================
addcmd("arcsparkles", {"asparkles"}, function(args, speaker)
if not ArcGUI.TogglePanel("sparkles") then return end
local p = ArcGUI.CreatePanel("sparkles", "Sparkles", function()
if sparklesObj then
sparklesObj:Destroy()
sparklesObj = nil
end
end)
p._spkOn = false
local spkColor = Color3.fromRGB(255, 255, 0)
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._spkOn = state
if state then
pcall(function()
local char = Players.LocalPlayer.Character
if char and char:FindFirstChild("HumanoidRootPart") then
if sparklesObj then sparklesObj:Destroy() end
sparklesObj = Instance.new("Sparkles")
sparklesObj.Name = randomString()
sparklesObj.SparkleColor = spkColor
sparklesObj.Parent = char.HumanoidRootPart
end
end)
else
pcall(function()
if sparklesObj then sparklesObj:Destroy() sparklesObj = nil end
end)
end
end)
local colorBox = ArcGUI.CreateTextBox(p, "Color (Hex)", "#ffff00", "#ffff00")
end)
-- ======================== 45. SMOKE ========================
addcmd("arcsmoke", {"asmoke"}, function(args, speaker)
if not ArcGUI.TogglePanel("smoke") then return end
local p = ArcGUI.CreatePanel("smoke", "Smoke Effect", function()
if smokeObj then
smokeObj:Destroy()
smokeObj = nil
end
end)
p._smOn = false
local smOpacity = 0.5
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._smOn = state
if state then
pcall(function()
local char = Players.LocalPlayer.Character
if char and char:FindFirstChild("HumanoidRootPart") then
if smokeObj then smokeObj:Destroy() end
smokeObj = Instance.new("Smoke")
smokeObj.Name = randomString()
smokeObj.Opacity = smOpacity
smokeObj.Parent = char.HumanoidRootPart
end
end)
else
pcall(function()
if smokeObj then smokeObj:Destroy() smokeObj = nil end
end)
end
end)
local colorBox = ArcGUI.CreateTextBox(p, "Color (Hex)", "#808080", "#808080")
local slider = ArcGUI.CreateSlider(p, "Opacity", 0, 1, 0.5, function(val)
smOpacity = val
if smokeObj then smokeObj.Opacity = val end
end)
end)
-- ======================== 46. TINY ========================
addcmd("arctiny", {"atinyscale"}, function(args, speaker)
if not ArcGUI.TogglePanel("tiny") then return end
local p = ArcGUI.CreatePanel("tiny", "Tiny", function()
tinyActive = false
if tinyScales then
for _, bp in pairs(tinyScales) do
if bp and bp.Parent then bp:Destroy() end
end
tinyScales = {}
end
end)
p._tyOn = false
local tyScale = 0.1
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._tyOn = state
if state then
tinyActive = true
pcall(function()
local char = Players.LocalPlayer.Character
if not char then return end
local humDesc = char:FindFirstChildOfClass("Humanoid")
if humDesc then
for _, v in pairs(tinyScales) do
if v and v.Parent then v:Destroy() end
end
tinyScales = {}
local scaleVal = tyScale
local heads = {char:FindFirstChild("Head"), char:FindFirstChild("UpperTorso"), char:FindFirstChild("LowerTorso")}
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
local s = Instance.new("Vector3Value")
s.Name = randomString()
s.Value = part.Size
s.Parent = part
table.insert(tinyScales, s)
part.Size = part.Size * scaleVal
end
end
end
end)
else
tinyActive = false
pcall(function()
local char = Players.LocalPlayer.Character
if char and tinyScales then
for _, s in pairs(tinyScales) do
if s and s.Parent then
s.Parent.Size = s.Value
s:Destroy()
end
end
tinyScales = {}
end
end)
end
end)
local slider = ArcGUI.CreateSlider(p, "Scale", 0.05, 0.5, 0.1, function(val)
tyScale = val
end)
end)
-- ======================== 47. GRAVITY ========================
addcmd("arcgravity", {"agravity"}, function(args, speaker)
if not ArcGUI.TogglePanel("gravity") then return end
local p = ArcGUI.CreatePanel("gravity", "Gravity", function()
workspace.Gravity = 196.2
end)
local gravVal = 196.2
local slider = ArcGUI.CreateSlider(p, "Gravity", 0, 1000, 196.2, function(val)
gravVal = val
end)
local setBtn = ArcGUI.CreateButton(p, "Set Gravity", function()
workspace.Gravity = gravVal
notify("Arc Yield", "Gravity set to " .. tostring(math.floor(gravVal * 100) / 100))
end)
local resetBtn = ArcGUI.CreateButton(p, "Reset (196.2)", function()
workspace.Gravity = 196.2
notify("Arc Yield", "Gravity reset to 196.2")
end)
resetBtn.Button.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
end)
-- ======================== 48. MUSIC ========================
addcmd("arcmusic", {"amusic"}, function(args, speaker)
if not ArcGUI.TogglePanel("music") then return end
local p = ArcGUI.CreatePanel("music", "Music Player", function()
if musicSound then
musicSound:Stop()
musicSound:Destroy()
musicSound = nil
end
end)
local idInput = ArcGUI.CreateTextBox(p, "Asset ID", "Enter Roblox asset ID", "")
local musicVol = 1
local slider = ArcGUI.CreateSlider(p, "Volume", 0, 3, 1, function(val)
musicVol = val
if musicSound then musicSound.Volume = val end
end)
local playBtn = ArcGUI.CreateButton(p, "Play", function()
local assetId = idInput:GetText()
if assetId and assetId ~= "" then
if musicSound then
musicSound:Stop()
musicSound:Destroy()
end
musicSound = Instance.new("Sound")
musicSound.Name = randomString()
musicSound.SoundId = "rbxassetid://" .. assetId
musicSound.Volume = musicVol
musicSound.Looped = true
musicSound.Parent = workspace
musicSound:Play()
notify("Arc Yield", "Playing music: " .. assetId)
else
notify("Arc Yield", "Enter an asset ID first!")
end
end)
local stopBtn = ArcGUI.CreateButton(p, "Stop", function()
if musicSound then
musicSound:Stop()
musicSound:Destroy()
musicSound = nil
notify("Arc Yield", "Music stopped")
end
end)
stopBtn.Button.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
end)
-- ======================== 49. NPP ========================
addcmd("arcnpp", {"anpp"}, function(args, speaker)
if not ArcGUI.TogglePanel("npp") then return end
local p = ArcGUI.CreatePanel("npp", "Nuke Parts (NPP)", function()
nppActive = false
if nppParts then
for _, part in pairs(nppParts) do
if part and part.Parent then part:Destroy() end
end
nppParts = {}
end
end)
p._nppOn = false
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._nppOn = state
if state then
nppActive = true
execCmd("npp")
else
nppActive = false
end
end)
end)
-- ======================== 50. GIANT ========================
addcmd("arcgiant", {"agiant"}, function(args, speaker)
if not ArcGUI.TogglePanel("giant") then return end
local p = ArcGUI.CreatePanel("giant", "Giant", function()
giantActive = false
if giantScales then
for _, bp in pairs(giantScales) do
if bp and bp.Parent then bp:Destroy() end
end
giantScales = {}
end
end)
p._giOn = false
local giScale = 5
local toggle = ArcGUI.CreateToggle(p, "Enabled", false, function(state)
p._giOn = state
if state then
giantActive = true
pcall(function()
local char = Players.LocalPlayer.Character
if not char then return end
for _, v in pairs(giantScales) do
if v and v.Parent then v:Destroy() end
end
giantScales = {}
local scaleVal = giScale
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
local s = Instance.new("Vector3Value")
s.Name = randomString()
s.Value = part.Size
s.Parent = part
table.insert(giantScales, s)
part.Size = part.Size * scaleVal
end
end
end)
else
giantActive = false
pcall(function()
local char = Players.LocalPlayer.Character
if char and giantScales then
for _, s in pairs(giantScales) do
if s and s.Parent then
s.Parent.Size = s.Value
s:Destroy()
end
end
giantScales = {}
end
end)
end
end)
local slider = ArcGUI.CreateSlider(p, "Scale", 2, 20, 5, function(val)
giScale = val
end)
end)
-- ======================== STARTUP SPLASH SCREEN ========================
spawn(function()
if not PARENT then return end
pcall(function()
local TweenService = game:GetService('TweenService')
local RunService = game:GetService('RunService')
local overlay = Instance.new('Frame')
overlay.Name = 'ArcSplashOverlay'
overlay.Size = UDim2.new(1, 0, 1, 0)
overlay.BackgroundColor3 = Color3.fromRGB(5, 12, 30)
overlay.BorderSizePixel = 0
overlay.ZIndex = 999
overlay.Parent = PARENT
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 0)
corner.Parent = overlay
-- Glow ring
local glowRing = Instance.new('Frame')
glowRing.Size = UDim2.new(0, 200, 0, 200)
glowRing.Position = UDim2.new(0.5, -100, 0.45, -100)
glowRing.BackgroundColor3 = Color3.fromRGB(50, 130, 255)
glowRing.BackgroundTransparency = 0.85
glowRing.BorderSizePixel = 0
glowRing.ZIndex = 1000
glowRing.Parent = overlay
local grC = Instance.new('UICorner')
grC.CornerRadius = UDim.new(1, 0)
grC.Parent = glowRing
local grS = Instance.new('UIStroke')
grS.Color = Color3.fromRGB(50, 130, 255)
grS.Thickness = 2
grS.Transparency = 0.5
grS.Parent = glowRing
-- Floating orbs
local orbs = {}
for i = 1, 6 do
local orb = Instance.new('Frame')
orb.Size = UDim2.new(0, 80 + i * 30, 0, 80 + i * 30)
orb.Position = UDim2.new(0.5, -60, 0.45, -60)
orb.BackgroundColor3 = Color3.fromRGB(50, 130, 255)
orb.BackgroundTransparency = 0.85
orb.BorderSizePixel = 0
orb.ZIndex = 999
orb.Parent = overlay
local oc = Instance.new('UICorner')
oc.CornerRadius = UDim.new(1, 0)
oc.Parent = orb
table.insert(orbs, {frame = orb, phase = i * 0.5, speed = 0.8 + i * 0.3, radius = 60 + i * 40})
end
local t = 0
local conn = RunService.Heartbeat:Connect(function(dt)
if not overlay or not overlay.Parent then return end
t = t + dt
for _, o in ipairs(orbs) do
local a = t * o.speed + o.phase
local x = math.sin(a) * o.radius
local y = math.cos(a * 0.7) * (o.radius * 0.6)
o.frame.Position = UDim2.new(0.5, x - o.frame.Size.X.Offset / 2, 0.45, y - o.frame.Size.Y.Offset / 2)
o.frame.Rotation = t * o.speed * 20
end
local pulse = 1 + math.sin(t * 2) * 0.08
local rsz = 250 * pulse
glowRing.Size = UDim2.new(0, rsz, 0, rsz)
glowRing.Position = UDim2.new(0.5, -rsz / 2, 0.45, -rsz / 2)
end)
-- Main label
local mainLabel = Instance.new('TextLabel')
mainLabel.Size = UDim2.new(0, 600, 0, 80)
mainLabel.Position = UDim2.new(0.5, -300, 0.45, -40)
mainLabel.BackgroundTransparency = 1
mainLabel.Text = ''
mainLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
mainLabel.Font = Enum.Font.GothamBold
mainLabel.TextSize = 38
mainLabel.TextTransparency = 1
mainLabel.TextStrokeTransparency = 0.6
mainLabel.TextStrokeColor3 = Color3.fromRGB(50, 130, 255)
mainLabel.ZIndex = 1001
mainLabel.Parent = overlay
-- Sub label
local subLabel = Instance.new('TextLabel')
subLabel.Size = UDim2.new(0, 600, 0, 30)
subLabel.Position = UDim2.new(0.5, -300, 0.45, 30)
subLabel.BackgroundTransparency = 1
subLabel.Text = ''
subLabel.TextColor3 = Color3.fromRGB(160, 185, 220)
subLabel.Font = Enum.Font.Gotham
subLabel.TextSize = 16
subLabel.TextTransparency = 1
subLabel.ZIndex = 1001
subLabel.Parent = overlay
-- Credits
local creditsLabel = Instance.new('TextLabel')
creditsLabel.Size = UDim2.new(0, 700, 0, 25)
creditsLabel.Position = UDim2.new(0.5, -350, 0.45, 100)
creditsLabel.BackgroundTransparency = 1
creditsLabel.Text = 'check bobjs for scriptblox, and bobjsco for github - for updates and more scripts'
creditsLabel.TextColor3 = Color3.fromRGB(80, 150, 255)
creditsLabel.Font = Enum.Font.GothamMedium
creditsLabel.TextSize = 13
creditsLabel.TextTransparency = 1
creditsLabel.ZIndex = 1001
creditsLabel.Parent = overlay
wait(0.3)
-- Phase 1: Made by @Hamster_Gamer14
mainLabel.Text = 'Made by @Hamster_Gamer14'
local tw1 = TweenService:Create(mainLabel, TweenInfo.new(0.8, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {TextTransparency = 0})
tw1:Play()
local tw1b = TweenService:Create(subLabel, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {TextTransparency = 0.3})
tw1b:Play()
wait(0.5)
subLabel.Text = 'Premium experience of hacking, all for free!'
local tw1c = TweenService:Create(subLabel, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {TextTransparency = 0.3})
tw1c:Play()
-- Credits slide in
local tw1d = TweenService:Create(creditsLabel, TweenInfo.new(0.8, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {TextTransparency = 0.15})
tw1d:Play()
wait(3.0)
-- Phase 2: Arc Yield
TweenService:Create(mainLabel, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {TextTransparency = 1}):Play()
TweenService:Create(subLabel, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {TextTransparency = 1}):Play()
TweenService:Create(creditsLabel, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {TextTransparency = 1}):Play()
wait(0.5)
mainLabel.Size = UDim2.new(0, 600, 0, 100)
mainLabel.TextSize = 52
mainLabel.Text = 'Arc Yield'
mainLabel.TextTransparency = 1
glowRing.BackgroundTransparency = 0.7
TweenService:Create(glowRing, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {BackgroundTransparency = 0.7}):Play()
local tw2 = TweenService:Create(mainLabel, TweenInfo.new(0.7, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {TextTransparency = 0})
tw2:Play()
subLabel.Text = 'Made by @Hamster_Gamer14'
subLabel.Position = UDim2.new(0.5, -300, 0.45, 55)
subLabel.TextSize = 15
local tw2b = TweenService:Create(subLabel, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {TextTransparency = 0.35})
tw2b:Play()
-- Credits back
creditsLabel.TextTransparency = 1
local tw2c = TweenService:Create(creditsLabel, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {TextTransparency = 0.15})
tw2c:Play()
wait(2.0)
-- Phase 3: Fade out
TweenService:Create(mainLabel, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {TextTransparency = 1}):Play()
TweenService:Create(subLabel, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {TextTransparency = 1}):Play()
TweenService:Create(creditsLabel, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {TextTransparency = 1}):Play()
TweenService:Create(glowRing, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {BackgroundTransparency = 1}):Play()
for _, o in ipairs(orbs) do
TweenService:Create(o.frame, TweenInfo.new(0.4), {BackgroundTransparency = 1}):Play()
end
TweenService:Create(overlay, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {BackgroundTransparency = 1}):Play()
wait(0.6)
if conn then conn:Disconnect() end
pcall(function() overlay:Destroy() end)
end)
end)
-- ======================== TAS (TOOL-ASSISTED SPEEDRUN) ========================
-- Frame-by-frame movement recorder with savestates, rewind, and playback
-- F = forward 1 frame, R = rewind 1 frame, CapsLock = pause/unpause
-- GUI with timer, frame count, savestates, Start Play, Stop Recording, Save, Load
tasActive = false
tasPaused = true
tasGUI = nil
tasConnections = {}
tasSavestates = {}
tasPlayerInfo = {}
tasTimeStart = 0
tasTimePaused = 0
tasTimePauseHolder = 0
tasViewingTAS = false
do
local function tasFormatTime(tv)
local m = math.floor(tv / 60)
local s = math.floor(tv % 60)
local ms = math.floor((tv * 1000) % 1000)
local msStr = tostring(ms)
local sStr = tostring(s)
while #msStr < 3 do msStr = '0' .. msStr end
while #sStr < 2 do sStr = '0' .. sStr end
return m .. ':' .. sStr .. '.' .. msStr
end
local function tasGetCFrame()
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
return LocalPlayer.Character.HumanoidRootPart.CFrame
end
return CFrame.new()
end
local function tasGetVelocity()
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
return LocalPlayer.Character.HumanoidRootPart.Velocity
end
return Vector3.new()
end
local function tasGetCameraCFrame()
return workspace.CurrentCamera.CFrame
end
local function tasCaptureFrame()
return {
CFrame = tasGetCFrame(),
CameraCFrame = tasGetCameraCFrame(),
Velocity = tasGetVelocity(),
Time = tick() - tasTimeStart - tasTimePaused,
}
end
local function tasSetState(infoState)
if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then return end
local RootPart = LocalPlayer.Character.HumanoidRootPart
pcall(function()
RootPart.CFrame = infoState.CFrame
RootPart.Velocity = infoState.Velocity
workspace.CurrentCamera.CFrame = infoState.CameraCFrame
end)
end
local function tasUpdateGUI()
if not tasGUI then return end
local frameCountLbl = tasGUI:FindFirstChild("MainFrame"):FindFirstChild("FrameCount")
local saveCountLbl = tasGUI:FindFirstChild("MainFrame"):FindFirstChild("SaveCount")
local timeLbl = tasGUI:FindFirstChild("MainFrame"):FindFirstChild("TimeLabel")
local pauseLbl = tasGUI:FindFirstChild("MainFrame"):FindFirstChild("PauseLabel")
if frameCountLbl then
frameCountLbl.Text = "Frames: " .. #tasPlayerInfo
end
if saveCountLbl then
saveCountLbl.Text = "Savestates: " .. #tasSavestates
end
if timeLbl then
local elapsed = tick() - tasTimeStart - tasTimePaused
timeLbl.Text = tasFormatTime(elapsed)
end
if pauseLbl then
if tasPaused then
pauseLbl.Text = "PAUSED"
pauseLbl.TextColor3 = Color3.fromRGB(255, 255, 0)
timeLbl.TextColor3 = Color3.fromRGB(255, 255, 0)
else
pauseLbl.Text = "RECORDING"
pauseLbl.TextColor3 = Color3.fromRGB(0, 255, 100)
timeLbl.TextColor3 = Color3.fromRGB(255, 255, 255)
end
end
end
local function tasPauseToggle()
tasPaused = not tasPaused
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
LocalPlayer.Character.HumanoidRootPart.Anchored = tasPaused
end
if tasPaused then
tasTimePauseHolder = tick()
else
if tasTimePauseHolder then
tasTimePaused = tasTimePaused + (tick() - tasTimePauseHolder)
tasTimePauseHolder = nil
end
end
tasUpdateGUI()
end
local function tasGoFrameForward()
if tasPaused then
tasPauseToggle()
RunService.Heartbeat:Wait()
RunService.Heartbeat:Wait()
tasPauseToggle()
end
end
local function tasGoFrameBack()
local TargetFrame = nil
if #tasPlayerInfo > 1 then
TargetFrame = tasPlayerInfo[#tasPlayerInfo - 1]
tasPlayerInfo[#tasPlayerInfo] = nil
elseif #tasSavestates > 0 and #tasSavestates[#tasSavestates] > 1 then
TargetFrame = tasSavestates[#tasSavestates][#tasSavestates[#tasSavestates] - 1]
tasSavestates[#tasSavestates][#tasSavestates[#tasSavestates]] = nil
end
if TargetFrame then
if not tasPaused then tasPauseToggle() end
tasTimePauseHolder = tick()
tasTimeStart = tick() - TargetFrame.Time
tasTimePaused = 0
tasSetState(TargetFrame)
tasUpdateGUI()
end
end
local function tasAddSavestate()
table.insert(tasSavestates, tasPlayerInfo)
tasPlayerInfo = {}
notify('TAS', 'Savestate added (#' .. #tasSavestates .. ')')
tasUpdateGUI()
end
local function tasLoadSavestate()
if #tasSavestates > 0 and #tasSavestates[#tasSavestates] > 0 then
local lastFrame = tasSavestates[#tasSavestates][#tasSavestates[#tasSavestates]]
tasPlayerInfo = {}
tasPaused = true
tasTimePauseHolder = tick()
tasTimeStart = tick() - lastFrame.Time
tasTimePaused = 0
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
LocalPlayer.Character.HumanoidRootPart.Anchored = true
end
tasSetState(lastFrame)
tasUpdateGUI()
notify('TAS', 'Loaded savestate #' .. #tasSavestates)
end
end
local function tasRemoveSavestate()
if #tasSavestates > 0 then
table.remove(tasSavestates)
notify('TAS', 'Removed savestate. ' .. #tasSavestates .. ' remaining')
tasUpdateGUI()
end
end
local function tasPrepareData()
local FullTAS = {}
for i = 1, #tasSavestates do
for j = 1, #tasSavestates[i] do
local Frame = tasSavestates[i][j]
local cfX, cfY, cfZ, cfR00, cfR01, cfR02, cfR10, cfR11, cfR12, cfR20, cfR21, cfR22 = Frame.CFrame:GetComponents()
local camX, camY, camZ, camR00, camR01, camR02, camR10, camR11, camR12, camR20, camR21, camR22 = Frame.CameraCFrame:GetComponents()
table.insert(FullTAS, {
CCFrame = {cfX, cfY, cfZ, cfR00, cfR01, cfR02, cfR10, cfR11, cfR12, cfR20, cfR21, cfR22},
CCameraCFrame = {camX, camY, camZ, camR00, camR01, camR02, camR10, camR11, camR12, camR20, camR21, camR22},
VVelocity = {Frame.Velocity.X, Frame.Velocity.Y, Frame.Velocity.Z},
time = Frame.Time,
})
end
end
return FullTAS
end
local function tasSaveRun()
local FullTAS = tasPrepareData()
if #FullTAS == 0 then
notify('TAS', 'No data to save')
return
end
local GameName = "TAS"
pcall(function()
GameName = game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId).Name
GameName = GameName:gsub("[^%w%s]", ""):gsub("%s+", "_")
end)
local FileName = GameName .. "_TAS.json"
local FilePath = "TAS_Recorder/" .. FileName
local EncodedData = HttpService:JSONEncode(FullTAS)
if writefile then
pcall(function()
if isfolder and not isfolder("TAS_Recorder") then
makefolder("TAS_Recorder")
end
writefile(FilePath, EncodedData)
notify('TAS', 'Saved to ' .. FilePath)
end)
else
notify('TAS', 'File saving not supported')
end
end
local function tasViewPlayback(TAS)
if tasViewingTAS or #TAS == 0 then return end
tasViewingTAS = true
notify('TAS', 'Playing back TAS...')
local Character = LocalPlayer.Character
if not Character or not Character:FindFirstChild("HumanoidRootPart") then
notify('TAS', 'Character not found')
tasViewingTAS = false
return
end
local RootPart = Character.HumanoidRootPart
RootPart.Anchored = false
local StartTime = tick()
local CurrentFrameIndex = 1
if tasPaused then tasPauseToggle() end
local PlaybackConn = RunService.Heartbeat:Connect(function()
local Elapsed = tick() - StartTime
local TargetFrame = nil
while CurrentFrameIndex <= #TAS and TAS[CurrentFrameIndex].time <= Elapsed do
TargetFrame = TAS[CurrentFrameIndex]
CurrentFrameIndex = CurrentFrameIndex + 1
end
if TargetFrame then
local cf = TargetFrame.CCFrame
local cam = TargetFrame.CCameraCFrame
pcall(function()
RootPart.CFrame = CFrame.new(cf[1], cf[2], cf[3], cf[4], cf[5], cf[6], cf[7], cf[8], cf[9], cf[10], cf[11], cf[12])
RootPart.Velocity = Vector3.new(TargetFrame.VVelocity[1], TargetFrame.VVelocity[2], TargetFrame.VVelocity[3])
workspace.CurrentCamera.CFrame = CFrame.new(cam[1], cam[2], cam[3], cam[4], cam[5], cam[6], cam[7], cam[8], cam[9], cam[10], cam[11], cam[12])
end)
end
if CurrentFrameIndex > #TAS then
PlaybackConn:Disconnect()
RootPart.Anchored = false
tasViewingTAS = false
tasPaused = true
tasTimePauseHolder = tick()
tasUpdateGUI()
notify('TAS', 'Playback finished')
end
end)
table.insert(tasConnections, PlaybackConn)
end
local function tasBuildGUI()
if tasGUI then pcall(function() tasGUI:Destroy() end) end
tasGUI = Instance.new("ScreenGui")
tasGUI.Name = "TASRecorderGUI"
tasGUI.ResetOnSpawn = false
pcall(function() tasGUI.Parent = game:GetService("CoreGui") end)
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Parent = tasGUI
MainFrame.Size = UDim2.new(0, 260, 0, 220)
MainFrame.Position = UDim2.new(0, 10, 0.5, -110)
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
MainFrame.BackgroundTransparency = 0.1
MainFrame.BorderColor3 = Color3.fromRGB(200, 50, 50)
MainFrame.BorderSizePixel = 2
MainFrame.Active = true
MainFrame.Draggable = true
local Title = Instance.new("TextLabel")
Title.Name = "Title"
Title.Parent = MainFrame
Title.Size = UDim2.new(1, 0, 0, 25)
Title.BackgroundColor3 = Color3.fromRGB(200, 40, 40)
Title.BorderSizePixel = 0
Title.Text = "TAS RECORDER"
Title.TextColor3 = Color3.new(1, 1, 1)
Title.Font = Enum.Font.SourceSansBold
Title.TextSize = 16
local PauseLabel = Instance.new("TextLabel")
PauseLabel.Name = "PauseLabel"
PauseLabel.Parent = MainFrame
PauseLabel.Size = UDim2.new(1, -10, 0, 18)
PauseLabel.Position = UDim2.new(0, 5, 0, 28)
PauseLabel.BackgroundTransparency = 1
PauseLabel.Text = "PAUSED"
PauseLabel.TextColor3 = Color3.fromRGB(255, 255, 0)
PauseLabel.Font = Enum.Font.SourceSansBold
PauseLabel.TextSize = 14
PauseLabel.TextXAlignment = Enum.TextXAlignment.Left
local TimeLabel = Instance.new("TextLabel")
TimeLabel.Name = "TimeLabel"
TimeLabel.Parent = MainFrame
TimeLabel.Size = UDim2.new(1, -10, 0, 22)
TimeLabel.Position = UDim2.new(0, 5, 0, 46)
TimeLabel.BackgroundTransparency = 1
TimeLabel.Text = "0:00.000"
TimeLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TimeLabel.Font = Enum.Font.Code
TimeLabel.TextSize = 18
TimeLabel.TextXAlignment = Enum.TextXAlignment.Left
local FrameCount = Instance.new("TextLabel")
FrameCount.Name = "FrameCount"
FrameCount.Parent = MainFrame
FrameCount.Size = UDim2.new(1, -10, 0, 15)
FrameCount.Position = UDim2.new(0, 5, 0, 70)
FrameCount.BackgroundTransparency = 1
FrameCount.Text = "Frames: 0"
FrameCount.TextColor3 = Color3.fromRGB(200, 200, 200)
FrameCount.Font = Enum.Font.SourceSans
FrameCount.TextSize = 13
FrameCount.TextXAlignment = Enum.TextXAlignment.Left
local SaveCount = Instance.new("TextLabel")
SaveCount.Name = "SaveCount"
SaveCount.Parent = MainFrame
SaveCount.Size = UDim2.new(1, -10, 0, 15)
SaveCount.Position = UDim2.new(0, 5, 0, 85)
SaveCount.BackgroundTransparency = 1
SaveCount.Text = "Savestates: 0"
SaveCount.TextColor3 = Color3.fromRGB(200, 200, 200)
SaveCount.Font = Enum.Font.SourceSans
SaveCount.TextSize = 13
SaveCount.TextXAlignment = Enum.TextXAlignment.Left
-- Buttons
local btnY = 105
local btnH = 20
local btnGap = 3
local function makeButton(name, text, yPos)
local btn = Instance.new("TextButton")
btn.Name = name
btn.Parent = MainFrame
btn.Size = UDim2.new(0.48, -5, 0, btnH)
btn.Position = UDim2.new(0, 5, 0, yPos)
btn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
btn.BorderSizePixel = 0
btn.Text = text
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Font = Enum.Font.SourceSansBold
btn.TextSize = 12
return btn
end
local function makeButtonRight(name, text, yPos)
local btn = makeButton(name, text, yPos)
btn.Position = UDim2.new(0.52, 0, 0, yPos)
return btn
end
-- Row 1: Start Play / Stop Recording
local btnPlay = makeButton("PlayBtn", "Start Play", btnY)
local btnStop = makeButtonRight("StopBtn", "Stop Rec", btnY)
-- Row 2: Save State / Load State
local btnSave = makeButton("SaveBtn", "Save State", btnY + btnH + btnGap)
local btnLoad = makeButtonRight("LoadBtn", "Load State", btnY + btnH + btnGap)
-- Row 3: Remove State / Save File
local btnRemove = makeButton("RemoveBtn", "Remove State", btnY + (btnH + btnGap) * 2)
local btnFile = makeButtonRight("FileBtn", "Save File", btnY + (btnH + btnGap) * 2)
-- Row 4: Playback / View TAS
local btnPlayback = makeButton("PlaybackBtn", "View TAS", btnY + (btnH + btnGap) * 3)
local btnRewind = makeButtonRight("RewindBtn", "Full Rewind", btnY + (btnH + btnGap) * 3)
-- Keybind info
local InfoLabel = Instance.new("TextLabel")
InfoLabel.Name = "InfoLabel"
InfoLabel.Parent = MainFrame
InfoLabel.Size = UDim2.new(1, -10, 0, 14)
InfoLabel.Position = UDim2.new(0, 5, 0.92, 0)
InfoLabel.BackgroundTransparency = 1
InfoLabel.Text = "F=Forward R=Rewind CapsLock=Pause 1=Save 2=Load 3=Remove"
InfoLabel.TextColor3 = Color3.fromRGB(140, 140, 140)
InfoLabel.Font = Enum.Font.SourceSans
InfoLabel.TextSize = 10
InfoLabel.TextWrapped = true
InfoLabel.TextXAlignment = Enum.TextXAlignment.Left
-- Button handlers
btnPlay.MouseButton1Click:Connect(function()
if tasPaused then tasPauseToggle() end
end)
btnStop.MouseButton1Click:Connect(function()
if not tasPaused then tasPauseToggle() end
end)
btnSave.MouseButton1Click:Connect(function()
tasAddSavestate()
end)
btnLoad.MouseButton1Click:Connect(function()
tasLoadSavestate()
end)
btnRemove.MouseButton1Click:Connect(function()
tasRemoveSavestate()
end)
btnFile.MouseButton1Click:Connect(function()
tasSaveRun()
end)
btnPlayback.MouseButton1Click:Connect(function()
local data = tasPrepareData()
if #data > 0 then
tasViewPlayback(data)
else
notify('TAS', 'No data to play back')
end
end)
btnRewind.MouseButton1Click:Connect(function()
-- Full rewind: remove all frames, go to start
if #tasPlayerInfo > 0 then
local firstFrame = tasPlayerInfo[1]
tasPlayerInfo = {}
if not tasPaused then tasPauseToggle() end
tasTimePauseHolder = tick()
tasTimeStart = tick() - firstFrame.Time
tasTimePaused = 0
tasSetState(firstFrame)
tasUpdateGUI()
notify('TAS', 'Rewound to start')
end
end)
-- Hover effects
for _, child in pairs(MainFrame:GetChildren()) do
if child:IsA("TextButton") then
child.MouseEnter:Connect(function()
child.BackgroundColor3 = Color3.fromRGB(90, 90, 90)
end)
child.MouseLeave:Connect(function()
child.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
end)
end
end
end
local tasFrameFwdHeld = false
local tasFrameBackHeld = false
addcmd('tas', {}, function(args, speaker)
if tasActive then execCmd('untas') return end
local char = speaker.Character
if not char or not getRoot(char) then
notify('TAS', 'Character not found')
return
end
tasActive = true
tasPaused = true
tasSavestates = {}
tasPlayerInfo = {}
tasTimePaused = 0
tasTimeStart = tick()
tasTimePauseHolder = tick()
tasViewingTAS = false
-- Initial savestate at current position
table.insert(tasSavestates, {tasCaptureFrame()})
-- Anchor player (paused by default)
local root = getRoot(char)
if root then root.Anchored = true end
tasBuildGUI()
tasUpdateGUI()
-- Main recording loop
local mainConn = RunService.Heartbeat:Connect(function(dt)
if not tasActive then return end
if not tasPaused then
table.insert(tasPlayerInfo, tasCaptureFrame())
tasUpdateGUI()
end
end)
table.insert(tasConnections, mainConn)
-- Keybind handler
local keyConn = UserInputService.InputBegan:Connect(function(Input, Typing)
if Typing then return end
if not tasActive then return end
local KC = Input.KeyCode
if KC == Enum.KeyCode.CapsLock then
tasPauseToggle()
elseif KC == Enum.KeyCode.F then
tasFrameFwdHeld = true
task.spawn(function()
tasGoFrameForward()
while task.wait(0.05) and tasFrameFwdHeld and tasActive do
tasGoFrameForward()
end
end)
elseif KC == Enum.KeyCode.R then
tasFrameBackHeld = true
task.spawn(function()
tasGoFrameBack()
while task.wait(0.05) and tasFrameBackHeld and tasActive do
tasGoFrameBack()
end
end)
elseif KC == Enum.KeyCode.One then
tasAddSavestate()
elseif KC == Enum.KeyCode.Two then
tasLoadSavestate()
elseif KC == Enum.KeyCode.Three then
tasRemoveSavestate()
end
end)
table.insert(tasConnections, keyConn)
-- Key release handler (stop held frame advance/rewind)
local keyEndConn = UserInputService.InputEnded:Connect(function(Input, Typing)
if Typing then return end
local KC = Input.KeyCode
if KC == Enum.KeyCode.F then
tasFrameFwdHeld = false
elseif KC == Enum.KeyCode.R then
tasFrameBackHeld = false
end
end)
table.insert(tasConnections, keyEndConn)
-- Death handler
local hum = char:FindFirstChildWhichIsA('Humanoid')
if hum then
local diedConn = hum.Died:Connect(function()
task.wait(0.1)
if not tasPaused then tasPauseToggle() end
notify('TAS', 'Died. Waiting for respawn...')
LocalPlayer.CharacterAdded:Wait()
task.wait(1)
tasLoadSavestate()
end)
table.insert(tasConnections, diedConn)
end
notify('TAS', 'Active! F=forward, R=rewind, CapsLock=pause, 1=save, 2=load')
end)
addcmd('untas', {'notas'}, function(args, speaker)
tasActive = false
tasPaused = true
tasViewingTAS = false
tasFrameFwdHeld = false
tasFrameBackHeld = false
for _, conn in pairs(tasConnections) do
pcall(function() conn:Disconnect() end)
end
tasConnections = {}
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
LocalPlayer.Character.HumanoidRootPart.Anchored = false
end
if tasGUI then
pcall(function() tasGUI:Destroy() end)
tasGUI = nil
end
tasSavestates = {}
tasPlayerInfo = {}
notify('TAS', 'Stopped')
end)
end -- TAS section
-- ======================== GUI COMMAND - RAYFIELD-STYLE ========================
-- Persistent state for toggle tracking
ArcCmdGUI = ArcCmdGUI or {}
ArcCmdGUI.Open = false
ArcCmdGUI.Frame = nil
ArcCmdGUI.Gui = nil
ArcCmdGUI.ToggleStates = ArcCmdGUI.ToggleStates or {}
ArcCmdGUI.KConn = nil
addcmd("gui", {"commands", "cmdlist"}, function(args, speaker)
if ArcCmdGUI.Open then
ArcCmdGUI._close()
return
end
ArcCmdGUI._open()
end)
-- ==================== THEME COLORS (Rayfield) ====================
local _C = {
Background = Color3.fromRGB(25, 28, 40),
Sidebar = Color3.fromRGB(35, 38, 52),
Content = Color3.fromRGB(28, 32, 46),
Accent = Color3.fromRGB(0, 150, 255),
AccentDark = Color3.fromRGB(0, 100, 180),
AccentHover = Color3.fromRGB(50, 180, 255),
TextPrimary = Color3.fromRGB(220, 222, 230),
TextSecondary= Color3.fromRGB(150, 152, 160),
TextDim = Color3.fromRGB(100, 102, 110),
ToggleOn = Color3.fromRGB(0, 150, 255),
ToggleOff = Color3.fromRGB(60, 63, 75),
SliderTrack = Color3.fromRGB(50, 53, 65),
InputBg = Color3.fromRGB(40, 43, 55),
SectionHead = Color3.fromRGB(35, 38, 52),
Border = Color3.fromRGB(55, 58, 70),
CloseRed = Color3.fromRGB(180, 50, 50),
Shine = Color3.fromRGB(255, 255, 255),
}
local _CR = 10
local _CR_E = 6
local _ANIM = 0.25
-- Glass elements tracked for animated reflections
local _glassElements = {}
-- ==================== UTILITY FUNCTIONS ====================
local function _tw(inst, props, dur, style, dir)
local ok, tw = pcall(function()
local info = TweenInfo.new(dur or _ANIM, style or Enum.EasingStyle.Quart, dir or Enum.EasingDirection.Out)
local t = TweenService:Create(inst, info, props)
t:Play()
return t
end)
return ok and tw or nil
end
local function _glassShine(parent, cr)
cr = cr or _CR_E
-- Top highlight shine (static)
local shine = Instance.new('Frame')
shine.Name = 'GlassShine'
shine.Size = UDim2.new(1, -4, 0.35, 0)
shine.Position = UDim2.new(0, 2, 0, 2)
shine.BackgroundColor3 = _C.Shine
shine.BackgroundTransparency = 0.92
shine.BorderSizePixel = 0
shine.ZIndex = 2
shine.ClipsDescendants = true
local sCr = Instance.new('UICorner')
sCr.CornerRadius = UDim.new(0, math.max(cr - 1, 1))
sCr.Parent = shine
local grad = Instance.new('UIGradient')
grad.Color = ColorSequence.new(_C.Shine)
grad.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.82),
NumberSequenceKeypoint.new(0.4, 0.94),
NumberSequenceKeypoint.new(1, 1),
})
grad.Rotation = 90
grad.Parent = shine
shine.Parent = parent
-- Diagonal moving reflection (GlassShine2)
local shine2 = Instance.new('Frame')
shine2.Name = 'GlassShine2'
shine2.Size = UDim2.new(0.6, 0, 1, 0)
shine2.Position = UDim2.new(0, 0, 0, 0)
shine2.BackgroundColor3 = _C.Shine
shine2.BackgroundTransparency = 0.95
shine2.BorderSizePixel = 0
shine2.ZIndex = 3
shine2.ClipsDescendants = true
local s2Cr = Instance.new('UICorner')
s2Cr.CornerRadius = UDim.new(0, math.max(cr - 1, 1))
s2Cr.Parent = shine2
local grad2 = Instance.new('UIGradient')
grad2.Color = ColorSequence.new(_C.Shine)
grad2.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.9),
NumberSequenceKeypoint.new(0.5, 0.97),
NumberSequenceKeypoint.new(1, 1),
})
grad2.Rotation = 45
grad2.Parent = shine2
shine2.Parent = parent
-- Glossy bottom highlight (GlassGloss)
local gloss = Instance.new('Frame')
gloss.Name = 'GlassGloss'
gloss.Size = UDim2.new(1, -4, 0.2, 0)
gloss.Position = UDim2.new(0, 2, 1, -20)
gloss.BackgroundColor3 = Color3.fromRGB(180, 220, 255)
gloss.BackgroundTransparency = 0.93
gloss.BorderSizePixel = 0
gloss.ZIndex = 2
gloss.ClipsDescendants = true
local gCr = Instance.new('UICorner')
gCr.CornerRadius = UDim.new(0, math.max(cr - 2, 2))
gCr.Parent = gloss
local gGrad = Instance.new('UIGradient')
gGrad.Color = ColorSequence.new(Color3.fromRGB(255, 255, 255))
gGrad.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 1.0),
NumberSequenceKeypoint.new(0.3, 0.92),
NumberSequenceKeypoint.new(1, 0.98),
})
gGrad.Rotation = 0
gGrad.Parent = gloss
local gStroke = Instance.new('UIStroke')
gStroke.Color = Color3.fromRGB(80, 160, 255)
gStroke.Thickness = 0.5
gStroke.Transparency = 0.8
gStroke.Parent = gloss
gloss.Parent = parent
table.insert(_glassElements, parent)
return shine
end
local function _getPlayerList()
local players = {}
local lp = Players.LocalPlayer
pcall(function()
for _, p in ipairs(Players:GetPlayers()) do
if p ~= lp then
table.insert(players, p.Name)
end
end
end)
table.sort(players)
return players
end
-- ==================== OPEN GUI ====================
function ArcCmdGUI._open()
if ArcCmdGUI.Open then return end
-- If GUI was already created (just hidden), show it again
if ArcCmdGUI.Gui and ArcCmdGUI.Frame then
local frame = ArcCmdGUI.Frame
frame.Visible = true
frame.BackgroundTransparency = 1
frame.Size = UDim2.new(0, 612, 0, 468)
_tw(frame, {
BackgroundTransparency = 0,
Size = UDim2.new(0, 680, 0, 520),
}, 0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out)
ArcCmdGUI.Open = true
return
end
-- Create ScreenGui (first time only)
local gui = Instance.new('ScreenGui')
gui.Name = 'ArcCmdGUI'
gui.ResetOnSpawn = false
gui.DisplayOrder = 998
gui.IgnoreGuiInset = true
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = PARENT
ArcCmdGUI.Gui = gui
local _W = 680
local _H = 520
-- ==================== MAIN FRAME ====================
local frame = Instance.new('Frame')
frame.Name = 'MainWindow'
frame.Size = UDim2.new(0, _W, 0, _H)
frame.Position = UDim2.new(0.5, -_W / 2, 0.5, -_H / 2)
frame.BackgroundColor3 = _C.Background
frame.BackgroundTransparency = 0
frame.BorderSizePixel = 0
frame.ClipsDescendants = true
frame.ZIndex = 60
frame.Parent = gui
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, _CR)
corner.Parent = frame
local stroke = Instance.new('UIStroke')
stroke.Color = _C.Border
stroke.Thickness = 1
stroke.Transparency = 0.2
stroke.Parent = frame
_glassShine(frame, _CR)
-- ==================== HEADER BAR (42px) ====================
local header = Instance.new('Frame')
header.Name = 'Header'
header.Size = UDim2.new(1, 0, 0, 42)
header.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
header.BackgroundTransparency = 0.96
header.BorderSizePixel = 0
header.ZIndex = 65
header.Parent = frame
-- Header bottom separator
local headerLine = Instance.new('Frame')
headerLine.Size = UDim2.new(1, 0, 0, 1)
headerLine.Position = UDim2.new(0, 0, 1, 0)
headerLine.BackgroundColor3 = _C.Border
headerLine.BackgroundTransparency = 0.35
headerLine.BorderSizePixel = 0
headerLine.ZIndex = 66
headerLine.Parent = header
-- Title text
local titleTxt = Instance.new('TextLabel')
titleTxt.Size = UDim2.new(1, -90, 1, 0)
titleTxt.Position = UDim2.new(0, 14, 0, 0)
titleTxt.BackgroundTransparency = 1
titleTxt.Text = 'Arc Yield'
titleTxt.TextColor3 = _C.TextPrimary
titleTxt.TextXAlignment = Enum.TextXAlignment.Left
titleTxt.Font = Enum.Font.GothamBold
titleTxt.TextSize = 17
titleTxt.ZIndex = 67
titleTxt.Parent = header
-- Gear icon label (right side)
local gearLabel = Instance.new('TextLabel')
gearLabel.Size = UDim2.new(0, 30, 0, 28)
gearLabel.Position = UDim2.new(1, -68, 0, 7)
gearLabel.BackgroundTransparency = 1
gearLabel.Text = string.char(226, 154, 153)
gearLabel.TextColor3 = _C.TextDim
gearLabel.Font = Enum.Font.Gotham
gearLabel.TextSize = 16
gearLabel.ZIndex = 67
gearLabel.Parent = header
-- Close button
local closeBtn = Instance.new('TextButton')
closeBtn.Size = UDim2.new(0, 28, 0, 28)
closeBtn.Position = UDim2.new(1, -36, 0, 7)
closeBtn.BackgroundColor3 = _C.CloseRed
closeBtn.BackgroundTransparency = 0.5
closeBtn.BorderSizePixel = 0
closeBtn.Text = string.char(226, 156, 149)
closeBtn.TextColor3 = Color3.fromRGB(255, 200, 200)
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 14
closeBtn.ZIndex = 67
closeBtn.AutoButtonColor = false
closeBtn.Parent = header
local clC = Instance.new('UICorner')
clC.CornerRadius = UDim.new(0, _CR_E)
clC.Parent = closeBtn
closeBtn.MouseEnter:Connect(function()
_tw(closeBtn, {BackgroundTransparency = 0.15}, 0.15)
end)
closeBtn.MouseLeave:Connect(function()
_tw(closeBtn, {BackgroundTransparency = 0.5}, 0.2)
end)
closeBtn.MouseButton1Click:Connect(function()
ArcCmdGUI._close()
end)
-- ==================== SIDEBAR (180px wide) ====================
local sidebar = Instance.new('Frame')
sidebar.Name = 'Sidebar'
sidebar.Size = UDim2.new(0, 180, 1, -42)
sidebar.Position = UDim2.new(0, 0, 0, 42)
sidebar.BackgroundColor3 = _C.Sidebar
sidebar.BorderSizePixel = 0
sidebar.ZIndex = 61
sidebar.Parent = frame
-- Sidebar right border
local sidebarLine = Instance.new('Frame')
sidebarLine.Size = UDim2.new(0, 1, 1, 0)
sidebarLine.Position = UDim2.new(1, 0, 0, 0)
sidebarLine.BackgroundColor3 = _C.Border
sidebarLine.BackgroundTransparency = 0.3
sidebarLine.BorderSizePixel = 0
sidebarLine.ZIndex = 62
sidebarLine.Parent = sidebar
-- Sidebar scrolling frame
local sidebarScroll = Instance.new('ScrollingFrame')
sidebarScroll.Size = UDim2.new(1, 0, 1, 0)
sidebarScroll.BackgroundTransparency = 1
sidebarScroll.BorderSizePixel = 0
sidebarScroll.ScrollBarThickness = 3
sidebarScroll.ScrollBarImageColor3 = _C.Accent
sidebarScroll.ScrollBarImageTransparency = 0.6
sidebarScroll.CanvasSize = UDim2.new(0, 0, 0, 0)
sidebarScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
sidebarScroll.ZIndex = 63
sidebarScroll.Parent = sidebar
local sidebarLayout = Instance.new('UIListLayout')
sidebarLayout.SortOrder = Enum.SortOrder.LayoutOrder
sidebarLayout.Padding = UDim.new(0, 2)
sidebarLayout.Parent = sidebarScroll
local sidebarPad = Instance.new('UIPadding')
sidebarPad.PaddingTop = UDim.new(0, 6)
sidebarPad.PaddingBottom = UDim.new(0, 6)
sidebarPad.Parent = sidebarScroll
-- ==================== CONTENT AREA ====================
local contentArea = Instance.new('Frame')
contentArea.Name = 'ContentArea'
contentArea.Size = UDim2.new(1, -180, 1, -42)
contentArea.Position = UDim2.new(0, 180, 0, 42)
contentArea.BackgroundColor3 = _C.Content
contentArea.BorderSizePixel = 0
contentArea.ClipsDescendants = true
contentArea.ZIndex = 61
contentArea.Parent = frame
ArcCmdGUI.Frame = frame
ArcCmdGUI.Sidebar = sidebar
-- ==================== TAB SYSTEM ====================
local tabs = {}
local activeTab = nil
local function showTab(name)
for tN, tD in pairs(tabs) do
if tN == name then
tD.content.Visible = true
activeTab = tN
_tw(tD.btn, {BackgroundColor3 = Color3.fromRGB(40, 45, 62)}, 0.2)
_tw(tD.btnLabel, {TextColor3 = Color3.fromRGB(240, 242, 250)}, 0.15)
tD.indicator.Visible = true
else
tD.content.Visible = false
_tw(tD.btn, {BackgroundColor3 = Color3.fromRGB(255, 255, 255)}, 0.2)
_tw(tD.btnLabel, {TextColor3 = _C.TextSecondary}, 0.15)
tD.indicator.Visible = false
end
end
end
local function makeTab(name)
-- Sidebar tab button (~36px tall)
local btn = Instance.new('TextButton')
btn.Name = 'TabBtn_' .. name
btn.Size = UDim2.new(1, 0, 0, 36)
btn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
btn.BackgroundTransparency = 0.97
btn.BorderSizePixel = 0
btn.Text = ''
btn.LayoutOrder = #tabs + 1
btn.ZIndex = 64
btn.AutoButtonColor = false
btn.Parent = sidebarScroll
-- Accent indicator bar on left edge (3px wide)
local indicator = Instance.new('Frame')
indicator.Name = 'Indicator'
indicator.Size = UDim2.new(0, 3, 0.65, 0)
indicator.Position = UDim2.new(0, 0, 0.175, 0)
indicator.BackgroundColor3 = _C.Accent
indicator.BorderSizePixel = 0
indicator.ZIndex = 66
indicator.Visible = false
indicator.Parent = btn
-- Tab icon character
local iconLbl = Instance.new('TextLabel')
iconLbl.Size = UDim2.new(0, 20, 1, 0)
iconLbl.Position = UDim2.new(0, 10, 0, 0)
iconLbl.BackgroundTransparency = 1
iconLbl.Text = string.char(226, 150, 184)
iconLbl.TextColor3 = _C.Accent
iconLbl.Font = Enum.Font.Gotham
iconLbl.TextSize = 12
iconLbl.TextXAlignment = Enum.TextXAlignment.Left
iconLbl.ZIndex = 65
iconLbl.Parent = btn
-- Tab label text
local btnLabel = Instance.new('TextLabel')
btnLabel.Size = UDim2.new(1, -36, 1, 0)
btnLabel.Position = UDim2.new(0, 30, 0, 0)
btnLabel.BackgroundTransparency = 1
btnLabel.Text = name
btnLabel.TextColor3 = _C.TextSecondary
btnLabel.TextXAlignment = Enum.TextXAlignment.Left
btnLabel.Font = Enum.Font.GothamBold
btnLabel.TextSize = 13
btnLabel.ZIndex = 65
btnLabel.Parent = btn
btn.MouseEnter:Connect(function()
if activeTab ~= name then
_tw(btn, {BackgroundColor3 = Color3.fromRGB(22, 30, 50)}, 0.15)
end
end)
btn.MouseLeave:Connect(function()
if activeTab ~= name then
_tw(btn, {BackgroundColor3 = Color3.fromRGB(255, 255, 255)}, 0.2)
end
end)
-- Tab content scrolling frame
local content = Instance.new('ScrollingFrame')
content.Name = 'Tab_' .. name
content.Size = UDim2.new(1, 0, 1, 0)
content.BackgroundTransparency = 1
content.BorderSizePixel = 0
content.ScrollBarThickness = 4
content.ScrollBarImageColor3 = _C.Accent
content.ScrollBarImageTransparency = 0.5
content.CanvasSize = UDim2.new(0, 0, 0, 0)
content.AutomaticCanvasSize = Enum.AutomaticSize.Y
content.Visible = false
content.ZIndex = 61
content.Parent = contentArea
local cLayout = Instance.new('UIListLayout')
cLayout.SortOrder = Enum.SortOrder.LayoutOrder
cLayout.Padding = UDim.new(0, 4)
cLayout.Parent = content
local cPad = Instance.new('UIPadding')
cPad.PaddingTop = UDim.new(0, 8)
cPad.PaddingBottom = UDim.new(0, 50)
cPad.PaddingLeft = UDim.new(0, 10)
cPad.PaddingRight = UDim.new(0, 10)
cPad.Parent = content
tabs[name] = {btn = btn, btnLabel = btnLabel, indicator = indicator, content = content}
btn.MouseButton1Click:Connect(function()
showTab(name)
end)
return content
end
-- ==================== ELEMENT BUILDERS ====================
-- ===== SECTION TITLE =====
local function addSectionTitle(parent, text, count)
local t = Instance.new('Frame')
t.Size = UDim2.new(1, 0, 0, 26)
t.BackgroundColor3 = _C.SectionHead
t.BackgroundTransparency = 0
t.BorderSizePixel = 0
t.LayoutOrder = 9998
t.ZIndex = 62
t.Parent = parent
local tC = Instance.new('UICorner')
tC.CornerRadius = UDim.new(0, _CR_E)
tC.Parent = t
local lbl = Instance.new('TextLabel')
lbl.Size = UDim2.new(1, -16, 1, 0)
lbl.Position = UDim2.new(0, 10, 0, 0)
lbl.BackgroundTransparency = 1
lbl.Text = text .. ' (' .. tostring(count or 0) .. ')'
lbl.TextColor3 = _C.AccentHover
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Font = Enum.Font.GothamBold
lbl.TextSize = 12
lbl.ZIndex = 63
lbl.Parent = t
return t
end
-- ===== SPACER =====
local function addSpacer(parent, h, order)
local sp = Instance.new('Frame')
sp.Size = UDim2.new(1, 0, 0, h or 6)
sp.BackgroundTransparency = 1
sp.LayoutOrder = order or 9999
sp.ZIndex = 60
sp.Parent = parent
end
-- ===== TOGGLE SWITCH =====
local function addToggle(parent, label, default, onCmd, offCmd, order)
local key = onCmd
ArcCmdGUI.ToggleStates[key] = ArcCmdGUI.ToggleStates[key] or default
local container = Instance.new('Frame')
container.Size = UDim2.new(1, 0, 0, 32)
container.BackgroundColor3 = _C.Content
container.BackgroundTransparency = 0
container.BorderSizePixel = 0
container.LayoutOrder = order or 999
container.ZIndex = 62
container.Parent = parent
local cC = Instance.new('UICorner')
cC.CornerRadius = UDim.new(0, _CR_E)
cC.Parent = container
-- Subtle separator line
local bLine = Instance.new('Frame')
bLine.Size = UDim2.new(1, -20, 0, 1)
bLine.Position = UDim2.new(0, 10, 1, -1)
bLine.BackgroundColor3 = _C.Border
bLine.BackgroundTransparency = 0.75
bLine.BorderSizePixel = 0
bLine.ZIndex = 63
bLine.Parent = container
local lbl = Instance.new('TextLabel')
lbl.Size = UDim2.new(1, -60, 1, 0)
lbl.Position = UDim2.new(0, 12, 0, 0)
lbl.BackgroundTransparency = 1
lbl.Text = label
lbl.TextColor3 = _C.TextPrimary
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Font = Enum.Font.Gotham
lbl.TextSize = 13
lbl.ZIndex = 63
lbl.Parent = container
-- Toggle track (rectangular, rounded ends)
local track = Instance.new('Frame')
track.Size = UDim2.new(0, 40, 0, 20)
track.Position = UDim2.new(1, -48, 0.5, -10)
track.BackgroundColor3 = _C.ToggleOff
track.BorderSizePixel = 0
track.ZIndex = 64
track.Parent = container
local tCr = Instance.new('UICorner')
tCr.CornerRadius = UDim.new(1, 0)
tCr.Parent = track
-- Knob
local knob = Instance.new('Frame')
knob.Size = UDim2.new(0, 16, 0, 16)
knob.Position = UDim2.new(0, 2, 0.5, -8)
knob.BackgroundColor3 = Color3.fromRGB(160, 170, 185)
knob.BorderSizePixel = 0
knob.ZIndex = 65
knob.Parent = track
local kCr = Instance.new('UICorner')
kCr.CornerRadius = UDim.new(1, 0)
kCr.Parent = knob
local function applyState(isOn, animate)
ArcCmdGUI.ToggleStates[key] = isOn
if isOn then
if animate then
_tw(track, {BackgroundColor3 = _C.ToggleOn}, 0.2)
_tw(knob, {Position = UDim2.new(1, -18, 0.5, -8), BackgroundColor3 = Color3.fromRGB(255, 255, 255)}, 0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out)
else
track.BackgroundColor3 = _C.ToggleOn
knob.Position = UDim2.new(1, -18, 0.5, -8)
knob.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
end
else
if animate then
_tw(track, {BackgroundColor3 = _C.ToggleOff}, 0.2)
_tw(knob, {Position = UDim2.new(0, 2, 0.5, -8), BackgroundColor3 = Color3.fromRGB(160, 170, 185)}, 0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out)
else
track.BackgroundColor3 = _C.ToggleOff
knob.Position = UDim2.new(0, 2, 0.5, -8)
knob.BackgroundColor3 = Color3.fromRGB(160, 170, 185)
end
end
end
applyState(ArcCmdGUI.ToggleStates[key], false)
-- Invisible click catcher
local clickBtn = Instance.new('TextButton')
clickBtn.Size = UDim2.new(1, 0, 1, 0)
clickBtn.BackgroundTransparency = 1
clickBtn.Text = ''
clickBtn.ZIndex = 66
clickBtn.Parent = container
clickBtn.MouseButton1Click:Connect(function()
local newState = not ArcCmdGUI.ToggleStates[key]
applyState(newState, true)
if newState then
pcall(function() execCmd(onCmd) end)
else
pcall(function() execCmd(offCmd) end)
end
end)
return container
end
-- ===== BUTTON =====
local function addButton(parent, label, cmd, order)
local container = Instance.new('TextButton')
container.Size = UDim2.new(1, 0, 0, 30)
container.BackgroundColor3 = _C.AccentDark
container.BackgroundTransparency = 0.15
container.BorderSizePixel = 0
container.Text = ''
container.LayoutOrder = order or 999
container.ZIndex = 62
container.AutoButtonColor = false
container.Parent = parent
local cC = Instance.new('UICorner')
cC.CornerRadius = UDim.new(0, _CR_E)
cC.Parent = container
local lbl = Instance.new('TextLabel')
lbl.Size = UDim2.new(1, -16, 1, 0)
lbl.Position = UDim2.new(0, 12, 0, 0)
lbl.BackgroundTransparency = 1
lbl.Text = label
lbl.TextColor3 = _C.TextSecondary
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Font = Enum.Font.GothamBold
lbl.TextSize = 12
lbl.ZIndex = 63
lbl.Parent = container
container.MouseEnter:Connect(function()
_tw(container, {BackgroundColor3 = _C.Accent, BackgroundTransparency = 0.25}, 0.15)
_tw(lbl, {TextColor3 = _C.TextPrimary}, 0.15)
end)
container.MouseLeave:Connect(function()
_tw(container, {BackgroundColor3 = _C.AccentDark, BackgroundTransparency = 0.15}, 0.2)
_tw(lbl, {TextColor3 = _C.TextSecondary}, 0.2)
end)
container.MouseButton1Click:Connect(function()
_tw(container, {BackgroundColor3 = _C.AccentDark, BackgroundTransparency = 0}, 0.08)
wait(0.1)
_tw(container, {BackgroundColor3 = _C.AccentDark, BackgroundTransparency = 0.15}, 0.2)
pcall(function() execCmd(cmd) end)
end)
return container
end
-- ===== SLIDER =====
local function addSlider(parent, label, min, max, default, cmd, order)
local container = Instance.new('Frame')
container.Size = UDim2.new(1, 0, 0, 50)
container.BackgroundColor3 = _C.Content
container.BackgroundTransparency = 0
container.BorderSizePixel = 0
container.LayoutOrder = order or 999
container.ZIndex = 62
container.Parent = parent
local cC = Instance.new('UICorner')
cC.CornerRadius = UDim.new(0, _CR_E)
cC.Parent = container
local lbl = Instance.new('TextLabel')
lbl.Size = UDim2.new(1, -16, 0, 22)
lbl.Position = UDim2.new(0, 12, 0, 4)
lbl.BackgroundTransparency = 1
lbl.Text = label .. ': ' .. tostring(default or min)
lbl.TextColor3 = _C.TextPrimary
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Font = Enum.Font.GothamBold
lbl.TextSize = 11
lbl.ZIndex = 63
lbl.Parent = container
-- Track (6px tall, rounded)
local track = Instance.new('Frame')
track.Size = UDim2.new(1, -24, 0, 6)
track.Position = UDim2.new(0, 12, 1, -18)
track.BackgroundColor3 = _C.SliderTrack
track.BorderSizePixel = 0
track.ZIndex = 64
track.Parent = container
local tCr = Instance.new('UICorner')
tCr.CornerRadius = UDim.new(1, 0)
tCr.Parent = track
-- Fill bar (cyan accent)
local pct = (default - min) / (max - min)
if pct < 0 then pct = 0 end
if pct > 1 then pct = 1 end
local fill = Instance.new('Frame')
fill.Size = UDim2.new(pct, 0, 1, 0)
fill.BackgroundColor3 = _C.Accent
fill.BorderSizePixel = 0
fill.ZIndex = 65
fill.Parent = track
local fCr = Instance.new('UICorner')
fCr.CornerRadius = UDim.new(1, 0)
fCr.Parent = fill
-- Thumb (14px white circle with accent border stroke)
local thumb = Instance.new('Frame')
thumb.Size = UDim2.new(0, 14, 0, 14)
thumb.Position = UDim2.new(pct, -7, 0.5, -7)
thumb.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
thumb.BorderSizePixel = 0
thumb.ZIndex = 66
thumb.Parent = track
local thCr = Instance.new('UICorner')
thCr.CornerRadius = UDim.new(1, 0)
thCr.Parent = thumb
local thS = Instance.new('UIStroke')
thS.Color = _C.Accent
thS.Thickness = 2
thS.Parent = thumb
local sliding = false
local function updateSlider(xPos)
local relX = math.clamp((xPos - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1)
local val = min + (max - min) * relX
local rounded = math.floor(val * 100 + 0.5) / 100
fill.Size = UDim2.new(relX, 0, 1, 0)
thumb.Position = UDim2.new(relX, -7, 0.5, -7)
lbl.Text = label .. ': ' .. tostring(rounded)
pcall(function() execCmd(cmd .. " " .. tostring(rounded)) end)
end
track.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
sliding = true
updateSlider(input.Position.X)
end
end)
track.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
sliding = false
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
if sliding then sliding = false end
end
end)
UserInputService.InputChanged:Connect(function(input)
if sliding then
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
updateSlider(input.Position.X)
end
end
end)
return container
end
-- ===== PLAYER DROPDOWN + EXECUTE =====
local function addPlayerDropdown(parent, label, cmd, order)
local container = Instance.new('Frame')
container.Size = UDim2.new(1, 0, 0, 56)
container.BackgroundColor3 = _C.Content
container.BackgroundTransparency = 0
container.BorderSizePixel = 0
container.LayoutOrder = order or 999
container.ZIndex = 62
container.Parent = parent
local cC = Instance.new('UICorner')
cC.CornerRadius = UDim.new(0, _CR_E)
cC.Parent = container
local lbl = Instance.new('TextLabel')
lbl.Size = UDim2.new(1, -16, 0, 18)
lbl.Position = UDim2.new(0, 10, 0, 2)
lbl.BackgroundTransparency = 1
lbl.Text = label
lbl.TextColor3 = _C.TextPrimary
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Font = Enum.Font.GothamBold
lbl.TextSize = 11
lbl.ZIndex = 63
lbl.Parent = container
local selectedName = nil
local dropOpen = false
-- Dropdown button
local dropBtn = Instance.new('TextButton')
dropBtn.Size = UDim2.new(1, -88, 0, 26)
dropBtn.Position = UDim2.new(0, 10, 0, 24)
dropBtn.BackgroundColor3 = _C.InputBg
dropBtn.BackgroundTransparency = 0
dropBtn.BorderSizePixel = 0
dropBtn.Text = 'Select Player...'
dropBtn.TextColor3 = _C.TextDim
dropBtn.TextXAlignment = Enum.TextXAlignment.Left
dropBtn.Font = Enum.Font.Gotham
dropBtn.TextSize = 12
dropBtn.TextTruncate = Enum.TextTruncate.AtEnd
dropBtn.ZIndex = 65
dropBtn.AutoButtonColor = false
dropBtn.Parent = container
local dC = Instance.new('UICorner')
dC.CornerRadius = UDim.new(0, _CR_E)
dC.Parent = dropBtn
local dS = Instance.new('UIStroke')
dS.Color = _C.Border
dS.Thickness = 0.8
dS.Transparency = 0.3
dS.Parent = dropBtn
local dPad = Instance.new('UIPadding')
dPad.PaddingLeft = UDim.new(0, 8)
dPad.PaddingRight = UDim.new(0, 18)
dPad.Parent = dropBtn
-- Arrow icon
local arrowLbl = Instance.new('TextLabel')
arrowLbl.Size = UDim2.new(0, 14, 0, 14)
arrowLbl.Position = UDim2.new(1, -16, 0.5, -7)
arrowLbl.BackgroundTransparency = 1
arrowLbl.Text = string.char(226, 150, 190)
arrowLbl.TextColor3 = _C.TextDim
arrowLbl.Font = Enum.Font.Gotham
arrowLbl.TextSize = 9
arrowLbl.ZIndex = 66
arrowLbl.Parent = dropBtn
-- Dropdown list frame (hidden by default)
local dropFrame = Instance.new('Frame')
dropFrame.Size = UDim2.new(1, -88, 0, 0)
dropFrame.Position = UDim2.new(0, 10, 1, -2)
dropFrame.BackgroundColor3 = _C.Sidebar
dropFrame.BorderSizePixel = 0
dropFrame.ClipsDescendants = true
dropFrame.Visible = false
dropFrame.ZIndex = 70
dropFrame.Parent = container
local dfC = Instance.new('UICorner')
dfC.CornerRadius = UDim.new(0, _CR_E)
dfC.Parent = dropFrame
local dfS = Instance.new('UIStroke')
dfS.Color = _C.Border
dfS.Thickness = 1
dfS.Transparency = 0.2
dfS.Parent = dropFrame
local dropScroll = Instance.new('ScrollingFrame')
dropScroll.Size = UDim2.new(1, 0, 1, 0)
dropScroll.BackgroundTransparency = 1
dropScroll.BorderSizePixel = 0
dropScroll.ScrollBarThickness = 3
dropScroll.ScrollBarImageColor3 = _C.Accent
dropScroll.ScrollBarImageTransparency = 0.5
dropScroll.CanvasSize = UDim2.new(0, 0, 0, 0)
dropScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
dropScroll.ZIndex = 71
dropScroll.Parent = dropFrame
local dropLayout = Instance.new('UIListLayout')
dropLayout.SortOrder = Enum.SortOrder.LayoutOrder
dropLayout.Padding = UDim.new(0, 1)
dropLayout.Parent = dropScroll
local function populatePlayers()
for _, c in ipairs(dropScroll:GetChildren()) do
if c:IsA('TextButton') or c:IsA('TextLabel') then
c:Destroy()
end
end
local playerList = _getPlayerList()
for i, pName in ipairs(playerList) do
local opt = Instance.new('TextButton')
opt.Size = UDim2.new(1, 0, 0, 24)
opt.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
opt.BackgroundTransparency = 0.97
opt.BorderSizePixel = 0
opt.Text = pName
opt.TextColor3 = _C.TextPrimary
opt.TextXAlignment = Enum.TextXAlignment.Left
opt.Font = Enum.Font.Gotham
opt.TextSize = 12
opt.LayoutOrder = i
opt.ZIndex = 72
opt.AutoButtonColor = false
opt.Parent = dropScroll
local oP = Instance.new('UIPadding')
oP.PaddingLeft = UDim.new(0, 8)
oP.Parent = opt
opt.MouseEnter:Connect(function()
opt.BackgroundColor3 = _C.AccentDark
_tw(opt, {BackgroundTransparency = 0.85}, 0.1)
end)
opt.MouseLeave:Connect(function()
opt.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
_tw(opt, {BackgroundTransparency = 0.97}, 0.1)
end)
opt.MouseButton1Click:Connect(function()
selectedName = pName
dropBtn.Text = pName
dropBtn.TextColor3 = _C.TextPrimary
dropFrame.Visible = false
dropOpen = false
arrowLbl.Text = string.char(226, 150, 190)
dropFrame.Size = UDim2.new(1, -88, 0, 0)
end)
end
if #playerList == 0 then
local noPl = Instance.new('TextLabel')
noPl.Size = UDim2.new(1, 0, 0, 24)
noPl.BackgroundTransparency = 1
noPl.Text = 'No other players'
noPl.TextColor3 = _C.TextDim
noPl.Font = Enum.Font.Gotham
noPl.TextSize = 11
noPl.ZIndex = 72
noPl.Parent = dropScroll
end
end
local function toggleDropdown()
dropOpen = not dropOpen
if dropOpen then
populatePlayers()
local playerList = _getPlayerList()
local maxH = math.min(#playerList, 6) * 25 + 4
if maxH < 28 then maxH = 28 end
dropFrame.Size = UDim2.new(1, -88, 0, 0)
dropFrame.Visible = true
_tw(dropFrame, {Size = UDim2.new(1, -88, 0, maxH)}, 0.15)
arrowLbl.Text = string.char(226, 150, 180)
else
_tw(dropFrame, {Size = UDim2.new(1, -88, 0, 0)}, 0.12)
wait(0.13)
dropFrame.Visible = false
arrowLbl.Text = string.char(226, 150, 190)
end
end
dropBtn.MouseButton1Click:Connect(toggleDropdown)
-- Execute button
local execBtn = Instance.new('TextButton')
execBtn.Size = UDim2.new(0, 68, 0, 26)
execBtn.Position = UDim2.new(1, -78, 0, 24)
execBtn.BackgroundColor3 = _C.Accent
execBtn.BackgroundTransparency = 0.2
execBtn.BorderSizePixel = 0
execBtn.Text = 'Execute'
execBtn.TextColor3 = _C.TextPrimary
execBtn.Font = Enum.Font.GothamBold
execBtn.TextSize = 11
execBtn.ZIndex = 65
execBtn.AutoButtonColor = false
execBtn.Parent = container
local eC = Instance.new('UICorner')
eC.CornerRadius = UDim.new(0, _CR_E)
eC.Parent = execBtn
execBtn.MouseEnter:Connect(function()
_tw(execBtn, {BackgroundTransparency = 0}, 0.12)
end)
execBtn.MouseLeave:Connect(function()
_tw(execBtn, {BackgroundTransparency = 0.2}, 0.15)
end)
execBtn.MouseButton1Click:Connect(function()
if selectedName then
pcall(function() execCmd(cmd .. " " .. selectedName) end)
end
if dropOpen then
dropOpen = false
_tw(dropFrame, {Size = UDim2.new(1, -88, 0, 0)}, 0.12)
wait(0.13)
dropFrame.Visible = false
arrowLbl.Text = string.char(226, 150, 190)
end
end)
return container
end
-- ===== ID TEXTBOX + EXECUTE =====
local function addIdInput(parent, label, placeholder, cmd, order)
local container = Instance.new('Frame')
container.Size = UDim2.new(1, 0, 0, 54)
container.BackgroundColor3 = _C.Content
container.BackgroundTransparency = 0
container.BorderSizePixel = 0
container.LayoutOrder = order or 999
container.ZIndex = 62
container.Parent = parent
local cC = Instance.new('UICorner')
cC.CornerRadius = UDim.new(0, _CR_E)
cC.Parent = container
local lbl = Instance.new('TextLabel')
lbl.Size = UDim2.new(1, -16, 0, 18)
lbl.Position = UDim2.new(0, 10, 0, 2)
lbl.BackgroundTransparency = 1
lbl.Text = label
lbl.TextColor3 = _C.TextPrimary
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Font = Enum.Font.GothamBold
lbl.TextSize = 11
lbl.ZIndex = 63
lbl.Parent = container
local inputBox = Instance.new('TextBox')
inputBox.Size = UDim2.new(1, -88, 0, 26)
inputBox.Position = UDim2.new(0, 10, 0, 24)
inputBox.BackgroundColor3 = _C.InputBg
inputBox.BackgroundTransparency = 0
inputBox.BorderSizePixel = 0
inputBox.Text = ''
inputBox.PlaceholderText = placeholder or 'Enter ID...'
inputBox.PlaceholderColor3 = _C.TextDim
inputBox.TextColor3 = _C.TextPrimary
inputBox.Font = Enum.Font.Gotham
inputBox.TextSize = 12
inputBox.TextXAlignment = Enum.TextXAlignment.Left
inputBox.ZIndex = 64
inputBox.ClearTextOnFocus = false
inputBox.Parent = container
local iC = Instance.new('UICorner')
iC.CornerRadius = UDim.new(0, _CR_E)
iC.Parent = inputBox
local iS = Instance.new('UIStroke')
iS.Color = _C.Border
iS.Thickness = 0.8
iS.Transparency = 0.3
iS.Parent = inputBox
local inputPad = Instance.new('UIPadding')
inputPad.PaddingLeft = UDim.new(0, 8)
inputPad.Parent = inputBox
-- Submit button ("Go")
local submitBtn = Instance.new('TextButton')
submitBtn.Size = UDim2.new(0, 68, 0, 26)
submitBtn.Position = UDim2.new(1, -78, 0, 24)
submitBtn.BackgroundColor3 = _C.Accent
submitBtn.BackgroundTransparency = 0.2
submitBtn.BorderSizePixel = 0
submitBtn.Text = 'Go'
submitBtn.TextColor3 = _C.TextPrimary
submitBtn.Font = Enum.Font.GothamBold
submitBtn.TextSize = 12
submitBtn.ZIndex = 65
submitBtn.AutoButtonColor = false
submitBtn.Parent = container
local sC = Instance.new('UICorner')
sC.CornerRadius = UDim.new(0, _CR_E)
sC.Parent = submitBtn
submitBtn.MouseEnter:Connect(function()
_tw(submitBtn, {BackgroundTransparency = 0}, 0.12)
end)
submitBtn.MouseLeave:Connect(function()
_tw(submitBtn, {BackgroundTransparency = 0.2}, 0.15)
end)
local function doExec()
if inputBox.Text ~= '' then
pcall(function() execCmd(cmd .. " " .. inputBox.Text) end)
end
end
submitBtn.MouseButton1Click:Connect(doExec)
inputBox.FocusLost:Connect(function(enterPressed)
if enterPressed then doExec() end
end)
return container
end
-- ==================== DRAGGING ====================
local dragging = false
local dragStart = Vector3.new(0, 0, 0)
local startPos = UDim2.new(0, 0, 0, 0)
header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = frame.Position
end
end)
header.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging then
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
local delta = input.Position - dragStart
frame.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end
end)
-- ==================== K-KEY TOGGLE ====================
if ArcCmdGUI.KConn then
pcall(function() ArcCmdGUI.KConn:Disconnect() end)
ArcCmdGUI.KConn = nil
end
ArcCmdGUI.KConn = UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == Enum.KeyCode.K then
if ArcCmdGUI.Open then
ArcCmdGUI._close()
else
ArcCmdGUI._open()
end
end
end)
-- ==================== BUILD ALL TABS & COMMANDS ====================
-- ===== TAB: Movement =====
local tMov = makeTab('Movement')
local movIdx = 0
local function movOrder() movIdx = movIdx + 1 return movIdx end
addSectionTitle(tMov, 'Fly', 7)
addToggle(tMov, 'Fly', false, 'fly', 'unfly', movOrder())
addToggle(tMov, 'Vehicle Fly', false, 'vfly', 'unvfly', movOrder())
addToggle(tMov, 'CFrame Fly', false, 'cframefly', 'uncframefly', movOrder())
addToggle(tMov, 'QE Fly', false, 'qefly', 'unfly', movOrder())
addSlider(tMov, 'Fly Speed', 1, 500, 80, 'flyspeed', movOrder())
addSlider(tMov, 'Vehicle Fly Speed', 1, 500, 80, 'vflyspeed', movOrder())
addSlider(tMov, 'CFrame Fly Speed', 1, 500, 80, 'cframeflyspeed', movOrder())
addSpacer(tMov, 4, movOrder())
addSectionTitle(tMov, 'Walk & Run', 4)
addSlider(tMov, 'Walk Speed', 1, 500, 16, 'speed', movOrder())
addSlider(tMov, 'Rotate Speed', 1, 100, 10, 'rotatespeed', movOrder())
addSlider(tMov, 'Jump Power', 1, 500, 50, 'jpower', movOrder())
addSlider(tMov, 'Hip Height', 0, 20, 2, 'hipheight', movOrder())
addSpacer(tMov, 4, movOrder())
addSectionTitle(tMov, 'Noclip & Swim', 5)
addToggle(tMov, 'Noclip', false, 'noclip', 'clip', movOrder())
addToggle(tMov, 'Half Clip', false, 'nocliph', 'clip', movOrder())
addToggle(tMov, 'Swim', false, 'swim', 'unswim', movOrder())
addToggle(tMov, 'Float Platform', false, 'float', 'unfloat', movOrder())
addToggle(tMov, 'Wall Walk', false, 'wallwalk', 'unwallwalk', movOrder())
addSpacer(tMov, 4, movOrder())
addSectionTitle(tMov, 'Teleport', 6)
addPlayerDropdown(tMov, 'Go To Player', 'goto', movOrder())
addPlayerDropdown(tMov, 'Smooth GoTo', 'tweengoto', movOrder())
addPlayerDropdown(tMov, 'Vehicle GoTo', 'vehiclegoto', movOrder())
addPlayerDropdown(tMov, 'Pulse TP Player', 'pulsetp', movOrder())
addSlider(tMov, 'Tween Speed', 1, 300, 50, 'tweenspeed', movOrder())
addSlider(tMov, 'Gravity', 0, 500, 196.2, 'gravity', movOrder())
addSpacer(tMov, 4, movOrder())
addSectionTitle(tMov, 'Pathfind & Follow', 4)
addPlayerDropdown(tMov, 'Walk To Player', 'walkto', movOrder())
addPlayerDropdown(tMov, 'Pathfind Walk To', 'pathfindwalkto', movOrder())
addPlayerDropdown(tMov, 'Pathfind Fly To', 'pathfindflyto', movOrder())
addButton(tMov, 'Stop Pathfind Fly', 'unpathfindfly', movOrder())
addSpacer(tMov, 4, movOrder())
addSectionTitle(tMov, 'Vehicle', 3)
addToggle(tMov, 'Vehicle Noclip', false, 'vehiclenoclip', 'vehicleclip', movOrder())
addToggle(tMov, 'Ctrl+Click TP', false, 'ctrlclicktp', 'unctrlclicktp', movOrder())
addButton(tMov, 'Client Bring', 'cbring', movOrder())
addSpacer(tMov, 4, movOrder())
addSectionTitle(tMov, 'Waypoints', 5)
addIdInput(tMov, 'Save Waypoint', 'Waypoint name...', 'setwaypoint', movOrder())
addButton(tMov, 'Go To Waypoint', 'waypoint', movOrder())
addButton(tMov, 'Tween To Waypoint', 'tweenwaypoint', movOrder())
addButton(tMov, 'Show Waypoints', 'showwaypoints', movOrder())
addButton(tMov, 'Hide Waypoints', 'hidewaypoints', movOrder())
addButton(tMov, 'Clear Waypoints', 'clearwaypoints', movOrder())
addSpacer(tMov, 4, movOrder())
addSectionTitle(tMov, 'Arc Movement', 14)
addToggle(tMov, 'Arc Fly', false, 'arcfly', 'unarcfly', movOrder())
addToggle(tMov, 'Arc CFrame Fly', false, 'arccfly', 'unarccfly', movOrder())
addToggle(tMov, 'Arc Vehicle Fly', false, 'arcvfly', 'unarcvfly', movOrder())
addToggle(tMov, 'Arc Noclip', false, 'arcnoclip', 'unarcnoclip', movOrder())
addToggle(tMov, 'Arc Super Jump', false, 'arcsjump', 'unarcsjump', movOrder())
addToggle(tMov, 'Arc Infinite Jump', false, 'arcinfjump', 'unarcinfjump', movOrder())
addToggle(tMov, 'Arc Bunny Hop', false, 'arcbhop', 'unarcbhop', movOrder())
addToggle(tMov, 'Arc Float', false, 'arcfloat', 'unarcfloat', movOrder())
addToggle(tMov, 'Arc Bouncy', false, 'arcbouncy', 'unarcbouncy', movOrder())
addToggle(tMov, 'Arc Anti Gravity', false, 'arcantigrav', 'unarcantigrav', movOrder())
addToggle(tMov, 'Arc Dash', false, 'arcdash', 'unarcdash', movOrder())
addToggle(tMov, 'Arc Spider Climb', false, 'arcspider', 'unarcspider', movOrder())
addSlider(tMov, 'Arc Speed', 1, 500, 16, 'arcspeed', movOrder())
addSlider(tMov, 'Arc Hyper Speed', 1, 1000, 100, 'archyper', movOrder())
addSlider(tMov, 'Arc Jump Power', 1, 500, 50, 'arcjp', movOrder())
-- ===== TAB: Combat =====
local tCom = makeTab('Combat')
local comIdx = 0
local function comOrder() comIdx = comIdx + 1 return comIdx end
addSectionTitle(tCom, 'Attack', 5)
addPlayerDropdown(tCom, 'Fling Player', 'fling', comOrder())
addPlayerDropdown(tCom, 'Fly Fling', 'flyfling', comOrder())
addPlayerDropdown(tCom, 'Walk Fling', 'walkfling', comOrder())
addPlayerDropdown(tCom, 'Loop Kill', 'loopkill', comOrder())
addPlayerDropdown(tCom, 'Handle Kill', 'handlekill', comOrder())
addSpacer(tCom, 4, comOrder())
addSectionTitle(tCom, 'Toggle Combat', 5)
addToggle(tCom, 'Kill Aura', false, 'killaura', 'unkillaura', comOrder())
addToggle(tCom, 'Anti Fling', false, 'antifling', 'unantifling', comOrder())
addToggle(tCom, 'Loop Bring', false, 'loopbring', 'unloopbring', comOrder())
addToggle(tCom, 'Bring All', false, 'bringall', 'unbringall', comOrder())
addToggle(tCom, 'TP All', false, 'tpall', 'untpall', comOrder())
addSpacer(tCom, 4, comOrder())
addSectionTitle(tCom, 'Status Effects', 8)
addPlayerDropdown(tCom, 'Freeze', 'freeze', comOrder())
addPlayerDropdown(tCom, 'Thaw', 'thaw', comOrder())
addPlayerDropdown(tCom, 'Jail', 'jail', comOrder())
addPlayerDropdown(tCom, 'Blind', 'blind', comOrder())
addPlayerDropdown(tCom, 'Spin', 'spin2', comOrder())
addPlayerDropdown(tCom, 'Seizure', 'seizure', comOrder())
addPlayerDropdown(tCom, 'Trip', 'trip', comOrder())
addPlayerDropdown(tCom, 'Punish', 'punish', comOrder())
addSpacer(tCom, 4, comOrder())
addSectionTitle(tCom, 'Arc Combat', 10)
addToggle(tCom, 'Arc Kill Aura', false, 'arckaura', 'unarckaura', comOrder())
addPlayerDropdown(tCom, 'Arc Fling', 'arcfling', comOrder())
addPlayerDropdown(tCom, 'Arc Loop Kill', 'arcloopkill', comOrder())
addPlayerDropdown(tCom, 'Arc Jail', 'arcjail', comOrder())
addPlayerDropdown(tCom, 'Arc Freeze', 'arcfreeze', comOrder())
addPlayerDropdown(tCom, 'Arc Blind', 'arcblind', comOrder())
addPlayerDropdown(tCom, 'Arc Crash', 'arccrash', comOrder())
addPlayerDropdown(tCom, 'Arc Spin', 'arcspin2', comOrder())
addButton(tCom, 'Arc Bring All', 'arcbringall', comOrder())
addButton(tCom, 'Arc TP All', 'arctpall', comOrder())
addButton(tCom, 'Arc Server Lock', 'arcslock', comOrder())
addSlider(tCom, 'Arc Reach', 1, 100, 3, 'arcreach', comOrder())
addButton(tCom, 'Arc Explode', 'arcexplode', comOrder())
-- ===== TAB: Character =====
local tChar = makeTab('Character')
local chrIdx = 0
local function chrOrder() chrIdx = chrIdx + 1 return chrIdx end
addSectionTitle(tChar, 'God & Defence', 2)
addToggle(tChar, 'God Mode', false, 'god', 'ungod', chrOrder())
addToggle(tChar, 'Invisible', false, 'invisible', 'visible', chrOrder())
addSpacer(tChar, 4, chrOrder())
addSectionTitle(tChar, 'Body Control', 5)
addToggle(tChar, 'Strengthen', false, 'strengthen', 'unweaken', chrOrder())
addToggle(tChar, 'Weaken', false, 'weaken', 'unweaken', chrOrder())
addButton(tChar, 'Break Velocity', 'breakvelocity', chrOrder())
addButton(tChar, 'Refresh', 'refresh', chrOrder())
addButton(tChar, 'Reset', 'reset', chrOrder())
addSpacer(tChar, 4, chrOrder())
addSectionTitle(tChar, 'Scale & Size', 3)
addSlider(tChar, 'Scale', 0.1, 10, 1, 'scale', chrOrder())
addPlayerDropdown(tChar, 'Tiny', 'tiny', chrOrder())
addPlayerDropdown(tChar, 'Giant', 'giant', chrOrder())
addPlayerDropdown(tChar, 'Arc Tiny', 'arctiny', chrOrder())
addPlayerDropdown(tChar, 'Arc Giant', 'arcgiant', chrOrder())
addSpacer(tChar, 4, chrOrder())
addSectionTitle(tChar, 'Animation & Pose', 10)
addToggle(tChar, 'Dance', false, 'dance', 'undance', chrOrder())
addToggle(tChar, 'Freeze Anims', false, 'freezeanims', 'unfreezeanims', chrOrder())
addToggle(tChar, 'Ghost', false, 'ghost', 'unghost', chrOrder())
addPlayerDropdown(tChar, 'Head Throw', 'headthrow', chrOrder())
addPlayerDropdown(tChar, 'Spin', 'spin', chrOrder())
addButton(tChar, 'Unspin', 'unspin', chrOrder())
addButton(tChar, 'Sit', 'sit', chrOrder())
addPlayerDropdown(tChar, 'Bang', 'bang', chrOrder())
addPlayerDropdown(tChar, 'Spasm', 'spasm', chrOrder())
addPlayerDropdown(tChar, 'LOL Animation', 'lolanim', chrOrder())
addSpacer(tChar, 4, chrOrder())
addSectionTitle(tChar, 'Respawn', 3)
addButton(tChar, 'Respawn', 'respawn', chrOrder())
addButton(tChar, 'Suicide', 'suicide', chrOrder())
addButton(tChar, 'Sit Walk', 'sitwalk', chrOrder())
addSlider(tChar, 'Arc Gravity', 0, 500, 196.2, 'arcgravity', chrOrder())
-- ===== TAB: Visuals =====
local tVis = makeTab('Visuals')
local visIdx = 0
local function visOrder() visIdx = visIdx + 1 return visIdx end
addSectionTitle(tVis, 'ESP', 7)
addToggle(tVis, 'ESP', false, 'esp', 'noesp', visOrder())
addToggle(tVis, 'Team ESP', false, 'espteam', 'noesp', visOrder())
addToggle(tVis, 'Part ESP', false, 'partesp', 'unpartesp', visOrder())
addToggle(tVis, 'Smart ESP', false, 'smartesp', 'unsmartesp', visOrder())
addSlider(tVis, 'ESP Transparency', 0, 1, 0.3, 'esptransparency', visOrder())
addToggle(tVis, 'Locate', false, 'locate', 'nolocate', visOrder())
addSpacer(tVis, 4, visOrder())
addSectionTitle(tVis, 'Chams & Effects', 6)
addToggle(tVis, 'Chams', false, 'chams', 'nochams', visOrder())
addToggle(tVis, 'Xray', false, 'xray', 'unxray', visOrder())
addToggle(tVis, 'Fullbright', false, 'fullbright', 'nofullbright', visOrder())
addToggle(tVis, 'Night Vision', false, 'nightvision', 'unnightvision', visOrder())
addToggle(tVis, 'Wireframe', false, 'wireframe', 'unwireframe', visOrder())
addToggle(tVis, 'No Fog', false, 'nofog', 'refog', visOrder())
addSpacer(tVis, 4, visOrder())
addSectionTitle(tVis, 'Camera', 6)
addSlider(tVis, 'FOV', 1, 120, 70, 'fov', visOrder())
addButton(tVis, 'Free Camera', 'freecam', visOrder())
addButton(tVis, 'Stop Free Cam', 'unfreecam', visOrder())
addSlider(tVis, 'Free Cam Speed', 1, 500, 50, 'freecamspeed', visOrder())
addToggle(tVis, 'Shift Lock', false, 'enableshiftlock', 'disableshiftlock', visOrder())
addButton(tVis, 'Fix Camera', 'fixcam', visOrder())
addSpacer(tVis, 4, visOrder())
addSectionTitle(tVis, 'Arc Visuals', 14)
addToggle(tVis, 'Arc ESP', false, 'arcesp', 'unarcesp', visOrder())
addToggle(tVis, 'Arc Item ESP', false, 'arcitemesp', 'unarcitemesp', visOrder())
addToggle(tVis, 'Arc Part ESP', false, 'arcpartesp', 'unarcpartesp', visOrder())
addToggle(tVis, 'Arc Vehicle ESP', false, 'arcvesp', 'unarcvesp', visOrder())
addToggle(tVis, 'Arc Mob ESP', false, 'arcmobesp', 'unarcmobesp', visOrder())
addToggle(tVis, 'Arc Chams', false, 'arcchams', 'unarcchams', visOrder())
addToggle(tVis, 'Arc Trail', false, 'arctrail', 'unarctrail', visOrder())
addToggle(tVis, 'Arc Night Vision', false, 'arcnv', 'unarcnv', visOrder())
addToggle(tVis, 'Arc Wireframe', false, 'arcwireframe', 'unarcwireframe', visOrder())
addToggle(tVis, 'Arc Fullbright', false, 'arcfb', 'unarcfb', visOrder())
addToggle(tVis, 'Arc User ESP', false, 'arcuseresp', 'unarcuseresp', visOrder())
addToggle(tVis, 'No Render', false, 'norender', 'render', visOrder())
addToggle(tVis, 'Crosshair', false, 'crosshair', 'nocrosshair', visOrder())
addToggle(tVis, '2022 Materials', false, '2022materials', 'un2022materials', visOrder())
-- ===== TAB: Unanchored =====
local tUA = makeTab('Unanchored')
local uaIdx = 0
local function uaOrder() uaIdx = uaIdx + 1 return uaIdx end
addSectionTitle(tUA, 'Unanchored Gadgets', 14)
addToggle(tUA, 'Cannon', false, 'cannon', 'uncannon', uaOrder())
addToggle(tUA, 'Trowel', false, 'trowel', 'untrowel', uaOrder())
addToggle(tUA, 'Magnet', false, 'magnet', 'unmagnet', uaOrder())
addToggle(tUA, 'Helicopter', false, 'helicopter', 'unhelicopter', uaOrder())
addToggle(tUA, 'Jumper', false, 'jumper', 'unjumper', uaOrder())
addToggle(tUA, 'Black Hole', false, 'blackhole', 'unblackhole', uaOrder())
addToggle(tUA, 'Minigun', false, 'minigun', 'unminigun', uaOrder())
addToggle(tUA, 'Hoverboard', false, 'hoverboard', 'unhoverboard', uaOrder())
addToggle(tUA, 'Arrow', false, 'arrow', 'unarrow', uaOrder())
addToggle(tUA, 'Server Lift', false, 'slift', 'unslift', uaOrder())
addToggle(tUA, 'Orbit UA', false, 'orbitua', 'unorbitua', uaOrder())
addToggle(tUA, 'Mouse UA', false, 'mouseua', 'unmouseua', uaOrder())
addToggle(tUA, 'Funny UA', false, 'funnyua', 'unfunnyua', uaOrder())
addToggle(tUA, 'Fling Aura', false, 'aura', 'unaura', uaOrder())
addToggle(tUA, 'Orbital Lazer', false, 'orbitallazer', 'unorbitallazer', uaOrder())
addSpacer(tUA, 4, uaOrder())
addSectionTitle(tUA, 'Unanchored Control', 7)
addButton(tUA, 'TP Unanchored', 'tpunanchored', uaOrder())
addToggle(tUA, 'Freeze Unanchored', false, 'freezeunanchored', 'thawunanchored', uaOrder())
addToggle(tUA, 'Cage UA', false, 'cageua', 'uncageua', uaOrder())
addToggle(tUA, 'Anti UA', false, 'antiua', 'unantiua', uaOrder())
addToggle(tUA, 'Zero Gravity UA', false, '0gravityua', 'un0gravityua', uaOrder())
addButton(tUA, 'Own All Parts', 'ownparts', uaOrder())
addButton(tUA, 'Claim All', 'claimall', uaOrder())
addSpacer(tUA, 4, uaOrder())
addSectionTitle(tUA, 'Unanchored Combat', 4)
addToggle(tUA, 'Fling UA', false, 'flingua', 'unflingua', uaOrder())
addButton(tUA, 'Tumble', 'tumble', uaOrder())
addButton(tUA, 'Dropkick', 'dropkick', uaOrder())
addButton(tUA, 'Power Walk Fling', 'pwalkfling', uaOrder())
addSpacer(tUA, 4, uaOrder())
addSectionTitle(tUA, 'Desync', 3)
addToggle(tUA, 'Desync', false, 'desync', 'undesync', uaOrder())
addToggle(tUA, 'Arc Desync', false, 'arcdesync', 'unarcdesync', uaOrder())
addButton(tUA, 'Teleport Back', 'desync tpback', uaOrder())
-- ===== TAB: Server =====
local tSrv = makeTab('Server')
local srvIdx = 0
local function srvOrder() srvIdx = srvIdx + 1 return srvIdx end
addSectionTitle(tSrv, 'Server', 6)
addButton(tSrv, 'Server Info', 'serverinfo', srvOrder())
addButton(tSrv, 'Server Hop', 'serverhop', srvOrder())
addButton(tSrv, 'Rejoin', 'rejoin', srvOrder())
addButton(tSrv, 'Game TP', 'gametp', srvOrder())
addButton(tSrv, 'Get Job ID', 'jobid', srvOrder())
addButton(tSrv, 'Exit', 'exit', srvOrder())
addSpacer(tSrv, 4, srvOrder())
addSectionTitle(tSrv, 'Protection', 7)
addToggle(tSrv, 'Anti AFK', false, 'antiafk', 'unantiafk', srvOrder())
addToggle(tSrv, 'Anti Lag', false, 'antilag', 'unantilag', srvOrder())
addToggle(tSrv, 'Auto Rejoin', false, 'autorejoin', 'unautorejoin', srvOrder())
addToggle(tSrv, 'Client Anti Kick', false, 'clientantikick', 'unclientantikick', srvOrder())
addToggle(tSrv, 'Client Anti TP', false, 'clientantiteleport', 'unclientantiteleport', srvOrder())
addToggle(tSrv, 'Allow Rejoin', false, 'allowrejoin', 'unallowrejoin', srvOrder())
addButton(tSrv, 'Cancel Teleport', 'cancelteleport', srvOrder())
addSpacer(tSrv, 4, srvOrder())
addSectionTitle(tSrv, 'Performance', 3)
addSlider(tSrv, 'FPS Cap', 1, 999, 60, 'setfpscap', srvOrder())
addSlider(tSrv, 'Volume', 0, 1, 0.5, 'volume', srvOrder())
addSlider(tSrv, 'Replication Lag', 0, 500, 0, 'replicationlag', srvOrder())
-- ===== TAB: Tools =====
local tTool = makeTab('Tools')
local toolIdx = 0
local function toolOrder() toolIdx = toolIdx + 1 return toolIdx end
addSectionTitle(tTool, 'Tools', 8)
addButton(tTool, 'Get All Tools', 'tools', toolOrder())
addButton(tTool, 'Remove Tools', 'notools', toolOrder())
addButton(tTool, 'Copy Tools', 'copytools', toolOrder())
addButton(tTool, 'Drop All Tools', 'droptools', toolOrder())
addButton(tTool, 'Equip All', 'equiptools', toolOrder())
addButton(tTool, 'Building Tools', 'btools', toolOrder())
addButton(tTool, 'F3X Tools', 'f3x', toolOrder())
addButton(tTool, 'Touch Interests', 'touchinterests', toolOrder())
addSpacer(tTool, 4, toolOrder())
addSectionTitle(tTool, 'Arc Tools', 5)
addToggle(tTool, 'Arc Tool Grab', false, 'arctoolgrab', 'unarctoolgrab', toolOrder())
addButton(tTool, 'Arc Tool Copy', 'arctoolcopy', toolOrder())
addToggle(tTool, 'Arc Auto Farm', false, 'arcautofarm', 'unarcautofarm', toolOrder())
addToggle(tTool, 'Arc No Prompts', false, 'arcnpp', 'unarcnpp', toolOrder())
addButton(tTool, 'Delete Held Tool', 'deleteselectedtool', toolOrder())
addSpacer(tTool, 4, toolOrder())
addSectionTitle(tTool, 'Tool Fun', 8)
addButton(tTool, 'Spaz Tools', 'spaztools', toolOrder())
addButton(tTool, 'Spin Tools', 'toolspin', toolOrder())
addButton(tTool, 'Throw Tools', 'toolthrow', toolOrder())
addButton(tTool, 'Scatter Tools', 'toolscatter', toolOrder())
addButton(tTool, 'Snake Tools', 'toolsnake', toolOrder())
addButton(tTool, 'Bounce Tools', 'toolbounce', toolOrder())
addButton(tTool, 'Sort Tools', 'toolsort', toolOrder())
addButton(tTool, 'Orbit Tools', 'orbitttools', toolOrder())
-- ===== TAB: World =====
local tWorld = makeTab('World')
local wIdx = 0
local function wOrder() wIdx = wIdx + 1 return wIdx end
addSectionTitle(tWorld, 'Lighting', 6)
addSlider(tWorld, 'Time', 0, 24, 14, 'time', wOrder())
addButton(tWorld, 'Day', 'day', wOrder())
addButton(tWorld, 'Night', 'night', wOrder())
addSlider(tWorld, 'Brightness', 0, 10, 2, 'brightness', wOrder())
addSlider(tWorld, 'Ambient', 0, 255, 128, 'ambient', wOrder())
addButton(tWorld, 'Restore Lighting', 'restorelighting', wOrder())
addSpacer(tWorld, 4, wOrder())
addSectionTitle(tWorld, 'World Actions', 4)
addButton(tWorld, 'Remove Terrain', 'removeterrain', wOrder())
addButton(tWorld, 'Delete Invisible Parts', 'deleteinvisparts', wOrder())
addButton(tWorld, 'Unlock Workspace', 'unlockws', wOrder())
addButton(tWorld, 'Lock Workspace', 'lockws', wOrder())
-- ===== TAB: Effects =====
local tFx = makeTab('Effects')
local fxIdx = 0
local function fxOrder() fxIdx = fxIdx + 1 return fxIdx end
addSectionTitle(tFx, 'Client Effects', 8)
addToggle(tFx, 'Trail', false, 'trail', 'untrail', fxOrder())
addToggle(tFx, 'Particle Aura', false, 'particleaura', 'unparticleaura', fxOrder())
addToggle(tFx, 'Glow', false, 'glow', 'unglow', fxOrder())
addToggle(tFx, 'Highlight', false, 'highlight', 'unhighlight', fxOrder())
addToggle(tFx, 'Pulse', false, 'pulse', 'unpulse', fxOrder())
addToggle(tFx, 'Crown', false, 'crown', 'uncrown', fxOrder())
addToggle(tFx, 'Halo', false, 'halo', 'unhalo', fxOrder())
addToggle(tFx, 'Wings', false, 'wings', 'unwings', fxOrder())
addSpacer(tFx, 4, fxOrder())
addSectionTitle(tFx, 'Arc Effects', 4)
addToggle(tFx, 'Arc Spin', false, 'arcspin2', 'unarcspin2', fxOrder())
addToggle(tFx, 'Arc Seizure', false, 'arcseizure', 'unarcseizure', fxOrder())
addToggle(tFx, 'Arc Fire', false, 'arcfire', 'unarcfire', fxOrder())
addToggle(tFx, 'Arc Sparkles', false, 'arcsparkles', 'unarcsparkles', fxOrder())
addToggle(tFx, 'Arc Smoke', false, 'arcsmoke', 'unarcsmoke', fxOrder())
addSpacer(tFx, 4, fxOrder())
addSectionTitle(tFx, 'Server-Side Effects', 16)
addIdInput(tFx, 'SS Hat', 'Hat ID...', 'sshat', fxOrder())
addIdInput(tFx, 'SS Cape', 'Cape ID...', 'sscape', fxOrder())
addIdInput(tFx, 'SS Wings', 'Wing ID...', 'sswing', fxOrder())
addIdInput(tFx, 'SS Music', 'Music ID...', 'ssmusic', fxOrder())
addIdInput(tFx, 'SS Message', 'Message...', 'ssmsg', fxOrder())
addButton(tFx, 'SS Ring', 'ssring', fxOrder())
addButton(tFx, 'SS Light', 'sslight', fxOrder())
addButton(tFx, 'SS Particles', 'ssparticles', fxOrder())
addButton(tFx, 'SS Crosshair', 'sscrosshair', fxOrder())
addButton(tFx, 'SS Arrow', 'ssarrow', fxOrder())
addButton(tFx, 'SS Orb', 'ssorb', fxOrder())
addButton(tFx, 'SS Floating', 'ssfloating', fxOrder())
addButton(tFx, 'SS Aura', 'ssaura', fxOrder())
addButton(tFx, 'SS Crown', 'sscrown', fxOrder())
addButton(tFx, 'SS Trail', 'sstrail', fxOrder())
addButton(tFx, 'SS Halo', 'sshalo', fxOrder())
addButton(tFx, 'Cleanup SS', 'cleanupss', fxOrder())
-- ===== TAB: Chat =====
local tChat = makeTab('Chat')
local chatIdx = 0
local function chatOrder() chatIdx = chatIdx + 1 return chatIdx end
addSectionTitle(tChat, 'Chat', 5)
addIdInput(tChat, 'Chat Message', 'Message...', 'chat', chatOrder())
addIdInput(tChat, 'Whisper To Player', 'Player;Message...', 'whisper', chatOrder())
addToggle(tChat, 'Spam Chat', false, 'spam', 'nospam', chatOrder())
addSlider(tChat, 'Spam Speed', 0.1, 5, 1, 'spamspeed', chatOrder())
addToggle(tChat, 'PM Spam', false, 'pmspam', 'nopmspam', chatOrder())
addSpacer(tChat, 4, chatOrder())
addSectionTitle(tChat, 'Voice', 3)
addToggle(tChat, 'Mute Boombox', false, 'muteboombox', 'unmuteboombox', chatOrder())
addPlayerDropdown(tChat, 'Mute VC Player', 'mutevc', chatOrder())
addPlayerDropdown(tChat, 'Unmute VC Player', 'unmutevc', chatOrder())
addSpacer(tChat, 4, chatOrder())
addSectionTitle(tChat, 'Info', 3)
addPlayerDropdown(tChat, 'Chat Age', 'chatage', chatOrder())
addPlayerDropdown(tChat, 'Chat Join Date', 'chatjoindate', chatOrder())
addPlayerDropdown(tChat, 'Headsit', 'headsit', chatOrder())
-- ===== TAB: Fun =====
local tFun = makeTab('Fun')
local funIdx = 0
local function funOrder() funIdx = funIdx + 1 return funIdx end
addSectionTitle(tFun, 'Animations', 5)
addIdInput(tFun, 'Play Animation', 'Animation ID...', 'animation', funOrder())
addIdInput(tFun, 'Play Emote', 'Emote name...', 'emote', funOrder())
addToggle(tFun, 'Loop Animation', false, 'loopanimation', 'unloopanimation', funOrder())
addSlider(tFun, 'Anim Speed', 0.1, 5, 1, 'animspeed', funOrder())
addButton(tFun, 'Stop Animations', 'stopanimations', funOrder())
addSpacer(tFun, 4, funOrder())
addSectionTitle(tFun, 'Music & Sound', 2)
addIdInput(tFun, 'Play Music', 'Music ID...', 'music', funOrder())
addIdInput(tFun, 'Arc Music', 'Music ID...', 'arcmusic', funOrder())
addSpacer(tFun, 4, funOrder())
addSectionTitle(tFun, 'Auto & Misc', 6)
addToggle(tFun, 'Auto Clicker', false, 'autoclick', 'unautoclick', funOrder())
addIdInput(tFun, 'Name Spoof', 'New name...', 'namespoof', funOrder())
addPlayerDropdown(tFun, 'Scare', 'scare', funOrder())
addPlayerDropdown(tFun, 'Click Delete', 'clickdelete', funOrder())
addButton(tFun, 'Remove Ads', 'removeads', funOrder())
addButton(tFun, 'Steal Fly', 'stealfly', funOrder())
-- ===== TAB: Settings =====
local tSet = makeTab('Settings')
local setIdx = 0
local function setOrder() setIdx = setIdx + 1 return setIdx end
addSectionTitle(tSet, 'GUI & Panels', 8)
addButton(tSet, 'Open Console', 'console', setOrder())
addButton(tSet, 'Remote Spy', 'remotespy', setOrder())
addButton(tSet, 'Explorer (DEX)', 'explorer', setOrder())
addButton(tSet, 'Executor', 'executor', setOrder())
addButton(tSet, 'Audio Logger', 'audiologger', setOrder())
addButton(tSet, 'Open Logs', 'logs', setOrder())
addButton(tSet, 'Chat Logs', 'chatlogs', setOrder())
addButton(tSet, 'Join Logs', 'joinlogs', setOrder())
addSpacer(tSet, 4, setOrder())
addSectionTitle(tSet, 'Command System', 5)
addButton(tSet, 'Break All Loops', 'breakloops', setOrder())
addIdInput(tSet, 'Add Alias', 'alias;cmd...', 'addalias', setOrder())
addIdInput(tSet, 'Remove Alias', 'alias...', 'removealias', setOrder())
addButton(tSet, 'Clear Aliases', 'clraliases', setOrder())
addButton(tSet, 'Hide Arc Yield', 'hideiy', setOrder())
addSpacer(tSet, 4, setOrder())
addSectionTitle(tSet, 'Player Info', 6)
addButton(tSet, 'Copy Name', 'copyname', setOrder())
addButton(tSet, 'Copy User ID', 'copyid', setOrder())
addButton(tSet, 'Copy Place ID', 'copyplaceid', setOrder())
addButton(tSet, 'Copy Game ID', 'copygameid', setOrder())
addButton(tSet, 'Account Age', 'age', setOrder())
addButton(tSet, 'Join Date', 'joindate', setOrder())
addSpacer(tSet, 4, setOrder())
addSectionTitle(tSet, 'Display', 5)
addToggle(tSet, 'FPS Counter', false, 'fps', 'nofps', setOrder())
addToggle(tSet, 'Coordinates', false, 'coords', 'nocoords', setOrder())
addToggle(tSet, 'Speedometer', false, 'speedometer', 'nospeedometer', setOrder())
addToggle(tSet, 'Ping Counter', false, 'ping', 'noping', setOrder())
addToggle(tSet, 'Watermark', false, 'showwatermark', 'hidewatermark', setOrder())
addToggle(tSet, 'No Prompts', false, 'noprompts', 'showprompts', setOrder())
-- ==================== OPEN ANIMATION ====================
showTab('Movement')
frame.BackgroundTransparency = 1
local smallSz = UDim2.new(0, _W * 0.9, 0, _H * 0.9)
frame.Size = smallSz
frame.Visible = true
_tw(frame, {
BackgroundTransparency = 0,
Size = UDim2.new(0, _W, 0, _H),
}, 0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out)
ArcCmdGUI.Open = true
-- ==================== ANIMATED REFLECTIONS ====================
if not ArcCmdGUI._reflectionConn then
local _refT = 0
ArcCmdGUI._reflectionConn = RunService.Heartbeat:Connect(function(dt)
if not ArcCmdGUI.Open then return end
_refT = _refT + dt
for _, el in ipairs(_glassElements) do
if el and el.Parent then
local shine2 = el:FindFirstChild('GlassShine2')
if shine2 then
local sweep = math.sin(_refT * 0.4) * 0.5
shine2.Position = UDim2.new(sweep, 0, 0, 0)
shine2.BackgroundTransparency = 0.93 + math.sin(_refT * 0.6) * 0.03
end
local gloss = el:FindFirstChild('GlassGloss')
if gloss then
gloss.BackgroundTransparency = 0.91 + math.sin(_refT * 0.8 + 1.5) * 0.04
end
end
end
end)
end
end
-- ==================== CLOSE GUI ====================
function ArcCmdGUI._close()
if not ArcCmdGUI.Open then return end
ArcCmdGUI.Open = false
local frame = ArcCmdGUI.Frame
if frame then
local _W = frame.Size.X.Offset
local _H = frame.Size.Y.Offset
local smallSz = UDim2.new(0, _W * 0.9, 0, _H * 0.9)
_tw(frame, {
BackgroundTransparency = 1,
Size = smallSz,
}, 0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.In)
wait(0.22)
frame.Visible = false
end
-- Do NOT destroy the GUI or disconnect K-conn so pressing K reopens it
end
-- ======================== ARC YIELD GUI SYSTEM LOADED ========================
notify("Arc Yield", "GUI System loaded! Type 'gui' to open. Press K to toggle.")
-- ============================================================================
-- NEON MOUSE CURSOR SYSTEM
-- Custom neon cursor that replaces default mouse, morphs on hover
-- ============================================================================
pcall(function()
local Players = game:GetService('Players')
local UserInputService = game:GetService('UserInputService')
local RunService = game:GetService('RunService')
local TweenService = game:GetService('TweenService')
local LocalPlayer = Players.LocalPlayer
local NeonCursor = {
Enabled = false,
CursorFrame = nil,
CursorGlow = nil,
CursorDot = nil,
TrailParts = {},
Connection = nil,
HoverConn = nil,
_hoverTarget = nil,
}
function NeonCursor:Create()
if self.CursorFrame then return end
local sg = Instance.new('ScreenGui')
sg.Name = 'NeonCursor_' .. math.random(1000, 9999)
sg.ResetOnSpawn = false
sg.DisplayOrder = 9999
sg.IgnoreGuiInset = true
sg.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
sg.Parent = (get_hidden_gui and get_hidden_gui()) or game:GetService('CoreGui')
-- Outer glow ring
self.CursorGlow = Instance.new('Frame')
self.CursorGlow.Name = 'CursorGlow'
self.CursorGlow.Size = UDim2.new(0, 32, 0, 32)
self.CursorGlow.BackgroundColor3 = Color3.fromRGB(40, 120, 255)
self.CursorGlow.BackgroundTransparency = 0.5
self.CursorGlow.BorderSizePixel = 0
self.CursorGlow.ZIndex = 100
self.CursorGlow.Parent = sg
local glowCorner = Instance.new('UICorner')
glowCorner.CornerRadius = UDim.new(1, 0)
glowCorner.Parent = self.CursorGlow
-- Outer glow stroke
local glowStroke = Instance.new('UIStroke')
glowStroke.Color = Color3.fromRGB(60, 150, 255)
glowStroke.Thickness = 2
glowStroke.Transparency = 0.3
glowStroke.Parent = self.CursorGlow
-- Inner ring
self.CursorFrame = Instance.new('Frame')
self.CursorFrame.Name = 'NeonCursor'
self.CursorFrame.Size = UDim2.new(0, 18, 0, 18)
self.CursorFrame.BackgroundColor3 = Color3.fromRGB(20, 80, 220)
self.CursorFrame.BackgroundTransparency = 0.3
self.CursorFrame.BorderSizePixel = 0
self.CursorFrame.ZIndex = 101
self.CursorFrame.Parent = sg
local curCorner = Instance.new('UICorner')
curCorner.CornerRadius = UDim.new(1, 0)
curCorner.Parent = self.CursorFrame
-- Inner stroke
local innerStroke = Instance.new('UIStroke')
innerStroke.Color = Color3.fromRGB(100, 180, 255)
innerStroke.Thickness = 1.5
innerStroke.Transparency = 0.2
innerStroke.Parent = self.CursorFrame
-- Center dot
self.CursorDot = Instance.new('Frame')
self.CursorDot.Name = 'CursorDot'
self.CursorDot.Size = UDim2.new(0, 4, 0, 4)
self.CursorDot.Position = UDim2.new(0.5, -2, 0.5, -2)
self.CursorDot.BackgroundColor3 = Color3.fromRGB(200, 230, 255)
self.CursorDot.BackgroundTransparency = 0.1
self.CursorDot.BorderSizePixel = 0
self.CursorDot.ZIndex = 102
self.CursorDot.Parent = self.CursorFrame
local dotCorner = Instance.new('UICorner')
dotCorner.CornerRadius = UDim.new(1, 0)
dotCorner.Parent = self.CursorDot
-- Crosshair lines
for i = 1, 4 do
local line = Instance.new('Frame')
line.Name = 'CrossLine_' .. i
line.BackgroundColor3 = Color3.fromRGB(80, 170, 255)
line.BackgroundTransparency = 0.4
line.BorderSizePixel = 0
line.ZIndex = 101
line.Parent = self.CursorGlow
local lCorner = Instance.new('UICorner')
lCorner.CornerRadius = UDim.new(1, 0)
lCorner.Parent = line
if i == 1 then
line.Size = UDim2.new(0, 1, 0, 8)
line.Position = UDim2.new(0.5, -0.5, 0, -10)
elseif i == 2 then
line.Size = UDim2.new(0, 1, 0, 8)
line.Position = UDim2.new(0.5, -0.5, 1, 2)
elseif i == 3 then
line.Size = UDim2.new(0, 8, 0, 1)
line.Position = UDim2.new(0, -10, 0.5, -0.5)
else
line.Size = UDim2.new(0, 8, 0, 1)
line.Position = UDim2.new(1, 2, 0.5, -0.5)
end
end
self._gui = sg
end
function NeonCursor:SetMorphState(state)
-- states: 'default', 'hover', 'press', 'link'
if not self.CursorFrame then return end
local twInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.Out)
if state == 'default' then
TweenService:Create(self.CursorGlow, twInfo, {
Size = UDim2.new(0, 32, 0, 32),
BackgroundTransparency = 0.5,
BackgroundColor3 = Color3.fromRGB(40, 120, 255),
}):Play()
TweenService:Create(self.CursorFrame, twInfo, {
Size = UDim2.new(0, 18, 0, 18),
BackgroundTransparency = 0.3,
BackgroundColor3 = Color3.fromRGB(20, 80, 220),
}):Play()
elseif state == 'hover' then
TweenService:Create(self.CursorGlow, twInfo, {
Size = UDim2.new(0, 38, 0, 38),
BackgroundTransparency = 0.35,
BackgroundColor3 = Color3.fromRGB(60, 180, 255),
}):Play()
TweenService:Create(self.CursorFrame, twInfo, {
Size = UDim2.new(0, 22, 0, 22),
BackgroundTransparency = 0.15,
BackgroundColor3 = Color3.fromRGB(30, 120, 255),
}):Play()
elseif state == 'press' then
TweenService:Create(self.CursorGlow, twInfo, {
Size = UDim2.new(0, 26, 0, 26),
BackgroundTransparency = 0.25,
BackgroundColor3 = Color3.fromRGB(100, 200, 255),
}):Play()
TweenService:Create(self.CursorFrame, twInfo, {
Size = UDim2.new(0, 14, 0, 14),
BackgroundTransparency = 0.1,
BackgroundColor3 = Color3.fromRGB(60, 160, 255),
}):Play()
elseif state == 'link' then
TweenService:Create(self.CursorGlow, twInfo, {
Size = UDim2.new(0, 36, 0, 36),
BackgroundTransparency = 0.4,
BackgroundColor3 = Color3.fromRGB(40, 200, 120),
}):Play()
TweenService:Create(self.CursorFrame, twInfo, {
Size = UDim2.new(0, 20, 0, 20),
BackgroundTransparency = 0.2,
BackgroundColor3 = Color3.fromRGB(20, 160, 80),
}):Play()
end
end
function NeonCursor:Enable()
if self.Enabled then return end
self:Create()
self.Enabled = true
-- Hide real cursor
UserInputService.MouseIconEnabled = false
-- Track mouse position
self.Connection = RunService.RenderStepped:Connect(function()
if not self.Enabled or not self.CursorFrame then return end
local mouse = LocalPlayer:GetMouse()
local pos = UserInputService:GetMouseLocation()
local offset = 9
self.CursorGlow.Position = UDim2.new(0, pos.X - 16, 0, pos.Y - 16)
self.CursorFrame.Position = UDim2.new(0, pos.X - offset, 0, pos.Y - offset)
end)
-- Morph on hover
self.HoverConn = UserInputService.InputBegan:Connect(function(input)
if not self.Enabled then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 then
self:SetMorphState('press')
end
end)
UserInputService.InputEnded:Connect(function(input)
if not self.Enabled then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 then
self:SetMorphState('default')
end
end)
-- Detect hover over GUI elements
spawn(function()
while self.Enabled do
local hovering = false
local mouse = LocalPlayer:GetMouse()
local target = mouse.Target
-- Check if hovering over GUI
local hoveredGui = nil
pcall(function()
hoveredGui = game:GetService('GuiService'):GetGuiObjectsAtPosition(
UserInputService:GetMouseLocation().X,
UserInputService:GetMouseLocation().Y
)
end)
if hoveredGui and #hoveredGui > 1 then
local obj = hoveredGui[2]
if obj then
local isButton = (obj:IsA('TextButton') or obj:IsA('ImageButton'))
local isInput = obj:IsA('TextBox')
local isClickable = false
pcall(function()
if obj.Active then isClickable = true end
end)
if isButton then
self:SetMorphState('hover')
hovering = true
elseif isInput then
self:SetMorphState('link')
hovering = true
elseif isClickable then
self:SetMorphState('hover')
hovering = true
end
end
end
if not hovering then
self:SetMorphState('default')
end
wait(0.15)
end
end)
end
function NeonCursor:Disable()
if not self.Enabled then return end
self.Enabled = false
UserInputService.MouseIconEnabled = true
if self.Connection then
self.Connection:Disconnect()
self.Connection = nil
end
if self.HoverConn then
self.HoverConn:Disconnect()
self.HoverConn = nil
end
if self._gui then
pcall(function() self._gui:Destroy() end)
self._gui = nil
end
self.CursorFrame = nil
self.CursorGlow = nil
self.CursorDot = nil
end
function NeonCursor:Toggle()
if self.Enabled then
self:Disable()
else
self:Enable()
end
return self.Enabled
end
-- Expose globally
getgenv().NeonCursor = NeonCursor
end)
-- ============================================================================
-- CLIENT VISUAL EFFECTS SYSTEM
-- Post-processing effects, particles, and shader-like enhancements
-- ============================================================================
pcall(function()
local Lighting = game:GetService('Lighting')
local RunService = game:GetService('RunService')
local Players = game:GetService('Players')
local TweenService = game:GetService('TweenService')
local LocalPlayer = Players.LocalPlayer
local ClientFX = {
Effects = {},
ParticlesEnabled = false,
ParticleConn = nil,
CharacterConn = nil,
}
function ClientFX:EnableBloom()
if self.Effects.Bloom then return end
local bloom = Instance.new('BloomEffect')
bloom.Name = 'ArcYieldBloom'
bloom.Intensity = 0.5
bloom.Size = 24
bloom.Threshold = 1.2
bloom.Parent = Lighting
self.Effects.Bloom = bloom
end
function ClientFX:DisableBloom()
if self.Effects.Bloom then
self.Effects.Bloom:Destroy()
self.Effects.Bloom = nil
end
end
function ClientFX:EnableColorCorrection()
if self.Effects.ColorCorrection then return end
local cc = Instance.new('ColorCorrectionEffect')
cc.Name = 'ArcYieldCC'
cc.Brightness = 0.02
cc.Contrast = 0.05
cc.Saturation = 0.1
cc.TintColor = Color3.fromRGB(255, 248, 245)
cc.Parent = Lighting
self.Effects.ColorCorrection = cc
end
function ClientFX:DisableColorCorrection()
if self.Effects.ColorCorrection then
self.Effects.ColorCorrection:Destroy()
self.Effects.ColorCorrection = nil
end
end
function ClientFX:EnableSunRays()
if self.Effects.SunRays then return end
local sr = Instance.new('SunRaysEffect')
sr.Name = 'ArcYieldSunRays'
sr.Intensity = 0.03
sr.Spread = 0.6
sr.Parent = Lighting
self.Effects.SunRays = sr
end
function ClientFX:DisableSunRays()
if self.Effects.SunRays then
self.Effects.SunRays:Destroy()
self.Effects.SunRays = nil
end
end
function ClientFX:EnableDepthOfField()
if self.Effects.DOField then return end
local dof = Instance.new('DepthOfFieldEffect')
dof.Name = 'ArcYieldDOF'
dof.FarIntensity = 0.05
dof.FocusDistance = 20
dof.InFocusRadius = 15
dof.NearIntensity = 0
dof.Parent = Lighting
self.Effects.DOField = dof
end
function ClientFX:DisableDepthOfField()
if self.Effects.DOField then
self.Effects.DOField:Destroy()
self.Effects.DOField = nil
end
end
function ClientFX:EnableAll()
self:EnableBloom()
self:EnableColorCorrection()
self:EnableSunRays()
self:EnableParticles()
end
function ClientFX:DisableAll()
self:DisableBloom()
self:DisableColorCorrection()
self:DisableSunRays()
self:DisableDepthOfField()
self:DisableParticles()
end
function ClientFX:EnableParticles()
if self.ParticlesEnabled then return end
self.ParticlesEnabled = true
local function attachParticles(character)
if not character then return end
local hrp = character:FindFirstChild('HumanoidRootPart')
if not hrp then return end
-- Aura particles (floating around character)
local aura = Instance.new('ParticleEmitter')
aura.Name = 'ArcYieldAura'
aura.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(40, 120, 255)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(80, 180, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(40, 100, 220)),
})
aura.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.3),
NumberSequenceKeypoint.new(0.5, 0.6),
NumberSequenceKeypoint.new(1, 0),
})
aura.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.8),
NumberSequenceKeypoint.new(0.3, 0.5),
NumberSequenceKeypoint.new(1, 1),
})
aura.Lifetime = NumberRange.new(1.5, 3)
aura.Rate = 15
aura.Speed = NumberRange.new(1, 3)
aura.SpreadAngle = Vector2.new(180, 180)
aura.RotSpeed = NumberRange.new(-60, 60)
aura.LightEmission = 0.8
aura.LightInfluence = 0.3
aura.Parent = hrp
-- Trail sparkles
local trail = Instance.new('ParticleEmitter')
trail.Name = 'ArcYieldTrail'
trail.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 200, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(50, 130, 255)),
})
trail.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.15),
NumberSequenceKeypoint.new(0.5, 0.25),
NumberSequenceKeypoint.new(1, 0),
})
trail.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.6),
NumberSequenceKeypoint.new(0.5, 0.8),
NumberSequenceKeypoint.new(1, 1),
})
trail.Lifetime = NumberRange.new(0.8, 1.5)
trail.Rate = 8
trail.Speed = NumberRange.new(0.5, 1.5)
trail.SpreadAngle = Vector2.new(30, 30)
trail.LightEmission = 1
trail.LightInfluence = 0.2
trail.Parent = hrp
end
-- Attach to current character
if LocalPlayer.Character then
attachParticles(LocalPlayer.Character)
end
-- Watch for character spawns
self.CharacterConn = LocalPlayer.CharacterAdded:Connect(function(char)
wait(1)
attachParticles(char)
end)
end
function ClientFX:DisableParticles()
if not self.ParticlesEnabled then return end
self.ParticlesEnabled = false
if self.CharacterConn then
self.CharacterConn:Disconnect()
self.CharacterConn = nil
end
-- Remove particles from current character
pcall(function()
if LocalPlayer.Character then
local hrp = LocalPlayer.Character:FindFirstChild('HumanoidRootPart')
if hrp then
local aura = hrp:FindFirstChild('ArcYieldAura')
if aura then aura:Destroy() end
local trail = hrp:FindFirstChild('ArcYieldTrail')
if trail then trail:Destroy() end
end
end
end)
end
-- Expose globally
getgenv().ClientFX = ClientFX
end)



please comment stuff to add :Due8futwg*ufdgfwvqghuwi8fvuyhfdgew9s0iuwgq2fvgtywu8cu7dfswgtyws7duygf
you got discord?
@doenerium6969 nope
btw with some common ones such as fly, u can type arcfly for an easy gui
w script brotien gonna use ts daily no bugs
add desync fr
@doenerium6969 nearly done with desync fr
sorry guys desync is currently patched, because the only ones that work, lock your mouse.
by the way, all desyncs are patched, as i cannot create it, as it will lock mouse to middle of screen, and player.gui will fail to open
hello bro im Pr1ngl3s and this script is so cool and so powerfull!
This script is genuinely so good 👍
@OnixChloro w
@bobjs gonna add your script into my scripts collection script
guys im adding more stuff rq, like cannon , which launches parts to ur mouse
nvm, after a lot of work, desync is finally done!, just in testing, about to release soon