Ropucal

Salon de fiestas script

Nov 11th, 2022 (edited)
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 282.89 KB | None | 0 0
  1. local ScreenGui = Instance.new("ScreenGui")
  2. local Frame = Instance.new("Frame")
  3. local TPSCRIPT = Instance.new("TextButton")
  4. local Invisible = Instance.new("TextButton")
  5. local TpMouse = Instance.new("TextButton")
  6. local ScrriptRopucal = Instance.new("TextButton")
  7. local TextLabel = Instance.new("TextLabel")
  8. local Cerrar = Instance.new("TextButton")
  9. local Admin = Instance.new("TextButton")
  10.  
  11. ScreenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
  12. ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  13.  
  14. Frame.Parent = ScreenGui
  15. Frame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  16. Frame.Position = UDim2.new(0.84428221, 0, 0.697612703, 0)
  17. Frame.Size = UDim2.new(0, 128, 0, 228)
  18. Frame.Style = Enum.FrameStyle.RobloxRound
  19.  
  20. TPSCRIPT.Name = "TPSCRIPT"
  21. TPSCRIPT.Parent = Frame
  22. TPSCRIPT.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  23. TPSCRIPT.Position = UDim2.new(0.0257720947, 0, 0.363119274, 0)
  24. TPSCRIPT.Size = UDim2.new(0, 105, 0, 26)
  25. TPSCRIPT.Style = Enum.ButtonStyle.RobloxRoundDropdownButton
  26. TPSCRIPT.Font = Enum.Font.SourceSans
  27. TPSCRIPT.Text = "TP hacia personas"
  28. TPSCRIPT.TextColor3 = Color3.fromRGB(0, 0, 0)
  29. TPSCRIPT.TextSize = 14.000
  30.  
  31. Invisible.Name = "Invisible"
  32. Invisible.Parent = Frame
  33. Invisible.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  34. Invisible.Position = UDim2.new(0.0257720947, 0, 0.491672039, 0)
  35. Invisible.Size = UDim2.new(0, 105, 0, 26)
  36. Invisible.Style = Enum.ButtonStyle.RobloxRoundDropdownButton
  37. Invisible.Font = Enum.Font.SourceSans
  38. Invisible.Text = "Invisible"
  39. Invisible.TextColor3 = Color3.fromRGB(0, 0, 0)
  40. Invisible.TextSize = 30.000
  41.  
  42. TpMouse.Name = "TpMouse"
  43. TpMouse.Parent = Frame
  44. TpMouse.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  45. TpMouse.Position = UDim2.new(0.0257720947, 0, 0.617360473, 0)
  46. TpMouse.Size = UDim2.new(0, 105, 0, 26)
  47. TpMouse.Style = Enum.ButtonStyle.RobloxRoundDropdownButton
  48. TpMouse.Font = Enum.Font.SourceSans
  49. TpMouse.Text = "ClickTP"
  50. TpMouse.TextColor3 = Color3.fromRGB(0, 0, 0)
  51. TpMouse.TextSize = 30.000
  52.  
  53. ScrriptRopucal.Name = "ScrriptRopucal"
  54. ScrriptRopucal.Parent = Frame
  55. ScrriptRopucal.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  56. ScrriptRopucal.Position = UDim2.new(0.0257720947, 0, 0.234941691, 0)
  57. ScrriptRopucal.Size = UDim2.new(0, 105, 0, 26)
  58. ScrriptRopucal.Style = Enum.ButtonStyle.RobloxRoundDropdownButton
  59. ScrriptRopucal.Font = Enum.Font.SourceSans
  60. ScrriptRopucal.Text = "Script Ropucal"
  61. ScrriptRopucal.TextColor3 = Color3.fromRGB(0, 0, 0)
  62. ScrriptRopucal.TextSize = 19.000
  63.  
  64. TextLabel.Parent = Frame
  65. TextLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  66. TextLabel.BackgroundTransparency = 1.000
  67. TextLabel.Position = UDim2.new(0.00692558289, 0, -0.0210371986, 0)
  68. TextLabel.Size = UDim2.new(0, 111, 0, 50)
  69. TextLabel.Font = Enum.Font.SourceSans
  70. TextLabel.Text = "Script salon de fiestas"
  71. TextLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  72. TextLabel.TextScaled = true
  73. TextLabel.TextSize = 20.000
  74. TextLabel.TextWrapped = true
  75.  
  76. Cerrar.Name = "Cerrar"
  77. Cerrar.Parent = Frame
  78. Cerrar.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  79. Cerrar.Position = UDim2.new(0.083940506, 0, 0.948934734, 0)
  80. Cerrar.Size = UDim2.new(0, 92, 0, 16)
  81. Cerrar.Style = Enum.ButtonStyle.RobloxButtonDefault
  82. Cerrar.Font = Enum.Font.SourceSans
  83. Cerrar.Text = "Cerrar"
  84. Cerrar.TextColor3 = Color3.fromRGB(255, 0, 0)
  85. Cerrar.TextSize = 30.000
  86. Cerrar.TextWrapped = true
  87.  
  88. Admin.Name = "Admin"
  89. Admin.Parent = Frame
  90. Admin.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  91. Admin.Position = UDim2.new(0.0257720947, 0, 0.762097299, 0)
  92. Admin.Size = UDim2.new(0, 105, 0, 26)
  93. Admin.Style = Enum.ButtonStyle.RobloxRoundDropdownButton
  94. Admin.Font = Enum.Font.SourceSans
  95. Admin.Text = "Admin"
  96. Admin.TextColor3 = Color3.fromRGB(0, 0, 0)
  97. Admin.TextSize = 30.000
  98.  
  99. TPSCRIPT.MouseButton1Click:Connect(function()
  100. loadstring(game:HttpGet(("https://pastebin.com/raw/YNVbeqPy")))()
  101. end)
  102.  
  103. Invisible.MouseButton1Click:Connect(function()
  104. local key = Enum.KeyCode.X
  105.  
  106.  
  107. local invis_on = false
  108. function onKeyPress(inputObject, chat)
  109. if chat then return end
  110. if inputObject.KeyCode == key then
  111. invis_on = not invis_on
  112. if invis_on then
  113. local savedpos = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame
  114. wait()
  115. game.Players.LocalPlayer.Character:MoveTo(Vector3.new(-25.95, 84, 3537.55))
  116. wait(.15)
  117. local Seat = Instance.new('Seat', game.Workspace)
  118. Seat.Anchored = false
  119. Seat.CanCollide = false
  120. Seat.Name = 'invischair'
  121. Seat.Transparency = 1
  122. Seat.Position = Vector3.new(-25.95, 84, 3537.55)
  123. local Weld = Instance.new("Weld", Seat)
  124. Weld.Part0 = Seat
  125. Weld.Part1 = game.Players.LocalPlayer.Character:FindFirstChild("Torso") or game.Players.LocalPlayer.Character.UpperTorso
  126. wait()
  127. Seat.CFrame = savedpos
  128. game.StarterGui:SetCore("SendNotification", {
  129. Title = "Invis On";
  130. Duration = 1;
  131. Text = "";
  132. })
  133. else
  134. workspace:FindFirstChild('invischair'):Remove()
  135. game.StarterGui:SetCore("SendNotification", {
  136. Title = "Invis Off";
  137. Duration = 1;
  138. Text = "";
  139. })
  140. end
  141. end
  142. end
  143.  
  144. game:GetService("UserInputService").InputBegan:connect(onKeyPress)
  145. end)
  146.  
  147. TpMouse.MouseButton1Click:Connect(function()
  148. mouse = game.Players.LocalPlayer:GetMouse()
  149. tool = Instance.new("Tool")
  150. tool.RequiresHandle = false
  151. tool.Name = "Click Teleport"
  152. tool.Activated:connect(function()
  153. local pos = mouse.Hit+Vector3.new(0,2.5,0)
  154. pos = CFrame.new(pos.X,pos.Y,pos.Z)
  155. game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = pos
  156. end)
  157. tool.Parent = game.Players.LocalPlayer.Backpack
  158. end)
  159.  
  160. ScrriptRopucal.MouseButton1Click:Connect(function()
  161. loadstring(game:HttpGet('https://pastebin.com/raw/5wsDJwfn', true))()
  162. end)
  163.  
  164. Cerrar.MouseButton1Click:Connect(function()
  165. ScreenGui:Destroy()
  166. end)
  167.  
  168. Admin.MouseButton1Click:Connect(function()
  169. --[[
  170. fates admin - 20/7/2022
  171. ]]
  172.  
  173. local game = game
  174. local GetService = game.GetService
  175. if (not game.IsLoaded(game)) then
  176. local Loaded = game.Loaded
  177. Loaded.Wait(Loaded);
  178. end
  179.  
  180. local _L = {}
  181.  
  182. _L.start = start or tick();
  183. local Debug = true
  184.  
  185. do
  186. local F_A = getgenv().F_A
  187. if (F_A) then
  188. local Notify, GetConfig = F_A.Utils.Notify, F_A.GetConfig
  189. local UserInputService = GetService(game, "UserInputService");
  190. local CommandBarPrefix = GetConfig().CommandBarPrefix
  191. local StringKeyCode = UserInputService.GetStringForKeyCode(UserInputService, Enum.KeyCode[CommandBarPrefix]);
  192. return Notify(nil, "Loaded", "fates admin is already loaded... use 'killscript' to kill", nil),
  193. Notify(nil, "Your Prefix is", string.format("%s (%s)", StringKeyCode, CommandBarPrefix));
  194. end
  195. end
  196.  
  197. --IMPORT [var]
  198. local Services = {
  199. Workspace = GetService(game, "Workspace");
  200. UserInputService = GetService(game, "UserInputService");
  201. ReplicatedStorage = GetService(game, "ReplicatedStorage");
  202. StarterPlayer = GetService(game, "StarterPlayer");
  203. StarterPack = GetService(game, "StarterPack");
  204. StarterGui = GetService(game, "StarterGui");
  205. TeleportService = GetService(game, "TeleportService");
  206. CoreGui = GetService(game, "CoreGui");
  207. TweenService = GetService(game, "TweenService");
  208. HttpService = GetService(game, "HttpService");
  209. TextService = GetService(game, "TextService");
  210. MarketplaceService = GetService(game, "MarketplaceService");
  211. Chat = GetService(game, "Chat");
  212. Teams = GetService(game, "Teams");
  213. SoundService = GetService(game, "SoundService");
  214. Lighting = GetService(game, "Lighting");
  215. ScriptContext = GetService(game, "ScriptContext");
  216. Stats = GetService(game, "Stats");
  217. }
  218.  
  219. setmetatable(Services, {
  220. __index = function(Table, Property)
  221. local Ret, Service = pcall(GetService, game, Property);
  222. if (Ret) then
  223. Services[Property] = Service
  224. return Service
  225. end
  226. return nil
  227. end,
  228. __mode = "v"
  229. });
  230.  
  231. local GetChildren, GetDescendants = game.GetChildren, game.GetDescendants
  232. local IsA = game.IsA
  233. local FindFirstChild, FindFirstChildOfClass, FindFirstChildWhichIsA, WaitForChild =
  234. game.FindFirstChild,
  235. game.FindFirstChildOfClass,
  236. game.FindFirstChildWhichIsA,
  237. game.WaitForChild
  238.  
  239. local GetPropertyChangedSignal, Changed =
  240. game.GetPropertyChangedSignal,
  241. game.Changed
  242.  
  243. local Destroy, Clone = game.Destroy, game.Clone
  244.  
  245. local Heartbeat, Stepped, RenderStepped;
  246. do
  247. local RunService = Services.RunService;
  248. Heartbeat, Stepped, RenderStepped =
  249. RunService.Heartbeat,
  250. RunService.Stepped,
  251. RunService.RenderStepped
  252. end
  253.  
  254. local Players = Services.Players
  255. local GetPlayers = Players.GetPlayers
  256.  
  257. local JSONEncode, JSONDecode, GenerateGUID =
  258. Services.HttpService.JSONEncode,
  259. Services.HttpService.JSONDecode,
  260. Services.HttpService.GenerateGUID
  261.  
  262. local Camera = Services.Workspace.CurrentCamera
  263.  
  264. local Tfind, sort, concat, pack, unpack;
  265. do
  266. local table = table
  267. Tfind, sort, concat, pack, unpack =
  268. table.find,
  269. table.sort,
  270. table.concat,
  271. table.pack,
  272. table.unpack
  273. end
  274.  
  275. local lower, upper, Sfind, split, sub, format, len, match, gmatch, gsub, byte;
  276. do
  277. local string = string
  278. lower, upper, Sfind, split, sub, format, len, match, gmatch, gsub, byte =
  279. string.lower,
  280. string.upper,
  281. string.find,
  282. string.split,
  283. string.sub,
  284. string.format,
  285. string.len,
  286. string.match,
  287. string.gmatch,
  288. string.gsub,
  289. string.byte
  290. end
  291.  
  292. local random, floor, round, abs, atan, cos, sin, rad;
  293. do
  294. local math = math
  295. random, floor, round, abs, atan, cos, sin, rad =
  296. math.random,
  297. math.floor,
  298. math.round,
  299. math.abs,
  300. math.atan,
  301. math.cos,
  302. math.sin,
  303. math.rad
  304. end
  305.  
  306. local InstanceNew = Instance.new
  307. local CFrameNew = CFrame.new
  308. local Vector3New = Vector3.new
  309.  
  310. local Inverse, toObjectSpace, components
  311. do
  312. local CalledCFrameNew = CFrameNew();
  313. Inverse = CalledCFrameNew.Inverse
  314. toObjectSpace = CalledCFrameNew.toObjectSpace
  315. components = CalledCFrameNew.components
  316. end
  317.  
  318. local Connection = game.Loaded
  319. local CWait = Connection.Wait
  320. local CConnect = Connection.Connect
  321.  
  322. local Disconnect;
  323. do
  324. local CalledConnection = CConnect(Connection, function() end);
  325. Disconnect = CalledConnection.Disconnect
  326. end
  327.  
  328. local __H = InstanceNew("Humanoid");
  329. local UnequipTools = __H.UnequipTools
  330. local ChangeState = __H.ChangeState
  331. local SetStateEnabled = __H.SetStateEnabled
  332. local GetState = __H.GetState
  333. local GetAccessories = __H.GetAccessories
  334.  
  335. local LocalPlayer = Players.LocalPlayer
  336. local PlayerGui = FindFirstChildWhichIsA(LocalPlayer, "PlayerGui");
  337. local Mouse = LocalPlayer.GetMouse(LocalPlayer);
  338.  
  339. local CThread;
  340. do
  341. local wrap = coroutine.wrap
  342. CThread = function(Func, ...)
  343. if (type(Func) ~= 'function') then
  344. return nil
  345. end
  346. local Varag = ...
  347. return function()
  348. local Success, Ret = pcall(wrap(Func, Varag));
  349. if (Success) then
  350. return Ret
  351. end
  352. if (Debug) then
  353. warn("[FA Error]: " .. debug.traceback(Ret));
  354. end
  355. end
  356. end
  357. end
  358.  
  359. local startsWith = function(str, searchString, rawPos)
  360. local pos = rawPos or 1
  361. return searchString == "" and true or sub(str, pos, pos) == searchString
  362. end
  363.  
  364. local trim = function(str)
  365. return gsub(str, "^%s*(.-)%s*$", "%1");
  366. end
  367.  
  368. local tbl_concat = function(...)
  369. local new = {}
  370. for i, v in next, {...} do
  371. for i2, v2 in next, v do
  372. new[i] = v2
  373. end
  374. end
  375. return new
  376. end
  377.  
  378. local indexOf = function(tbl, val)
  379. if (type(tbl) == 'table') then
  380. for i, v in next, tbl do
  381. if (v == val) then
  382. return i
  383. end
  384. end
  385. end
  386. end
  387.  
  388. local forEach = function(tbl, ret)
  389. for i, v in next, tbl do
  390. ret(i, v);
  391. end
  392. end
  393.  
  394. local filter = function(tbl, ret)
  395. if (type(tbl) == 'table') then
  396. local new = {}
  397. for i, v in next, tbl do
  398. if (ret(i, v)) then
  399. new[#new + 1] = v
  400. end
  401. end
  402. return new
  403. end
  404. end
  405.  
  406. local map = function(tbl, ret)
  407. if (type(tbl) == 'table') then
  408. local new = {}
  409. for i, v in next, tbl do
  410. local Value, Key = ret(i, v);
  411. new[Key or #new + 1] = Value
  412. end
  413. return new
  414. end
  415. end
  416.  
  417. local deepsearch;
  418. deepsearch = function(tbl, ret)
  419. if (type(tbl) == 'table') then
  420. for i, v in next, tbl do
  421. if (type(v) == 'table') then
  422. deepsearch(v, ret);
  423. end
  424. ret(i, v);
  425. end
  426. end
  427. end
  428.  
  429. local deepsearchset;
  430. deepsearchset = function(tbl, ret, value)
  431. if (type(tbl) == 'table') then
  432. local new = {}
  433. for i, v in next, tbl do
  434. new[i] = v
  435. if (type(v) == 'table') then
  436. new[i] = deepsearchset(v, ret, value);
  437. end
  438. if (ret(i, v)) then
  439. new[i] = value(i, v);
  440. end
  441. end
  442. return new
  443. end
  444. end
  445.  
  446. local flat = function(tbl)
  447. if (type(tbl) == 'table') then
  448. local new = {}
  449. deepsearch(tbl, function(i, v)
  450. if (type(v) ~= 'table') then
  451. new[#new + 1] = v
  452. end
  453. end)
  454. return new
  455. end
  456. end
  457.  
  458. local flatMap = function(tbl, ret)
  459. if (type(tbl) == 'table') then
  460. local new = flat(map(tbl, ret));
  461. return new
  462. end
  463. end
  464.  
  465. local shift = function(tbl)
  466. if (type(tbl) == 'table') then
  467. local firstVal = tbl[1]
  468. tbl = pack(unpack(tbl, 2, #tbl));
  469. tbl.n = nil
  470. return tbl
  471. end
  472. end
  473.  
  474. local keys = function(tbl)
  475. if (type(tbl) == 'table') then
  476. local new = {}
  477. for i, v in next, tbl do
  478. new[#new + 1] = i
  479. end
  480. return new
  481. end
  482. end
  483.  
  484. local function clone(toClone, shallow)
  485. if (type(toClone) == 'function' and clonefunction) then
  486. return clonefunction(toClone);
  487. end
  488. local new = {}
  489. for i, v in pairs(toClone) do
  490. if (type(v) == 'table' and not shallow) then
  491. v = clone(v);
  492. end
  493. new[i] = v
  494. end
  495. return new
  496. end
  497.  
  498. local setthreadidentity = setthreadidentity or syn_context_set or setthreadcontext or (syn and syn.set_thread_identity)
  499. local getthreadidentity = getthreadidentity or syn_context_get or getthreadcontext or (syn and syn.get_thread_identity)
  500. --END IMPORT [var]
  501.  
  502.  
  503.  
  504. local GetCharacter = GetCharacter or function(Plr)
  505. return Plr and Plr.Character or LocalPlayer.Character
  506. end
  507.  
  508. local Utils = {}
  509.  
  510. --IMPORT [extend]
  511. local Stats = Services.Stats
  512. local ContentProvider = Services.ContentProvider
  513.  
  514. local firetouchinterest, hookfunction;
  515. do
  516. local GEnv = getgenv();
  517. local touched = {}
  518. firetouchinterest = GEnv.firetouchinterest or function(part1, part2, toggle)
  519. if (part1 and part2) then
  520. if (toggle == 0) then
  521. touched[1] = part1.CFrame
  522. part1.CFrame = part2.CFrame
  523. else
  524. part1.CFrame = touched[1]
  525. touched[1] = nil
  526. end
  527. end
  528. end
  529. local newcclosure = newcclosure or function(f)
  530. return f
  531. end
  532.  
  533. hookfunction = GEnv.hookfunction or function(func, newfunc, applycclosure)
  534. if (replaceclosure) then
  535. replaceclosure(func, newfunc);
  536. return func
  537. end
  538. func = applycclosure and newcclosure or newfunc
  539. return func
  540. end
  541. end
  542.  
  543. if (not syn_context_set) then
  544. local CachedConnections = setmetatable({}, {
  545. __mode = "v"
  546. });
  547.  
  548. GEnv = getgenv();
  549. getconnections = function(Connection, FromCache, AddOnConnect)
  550. local getconnections = GEnv.getconnections
  551. if (not getconnections) then
  552. return {}
  553. end
  554.  
  555. local CachedConnection;
  556. for i, v in next, CachedConnections do
  557. if (i == Connection) then
  558. CachedConnection = v
  559. break;
  560. end
  561. end
  562. if (CachedConnection and FromCache) then
  563. return CachedConnection
  564. end
  565.  
  566. local Connections = GEnv.getconnections(Connection);
  567. CachedConnections[Connection] = Connections
  568. return Connections
  569. end
  570. end
  571.  
  572. local getrawmetatable = getrawmetatable or function()
  573. return setmetatable({}, {});
  574. end
  575.  
  576. local getnamecallmethod = getnamecallmethod or function()
  577. return ""
  578. end
  579.  
  580. local checkcaller = checkcaller or function()
  581. return false
  582. end
  583.  
  584. local Hooks = {
  585. AntiKick = false,
  586. AntiTeleport = false,
  587. NoJumpCooldown = false,
  588. }
  589.  
  590. local mt = getrawmetatable(game);
  591. local OldMetaMethods = {}
  592. setreadonly(mt, false);
  593. for i, v in next, mt do
  594. OldMetaMethods[i] = v
  595. end
  596. setreadonly(mt, true);
  597. local MetaMethodHooks = {}
  598.  
  599. local ProtectInstance, SpoofInstance, SpoofProperty;
  600. local pInstanceCount = {0, 0}; -- instancecount, primitivescount
  601. local ProtectedInstances = setmetatable({}, {
  602. __mode = "v"
  603. });
  604. local FocusedTextBox = nil
  605. do
  606. local SpoofedInstances = setmetatable({}, {
  607. __mode = "v"
  608. });
  609. local SpoofedProperties = {}
  610. Hooks.SpoofedProperties = SpoofedProperties
  611.  
  612. local otherCheck = function(instance, n)
  613. if (IsA(instance, "ImageLabel") or IsA(instance, "ImageButton")) then
  614. ProtectedInstances[#ProtectedInstances + 1] = instance
  615. return;
  616. end
  617.  
  618. if (IsA(instance, "BasePart")) then
  619. pInstanceCount[2] = math.max(pInstanceCount[2] + (n or 1), 0);
  620. end
  621. end
  622.  
  623. ProtectInstance = function(Instance_)
  624. if (not Tfind(ProtectedInstances, Instance_)) then
  625. ProtectedInstances[#ProtectedInstances + 1] = Instance_
  626. local descendants = Instance_:GetDescendants();
  627. pInstanceCount[1] += 1 + #descendants;
  628. for i = 1, #descendants do
  629. otherCheck(descendants[i]);
  630. end
  631. local dAdded = Instance_.DescendantAdded:Connect(function(descendant)
  632. pInstanceCount[1] += 1
  633. otherCheck(descendant);
  634. end);
  635. local dRemoving = Instance_.DescendantRemoving:Connect(function(descendant)
  636. pInstanceCount[1] = math.max(pInstanceCount[1] - 1, 0);
  637. otherCheck(descendant, -1);
  638. end);
  639. otherCheck(Instance_);
  640.  
  641. Instance_.Name = sub(gsub(GenerateGUID(Services.HttpService, false), '-', ''), 1, random(25, 30));
  642. Instance_.Archivable = false
  643. end
  644. end
  645.  
  646. SpoofInstance = function(Instance_, Instance2)
  647. if (not SpoofedInstances[Instance_]) then
  648. SpoofedInstances[Instance_] = Instance2 and Instance2 or Clone(Instance_);
  649. end
  650. end
  651.  
  652. UnSpoofInstance = function(Instance_)
  653. if (SpoofedInstances[Instance_]) then
  654. SpoofedInstances[Instance_] = nil
  655. end
  656. end
  657.  
  658. local ChangedSpoofedProperties = {}
  659. SpoofProperty = function(Instance_, Property, NoClone)
  660. if (SpoofedProperties[Instance_]) then
  661. local SpoofedPropertiesForInstance = SpoofedProperties[Instance_]
  662. local Properties = map(SpoofedPropertiesForInstance, function(i, v)
  663. return v.Property
  664. end)
  665. if (not Tfind(Properties, Property)) then
  666. SpoofedProperties[Instance_][#SpoofedPropertiesForInstance + 1] = {
  667. SpoofedProperty = SpoofedPropertiesForInstance[1].SpoofedProperty,
  668. Property = Property,
  669. };
  670. end
  671. else
  672. local Cloned;
  673. if (not NoClone and IsA(Instance_, "Instance") and not Services[tostring(Instance_)] and Instance_.Archivable) then
  674. local Success, Ret = pcall(Clone, Instance_);
  675. if (Success) then
  676. Cloned = Ret
  677. end
  678. end
  679. SpoofedProperties[Instance_] = {{
  680. SpoofedProperty = Cloned and Cloned or {[Property]=Instance_[Property]},
  681. Property = Property,
  682. }}
  683. ChangedSpoofedProperties[Instance_] = {}
  684. end
  685. end
  686.  
  687. local GetAllParents = function(Instance_, NIV)
  688. if (typeof(Instance_) == "Instance") then
  689. local Parents = {}
  690. local Current = NIV or Instance_
  691. if (NIV) then
  692. Parents[#Parents + 1] = Current
  693. end
  694. repeat
  695. local Parent = Current.Parent
  696. Parents[#Parents + 1] = Parent
  697. Current = Parent
  698. until not Current
  699. return Parents
  700. end
  701. return {}
  702. end
  703.  
  704. local Methods = {
  705. "FindFirstChild",
  706. "FindFirstChildWhichIsA",
  707. "FindFirstChildOfClass",
  708. "IsA"
  709. }
  710.  
  711. local lockedInstances = {};
  712. setmetatable(lockedInstances, { __mode = "k" });
  713. local isProtected = function(instance)
  714. if (lockedInstances[instance]) then
  715. return true;
  716. end
  717.  
  718. local good2 = pcall(tostring, instance);
  719. if (not good2) then
  720. lockedInstances[instance] = true
  721. return true;
  722. end
  723.  
  724. for i2 = 1, #ProtectedInstances do
  725. local pInstance = ProtectedInstances[i2]
  726. if (pInstance == instance) then
  727. return true;
  728. end
  729. end
  730. return false;
  731. end
  732.  
  733. MetaMethodHooks.Namecall = function(...)
  734. local __Namecall = OldMetaMethods.__namecall;
  735. local Args = {...}
  736. local self = Args[1]
  737. local Method = getnamecallmethod() or "";
  738.  
  739. if (Method ~= "") then
  740. local Success, result = pcall(OldMetaMethods.__index, self, Method);
  741. if (not Success or Success and type(result) ~= "function") then
  742. return __Namecall(...);
  743. end
  744. end
  745.  
  746. if (Hooks.AntiKick and lower(Method) == "kick") then
  747. local Player, Message = self, Args[2]
  748. if (Hooks.AntiKick and Player == LocalPlayer) then
  749. local Notify = Utils.Notify
  750. local Context;
  751. if (setthreadidentity) then
  752. Context = getthreadidentity();
  753. setthreadidentity(3);
  754. end
  755. if (Notify and Context) then
  756. Notify(nil, "Attempt to kick", format("attempt to kick %s", (Message and type(Message) == 'number' or type(Message) == 'string') and ": " .. Message or ""));
  757. setthreadidentity(Context);
  758. end
  759. return
  760. end
  761. end
  762.  
  763. if (Hooks.AntiTeleport and Method == "Teleport" or Method == "TeleportToPlaceInstance") then
  764. local Player, PlaceId = self, Args[2]
  765. if (Hooks.AntiTeleport and Player == LocalPlayer) then
  766. local Notify = Utils.Notify
  767. local Context;
  768. if (setthreadidentity) then
  769. Context = getthreadidentity();
  770. setthreadidentity(3);
  771. end
  772. if (Notify and Context) then
  773. Notify(nil, "Attempt to teleport", format("attempt to teleport to place %s", PlaceId and PlaceId or ""));
  774. setthreadidentity(Context);
  775. end
  776. return
  777. end
  778. end
  779.  
  780. if (checkcaller()) then
  781. return __Namecall(...);
  782. end
  783.  
  784. if (Tfind(Methods, Method)) then
  785. local ReturnedInstance = __Namecall(...);
  786. if (Tfind(ProtectedInstances, ReturnedInstance)) then
  787. return Method == "IsA" and false or nil
  788. end
  789. end
  790.  
  791. -- ik this is horrible but fates admin v3 has a better way of doing hooks
  792. if (Method == "children" or Method == "GetChildren" or Method == "getChildren" or Method == "GetDescendants" or Method == "getDescendants") then
  793. return filter(__Namecall(...), function(i, instance)
  794. return not isProtected(instance);
  795. end);
  796. end
  797.  
  798. if (self == Services.UserInputService and (Method == "GetFocusedTextBox" or Method == "getFocusedTextBox")) then
  799. local focused = __Namecall(...);
  800. if (focused) then
  801. for i = 1, #ProtectedInstances do
  802. local ProtectedInstance = ProtectedInstances[i]
  803. local iden = getthreadidentity();
  804. setthreadidentity(7);
  805. local pInstance = Tfind(ProtectedInstances, focused) or focused.IsDescendantOf(focused, ProtectedInstance);
  806. setthreadidentity(iden);
  807. if (pInstance) then
  808. return nil;
  809. end
  810. end
  811. end
  812. return focused;
  813. end
  814.  
  815. if (Hooks.NoJumpCooldown and (Method == "GetState" or Method == "GetStateEnabled")) then
  816. local State = __Namecall(...);
  817. if (Method == "GetState" and (State == Enum.HumanoidStateType.Jumping or State == "Jumping")) then
  818. return Enum.HumanoidStateType.RunningNoPhysics
  819. end
  820. if (Method == "GetStateEnabled" and (self == Enum.HumanoidStateType.Jumping or self == "Jumping")) then
  821. return false
  822. end
  823. end
  824.  
  825. return __Namecall(...);
  826. end
  827.  
  828. local AllowedIndexes = {
  829. "RootPart",
  830. "Parent"
  831. }
  832. local AllowedNewIndexes = {
  833. "Jump"
  834. }
  835. MetaMethodHooks.Index = function(...)
  836. local __Index = OldMetaMethods.__index;
  837. local called = __Index(...);
  838.  
  839. if (checkcaller()) then
  840. return __Index(...);
  841. end
  842. local Instance_, Index = ...
  843.  
  844. local SanitisedIndex = Index
  845. if (typeof(Instance_) == 'Instance' and type(Index) == 'string') then
  846. SanitisedIndex = gsub(sub(Index, 0, 100), "%z.*", "");
  847. end
  848. local SpoofedInstance = SpoofedInstances[Instance_]
  849. local SpoofedPropertiesForInstance = SpoofedProperties[Instance_]
  850.  
  851. if (SpoofedInstance) then
  852. if (Tfind(AllowedIndexes, SanitisedIndex)) then
  853. return __Index(Instance_, Index);
  854. end
  855. return __Index(SpoofedInstance, Index);
  856. end
  857.  
  858. if (SpoofedPropertiesForInstance) then
  859. for i, SpoofedProperty in next, SpoofedPropertiesForInstance do
  860. local SanitisedIndex = gsub(SanitisedIndex, "^%l", upper);
  861. if (SanitisedIndex == SpoofedProperty.Property) then
  862. local ClientChangedData = ChangedSpoofedProperties[Instance_][SanitisedIndex]
  863. local IndexedSpoofed = __Index(SpoofedProperty.SpoofedProperty, Index);
  864. local Indexed = __Index(Instance_, Index);
  865. if (ClientChangedData.Caller and ClientChangedData.Value ~= Indexed) then
  866. OldMetaMethods.__newindex(SpoofedProperty.SpoofedProperty, Index, Indexed);
  867. OldMetaMethods.__newindex(Instance_, Index, ClientChangedData.Value);
  868. return Indexed
  869. end
  870. return IndexedSpoofed
  871. end
  872. end
  873. end
  874.  
  875. if (Hooks.NoJumpCooldown and SanitisedIndex == "Jump") then
  876. if (IsA(Instance_, "Humanoid")) then
  877. return false
  878. end
  879. end
  880.  
  881. if (Instance_ == Stats and (SanitisedIndex == "InstanceCount" or SanitisedIndex == "instanceCount")) then
  882. return called - pInstanceCount[1];
  883. end
  884.  
  885. if (Instance_ == Stats and (SanitisedIndex == "PrimitivesCount" or SanitisedIndex == "primitivesCount")) then
  886. return called - pInstanceCount[2];
  887. end
  888.  
  889. return called;
  890. end
  891.  
  892. MetaMethodHooks.NewIndex = function(...)
  893. local __NewIndex = OldMetaMethods.__newindex;
  894. local __Index = OldMetaMethods.__index;
  895. local Instance_, Index, Value = ...
  896.  
  897. local SpoofedInstance = SpoofedInstances[Instance_]
  898. local SpoofedPropertiesForInstance = SpoofedProperties[Instance_]
  899.  
  900. if (checkcaller()) then
  901. if (Index == "Parent" and Value) then
  902. local ProtectedInstance
  903. for i = 1, #ProtectedInstances do
  904. local ProtectedInstance_ = ProtectedInstances[i]
  905. if (Instance_ == ProtectedInstance_ or Instance_.IsDescendantOf(Value, ProtectedInstance_)) then
  906. ProtectedInstance = true
  907. end
  908. end
  909. if (ProtectedInstance) then
  910. local Parents = GetAllParents(Instance_, Value);
  911. local child1 = getconnections(Parents[1].ChildAdded, true);
  912. local descendantconnections = {}
  913. for i, v in next, child1 do
  914. v.Disable(v);
  915. end
  916. for i = 1, #Parents do
  917. local Parent = Parents[i]
  918. for i2, v in next, getconnections(Parent.DescendantAdded, true) do
  919. v.Disable(v);
  920. descendantconnections[#descendantconnections + 1] = v
  921. end
  922. end
  923. local good, Ret = pcall(__NewIndex, ...);
  924. for i, v in pairs(descendantconnections) do
  925. v:Enable();
  926. end
  927. for i, v in next, child1 do
  928. v.Enable(v);
  929. end
  930. if (not good) then
  931. return __NewIndex(...);
  932. end
  933. return Ret;
  934. end
  935. end
  936. if (SpoofedInstance or SpoofedPropertiesForInstance) then
  937. if (SpoofedPropertiesForInstance) then
  938. ChangedSpoofedProperties[Instance_][Index] = {
  939. Caller = true,
  940. BeforeValue = Instance_[Index],
  941. Value = Value
  942. }
  943. end
  944. local Connections = tbl_concat(
  945. getconnections(GetPropertyChangedSignal(Instance_, SpoofedPropertiesForInstance and SpoofedPropertiesForInstance.Property or Index), true),
  946. getconnections(Instance_.Changed, true),
  947. getconnections(game.ItemChanged, true)
  948. )
  949.  
  950. if (not next(Connections)) then
  951. return __NewIndex(Instance_, Index, Value);
  952. end
  953. for i, v in next, Connections do
  954. v.Disable(v);
  955. end
  956. local Ret = __NewIndex(Instance_, Index, Value);
  957. for i, v in next, Connections do
  958. v.Enable(v);
  959. end
  960. return Ret
  961. end
  962. return __NewIndex(...);
  963. end
  964.  
  965. local SanitisedIndex = Index
  966. if (typeof(Instance_) == 'Instance' and type(Index) == 'string') then
  967. local len = select(2, gsub(Index, "%z", ""));
  968. if (len > 255) then
  969. return __Index(...);
  970. end
  971.  
  972. SanitisedIndex = gsub(sub(Index, 0, 100), "%z.*", "");
  973. end
  974.  
  975. if (SpoofedInstance) then
  976. if (Tfind(AllowedNewIndexes, SanitisedIndex)) then
  977. return __NewIndex(...);
  978. end
  979. return __NewIndex(SpoofedInstance, Index, __Index(SpoofedInstance, Index));
  980. end
  981.  
  982. if (SpoofedPropertiesForInstance) then
  983. for i, SpoofedProperty in next, SpoofedPropertiesForInstance do
  984. if (SpoofedProperty.Property == SanitisedIndex and not Tfind(AllowedIndexes, SanitisedIndex)) then
  985. ChangedSpoofedProperties[Instance_][SanitisedIndex] = {
  986. Caller = false,
  987. BeforeValue = Instance_[Index],
  988. Value = Value
  989. }
  990. return __NewIndex(SpoofedProperty.SpoofedProperty, Index, Value);
  991. end
  992. end
  993. end
  994.  
  995. return __NewIndex(...);
  996. end
  997.  
  998. local hookmetamethod = hookmetamethod or function(metatable, metamethod, func)
  999. setreadonly(metatable, false);
  1000. Old = hookfunction(metatable[metamethod], func, true);
  1001. setreadonly(metatable, true);
  1002. return Old
  1003. end
  1004.  
  1005. OldMetaMethods.__index = hookmetamethod(game, "__index", MetaMethodHooks.Index);
  1006. OldMetaMethods.__newindex = hookmetamethod(game, "__newindex", MetaMethodHooks.NewIndex);
  1007. OldMetaMethods.__namecall = hookmetamethod(game, "__namecall", MetaMethodHooks.Namecall);
  1008.  
  1009. Hooks.Destroy = hookfunction(game.Destroy, function(...)
  1010. local instance = ...
  1011. local protected = table.find(ProtectedInstances, instance);
  1012. if (checkcaller() and protected) then
  1013. otherCheck(instance, -1);
  1014. local Parents = GetAllParents(instance);
  1015. for i, v in next, getconnections(Parents[1].ChildRemoved, true) do
  1016. v.Disable(v);
  1017. end
  1018. for i = 1, #Parents do
  1019. local Parent = Parents[i]
  1020. for i2, v in next, getconnections(Parent.DescendantRemoving, true) do
  1021. v.Disable(v);
  1022. end
  1023. end
  1024. local destroy = Hooks.Destroy(...);
  1025. for i = 1, #Parents do
  1026. local Parent = Parents[i]
  1027. for i2, v in next, getconnections(Parent.DescendantRemoving, true) do
  1028. v.Enable(v);
  1029. end
  1030. end
  1031. for i, v in next, getconnections(Parents[1].ChildRemoved, true) do
  1032. v.Enable(v);
  1033. end
  1034. table.remove(ProtectedInstances, protected);
  1035. return destroy;
  1036. end
  1037. return Hooks.Destroy(...);
  1038. end);
  1039. end
  1040.  
  1041. Hooks.OldGetChildren = hookfunction(game.GetChildren, newcclosure(function(...)
  1042. if (not checkcaller()) then
  1043. local Children = Hooks.OldGetChildren(...);
  1044. return filter(Children, function(i, v)
  1045. return not Tfind(ProtectedInstances, v);
  1046. end)
  1047. end
  1048. return Hooks.OldGetChildren(...);
  1049. end));
  1050.  
  1051. Hooks.OldGetDescendants = hookfunction(game.GetDescendants, newcclosure(function(...)
  1052. if (not checkcaller()) then
  1053. local Descendants = Hooks.OldGetDescendants(...);
  1054. return filter(Descendants, function(i, v)
  1055. local Protected = false
  1056. for i2 = 1, #ProtectedInstances do
  1057. local ProtectedInstance = ProtectedInstances[i2]
  1058. Protected = v and ProtectedInstance == v or v.IsDescendantOf(v, ProtectedInstance)
  1059. if (Protected) then
  1060. break;
  1061. end
  1062. end
  1063. return not Protected
  1064. end)
  1065. end
  1066. return Hooks.OldGetDescendants(...);
  1067. end));
  1068.  
  1069. Hooks.FindFirstChild = hookfunction(game.FindFirstChild, newcclosure(function(...)
  1070. if (not checkcaller()) then
  1071. local ReturnedInstance = Hooks.FindFirstChild(...);
  1072. if (ReturnedInstance and Tfind(ProtectedInstances, ReturnedInstance)) then
  1073. return nil
  1074. end
  1075. end
  1076. return Hooks.FindFirstChild(...);
  1077. end));
  1078. Hooks.FindFirstChildOfClass = hookfunction(game.FindFirstChildOfClass, newcclosure(function(...)
  1079. if (not checkcaller()) then
  1080. local ReturnedInstance = Hooks.FindFirstChildOfClass(...);
  1081. if (ReturnedInstance and Tfind(ProtectedInstances, ReturnedInstance)) then
  1082. return nil
  1083. end
  1084. end
  1085. return Hooks.FindFirstChildOfClass(...);
  1086. end));
  1087. Hooks.FindFirstChildWhichIsA = hookfunction(game.FindFirstChildWhichIsA, newcclosure(function(...)
  1088. if (not checkcaller()) then
  1089. local ReturnedInstance = Hooks.FindFirstChildWhichIsA(...);
  1090. if (ReturnedInstance and Tfind(ProtectedInstances, ReturnedInstance)) then
  1091. return nil
  1092. end
  1093. end
  1094. return Hooks.FindFirstChildWhichIsA(...);
  1095. end));
  1096. Hooks.IsA = hookfunction(game.IsA, newcclosure(function(...)
  1097. if (not checkcaller()) then
  1098. local Args = {...}
  1099. local IsACheck = Args[1]
  1100. if (IsACheck) then
  1101. local ProtectedInstance = Tfind(ProtectedInstances, IsACheck);
  1102. if (ProtectedInstance and Args[2]) then
  1103. return false
  1104. end
  1105. end
  1106. end
  1107. return Hooks.IsA(...);
  1108. end));
  1109.  
  1110. Hooks.OldGetFocusedTextBox = hookfunction(Services.UserInputService.GetFocusedTextBox, newcclosure(function(...)
  1111. if (not checkcaller() and ... == Services.UserInputService) then
  1112. local FocusedTextBox = Hooks.OldGetFocusedTextBox(...);
  1113. if(FocusedTextBox) then
  1114. local Protected = false
  1115. for i = 1, #ProtectedInstances do
  1116. local ProtectedInstance = ProtectedInstances[i]
  1117. Protected = Tfind(ProtectedInstances, FocusedTextBox) or FocusedTextBox.IsDescendantOf(FocusedTextBox, ProtectedInstance);
  1118. end
  1119. if (Protected) then
  1120. return nil
  1121. end
  1122. end
  1123. return FocusedTextBox;
  1124. end
  1125. return Hooks.OldGetFocusedTextBox(...);
  1126. end));
  1127.  
  1128. Hooks.OldKick = hookfunction(LocalPlayer.Kick, newcclosure(function(...)
  1129. local Player, Message = ...
  1130. if (Hooks.AntiKick and Player == LocalPlayer) then
  1131. local Notify = Utils.Notify
  1132. local Context;
  1133. if (setthreadidentity) then
  1134. Context = getthreadidentity();
  1135. setthreadidentity(3);
  1136. end
  1137. if (Notify and Context) then
  1138. Notify(nil, "Attempt to kick", format("attempt to kick %s", (Message and type(Message) == 'number' or type(Message) == 'string') and ": " .. Message or ""));
  1139. setthreadidentity(Context)
  1140. end
  1141. return
  1142. end
  1143. return Hooks.OldKick(...);
  1144. end))
  1145.  
  1146. Hooks.OldTeleportToPlaceInstance = hookfunction(Services.TeleportService.TeleportToPlaceInstance, newcclosure(function(...)
  1147. local Player, PlaceId = ...
  1148. if (Hooks.AntiTeleport and Player == LocalPlayer) then
  1149. local Notify = Utils.Notify
  1150. local Context;
  1151. if (setthreadidentity) then
  1152. Context = getthreadidentity();
  1153. setthreadidentity(3);
  1154. end
  1155. if (Notify and Context) then
  1156. Notify(nil, "Attempt to teleport", format("attempt to teleport to place %s", PlaceId and PlaceId or ""));
  1157. setthreadidentity(Context)
  1158. end
  1159. return
  1160. end
  1161. return Hooks.OldTeleportToPlaceInstance(...);
  1162. end))
  1163. Hooks.OldTeleport = hookfunction(Services.TeleportService.Teleport, newcclosure(function(...)
  1164. local Player, PlaceId = ...
  1165. if (Hooks.AntiTeleport and Player == LocalPlayer) then
  1166. local Notify = Utils.Notify
  1167. local Context;
  1168. if (setthreadidentity) then
  1169. Context = getthreadidentity();
  1170. setthreadidentity(3);
  1171. end
  1172. if (Notify and Context) then
  1173. Notify(nil, "Attempt to teleport", format("attempt to teleport to place \"%s\"", PlaceId and PlaceId or ""));
  1174. setthreadidentity(Context);
  1175. end
  1176. return
  1177. end
  1178. return Hooks.OldTeleport(...);
  1179. end))
  1180.  
  1181. Hooks.GetState = hookfunction(GetState, function(...)
  1182. local Humanoid, State = ..., Hooks.GetState(...);
  1183. local Parent, Character = Humanoid.Parent, LocalPlayer.Character
  1184. if (Hooks.NoJumpCooldown and (State == Enum.HumanoidStateType.Jumping or State == "Jumping") and Parent and Character and Parent == Character) then
  1185. return Enum.HumanoidStateType.RunningNoPhysics
  1186. end
  1187. return State
  1188. end)
  1189.  
  1190. Hooks.GetStateEnabled = hookfunction(__H.GetStateEnabled, function(...)
  1191. local Humanoid, State = ...
  1192. local Ret = Hooks.GetStateEnabled(...);
  1193. local Parent, Character = Humanoid.Parent, LocalPlayer.Character
  1194. if (Hooks.NoJumpCooldown and (State == Enum.HumanoidStateType.Jumping or State == "Jumping") and Parent and Character and Parent == Character) then
  1195. return false
  1196. end
  1197. return Ret
  1198. end)
  1199. --END IMPORT [extend]
  1200.  
  1201.  
  1202.  
  1203. local GetRoot = function(Plr, Char)
  1204. local LCharacter = GetCharacter();
  1205. local Character = Char or GetCharacter(Plr);
  1206. return Plr and Character and (FindFirstChild(Character, "HumanoidRootPart") or FindFirstChild(Character, "Torso") or FindFirstChild(Character, "UpperTorso")) or LCharacter and (FindFirstChild(LCharacter, "HumanoidRootPart") or FindFirstChild(LCharacter, "Torso") or FindFirstChild(LCharacter, "UpperTorso"));
  1207. end
  1208.  
  1209. local GetHumanoid = function(Plr, Char)
  1210. local LCharacter = GetCharacter();
  1211. local Character = Char or GetCharacter(Plr);
  1212. return Plr and Character and FindFirstChildWhichIsA(Character, "Humanoid") or LCharacter and FindFirstChildWhichIsA(LCharacter, "Humanoid");
  1213. end
  1214.  
  1215. local GetMagnitude = function(Plr, Char)
  1216. local LRoot = GetRoot();
  1217. local Root = GetRoot(Plr, Char);
  1218. return Plr and Root and (Root.Position - LRoot.Position).magnitude or math.huge
  1219. end
  1220.  
  1221. local Settings = {
  1222. Prefix = "!",
  1223. CommandBarPrefix = "Semicolon",
  1224. ChatPrediction = false,
  1225. Macros = {},
  1226. Aliases = {},
  1227. }
  1228. local PluginSettings = {
  1229. PluginsEnabled = true,
  1230. PluginDebug = false,
  1231. DisabledPlugins = {
  1232. ["PluginName"] = true
  1233. },
  1234. SafePlugins = false
  1235. }
  1236.  
  1237. local WriteConfig = function(Destroy)
  1238. local JSON = JSONEncode(Services.HttpService, Settings);
  1239. local PluginJSON = JSONEncode(Services.HttpService, PluginSettings);
  1240. if (isfolder("fates-admin") and Destroy) then
  1241. delfolder("fates-admin");
  1242. writefile("fates-admin/config.json", JSON);
  1243. writefile("fates/admin/pluings/plugin-conf.json", PluginJSON);
  1244. else
  1245. makefolder("fates-admin");
  1246. makefolder("fates-admin/plugins");
  1247. makefolder("fates-admin/chatlogs");
  1248. writefile("fates-admin/config.json", JSON);
  1249. writefile("fates-admin/plugins/plugin-conf.json", PluginJSON);
  1250. end
  1251. end
  1252.  
  1253. local GetConfig = function()
  1254. if (isfolder("fates-admin") and isfile("fates-admin/config.json")) then
  1255. return JSONDecode(Services.HttpService, readfile("fates-admin/config.json"));
  1256. else
  1257. WriteConfig();
  1258. return JSONDecode(Services.HttpService, readfile("fates-admin/config.json"));
  1259. end
  1260. end
  1261.  
  1262. local GetPluginConfig = function()
  1263. if (isfolder("fates-admin") and isfolder("fates-admin/plugins") and isfile("fates-admin/plugins/plugin-conf.json")) then
  1264. local JSON = JSONDecode(Services.HttpService, readfile("fates-admin/plugins/plugin-conf.json"));
  1265. return JSON
  1266. else
  1267. WriteConfig();
  1268. return JSONDecode(Services.HttpService, readfile("fates-admin/plugins/plugin-conf.json"));
  1269. end
  1270. end
  1271.  
  1272. local SetPluginConfig = function(conf)
  1273. if (isfolder("fates-admin") and isfolder("fates-admin/plugins") and isfile("fates-admin/plugins/plugin-conf.json")) then
  1274. WriteConfig();
  1275. end
  1276. local NewConfig = GetPluginConfig();
  1277. for i, v in next, conf do
  1278. NewConfig[i] = v
  1279. end
  1280. writefile("fates-admin/plugins/plugin-conf.json", JSONEncode(Services.HttpService, NewConfig));
  1281. end
  1282.  
  1283. local SetConfig = function(conf)
  1284. if (not isfolder("fates-admin") and isfile("fates-admin/config.json")) then
  1285. WriteConfig();
  1286. end
  1287. local NewConfig = GetConfig();
  1288. for i, v in next, conf do
  1289. NewConfig[i] = v
  1290. end
  1291. writefile("fates-admin/config.json", JSONEncode(Services.HttpService, NewConfig));
  1292. end
  1293.  
  1294. local CurrentConfig = GetConfig();
  1295. local Prefix = isfolder and CurrentConfig.Prefix or "!"
  1296. local Macros = CurrentConfig.Macros or {}
  1297. local AdminUsers = AdminUsers or {}
  1298. local Exceptions = Exceptions or {}
  1299. local Connections = {
  1300. Players = {}
  1301. }
  1302. _L.CLI = false
  1303. _L.ChatLogsEnabled = true
  1304. _L.GlobalChatLogsEnabled = false
  1305. _L.HttpLogsEnabled = true
  1306.  
  1307. local GetPlayer;
  1308. GetPlayer = function(str, noerror)
  1309. local CurrentPlayers = filter(GetPlayers(Players), function(i, v)
  1310. return not Tfind(Exceptions, v);
  1311. end)
  1312. if (not str) then
  1313. return {}
  1314. end
  1315. str = lower(trim(str));
  1316. if (Sfind(str, ",")) then
  1317. return flatMap(split(str, ","), function(i, v)
  1318. return GetPlayer(v, noerror);
  1319. end)
  1320. end
  1321.  
  1322. local Magnitudes = map(CurrentPlayers, function(i, v)
  1323. return {v,(GetRoot(v).CFrame.p - GetRoot().CFrame.p).Magnitude}
  1324. end)
  1325.  
  1326. local PlayerArgs = {
  1327. ["all"] = function()
  1328. return filter(CurrentPlayers, function(i, v) -- removed all arg (but not really) due to commands getting messed up and people getting confused
  1329. return v ~= LocalPlayer
  1330. end)
  1331. end,
  1332. ["others"] = function()
  1333. return filter(CurrentPlayers, function(i, v)
  1334. return v ~= LocalPlayer
  1335. end)
  1336. end,
  1337. ["nearest"] = function()
  1338. sort(Magnitudes, function(a, b)
  1339. return a[2] < b[2]
  1340. end)
  1341. return {Magnitudes[2][1]}
  1342. end,
  1343. ["farthest"] = function()
  1344. sort(Magnitudes, function(a, b)
  1345. return a[2] > b[2]
  1346. end)
  1347. return {Magnitudes[2][1]}
  1348. end,
  1349. ["random"] = function()
  1350. return {CurrentPlayers[random(2, #CurrentPlayers)]}
  1351. end,
  1352. ["allies"] = function()
  1353. local LTeam = LocalPlayer.Team
  1354. return filter(CurrentPlayers, function(i, v)
  1355. return v.Team == LTeam
  1356. end)
  1357. end,
  1358. ["enemies"] = function()
  1359. local LTeam = LocalPlayer.Team
  1360. return filter(CurrentPlayers, function(i, v)
  1361. return v.Team ~= LTeam
  1362. end)
  1363. end,
  1364. ["npcs"] = function()
  1365. local NPCs = {}
  1366. local Descendants = GetDescendants(Workspace);
  1367. local GetPlayerFromCharacter = Players.GetPlayerFromCharacter
  1368. for i = 1, #Descendants do
  1369. local Descendant = Descendants[i]
  1370. local DParent = Descendant.Parent
  1371. if (IsA(Descendant, "Humanoid") and IsA(DParent, "Model") and (FindFirstChild(DParent, "HumanoidRootPart") or FindFirstChild(DParent, "Head")) and GetPlayerFromCharacter(Players, DParent) == nil) then
  1372. local FakePlr = InstanceNew("Player"); -- so it can be compatible with commands
  1373. FakePlr.Character = DParent
  1374. FakePlr.Name = format("%s %s", DParent.Name, "- " .. Descendant.DisplayName);
  1375. NPCs[#NPCs + 1] = FakePlr
  1376. end
  1377. end
  1378. return NPCs
  1379. end,
  1380. ["me"] = function()
  1381. return {LocalPlayer}
  1382. end
  1383. }
  1384.  
  1385. if (PlayerArgs[str]) then
  1386. return PlayerArgs[str]();
  1387. end
  1388.  
  1389. local Players = filter(CurrentPlayers, function(i, v)
  1390. return (sub(lower(v.Name), 1, #str) == str) or (sub(lower(v.DisplayName), 1, #str) == str);
  1391. end)
  1392. if (not next(Players) and not noerror) then
  1393. Utils.Notify(LocalPlayer, "Fail", format("Couldn't find player %s", str));
  1394. end
  1395. return Players
  1396. end
  1397.  
  1398. local AddConnection = function(Connection, CEnv, TblOnly)
  1399. if (CEnv) then
  1400. CEnv[#CEnv + 1] = Connection
  1401. if (TblOnly) then
  1402. return Connection
  1403. end
  1404. end
  1405. Connections[#Connections + 1] = Connection
  1406. return Connection
  1407. end
  1408.  
  1409. local LastCommand = {}
  1410.  
  1411. --IMPORT [ui]
  1412. Guis = {}
  1413. ParentGui = function(Gui, Parent)
  1414. Gui.Name = sub(gsub(GenerateGUID(Services.HttpService, false), '-', ''), 1, random(25, 30))
  1415. ProtectInstance(Gui);
  1416. if (syn and syn.protect_gui) then syn.protect_gui(Gui); end -- for preload
  1417. Gui.Parent = Parent or Services.CoreGui
  1418. Guis[#Guis + 1] = Gui
  1419. return Gui
  1420. end
  1421. UI = Clone(Services.InsertService:LoadLocalAsset("rbxassetid://7882275026"));
  1422. UI.Enabled = true
  1423.  
  1424. local CommandBarPrefix;
  1425.  
  1426. local ConfigUI = UI.Config
  1427. local ConfigElements = ConfigUI.GuiElements
  1428. local CommandBar = UI.CommandBar
  1429. local Commands = UI.Commands
  1430. local ChatLogs = UI.ChatLogs
  1431. local Console = UI.Console
  1432. local GlobalChatLogs = Clone(UI.ChatLogs);
  1433. local HttpLogs = Clone(UI.ChatLogs);
  1434. local Notification = UI.Notification
  1435. local Command = UI.Command
  1436. local ChatLogMessage = UI.Message
  1437. local GlobalChatLogMessage = Clone(UI.Message);
  1438. local NotificationBar = UI.NotificationBar
  1439.  
  1440. CommandBarOpen = false
  1441. CommandBarTransparencyClone = Clone(CommandBar);
  1442. ChatLogsTransparencyClone = Clone(ChatLogs);
  1443. ConsoleTransparencyClone = Clone(Console);
  1444. GlobalChatLogsTransparencyClone = Clone(GlobalChatLogs);
  1445. HttpLogsTransparencyClone = Clone(HttpLogs);
  1446. CommandsTransparencyClone = nil
  1447. ConfigUIClone = Clone(ConfigUI);
  1448. PredictionText = ""
  1449. do
  1450. local UIParent = CommandBar.Parent
  1451. GlobalChatLogs.Parent = UIParent
  1452. GlobalChatLogMessage.Parent = UIParent
  1453. GlobalChatLogs.Name = "GlobalChatLogs"
  1454. GlobalChatLogMessage.Name = "GlobalChatLogMessage"
  1455.  
  1456. HttpLogs.Parent = UIParent
  1457. HttpLogs.Name = "HttpLogs"
  1458. HttpLogs.Size = UDim2.new(0, 421, 0, 260);
  1459. HttpLogs.Search.PlaceholderText = "Search"
  1460. end
  1461. -- position CommandBar
  1462. CommandBar.Position = UDim2.new(0.5, -100, 1, 5);
  1463.  
  1464. local UITheme, Values;
  1465. do
  1466. local BaseBGColor = Color3.fromRGB(32, 33, 36);
  1467. local BaseTransparency = 0.25
  1468. local BaseTextColor = Color3.fromRGB(220, 224, 234);
  1469. local BaseValues = { BackgroundColor = BaseBGColor, Transparency = BaseTransparency, TextColor = BaseTextColor }
  1470. Values = { Background = clone(BaseValues), CommandBar = clone(BaseValues), CommandList = clone(BaseValues), Notification = clone(BaseValues), ChatLogs = clone(BaseValues), Config = clone(BaseValues) }
  1471. local Objects = keys(Values);
  1472. local GetBaseMT = function(Object)
  1473. return setmetatable({}, {
  1474. __newindex = function(self, Index, Value)
  1475. local type = typeof(Value);
  1476. if (Index == "BackgroundColor") then
  1477. if (Value == "Reset") then
  1478. Value = BaseBGColor
  1479. type = "Color3"
  1480. end
  1481. assert(type == 'Color3', format("invalid argument #3 (Color3 expected, got %s)", type));
  1482. if (Object == "Background") then
  1483. CommandBar.BackgroundColor3 = Value
  1484. Notification.BackgroundColor3 = Value
  1485. Command.BackgroundColor3 = Value
  1486. ChatLogs.BackgroundColor3 = Value
  1487. ChatLogs.Frame.BackgroundColor3 = Value
  1488. Console.BackgroundColor3 = Value
  1489. Console.Frame.BackgroundColor3 = Value
  1490. HttpLogs.BackgroundColor3 = Value
  1491. HttpLogs.Frame.BackgroundColor3 = Value
  1492. UI.ToolTip.BackgroundColor3 = Value
  1493. ConfigUI.BackgroundColor3 = Value
  1494. ConfigUI.Container.BackgroundColor3 = Value
  1495. Commands.BackgroundColor3 = Value
  1496. Commands.Frame.BackgroundColor3 = Value
  1497. local Children = GetChildren(UI.NotificationBar);
  1498. for i = 1, #Children do
  1499. local Child = Children[i]
  1500. if (IsA(Child, "GuiObject")) then
  1501. Child.BackgroundColor3 = Value
  1502. end
  1503. end
  1504. local Children = GetChildren(Commands.Frame.List);
  1505. for i = 1, #Children do
  1506. local Child = Children[i]
  1507. if (IsA(Child, "GuiObject")) then
  1508. Child.BackgroundColor3 = Value
  1509. end
  1510. end
  1511. for i, v in next, Values do
  1512. Values[i].BackgroundColor = Value
  1513. end
  1514. elseif (Object == "CommandBar") then
  1515. CommandBar.BackgroundColor3 = Value
  1516. elseif (Object == "Notification") then
  1517. Notification.BackgroundColor3 = Value
  1518. local Children = GetChildren(UI.NotificationBar);
  1519. for i = 1, #Children do
  1520. local Child = Children[i]
  1521. if (IsA(Child, "GuiObject")) then
  1522. Child.BackgroundColor3 = Value
  1523. end
  1524. end
  1525. elseif (Object == "CommandList") then
  1526. Commands.BackgroundColor3 = Value
  1527. Commands.Frame.BackgroundColor3 = Value
  1528. elseif (Object == "Command") then
  1529. Command.BackgroundColor3 = Value
  1530. elseif (Object == "ChatLogs") then
  1531. ChatLogs.BackgroundColor3 = Value
  1532. ChatLogs.Frame.BackgroundColor3 = Value
  1533. HttpLogs.BackgroundColor3 = Value
  1534. HttpLogs.Frame.BackgroundColor3 = Value
  1535. elseif (Object == "Console") then
  1536. Console.BackgroundColor3 = Value
  1537. Console.Frame.BackgroundColor3 = Value
  1538. elseif (Object == "Config") then
  1539. ConfigUI.BackgroundColor3 = Value
  1540. ConfigUI.Container.BackgroundColor3 = Value
  1541. end
  1542. Values[Object][Index] = Value
  1543. elseif (Index == "TextColor") then
  1544. if (Value == "Reset") then
  1545. Value = BaseTextColor
  1546. type = "Color3"
  1547. end
  1548. assert(type == 'Color3', format("invalid argument #3 (Color3 expected, got %s)", type));
  1549. if (Object == "Notification") then
  1550. Notification.Title.TextColor3 = Value
  1551. Notification.Message.TextColor3 = Value
  1552. Notification.Close.TextColor3 = Value
  1553. elseif (Object == "CommandBar") then
  1554. CommandBar.Input.TextColor3 = Value
  1555. CommandBar.Arrow.TextColor3 = Value
  1556. elseif (Object == "CommandList") then
  1557. Command.CommandText.TextColor3 = Value
  1558. local Descendants = GetDescendants(Commands);
  1559. for i = 1, #Descendants do
  1560. local Descendant = Descendants[i]
  1561. local IsText = IsA(Descendant, "TextBox") or IsA(Descendant, "TextLabel") or IsA(Descendant, "TextButton");
  1562. if (IsText) then
  1563. Descendant.TextColor3 = Value
  1564. end
  1565. end
  1566. elseif (Object == "ChatLogs") then
  1567. UI.Message.TextColor3 = Value
  1568. elseif (Object == "Config") then
  1569. local Descendants = GetDescendants(ConfigUI);
  1570. for i = 1, #Descendants do
  1571. local Descendant = Descendants[i]
  1572. local IsText = IsA(Descendant, "TextBox") or IsA(Descendant, "TextLabel") or IsA(Descendant, "TextButton");
  1573. if (IsText) then
  1574. Descendant.TextColor3 = Value
  1575. end
  1576. end
  1577. elseif (Object == "Background") then
  1578. Notification.Title.TextColor3 = Value
  1579. Notification.Message.TextColor3 = Value
  1580. Notification.Close.TextColor3 = Value
  1581. CommandBar.Input.TextColor3 = Value
  1582. CommandBar.Arrow.TextColor3 = Value
  1583. Command.CommandText.TextColor3 = Value
  1584. UI.Message.TextColor3 = Value
  1585. local Descendants = GetDescendants(ConfigUI);
  1586. for i = 1, #Descendants do
  1587. local Descendant = Descendants[i]
  1588. local IsText = IsA(Descendant, "TextBox") or IsA(Descendant, "TextLabel") or IsA(Descendant, "TextButton");
  1589. if (IsText) then
  1590. Descendant.TextColor3 = Value
  1591. end
  1592. end
  1593. local Descendants = GetDescendants(Commands);
  1594. for i = 1, #Descendants do
  1595. local Descendant = Descendants[i]
  1596. local IsText = IsA(Descendant, "TextBox") or IsA(Descendant, "TextLabel") or IsA(Descendant, "TextButton");
  1597. if (IsText) then
  1598. Descendant.TextColor3 = Value
  1599. end
  1600. end
  1601. for i, v in next, Values do
  1602. Values[i].TextColor = Value
  1603. end
  1604. end
  1605. Values[Object][Index] = Value
  1606. elseif (Index == "Transparency") then
  1607. if (Value == "Reset") then
  1608. Value = BaseTransparency
  1609. type = "number"
  1610. end
  1611. assert(type == 'number', format("invalid argument #3 (Color3 expected, got %s)", type));
  1612. if (Object == "Background") then
  1613. CommandBar.Transparency = Value
  1614. Notification.Transparency = Value
  1615. Command.Transparency = Value + .5
  1616. ChatLogs.Transparency = Value
  1617. ChatLogs.Frame.Transparency = Value
  1618. HttpLogs.Transparency = Value
  1619. HttpLogs.Frame.Transparency = Value
  1620. UI.ToolTip.Transparency = Value
  1621. ConfigUI.Transparency = Value
  1622. ConfigUI.Container.Transparency = Value + .5
  1623. Commands.Transparency = Value
  1624. Commands.Frame.Transparency = Value + .5
  1625. Values[Object][Index] = Value
  1626. elseif (Object == "Notification") then
  1627. Notification.Transparency = Value
  1628. local Children = GetChildren(UI.NotificationBar);
  1629. for i = 1, #Children do
  1630. local Child = Children[i]
  1631. if (IsA(Child, "GuiObject")) then
  1632. Child.Transparency = Value
  1633. end
  1634. end
  1635. end
  1636. Values[Object][Index] = Value
  1637. end
  1638. end,
  1639. __index = function(self, Index)
  1640. return Values[Object][Index]
  1641. end
  1642. })
  1643. end
  1644. UITheme = setmetatable({}, {
  1645. __index = function(self, Index)
  1646. if (Tfind(Objects, Index)) then
  1647. local BaseMt = GetBaseMT(Index);
  1648. self[Index] = BaseMt
  1649. return BaseMt
  1650. end
  1651. end
  1652. })
  1653. end
  1654.  
  1655. local IsSupportedExploit = isfile and isfolder and writefile and readfile
  1656.  
  1657. local GetThemeConfig
  1658. local WriteThemeConfig = function(Conf)
  1659. if (IsSupportedExploit and isfolder("fates-admin")) then
  1660. local ToHSV = Color3.new().ToHSV
  1661. local ValuesToEncode = deepsearchset(Values, function(i, v)
  1662. return typeof(v) == 'Color3'
  1663. end, function(i, v)
  1664. local H, S, V = ToHSV(v);
  1665. return {H, S, V, "Color3"}
  1666. end)
  1667. local Data = JSONEncode(Services.HttpService, ValuesToEncode);
  1668. writefile("fates-admin/Theme.json", Data);
  1669. end
  1670. end
  1671.  
  1672. GetThemeConfig = function()
  1673. if (IsSupportedExploit and isfolder("fates-admin")) then
  1674. if (isfile("fates-admin/Theme.json")) then
  1675. local Success, Data = pcall(JSONDecode, Services.HttpService, readfile("fates-admin/Theme.json"));
  1676. if (not Success or type(Data) ~= 'table') then
  1677. WriteThemeConfig();
  1678. return Values
  1679. end
  1680. local DecodedData = deepsearchset(Data, function(i, v)
  1681. return type(v) == 'table' and #v == 4 and v[4] == "Color3"
  1682. end, function(i,v)
  1683. return Color3.fromHSV(v[1], v[2], v[3]);
  1684. end)
  1685. return DecodedData
  1686. else
  1687. WriteThemeConfig();
  1688. return Values
  1689. end
  1690. else
  1691. return Values
  1692. end
  1693. end
  1694.  
  1695. local LoadTheme;
  1696. do
  1697. local Config = GetConfig();
  1698. CommandBarPrefix = isfolder and (Config.CommandBarPrefix and Enum.KeyCode[Config.CommandBarPrefix] or Enum.KeyCode.Semicolon) or Enum.KeyCode.Semicolon
  1699.  
  1700. local Theme = GetThemeConfig();
  1701. LoadTheme = function(Theme)
  1702. UITheme.Background.BackgroundColor = Theme.Background.BackgroundColor
  1703. UITheme.Background.Transparency = Theme.Background.Transparency
  1704.  
  1705. UITheme.ChatLogs.BackgroundColor = Theme.ChatLogs.BackgroundColor
  1706. UITheme.CommandBar.BackgroundColor = Theme.CommandBar.BackgroundColor
  1707. UITheme.Config.BackgroundColor = Theme.Config.BackgroundColor
  1708. UITheme.Notification.BackgroundColor = Theme.Notification.BackgroundColor
  1709. UITheme.CommandList.BackgroundColor = Theme.Notification.BackgroundColor
  1710.  
  1711. UITheme.ChatLogs.TextColor = Theme.ChatLogs.TextColor
  1712. UITheme.CommandBar.TextColor = Theme.CommandBar.TextColor
  1713. UITheme.Config.TextColor = Theme.Config.TextColor
  1714. UITheme.Notification.TextColor = Theme.Notification.TextColor
  1715. UITheme.CommandList.TextColor = Theme.Notification.TextColor
  1716.  
  1717. UITheme.ChatLogs.Transparency = Theme.ChatLogs.Transparency
  1718. UITheme.CommandBar.Transparency = Theme.CommandBar.Transparency
  1719. UITheme.Config.Transparency = Theme.Config.Transparency
  1720. UITheme.Notification.Transparency = Theme.Notification.Transparency
  1721. UITheme.CommandList.Transparency = Theme.Notification.Transparency
  1722. end
  1723. LoadTheme(Theme);
  1724. end
  1725. --END IMPORT [ui]
  1726.  
  1727.  
  1728.  
  1729. --IMPORT [utils]
  1730. Utils.Tween = function(Object, Style, Direction, Time, Goal)
  1731. local TweenService = Services.TweenService
  1732. local TInfo = TweenInfo.new(Time, Enum.EasingStyle[Style], Enum.EasingDirection[Direction])
  1733. local Tween = TweenService.Create(TweenService, Object, TInfo, Goal)
  1734.  
  1735. Tween.Play(Tween)
  1736.  
  1737. return Tween
  1738. end
  1739.  
  1740. Utils.MultColor3 = function(Color, Delta)
  1741. local clamp = math.clamp
  1742. return Color3.new(clamp(Color.R * Delta, 0, 1), clamp(Color.G * Delta, 0, 1), clamp(Color.B * Delta, 0, 1));
  1743. end
  1744.  
  1745. Utils.Click = function(Object, Goal) -- Utils.Click(Object, "BackgroundColor3")
  1746. local Hover = {
  1747. [Goal] = Utils.MultColor3(Object[Goal], 0.9)
  1748. }
  1749.  
  1750. local Press = {
  1751. [Goal] = Utils.MultColor3(Object[Goal], 1.2)
  1752. }
  1753.  
  1754. local Origin = {
  1755. [Goal] = Object[Goal]
  1756. }
  1757.  
  1758. AddConnection(CConnect(Object.MouseEnter, function()
  1759. Utils.Tween(Object, "Sine", "Out", .5, Hover);
  1760. end));
  1761.  
  1762. AddConnection(CConnect(Object.MouseLeave, function()
  1763. Utils.Tween(Object, "Sine", "Out", .5, Origin);
  1764. end));
  1765.  
  1766. AddConnection(CConnect(Object.MouseButton1Down, function()
  1767. Utils.Tween(Object, "Sine", "Out", .3, Press);
  1768. end));
  1769.  
  1770. AddConnection(CConnect(Object.MouseButton1Up, function()
  1771. Utils.Tween(Object, "Sine", "Out", .4, Hover);
  1772. end));
  1773. end
  1774.  
  1775. Utils.Blink = function(Object, Goal, Color1, Color2) -- Utils.Click(Object, "BackgroundColor3", NormalColor, OtherColor)
  1776. local Normal = {
  1777. [Goal] = Color1
  1778. }
  1779.  
  1780. local Blink = {
  1781. [Goal] = Color2
  1782. }
  1783.  
  1784. local Tween = Utils.Tween(Object, "Sine", "Out", .5, Blink)
  1785. CWait(Tween.Completed);
  1786.  
  1787. Tween = Utils.Tween(Object, "Sine", "Out", .5, Normal)
  1788. CWait(Tween.Completed);
  1789. end
  1790.  
  1791. Utils.Hover = function(Object, Goal)
  1792. local Hover = {
  1793. [Goal] = Utils.MultColor3(Object[Goal], 0.9)
  1794. }
  1795.  
  1796. local Origin = {
  1797. [Goal] = Object[Goal]
  1798. }
  1799.  
  1800. AddConnection(CConnect(Object.MouseEnter, function()
  1801. Utils.Tween(Object, "Sine", "Out", .5, Hover);
  1802. end));
  1803.  
  1804. AddConnection(CConnect(Object.MouseLeave, function()
  1805. Utils.Tween(Object, "Sine", "Out", .5, Origin);
  1806. end));
  1807. end
  1808.  
  1809. Utils.Draggable = function(Ui, DragUi)
  1810. local DragSpeed = 0
  1811. local StartPos
  1812. local DragToggle, DragInput, DragStart, DragPos
  1813.  
  1814. DragUi = Dragui or Ui
  1815. local TweenService = Services.TweenService
  1816.  
  1817. local function UpdateInput(Input)
  1818. local Delta = Input.Position - DragStart
  1819. local Position = UDim2.new(StartPos.X.Scale, StartPos.X.Offset + Delta.X, StartPos.Y.Scale, StartPos.Y.Offset + Delta.Y)
  1820.  
  1821. Utils.Tween(Ui, "Linear", "Out", .25, {
  1822. Position = Position
  1823. });
  1824. local Tween = TweenService.Create(TweenService, Ui, TweenInfo.new(0.25), {Position = Position});
  1825. Tween.Play(Tween);
  1826. end
  1827.  
  1828. AddConnection(CConnect(Ui.InputBegan, function(Input)
  1829. if ((Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch) and Services.UserInputService.GetFocusedTextBox(Services.UserInputService) == nil) then
  1830. DragToggle = true
  1831. DragStart = Input.Position
  1832. StartPos = Ui.Position
  1833.  
  1834. AddConnection(CConnect(Input.Changed, function()
  1835. if (Input.UserInputState == Enum.UserInputState.End) then
  1836. DragToggle = false
  1837. end
  1838. end));
  1839. end
  1840. end));
  1841.  
  1842. AddConnection(CConnect(Ui.InputChanged, function(Input)
  1843. if (Input.UserInputType == Enum.UserInputType.MouseMovement or Input.UserInputType == Enum.UserInputType.Touch) then
  1844. DragInput = Input
  1845. end
  1846. end));
  1847.  
  1848. AddConnection(CConnect(Services.UserInputService.InputChanged, function(Input)
  1849. if (Input == DragInput and DragToggle) then
  1850. UpdateInput(Input)
  1851. end
  1852. end));
  1853. end
  1854.  
  1855. Utils.SmoothScroll = function(content, SmoothingFactor) -- by Elttob
  1856. -- get the 'content' scrolling frame, aka the scrolling frame with all the content inside
  1857. -- if smoothing is enabled, disable scrolling
  1858. content.ScrollingEnabled = false
  1859.  
  1860. -- create the 'input' scrolling frame, aka the scrolling frame which receives user input
  1861. -- if smoothing is enabled, enable scrolling
  1862. local input = Clone(content)
  1863.  
  1864. input.ClearAllChildren(input);
  1865. input.BackgroundTransparency = 1
  1866. input.ScrollBarImageTransparency = 1
  1867. input.ZIndex = content.ZIndex + 1
  1868. input.Name = "_smoothinputframe"
  1869. input.ScrollingEnabled = true
  1870. input.Parent = content.Parent
  1871.  
  1872. -- keep input frame in sync with content frame
  1873. local function syncProperty(prop)
  1874. AddConnection(CConnect(GetPropertyChangedSignal(content, prop), function()
  1875. if prop == "ZIndex" then
  1876. -- keep the input frame on top!
  1877. input[prop] = content[prop] + 1
  1878. else
  1879. input[prop] = content[prop]
  1880. end
  1881. end));
  1882. end
  1883.  
  1884. syncProperty "CanvasSize"
  1885. syncProperty "Position"
  1886. syncProperty "Rotation"
  1887. syncProperty "ScrollingDirection"
  1888. syncProperty "ScrollBarThickness"
  1889. syncProperty "BorderSizePixel"
  1890. syncProperty "ElasticBehavior"
  1891. syncProperty "SizeConstraint"
  1892. syncProperty "ZIndex"
  1893. syncProperty "BorderColor3"
  1894. syncProperty "Size"
  1895. syncProperty "AnchorPoint"
  1896. syncProperty "Visible"
  1897.  
  1898. -- create a render stepped connection to interpolate the content frame position to the input frame position
  1899. local smoothConnection = AddConnection(CConnect(RenderStepped, function()
  1900. local a = content.CanvasPosition
  1901. local b = input.CanvasPosition
  1902. local c = SmoothingFactor
  1903. local d = (b - a) * c + a
  1904.  
  1905. content.CanvasPosition = d
  1906. end));
  1907.  
  1908. AddConnection(CConnect(content.AncestryChanged, function()
  1909. if content.Parent == nil then
  1910. Destroy(input);
  1911. Disconnect(smoothConnection);
  1912. end
  1913. end));
  1914. end
  1915.  
  1916. Utils.TweenAllTransToObject = function(Object, Time, BeforeObject) -- max transparency is max object transparency, swutched args bc easier command
  1917. local Descendants = GetDescendants(Object);
  1918. local OldDescentants = GetDescendants(BeforeObject);
  1919. local Tween -- to use to wait
  1920.  
  1921. Tween = Utils.Tween(Object, "Sine", "Out", Time, {
  1922. BackgroundTransparency = BeforeObject.BackgroundTransparency
  1923. })
  1924.  
  1925. for i = 1, #Descendants do
  1926. local v = Descendants[i]
  1927. local IsText = IsA(v, "TextBox") or IsA(v, "TextLabel") or IsA(v, "TextButton")
  1928. local IsImage = IsA(v, "ImageLabel") or IsA(v, "ImageButton")
  1929. local IsScrollingFrame = IsA(v, "ScrollingFrame")
  1930.  
  1931. if (IsA(v, "GuiObject")) then
  1932. if (IsText) then
  1933. Utils.Tween(v, "Sine", "Out", Time, {
  1934. TextTransparency = OldDescentants[i].TextTransparency,
  1935. TextStrokeTransparency = OldDescentants[i].TextStrokeTransparency,
  1936. BackgroundTransparency = OldDescentants[i].BackgroundTransparency
  1937. })
  1938. elseif (IsImage) then
  1939. Utils.Tween(v, "Sine", "Out", Time, {
  1940. ImageTransparency = OldDescentants[i].ImageTransparency,
  1941. BackgroundTransparency = OldDescentants[i].BackgroundTransparency
  1942. })
  1943. elseif (IsScrollingFrame) then
  1944. Utils.Tween(v, "Sine", "Out", Time, {
  1945. ScrollBarImageTransparency = OldDescentants[i].ScrollBarImageTransparency,
  1946. BackgroundTransparency = OldDescentants[i].BackgroundTransparency
  1947. })
  1948. else
  1949. Utils.Tween(v, "Sine", "Out", Time, {
  1950. BackgroundTransparency = OldDescentants[i].BackgroundTransparency
  1951. })
  1952. end
  1953. end
  1954. end
  1955.  
  1956. return Tween
  1957. end
  1958.  
  1959. Utils.SetAllTrans = function(Object)
  1960. Object.BackgroundTransparency = 1
  1961.  
  1962. local Descendants = GetDescendants(Object);
  1963. for i = 1, #Descendants do
  1964. local v = Descendants[i]
  1965. local IsText = IsA(v, "TextBox") or IsA(v, "TextLabel") or IsA(v, "TextButton")
  1966. local IsImage = IsA(v, "ImageLabel") or IsA(v, "ImageButton")
  1967. local IsScrollingFrame = IsA(v, "ScrollingFrame")
  1968.  
  1969. if (IsA(v, "GuiObject")) then
  1970. v.BackgroundTransparency = 1
  1971.  
  1972. if (IsText) then
  1973. v.TextTransparency = 1
  1974. elseif (IsImage) then
  1975. v.ImageTransparency = 1
  1976. elseif (IsScrollingFrame) then
  1977. v.ScrollBarImageTransparency = 1
  1978. end
  1979. end
  1980. end
  1981. end
  1982.  
  1983. Utils.TweenAllTrans = function(Object, Time)
  1984. local Tween -- to use to wait
  1985.  
  1986. Tween = Utils.Tween(Object, "Sine", "Out", Time, {
  1987. BackgroundTransparency = 1
  1988. })
  1989.  
  1990. local Descendants = GetDescendants(Object);
  1991. for i = 1, #Descendants do
  1992. local v = Descendants[i]
  1993. local IsText = IsA(v, "TextBox") or IsA(v, "TextLabel") or IsA(v, "TextButton")
  1994. local IsImage = IsA(v, "ImageLabel") or IsA(v, "ImageButton")
  1995. local IsScrollingFrame = IsA(v, "ScrollingFrame")
  1996.  
  1997. if (IsA(v, "GuiObject")) then
  1998. if (IsText) then
  1999. Utils.Tween(v, "Sine", "Out", Time, {
  2000. TextTransparency = 1,
  2001. BackgroundTransparency = 1
  2002. })
  2003. elseif (IsImage) then
  2004. Utils.Tween(v, "Sine", "Out", Time, {
  2005. ImageTransparency = 1,
  2006. BackgroundTransparency = 1
  2007. })
  2008. elseif (IsScrollingFrame) then
  2009. Utils.Tween(v, "Sine", "Out", Time, {
  2010. ScrollBarImageTransparency = 1,
  2011. BackgroundTransparency = 1
  2012. })
  2013. else
  2014. Utils.Tween(v, "Sine", "Out", Time, {
  2015. BackgroundTransparency = 1
  2016. })
  2017. end
  2018. end
  2019. end
  2020.  
  2021. return Tween
  2022. end
  2023.  
  2024. Utils.TextSize = function(Object)
  2025. local TextService = Services.TextService
  2026. return TextService.GetTextSize(TextService, Object.Text, Object.TextSize, Object.Font, Vector2.new(Object.AbsoluteSize.X, 1000)).Y
  2027. end
  2028.  
  2029. Utils.Notify = function(Caller, Title, Message, Time)
  2030. if (not Caller or Caller == LocalPlayer) then
  2031. local Notification = UI.Notification
  2032. local NotificationBar = UI.NotificationBar
  2033.  
  2034. local Clone = Clone(Notification)
  2035.  
  2036. local function TweenDestroy()
  2037. if (Utils and Clone) then
  2038. local Tween = Utils.TweenAllTrans(Clone, .25)
  2039.  
  2040. CWait(Tween.Completed)
  2041. Destroy(Clone);
  2042. end
  2043. end
  2044.  
  2045. Clone.Message.Text = Message
  2046. Clone.Title.Text = Title or "Notification"
  2047. Utils.SetAllTrans(Clone)
  2048. Utils.Click(Clone.Close, "TextColor3")
  2049. Clone.Visible = true
  2050. Clone.Size = UDim2.fromOffset(Clone.Size.X.Offset, Utils.TextSize(Clone.Message) + Clone.Size.Y.Offset - Clone.Message.TextSize);
  2051. Clone.Parent = NotificationBar
  2052.  
  2053. coroutine.wrap(function()
  2054. local Tween = Utils.TweenAllTransToObject(Clone, .5, Notification)
  2055.  
  2056. CWait(Tween.Completed);
  2057. wait(Time or 5);
  2058.  
  2059. if (Clone) then
  2060. TweenDestroy();
  2061. end
  2062. end)()
  2063.  
  2064. AddConnection(CConnect(Clone.Close.MouseButton1Click, TweenDestroy));
  2065. if (Title ~= "Warning" and Title ~= "Error") then
  2066. Utils.Print(format("%s - %s", Title, Message), Caller, true);
  2067. end
  2068.  
  2069. return Clone
  2070. else
  2071. local ChatRemote = Services.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest
  2072. ChatRemote.FireServer(ChatRemote, format("/w %s [FA] %s: %s", Caller.Name, Title, Message), "All");
  2073. end
  2074. end
  2075.  
  2076. Utils.MatchSearch = function(String1, String2)
  2077. return String1 == sub(String2, 1, #String1);
  2078. end
  2079.  
  2080. Utils.StringFind = function(Table, String)
  2081. for _, v in ipairs(Table) do
  2082. if (Utils.MatchSearch(String, v)) then
  2083. return v
  2084. end
  2085. end
  2086. end
  2087.  
  2088. Utils.GetPlayerArgs = function(Arg)
  2089. Arg = lower(Arg);
  2090. local SpecialCases = {"all", "others", "random", "me", "nearest", "farthest", "npcs", "allies", "enemies"}
  2091. if (Utils.StringFind(SpecialCases, Arg)) then
  2092. return Utils.StringFind(SpecialCases, Arg);
  2093. end
  2094.  
  2095. local CurrentPlayers = GetPlayers(Players);
  2096. for i, v in next, CurrentPlayers do
  2097. local Name, DisplayName = v.Name, v.DisplayName
  2098. if (Name ~= DisplayName and Utils.MatchSearch(Arg, lower(DisplayName))) then
  2099. return lower(DisplayName);
  2100. end
  2101. if (Utils.MatchSearch(Arg, lower(Name))) then
  2102. return lower(Name);
  2103. end
  2104. end
  2105. end
  2106.  
  2107. Utils.ToolTip = function(Object, Message)
  2108. local CloneToolTip
  2109. local TextService = Services.TextService
  2110.  
  2111. AddConnection(CConnect(Object.MouseEnter, function()
  2112. if (Object.BackgroundTransparency < 1 and not CloneToolTip) then
  2113. local TextSize = TextService.GetTextSize(TextService, Message, 12, Enum.Font.Gotham, Vector2.new(200, math.huge)).Y > 24
  2114.  
  2115. CloneToolTip = Clone(UI.ToolTip)
  2116. CloneToolTip.Text = Message
  2117. CloneToolTip.TextScaled = TextSize
  2118. CloneToolTip.Visible = true
  2119. CloneToolTip.Parent = UI
  2120. end
  2121. end))
  2122.  
  2123. AddConnection(CConnect(Object.MouseLeave, function()
  2124. if (CloneToolTip) then
  2125. Destroy(CloneToolTip);
  2126. CloneToolTip = nil
  2127. end
  2128. end))
  2129.  
  2130. if (LocalPlayer) then
  2131. AddConnection(CConnect(Mouse.Move, function()
  2132. if (CloneToolTip) then
  2133. CloneToolTip.Position = UDim2.fromOffset(Mouse.X + 10, Mouse.Y + 10)
  2134. end
  2135. end))
  2136. else
  2137. delay(3, function()
  2138. LocalPlayer = Players.LocalPlayer
  2139. AddConnection(CConnect(Mouse.Move, function()
  2140. if (CloneToolTip) then
  2141. CloneToolTip.Position = UDim2.fromOffset(Mouse.X + 10, Mouse.Y + 10)
  2142. end
  2143. end))
  2144. end)
  2145. end
  2146. end
  2147.  
  2148. Utils.ClearAllObjects = function(Object)
  2149. local Children = GetChildren(Object);
  2150. for i = 1, #Children do
  2151. local Child = Children[i]
  2152. if (IsA(Child, "GuiObject")) then
  2153. Destroy(Child);
  2154. end
  2155. end
  2156. end
  2157.  
  2158. Utils.Rainbow = function(TextObject)
  2159. local Text = TextObject.Text
  2160. local Frequency = 1 -- determines how quickly it repeats
  2161. local TotalCharacters = 0
  2162. local Strings = {}
  2163.  
  2164. TextObject.RichText = true
  2165.  
  2166. for Character in gmatch(Text, ".") do
  2167. if match(Character, "%s") then
  2168. Strings[#Strings + 1] = Character
  2169. else
  2170. TotalCharacters = TotalCharacters + 1
  2171. Strings[#Strings + 1] = {'<font color="rgb(%i, %i, %i)">' .. Character .. '</font>'}
  2172. end
  2173. end
  2174.  
  2175. local Connection = AddConnection(CConnect(Heartbeat, function()
  2176. local String = ""
  2177. local Counter = TotalCharacters
  2178.  
  2179. for _, CharacterTable in ipairs(Strings) do
  2180. local Concat = ""
  2181.  
  2182. if (type(CharacterTable) == "table") then
  2183. Counter = Counter - 1
  2184. local Color = Color3.fromHSV(-atan(math.tan((tick() + Counter/math.pi)/Frequency))/math.pi + 0.5, 1, 1)
  2185.  
  2186. CharacterTable = format(CharacterTable[1], floor(Color.R * 255), floor(Color.G * 255), floor(Color.B * 255))
  2187. end
  2188.  
  2189. String = String .. CharacterTable
  2190. end
  2191.  
  2192. TextObject.Text = String .. " "
  2193. end));
  2194. delay(150, function()
  2195. Disconnect(Connection);
  2196. end)
  2197.  
  2198. end
  2199.  
  2200. Utils.Vector3toVector2 = function(Vector)
  2201. local Tuple = WorldToViewportPoint(Camera, Vector);
  2202. return Vector2New(Tuple.X, Tuple.Y);
  2203. end
  2204.  
  2205. Utils.AddTag = function(Tag)
  2206. if (not Tag) then
  2207. return
  2208. end
  2209. local PlrCharacter = GetCharacter(Tag.Player)
  2210. if (not PlrCharacter) then
  2211. return
  2212. end
  2213. local Billboard = InstanceNew("BillboardGui");
  2214. Billboard.Parent = UI
  2215. Billboard.Name = GenerateGUID(Services.HttpService);
  2216. Billboard.AlwaysOnTop = true
  2217. Billboard.Adornee = FindFirstChild(PlrCharacter, "Head") or nil
  2218. Billboard.Enabled = FindFirstChild(PlrCharacter, "Head") and true or false
  2219. Billboard.Size = UDim2.new(0, 200, 0, 50)
  2220. Billboard.StudsOffset = Vector3New(0, 4, 0);
  2221.  
  2222. local TextLabel = InstanceNew("TextLabel", Billboard);
  2223. TextLabel.Name = GenerateGUID(Services.HttpService);
  2224. TextLabel.TextStrokeTransparency = 0.6
  2225. TextLabel.BackgroundTransparency = 1
  2226. TextLabel.TextColor3 = Color3.new(0, 255, 0);
  2227. TextLabel.Size = UDim2.new(0, 200, 0, 50);
  2228. TextLabel.TextScaled = false
  2229. TextLabel.TextSize = 15
  2230. TextLabel.Text = format("%s (%s)", Tag.Name, Tag.Tag);
  2231.  
  2232. if (Tag.Rainbow) then
  2233. Utils.Rainbow(TextLabel)
  2234. end
  2235. if (Tag.Colour) then
  2236. local TColour = Tag.Colour
  2237. TextLabel.TextColor3 = Color3.fromRGB(TColour[1], TColour[2], TColour[3]);
  2238. end
  2239.  
  2240. local Added = AddConnection(CConnect(Tag.Player.CharacterAdded, function()
  2241. Billboard.Adornee = WaitForChild(Tag.Player.Character, "Head");
  2242. end));
  2243.  
  2244. AddConnection(CConnect(Players.PlayerRemoving, function(plr)
  2245. if (plr == Tag.Player) then
  2246. Disconnect(Added);
  2247. Destroy(Billboard);
  2248. end
  2249. end))
  2250. end
  2251.  
  2252. Utils.TextFont = function(Text, RGB)
  2253. RGB = concat(RGB, ",")
  2254. local New = {}
  2255. gsub(Text, ".", function(x)
  2256. New[#New + 1] = x
  2257. end)
  2258. return concat(map(New, function(i, letter)
  2259. return format('<font color="rgb(%s)">%s</font>', RGB, letter)
  2260. end)) .. " "
  2261. end
  2262.  
  2263. Utils.Thing = function(Object)
  2264. local Container = InstanceNew("Frame");
  2265. local Hitbox = InstanceNew("ImageButton");
  2266. local UDim2fromOffset = UDim2.fromOffset
  2267.  
  2268. Container.Name = "Container"
  2269. Container.Parent = Object.Parent
  2270. Container.BackgroundTransparency = 1.000
  2271. Container.BorderSizePixel = 0
  2272. Container.Position = Object.Position
  2273. Container.ClipsDescendants = true
  2274. Container.Size = UDim2fromOffset(Object.AbsoluteSize.X, Object.AbsoluteSize.Y);
  2275. Container.ZIndex = Object
  2276.  
  2277. Object.AutomaticSize = Enum.AutomaticSize.X
  2278. Object.Size = UDim2.fromScale(1, 1)
  2279. Object.Position = UDim2.fromScale(0, 0)
  2280. Object.Parent = Container
  2281. Object.TextTruncate = Enum.TextTruncate.None
  2282. Object.ZIndex = Object.ZIndex + 2
  2283.  
  2284. Hitbox.Name = "Hitbox"
  2285. Hitbox.Parent = Container.Parent
  2286. Hitbox.BackgroundTransparency = 1.000
  2287. Hitbox.Size = Container.Size
  2288. Hitbox.Position = Container.Position
  2289. Hitbox.ZIndex = Object.ZIndex + 2
  2290.  
  2291. local MouseOut = true
  2292.  
  2293. AddConnection(CConnect(Hitbox.MouseEnter, function()
  2294. if Object.AbsoluteSize.X > Container.AbsoluteSize.X then
  2295. MouseOut = false
  2296. repeat
  2297. local Tween1 = Utils.Tween(Object, "Quad", "Out", .5, {
  2298. Position = UDim2fromOffset(Container.AbsoluteSize.X - Object.AbsoluteSize.X, 0);
  2299. })
  2300. CWait(Tween1.Completed);
  2301. wait(.5);
  2302. local Tween2 = Utils.Tween(Object, "Quad", "Out", .5, {
  2303. Position = UDim2fromOffset(0, 0);
  2304. })
  2305. CWait(Tween2.Completed);
  2306. wait(.5);
  2307. until MouseOut
  2308. end
  2309. end))
  2310.  
  2311. AddConnection(CConnect(Hitbox.MouseLeave, function()
  2312. MouseOut = true
  2313. Utils.Tween(Object, "Quad", "Out", .25, {
  2314. Position = UDim2fromOffset(0, 0);
  2315. });
  2316. end))
  2317.  
  2318. return Object
  2319. end
  2320.  
  2321. function Utils.Intro(Object)
  2322. local Frame = InstanceNew("Frame");
  2323. local UICorner = InstanceNew("UICorner");
  2324. local CornerRadius = FindFirstChild(Object, "UICorner") and Object.UICorner.CornerRadius or UDim.new(0, 0)
  2325. local UDim2fromOffset = UDim2.fromOffset
  2326.  
  2327. Frame.Name = "IntroFrame"
  2328. Frame.ZIndex = 1000
  2329. Frame.Size = UDim2fromOffset(Object.AbsoluteSize.X, Object.AbsoluteSize.Y)
  2330. Frame.AnchorPoint = Vector2.new(.5, .5)
  2331. Frame.Position = UDim2.new(Object.Position.X.Scale, Object.Position.X.Offset + (Object.AbsoluteSize.X / 2), Object.Position.Y.Scale, Object.Position.Y.Offset + (Object.AbsoluteSize.Y / 2))
  2332. Frame.BackgroundColor3 = Object.BackgroundColor3
  2333. Frame.BorderSizePixel = 0
  2334.  
  2335. UICorner.CornerRadius = CornerRadius
  2336. UICorner.Parent = Frame
  2337.  
  2338. Frame.Parent = Object.Parent
  2339.  
  2340. if (Object.Visible) then
  2341. Frame.BackgroundTransparency = 1
  2342.  
  2343. local Tween = Utils.Tween(Frame, "Quad", "Out", .25, {
  2344. BackgroundTransparency = 0
  2345. });
  2346.  
  2347. CWait(Tween.Completed);
  2348. Object.Visible = false
  2349.  
  2350. local Tween = Utils.Tween(Frame, "Quad", "Out", .25, {
  2351. Size = UDim2fromOffset(0, 0);
  2352. });
  2353.  
  2354. Utils.Tween(UICorner, "Quad", "Out", .25, {
  2355. CornerRadius = UDim.new(1, 0)
  2356. });
  2357.  
  2358. CWait(Tween.Completed);
  2359. Destroy(Frame);
  2360. else
  2361. Frame.Visible = true
  2362. Frame.Size = UDim2fromOffset(0, 0)
  2363. UICorner.CornerRadius = UDim.new(1, 0)
  2364.  
  2365. local Tween = Utils.Tween(Frame, "Quad", "Out", .25, {
  2366. Size = UDim2fromOffset(Object.AbsoluteSize.X, Object.AbsoluteSize.Y)
  2367. });
  2368.  
  2369. Utils.Tween(UICorner, "Quad", "Out", .25, {
  2370. CornerRadius = CornerRadius
  2371. });
  2372.  
  2373. CWait(Tween.Completed);
  2374. Object.Visible = true
  2375.  
  2376. local Tween = Utils.Tween(Frame, "Quad", "Out", .25, {
  2377. BackgroundTransparency = 1
  2378. })
  2379.  
  2380. CWait(Tween.Completed);
  2381. Destroy(Frame);
  2382. end
  2383. end
  2384.  
  2385. Utils.MakeGradient = function(ColorTable)
  2386. local Table = {}
  2387. local ColorSequenceKeypointNew = ColorSequenceKeypoint.new
  2388. for Time, Color in next, ColorTable do
  2389. Table[#Table + 1] = ColorSequenceKeypointNew(Time - 1, Color);
  2390. end
  2391. return ColorSequence.new(Table)
  2392. end
  2393.  
  2394. Utils.Debounce = function(Func)
  2395. local Debounce = false
  2396.  
  2397. return function(...)
  2398. if (not Debounce) then
  2399. Debounce = true
  2400. Func(...);
  2401. Debounce = false
  2402. end
  2403. end
  2404. end
  2405.  
  2406. Utils.ToggleFunction = function(Container, Enabled, Callback) -- fpr color picker
  2407. local Switch = Container.Switch
  2408. local Hitbox = Container.Hitbox
  2409. local Color3fromRGB = Color3.fromRGB
  2410. local UDim2fromOffset = UDim2.fromOffset
  2411.  
  2412. Container.BackgroundColor3 = Color3fromRGB(255, 79, 87);
  2413.  
  2414. if not Enabled then
  2415. Switch.Position = UDim2fromOffset(2, 2)
  2416. Container.BackgroundColor3 = Color3fromRGB(25, 25, 25);
  2417. end
  2418.  
  2419. AddConnection(CConnect(Hitbox.MouseButton1Click, function()
  2420. Enabled = not Enabled
  2421.  
  2422. Utils.Tween(Switch, "Quad", "Out", .25, {
  2423. Position = Enabled and UDim2.new(1, -18, 0, 2) or UDim2fromOffset(2, 2)
  2424. });
  2425. Utils.Tween(Container, "Quad", "Out", .25, {
  2426. BackgroundColor3 = Enabled and Color3fromRGB(255, 79, 87) or Color3fromRGB(25, 25, 25);
  2427. });
  2428.  
  2429. Callback(Enabled);
  2430. end));
  2431. end
  2432.  
  2433. do
  2434. local AmountPrint, AmountWarn, AmountError = 0, 0, 0;
  2435.  
  2436. Utils.Warn = function(Text, Plr)
  2437. local TimeOutputted = os.date("%X");
  2438. local Clone = Clone(UI.MessageOut);
  2439.  
  2440. Clone.Name = "W" .. tostring(AmountWarn + 1);
  2441. Clone.Text = format("%s -- %s", TimeOutputted, Text);
  2442. Clone.TextColor3 = Color3.fromRGB(255, 218, 68);
  2443. Clone.Visible = true
  2444. Clone.TextTransparency = 1
  2445. Clone.Parent = Console.Frame.List
  2446.  
  2447. Utils.Tween(Clone, "Sine", "Out", .25, {
  2448. TextTransparency = 0
  2449. })
  2450.  
  2451. Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  2452. AmountWarn = AmountWarn + 1
  2453. Utils.Notify(Plr, "Warning", Text);
  2454. end
  2455.  
  2456. Utils.Error = function(Text, Caller, FromNotif)
  2457. local TimeOutputted = os.date("%X");
  2458. local Clone = Clone(UI.MessageOut);
  2459.  
  2460. Clone.Name = "E" .. tostring(AmountError + 1);
  2461. Clone.Text = format("%s -- %s", TimeOutputted, Text);
  2462. Clone.TextColor3 = Color3.fromRGB(215, 90, 74);
  2463. Clone.Visible = true
  2464. Clone.TextTransparency = 1
  2465. Clone.Parent = Console.Frame.List
  2466.  
  2467. Utils.Tween(Clone, "Sine", "Out", .25, {
  2468. TextTransparency = 0
  2469. })
  2470.  
  2471. Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  2472. AmountError = AmountError + 1
  2473. end
  2474.  
  2475. Utils.Print = function(Text, Caller, FromNotif)
  2476. local TimeOutputted = os.date("%X");
  2477. local Clone = Clone(UI.MessageOut);
  2478.  
  2479. Clone.Name = "P" .. tostring(AmountPrint + 1);
  2480. Clone.Text = format("%s -- %s", TimeOutputted, Text);
  2481. Clone.Visible = true
  2482. Clone.TextTransparency = 1
  2483. Clone.Parent = Console.Frame.List
  2484.  
  2485. Utils.Tween(Clone, "Sine", "Out", .25, {
  2486. TextTransparency = 0
  2487. })
  2488.  
  2489. Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  2490. AmountPrint = AmountPrint + 1
  2491. if (len(Text) <= 35 and not FromNotif) then
  2492. Utils.Notify(Caller, "Output", Text);
  2493. end
  2494. end
  2495. end
  2496. --END IMPORT [utils]
  2497.  
  2498.  
  2499.  
  2500. -- commands table
  2501. local CommandsTable = {}
  2502. local RespawnTimes = {}
  2503.  
  2504. local HasTool = function(plr)
  2505. plr = plr or LocalPlayer
  2506. local CharChildren, BackpackChildren = GetChildren(GetCharacter(plr)), GetChildren(plr.Backpack);
  2507. local ToolFound = false
  2508. local tbl = tbl_concat(CharChildren, BackpackChildren);
  2509. for i = 1, #tbl do
  2510. local v = tbl[i]
  2511. if (IsA(v, "Tool")) then
  2512. ToolFound = true
  2513. break;
  2514. end
  2515. end
  2516. return ToolFound
  2517. end
  2518.  
  2519. local isR6 = function(plr)
  2520. plr = plr or LocalPlayer
  2521. local Humanoid = GetHumanoid(plr);
  2522. if (Humanoid) then
  2523. return Humanoid.RigType == Enum.HumanoidRigType.R6
  2524. end
  2525. return false
  2526. end
  2527.  
  2528. local isSat = function(plr)
  2529. plr = plr or LocalPlayer
  2530. local Humanoid = GetHumanoid(plr)
  2531. if (Humanoid) then
  2532. return Humanoid.Sit
  2533. end
  2534. end
  2535.  
  2536. local DisableAnimate = function()
  2537. local Animate = GetCharacter().Animate
  2538. Animate = IsA(Animate, "LocalScript") and Animate or nil
  2539. if (Animate) then
  2540. SpoofProperty(Animate, "Disabled");
  2541. Animate.Disabled = true
  2542. end
  2543. end
  2544.  
  2545. local GetCorrectToolWithHandle = function()
  2546. local Tools = filter(tbl_concat(GetChildren(LocalPlayer.Backpack), GetChildren(LocalPlayer.Character)), function(i, Tool)
  2547. local Correct = IsA(Tool, "Tool");
  2548. if (Correct and (Tool.RequiresHandle or FindFirstChild(Tool, "Handle"))) then
  2549. local Descendants = GetDescendants(Tool);
  2550. for i = 1, #Descendants do
  2551. local Descendant = Descendants[i]
  2552. if (IsA(Descendant, "Sound") or IsA(Descendant, "Camera") or IsA(Descendant, "LocalScript")) then
  2553. Destroy(Descendant);
  2554. end
  2555. end
  2556. return true
  2557. end
  2558. return false
  2559. end)
  2560.  
  2561. return Tools[1]
  2562. end
  2563.  
  2564. local CommandRequirements = {
  2565. [1] = {
  2566. Func = HasTool,
  2567. Message = "You need a tool for this command"
  2568. },
  2569. [2] = {
  2570. Func = isR6,
  2571. Message = "You need to be R6 for this command"
  2572. },
  2573. [3] = {
  2574. Func = function()
  2575. return GetCharacter() ~= nil
  2576. end,
  2577. Message = "You need to be spawned for this command"
  2578. }
  2579. }
  2580.  
  2581. local AddCommand = function(name, aliases, description, options, func, isplugin)
  2582. local Cmd = {
  2583. Name = name,
  2584. Aliases = aliases,
  2585. Description = description,
  2586. Options = options,
  2587. Function = function()
  2588. for i, v in next, options do
  2589. if (type(v) == 'function' and v() == false) then
  2590. Utils.Warn("You are missing something that is needed for this command", LocalPlayer);
  2591. return nil
  2592. elseif (type(v) == 'number' and CommandRequirements[v].Func() == false) then
  2593. Utils.Warn(CommandRequirements[v].Message, LocalPlayer);
  2594. return nil
  2595. end
  2596. end
  2597. return func
  2598. end,
  2599. ArgsNeeded = tonumber(filter(options, function(i,v)
  2600. return type(v) == "string"
  2601. end)[1]) or 0,
  2602. Args = filter(options, function(i, v)
  2603. return type(v) == "table"
  2604. end)[1] or {},
  2605. CmdEnv = {},
  2606. IsPlugin = isplugin == true
  2607. }
  2608.  
  2609. CommandsTable[name] = Cmd
  2610. if (type(aliases) == 'table') then
  2611. for i, v in next, aliases do
  2612. CommandsTable[v] = Cmd
  2613. end
  2614. end
  2615. return Success
  2616. end
  2617.  
  2618. local RemoveCommand = function(Name)
  2619. local Command = LoadCommand(Name);
  2620. if (Command) then
  2621. CommandsTable[Name] = nil
  2622. local CommandsList = Commands.Frame.List
  2623. local CommandLabel = FindFirstChild(CommandsList, Name);
  2624. if (CommandLabel) then
  2625. Destroy(CommandLabel);
  2626. end
  2627. return true
  2628. end
  2629. return false
  2630. end
  2631.  
  2632. local LoadCommand = function(Name)
  2633. return rawget(CommandsTable, Name);
  2634. end
  2635.  
  2636. local PluginConf;
  2637. local ExecuteCommand = function(Name, Args, Caller)
  2638. local Command = LoadCommand(Name);
  2639. if (Command) then
  2640. if (Command.ArgsNeeded > #Args) then
  2641. return Utils.Warn(format("Insuficient Args (you need %d)", Command.ArgsNeeded), LocalPlayer);
  2642. end
  2643.  
  2644. local Context;
  2645. local sett, gett = syn and syn_context_set or setidentity, syn and syn_context_get or getidentity
  2646. if (Command.IsPlugin and sett and gett and PluginConf.SafePlugins) then
  2647. Context = gett();
  2648. sett(2);
  2649. end
  2650. local Success, Ret = xpcall(function()
  2651. local Func = Command.Function();
  2652. if (Func) then
  2653. local Executed = Func(Caller, Args, Command.CmdEnv);
  2654. if (Executed) then
  2655. Utils.Notify(Caller, "Command", Executed);
  2656. end
  2657. if (Command.Name ~= "lastcommand") then
  2658. if (#LastCommand == 3) then
  2659. LastCommand = shift(LastCommand);
  2660. end
  2661. LastCommand[#LastCommand + 1] = {Command.Name, Args, Caller, Command.CmdEnv}
  2662. end
  2663. end
  2664. Success = true
  2665. end, function(Err)
  2666. if (Debug) then
  2667. Utils.Error(format("[FA CMD Error]: Command = '%s' Traceback = '%s'", Name, debug.traceback(Err)), Caller);
  2668. Utils.Notify(Caller, "Error", format("error in the '%s' command, more info shown in console", Name));
  2669. end
  2670. end);
  2671. if (Command.IsPlugin and sett and PluginConf.SafePlugins and Context) then
  2672. sett(Context);
  2673. end
  2674. else
  2675. Utils.Warn("couldn't find the command " .. Name, Caller);
  2676. end
  2677. end
  2678.  
  2679. local ReplaceHumanoid = function(Hum, R)
  2680. local Humanoid = Hum or GetHumanoid();
  2681. local NewHumanoid = Clone(Humanoid);
  2682. if (R) then
  2683. NewHumanoid.Name = "1"
  2684. end
  2685. NewHumanoid.Parent = Humanoid.Parent
  2686. NewHumanoid.Name = Humanoid.Name
  2687. Services.Workspace.Camera.CameraSubject = NewHumanoid
  2688. Destroy(Humanoid);
  2689. SpoofInstance(NewHumanoid);
  2690. return NewHumanoid
  2691. end
  2692.  
  2693. local ReplaceCharacter = function()
  2694. local Char = LocalPlayer.Character
  2695. local Model = InstanceNew("Model");
  2696. LocalPlayer.Character = Model
  2697. LocalPlayer.Character = Char
  2698. Destroy(Model);
  2699. return Char
  2700. end
  2701.  
  2702. local CFrameTool = function(tool, pos)
  2703. local RightArm = FindFirstChild(GetCharacter(), "RightLowerArm") or FindFirstChild(GetCharacter(), "Right Arm");
  2704. local Arm = RightArm.CFrame * CFrameNew(0, -1, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0);
  2705. local Frame = Inverse(toObjectSpace(Arm, pos));
  2706.  
  2707. tool.Grip = Frame
  2708. end
  2709.  
  2710. local Sanitize = function(value)
  2711. if typeof(value) == 'CFrame' then
  2712. local components = {components(value)}
  2713. for i,v in pairs(components) do
  2714. components[i] = floor(v * 10000 + .5) / 10000
  2715. end
  2716. return 'CFrame.new('..concat(components, ', ')..')'
  2717. end
  2718. end
  2719.  
  2720. local AddPlayerConnection = function(Player, Connection, CEnv)
  2721. if (CEnv) then
  2722. CEnv[#CEnv + 1] = Connection
  2723. else
  2724. Connections.Players[Player.Name].Connections[#Connections.Players[Player.Name].Connections + 1] = Connection
  2725. end
  2726. return Connection
  2727. end
  2728.  
  2729.  
  2730. local DisableAllCmdConnections = function(Cmd)
  2731. local Command = LoadCommand(Cmd)
  2732. if (Command and Command.CmdEnv) then
  2733. for i, v in next, flat(Command.CmdEnv) do
  2734. if (type(v) == 'userdata' and v.Disconnect) then
  2735. Disconnect(v);
  2736. end
  2737. end
  2738. end
  2739. return Command
  2740. end
  2741.  
  2742. local Keys = {}
  2743.  
  2744. do
  2745. local UserInputService = Services.UserInputService
  2746. local IsKeyDown = UserInputService.IsKeyDown
  2747. local WindowFocused = true
  2748. AddConnection(CConnect(UserInputService.WindowFocusReleased, function()
  2749. WindowFocused = false
  2750. end));
  2751. AddConnection(CConnect(UserInputService.WindowFocused, function()
  2752. WindowFocused = true
  2753. end));
  2754. local GetFocusedTextBox = UserInputService.GetFocusedTextBox
  2755. AddConnection(CConnect(UserInputService.InputBegan, function(Input, GameProcessed)
  2756. Keys["GameProcessed"] = GameProcessed and WindowFocused and not (not GetFocusedTextBox(UserInputService));
  2757. Keys["LastEntered"] = Input.KeyCode
  2758. if (GameProcessed) then return end
  2759. local KeyCode = split(tostring(Input.KeyCode), ".")[3]
  2760. Keys[KeyCode] = true
  2761. for i = 1, #Macros do
  2762. local Macro = Macros[i]
  2763. if (Tfind(Macro.Keys, Input.KeyCode)) then
  2764. if (#Macro.Keys == 2) then
  2765. if (IsKeyDown(UserInputService, Macro.Keys[1]) and IsKeyDown(UserInputService, Macro.Keys[2]) --[[and Macro.Keys[1] == Input.KeyCode]]) then
  2766. ExecuteCommand(Macro.Command, Macro.Args);
  2767. end
  2768. else
  2769. ExecuteCommand(Macro.Command, Macro.Args);
  2770. end
  2771. end
  2772. end
  2773.  
  2774. if (Input.KeyCode == Enum.KeyCode.F8) then
  2775. if (Console.Visible) then
  2776. local Tween = Utils.TweenAllTrans(Console, .25)
  2777. CWait(Tween.Completed);
  2778. Console.Visible = false
  2779. else
  2780. local MessageClone = Clone(Console.Frame.List);
  2781.  
  2782. Utils.ClearAllObjects(Console.Frame.List)
  2783. Console.Visible = true
  2784.  
  2785. local Tween = Utils.TweenAllTransToObject(Console, .25, ConsoleTransparencyClone)
  2786.  
  2787. Destroy(Console.Frame.List)
  2788. MessageClone.Parent = Console.Frame
  2789.  
  2790. for i, v in next, GetChildren(Console.Frame.List) do
  2791. if (not IsA(v, "UIListLayout")) then
  2792. Utils.Tween(v, "Sine", "Out", .25, {
  2793. TextTransparency = 0
  2794. })
  2795. end
  2796. end
  2797.  
  2798. local ConsoleListLayout = Console.Frame.List.UIListLayout
  2799.  
  2800. CConnect(GetPropertyChangedSignal(ConsoleListLayout, "AbsoluteContentSize"), function()
  2801. local CanvasPosition = Console.Frame.List.CanvasPosition
  2802. local CanvasSize = Console.Frame.List.CanvasSize
  2803. local AbsoluteSize = Console.Frame.List.AbsoluteSize
  2804.  
  2805. if (CanvasSize.Y.Offset - AbsoluteSize.Y - CanvasPosition.Y < 20) then
  2806. wait();
  2807. Console.Frame.List.CanvasPosition = Vector2.new(0, CanvasSize.Y.Offset + 1000);
  2808. end
  2809. end)
  2810.  
  2811. Utils.Tween(Console.Frame.List, "Sine", "Out", .25, {
  2812. ScrollBarImageTransparency = 0
  2813. })
  2814. end
  2815. end
  2816. end));
  2817. AddConnection(CConnect(UserInputService.InputEnded, function(Input, GameProcessed)
  2818. if (GameProcessed) then return end
  2819. local KeyCode = split(tostring(Input.KeyCode), ".")[3]
  2820. if (Keys[KeyCode] or Keys[Input.KeyCode]) then
  2821. Keys[KeyCode] = false
  2822. end
  2823. end));
  2824. end
  2825.  
  2826. AddCommand("commandcount", {"cc"}, "shows you how many commands there is in fates admin", {}, function(Caller)
  2827. Utils.Notify(Caller, "Amount of Commands", format("There are currently %s commands.", #filter(CommandsTable, function(i,v)
  2828. return indexOf(CommandsTable, v) == i
  2829. end)))
  2830. end)
  2831.  
  2832. AddCommand("walkspeed", {"ws", "speed"}, "changes your walkspeed to the second argument", {}, function(Caller, Args, CEnv)
  2833. local Humanoid = GetHumanoid();
  2834. CEnv[1] = Humanoid.WalkSpeed
  2835. SpoofProperty(Humanoid, "WalkSpeed");
  2836. Humanoid.WalkSpeed = tonumber(Args[1]) or 16
  2837. return "your walkspeed is now " .. Humanoid.WalkSpeed
  2838. end)
  2839.  
  2840. AddCommand("jumppower", {"jp"}, "changes your jumpower to the second argument", {}, function(Caller, Args, CEnv)
  2841. local Humanoid = GetHumanoid();
  2842. CEnv[1] = Humanoid.JumpPower
  2843. SpoofProperty(Humanoid, "JumpPower");
  2844. SpoofProperty(Humanoid, "UseJumpPower");
  2845. Humanoid.UseJumpPower = true
  2846. Humanoid.JumpPower = tonumber(Args[1]) or 50
  2847. return "your jumppower is now " .. Humanoid.JumpPower
  2848. end)
  2849.  
  2850. AddCommand("hipheight", {"hh"}, "changes your hipheight to the second argument", {}, function(Caller, Args, CEnv)
  2851. local Humanoid = GetHumanoid();
  2852. CEnv[1] = Humanoid.HipHeight
  2853. SpoofProperty(Humanoid, "HipHeight");
  2854. Humanoid.HipHeight = tonumber(Args[1]) or 0
  2855. return "your hipheight is now " .. Humanoid.HipHeight
  2856. end)
  2857.  
  2858. _L.KillCam = {};
  2859. AddCommand("kill", {"tkill"}, "kills someone", {"1", 1, 3}, function(Caller, Args)
  2860. local Target = GetPlayer(Args[1]);
  2861. local OldPos = GetRoot().CFrame
  2862. local Humanoid = ReplaceHumanoid();
  2863. local TempRespawnTimes = {}
  2864. for i, v in next, Target do
  2865. TempRespawnTimes[v.Name] = RespawnTimes[LocalPlayer.Name] <= RespawnTimes[v.Name]
  2866. end
  2867. local Character = GetCharacter();
  2868. for i, v in next, Target do
  2869. if (#Target == 1 and TempRespawnTimes[v.Name] and isR6(v)) then
  2870. Destroy(Character);
  2871. Character = CWait(LocalPlayer.CharacterAdded);
  2872. WaitForChild(Character, "Humanoid");
  2873. wait()
  2874. Humanoid = ReplaceHumanoid();
  2875. end
  2876. end
  2877. if (Character.Animate) then
  2878. Character.Animate.Disabled = true
  2879. end
  2880. UnequipTools(Humanoid);
  2881.  
  2882. local TChar;
  2883. CThread(function()
  2884. for i = 1, #Target do
  2885. local v = Target[i]
  2886. TChar = GetCharacter(v);
  2887. if (TChar) then
  2888. if (isSat(v)) then
  2889. if (#Target == 1) then
  2890. Utils.Notify(Caller or LocalPlayer, nil, v.Name .. " is sitting down, could not kill");
  2891. end
  2892. continue
  2893. end
  2894. local TargetRoot = GetRoot(v);
  2895. if (not TargetRoot) then
  2896. continue
  2897. end
  2898. if (RespawnTimes[LocalPlayer.Name] <= RespawnTimes[v.Name] and isR6(v)) then
  2899. continue
  2900. end
  2901.  
  2902. local Tool = GetCorrectToolWithHandle();
  2903. if (not Tool) then
  2904. continue
  2905. end
  2906. Tool.Parent = Character
  2907. Tool.Handle.Size = Vector3New(4, 4, 4);
  2908. CFrameTool(Tool, TargetRoot.CFrame);
  2909. firetouchinterest(TargetRoot, Tool.Handle, 0);
  2910. firetouchinterest(TargetRoot, Tool.Handle, 1);
  2911. else
  2912. Utils.Notify(Caller or LocalPlayer, "Fail", v.Name .. " is dead or does not have a root part, could not kill.");
  2913. end
  2914. end
  2915. end)()
  2916. ChangeState(Humanoid, 15);
  2917. if (_L.KillCam and #Target == 1 and TChar) then
  2918. Camera.CameraSubject = TChar
  2919. end
  2920. wait(.3);
  2921. Destroy(Character);
  2922. Character = CWait(LocalPlayer.CharacterAdded);
  2923. WaitForChild(Character, "HumanoidRootPart").CFrame = OldPos
  2924. end)
  2925.  
  2926. AddCommand("kill2", {}, "another variant of kill", {1, "1"}, function(Caller, Args)
  2927. local Target = GetPlayer(Args[1]);
  2928. local TempRespawnTimes = {}
  2929. for i, v in next, Target do
  2930. TempRespawnTimes[v.Name] = RespawnTimes[LocalPlayer.Name] <= RespawnTimes[v.Name]
  2931. end
  2932. local Humanoid = FindFirstChildWhichIsA(GetCharacter(), "Humanoid");
  2933. ReplaceCharacter();
  2934. wait(Players.RespawnTime - (#Target == 1 and .05 or .09)); -- this really kinda depends on ping
  2935. local OldPos = GetRoot().CFrame
  2936. Humanoid2 = ReplaceHumanoid(Humanoid);
  2937. for i, v in next, Target do
  2938. if (#Target == 1 and TempRespawnTimes[v.Name] and isR6(v)) then
  2939. CWait(LocalPlayer.CharacterAdded);
  2940. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos
  2941. wait(.1);
  2942. Humanoid2 = ReplaceHumanoid();
  2943. end
  2944. end
  2945.  
  2946. UnequipTools(Humanoid);
  2947. local Destroy_;
  2948. CThread(function()
  2949. for i = 1, #Target do
  2950. local v = Target[i]
  2951. if (GetCharacter(v)) then
  2952. if (isSat(v)) then
  2953. Utils.Notify(Caller or LocalPlayer, nil, v.Name .. " is sitting down, could not kill");
  2954. continue
  2955. end
  2956. if (TempRespawnTimes[v.Name] and isR6(v)) then
  2957. if (#Target == 1) then
  2958. Destroy_ = true
  2959. else
  2960. continue
  2961. end
  2962. end
  2963. local TargetRoot = GetRoot(v);
  2964. if (not TargetRoot) then
  2965. continue
  2966. end
  2967. local Tool = GetCorrectToolWithHandle();
  2968. if (not Tool) then
  2969. continue
  2970. end
  2971. Tool.Parent = GetCharacter();
  2972. Tool.Handle.Size = Vector3New(4, 4, 4);
  2973. CFrameTool(Tool, TargetRoot.CFrame * CFrameNew(0, 3, 0));
  2974. firetouchinterest(TargetRoot, Tool.Handle, 0);
  2975. wait();
  2976. if (not FindFirstChild(Tool, "Handle")) then
  2977. continue
  2978. end
  2979. firetouchinterest(TargetRoot, Tool.Handle, 1);
  2980. else
  2981. Utils.Notify(Caller or LocalPlayer, "Fail", v.Name .. " is dead or does not have a root part, could not kill.");
  2982. end
  2983. end
  2984. end)()
  2985. ChangeState(Humanoid2, 15);
  2986. if (Destroy_) then
  2987. wait(.2);
  2988. ReplaceCharacter();
  2989. end
  2990. CWait(LocalPlayer.CharacterAdded);
  2991. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos
  2992. end)
  2993.  
  2994. AddCommand("loopkill", {}, "loopkill loopkills a character", {3,"1"}, function(Caller, Args, CEnv)
  2995. local Target = GetPlayer(Args[1]);
  2996. for i, v in next, Target do
  2997. CEnv[#CEnv + 1] = v
  2998. end
  2999. repeat
  3000. local Character, Humanoid = GetCharacter(), GetHumanoid();
  3001. UnequipTools(Humanoid);
  3002. DisableAnimate();
  3003. Humanoid = ReplaceHumanoid(Humanoid);
  3004. ChangeState(Humanoid, 15);
  3005. if (isR6(Target[1])) then
  3006. Utils.Notify(LocalPlayer, "Loopkill", "the player is in r6 it will only kill every 2 respawns")
  3007. end
  3008. for i = 1, #Target do
  3009. local v = Target[i]
  3010. local TargetRoot = GetRoot(v)
  3011. local Children = GetChildren(LocalPlayer.Backpack);
  3012. for i2 = 1, #Children do
  3013. local v2 = Children[i2]
  3014. if (IsA(v2, "Tool")) then
  3015. SpoofInstance(v);
  3016. v2.Parent = GetCharacter();
  3017. local OldSize = v2.Handle.Size
  3018. for i3 = 1, 3 do
  3019. if (TargetRoot) then
  3020. firetouchinterest(TargetRoot, v2.Handle, 0);
  3021. wait();
  3022. firetouchinterest(TargetRoot, v2.Handle, 1);
  3023. end
  3024. end
  3025. v2.Handle.Size = OldSize
  3026. end
  3027. end
  3028. end
  3029. wait(.2);
  3030. Destroy(LocalPlayer.Character);
  3031. CWait(LocalPlayer.CharacterAdded);
  3032. WaitForChild(LocalPlayer.Character, "HumanoidRootPart");
  3033. wait(1);
  3034. until not next(LoadCommand("loopkill").CmdEnv) or not GetPlayer(Args[1])
  3035. end)
  3036.  
  3037. AddCommand("unloopkill", {"unlkill"}, "unloopkills a user", {3,"1"}, function(Caller, Args)
  3038. LoadCommand("loopkill").CmdEnv = {}
  3039. return "loopkill disabled"
  3040. end)
  3041.  
  3042. AddCommand("bring", {}, "brings a user", {1}, function(Caller, Args)
  3043. local Target = GetPlayer(Args[1]);
  3044. local Target2 = Args[2] and GetPlayer(Args[2]);
  3045. local OldPos = GetRoot(Caller).CFrame
  3046. if (Caller ~= LocalPlayer and Target[1] == LocalPlayer) then
  3047. GetRoot().CFrame = GetRoot(Caller).CFrame * CFrameNew(-5, 0, 0);
  3048. else
  3049. local TempRespawnTimes = {}
  3050. for i = 1, #Target do
  3051. local v = Target[i]
  3052. TempRespawnTimes[v.Name] = RespawnTimes[LocalPlayer.Name] <= RespawnTimes[v.Name]
  3053. end
  3054. DisableAnimate();
  3055. ReplaceHumanoid();
  3056. for i, v in next, Target do
  3057. if (#Target == 1 and TempRespawnTimes[v.Name] and isR6(v)) then
  3058. Destroy(LocalPlayer.Character);
  3059. CWait(LocalPlayer.CharacterAdded);
  3060. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos;
  3061. wait(.1);
  3062. ReplaceHumanoid();
  3063. end
  3064. end
  3065. local Target2Root = Target2 and GetRoot(Target2 and Target2[1] or nil);
  3066. for i = 1, #Target do
  3067. local v = Target[i]
  3068. if (GetCharacter(v)) then
  3069. if (isSat(v)) then
  3070. if (#Target == 1) then
  3071. Utils.Notify(Caller or LocalPlayer, nil, v.Name .. " is sitting down, could not bring");
  3072. end
  3073. continue
  3074. end
  3075. if (RespawnTimes[LocalPlayer.Name] <= RespawnTimes[v.Name] and isR6(v)) then
  3076. continue
  3077. end
  3078.  
  3079. local TargetRoot = GetRoot(v);
  3080. if (not TargetRoot) then
  3081. continue
  3082. end
  3083.  
  3084. local Tool = GetCorrectToolWithHandle();
  3085. if (not Tool) then
  3086. continue
  3087. end
  3088. Tool.Parent = GetCharacter();
  3089. Tool.Handle.Size = Vector3New(4, 4, 4);
  3090. CFrameTool(Tool, (Target2 and Target2Root.CFrame or OldPos) * CFrameNew(-5, 0, 0));
  3091. if (not syn) then
  3092. wait(.1);
  3093. end
  3094. for i2 = 1, 3 do
  3095. firetouchinterest(TargetRoot, Tool.Handle, 0);
  3096. wait();
  3097. firetouchinterest(TargetRoot, Tool.Handle, 1);
  3098. end
  3099. else
  3100. Utils.Notify(Caller or LocalPlayer, "Fail", v.Name .. " is dead or does not have a root part, could not bring.");
  3101. end
  3102. end
  3103. wait(.2);
  3104. Destroy(LocalPlayer.Character);
  3105. CWait(LocalPlayer.CharacterAdded);
  3106. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos
  3107. end
  3108. end)
  3109.  
  3110. AddCommand("bring2", {}, "another variant of bring", {1, 3, "1"}, function(Caller, Args)
  3111. local Target = GetPlayer(Args[1]);
  3112. local Target2 = Args[2] and GetPlayer(Args[2]);
  3113. local TempRespawnTimes = {}
  3114. for i, v in next, Target do
  3115. TempRespawnTimes[v.Name] = RespawnTimes[LocalPlayer.Name] <= RespawnTimes[v.Name]
  3116. end
  3117. local Humanoid = FindFirstChildWhichIsA(GetCharacter(), "Humanoid");
  3118. local Character = ReplaceCharacter();
  3119. wait(Players.RespawnTime - (#Target == 1 and .2 or .3));
  3120. local OldPos = GetRoot().CFrame
  3121. DisableAnimate();
  3122. local Humanoid2 = ReplaceHumanoid(Humanoid);
  3123. for i, v in next, Target do
  3124. if (#Target == 1 and TempRespawnTimes[v.Name]) then
  3125. Character = CWait(LocalPlayer.CharacterAdded);
  3126. WaitForChild(Character, "HumanoidRootPart").CFrame = OldPos
  3127. wait(.1);
  3128. Humanoid2 = ReplaceHumanoid();
  3129. end
  3130. end
  3131. local Target2Root = Target2 and GetRoot(Target2 and Target2[1] or nil);
  3132. local Destroy_;
  3133. CThread(function()
  3134. for i, v in next, Target do
  3135. if (GetCharacter(v)) then
  3136. if (isSat(v)) then
  3137. Utils.Notify(Caller or LocalPlayer, nil, v.Name .. " is sitting down, could not bring");
  3138. continue
  3139. end
  3140.  
  3141. if (TempRespawnTimes[v.Name]) then
  3142. if (#Target == 1) then
  3143. Destroy_ = true
  3144. else
  3145. continue
  3146. end
  3147. end
  3148. local TargetRoot = GetRoot(v);
  3149. local Tool = GetCorrectToolWithHandle();
  3150. if (not Tool) then
  3151. continue
  3152. end
  3153. Tool.Parent = Character
  3154. Tool.Handle.Size = Vector3New(4, 4, 4);
  3155. CFrameTool(Tool, (Target2 and Target2Root.CFrame or OldPos) * CFrameNew(-5, 0, 0));
  3156. if (not syn) then
  3157. wait(.1);
  3158. end
  3159. for i2 = 1, 3 do
  3160. firetouchinterest(TargetRoot, Tool.Handle, 0);
  3161. wait()
  3162. firetouchinterest(TargetRoot, Tool.Handle, 1);
  3163. end
  3164. else
  3165. Utils.Notify(Caller or LocalPlayer, "Fail", v.Name .. " is dead or does not have a root part, could not bring.");
  3166. end
  3167. end
  3168. end)()
  3169. if (Destroy_) then
  3170. wait(.2);
  3171. GetRoot().CFrame = CFrameNew(0, Services.Workspace.FallenPartsDestroyHeight + 50, 0);
  3172. Destroy(Character);
  3173. end
  3174. Character = CWait(LocalPlayer.CharacterAdded);
  3175. WaitForChild(Character, "HumanoidRootPart").CFrame = OldPos
  3176. end)
  3177.  
  3178. AddCommand("void", {"kill3"}, "voids a user", {1,"1"}, function(Caller, Args)
  3179. local Target = GetPlayer(Args[1]);
  3180. local Target2 = Args[2] and GetPlayer(Args[2]);
  3181. local OldPos = GetRoot(Caller).CFrame
  3182.  
  3183. local TempRespawnTimes = {}
  3184. for i = 1, #Target do
  3185. local v = Target[i]
  3186. TempRespawnTimes[v.Name] = RespawnTimes[LocalPlayer.Name] <= RespawnTimes[v.Name]
  3187. end
  3188. DisableAnimate();
  3189. ReplaceHumanoid();
  3190. for i, v in next, Target do
  3191. if (#Target == 1 and TempRespawnTimes[v.Name] and isR6(v)) then
  3192. Destroy(LocalPlayer.Character);
  3193. CWait(LocalPlayer.CharacterAdded);
  3194. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos;
  3195. wait(.1);
  3196. ReplaceHumanoid();
  3197. end
  3198. end
  3199. local Target2Root = Target2 and GetRoot(Target2 and Target2[1] or nil);
  3200. for i = 1, #Target do
  3201. local v = Target[i]
  3202. if (GetCharacter(v)) then
  3203. if (isSat(v)) then
  3204. if (#Target == 1) then
  3205. Utils.Notify(Caller or LocalPlayer, nil, v.Name .. " is sitting down, could not bring");
  3206. end
  3207. continue
  3208. end
  3209. if (RespawnTimes[LocalPlayer.Name] <= RespawnTimes[v.Name] and isR6(v)) then
  3210. continue
  3211. end
  3212.  
  3213. local TargetRoot = GetRoot(v);
  3214. if (not TargetRoot) then
  3215. continue
  3216. end
  3217.  
  3218. local Tool = GetCorrectToolWithHandle();
  3219. if (not Tool) then
  3220. continue
  3221. end
  3222. Tool.Parent = GetCharacter();
  3223. Tool.Handle.Size = Vector3New(4, 4, 4);
  3224. CFrameTool(Tool, (Target2 and Target2Root.CFrame or OldPos) * CFrameNew(-5, 0, 0));
  3225. if (not syn) then
  3226. wait(.1);
  3227. end
  3228. for i2 = 1, 3 do
  3229. firetouchinterest(TargetRoot, Tool.Handle, 0);
  3230. wait();
  3231. firetouchinterest(TargetRoot, Tool.Handle, 1);
  3232. end
  3233. else
  3234. Utils.Notify(Caller or LocalPlayer, "Fail", v.Name .. " is dead or does not have a root part, could not bring.");
  3235. end
  3236. end
  3237. for i = 1, 3 do
  3238. GetRoot().CFrame = CFrameNew(0, Services.Workspace.FallenPartsDestroyHeight + 50, 0);
  3239. wait();
  3240. end
  3241. wait(.2);
  3242. Destroy(LocalPlayer.Character);
  3243. CWait(LocalPlayer.CharacterAdded);
  3244. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos
  3245. end)
  3246.  
  3247. AddCommand("freefall", {}, "freefalls a user", {1,"1"}, function(Caller, Args)
  3248. local Target = GetPlayer(Args[1]);
  3249. local Target2 = Args[2] and GetPlayer(Args[2]);
  3250. local OldPos = GetRoot(Caller).CFrame
  3251.  
  3252. local TempRespawnTimes = {}
  3253. for i = 1, #Target do
  3254. local v = Target[i]
  3255. TempRespawnTimes[v.Name] = RespawnTimes[LocalPlayer.Name] <= RespawnTimes[v.Name]
  3256. end
  3257. DisableAnimate();
  3258. ReplaceHumanoid();
  3259. for i, v in next, Target do
  3260. if (#Target == 1 and TempRespawnTimes[v.Name] and isR6(v)) then
  3261. Destroy(LocalPlayer.Character);
  3262. CWait(LocalPlayer.CharacterAdded);
  3263. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos;
  3264. wait(.1);
  3265. ReplaceHumanoid();
  3266. end
  3267. end
  3268. local Target2Root = Target2 and GetRoot(Target2 and Target2[1] or nil);
  3269. for i = 1, #Target do
  3270. local v = Target[i]
  3271. if (GetCharacter(v)) then
  3272. if (isSat(v)) then
  3273. if (#Target == 1) then
  3274. Utils.Notify(Caller or LocalPlayer, nil, v.Name .. " is sitting down, could not bring");
  3275. end
  3276. continue
  3277. end
  3278. if (RespawnTimes[LocalPlayer.Name] <= RespawnTimes[v.Name] and isR6(v)) then
  3279. continue
  3280. end
  3281.  
  3282. local TargetRoot = GetRoot(v);
  3283. if (not TargetRoot) then
  3284. continue
  3285. end
  3286.  
  3287. local Tool = GetCorrectToolWithHandle();
  3288. if (not Tool) then
  3289. continue
  3290. end
  3291. Tool.Parent = GetCharacter();
  3292. Tool.Handle.Size = Vector3New(4, 4, 4);
  3293. CFrameTool(Tool, (Target2 and Target2Root.CFrame or OldPos) * CFrameNew(-5, 0, 0));
  3294. if (not syn) then
  3295. wait(.1);
  3296. end
  3297. for i2 = 1, 3 do
  3298. firetouchinterest(TargetRoot, Tool.Handle, 0);
  3299. wait();
  3300. firetouchinterest(TargetRoot, Tool.Handle, 1);
  3301. end
  3302. else
  3303. Utils.Notify(Caller or LocalPlayer, "Fail", v.Name .. " is dead or does not have a root part, could not bring.");
  3304. end
  3305. end
  3306. local Root = GetRoot();
  3307. local RootPos = Root.Position
  3308. for i = 1, 3 do
  3309. Root.Position = Vector3New(RootPos.X, RootPos.Y + 1000, RootPos.Z);
  3310. wait();
  3311. end
  3312. wait(.2);
  3313. Destroy(LocalPlayer.Character);
  3314. CWait(LocalPlayer.CharacterAdded);
  3315. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos
  3316. end)
  3317.  
  3318. AddCommand("view", {"v"}, "views a user", {3,"1"}, function(Caller, Args, CEnv)
  3319. local Target = GetPlayer(Args[1]);
  3320. if (#Target ~= 1) then
  3321. return "you can only view 1 person"
  3322. end
  3323. Target = Target[1]
  3324. Camera.CameraSubject = GetCharacter(Target) or GetCharacter();
  3325. AddConnection(CConnect(Target.CharacterAdded, function()
  3326. CWait(Heartbeat);
  3327. Camera.CameraSubject = Target.Character
  3328. end), CEnv);
  3329. AddConnection(CConnect(LocalPlayer.CharacterAdded, function()
  3330. WaitForChild(LocalPlayer.Character, "Humanoid");
  3331. CWait(Camera.CameraSubject.Changed);
  3332. CWait(Heartbeat);
  3333. Camera.CameraSubject = Target.Character
  3334. end), CEnv);
  3335. return "viewing " .. Target.Name
  3336. end)
  3337.  
  3338. AddCommand("unview", {"unv"}, "unviews a user", {3}, function(Caller, Args)
  3339. DisableAllCmdConnections("view");
  3340. Camera.CameraSubject = GetCharacter();
  3341. return "unviewing"
  3342. end)
  3343.  
  3344. AddCommand("invisible", {"invis"}, "makes yourself invisible", {3}, function(Caller, Args, CEnv)
  3345. local Root = GetRoot();
  3346. local OldPos = Root.CFrame
  3347. local Seat = InstanceNew("Seat");
  3348. local Weld = InstanceNew("Weld");
  3349. Root.CFrame = CFrameNew(9e9, 9e9, 9e9);
  3350. wait(.2);
  3351. Root.Anchored = true
  3352. ProtectInstance(Seat);
  3353. Seat.Parent = Services.Workspace
  3354. Seat.CFrame = Root.CFrame
  3355. Seat.Anchored = false
  3356. Weld.Parent = Seat
  3357. Weld.Part0 = Seat
  3358. Weld.Part1 = Root
  3359. Root.Anchored = false
  3360. Seat.CFrame = OldPos
  3361. CEnv.Seat = Seat
  3362. CEnv.Weld = Weld
  3363. for i, v in next, GetChildren(Root.Parent) do
  3364. if (IsA(v, "BasePart") or IsA(v, "MeshPart") or IsA(v, "Part")) then
  3365. CEnv[v] = v.Transparency
  3366. v.Transparency = v.Transparency <= 0.3 and 0.4 or v.Transparency
  3367. elseif (IsA(v, "Accessory")) then
  3368. local Handle = FindFirstChildWhichIsA(v, "MeshPart") or FindFirstChildWhichIsA(v, "Part");
  3369. if (Handle) then
  3370. CEnv[Handle] = Handle.Transparency
  3371. Handle.Transparency = Handle.Transparency <= 0.3 and 0.4 or Handle.Transparency
  3372. end
  3373. end
  3374. end
  3375. return "you are now invisible"
  3376. end)
  3377.  
  3378. AddCommand("uninvisible", {"uninvis", "noinvis", "visible", "vis"}, "gives you back visiblity", {3}, function(Caller, Args, CEnv)
  3379. local CmdEnv = LoadCommand("invisible").CmdEnv
  3380. local Seat = CmdEnv.Seat
  3381. local Weld = CmdEnv.Weld
  3382. if (Seat and Weld) then
  3383. Weld.Part0 = nil
  3384. Weld.Part1 = nil
  3385. Destroy(Seat);
  3386. Destroy(Weld);
  3387. CmdEnv.Seat = nil
  3388. CmdEnv.Weld = nil
  3389. for i, v in next, CmdEnv do
  3390. if (type(v) == 'number') then
  3391. i.Transparency = v
  3392. end
  3393. end
  3394. return "you are now visible"
  3395. end
  3396. return "you are already visible"
  3397. end)
  3398.  
  3399. AddCommand("dupetools", {"dp"}, "dupes your tools", {"1", 1, {"protect"}}, function(Caller, Args, CEnv)
  3400. local Amount = tonumber(Args[1])
  3401. local Protected = Args[2] == "protect"
  3402. if (not Amount) then
  3403. return "amount must be a number"
  3404. end
  3405.  
  3406. CEnv[1] = true
  3407. local AmountDuped = 0
  3408. local Timer = (Players.RespawnTime * Amount) + (Amount * .4) + 1
  3409. local Notification = Utils.Notify(Caller, "Duping Tools", format("%d/%d tools duped. %d seconds left", AmountDuped, Amount, Timer), Timer);
  3410. CThread(function()
  3411. for i = 1, Timer do
  3412. if (not LoadCommand("dupetools").CmdEnv[1]) then
  3413. do break end;
  3414. end
  3415. wait(1);
  3416. Timer = Timer - 1
  3417. Notification.Message.Text = format("%d/%d tools duped. %d seconds left", AmountDuped, Amount, Timer)
  3418. end
  3419. end)()
  3420.  
  3421.  
  3422. local ToolAmount = #filter(GetChildren(LocalPlayer.Backpack), function(i, v)
  3423. return IsA(v, "Tool");
  3424. end)
  3425. local Duped = {}
  3426. local Humanoid = GetHumanoid();
  3427. UnequipTools(Humanoid);
  3428. local Connection = AddConnection(CConnect(GetCharacter().ChildAdded, function(Added)
  3429. wait(.4);
  3430. if (IsA(Added, "Tool")) then
  3431. Added.Parent = LocalPlayer.Backpack
  3432. end
  3433. end), CEnv);
  3434. for i = 1, Amount do
  3435. if (not LoadCommand("dupetools").CmdEnv[1]) then
  3436. do break end;
  3437. end
  3438. ReplaceCharacter();
  3439. local OldPos
  3440. if (Protected) then
  3441. local OldFallen = Services.Workspace.FallenPartsDestroyHeight
  3442. delay(Players.RespawnTime - .3, function()
  3443. Services.Workspace.FallenPartsDestroyHeight = -math.huge
  3444. OldPos = GetRoot().CFrame
  3445. GetRoot().CFrame = CFrameNew(0, 1e9, 0);
  3446. GetRoot().Anchored = true
  3447. end)
  3448. end
  3449. UnequipTools(Humanoid);
  3450. wait(Players.RespawnTime - .05);
  3451. OldPos = OldPos or GetRoot().CFrame
  3452. Humanoid = ReplaceHumanoid(Humanoid);
  3453. local Tools = filter(GetChildren(LocalPlayer.Backpack), function(i, v)
  3454. return IsA(v, "Tool");
  3455. end)
  3456.  
  3457. for i2, v in next, Tools do
  3458. v.Parent = LocalPlayer.Character
  3459. v.Parent = Services.Workspace
  3460. Duped[#Duped + 1] = v
  3461. end
  3462. local Char = CWait(LocalPlayer.CharacterAdded);
  3463. WaitForChild(Char, "HumanoidRootPart").CFrame = OldPos;
  3464.  
  3465. for i2, v in next, Duped do
  3466. if (v.Handle) then
  3467. firetouchinterest(v.Handle, GetRoot(), 0);
  3468. firetouchinterest(v.Handle, GetRoot(), 1);
  3469. end
  3470. end
  3471. repeat CWait(RenderStepped);
  3472. FindFirstChild(Char, "HumanoidRootPart").CFrame = OldPos
  3473. until GetRoot().CFrame == OldPos
  3474.  
  3475. repeat CWait(RenderStepped);
  3476. Humanoid = FindFirstChild(Char, "Humanoid")
  3477. until Humanoid
  3478. wait(.4);
  3479. UnequipTools(Humanoid);
  3480. AmountDuped = AmountDuped + 1
  3481. end
  3482. Disconnect(Connection);
  3483. return format("successfully duped %d tool (s)", #GetChildren(LocalPlayer.Backpack) - ToolAmount);
  3484. end)
  3485.  
  3486. AddCommand("dupetools2", {"rejoindupe", "dupe2"}, "sometimes a faster dupetools", {1,"1"}, function(Caller, Args)
  3487. local Amount = tonumber(Args[1])
  3488. if (not Amount) then
  3489. return "amount must be a number"
  3490. end
  3491. local queue_on_teleport = syn and syn.queue_on_teleport or queue_on_teleport
  3492. if (not queue_on_teleport) then
  3493. return "exploit not supported"
  3494. end
  3495. local Root, Humanoid = GetRoot(), GetHumanoid();
  3496. local OldPos = Root.CFrame
  3497. Root.CFrame = CFrameNew(0, 2e5, 0);
  3498. UnequipTools(Humanoid);
  3499.  
  3500. local Tools = filter(GetChildren(LocalPlayer.Backpack), function(i, v)
  3501. return IsA(v, "Tool");
  3502. end)
  3503.  
  3504. local Char, Workspace, ReplicatedStorage = GetCharacter(), Services.Workspace, Services.ReplicatedStorage
  3505. for i, v in next, Tools do
  3506. v.Parent = Char
  3507. v.Parent = Workspace
  3508. end
  3509. writefile("fates-admin/tooldupe.txt", tostring(Amount - 1));
  3510. writefile("fates-admin/tooldupe.lua", format([[
  3511. local OldPos = CFrame.new(%s);
  3512. local DupeAmount = tonumber(readfile("fates-admin/tooldupe.txt"));
  3513. local game = game
  3514. local GetService = game.GetService
  3515. local Players = GetService(game, "Players");
  3516. local Workspace = GetService(game, "Workspace");
  3517. local ReplicatedFirst = GetService(game, "ReplicatedFirst");
  3518. local TeleportService = GetService(game, "TeleportService");
  3519. ReplicatedFirst.SetDefaultLoadingGuiRemoved(ReplicatedFirst);
  3520. local WaitForChild, GetChildren, IsA = game.WaitForChild, game.GetChildren, game.IsA
  3521. local LocalPlayer = Players.LocalPlayer
  3522. if (not LocalPlayer) then
  3523. repeat wait(); LocalPlayer = Players.LocalPlayer until LocalPlayer
  3524. end
  3525. local Char = LocalPlayer.CharacterAdded.Wait(LocalPlayer.CharacterAdded);
  3526. local RootPart = WaitForChild(Char, "HumanoidRootPart");
  3527. if (DupeAmount <= 1) then
  3528. for i, v in next, GetChildren(Workspace) do
  3529. if (IsA(v, "Tool")) then
  3530. local Handle = WaitForChild(v, "Handle", .5);
  3531. if (Handle) then
  3532. firetouchinterest(Handle, RootPart, 0);
  3533. firetouchinterest(Handle, RootPart, 1);
  3534. end
  3535. end
  3536. end
  3537. delfile("fates-admin/tooldupe.txt");
  3538. delfile("fates-admin/tooldupe.lua");
  3539. loadstring(game.HttpGet(game, "https://raw.githubusercontent.com/fatesc/fates-admin/main/main.lua"))();
  3540. RootPart.CFrame = OldPos
  3541. repeat wait() RootPart.CFrame = OldPos until RootPart.CFrame == OldPos
  3542. getgenv().F_A.PluginLibrary.ExecuteCommand("dp", {"1"}, LocalPlayer);
  3543. else
  3544. RootPart.CFrame = CFrame.new(0, 2e5, 0);
  3545. wait(.3);
  3546. for i, v in next, GetChildren(LocalPlayer.Backpack) do
  3547. v.Parent = Char
  3548. v.Parent = Workspace
  3549. end
  3550. writefile("fates-admin/tooldupe.txt", tostring(DupeAmount - 1));
  3551. local queue_on_teleport = syn and syn.queue_on_teleport or queue_on_teleport
  3552. queue_on_teleport(readfile("fates-admin/tooldupe.lua"));
  3553. TeleportService.TeleportToPlaceInstance(TeleportService, game.PlaceId, game.JobId);
  3554. end
  3555. ]], tostring(OldPos)));
  3556. local TeleportService = Services.TeleportService
  3557. queue_on_teleport(readfile("fates-admin/tooldupe.lua"));
  3558. TeleportService.TeleportToPlaceInstance(TeleportService, game.PlaceId, game.JobId);
  3559. end)
  3560.  
  3561. AddCommand("stopdupe", {}, "stops the dupe", {}, function()
  3562. local Dupe = LoadCommand("dupetools").CmdEnv
  3563. if (not next(Dupe)) then
  3564. return "you are not duping tools"
  3565. end
  3566. LoadCommand("dupetools").CmdEnv[1] = false
  3567. DisableAllCmdConnections("dupetools");
  3568. return "dupetools stopped"
  3569. end)
  3570.  
  3571. AddCommand("savetools", {"st"}, "saves your tools", {1,3}, function(Caller, Args)
  3572. UnequipTools(GetHumanoid());
  3573. local Tools = GetChildren(LocalPlayer.Backpack);
  3574. local Char = GetCharacter();
  3575. for i, v in next, Tools do
  3576. SpoofProperty(v, "Parent");
  3577. v.Parent = Char
  3578. v.Parent = Services.Workspace
  3579. firetouchinterest(WaitForChild(Services.Workspace, v.Name).Handle, GetRoot(), 0);
  3580. wait();
  3581. firetouchinterest(v.Handle, GetRoot(), 1);
  3582. WaitForChild(Char, v.Name).Parent = LocalPlayer.Backpack
  3583. end
  3584. Utils.Notify(Caller, nil, "Tools are now saved");
  3585. CWait(GetHumanoid().Died);
  3586. UnequipTools(GetHumanoid());
  3587. Tools = GetChildren(LocalPlayer.Backpack);
  3588. wait(Players.RespawnTime - wait()); -- * #Tools);
  3589. for i, v in next, Tools do
  3590. if (IsA(v, "Tool") and FindFirstChild(v, "Handle")) then
  3591. v.Parent = Char
  3592. v.Parent = Services.Workspace
  3593. end
  3594. end
  3595. CWait(LocalPlayer.CharacterAdded);
  3596. WaitForChild(LocalPlayer.Character, "HumanoidRootPart");
  3597. for i, v in next, Tools do
  3598. firetouchinterest(v.Handle, GetRoot(), 0);
  3599. wait();
  3600. firetouchinterest(v.Handle, GetRoot(), 1);
  3601. end
  3602. return "tools recovered??"
  3603. end)
  3604.  
  3605. AddCommand("givetools", {}, "gives all of your tools to a player", {3,1,"1"}, function(Caller, Args)
  3606. local Target = GetPlayer(Args[1]);
  3607. local Root = GetRoot();
  3608. local OldPos = Root.CFrame
  3609. local Humanoid = FindFirstChildOfClass(LocalPlayer.Character, "Humanoid");
  3610. Humanoid.Name = "1"
  3611. local Humanoid2 = Clone(Humanoid);
  3612. Humanoid2.Parent = LocalPlayer.Character
  3613. Humanoid2.Name = "Humanoid"
  3614. Services.Workspace.Camera.CameraSubject = Humanoid2
  3615. wait()
  3616. Destroy(Humanoid);
  3617. local Char = GetCharacter();
  3618. for i, v in next, Target do
  3619. local TRoot = GetRoot(v);
  3620. for i2, v2 in next, GetChildren(LocalPlayer.Backpack) do
  3621. if (IsA(v2, "Tool")) then
  3622. v2.Parent = GetCharacter();
  3623. CFrameTool(v2, TRoot.CFrame);
  3624. local Handle = v2.Handle
  3625. for i3 = 1, 3 do
  3626. if (TRoot and Handle) then
  3627. firetouchinterest(TRoot, Handle, 1);
  3628. firetouchinterest(TRoot, Handle, 1);
  3629. end
  3630. end
  3631. end
  3632. end
  3633. end
  3634. wait(.2);
  3635. Destroy(Char);
  3636. Char = CWait(LocalPlayer.CharacterAdded);
  3637. WaitForChild(Char, "HumanoidRootPart").CFrame = OldPos
  3638. end)
  3639.  
  3640. AddCommand("givetool", {}, "gives your tool(s) to a player", {3,1,"1"}, function(Caller, Args)
  3641. local Target = GetPlayer(Args[1]);
  3642. local ToolAmount = tonumber(Args[2]) or 1
  3643. local Root = GetRoot();
  3644. local OldPos = Root.CFrame
  3645. local Humanoid = FindFirstChildOfClass(LocalPlayer.Character, "Humanoid");
  3646. Humanoid.Name = "1"
  3647. local Humanoid2 = Clone(Humanoid);
  3648. Humanoid2.Parent = LocalPlayer.Character
  3649. Humanoid2.Name = "Humanoid"
  3650. Services.Workspace.Camera.CameraSubject = Humanoid2
  3651. wait()
  3652. Destroy(Humanoid);
  3653. UnequipTools(Humanoid2);
  3654. local Char = GetCharacter();
  3655. for i, v in next, Target do
  3656. local TRoot = GetRoot(v);
  3657. local Tools = GetChildren(LocalPlayer.Backpack);
  3658. for i2, v2 in next, Tools do
  3659. if (IsA(v2, "Tool")) then
  3660. v2.Parent = GetCharacter();
  3661. CFrameTool(v2, TRoot.CFrame);
  3662. local Handle = v2.Handle
  3663. for i3 = 1, 3 do
  3664. if (TRoot and Handle) then
  3665. firetouchinterest(TRoot, Handle, 1);
  3666. firetouchinterest(TRoot, Handle, 1);
  3667. end
  3668. end
  3669. end
  3670. if (i2 == ToolAmount) then
  3671. break
  3672. end
  3673. end
  3674. end
  3675. wait(.2);
  3676. Destroy(Char);
  3677. Char = CWait(LocalPlayer.CharacterAdded);
  3678. WaitForChild(Char, "HumanoidRootPart").CFrame = OldPos
  3679. end)
  3680.  
  3681. AddCommand("grabtools", {"gt"}, "grabs tools in the workspace", {3}, function(Caller, Args)
  3682. local Tools = filter(GetDescendants(Services.Workspace), function(i,v)
  3683. return IsA(v, "Tool") and FindFirstChild(v, "Handle");
  3684. end)
  3685. UnequipTools(GetHumanoid());
  3686. local ToolAmount = #GetChildren(LocalPlayer.Backpack);
  3687. for i, v in next, Tools do
  3688. if (v.Handle) then
  3689. firetouchinterest(v.Handle, GetRoot(), 0);
  3690. wait();
  3691. firetouchinterest(v.Handle, GetRoot(), 1);
  3692. end
  3693. end
  3694. wait(.4);
  3695. UnequipTools(GetHumanoid());
  3696. return format(("grabbed %d tool (s)"), #GetChildren(LocalPlayer.Backpack) - ToolAmount)
  3697. end)
  3698.  
  3699. AddCommand("autograbtools", {"agt", "loopgrabtools", "lgt"}, "once a tool is added to workspace it will be grabbed", {3}, function(Caller, Args, CEnv)
  3700. AddConnection(CConnect(Services.Workspace.ChildAdded, function(Child)
  3701. if (IsA(Child, "Tool") and FindFirstChild(Child, "Handle")) then
  3702. firetouchinterest(Child.Handle, GetRoot(), 0);
  3703. wait();
  3704. firetouchinterest(Child.Handle, GetRoot(), 1);
  3705. UnequipTools(GetHumanoid());
  3706. end
  3707. end), CEnv)
  3708. return "tools will be grabbed automatically"
  3709. end)
  3710.  
  3711. AddCommand("unautograbtools", {"unloopgrabtools"}, "stops autograbtools", {}, function()
  3712. DisableAllCmdConnections("autograbtools");
  3713. return "auto grabtools disabled"
  3714. end)
  3715.  
  3716. AddCommand("droptools", {"dt"}, "drops all of your tools", {1,3}, function()
  3717. UnequipTools(GetHumanoid());
  3718. local Tools = GetChildren(LocalPlayer.Backpack);
  3719. for i, v in next, Tools do
  3720. if (IsA(v, "Tool") and FindFirstChild(v, "Handle")) then
  3721. SpoofProperty(v, "Parent");
  3722. v.Parent = GetCharacter();
  3723. v.Parent = Services.Workspace
  3724. end
  3725. end
  3726. return format(("dropped %d tool (s)"), #Tools);
  3727. end)
  3728.  
  3729. AddCommand("nohats", {"nh"}, "removes all the hats from your character", {3}, function()
  3730. local Humanoid = GetHumanoid();
  3731. local HatAmount = #GetAccessories(Humanoid);
  3732. for i, v in next, GetAccessories(Humanoid) do
  3733. Destroy(v);
  3734. end
  3735. return format(("removed %d hat (s)"), HatAmount - #GetAccessories(Humanoid));
  3736. end)
  3737.  
  3738. AddCommand("clearhats", {"ch"}, "clears all of the hats in workspace", {3}, function()
  3739. local Humanoid = GetHumanoid();
  3740. for i, v in next, GetAccessories(Humanoid) do
  3741. Destroy(v);
  3742. end
  3743. local Amount = 0
  3744. for i, v in next, GetChildren(Services.Workspace) do
  3745. if (IsA(v, "Accessory") and FindFirstChild(v, "Handle")) then
  3746. firetouchinterest(v.Handle, GetRoot(), 0);
  3747. wait();
  3748. firetouchinterest(v.Handle, GetRoot(), 1);
  3749. Destroy(WaitForChild(GetCharacter(), v.Name));
  3750. Amount = Amount + 1
  3751. end
  3752. end
  3753. return format(("cleared %d hat (s)"), Amount);
  3754. end)
  3755.  
  3756. AddCommand("gravity", {"grav"}, "sets the worksapaces gravity", {"1"}, function(Caller, Args)
  3757. SpoofProperty(Services.Workspace, "Gravity");
  3758. Services.Workspace.Gravity = tonumber(Args[1]) or Services.Workspace.Gravity
  3759. end)
  3760.  
  3761. AddCommand("nogravity", {"nograv", "ungravity"}, "removes the gravity", {}, function()
  3762. Services.Workspace.Gravity = 192
  3763. end)
  3764.  
  3765. AddCommand("chatmute", {"cmute"}, "mutes a player in your chat", {"1"}, function(Caller, Args)
  3766. local Target = GetPlayer(Args[1]);
  3767. local MuteRequest = Services.ReplicatedStorage.DefaultChatSystemChatEvents.MutePlayerRequest
  3768. for i, v in next, Target do
  3769. MuteRequest.InvokeServer(MuteRequest, v.Name);
  3770. Utils.Notify(Caller, "Command", format("%s is now muted on your chat", v.Name));
  3771. end
  3772. end)
  3773.  
  3774. AddCommand("unchatmute", {"uncmute"}, "unmutes a player in your chat", {"1"}, function(Caller, Args)
  3775. local Target = GetPlayer(Args[1]);
  3776. local MuteRequest = Services.ReplicatedStorage.DefaultChatSystemChatEvents.UnMutePlayerRequest
  3777. for i, v in next, Target do
  3778. MuteRequest.InvokeServer(MuteRequest, v.Name);
  3779. Utils.Notify(Caller, "Command", format("%s is now unmuted on your chat", v.Name));
  3780. end
  3781. end)
  3782.  
  3783. AddCommand("delete", {}, "puts a players character in lighting", {"1"}, function(Caller, Args)
  3784. local Target = GetPlayer(Args[1]);
  3785. for i, v in next, Target do
  3786. if (v.Character) then
  3787. SpoofProperty(v.Character, "Parent");
  3788. v.Character.Parent = Lighting
  3789. Utils.Notify(Caller, "Command", v.Name .. "'s character is now parented to lighting");
  3790. end
  3791. end
  3792. end)
  3793.  
  3794. AddCommand("loopdelete", {"ld"}, "loop of delete command", {"1"}, function(Caller, Args, CEnv)
  3795. local Target = GetPlayer(Args[1]);
  3796. for i, v in next, Target do
  3797. if (v.Character) then
  3798. SpoofProperty(v.Character, "Parent");
  3799. v.Character.Parent = Lighting
  3800. end
  3801. local Connection = CConnect(v.CharacterAdded, function()
  3802. v.Character.Parent = Lighting
  3803. end)
  3804. CEnv[v.Name] = Connection
  3805. AddPlayerConnection(v, Connection);
  3806. end
  3807. end)
  3808.  
  3809. AddCommand("unloopdelete", {"unld"}, "unloop the loopdelete", {"1"}, function(Caller, Args)
  3810. local Target = GetPlayer(Args[1]);
  3811. local Looping = LoadCommand("loopdelete").CmdEnv
  3812. for i, v in next, Target do
  3813. if (Looping[v.Name]) then
  3814. Disconnect(Looping[v.Name]);
  3815. end
  3816. end
  3817. end)
  3818.  
  3819. AddCommand("recover", {"undelete"}, "removes a players character parented from lighting", {"1"}, function(Caller, Args)
  3820. local Target = GetPlayer(Args[1]);
  3821. for i, v in next, Target do
  3822. if (v.Character and v.Character.Parent == Lighting) then
  3823. v.Character.Parent = Services.Workspace
  3824. Utils.Notify(Caller, "Command", v.Name .. "'s character is now in workspace");
  3825. else
  3826. Utils.Notify(Caller, "Command", v.Name .. "'s character is not removed");
  3827. end
  3828. end
  3829. end)
  3830.  
  3831. AddCommand("load", {"loadstring"}, "loads whatever you want", {"1"}, function(Caller, Args)
  3832. local Code = concat(Args, " ");
  3833. local Success, Err = pcall(function()
  3834. local Func = loadstring(Code);
  3835. setfenv(Func, getrenv());
  3836. local Context;
  3837. local sett, gett = syn and syn_context_set or setidentity, syn and syn_context_get or getidentity
  3838. if (sett and gett) then
  3839. Context = gett();
  3840. sett(2);
  3841. end
  3842. Func();
  3843. if (Context and sett) then
  3844. sett(Context);
  3845. end
  3846. end)
  3847. if (not Success and Err) then
  3848. return Err
  3849. else
  3850. return Func ~= nil and tostring(Func) or "executed with no errors"
  3851. end
  3852. end)
  3853.  
  3854. AddCommand("sit", {}, "makes you sit", {3}, function(Caller, Args, CEnv)
  3855. local Humanoid = GetHumanoid();
  3856. SpoofProperty(Humanoid, "Sit", false);
  3857. Humanoid.Sit = true
  3858. return "now sitting (obviously)"
  3859. end)
  3860.  
  3861. AddCommand("infinitejump", {"infjump"}, "infinite jump no cooldown", {3}, function(Caller, Args, CEnv)
  3862. AddConnection(CConnect(Services.UserInputService.JumpRequest, function()
  3863. local Humanoid = GetHumanoid();
  3864. if (Humanoid) then
  3865. ChangeState(Humanoid, 3);
  3866. end
  3867. end), CEnv);
  3868. return "infinite jump enabled"
  3869. end)
  3870.  
  3871. AddCommand("noinfinitejump", {"uninfjump", "noinfjump"}, "removes infinite jump", {}, function()
  3872. local InfJump = LoadCommand("infjump").CmdEnv
  3873. if (not next(InfJump)) then
  3874. return "you are not infinite jumping"
  3875. end
  3876. DisableAllCmdConnections("infinitejump");
  3877. return "infinite jump disabled"
  3878. end)
  3879.  
  3880. AddCommand("headsit", {"hsit"}, "sits on the players head", {"1"}, function(Caller, Args, CEnv)
  3881. local Target = GetPlayer(Args[1]);
  3882. for i, v in next, Target do
  3883. local Humanoid = GetHumanoid();
  3884. SpoofProperty(Humanoid, "Sit");
  3885. Humanoid.Sit = true
  3886. AddConnection(CConnect(GetPropertyChangedSignal(Humanoid, "Sit"), function()
  3887. Humanoid.Sit = true
  3888. end), CEnv);
  3889. local Root = GetRoot();
  3890. AddConnection(CConnect(Heartbeat, function()
  3891. Root.CFrame = v.Character.Head.CFrame * CFrameNew(0, 0, 1);
  3892. end), CEnv);
  3893. end
  3894. end)
  3895.  
  3896. AddCommand("unheadsit", {"noheadsit"}, "unheadsits on the target", {3}, function(Caller, Args)
  3897. local Looped = LoadCommand("headsit").CmdEnv
  3898. for i, v in next, Looped do
  3899. Disconnect(v);
  3900. end
  3901. return "headsit disabled"
  3902. end)
  3903.  
  3904. AddCommand("headstand", {"hstand"}, "stands on a players head", {"1",3}, function(Caller, Args, CEnv)
  3905. local Target = GetPlayer(Args[1]);
  3906. local Root = GetRoot();
  3907. for i, v in next, Target do
  3908. local Loop = CConnect(Heartbeat, function()
  3909. Root.CFrame = v.Character.Head.CFrame * CFrameNew(0, 1, 0);
  3910. end)
  3911. CEnv[v.Name] = Loop
  3912. AddPlayerConnection(v, Loop);
  3913. end
  3914. end)
  3915.  
  3916. AddCommand("unheadstand", {"noheadstand"}, "unheadstands on the target", {3}, function(Caller, Args)
  3917. local Looped = LoadCommand("headstand").CmdEnv
  3918. for i, v in next, Looped do
  3919. Disconnect(v);
  3920. end
  3921. return "headstand disabled"
  3922. end)
  3923.  
  3924. AddCommand("setspawn", {}, "sets your spawn location to the location you are at", {3}, function(Caller, Args, CEnv)
  3925. if (CEnv[1]) then
  3926. Disconnect(CEnv[1]);
  3927. end
  3928. local Position = GetRoot().CFrame
  3929. local Spawn = CConnect(LocalPlayer.CharacterAdded, function()
  3930. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = Position
  3931. end)
  3932. CEnv[1] = Spawn
  3933. AddPlayerConnection(LocalPlayer, Spawn);
  3934. local SpawnLocation = pack(unpack(split(tostring(Position), ", "), 1, 3));
  3935. SpawnLocation.n = nil
  3936. return "spawn successfully set to " .. concat(map(SpawnLocation, function(i,v)
  3937. return tostring(round(tonumber(v)));
  3938. end), ",");
  3939. end)
  3940.  
  3941. AddCommand("removespawn", {}, "removes your spawn location", {}, function(Caller, Args)
  3942. local Spawn = LoadCommand("setspawn").CmdEnv[1]
  3943. if (Spawn) then
  3944. Disconnect(Spawn);
  3945. return "removed spawn location"
  3946. end
  3947. return "you don't have a spawn location set"
  3948. end)
  3949.  
  3950. AddCommand("ping", {}, "shows you your ping", {}, function()
  3951. local Stats = Services.Stats
  3952. local DataPing = Stats.Network.ServerStatsItem["Data Ping"]
  3953. return split(DataPing.GetValueString(DataPing), " ")[1] .. " ms"
  3954. end)
  3955.  
  3956. AddCommand("memory", {"mem"}, "shows you your memory usage", {}, function()
  3957. local Stats = Services.Stats
  3958. return tostring(round(Stats.GetTotalMemoryUsageMb(Stats))) .. " mb";
  3959. end)
  3960.  
  3961. AddCommand("fps", {"frames"}, "shows you your framerate", {}, function()
  3962. local FPS = 1 / CWait(RenderStepped);
  3963. local Counter = Utils.Notify(LocalPlayer, "FPS", round(FPS));
  3964. local Running;
  3965. delay(4.5, function()
  3966. Disconnect(Running);
  3967. end);
  3968. Running = CConnect(Heartbeat, function()
  3969. if (not Counter or not Counter.Message) then
  3970. Disconnect(Running);
  3971. end
  3972. Counter.Message.Text = round(1 / CWait(RenderStepped));
  3973. end);
  3974. end)
  3975.  
  3976. AddCommand("displaynames", {}, "enables/disables display names (on/off)", {{"on","off"}}, function(Caller, Args, CEnv)
  3977. local Option = Args[1]
  3978. local Players = Services.Players
  3979.  
  3980. local ShowName = function(v)
  3981. if (v.Name ~= v.DisplayName) then
  3982. if (v.Character) then
  3983. v.Character.Humanoid.DisplayName = v.Name
  3984. end
  3985. local Connection = CConnect(v.CharacterAdded, function()
  3986. WaitForChild(v.Character, "Humanoid").DisplayName = v.Name
  3987. end)
  3988. CEnv[v.Name] = {v.DisplayName, Connection}
  3989. AddPlayerConnection(v, Connection);
  3990. end
  3991. end
  3992. if (lower(Option) == "off") then
  3993. for i, v in next, GetPlayers(Players) do
  3994. ShowName(v);
  3995. end
  3996. AddConnection(CConnect(Players.PlayerAdded, ShowName));
  3997. return "people with a displayname displaynames will be shown"
  3998. elseif (lower(Option) == "on") then
  3999. for i, v in next, LoadCommand("displaynames").CmdEnv do
  4000. if (type(v) == 'userdata' and v.Disconnect) then
  4001. Disconnect(v);
  4002. else
  4003. if (i.Character) then
  4004. i.Character.Humanoid.DisplayName = v[1]
  4005. end
  4006. Disconnect(v[2]);
  4007. v = nil
  4008. end
  4009. end
  4010. return "people with a displayname displaynames will be removed"
  4011. end
  4012. end)
  4013.  
  4014. AddCommand("time", {"settime"}, "sets the games time", {{"night", "day", "dawn"}}, function(Caller, Args)
  4015. local Lighting = Services.Lighting
  4016. local Time = Args[1] and lower(Args[1]) or 14
  4017. local Times = {["night"]=0,["day"]=14,["dawn"]=6}
  4018. SpoofProperty(Lighting, "ClockTime", true);
  4019. Lighting.ClockTime = Times[Time] or Time
  4020. end)
  4021.  
  4022. AddCommand("fling", {"stan"}, "flings a player", {}, function(Caller, Args)
  4023. local Target = GetPlayer(Args[1]);
  4024. local Root = GetRoot()
  4025. SpoofProperty(Root, "Velocity");
  4026. SpoofProperty(Root, "Anchored");
  4027. local OldPos, OldVelocity = Root.CFrame, Root.Velocity
  4028.  
  4029. for i, v in next, Target do
  4030. local TargetRoot = GetRoot(v);
  4031. local TargetPos = TargetRoot.Position
  4032. local Running = CConnect(Stepped, function(step)
  4033. step = step - Services.Workspace.DistributedGameTime
  4034.  
  4035. Root.CFrame = (TargetRoot.CFrame - (Vector3New(0, 1e6, 0) * step)) + (TargetRoot.Velocity * (step * 30))
  4036. Root.Velocity = Vector3New(0, 1e6, 0)
  4037. end)
  4038. local starttime = tick();
  4039. repeat
  4040. wait();
  4041. until (TargetPos - TargetRoot.Position).magnitude >= 60 or tick() - starttime >= 3.5
  4042. Disconnect(Running);
  4043. end
  4044. wait();
  4045. local Running = CConnect(Stepped, function()
  4046. Root.Velocity = OldVelocity
  4047. Root.CFrame = OldPos
  4048. end)
  4049. wait(2);
  4050. Root.Anchored = true
  4051. Disconnect(Running);
  4052. Root.Anchored = false
  4053. Root.Velocity = OldVelocity
  4054. Root.CFrame = OldPos
  4055. end)
  4056.  
  4057. AddCommand("fling2", {"stan2"}, "another variant of fling", {}, function(Caller, Args)
  4058. local Target = GetPlayer(Args[1]);
  4059. local Root = GetRoot();
  4060. local OldPos = Root.CFrame
  4061. local OldVelocity = Root.Velocity
  4062. local BodyVelocity = InstanceNew("BodyAngularVelocity");
  4063. ProtectInstance(BodyVelocity);
  4064. BodyVelocity.MaxTorque = Vector3New(1, 1, 1) * math.huge
  4065. BodyVelocity.P = math.huge
  4066. BodyVelocity.AngularVelocity = Vector3New(0, 9e5, 0);
  4067. BodyVelocity.Parent = Root
  4068.  
  4069. local Char = GetChildren(GetCharacter());
  4070. for i, v in next, Char do
  4071. if (IsA(v, "BasePart")) then
  4072. v.CanCollide = false
  4073. v.Massless = true
  4074. v.Velocity = Vector3New(0, 0, 0);
  4075. end
  4076. end
  4077. local Noclipping = CConnect(Stepped, function()
  4078. for i, v in next, Char do
  4079. if (IsA(v, "BasePart")) then
  4080. v.CanCollide = false
  4081. end
  4082. end
  4083. end)
  4084. for i, v in next, Target do
  4085. local Fling
  4086. Fling = CConnect(Stepped, function()
  4087. Root.CFrame = GetRoot(v).CFrame
  4088. end)
  4089. local Continue = false
  4090. delay(2, function()
  4091. Continue = true
  4092. end)
  4093. repeat wait() until GetMagnitude(v) >= 60 or Continue
  4094. Disconnect(Fling);
  4095. end
  4096. Destroy(BodyVelocity);
  4097. Disconnect(Noclipping);
  4098. for i, v in next, Char do
  4099. if (IsA(v, "BasePart")) then
  4100. v.CanCollide = true
  4101. v.Massless = false
  4102. end
  4103. end
  4104. local Running = CConnect(Stepped, function()
  4105. Root.CFrame = OldPos
  4106. Root.Velocity = OldVelocity
  4107. end)
  4108. wait(2);
  4109. Root.Anchored = true
  4110. Disconnect(Running);
  4111. Root.Anchored = false
  4112. Root.Velocity = OldVelocity
  4113. Root.CFrame = OldPos
  4114. end)
  4115.  
  4116. AddCommand("antitkill", {}, "anti tkill :troll:", {3}, function(Caller, Args)
  4117. Destroy(GetCharacter()["Right Arm"]);
  4118. return "lol"
  4119. end)
  4120.  
  4121. AddCommand("antiattach", {"anticlaim"}, "enables antiattach", {3}, function(Caller, Args)
  4122. local Tools = {}
  4123. for i, v in next, tbl_concat(GetChildren(LocalPlayer.Character), GetChildren(LocalPlayer.Backpack)) do
  4124. if (IsA(v, "Tool")) then
  4125. Tools[#Tools + 1] = v
  4126. end
  4127. end
  4128. AddConnection(CConnect(LocalPlayer.Character.ChildAdded, function(x)
  4129. if (not Tfind(Tools, x) and IsA(x, "Tool")) then
  4130. x.Parent = LocalPlayer.Backpack
  4131. end
  4132. end))
  4133. end)
  4134.  
  4135. AddCommand("attach", {}, "attaches you to another player", {3,1}, function(Caller, Args)
  4136. local Target = GetPlayer(Args[1]);
  4137. local Humanoid = ReplaceHumanoid();
  4138. local Char = GetCharacter();
  4139. for i, v in next, Target do
  4140. local Tool = FindFirstChildWhichIsA(Char, "Tool") or FindFirstChildWhichIsA(LocalPlayer.Backpack, "Tool");
  4141. Tool.Parent = Char
  4142. local TargetRoot = GetRoot(v);
  4143. if (TargetRoot and Tool) then
  4144. firetouchinterest(TargetRoot, Tool.Handle, 0);
  4145. firetouchinterest(TargetRoot, Tool.Handle, 1);
  4146. end
  4147. end
  4148. end)
  4149.  
  4150. AddCommand("skill", {"swordkill"}, "swordkills the user auto", {1, {"player", "manual"}}, function(Caller, Args)
  4151. local Target, Option = GetPlayer(Args[1]), Args[2] or ""
  4152. local Backpack, Character = LocalPlayer.Backpack, GetCharacter();
  4153. local Tool = FindFirstChild(Character, "ClassicSword") or FindFirstChild(Backpack, "ClassicSword") or FindFirstChildOfClass(Backpack, "Tool") or FindFirstChildOfClass(Character, "Tool");
  4154. Tool.Parent = Character
  4155. local OldPos = GetRoot().CFrame
  4156. for i, v in next, Target do
  4157. CThread(function()
  4158. if (FindFirstChild(v.Character, "ForceField")) then
  4159. repeat wait() until not FindFirstChild(v.Character, "ForceField");
  4160. end
  4161. for i2 = 1, 5 do
  4162. if (lower(Option) == "manual") then
  4163. GetRoot().CFrame = GetRoot(v).CFrame * CFrameNew(0, -3, 0);
  4164. Tool.Activate(Tool);
  4165. Tool.Activate(Tool);
  4166. wait();
  4167. else
  4168. Tool.Activate(Tool);
  4169. firetouchinterest(Tool.Handle, GetRoot(v), 0);
  4170. wait();
  4171. firetouchinterest(Tool.Handle, GetRoot(v), 1);
  4172. wait();
  4173. end
  4174. end
  4175. wait();
  4176. if (lower(Option) == "manual") then
  4177. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos
  4178. end
  4179. end)()
  4180. end
  4181. end)
  4182.  
  4183. AddCommand("reach", {"swordreach"}, "changes handle size of your tool", {1, 3}, function(Caller, Args, CEnv)
  4184. local Amount = Args[1] or 2
  4185. local Tool = FindFirstChildWhichIsA(LocalPlayer.Character, "Tool") or FindFirstChildWhichIsA(LocalPlayer.Backpack, "Tool");
  4186. local Handle = Tool.Handle
  4187. local Size = Handle.Size
  4188. CEnv[Tool] = Size
  4189. SpoofProperty(Handle, "Size");
  4190. SpoofProperty(Handle, "Massless");
  4191. Handle.Size = Vector3New(Size.X, Size.Y, tonumber(Amount or 30));
  4192. Handle.Massless = true
  4193. return "reach on"
  4194. end)
  4195.  
  4196. AddCommand("noreach", {"noswordreach"}, "removes sword reach", {}, function()
  4197. local ReachedTools = LoadCommand("reach").CmdEnv
  4198. if (not next(ReachedTools)) then
  4199. return "reach isn't enabled"
  4200. end
  4201. for i, v in next, ReachedTools do
  4202. i.Size = v
  4203. end
  4204. LoadCommand("reach").CmdEnv = {}
  4205. return "reach disabled"
  4206. end)
  4207.  
  4208. AddCommand("swordaura", {"saura"}, "sword aura", {3}, function(Caller, Args, CEnv)
  4209. DisableAllCmdConnections("swordaura");
  4210.  
  4211. local SwordDistance = tonumber(Args[1]) or 10
  4212. local Tool = FindFirstChildWhichIsA(GetCharacter(), "Tool") or FindFirstChildWhichIsA(LocalPlayer.Backpack, "Tool");
  4213. local PlayersTbl = filter(GetPlayers(Players), function(i, v)
  4214. return v ~= LocalPlayer
  4215. end)
  4216. PlayersTbl = map(PlayersTbl, function(i, Player)
  4217. AddConnection(CConnect(Player.CharacterAdded, function()
  4218. PlayersTbl[i] = {Player, Player.Character}
  4219. end), CEnv);
  4220. return {Player, Player.Character}
  4221. end)
  4222.  
  4223. local Hit = function(i, v)
  4224. Tool.Activate(Tool);
  4225. if (FindFirstChild(Tool, "Handle")) then
  4226. firetouchinterest(Tool.Handle, v, 0);
  4227. wait();
  4228. firetouchinterest(Tool.Handle, v, 1);
  4229. elseif (FindFirstChild(Tool, "HitBox")) then
  4230. firetouchinterest(Tool.HitBox, v, 0);
  4231. wait();
  4232. firetouchinterest(Tool.HitBox, v, 1);
  4233. else
  4234. local Part = FindFirstChildOfClass(Tool, "Part")
  4235. if (Part) then
  4236. firetouchinterest(Tool.HitBox, v, 0);
  4237. wait();
  4238. firetouchinterest(Tool.HitBox, v, 1);
  4239. end
  4240. end
  4241. end
  4242. local Character = GetCharacter();
  4243. AddConnection(CConnect(Heartbeat, function()
  4244. Character = Character or GetCharacter();
  4245. Tool = FindFirstChildWhichIsA(Character, "Tool") or FindFirstChildWhichIsA(LocalPlayer.Backpack, "Tool");
  4246. if (Tool and Tool.Handle) then
  4247. for i, v in next, PlayersTbl do
  4248. if (GetRoot(v[1], v[2]) and GetHumanoid(v[1], v[2]) and GetHumanoid(v[1], v[2]).Health ~= 0 and GetMagnitude(v[1], v[2]) <= SwordDistance) then
  4249. if (GetHumanoid().Health ~= 0) then
  4250. Tool.Parent = Character
  4251. local BaseParts = filter(GetChildren(GetCharacter(v[1], v[2])), function(i, v)
  4252. return IsA(v, "BasePart");
  4253. end)
  4254. forEach(BaseParts, Hit);
  4255. end
  4256. end
  4257. end
  4258. end
  4259. end), CEnv);
  4260.  
  4261. AddConnection(CConnect(Players.PlayerAdded, function(Plr)
  4262. PlayersTbl[#PlayersTbl + 1] = Plr
  4263. end), CEnv);
  4264. AddConnection(CConnect(Players.PlayerRemoving, function(Plr)
  4265. PlayersTbl[indexOf(PlayersTbl, Plr)] = nil
  4266. end), CEnv);
  4267.  
  4268. return "sword aura enabled with distance " .. SwordDistance
  4269. end)
  4270.  
  4271. AddCommand("noswordaura", {"noaura"}, "stops the sword aura", {}, function()
  4272. local Aura = LoadCommand("swordaura").CmdEnv
  4273. if (not next(Aura)) then
  4274. return "sword aura is not enabled"
  4275. end
  4276. DisableAllCmdConnections("swordaura");
  4277. return "sword aura disabled"
  4278. end)
  4279.  
  4280. AddCommand("freeze", {}, "freezes your character", {3}, function(Caller, Args)
  4281. local BaseParts = filter(GetChildren(GetCharacter(v)), function(i, v)
  4282. return IsA(v, "BasePart");
  4283. end)
  4284. for i, v in next, BaseParts do
  4285. SpoofProperty(v, "Anchored");
  4286. v.Anchored = true
  4287. end
  4288. return "freeze enabled (client)"
  4289. end)
  4290.  
  4291. AddCommand("unfreeze", {"thaw"}, "unfreezes your character", {3}, function(Caller, Args)
  4292. local BaseParts = filter(GetChildren(GetCharacter(v)), function(i, v)
  4293. return IsA(v, "BasePart");
  4294. end)
  4295. for i, v in next, BaseParts do
  4296. v.Anchored = false
  4297. end
  4298. return "freeze disabled"
  4299. end)
  4300.  
  4301. AddCommand("streamermode", {}, "changes names of everyone to something random", {}, function(Caller, Args, CEnv)
  4302. local Rand = function(len) return gsub(sub(GenerateGUID(Services.HttpService), 2, len), "-", "") end
  4303. local Players = Services.Players
  4304. local Hide = function(a, v)
  4305. if (v and IsA(v, "TextLabel") or IsA(v, "TextButton")) then
  4306. local Player = GetPlayer(v.Text, true);
  4307. if (not Player[1]) then
  4308. Player = GetPlayer(sub(v.Text, 2, #v.Text - 2), true);
  4309. end
  4310. v.Text = Player[1] and Player[1].Name or v.Text
  4311. if (Player and FindFirstChild(Players, v.Text)) then
  4312. CEnv[v.Name] = v.Text
  4313. local NewName = Rand(len(v.Text));
  4314. if (GetCharacter(v.Text)) then
  4315. Players[v.Text].Character.Humanoid.DisplayName = NewName
  4316. end
  4317. v.Text = NewName
  4318. end
  4319. end
  4320. end
  4321.  
  4322. forEach(GetDescendants(game), Hide);
  4323.  
  4324. AddConnection(CConnect(game.DescendantAdded, function(x)
  4325. Hide(nil, x);
  4326. end), CEnv);
  4327. return "streamer mode enabled"
  4328. end)
  4329.  
  4330. AddCommand("nostreamermode", {"unstreamermode"}, "removes all the changed names", {}, function(Caller, Args, CEnv)
  4331. local changed = LoadCommand("streamermode").CmdEnv
  4332. for i, v in next, changed do
  4333. if (type(v) == 'userdata' and v.Disconnect) then
  4334. Disconnect(v);
  4335. else
  4336. i.Text = v
  4337. end
  4338. end
  4339. end)
  4340.  
  4341. AddCommand("fireclickdetectors", {"fcd"}, "fires all the click detectors", {3}, function(Caller, Args)
  4342. local amount = 0
  4343. local howmany = Args[1]
  4344. for i, v in next, GetDescendants(Services.Workspace) do
  4345. if (IsA(v, "ClickDetector")) then
  4346. fireclickdetector(v);
  4347. amount = amount + 1
  4348. if (howmany and amount == tonumber(howmany)) then break; end
  4349. end
  4350. end
  4351. return format("fired %d amount of clickdetectors", amount);
  4352. end)
  4353.  
  4354. AddCommand("firetouchinterests", {"fti"}, "fires all the touch interests", {3}, function(Caller, Args)
  4355. local amount = 0
  4356. local howmany = Args[1]
  4357. for i, v in next, GetDescendants(Services.Workspace) do
  4358. if (IsA(v, "TouchTransmitter")) then
  4359. firetouchinterest(GetRoot(), v.Parent, 0);
  4360. wait();
  4361. firetouchinterest(GetRoot(), v.Parent, 1);
  4362. amount = amount + 1
  4363. if (howmany and amount == tonumber(howmany)) then break; end
  4364. end
  4365. end
  4366. return format("fired %d amount of touchtransmitters", amount);
  4367. end)
  4368.  
  4369. AddCommand("fireproximityprompts", {"fpp"}, "fires all the proximity prompts", {3}, function(Caller, Args)
  4370. local amount = 0
  4371. local howmany = Args[1]
  4372. for i, v in next, GetDescendants(Services.Workspace) do
  4373. if (IsA(v, "ProximityPrompt")) then
  4374. fireproximityprompt(v, 0);
  4375. wait();
  4376. fireproximityprompt(v, 1);
  4377. amount = amount + 1
  4378. if (howmany and amount == tonumber(howmany)) then break; end
  4379. end
  4380. end
  4381. return format("fired %d amount of proximityprompts", amount);
  4382. end)
  4383.  
  4384. AddCommand("muteboombox", {}, "mutes a users boombox", {}, function(Caller, Args)
  4385. Services.SoundService.RespectFilteringEnabled = false
  4386. local Target = GetPlayer(Args[1]);
  4387. for i, v in next, Target do
  4388. for i2, v2 in next, GetDescendants(v.Character) do
  4389. if (IsA(v2, "Sound")) then
  4390. v2.Playing = false
  4391. end
  4392. end
  4393. end
  4394. Services.SoundService.RespectFilteringEnabled = true
  4395. end)
  4396.  
  4397. AddCommand("loopmuteboombox", {"loopmute"}, "loop mutes a users boombox", {}, function(Caller, Args, CEnv)
  4398. local Target = GetPlayer(Args[1]);
  4399. local filterBoomboxes = function(i,v)
  4400. return FindFirstChild(v, "Handle") and FindFirstChildWhichIsA(v.Handle, "Sound");
  4401. end
  4402. Services.SoundService.RespectFilteringEnabled = false
  4403. local Con = AddConnection(CConnect(Heartbeat, function()
  4404. for i, v in next, Target do
  4405. for i2, v2 in next, GetDescendants(v.Backpack) do
  4406. if (IsA(v2, "Sound")) then
  4407. v2.Playing = false
  4408. end
  4409. end
  4410. local Char = GetCharacter(v)
  4411. if (Char) then
  4412. for i22, v2 in next, GetDescendants(Char) do
  4413. if (IsA(v2, "Sound")) then
  4414. v2.Playing = false
  4415. end
  4416. end
  4417. end
  4418. end
  4419. end));
  4420. CEnv[Target] = Con
  4421. end)
  4422.  
  4423. AddCommand("unloopmuteboombox", {}, "unloopmutes a persons boombox", {"1"}, function(Caller, Args)
  4424. local Target = GetPlayer(Args[1])
  4425. local Muting = LoadCommand("loopmuteboombox").CmdEnv
  4426. for i, v in next, Muting do
  4427. for i2, v2 in next, Target do
  4428. if (v2 == i) then
  4429. Disconnect(v);
  4430. Muting[i] = nil
  4431. end
  4432. end
  4433. end
  4434. end)
  4435.  
  4436. AddCommand("forceplay", {}, "forcesplays an audio", {1,3,"1"}, function(Caller, Args, CEnv)
  4437. local Id = Args[1]
  4438. local filterBoomboxes = function(i,v)
  4439. return IsA(v, "Tool") and FindFirstChild(v, "Handle") and FindFirstChildWhichIsA(v.Handle, "Sound");
  4440. end
  4441. UnequipTools(GetHumanoid());
  4442. local Boombox = filter(GetChildren(LocalPlayer.Backpack), filterBoomboxes)
  4443. if (not next(Boombox)) then
  4444. return "you need a boombox to forceplay"
  4445. end
  4446. Services.SoundService.RespectFilteringEnabled = false
  4447. Boombox = Boombox[1]
  4448. Boombox.Parent = GetCharacter();
  4449. local Sound = Boombox.Handle.Sound
  4450. Sound.SoundId = "http://roblox.com/asset/?id=" .. Id
  4451. local RemoteEvent = FindFirstChildWhichIsA(Boombox, "RemoteEvent")
  4452. RemoteEvent.FireServer(RemoteEvent, "PlaySong", tonumber(Id));
  4453. Boombox.Parent = LocalPlayer.Backpack
  4454. CEnv[Boombox] = true
  4455. CThread(function()
  4456. while (LoadCommand("forceplay").CmdEnv[Boombox]) do
  4457. Boombox.Handle.Sound.Playing = true
  4458. CWait(Heartbeat);
  4459. end
  4460. Services.SoundService.RespectFilteringEnabled = true
  4461. end)()
  4462. return "now forceplaying ".. Id
  4463. end)
  4464.  
  4465. AddCommand("unforceplay", {}, "stops forceplay", {}, function()
  4466. local Playing = LoadCommand("forceplay").CmdEnv
  4467. for i, v in next, Playing do
  4468. FindFirstChild(i, "Sound", true).Playing = false
  4469. LoadCommand("forceplay").CmdEnv[i] = false
  4470. end
  4471. return "stopped forceplay"
  4472. end)
  4473.  
  4474. AddCommand("audiotime", {"audiotimeposition"}, "changes audio timeposition", {"1",1}, function(Caller, Args)
  4475. local Time = Args[1]
  4476. if (not tonumber(Time)) then
  4477. return "time must be a number"
  4478. end
  4479. local filterplayingboomboxes = function(i,v)
  4480. return IsA(v, "Tool") and FindFirstChild(v, "Handle") and FindFirstChildWhichIsA(v.Handle, "Sound") and FindFirstChildWhichIsA(v.Handle, "Sound").Playing == true
  4481. end
  4482. local OtherPlayingBoomboxes = LoadCommand("forceplay").CmdEnv
  4483. local Boombox = filter(tbl_concat(GetChildren(LocalPlayer.Backpack), GetChildren(GetCharacter())), filterplayingboomboxes)
  4484. if (not next(Boombox) and not next(OtherPlayingBoomboxes)) then
  4485. return "you need a boombox to change the timeposition"
  4486. end
  4487. Boombox = Boombox[1]
  4488. if (Boombox) then
  4489. FindFirstChild(Boombox, "Sound", true).TimePosition = floor(tonumber(Time));
  4490. else
  4491. for i, v in next, OtherPlayingBoomboxes do
  4492. FindFirstChild(i, "Sound", true).TimePosition = floor(tonumber(Time));
  4493. end
  4494. end
  4495. return "changed time position to " .. Time
  4496. end)
  4497.  
  4498. AddCommand("audiolog", {}, "audio logs someone", {"1"}, function(Caller, Args)
  4499. local Target = GetPlayer(Args[1]);
  4500. for i, v in next, Target do
  4501. for i2, v2 in next, GetDescendants(v.Character) do
  4502. if (IsA(v2, "Sound") and IsA(v2.Parent.Parent, "Tool")) then
  4503. local AudioId = split(v2.SoundId, "=")[2]
  4504. setclipboard(AudioId);
  4505. Utils.Notify(Caller, "Command", format("Audio Id (%s) copied to clipboard", AudioId));
  4506. end
  4507. end
  4508. end
  4509. end)
  4510.  
  4511. AddCommand("position", {"pos"}, "shows you a player's current (cframe) position", {}, function(Caller, Args)
  4512. local Target = Args[1] and GetPlayer(Args[1])[1] or Caller
  4513. local Root = GetRoot(Target)
  4514. local Pos = Sanitize(Root.CFrame)
  4515. if setclipboard then
  4516. setclipboard(Pos)
  4517. end
  4518. return format("%s's position: %s", Target.Name, Pos);
  4519. end)
  4520.  
  4521. AddCommand("grippos", {}, "changes grippos of your tool", {"3"}, function(Caller, Args, CEnv)
  4522. local Tool = FindFirstChildWhichIsA(GetCharacter(), "Tool") or FindFirstChildWhichIsA(LocalPlayer.Backpack, "Tool");
  4523. if (Tool) then
  4524. local GripPos = Vector3New(tonumber(Args[1]), tonumber(Args[2]), tonumber(Args[3]));
  4525. if (Args[4]) then
  4526. for i, v in next, tbl_concat(GetChildren(LocalPlayer.Backpack), GetChildren(LocalPlayer.Character)) do
  4527. if (IsA(v, "Tool")) then
  4528. SpoofProperty(Tool, "GripPos");
  4529. Tool.GripPos = GripPos
  4530. end
  4531. end
  4532. end
  4533. SpoofProperty(Tool, "GripPos");
  4534. Tool.GripPos = GripPos
  4535. Tool.Parent = GetCharacter();
  4536. return "grippos set"
  4537. else
  4538. return "no tool to set grippos"
  4539. end
  4540. return "grippos set"
  4541. end)
  4542.  
  4543. AddCommand("truesightguis", {"tsg"}, "true sight on all guis", {}, function(Caller, Args, CEnv)
  4544. for i, v in next, GetDescendants(game) do
  4545. if (IsA(v, "Frame") or IsA(v, "ScrollingFrame") and not v.Visible) then
  4546. CEnv[v] = v.Visible
  4547. SpoofProperty(v, "Visible");
  4548. v.Visible = true
  4549. end
  4550. end
  4551. return "truesight for guis are now on"
  4552. end)
  4553.  
  4554. AddCommand("notruesightguis", {"untruesightguis", "notsg"}, "removes truesight on guis", {}, function(Caller, Args)
  4555. local Guis = LoadCommand("truesightguis").CmdEnv
  4556. for i, v in next, Guis do
  4557. i.Visible = v
  4558. end
  4559. return "truesight for guis are now off"
  4560. end)
  4561.  
  4562. AddCommand("esp", {"aimbot", "cameralock", "silentaim", "aimlock", "tracers"}, "loads fates esp", {}, function(Caller, Args, CEnv)
  4563. CEnv.KillEsp = loadstring(game.HttpGet(game, "https://raw.githubusercontent.com/fatesc/fates-esp/main/main.lua"))();
  4564. return "esp enabled"
  4565. end)
  4566.  
  4567. AddCommand("unesp", {"noesp"}, "removes esp", {}, function()
  4568. local Kill = LoadCommand("esp").CmdEnv.KillEsp
  4569. if (Kill) then
  4570. Kill()
  4571. end
  4572. return "esp removed"
  4573. end)
  4574.  
  4575. local EspLib;
  4576. AddCommand("trace", {"locate"}, "traces a player", {"1"}, function(Caller, Args, CEnv)
  4577. if (not EspLib) then
  4578. EspLib = loadstring(game.HttpGet(game, "https://raw.githubusercontent.com/fatesc/fates-esp/main/esp-lib/esplibmain.lua"))();
  4579. end
  4580. local Target = GetPlayer(Args[1]);
  4581. local New = EspLib.new
  4582. for i, v in next, Target do
  4583. New("Tracer", {
  4584. Target = v
  4585. });
  4586. New("Text", {
  4587. Target = v,
  4588. ShowHealth = true,
  4589. ShowDistance = true
  4590. });
  4591. end
  4592. AddConnection(CConnect(Services.Players.PlayerRemoving, function(Plr)
  4593. if (Tfind(Target, Plr)) then
  4594. EspLib.Remove(v);
  4595. end
  4596. end), CEnv);
  4597. return format("now tracing %s", #Target == 1 and Target[1].Name or #Target .. " players");
  4598. end)
  4599. AddCommand("untrace", {"unlocate"}, "untraces a player", {"1"}, function(Caller, Args)
  4600. if (not EspLib) then
  4601. EspLib = loadstring(game.HttpGet(game, "https://raw.githubusercontent.com/fatesc/fates-esp/main/esp-lib/esplibmain.lua"))();
  4602. end
  4603. local Target = GetPlayer(Args[1]);
  4604. local Remove = EspLib.Remove
  4605. for i, v in next, Target do
  4606. Remove(v);
  4607. end
  4608. return format("now stopped tracing %s", #Target == 1 and Target[1].Name or #Target .. " players");
  4609. end)
  4610.  
  4611.  
  4612. AddCommand("crosshair", {}, "enables a crosshair", {function()
  4613. return Drawing ~= nil
  4614. end}, function(Caller, Args, CEnv)
  4615. if (CEnv[1] and CEnv[2] and CEnv[1].Transparency ~= 0) then
  4616. CEnv[1].Remove(CEnv[1]);
  4617. CEnv[2].Remove(CEnv[2]);
  4618. CEnv[1] = nil
  4619. CEnv[2] = nil
  4620. return "crosshair disabled"
  4621. end
  4622. local Viewport = Camera.ViewportSize
  4623. local Y = Drawing.new("Line");
  4624. local X = Drawing.new("Line");
  4625. Y.Thickness = 1
  4626. X.Thickness = 1
  4627. Y.Transparency = 1
  4628. X.Transparency = 1
  4629. Y.Visible = true
  4630. X.Visible = true
  4631. Y.To = Vector2.new(Viewport.X / 2, Viewport.Y / 2 - 10);
  4632. X.To = Vector2.new(Viewport.X / 2 - 10, Viewport.Y / 2);
  4633. Y.From = Vector2.new(Viewport.X / 2, Viewport.Y / 2 + 10);
  4634. X.From = Vector2.new(Viewport.X / 2 + 10, Viewport.Y / 2);
  4635. CEnv[1] = Y
  4636. CEnv[2] = X
  4637. return "crosshair enabled"
  4638. end)
  4639.  
  4640. AddCommand("walkto", {}, "walks to a player", {"1", 3}, function(Caller, Args)
  4641. local Target = GetPlayer(Args[1])[1];
  4642. local Humanoid = GetHumanoid();
  4643. Humanoid.MoveTo(Humanoid, GetRoot(Target).Position);
  4644. return "walking to " .. Target.Name
  4645. end)
  4646.  
  4647. AddCommand("follow", {}, "follows a player", {"1", 3}, function(Caller, Args, CEnv)
  4648. local Target = GetPlayer(Args[1])[1]
  4649. CEnv[Target.Name] = true
  4650. CThread(function()
  4651. repeat
  4652. local Humanoid = GetHumanoid();
  4653. Humanoid.MoveTo(Humanoid, GetRoot(Target).Position);
  4654. wait(.2);
  4655. until not LoadCommand("follow").CmdEnv[Target.Name]
  4656. end)()
  4657. return "now following " .. Target.Name
  4658. end)
  4659.  
  4660. AddCommand("unfollow", {}, "unfollows a player", {}, function()
  4661. local Following = LoadCommand("follow").CmdEnv
  4662. if (not next(Following)) then
  4663. return "you are not following anyone"
  4664. end
  4665. LoadCommand("follow").CmdEnv = {}
  4666. return "stopped following"
  4667. end)
  4668.  
  4669. AddCommand("age", {}, "ages a player", {"1"}, function(Caller, Args)
  4670. local Target = GetPlayer(Args[1]);
  4671. for i, v in next, Target do
  4672. local AccountAge = v.AccountAge
  4673. local t = os.date("*t", os.time());
  4674. t.day = t.day - tonumber(AccountAge);
  4675. local CreatedAt = os.date("%d/%m/%y", os.time(t));
  4676. Utils.Notify(Caller, "Command", format("%s's age is %s (%s)", v.Name, AccountAge, CreatedAt));
  4677. end
  4678. end)
  4679.  
  4680. AddCommand("nosales", {}, "no purchase prompt notifications will be shown", {}, function()
  4681. Services.CoreGui.PurchasePrompt.Enabled = false
  4682. return "You'll no longer recive sale prompts"
  4683. end)
  4684.  
  4685. AddCommand("volume", {"vol"}, "changes your game volume", {}, function(Caller, Args)
  4686. local Volume = tonumber(Args[1]);
  4687. if (not Volume or Volume > 10 or Volume < 0) then
  4688. return "volume must be a number between 0-10";
  4689. end
  4690. local UserSettings = UserSettings()
  4691. UserSettings.GetService(UserSettings, "UserGameSettings").MasterVolume = Volume / 10
  4692. return "volume set to " .. Volume
  4693. end)
  4694.  
  4695. AddCommand("antikick", {}, "client sided bypasses to kicks", {}, function()
  4696. Hooks.AntiKick = not Hooks.AntiKick
  4697. return "client sided antikick " .. (Hooks.AntiKick and "enabled" or "disabled")
  4698. end)
  4699.  
  4700. AddCommand("antiteleport", {}, "client sided bypasses to teleports", {}, function()
  4701. AntiTeleport = not AntiTeleport
  4702. return "client sided antiteleport " .. (AntiTeleport and "enabled" or "disabled")
  4703. end)
  4704.  
  4705. AddCommand("autorejoin", {}, "auto rejoins the game when you get kicked", {}, function(Caller, Args, CEnv)
  4706. local GuiService = Services.GuiService
  4707. CThread(function()
  4708. CWait(GuiService.ErrorMessageChanged);
  4709. CWait(GuiService.ErrorMessageChanged);
  4710. if (GuiService.GetErrorCode(GuiService) == Enum.ConnectionError.DisconnectLuaKick) then
  4711. if (#GetPlayers(Players) == 1) then
  4712. Services.TeleportService.Teleport(Services.TeleportService, game.PlaceId);
  4713. else
  4714. Services.TeleportService.TeleportToPlaceInstance(Services.TeleportService, game.PlaceId, game.JobId);
  4715. end
  4716. end
  4717. end)()
  4718. return "auto rejoin enabled (rejoins when you get kicked from the game)"
  4719. end)
  4720.  
  4721. AddCommand("respawn", {}, "respawns your character", {3}, function()
  4722. local OldPos = GetRoot().CFrame
  4723. local Char = GetCharacter();
  4724. Char.BreakJoints(Char);
  4725. CWait(LocalPlayer.CharacterAdded);
  4726. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos
  4727. return "respawned"
  4728. end)
  4729.  
  4730. AddCommand("reset", {}, "resets your character", {3}, function()
  4731. local Char = GetCharacter();
  4732. Char.BreakJoints(Char);
  4733. end)
  4734.  
  4735. AddCommand("refresh", {"re"}, "refreshes your character", {3}, function(Caller)
  4736. ReplaceCharacter();
  4737. wait(Players.RespawnTime - 0.03);
  4738. local OldPos = GetRoot().CFrame
  4739. ReplaceHumanoid()
  4740. CWait(LocalPlayer.CharacterAdded)
  4741. WaitForChild(LocalPlayer.Character, "HumanoidRootPart").CFrame = OldPos
  4742. return "character refreshed"
  4743. end)
  4744.  
  4745. AddCommand("addalias", {}, "adds an alias to a command", {}, function(Caller, Args)
  4746. local Command = Args[1]
  4747. local Alias = Args[2]
  4748. if (CommandsTable[Command]) then
  4749. local Add = CommandsTable[Command]
  4750. Add.Name = Alias
  4751. CommandsTable[Alias] = Add
  4752. local CurrentAliases = GetConfig().Aliases or {}
  4753. CurrentAliases[Command] = CurrentAliases[Command] or {}
  4754. local AliasesForCommand = CurrentAliases[Command]
  4755. AliasesForCommand[#AliasesForCommand + 1] = Alias
  4756. SetConfig({Aliases=CurrentAliases});
  4757. return format("%s is now an alias of %s", Alias, Command);
  4758. else
  4759. return Command .. " is not a valid command"
  4760. end
  4761. end)
  4762.  
  4763. AddCommand("removealias", {}, "removes an alias from a command", {}, function(Caller, Args) -- todo: fix it removing actual commands when doing so
  4764. local Command = Args[1]
  4765. local Alias = Args[2]
  4766. if (not CommandsTable[Command]) then
  4767. return Command .. " is not a valid command"
  4768. end
  4769. if (not CommandsTable[Alias]) then
  4770. return Alias .. " is not an alias"
  4771. end
  4772.  
  4773. if (CommandsTable[Alias].Name ~= Alias) then
  4774. local Cmd = CommandsTable[Alias]
  4775. CommandsTable[Alias] = nil
  4776. return format("removed alias %s from %s", Alias, Cmd.Name);
  4777. end
  4778. return "you can't remove commands"
  4779. end)
  4780.  
  4781. AddCommand("chatlogs", {"clogs"}, "enables chatlogs", {}, function()
  4782. local MessageClone = Clone(ChatLogs.Frame.List);
  4783.  
  4784. Utils.ClearAllObjects(ChatLogs.Frame.List)
  4785. ChatLogs.Visible = true
  4786.  
  4787. local Tween = Utils.TweenAllTransToObject(ChatLogs, .25, ChatLogsTransparencyClone)
  4788.  
  4789. Destroy(ChatLogs.Frame.List)
  4790. MessageClone.Parent = ChatLogs.Frame
  4791.  
  4792. for i, v in next, GetChildren(ChatLogs.Frame.List) do
  4793. if (not IsA(v, "UIListLayout")) then
  4794. Utils.Tween(v, "Sine", "Out", .25, {
  4795. TextTransparency = 0
  4796. })
  4797. end
  4798. end
  4799.  
  4800. local ChatLogsListLayout = ChatLogs.Frame.List.UIListLayout
  4801.  
  4802. CConnect(GetPropertyChangedSignal(ChatLogsListLayout, "AbsoluteContentSize"), function()
  4803. local CanvasPosition = ChatLogs.Frame.List.CanvasPosition
  4804. local CanvasSize = ChatLogs.Frame.List.CanvasSize
  4805. local AbsoluteSize = ChatLogs.Frame.List.AbsoluteSize
  4806.  
  4807. if (CanvasSize.Y.Offset - AbsoluteSize.Y - CanvasPosition.Y < 20) then
  4808. wait() -- chatlogs updates absolutecontentsize before sizing frame
  4809. ChatLogs.Frame.List.CanvasPosition = Vector2.new(0, CanvasSize.Y.Offset + 1000) --ChatLogsListLayout.AbsoluteContentSize.Y + 100)
  4810. end
  4811. end)
  4812.  
  4813. Utils.Tween(ChatLogs.Frame.List, "Sine", "Out", .25, {
  4814. ScrollBarImageTransparency = 0
  4815. })
  4816. end)
  4817.  
  4818. AddCommand("globalchatlogs", {"globalclogs"}, "enables globalchatlogs", {}, function()
  4819. do return "Command Disabled" end
  4820.  
  4821. local MessageClone = Clone(GlobalChatLogs.Frame.List);
  4822.  
  4823. Utils.ClearAllObjects(GlobalChatLogs.Frame.List);
  4824. GlobalChatLogs.Visible = true
  4825.  
  4826. local Tween = Utils.TweenAllTransToObject(GlobalChatLogs, .25, GlobalChatLogsTransparencyClone);
  4827.  
  4828.  
  4829. MessageClone.Parent = ChatLogs.Frame
  4830.  
  4831. for i, v in next, GetChildren(GlobalChatLogs.Frame.List) do
  4832. if (not IsA(v, "UIListLayout")) then
  4833. Utils.Tween(v, "Sine", "Out", .25, {
  4834. TextTransparency = 0
  4835. })
  4836. end
  4837. end
  4838.  
  4839. local GlobalChatLogsListLayout = GlobalChatLogs.Frame.List.UIListLayout
  4840.  
  4841. CConnect(GetPropertyChangedSignal(GlobalChatLogsListLayout, "AbsoluteContentSize"), function()
  4842. local CanvasPosition = GlobalChatLogs.Frame.List.CanvasPosition
  4843. local CanvasSize = GlobalChatLogs.Frame.List.CanvasSize
  4844. local AbsoluteSize = GlobalChatLogs.Frame.List.AbsoluteSize
  4845.  
  4846. if (CanvasSize.Y.Offset - AbsoluteSize.Y - CanvasPosition.Y < 20) then
  4847. wait() -- chatlogs updates absolutecontentsize before sizing frame
  4848. GlobalChatLogs.Frame.List.CanvasPosition = Vector2.new(0, CanvasSize.Y.Offset + 1000) --ChatLogsListLayout.AbsoluteContentSize.Y + 100)
  4849. end
  4850. end)
  4851.  
  4852. Utils.Tween(GlobalChatLogs.Frame.List, "Sine", "Out", .25, {
  4853. ScrollBarImageTransparency = 0
  4854. });
  4855.  
  4856. _L.GlobalChatLogsEnabled = true
  4857. if (not Socket) then
  4858. Socket = (syn and syn.websocket or WebSocket).connect("ws://fate0.xyz:8080/scripts/fates-admin/chat?username=" .. LocalPlayer.Name);
  4859.  
  4860. local MakeMessage = function(Message, Color)
  4861. Clone.Text = Message
  4862. if (Color) then
  4863. Clone.TextColor3 = Color
  4864. end
  4865. Clone.Visible = true
  4866. Clone.TextTransparency = 1
  4867. Clone.Parent = GlobalChatLogs.Frame.List
  4868. Utils.Tween(Clone, "Sine", "Out", .25, {
  4869. TextTransparency = 0
  4870. });
  4871. GlobalChatLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, GlobalChatLogs.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  4872.  
  4873. end
  4874.  
  4875. CConnect(Socket.OnMessage, function(msg)
  4876. if (_L.GlobalChatLogsEnabled) then
  4877. local OP, DATA = unpack(JSONDecode(Services.HttpService, msg));
  4878. local Clone = Clone(GlobalChatLogMessage);
  4879. local CurrentTime = tostring(os.date("%X"));
  4880. if (OP == "received_message") then
  4881. MakeMessage(format("%s - [%s]: %s", CurrentTime, DATA.username, msg.message));
  4882. elseif (OP == "admin_message") then
  4883. MakeMessage(format("%s - [%s]: %s", CurrentTime, DATA.username, msg.message), Color3.fromRGB(DATA.Color.R, DATA.Color.G, DATA.Color.B));
  4884. elseif (OP == "verification_needed") then
  4885. MakeMessage(format("[%s] - [C-LOG]: You need to visit http://whatever/chat/verify", CurrentTime), Color3.fromRGB(255, 0, 0));
  4886. elseif (OP == "error") then
  4887. MakeMessage(format("[%s] - [C-LOG]: %s", CurrentTime, DATA.message));
  4888. end
  4889.  
  4890. end
  4891. end)
  4892. local MessageSender = require(LocalPlayer.PlayerScripts.ChatScript.ChatMain.MessageSender);
  4893. local OldSendMessage = MessageSender.SendMessage
  4894. MessageSender.SendMessage = function(self, Message, ...)
  4895. if (_L.GlobalChatLogsEnabled) then
  4896. local CurrentTime = tostring(os.date("%X"));
  4897. if (#Message > 30) then
  4898. MakeMessage(format("[%s] - [C-LOG]: Message is too long dsadsadasdasd.aas...", CurrentTime));
  4899. end
  4900. Socket.Send(Socket, JSONEncode({
  4901. username = LocalPlayer.Name,
  4902. message = Message,
  4903. }));
  4904. else
  4905. return OldSendMessage(self, Message, ...);
  4906. end
  4907. end
  4908.  
  4909. MessageSender.SendMessage = OldSendMessage
  4910.  
  4911. while (Socket and wait(30)) do
  4912. Send(Socket, "ping");
  4913. end
  4914. end
  4915. end)
  4916.  
  4917. AddCommand("httplogs", {"httpspy"}, "enables httpspy", {}, function()
  4918. local MessageClone = Clone(HttpLogs.Frame.List);
  4919.  
  4920. Utils.ClearAllObjects(HttpLogs.Frame.List)
  4921. HttpLogs.Visible = true
  4922.  
  4923. local Tween = Utils.TweenAllTransToObject(HttpLogs, .25, HttpLogsTransparencyClone)
  4924.  
  4925. Destroy(HttpLogs.Frame.List)
  4926. MessageClone.Parent = HttpLogs.Frame
  4927.  
  4928. for i, v in next, GetChildren(HttpLogs.Frame.List) do
  4929. if (not IsA(v, "UIListLayout")) then
  4930. Utils.Tween(v, "Sine", "Out", .25, {
  4931. TextTransparency = 0
  4932. })
  4933. end
  4934. end
  4935.  
  4936. local HttpLogsListLayout = HttpLogs.Frame.List.UIListLayout
  4937.  
  4938. CConnect( GetPropertyChangedSignal(HttpLogsListLayout, "AbsoluteContentSize"), function()
  4939. local CanvasPosition = HttpLogs.Frame.List.CanvasPosition
  4940. local CanvasSize = HttpLogs.Frame.List.CanvasSize
  4941. local AbsoluteSize = HttpLogs.Frame.List.AbsoluteSize
  4942.  
  4943. if (CanvasSize.Y.Offset - AbsoluteSize.Y - CanvasPosition.Y < 20) then
  4944. wait() -- chatlogs updates absolutecontentsize before sizing frame
  4945. HttpLogs.Frame.List.CanvasPosition = Vector2.new(0, CanvasSize.Y.Offset + 1000) --ChatLogsListLayout.AbsoluteContentSize.Y + 100)
  4946. end
  4947. end)
  4948.  
  4949. Utils.Tween(HttpLogs.Frame.List, "Sine", "Out", .25, {
  4950. ScrollBarImageTransparency = 0
  4951. })
  4952.  
  4953. local AddLog = function(reqType, url, Req)
  4954. if (getgenv().F_A and UI) then
  4955. local Clone = Clone(ChatLogMessage);
  4956. Clone.Text = format("%s\nUrl: %s%s\n", Utils.TextFont(reqType .. " Detected (time: " .. tostring(os.date("%X")) ..")", {255, 165, 0}), url, Req and ", RequestPayLoad: " .. Utils.TextFont(Req, {255, 255, 0}) or "");
  4957. Clone.RichText = true
  4958. Clone.Visible = true
  4959. Clone.TextTransparency = 1
  4960. Clone.Parent = HttpLogs.Frame.List
  4961. Utils.Tween(Clone, "Sine", "Out", .25, {
  4962. TextTransparency = 0
  4963. });
  4964. HttpLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, HttpLogs.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  4965. end
  4966. end
  4967.  
  4968. local Request;
  4969. Request = hookfunction(syn and syn.request or request, newcclosure(function(reqtbl)
  4970. AddLog(syn and "syn.request" or "request", reqtbl.Url, JSONEncode(Services.HttpService, reqtbl));
  4971. return Request(reqtbl);
  4972. end));
  4973. local Httpget;
  4974. Httpget = hookfunction(game.HttpGet, newcclosure(function(self, url)
  4975. AddLog("HttpGet", url);
  4976. return Httpget(self, url);
  4977. end));
  4978. if (game.HttpGet ~= game.HttpGetAsync) then
  4979. local HttpgetAsync;
  4980. HttpgetAsync = hookfunction(game.HttpGetAsync, newcclosure(function(self, url)
  4981. AddLog("HttpGetAsync", url);
  4982. return HttpgetAsync(self, url);
  4983. end));
  4984. end
  4985. local Httppost;
  4986. Httppost = hookfunction(game.HttpPost, newcclosure(function(self, url)
  4987. AddLog("HttpPost", url);
  4988. return Httppost(self, url);
  4989. end));
  4990. if (game.HttpPost ~= game.HttpPostAsync) then
  4991. local HttppostAsync;
  4992. HttppostAsync = hookfunction(game.HttpPostAsync, newcclosure(function(self, url)
  4993. AddLog("HttpPostAsync", url);
  4994. return HttppostAsync(self, url);
  4995. end));
  4996. end
  4997.  
  4998. local Clone = Clone(ChatLogMessage);
  4999. Clone.Text = "httpspy loaded"
  5000. Clone.RichText = true
  5001. Clone.Visible = true
  5002. Clone.TextTransparency = 1
  5003. Clone.Parent = HttpLogs.Frame.List
  5004. Utils.Tween(Clone, "Sine", "Out", .25, {
  5005. TextTransparency = 0
  5006. });
  5007. HttpLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, HttpLogs.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  5008. end)
  5009.  
  5010. AddCommand("btools", {}, "gives you btools", {3}, function(Caller, Args)
  5011. local BP = LocalPlayer.Backpack
  5012. for i = 1, 4 do
  5013. local Bin = InstanceNew("HopperBin");
  5014. Bin.BinType = i
  5015. -- ProtectInstance(Bin);
  5016. Bin.Parent = BP
  5017. end
  5018. return "client sided btools loaded"
  5019. end)
  5020.  
  5021. AddCommand("spin", {}, "spins your character (optional: speed)", {}, function(Caller, Args, CEnv)
  5022. local Speed = Args[1] or 5
  5023. if (not CEnv[1]) then
  5024. local Spin = InstanceNew("BodyAngularVelocity");
  5025. ProtectInstance(Spin);
  5026. Spin.Parent = GetRoot();
  5027. Spin.MaxTorque = Vector3New(0, math.huge, 0);
  5028. Spin.AngularVelocity = Vector3New(0, Speed, 0);
  5029. CEnv[#CEnv + 1] = Spin
  5030. else
  5031. CEnv[1].AngularVelocity = Vector3New(0, Speed, 0);
  5032. end
  5033. return "started spinning"
  5034. end)
  5035.  
  5036. AddCommand("unspin", {}, "unspins your character", {}, function(Caller, Args)
  5037. local Spinning = LoadCommand("spin").CmdEnv
  5038. for i, v in next, Spinning do
  5039. Destroy(v);
  5040. end
  5041. LoadCommand("spin").CmdEnv = {}
  5042. return "stopped spinning"
  5043. end)
  5044.  
  5045. AddCommand("goto", {"to"}, "teleports yourself to the other character", {3, "1"}, function(Caller, Args)
  5046. local Target = GetPlayer(Args[1]);
  5047. local Delay = tonumber(Args[2]);
  5048. for i, v in next, Target do
  5049. if (Delay) then
  5050. wait(Delay);
  5051. end
  5052. if (Caller ~= LocalPlayer) then
  5053. ExecuteCommand("bring", {Caller.Name, v.Name}, LocalPlayer)
  5054. else
  5055. GetRoot().CFrame = GetRoot(v).CFrame * CFrameNew(-5, 0, 0);
  5056. end
  5057. end
  5058. end)
  5059.  
  5060. AddCommand("loopgoto", {"loopto"}, "loop teleports yourself to the other character", {3, "1"}, function(Caller, Args, CEnv)
  5061. local Target = GetPlayer(Args[1])[1]
  5062. local Connection = CConnect(Heartbeat, function()
  5063. GetRoot().CFrame = GetRoot(Target).CFrame * CFrameNew(0, 0, 2);
  5064. end)
  5065.  
  5066. CEnv[Target.Name] = Connection
  5067. AddPlayerConnection(LocalPlayer, Connection);
  5068. AddConnection(Connection);
  5069. return "now looping to " .. Target.name
  5070. end)
  5071.  
  5072. AddCommand("unloopgoto", {"unloopto"}, "removes loop teleportation to the other character", {}, function(Caller)
  5073. local Looping = LoadCommand("loopgoto").CmdEnv;
  5074. if (not next(Looping)) then
  5075. return "you aren't loop teleporting to anyone"
  5076. end
  5077. DisableAllCmdConnections("loopgoto");
  5078. return "loopgoto disabled"
  5079. end)
  5080.  
  5081. AddCommand("tweento", {"tweengoto"}, "tweens yourself to the other person", {3, "1"}, function(Caller, Args)
  5082. local Target = GetPlayer(Args[1]);
  5083. local TweenService = Services.TweenService
  5084. local Create = TweenService.Create
  5085. for i, v in next, Target do
  5086. local Tween = Create(TweenService, GetRoot(), TweenInfo.new(2), {CFrame = GetRoot(v).CFrame})
  5087. Tween.Play(Tween);
  5088. end
  5089. end)
  5090.  
  5091. AddCommand("truesight", {"ts"}, "shows all the transparent stuff", {}, function(Caller, Args, CEnv)
  5092. local amount = 0
  5093. local time = tick();
  5094. for i, v in next, GetDescendants(Services.Workspace) do
  5095. if (IsA(v, "Part") and v.Transparency >= 0.3) then
  5096. CEnv[v] = v.Transparency
  5097. SpoofProperty(v, "Transparency");
  5098. v.Transparency = 0
  5099. amount = amount + 1
  5100. end
  5101. end
  5102.  
  5103. return format("%d items shown in %.3f (s)", amount, (tick()) - time);
  5104. end)
  5105.  
  5106. AddCommand("notruesight", {"nots"}, "removes truesight", {}, function(Caller, Args)
  5107. local showing = LoadCommand("truesight").CmdEnv
  5108. local time = tick();
  5109. for i, v in next, showing do
  5110. i.Transparency = v
  5111. end
  5112. return format("%d items hidden in %.3f (s)", #showing, (tick()) - time);
  5113. end)
  5114.  
  5115. AddCommand("xray", {}, "see through wallks", {}, function(Caller, Args, CEnv)
  5116. for i, v in next, GetDescendants(Services.Workspace) do
  5117. if IsA(v, "Part") and v.Transparency <= 0.3 then
  5118. CEnv[v] = v.Transparency
  5119. SpoofProperty(v, "Transparency");
  5120. v.Transparency = 0.3
  5121. end
  5122. end
  5123. return "xray is now on"
  5124. end)
  5125.  
  5126. AddCommand("noxray", {"unxray"}, "stops xray", {}, function(Caller, Args)
  5127. local showing = LoadCommand("xray").CmdEnv
  5128. local time = tick();
  5129. for i, v in next, showing do
  5130. i.Transparency = v
  5131. end
  5132. return "xray is now off"
  5133. end)
  5134.  
  5135. AddCommand("nolights", {}, "removes all lights", {}, function(Caller, Args, CEnv)
  5136. SpoofProperty(Lighting, "GlobalShadows");
  5137. for i, v in next, GetDescendants(game) do
  5138. if (IsA(v, "PointLight") or IsA(v, "SurfaceLight") or IsA(v, "SpotLight")) then
  5139. CEnv[v] = v.Parent
  5140. v.Parent = nil
  5141. end
  5142. end
  5143. Lighting.GlobalShadows = true
  5144. return "removed all lights"
  5145. end)
  5146.  
  5147. AddCommand("revertnolights", {"lights"}, "reverts nolights", {}, function()
  5148. local Lights = LoadCommand("nolights").CmdEnv
  5149. for i, v in next, Lights do
  5150. i.Parent = v
  5151. end
  5152. return "fullbright disabled"
  5153. end)
  5154.  
  5155. AddCommand("fullbright", {"fb"}, "turns on fullbright", {}, function(Caller, Args, CEnv)
  5156. local Lighting = Services.Lighting
  5157. for i, v in next, GetDescendants(game) do
  5158. if (IsA(v, "PointLight") or IsA(v, "SurfaceLight") or IsA(v, "SpotLight")) then
  5159. CEnv[v] = v.Range
  5160. SpoofInstance(v);
  5161. v.Enabled = true
  5162. v.Shadows = false
  5163. v.Range = math.huge
  5164. end
  5165. end
  5166. SpoofProperty(Lighting, "GlobalShadows");
  5167. Lighting.GlobalShadows = false
  5168. return "fullbright enabled"
  5169. end)
  5170.  
  5171. AddCommand("nofullbright", {"revertlights", "unfullbright", "nofb"}, "reverts fullbright", {}, function()
  5172. local Lighting = Services.Lighting
  5173. local Lights = LoadCommand("fullbright").CmdEnv
  5174. for i, v in next, Lights do
  5175. i.Range = v
  5176. end
  5177. Lighting.GlobalShadows = true
  5178. return "fullbright disabled"
  5179. end)
  5180.  
  5181. AddCommand("swim", {}, "allows you to use the swim state", {3}, function(Caller, Args, CEnv)
  5182. local Humanoid = GetHumanoid();
  5183. SpoofInstance(Humanoid);
  5184. for i, v in next, Enum.HumanoidStateType.GetEnumItems(Enum.HumanoidStateType) do
  5185. SetStateEnabled(Humanoid, v, false);
  5186. end
  5187. CEnv[1] = GetState(Humanoid);
  5188. ChangeState(Humanoid, Enum.HumanoidStateType.Swimming);
  5189. SpoofProperty(Services.Workspace, "Gravity");
  5190. Services.Workspace.Gravity = 0
  5191. CThread(function()
  5192. CWait(Humanoid.Died);
  5193. Services.Workspace.Gravity = 198
  5194. end)()
  5195. return "swimming enabled"
  5196. end)
  5197.  
  5198. AddCommand("unswim", {"noswim"}, "removes swim", {}, function(Caller, Args)
  5199. local Humanoid = GetHumanoid();
  5200. for i, v in next, Enum.HumanoidStateType.GetEnumItems(Enum.HumanoidStateType) do
  5201. SetStateEnabled(Humanoid, v, true);
  5202. end
  5203. ChangeState(Humanoid, LoadCommand("swim").CmdEnv[1]);
  5204. Services.Workspace.Gravity = 198
  5205. return "swimming disabled"
  5206. end)
  5207.  
  5208. AddCommand("disableanims", {"noanims"}, "disables character animations", {3}, function(Caller, Args)
  5209. local Animate = FindFirstChild(GetCharacter(), "Animate");
  5210. SpoofProperty(Animate, "Disabled");
  5211. Animate.Disabled = true
  5212. return "animations disabled"
  5213. end)
  5214.  
  5215. AddCommand("enableanims", {"anims"}, "enables character animations", {3}, function(Caller, Args)
  5216. FindFirstChild(GetCharacter(), "Animate").Disabled = false
  5217. return "animations enabled"
  5218. end)
  5219.  
  5220. AddCommand("fly", {}, "fly your character", {3}, function(Caller, Args, CEnv)
  5221. CEnv[1] = tonumber(Args[1]) or GetConfig().FlySpeed or 2
  5222. local Speed = CEnv[1]
  5223. local Root = GetRoot();
  5224. local BodyGyro = InstanceNew("BodyGyro");
  5225. local BodyVelocity = InstanceNew("BodyVelocity");
  5226. local IdleAnim1 = "507766388"
  5227.  
  5228. local Character = GetCharacter();
  5229. local Animate = FindFirstChild(Character, "Animate");
  5230.  
  5231. if (Animate) then
  5232. CEnv.Animate = Animate
  5233. Animate.Disabled = true
  5234. end
  5235.  
  5236. SpoofInstance(Root, isR6() and Character.Torso or Character.UpperTorso);
  5237. ProtectInstance(BodyGyro);
  5238. ProtectInstance(BodyVelocity);
  5239. BodyGyro.Parent = Root
  5240. BodyVelocity.Parent = Root
  5241. BodyGyro.P = 9e9
  5242. BodyGyro.MaxTorque = Vector3New(1, 1, 1) * 9e9
  5243. BodyGyro.CFrame = Root.CFrame
  5244. BodyVelocity.MaxForce = Vector3New(1, 1, 1) * 9e9
  5245. BodyVelocity.Velocity = Vector3New(0, 0.1, 0);
  5246. local Humanoid = GetHumanoid();
  5247. for i, v in pairs(Humanoid:GetPlayingAnimationTracks()) do
  5248. v:Stop();
  5249. end
  5250. ChangeState(Humanoid, 8);
  5251. AddConnection(CConnect(Humanoid.StateChanged, function()
  5252. ChangeState(Humanoid, 8);
  5253. Humanoid.PlatformStand = false
  5254. end), CEnv)
  5255.  
  5256. local Table1 = { ['W'] = 0; ['A'] = 0; ['S'] = 0; ['D'] = 0 }
  5257.  
  5258. CThread(function()
  5259. while (next(LoadCommand("fly").CmdEnv) and wait()) do
  5260. Speed = LoadCommand("fly").CmdEnv[1]
  5261.  
  5262. Table1["W"] = Keys["W"] and Speed or 0
  5263. Table1["A"] = Keys["A"] and -Speed or 0
  5264. Table1["S"] = Keys["S"] and -Speed or 0
  5265. Table1["D"] = Keys["D"] and Speed or 0
  5266. if ((Table1["W"] + Table1["S"]) ~= 0 or (Table1["A"] + Table1["D"]) ~= 0) then
  5267. BodyVelocity.Velocity = ((Camera.CoordinateFrame.lookVector * (Table1["W"] + Table1["S"])) + ((Camera.CoordinateFrame * CFrameNew(Table1["A"] + Table1["D"], (Table1["W"] + Table1["S"]) * 0.2, 0).p) - Camera.CoordinateFrame.p)) * 50
  5268. else
  5269. BodyVelocity.Velocity = Vector3New(0, 0.1, 0);
  5270. end
  5271. BodyGyro.CFrame = Camera.CoordinateFrame
  5272. end
  5273. end)();
  5274. end)
  5275.  
  5276. AddCommand("fly2", {}, "fly your character", {3}, function(Caller, Args, CEnv)
  5277. LoadCommand("fly").CmdEnv[1] = tonumber(Args[1]) or GetConfig().FlySpeed or 3
  5278. local Speed = LoadCommand("fly").CmdEnv[1]
  5279. for i, v in next, GetChildren(GetRoot()) do
  5280. if (IsA(v, "BodyPosition") or IsA(v, "BodyGyro")) then
  5281. Destroy(v);
  5282. end
  5283. end
  5284. local BodyPos = InstanceNew("BodyPosition");
  5285. local BodyGyro = InstanceNew("BodyGyro");
  5286. ProtectInstance(BodyPos);
  5287. ProtectInstance(BodyGyro);
  5288. SpoofProperty(GetHumanoid(), "FloorMaterial");
  5289. SpoofProperty(GetHumanoid(), "PlatformStand");
  5290. BodyPos.Parent = GetRoot();
  5291. BodyGyro.Parent = GetRoot();
  5292. BodyGyro.maxTorque = Vector3New(1, 1, 1) * 9e9
  5293. BodyGyro.CFrame = GetRoot().CFrame
  5294. BodyPos.maxForce = Vector3New(1, 1, 1) * math.huge
  5295. GetHumanoid().PlatformStand = true
  5296. CThread(function()
  5297. BodyPos.Position = GetRoot().Position
  5298. while (next(LoadCommand("fly").CmdEnv) and wait()) do
  5299. Speed = LoadCommand("fly").CmdEnv[1]
  5300. local NewPos = (BodyGyro.CFrame - (BodyGyro.CFrame).Position) + BodyPos.Position
  5301. local CoordinateFrame = Camera.CoordinateFrame
  5302. if (Keys["W"]) then
  5303. NewPos = NewPos + CoordinateFrame.lookVector * Speed
  5304.  
  5305. BodyPos.Position = (GetRoot().CFrame * CFrameNew(0, 0, -Speed)).Position;
  5306. BodyGyro.CFrame = CoordinateFrame * CFrame.Angles(-rad(Speed * 15), 0, 0);
  5307. end
  5308. if (Keys["A"]) then
  5309. NewPos = NewPos * CFrameNew(-Speed, 0, 0);
  5310. end
  5311. if (Keys["S"]) then
  5312. NewPos = NewPos - CoordinateFrame.lookVector * Speed
  5313.  
  5314. BodyPos.Position = (GetRoot().CFrame * CFrameNew(0, 0, Speed)).Position;
  5315. BodyGyro.CFrame = CoordinateFrame * CFrame.Angles(-rad(Speed * 15), 0, 0);
  5316. end
  5317. if (Keys["D"]) then
  5318. NewPos = NewPos * CFrameNew(Speed, 0, 0);
  5319. end
  5320. BodyPos.Position = NewPos.Position
  5321. BodyGyro.CFrame = CoordinateFrame
  5322. end
  5323. GetHumanoid().PlatformStand = false
  5324. end)();
  5325. end)
  5326.  
  5327. AddCommand("flyspeed", {"fs"}, "changes the fly speed", {3, "1"}, function(Caller, Args)
  5328. local Speed = tonumber(Args[1]);
  5329. LoadCommand("fly").CmdEnv[1] = Speed or LoadCommand("fly2").CmdEnv[1]
  5330. if (Speed) then
  5331. SetConfig({FlySpeed=Speed});
  5332. return "your fly speed is now " .. Speed
  5333. else
  5334. return "flyspeed must be a number"
  5335. end
  5336. end)
  5337.  
  5338. AddCommand("unfly", {}, "unflies your character", {3}, function()
  5339. local FlyCEnv = LoadCommand("fly").CmdEnv
  5340. if (FlyCEnv.Animate) then
  5341. FlyCEnv.Animate.Disabled = false
  5342. FlyCEnv.Animate = nil
  5343. end
  5344. DisableAllCmdConnections("fly");
  5345. table.clear(FlyCEnv);
  5346. LoadCommand("fly2").CmdEnv = {}
  5347. local Root = GetRoot();
  5348. local Instances = { ["BodyPosition"] = true, ["BodyGyro"] = true, ["BodyVelocity"] = true }
  5349. for i, v in next, GetChildren(Root) do
  5350. if (Instances[v.ClassName]) then
  5351. Destroy(v);
  5352. end
  5353. end
  5354. UnSpoofInstance(Root);
  5355. GetHumanoid().PlatformStand = false
  5356. end)
  5357.  
  5358. AddCommand("float", {}, "floats your character", {}, function(Caller, Args, CEnv)
  5359. if (not CEnv[1]) then
  5360. local Part = InstanceNew("Part");
  5361. Part.CFrame = CFrameNew(0, -10000, 0);
  5362. Part.Size = Vector3New(2, .2, 1.5);
  5363. Part.Material = "Grass"
  5364. Part.Anchored = true
  5365. Part.Transparency = 1
  5366. ProtectInstance(Part);
  5367. Part.Parent = Services.Workspace
  5368. CEnv[2] = Part
  5369. local R6 = isR6();
  5370. local Root = GetRoot();
  5371. AddConnection(CConnect(RenderStepped, function()
  5372. if (CEnv[1] and Root) then
  5373. Part.CFrame = Root.CFrame * CFrameNew(0, -3.1, 0);
  5374. else
  5375. Part.CFrame = CFrameNew(0, -10000, 0);
  5376. Root = GetRoot();
  5377. end
  5378. if (Keys["Q"]) then
  5379. Root.CFrame = Root.CFrame * CFrameNew(0, -1.5, 0);
  5380. elseif (Keys["E"]) then
  5381. Root.CFrame = Root.CFrame * CFrameNew(0, 1.5, 0);
  5382. end
  5383. end), CEnv)
  5384. return "now floating"
  5385. end
  5386. end)
  5387.  
  5388. AddCommand("unfloat", {"nofloat"}, "stops float", {}, function(Caller, Args, CEnv)
  5389. local Floating = LoadCommand("float").CmdEnv
  5390. if (Floating[1]) then
  5391. Disconnect(Floating[1]);
  5392. Destroy(Floating[2]);
  5393. LoadCommand("float").CmdEnv = {}
  5394. return "stopped floating"
  5395. end
  5396. return "floating not on"
  5397. end)
  5398.  
  5399. AddCommand("fov", {}, "sets your fov", {}, function(Caller, Args)
  5400. local Amount = tonumber(Args[1]) or 70
  5401. SpoofProperty(Camera, "FieldOfView");
  5402. Camera.FieldOfView = Amount
  5403. end)
  5404.  
  5405. AddCommand("noclip", {}, "noclips your character", {3}, function(Caller, Args, CEnv)
  5406. local Char = GetCharacter()
  5407. local Noclipping = AddConnection(CConnect(Stepped, function()
  5408. for i, v in next, GetChildren(Char) do
  5409. if (IsA(v, "BasePart") and v.CanCollide) then
  5410. SpoofProperty(v, "CanCollide");
  5411. v.CanCollide = false
  5412. end
  5413. end
  5414. end), CEnv);
  5415. local Torso = isR6() and Char.Torso or Char.UpperTorso
  5416. local Noclipping2 = AddConnection(CConnect(Torso.Touched, function(Part)
  5417. if (Part and Part.CanCollide and not FindFirstChildWhichIsA(Part.Parent, "Humanoid")) then
  5418. local OldTransparency = Part.Transparency
  5419. Part.CanCollide = false
  5420. Part.Transparency = Part.Transparency <= 0.5 and 0.6 or Part.Transparency
  5421. wait(2);
  5422. Part.CanCollide = true
  5423. Part.Transparency = OldTransparency
  5424. end
  5425. end), CEnv);
  5426. Utils.Notify(Caller, "Command", "noclip enabled");
  5427. CWait(GetHumanoid().Died);
  5428. DisableAllCmdConnections("noclip");
  5429. return "noclip disabled"
  5430. end)
  5431.  
  5432. AddCommand("clip", {"unnoclip"}, "disables noclip", {}, function(Caller, Args)
  5433. if (not next(LoadCommand("noclip").CmdEnv)) then
  5434. return "you aren't in noclip"
  5435. else
  5436. DisableAllCmdConnections("noclip");
  5437. return "noclip disabled"
  5438. end
  5439. end)
  5440.  
  5441. AddCommand("anim", {"animation"}, "plays an animation", {3, "1"}, function(Caller, Args)
  5442. local Anims = {
  5443. ["idle"] = 180435571,
  5444. ["idle2"] = 180435792,
  5445. ["walk"] = 180426354,
  5446. ["run"] = 180426354,
  5447. ["jump"] = 125750702,
  5448. ["climb"] = 180436334,
  5449. ["toolnone"] = 182393478,
  5450. ["fall"] = 180436148,
  5451. ["sit"] = 178130996,
  5452. ["dance"] = 182435998,
  5453. ["dance2"] = 182491277,
  5454. ["dance3"] = 182491423
  5455. }
  5456. if (not Anims[Args[1]]) then
  5457. return "there is no animation named " .. Args[1]
  5458. end
  5459. local Humanoid = GetHumanoid()
  5460. local Animation = InstanceNew("Animation");
  5461. Animation.AnimationId = "rbxassetid://" .. Anims[Args[1]]
  5462. local LoadedAnimation = Humanoid.LoadAnimation(Humanoid, Animation);
  5463. LoadedAnimation.Play(LoadedAnimation);
  5464. local Playing = CConnect(GetPropertyChangedSignal(LoadedAnimation, "IsPlaying"), function()
  5465. if (LoadedAnimation.IsPlaying ~= true) then
  5466. LoadedAnimation.Play(LoadedAnimation, .1, 1, 10);
  5467. end
  5468. end)
  5469. return "playing animation " .. Args[1]
  5470. end)
  5471.  
  5472. AddCommand("lastcommand", {"lastcmd"}, "executes the last command", {}, function(Caller)
  5473. local Command = LastCommand[#LastCommand]
  5474. ExecuteCommand(Command[1], Command[2], Command[3]);
  5475. return format("command %s executed", Command[1]);
  5476. end)
  5477.  
  5478. AddCommand("whisper", {}, "whispers something to another user", {"2"}, function(Caller, Args)
  5479. local Target = GetPlayer(Args[1]);
  5480. local Message = concat(shift(Args), " ");
  5481. local ChatRemote = Services.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest
  5482. for i, v in next, Target do
  5483. ChatRemote.FireServer(ChatRemote, format("/w %s %s", v.Name, Message), "All");
  5484. Utils.Notify(Caller or LocalPlayer, "Command", "Message sent to " .. v.Name);
  5485. end
  5486. end)
  5487.  
  5488. AddCommand("chat", {}, "sends a message", {"1"}, function(Caller, Args)
  5489. local ChatRemote = Services.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest
  5490. local toChat = concat(Args, " ");
  5491. ChatRemote.FireServer(ChatRemote, toChat, "All");
  5492. return "chatted " .. toChat
  5493. end)
  5494.  
  5495. AddCommand("spam", {"spamchat", "spamc"}, "spams the chat with a message", {"1"}, function(Caller, Args, CEnv)
  5496. local WaitTime = CEnv.WaitTime or tonumber(Args[#Args]);
  5497. if (tonumber(Args[#Args])) then
  5498. Args = pack(unpack(Args, 1, #Args - 1));
  5499. Args.n = nil
  5500. end
  5501. local Message = concat(Args, " ");
  5502. CEnv.Spamming = true
  5503. CEnv.WaitTime = WaitTime or 1
  5504. local ChatRemote = Services.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest
  5505. CThread(function()
  5506. while (CEnv.Spamming) do
  5507. ChatRemote.FireServer(ChatRemote, Message, "All");
  5508. wait(CEnv.WaitTime);
  5509. end
  5510. end)()
  5511. return format("spamming %s with a delay of %d", Message, CEnv.WaitTime);
  5512. end)
  5513.  
  5514. AddCommand("spamspeed", {"sspeed"}, "sets your spam speed", {"1"}, function(Caller, Args)
  5515. local Speed = tonumber(Args[1]);
  5516. if (not Speed) then
  5517. return "number expected"
  5518. end
  5519. LoadCommand("spam").CmdEnv.WaitTime = Speed
  5520. return "spamspeed set at " .. Speed
  5521. end)
  5522.  
  5523. AddCommand("silentchat", {"chatsilent"}, "sends a message but will not show in the chat (fires .Chatted signals)", {"1"}, function(Caller, Args)
  5524. local toChat = concat(Args, " ");
  5525. Services.Players.Chat(Services.Players, toChat);
  5526. return "silent chatted " .. toChat
  5527. end)
  5528.  
  5529. AddCommand("spamsilentchat", {"spamchatlogs"}, "spams sending messages with what you want", {"1"}, function(Caller, Args, CEnv)
  5530. local toChat = concat(Args, " ");
  5531. local ChatMsg = Services.Players.Chat
  5532. for i = 1, 100 do
  5533. ChatMsg(Services.Players, toChat);
  5534. end
  5535. AddConnection(CConnect(Players.Chatted, function()
  5536. for i = 1, 30 do
  5537. ChatMsg(Players, toChat);
  5538. end
  5539. end), CEnv);
  5540. return "spamming chat sliently"
  5541. end)
  5542.  
  5543. AddCommand("unspamsilentchat", {"nospamsilentchat", "unspamchatlogs", "nospamchatlogs", "unspamchat", "unspam"}, "stops the spam of chat", {}, function()
  5544. local Spamming = LoadCommand("spamsilentchat").CmdEnv
  5545. local Spamming1 = LoadCommand("spam").CmdEnv
  5546. if (not next(Spamming) and not next(Spamming1)) then
  5547. return "you are not spamming chat"
  5548. end
  5549. DisableAllCmdConnections("spamsilentchat");
  5550. Spamming1.Spamming = false
  5551. return "stopped spamming chat"
  5552. end)
  5553.  
  5554. AddCommand("advertise", {}, "advertises the script", {}, function()
  5555. local ChatRemote = Services.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest
  5556. ChatRemote.FireServer(ChatRemote, "I am using fates admin, join the server 5epGRYR", "All");
  5557. end)
  5558.  
  5559. AddCommand("joinserver", {"discord"}, "joins the fates admin discord server", {}, function()
  5560. local Request = syn and syn.request or request
  5561. local HttpService = Services.HttpService
  5562. if (Request({
  5563. Url = "http://127.0.0.1:6463/rpc?v=1",
  5564. Method = "POST",
  5565. Headers = {
  5566. ["Content-Type"] = "application/json",
  5567. ["Origin"] = "https://discord.com"
  5568. },
  5569. Body = JSONEncode(HttpService, {
  5570. cmd = "INVITE_BROWSER",
  5571. args = {
  5572. code = "5epGRYR"
  5573. },
  5574. nonce = GenerateGUID(HttpService, false)
  5575. }),
  5576. }).StatusCode == 200) then
  5577. return "joined fates admin discord server"
  5578. else
  5579. return "discord isn't open"
  5580. end
  5581. end)
  5582.  
  5583. AddCommand("rejoin", {"rj"}, "rejoins the game you're currently in", {}, function(Caller)
  5584. if (Caller == LocalPlayer) then
  5585. local TeleportService = Services.TeleportService
  5586. if (#GetPlayers(Players) == 1) then
  5587. LocalPlayer:Kick();
  5588. TeleportService.Teleport(TeleportService, game.PlaceId);
  5589. else
  5590. TeleportService.TeleportToPlaceInstance(TeleportService, game.PlaceId, game.JobId)
  5591. end
  5592. return "Rejoining..."
  5593. end
  5594. end)
  5595.  
  5596. AddCommand("serverhop", {"sh"}, "switches servers (optional: min, max (default: max))", {{"min", "max"}}, function(Caller, Args)
  5597. if (Caller == LocalPlayer) then
  5598. Utils.Notify(Caller or LocalPlayer, "Command", "Looking for servers...");
  5599. local order = ""
  5600. local Option, Server = lower(Args[1] or "max");
  5601. if Option == "min" then
  5602. order = "Asc"
  5603. elseif Option == "max" then
  5604. order = "Desc"
  5605. end;
  5606.  
  5607. local Servers = {};
  5608. local url = format("https://games.roblox.com/v1/games/%s/servers/Public?sortOrder=%s&limit=100", game.PlaceId, order);
  5609. local starting = tick();
  5610. repeat
  5611. local good, result = pcall(function()
  5612. return game:HttpGet(url);
  5613. end);
  5614. if (not good) then
  5615. wait(2);
  5616. continue;
  5617. end
  5618. local decoded = Services.HttpService:JSONDecode(result);
  5619. if (#decoded.data ~= 0) then
  5620. Servers = decoded.data
  5621. for i, v in pairs(Servers) do
  5622. if (v.maxPlayers and v.playing and v.maxPlayers > v.playing and v.id ~= game.JobId) then
  5623. Server = v
  5624. break;
  5625. end
  5626. end
  5627. if (Server) then
  5628. break;
  5629. end
  5630. end
  5631. url = format("https://games.roblox.com/v1/games/%s/servers/Public?sortOrder=%s&limit=100&cursor=%s", game.PlaceId, order, decoded.nextPageCursor);
  5632. until tick() - starting >= 600;
  5633. if (not Server or #Servers == 0) then
  5634. return "no servers found";
  5635. end
  5636.  
  5637. local queue_on_teleport = syn and syn.queue_on_teleport or queue_on_teleport
  5638. if (queue_on_teleport and not Args[2]) then
  5639. queue_on_teleport("loadstring(game.HttpGet(game, \"https://raw.githubusercontent.com/fatesc/fates-admin/main/main.lua\"))()");
  5640. end;
  5641.  
  5642. Services.TeleportService:TeleportToPlaceInstance(game.PlaceId, Server.id);
  5643. return format("joining server (%d/%d players)", Server.playing, Server.maxPlayers);
  5644. end
  5645. end);
  5646.  
  5647. AddCommand("changelogs", {"cl"}, "shows you the updates on fates admin", {}, function()
  5648. local ChangeLogs = JSONDecode(Services.HttpService, game.HttpGetAsync(game, "https://api.github.com/repos/fatesc/fates-admin/commits?per_page=100&path=main.lua"));
  5649. ChangeLogs = map(ChangeLogs, function(i, v)
  5650. return {
  5651. ["Author"] = v.commit.author.name,
  5652. ["Date"] = gsub(v.commit.committer.date, "[T|Z]", " "),
  5653. ["Message"] = v.commit.message
  5654. }
  5655. end)
  5656. for i, v in next, ChangeLogs do
  5657. Utils.Print(format("Author: %s\nDate: %s\nMessage: %s", v.Author, v.Date, v.Message));
  5658. end
  5659.  
  5660. return "changelogs loaded, press f9"
  5661. end)
  5662.  
  5663. AddCommand("whitelist", {"wl"}, "whitelists a user so they can use commands", {"1"}, function(Caller, Args)
  5664. local Target = GetPlayer(Args[1]);
  5665. for i, v in next, Target do
  5666. AdminUsers[#AdminUsers + 1] = v
  5667. Utils.Notify(v, "Whitelisted", format("You (%s) are whitelisted to use commands", v.Name));
  5668. end
  5669. end)
  5670.  
  5671. AddCommand("whitelisted", {"whitelistedusers"}, "shows all the users whitelisted to use commands", {}, function(Caller)
  5672. return next(AdminUsers) and concat(map(AdminUsers, function(i,v) return v.Name end), ", ") or "no users whitelisted"
  5673. end)
  5674.  
  5675. AddCommand("blacklist", {"bl"}, "blacklists a whitelisted user", {"1"}, function(Caller, Args)
  5676. local Target = GetPlayer(Args[1]);
  5677. for i, v in next, Target do
  5678. if (Tfind(AdminUsers, v)) then
  5679. AdminUsers[indexOf(AdminUsers, v)] = nil
  5680. end
  5681. end
  5682. end)
  5683.  
  5684. AddCommand("exceptions", {}, "blocks user from being used in stuff like kill all", {"1"}, function(Caller, Args)
  5685. local Target = GetPlayer(Args[1]);
  5686. for i, v in next, Target do
  5687. Exceptions[#Exceptions + 1] = v
  5688. Utils.Notify(Caller, "Command", v.Name .. " is added to the exceptions list");
  5689. end
  5690. end)
  5691.  
  5692. AddCommand("noexception", {}, "removes user from exceptions list", {"1"}, function(Caller, Args)
  5693. for i2, v2 in next, Exceptions do
  5694. if (v2.Name == Args[1]) then
  5695. v2 = nil
  5696. end
  5697. Utils.Notify(Caller, "Command", Args[1] .. " is removed from the exceptions list");
  5698. end
  5699. end)
  5700.  
  5701. AddCommand("clearexceptions", {}, "removes users from exceptions list", {}, function(Caller, Args)
  5702. Exceptions = {}
  5703. return "exceptions list cleared"
  5704. end)
  5705. local CommandsLoaded = false
  5706. AddCommand("commands", {"cmds"}, "shows you all the commands listed in fates admin", {}, function()
  5707. if (not CommandsLoaded) then
  5708. local CommandsList = Commands.Frame.List
  5709. Utils.SmoothScroll(CommandsList, .14);
  5710. for _, v in next, CommandsTable do
  5711. if (not FindFirstChild(CommandsList, v.Name)) then
  5712. local Clone = Clone(Command)
  5713. Utils.Hover(Clone, "BackgroundColor3");
  5714. Utils.ToolTip(Clone, v.Name .. "\n" .. v.Description);
  5715. Clone.CommandText.Text = v.Name .. (#v.Aliases > 0 and " (" ..concat(v.Aliases, ", ") .. ")" or "");
  5716. Clone.Name = v.Name
  5717. Clone.Visible = true
  5718. Clone.Parent = CommandsList
  5719. end
  5720. end
  5721. Commands.Frame.List.CanvasSize = UDim2.fromOffset(0, Commands.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  5722. CommandsTransparencyClone = Clone(Commands);
  5723. Utils.SetAllTrans(Commands)
  5724. CommandsLoaded = true
  5725. end
  5726. Commands.Visible = true
  5727. Utils.TweenAllTransToObject(Commands, .25, CommandsTransparencyClone);
  5728. return "Commands Loaded"
  5729. end)
  5730.  
  5731. AddCommand("killscript", {}, "kills the script", {}, function(Caller)
  5732. if (Caller == LocalPlayer) then
  5733. deepsearch(Connections, function(i,v)
  5734. if (type(v) == 'userdata' and v.Disconnect) then
  5735. Disconnect(v);
  5736. elseif (type(v) == 'boolean') then
  5737. v = false
  5738. end
  5739. end);
  5740. for i, v in next, Hooks.SpoofedProperties do
  5741. for i2, v2 in next, v do
  5742. i[v2.Property] = v2.SpoofedProperty[v2.Property]
  5743. end
  5744. end
  5745. for i, v in next, Hooks do
  5746. if (type(v) == 'boolean') then
  5747. v = false
  5748. end
  5749. if (type(v) == 'function') then
  5750.  
  5751. end
  5752. end
  5753. Destroy(UI);
  5754. getgenv().F_A = nil
  5755. setreadonly(mt, false);
  5756. mt = OldMetaMethods
  5757. setreadonly(mt, true);
  5758. for i, v in next, getfenv() do
  5759. getfenv()[i] = nil
  5760. end
  5761. end
  5762. end)
  5763.  
  5764. AddCommand("reloadscript", {}, "kills the script and reloads it", {}, function(Caller)
  5765. if (Caller == LocalPlayer) then
  5766. ExecuteCommand("killscript", {}, LocalPlayer);
  5767. loadstring(game:HttpGet("https://raw.githubusercontent.com/fatesc/fates-admin/main/main.lua"))();
  5768. end
  5769. end)
  5770.  
  5771. AddCommand("commandline", {"cmd", "cli"}, "brings up a cli, can be useful for when games detect by textbox", {}, function()
  5772. if (not _L.CLI) then
  5773. _L.CLI = true
  5774. while true do
  5775. rconsoleprint("@@WHITE@@");
  5776. rconsoleprint("CMD >");
  5777. local Input = rconsoleinput("");
  5778. local CommandArgs = split(Input, " ");
  5779. local Command = LoadCommand(CommandArgs[1]);
  5780. local Args = shift(CommandArgs);
  5781. if (Command and CommandArgs[1] ~= "") then
  5782. if (Command.ArgsNeeded > #Args) then
  5783. rconsoleprint("@@YELLOW@@");
  5784. return rconsoleprint(format("Insuficient Args (you need %d)\n", Command.ArgsNeeded));
  5785. end
  5786.  
  5787. local Success, Err = pcall(function()
  5788. local Executed = Command.Function()(LocalPlayer, Args, Command.CmdEnv);
  5789. if (Executed) then
  5790. rconsoleprint("@@GREEN@@");
  5791. rconsoleprint(Executed .. "\n");
  5792. end
  5793. if (#LastCommand == 3) then
  5794. LastCommand = shift(LastCommand);
  5795. end
  5796. LastCommand[#LastCommand + 1] = {Command, plr, Args, Command.CmdEnv}
  5797. end);
  5798. if (not Success and Debug) then
  5799. rconsoleerr(Err);
  5800. end
  5801. else
  5802. rconsolewarn("couldn't find the command " .. CommandArgs[1] .. "\n");
  5803. end
  5804. end
  5805. end
  5806. end)
  5807.  
  5808. AddCommand("setprefix", {}, "changes your prefix", {"1"}, function(Caller, Args)
  5809. local PrefixToSet = Args[1]
  5810. if (match(PrefixToSet, "%A")) then
  5811. Prefix = PrefixToSet
  5812. Utils.Notify(Caller, "Command", format("your new prefix is now '%s'", PrefixToSet));
  5813. return "use command saveprefix to save your prefix"
  5814. else
  5815. return "prefix must be a symbol"
  5816. end
  5817. end)
  5818.  
  5819. AddCommand("setcommandbarprefix", {"setcprefix"}, "sets your command bar prefix to whatever you input", {}, function()
  5820. ChooseNewPrefix = true
  5821. local CloseNotif = Utils.Notify(LocalPlayer, "New Prefix", "Input the new prefix you would like to have", 7);
  5822. end)
  5823.  
  5824. AddCommand("saveprefix", {}, "saves your prefix", {}, function(Caller, Args)
  5825. if (GetConfig().Prefix == Prefix and Enum.KeyCode[GetConfig().CommandBarPrefix] == CommandBarPrefix) then
  5826. return "nothing to save, prefix is the same"
  5827. else
  5828. SetConfig({["Prefix"]=Prefix,["CommandBarPrefix"]=split(tostring(CommandBarPrefix), ".")[3]});
  5829. return "saved prefix"
  5830. end
  5831. end)
  5832.  
  5833. AddCommand("clear", {"clearcli", "cls"}, "clears the commandline (if open)", {}, function()
  5834. if (_L.CLI) then
  5835. rconsoleclear();
  5836. rconsolename("Admin Command Line");
  5837. rconsoleprint("\nCommand Line:\n");
  5838. return "cleared console"
  5839. end
  5840. return "cli is not open"
  5841. end)
  5842.  
  5843. AddCommand("widebar", {}, "widens the command bar (toggle)", {}, function(Caller, Args)
  5844. WideBar = not WideBar
  5845. if (not Draggable) then
  5846. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  5847. Position = UDim2.new(0.5, WideBar and -200 or -100, 1, 5) -- tween -110
  5848. })
  5849. end
  5850. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  5851. Size = UDim2.new(0, WideBar and 400 or 200, 0, 35) -- tween -110
  5852. })
  5853. return format("widebar %s", WideBar and "enabled" or "disabled")
  5854. end)
  5855.  
  5856. AddCommand("draggablebar", {"draggable"}, "makes the command bar draggable", {}, function(Caller)
  5857. Draggable = not Draggable
  5858. CommandBarOpen = not CommandBarOpen
  5859. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  5860. Position = UDim2.new(0, Mouse.X, 0, Mouse.Y + 36);
  5861. })
  5862. Utils.Draggable(CommandBar);
  5863. local TransparencyTween = CommandBarOpen and Utils.TweenAllTransToObject or Utils.TweenAllTrans
  5864. local Tween = TransparencyTween(CommandBar, .5, CommandBarTransparencyClone)
  5865. CommandBar.Input.Text = ""
  5866. return format("draggable command bar %s", Draggable and "enabled" or "disabled")
  5867. end)
  5868.  
  5869. local ToggleChatPrediction
  5870. AddCommand("chatprediction", {}, "enables command prediction on the chatbar", {}, function()
  5871. ToggleChatPrediction();
  5872. local ChatBar = WaitForChild(_L.Frame2, "ChatBar", .1);
  5873. ChatBar.CaptureFocus(ChatBar);
  5874. wait();
  5875. ChatBar.Text = Prefix
  5876. return "chat prediction enabled"
  5877. end)
  5878.  
  5879. AddCommand("blink", {"blinkws"}, "cframe speed", {}, function(Caller, Args, CEnv)
  5880. local Speed = tonumber(Args[1]) or 5
  5881. local Time = tonumber(Args[2]) or .05
  5882. LoadCommand("blink").CmdEnv[1] = Speed
  5883. CThread(function()
  5884. while (next(LoadCommand("blink").CmdEnv) and wait(Time)) do
  5885. Speed = LoadCommand("blink").CmdEnv[1]
  5886. if (Keys["W"] or Keys["A"] or Keys["S"] or Keys["D"]) then
  5887. GetRoot().CFrame = GetRoot().CFrame + GetHumanoid().MoveDirection * Speed
  5888. end
  5889. end
  5890. end)();
  5891. return "blink speed enabled"
  5892. end)
  5893.  
  5894. AddCommand("unblink", {"noblinkws", "unblink", "noblink"}, "stops cframe speed", {}, function()
  5895. local Blink = LoadCommand("blink").CmdEnv
  5896. if (not next(Blink)) then
  5897. return "blink is already disabled"
  5898. end
  5899. LoadCommand("blink").CmdEnv = {}
  5900. return "blink speed disabled"
  5901. end)
  5902.  
  5903. AddCommand("orbit", {}, "orbits a yourself around another player", {3, "1"}, function(Caller, Args, CEnv)
  5904. local Target = GetPlayer(Args[1])[1];
  5905. if (Target == LocalPlayer) then
  5906. return "You cannot orbit yourself."
  5907. end
  5908. local Radius = tonumber(Args[3]) or 7
  5909. local Speed = tonumber(Args[2]) or 1
  5910. local random = random(tick() / 2, tick());
  5911. local Root, TRoot = GetRoot(), GetRoot(Target);
  5912. AddConnection(CConnect(Heartbeat, function()
  5913. Root.CFrame = CFrameNew(TRoot.Position + Vector3New(sin(tick() * Speed) * Radius, 0, cos(tick() * Speed) * Radius), TRoot.Position);
  5914. end), CEnv);
  5915. return "now orbiting around " .. Target.Name
  5916. end)
  5917.  
  5918. AddCommand("unorbit", {"noorbit"}, "unorbits yourself from the other player", {}, function()
  5919. if (not next(LoadCommand("orbit").CmdEnv)) then
  5920. return "you are not orbiting around someone"
  5921. end
  5922. DisableAllCmdConnections("orbit");
  5923. return "orbit stopped"
  5924. end)
  5925.  
  5926. -- AddCommand("bypass", {"clientbypass"}, "client sided bypass", {3}, function()
  5927. -- AddConnection(CConnect(LocalPlayer.CharacterAdded, function()
  5928. -- WaitForChild(GetCharacter(), "Humanoid");
  5929. -- wait(.4);
  5930. -- SpoofInstance(GetHumanoid());
  5931. -- SpoofInstance(GetRoot(), isR6() and GetCharacter().Torso or GetCharacter().UpperTorso);
  5932. -- ProtectInstance(GetRoot());
  5933. -- ProtectInstance(GetHumanoid());
  5934. -- end));
  5935. -- local Char = GetCharacter();
  5936. -- Char.BreakJoints(Char);
  5937. -- CommandsTable["goto"].Function = CommandsTable["tweento"].Function
  5938. -- CommandsTable["to"].Function = CommandsTable["tweento"].Function
  5939. -- return "clientsided bypass enabled"
  5940. -- end)
  5941.  
  5942. AddCommand("shiftlock", {}, "enables shiftlock in your game (some games have it off)", {}, function()
  5943. if (LocalPlayer.DevEnableMouseLock) then
  5944. return "shiftlock is already on"
  5945. end
  5946. LocalPlayer.DevEnableMouseLock = true
  5947. return "shiftlock is now on"
  5948. end)
  5949.  
  5950. AddCommand("copyname", {"copyusername"}, "copies a users name to your clipboard", {"1"}, function(Caller, Args)
  5951. local Target = GetPlayer(Args[1])[1];
  5952. if (setclipboard) then
  5953. setclipboard(Target.Name);
  5954. else
  5955. Frame2.Chatbar.CaptureFocus(Frame2.Chatbar);
  5956. wait();
  5957. Frame2.Chatbar.Text = Target.Name
  5958. end
  5959. return "copied " .. Target.Name .. "'s username"
  5960. end)
  5961.  
  5962. AddCommand("copyid", {"copyuserid", "copyuid"}, "copies someones userid to your clipboard", {"1"}, function(Caller, Args)
  5963. local Target = GetPlayer(Args[1])
  5964. if (setclipboard and Target[1]) then
  5965. setclipboard(Target.UserId);
  5966. return format("copied %s' userid", Target.Name);
  5967. end
  5968. return "exploit doesn't have copy clipboard support"
  5969. end)
  5970.  
  5971. AddCommand("switchteam", {"team"}, "switches your team", {}, function(Caller, Args)
  5972. local Team = Args[1]
  5973. Team = FindFirstChild(Services.Teams, Team);
  5974. if (not Team) then
  5975. return Team.. " is not a valid team"
  5976. end
  5977. for i, v in next, GetDescendants(Services.Workspace) do
  5978. if (IsA(v, "SpawnLocation") and v.BrickColor == Team.TeamColor) then
  5979. firetouchinterest(v, GetRoot(), 0);
  5980. firetouchinterest(v, GetRoot(), 1);
  5981. break
  5982. end
  5983. end
  5984. wait(.1);
  5985. return LocalPlayer.Team == Team and "changed team to " .. Team.Name or "could'nt change team to " .. Team.Name
  5986. end)
  5987.  
  5988. AddCommand("freecam", {"fc"}, "enables/disables freecam", {}, function(Caller, Args, CEnv)
  5989. if (not CEnv.Activated) then
  5990. -- roblox freecam modifed by fate
  5991. local Spring = {}
  5992. Spring.__index = Spring
  5993. function Spring:Update(dt)
  5994. local t, k, d, x0, v0 = self.t, self.k, self.d, self.x, self.v
  5995. local a0 = k * (t - x0) + v0 * d
  5996. local v1 = v0 + a0 * (dt / 2);
  5997. local a1 = k * (t - (x0 + v0 * (dt / 2))) + v1 * d
  5998. local v2 = v0 + a1 * (dt / 2);
  5999. local a2 = k * (t - (x0 + v1 * (dt / 2))) + v2 * d
  6000. local v3 = v0 + a2 * dt
  6001. local x4 = x0 + (v0 + 2 * (v1 + v2) + v3) * (dt / 6);
  6002. self.x, self.v = x4, v0 + (a0 + 2 * (a1 + a2) + k * (t - (x0 + v2 * dt)) + v3 * d) * (dt / 6);
  6003. return x4
  6004. end
  6005. function Spring.new(stiffness, dampingCoeff, dampingRatio, initialPos)
  6006. local self = setmetatable({}, Spring);
  6007.  
  6008. dampingRatio = dampingRatio or 1
  6009. local m = dampingCoeff * dampingCoeff / (4 * stiffness * dampingRatio * dampingRatio);
  6010. self.k = stiffness / m
  6011. self.d = -dampingCoeff / m
  6012. self.x = initialPos
  6013. self.t = initialPos
  6014. self.v = initialPos * 0
  6015.  
  6016. return self
  6017. end
  6018. local StarterGui = Services.StarterGui
  6019. local UserInputService = Services.UserInputService
  6020. local RunService = Services.RunService
  6021.  
  6022. local WasGuiVisible = {}
  6023. local GetCore, GetCoreGuiEnabled, SetCore, SetCoreGuiEnabled = StarterGui.GetCore, StarterGui.GetCoreGuiEnabled, StarterGui.SetCore, StarterGui.SetCoreGuiEnabled
  6024. local CoreGuiType = Enum.CoreGuiType
  6025. function ToggleGui(on)
  6026. if not on then
  6027. WasGuiVisible["PointsNotificationsActive"] = GetCore(StarterGui, "PointsNotificationsActive");
  6028. WasGuiVisible["BadgesNotificationsActive"] = GetCore(StarterGui, "BadgesNotificationsActive");
  6029. WasGuiVisible["Health"] = GetCoreGuiEnabled(StarterGui, CoreGuiType.Health);
  6030. WasGuiVisible["Backpack"] = GetCoreGuiEnabled(StarterGui, CoreGuiType.Backpack);
  6031. WasGuiVisible["PlayerList"] = GetCoreGuiEnabled(StarterGui, CoreGuiType.PlayerList);
  6032. WasGuiVisible["Chat"] = GetCoreGuiEnabled(StarterGui, CoreGuiType.Chat);
  6033. end
  6034.  
  6035. local function GuiOn(name)
  6036. if on == false then
  6037. return false
  6038. end
  6039. if WasGuiVisible[name] ~= nil then
  6040. return WasGuiVisible[name]
  6041. end
  6042. return true
  6043. end
  6044.  
  6045. SetCore(StarterGui, "PointsNotificationsActive", GuiOn("PointsNotificationsActive"));
  6046. SetCore(StarterGui, "BadgesNotificationsActive", GuiOn("BadgesNotificationsActive"));
  6047.  
  6048. SetCoreGuiEnabled(StarterGui, CoreGuiType.Health, GuiOn("Health"));
  6049. SetCoreGuiEnabled(StarterGui, CoreGuiType.Backpack, GuiOn("Backpack"));
  6050. SetCoreGuiEnabled(StarterGui, CoreGuiType.PlayerList, GuiOn("PlayerList"));
  6051. SetCoreGuiEnabled(StarterGui, CoreGuiType.Chat, GuiOn("Chat"));
  6052. end
  6053.  
  6054. local Vector2New = Vector2.new
  6055.  
  6056. local DEF_FOV = 70
  6057. local NM_ZOOM = math.tan(DEF_FOV * math.pi/360);
  6058. local LVEL_GAIN = Vector3New(1, 0.75, 1);
  6059. local RVEL_GAIN = Vector2New(0.85, 1) / 128
  6060. local FVEL_GAIN = -330
  6061. local DEADZONE = 0.125
  6062. local FOCUS_OFFSET = CFrameNew(0, 0, -16);
  6063.  
  6064. local DIRECTION_LEFT = 1
  6065. local DIRECTION_RIGHT = 2
  6066. local DIRECTION_FORWARD = 3
  6067. local DIRECTION_BACKWARD = 4
  6068. local DIRECTION_UP = 5
  6069. local DIRECTION_DOWN = 6
  6070.  
  6071. local KEY_MAPPINGS = {
  6072. [DIRECTION_LEFT] = {Enum.KeyCode.A, Enum.KeyCode.H},
  6073. [DIRECTION_RIGHT] = {Enum.KeyCode.D, Enum.KeyCode.K},
  6074. [DIRECTION_FORWARD] = {Enum.KeyCode.W, Enum.KeyCode.U},
  6075. [DIRECTION_BACKWARD] = {Enum.KeyCode.S, Enum.KeyCode.J},
  6076. [DIRECTION_UP] = {Enum.KeyCode.E, Enum.KeyCode.I},
  6077. [DIRECTION_DOWN] = {Enum.KeyCode.Q, Enum.KeyCode.Y},
  6078. }
  6079.  
  6080. local screenGuis = {}
  6081. local freeCamEnabled = false
  6082.  
  6083. local V3, V2 = Vector3New(), Vector2New();
  6084.  
  6085. local stateRot = V2
  6086. local panDeltaGamepad = V2
  6087. local panDeltaMouse = V2
  6088.  
  6089. local velSpring = Spring.new(7 / 9, 1 / 3, 1, V3);
  6090. local rotSpring = Spring.new(7 / 9, 1 / 3, 1, V2);
  6091. local fovSpring = Spring.new(2, 1 / 3, 1, 0);
  6092.  
  6093. local gp_x = 0
  6094. local gp_z = 0
  6095. local gp_l1 = 0
  6096. local gp_r1 = 0
  6097. local rate_fov = 0
  6098.  
  6099. local SpeedModifier = 1
  6100.  
  6101. local function Clamp(x, min, max)
  6102. return x < min and min or x > max and max or x
  6103. end
  6104.  
  6105. local function GetChar()
  6106. local Char = GetCharacter();
  6107. if Char then
  6108. return FindFirstChildOfClass(Char, "Humanoid"), FindFirstChild(Char, "HumanoidRootPart");
  6109. end
  6110. end
  6111.  
  6112. local function InputCurve(x)
  6113. local s = abs(x);
  6114. if s > DEADZONE then
  6115. s = 0.255000975 * (2 ^ (2.299113817 * s) - 1);
  6116. return x > 0 and (s > 1 and 1 or s) or (s > 1 and -1 or -s);
  6117. end
  6118. return 0
  6119. end
  6120.  
  6121. local function ProcessInput(input, processed)
  6122. local userInputType = input.UserInputType
  6123. Processed = processed
  6124. if userInputType == Enum.UserInputType.Gamepad1 then
  6125. local keycode = input.KeyCode
  6126. if keycode == Enum.KeyCode.Thumbstick2 then
  6127. local pos = input.Position
  6128. panDeltaGamepad = Vector2.new(InputCurve(pos.y), InputCurve(-pos.x)) * 7
  6129. elseif keycode == Enum.KeyCode.Thumbstick1 then
  6130. local pos = input.Position
  6131. gp_x = InputCurve(pos.x)
  6132. gp_z = InputCurve(-pos.y)
  6133. elseif keycode == Enum.KeyCode.ButtonL2 then
  6134. gp_l1 = input.Position.z
  6135. elseif keycode == Enum.KeyCode.ButtonR2 then
  6136. gp_r1 = input.Position.z
  6137. end
  6138.  
  6139. rate_fov = input.Position.Z
  6140. end
  6141. end
  6142. CEnv.Connections = {}
  6143. AddConnection(CConnect(UserInputService.InputChanged, ProcessInput));
  6144. AddConnection(CConnect(UserInputService.InputEnded, ProcessInput));
  6145. AddConnection(CConnect(UserInputService.InputBegan, ProcessInput));
  6146. local IsKeyDown = UserInputService.IsKeyDown
  6147. local function IsDirectionDown(direction)
  6148. for i = 1, #KEY_MAPPINGS[direction] do
  6149. if (IsKeyDown(UserInputService, KEY_MAPPINGS[direction][i]) and not Processed) then
  6150. return true
  6151. end
  6152. end
  6153. return false
  6154. end
  6155.  
  6156. local UpdateFreecam do
  6157. local dt = 1/60
  6158. AddConnection(CConnect(RenderStepped, function(_dt)
  6159. dt = _dt
  6160. end));
  6161.  
  6162. function UpdateFreecam()
  6163. local camCFrame = Camera.CFrame
  6164.  
  6165. local kx = (IsDirectionDown(DIRECTION_RIGHT) and 1 or 0) - (IsDirectionDown(DIRECTION_LEFT) and 1 or 0);
  6166. local ky = (IsDirectionDown(DIRECTION_UP) and 1 or 0) - (IsDirectionDown(DIRECTION_DOWN) and 1 or 0);
  6167. local kz = (IsDirectionDown(DIRECTION_BACKWARD) and 1 or 0) - (IsDirectionDown(DIRECTION_FORWARD) and 1 or 0);
  6168. local km = (kx * kx) + (ky * ky) + (kz * kz)
  6169. if km > 1e-15 then
  6170. km = ((IsKeyDown(UserInputService, Enum.KeyCode.LeftShift) or IsKeyDown(UserInputService, Enum.KeyCode.RightShift)) and 1 / 4 or 1) / math.sqrt(km);
  6171. kx = kx * km
  6172. ky = ky * km
  6173. kz = kz * km
  6174. end
  6175.  
  6176. local dx = kx + gp_x
  6177. local dy = ky + gp_r1 - gp_l1
  6178. local dz = kz + gp_z
  6179.  
  6180. velSpring.t = Vector3New(dx, dy, dz) * SpeedModifier
  6181. rotSpring.t = panDeltaMouse + panDeltaGamepad
  6182. fovSpring.t = Clamp(fovSpring.t + dt * rate_fov*FVEL_GAIN, 5, 120);
  6183.  
  6184. local fov = fovSpring:Update(dt);
  6185. local dPos = velSpring:Update(dt) * LVEL_GAIN
  6186. local dRot = rotSpring:Update(dt) * (RVEL_GAIN * math.tan(fov * math.pi / 360) * NM_ZOOM);
  6187.  
  6188. rate_fov = 0
  6189. panDeltaMouse = V2
  6190.  
  6191. stateRot = stateRot + dRot
  6192. stateRot = Vector2New(Clamp(stateRot.x, -3 / 2, 3 / 2), stateRot.y);
  6193.  
  6194. local c = CFrameNew(camCFrame.p) * CFrame.Angles(0, stateRot.y, 0) * CFrame.Angles(stateRot.x, 0, 0) * CFrameNew(dPos);
  6195.  
  6196. Camera.CFrame = c
  6197. Camera.Focus = c * FOCUS_OFFSET
  6198. Camera.FieldOfView = fov
  6199. end
  6200. end
  6201.  
  6202. local function Panned(input, processed)
  6203. if not processed and input.UserInputType == Enum.UserInputType.MouseMovement then
  6204. local delta = input.Delta
  6205. panDeltaMouse = Vector2New(-delta.y, -delta.x);
  6206. end
  6207. end
  6208.  
  6209. local function EnterFreecam()
  6210. ToggleGui(false);
  6211. UserInputService.MouseIconEnabled = false
  6212. AddConnection(CConnect(UserInputService.InputBegan, function(input, processed)
  6213. if input.UserInputType == Enum.UserInputType.MouseButton2 then
  6214. UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
  6215. local conn = CConnect(UserInputService.InputChanged, Panned)
  6216. repeat
  6217. input = CWait(UserInputService.InputEnded);
  6218. until input.UserInputType == Enum.UserInputType.MouseButton2 or not freeCamEnabled
  6219. panDeltaMouse = V2
  6220. panDeltaGamepad = V2
  6221. Disconnect(conn);
  6222. if freeCamEnabled then
  6223. UserInputService.MouseBehavior = Enum.MouseBehavior.Default
  6224. end
  6225. elseif input.KeyCode == Enum.KeyCode.LeftShift or input.KeyCode == Enum.KeyCode.RightShift then
  6226. SpeedModifier = 0.5
  6227. end
  6228. end), CEnv.Connections);
  6229.  
  6230. AddConnection(CConnect(UserInputService.InputEnded, function(input, processed)
  6231. if input.KeyCode == Enum.KeyCode.LeftShift or input.KeyCode == Enum.KeyCode.RightShift then
  6232. SpeedModifier = 1
  6233. end
  6234. end), CEnv.Connections);
  6235.  
  6236. Camera.CameraType = Enum.CameraType.Scriptable
  6237.  
  6238. local hum, hrp = GetChar()
  6239. if hrp then
  6240. hrp.Anchored = true
  6241. end
  6242. if hum then
  6243. hum.WalkSpeed = 0
  6244. AddConnection(CConnect(hum.Jumping, function(active)
  6245. if active then
  6246. hum.Jumping = false
  6247. end
  6248. end), CEnv.Connections);
  6249. end
  6250.  
  6251. velSpring.t, velSpring.v, velSpring.x = V3, V3, V3
  6252. rotSpring.t, rotSpring.v, rotSpring.x = V2, V2, V2
  6253. fovSpring.t, fovSpring.v, fovSpring.x = Camera.FieldOfView, 0, Camera.FieldOfView
  6254.  
  6255. local camCFrame = Camera.CFrame
  6256. local lookVector = camCFrame.lookVector.unit
  6257.  
  6258. stateRot = Vector2.new(
  6259. math.asin(lookVector.y),
  6260. math.atan2(-lookVector.z, lookVector.x) - math.pi/2
  6261. )
  6262. panDeltaMouse = Vector2New();
  6263. for _, obj in next, GetChildren(PlayerGui) do
  6264. if IsA(obj, "ScreenGui") and obj.Enabled then
  6265. obj.Enabled = false
  6266. screenGuis[obj] = true
  6267. end
  6268. end
  6269.  
  6270. AddConnection(CConnect(LocalPlayer.CharacterAdded, function()
  6271. local Hrp = WaitForChild(LocalPlayer.Character, "HumanoidRootPart");
  6272. Hrp.Anchored = true
  6273. end), CEnv.Connections);
  6274. RunService.BindToRenderStep(RunService, "Freecam", Enum.RenderPriority.Camera.Value, UpdateFreecam);
  6275. CEnv.Enabled = true
  6276. end
  6277.  
  6278. local function ExitFreecam()
  6279. CEnv.Enabled = false
  6280. UserInputService.MouseIconEnabled = true
  6281. UserInputService.MouseBehavior = Enum.MouseBehavior.Default
  6282.  
  6283. RunService.UnbindFromRenderStep(RunService, "Freecam")
  6284. local hum, hrp = GetChar()
  6285. if hum then
  6286. hum.WalkSpeed = 16
  6287. end
  6288. if hrp then
  6289. hrp.Anchored = false
  6290. end
  6291. Camera.FieldOfView = DEF_FOV
  6292. Camera.CameraType = Enum.CameraType.Custom
  6293. for i, Connection in next, CEnv.Connections do
  6294. Disconnect(Connection);
  6295. end
  6296. for obj in next, screenGuis do
  6297. obj.Enabled = true
  6298. end
  6299. screenGuis = {}
  6300. ToggleGui(true)
  6301. end
  6302.  
  6303. EnterFreecam()
  6304. CEnv.Activated = true
  6305. CEnv.Enabled = true
  6306. CEnv.EnterFreecam = EnterFreecam
  6307. CEnv.ExitFreecam = ExitFreecam
  6308. return "freecam enabled"
  6309. end
  6310. if (CEnv.Enabled) then
  6311. CEnv.ExitFreecam();
  6312. return "freecam disabled"
  6313. else
  6314. CEnv.EnterFreecam();
  6315. return "freecam enabled"
  6316. end
  6317. end)
  6318.  
  6319. AddCommand("freecamgoto", {"fcgoto"}, "takes your freecam to t hem", {"1"}, function(Caller, Args)
  6320. local Target = GetPlayer(Args[1]);
  6321. local Delay = tonumber(Args[2]);
  6322. for i, v in next, Target do
  6323. if (Delay) then
  6324. wait(Delay);
  6325. end
  6326. Camera.CFrame = GetRoot(v).CFrame * CFrameNew(0, 10, 10);
  6327. end
  6328. end)
  6329.  
  6330. AddCommand("plastic", {"fpsboost"}, "changes everything to a plastic material", {}, function(Caller, Args, CEnv)
  6331. local time = tick();
  6332. local Plasticc = 0
  6333. for i, v in next, GetDescendants(Workspace) do
  6334. if (IsA(v, "Part") and v.Material ~= Enum.Material.Plastic) then
  6335. CEnv[v] = v.Material
  6336. v.Material = Enum.Material.Plastic
  6337. Plasticc = Plasticc + 1
  6338. end
  6339. end
  6340. return format("%d items made plastic in %.3f (s)", Plasticc, (tick()) - time);
  6341. end)
  6342.  
  6343. AddCommand("unplastic", {"unfpsboost"}, "changes everything back from a plastic material", {}, function(Caller, Args, CEnv)
  6344. local Plastics = LoadCommand("plastic").CmdEnv
  6345. local time = tick();
  6346. local Amount = 0
  6347. for i, v in next, Plastics do
  6348. i.Material = v
  6349. Amount = Amount + 1
  6350. end
  6351. return format("removed %d plastic in %.3f (s)", Amount, (tick()) - time);
  6352. end)
  6353.  
  6354. AddCommand("antiafk", {"antiidle"}, "prevents kicks from when you're afk", {}, function(Caller, Args, CEnv)
  6355. local IsEnabled = CEnv[1]
  6356. for i, v in next, getconnections(LocalPlayer.Idled, true) do
  6357. if (IsEnabled) then
  6358. v.Enable(v);
  6359. CEnv[1] = nil
  6360. else
  6361. v.Disable(v);
  6362. CEnv[1] = true
  6363. end
  6364. end
  6365. return "antiafk " .. (IsEnabled and " disabled" or "enabled");
  6366. end)
  6367.  
  6368. AddCommand("clicktp", {}, "tps you to where your mouse is when you click", {}, function(Caller, Args, CEnv)
  6369. local HasTool_ = CEnv[1] ~= nil
  6370. if (HasTool_) then
  6371. Destroy(CEnv[1]);
  6372. Destroy(CEnv[2]);
  6373. end
  6374. local Tool = InstanceNew("Tool");
  6375. Tool.RequiresHandle = false
  6376. Tool.Name = "Click TP"
  6377. Tool.Parent = GetCharacter();
  6378. AddConnection(CConnect(Tool.Activated, function()
  6379. local Hit = Mouse.Hit
  6380. GetRoot().CFrame = Hit * CFrame.new(0, 3, 0);
  6381. end))
  6382.  
  6383. local Tool2 = InstanceNew("Tool");
  6384. Tool2.RequiresHandle = false
  6385. Tool2.Name = "Click TweenTP"
  6386. Tool2.Parent = LocalPlayer.Backpack
  6387. AddConnection(CConnect(Tool2.Activated, function()
  6388. local Hit = Mouse.Hit
  6389. Utils.Tween(GetRoot(), "Sine", "Out", .5, {CFrame = Hit * CFrame.new(0, 3, 0)});
  6390. end))
  6391.  
  6392. CEnv[1] = Tool
  6393. CEnv[2] = Tool2
  6394. return "click to teleport"
  6395. end)
  6396.  
  6397. AddCommand("help", {"info"}, "gives you the description of the command", {"1"}, function(Caller, Args)
  6398. local Command = Args[1]
  6399. local Loaded = LoadCommand(Command);
  6400. if (Loaded) then
  6401. Utils.Notify(Caller, Loaded.Name, Loaded.Description, 8);
  6402. end
  6403. end)
  6404.  
  6405. AddCommand("friend", {"fr"}, "sends a friend request to the player", {"1"}, function(Caller, Args)
  6406. local Target = GetPlayer(Args[1]);
  6407. local RequestFriendship = LocalPlayer.RequestFriendship
  6408. for i, v in next, Target do
  6409. RequestFriendship(LocalPlayer, v);
  6410. end
  6411. return #Target == 1 and "sent a friend request to " .. Target[1].Name or format("sent a friend request to %d players", #Target);
  6412. end)
  6413.  
  6414. AddCommand("unfriend", {"unfr"}, "unfriends a player that you're friends with", {"1"}, function(Caller, Args)
  6415. local Target = GetPlayer(Args[1]);
  6416. local RevokeFriendship = LocalPlayer.RevokeFriendship
  6417. for i, v in next, Target do
  6418. RevokeFriendship(LocalPlayer, v);
  6419. end
  6420. return #Target == 1 and "unfriended " .. Target[1].Name or format("unfriended %d players", #Target);
  6421. end)
  6422.  
  6423. AddCommand("setzoomdistance", {"szd", "maxzoom"}, "sets your cameras zoom distance so you can zoom out", {}, function(Caller, Args)
  6424. local ZoomDistance = tonumber(Args[1]) or 1000
  6425. LocalPlayer.CameraMaxZoomDistance = ZoomDistance
  6426. LocalPlayer.CameraMode = Enum.CameraMode.Classic
  6427. return "set zoom distance to " .. ZoomDistance
  6428. end)
  6429.  
  6430. AddCommand("equiptools", {}, "equips all of your tools", {1}, function()
  6431. UnequipTools(GetHumanoid());
  6432. local Char = GetCharacter();
  6433. local Tools = filter(GetChildren(LocalPlayer.Backpack), function(i, Child)
  6434. return IsA(Child, "Tool");
  6435. end);
  6436. for i, v in next, Tools do
  6437. v.Parent = Char
  6438. end
  6439. return format("equipped %d tools", #Tools);
  6440. end)
  6441.  
  6442. AddCommand("activatetools", {}, "equips and activates all of your tools", {1}, function()
  6443. local VirtualInputManager = Services.VirtualInputManager
  6444. local SendMouseButtonEvent = VirtualInputManager.SendMouseButtonEvent
  6445. UnequipTools(GetHumanoid());
  6446. local Char = GetCharacter();
  6447. local Tools = filter(GetChildren(LocalPlayer.Backpack), function(i, Child)
  6448. return IsA(Child, "Tool");
  6449. end);
  6450. for i, v in next, Tools do
  6451. v.Parent = Char
  6452. end
  6453. wait();
  6454. for i, v in next, Tools do
  6455. v.Activate(v);
  6456. end
  6457. SendMouseButtonEvent(VirtualInputManager, 0, 0, 0, true, nil, #Tools);
  6458. -- return format("equipped and activated %d tools", #Tools);
  6459. end)
  6460.  
  6461. AddCommand("hidename", {"hidetag"}, "hides your nametag (billboardgui)", {3}, function(Caller, Args, CEnv)
  6462. local Char = GetCharacter();
  6463. local Billboard = FindFirstChildWhichIsA(Char, "BillboardGui", true);
  6464. if (not Billboard) then
  6465. return "you don't have a player tag to use this command"
  6466. end
  6467. for i, v in next, GetDescendants(Char) do
  6468. if (IsA(v, "BillboardGui")) then
  6469. CEnv[v] = v.Parent
  6470. Destroy(v);
  6471. end
  6472. end
  6473. return "name hidden, use showname to show it again"
  6474. end)
  6475.  
  6476. AddCommand("showname", {"showtag"}, "shows your player tag", {3}, function()
  6477. local Char = GetCharacter();
  6478. local Billboards = LoadCommand("hidename").CmdEnv
  6479. if (not next(Billboards)) then
  6480. return "your name is already shown"
  6481. end
  6482. return "you have to reset to show your nametag"
  6483. end)
  6484.  
  6485. AddCommand("nojumpcooldown", {}, "removes a jumpcooldown if any in games", {}, function()
  6486. local UserInputService = Services.UserInputService
  6487. local Humanoid = GetHumanoid();
  6488. local connections = tbl_concat(getconnections(UserInputService.JumpRequest), getconnections(GetPropertyChangedSignal(Humanoid, "FloorMaterial")), getconnections(Humanoid.Jumping));
  6489. for i, v in next, connections do
  6490. if (v.Func and not is_synapse_function(v.Func)) then
  6491. if (Hooks.NoJumpCooldown) then
  6492. v.Enable(v);
  6493. else
  6494. v.Disable(v);
  6495. end
  6496. end
  6497. end
  6498. Hooks.NoJumpCooldown = not Hooks.NoJumpCooldown
  6499. return "nojumpcooldown " .. (Hooks.NoJumpCooldown and "Enabled" or "Disabled")
  6500. end)
  6501.  
  6502. local LoadConfig, ConfigLoaded;
  6503. AddCommand("config", {"conf"}, "shows fates admin config", {}, function(Caller, Args, CEnv)
  6504. if (not ConfigLoaded) then
  6505. if (not CEnv[1]) then
  6506. LoadConfig();
  6507. end
  6508. Utils.SetAllTrans(ConfigUI);
  6509. ConfigUI.Visible = true
  6510. Utils.TweenAllTransToObject(ConfigUI, .25, ConfigUIClone);
  6511. ConfigLoaded = true
  6512. CEnv[1] = true
  6513. return "config loaded"
  6514. end
  6515. end)
  6516.  
  6517. AddCommand("deletetool", {"deltool"}, "deletes your equipped tool", {1}, function()
  6518. local Tool = FindFirstChildWhichIsA(GetCharacter(), "Tool");
  6519. if (Tool) then
  6520. Destroy(Tool);
  6521. return "deleted tool"
  6522. else
  6523. return "no tool equipped"
  6524. end
  6525. end)
  6526.  
  6527. AddCommand("deletetools", {"deltools"}, "delets all of your tools in your inventory", {1}, function()
  6528. UnequipTools(GetHumanoid());
  6529. local Tools = GetChildren(LocalPlayer.Backpack);
  6530. for i = 1, #Tools do
  6531. Destroy(Tools[i]);
  6532. end
  6533. return "deleted all tools"
  6534. end)
  6535.  
  6536. AddCommand("rejoinre", {"rje"}, "rejoins and tps you to your old position", {3}, function()
  6537. local Pos = GetRoot().CFrame
  6538. local queue_on_teleport = syn and syn.queue_on_teleport or queue_on_teleport
  6539. if (queue_on_teleport) then
  6540. queue_on_teleport(format("game.Loaded:Wait();game:GetService('ReplicatedFirst'):SetDefaultLoadingGuiRemoved();local LocalPlayer = game:GetService('Players').LocalPlayer;LocalPlayer.CharacterAdded:Wait():WaitForChild('HumanoidRootPart').CFrame = CFrame.new(%s);loadstring(game.HttpGet(game, \"https://raw.githubusercontent.com/fatesc/fates-admin/main/main.lua\"))()", tostring(Pos)));
  6541. end
  6542. ExecuteCommand("rejoin", {}, LocalPlayer);
  6543. end)
  6544.  
  6545. AddCommand("toggle", {"togglecommand", "togglecmd"}, "toggles a command with an 'un' command", {"1"}, function(Caller, Args, CEnv)
  6546. local Command = Args[1]
  6547. if (LoadCommand(Command)) then
  6548. CEnv.Command = (CEnv.Command and CEnv.Command ~= true) and true or not CEnv.Command
  6549. local NewArgs = shift(Args);
  6550. if (CEnv.Command) then
  6551. ExecuteCommand(Command, NewArgs, Caller);
  6552. else
  6553. ExecuteCommand("un" .. Command, NewArgs, Caller);
  6554. end
  6555. else
  6556. return Command .. " is not a valid command"
  6557. end
  6558. end)
  6559.  
  6560. AddCommand("inviscam", {"inviscamera"}, "makes you see through walls more better", {}, function(Caller, Args, CEnv)
  6561. CEnv.OldCameraMaxZoomDistance = LocalPlayer.CameraMaxZoomDistance
  6562. CEnv.OldDevCameraOcclusionMode = LocalPlayer.DevCameraOcclusionMode
  6563. LocalPlayer.CameraMaxZoomDistance = 600
  6564. LocalPlayer.DevCameraOcclusionMode = "Invisicam"
  6565. return "inviscam enabled"
  6566. end)
  6567.  
  6568. AddCommand("uninviscam", {"uninviscamera"}, "disables inviscam", {}, function()
  6569. local CmdEnv = LoadCommand("inviscam").CmdEnv
  6570. LocalPlayer.CameraMaxZoomDistance = CmdEnv.OldCameraMaxZoomDistance
  6571. LocalPlayer.DevCameraOcclusionMode = CmdEnv.OldDevCameraOcclusionMode
  6572. return "inviscam disabled"
  6573. end)
  6574.  
  6575. AddCommand("snipe", {"streamsnipe"}, "stream snipes a user", {"2"}, function(Caller, Args)
  6576. local PlaceId = tonumber(Args[1]);
  6577. local UserId = tonumber(Args[2]);
  6578. if (not PlaceId) then
  6579. return "placeid expected"
  6580. end
  6581. if (not UserId) then
  6582. return "userid expected"
  6583. end
  6584. local Ret = game.HttpGet(game, format("https://fate123.000webhostapp.com/sniper.php?uid=%s&placeId=%s", UserId, PlaceId));
  6585. local Success, JSON = pcall(JSONDecode, Services.HttpService, Ret);
  6586. if (not Success) then
  6587. return "error occured"
  6588. end
  6589. if (JSON.error) then
  6590. return "error: " .. JSON.error
  6591. end
  6592. local GameInfo = JSON.game
  6593. local UserInfo = JSON.userinfo
  6594. local TeleportService = Services.TeleportService
  6595. TeleportService.TeleportToPlaceInstance(TeleportService, GameInfo.gameid, GameInfo.guid);
  6596. return format("joining %s on game %s (%d/%d)", UserInfo.username, GameInfo.gamename, GameInfo.playing, GameInfo.capacity);
  6597. end)
  6598.  
  6599. AddCommand("loop", {"loopcommand"}, "loops a command", {"1"}, function(Caller, Args, CEnv)
  6600. local Command = Args[1]
  6601. local LoadedCommand = LoadCommand(Command);
  6602. if (not LoadedCommand) then
  6603. return format("command %s not found", Command);
  6604. end
  6605. Args = shift(Args);
  6606. CEnv.Looping = true
  6607. CEnv.LoopedCommands = CEnv.LoopedCommands or {}
  6608. CEnv.LoopedCommands[Command] = true
  6609. CThread(function()
  6610. while (CEnv.Looping and CEnv.LoopedCommands[Command]) do
  6611. ExecuteCommand(Command, Args, Caller);
  6612. wait(tonumber(Args[#Args]) or 1);
  6613. end
  6614. end)();
  6615. return format("now looping the %s command", Command);
  6616. end)
  6617.  
  6618. AddCommand("unloop", {"unloopcommand"}, "unloops a command", {}, function(Caller, Args)
  6619. local Looped = LoadCommand("loop").CmdEnv
  6620. if (Args[1]) then
  6621. if (Looped.LoopedCommands[Args[1]]) then
  6622. Looped.LoopedCommands[Args[1]] = nil
  6623. return format("unlooped command %s", Args[1]);
  6624. end
  6625. return "command isn't looped"
  6626. else
  6627. Looped.Looping = false
  6628. return "unlooped all commands looped"
  6629. end
  6630. end)
  6631.  
  6632. AddCommand("disablesit", {"neversit", "nosit"}, "disables you from being sat", {}, function(Caller, Args, CEnv)
  6633. local Humanoid = GetHumanoid();
  6634. AddConnection(CConnect(GetPropertyChangedSignal(Humanoid, "Sit"), function()
  6635. CWait(Heartbeat);
  6636. Humanoid.Sit = false
  6637. end), CEnv);
  6638. AddConnection(CConnect(LocalPlayer.CharacterAdded, function(Char)
  6639. Humanoid = WaitForChild(Char, "Humanoid");
  6640. AddConnection(CConnect(GetPropertyChangedSignal(Humanoid, "Sit"), function()
  6641. CWait(RunService.Heartbeat);
  6642. Humanoid.Sit = false
  6643. end), CEnv);
  6644. end), CEnv)
  6645. return "disabled sit"
  6646. end)
  6647.  
  6648. AddCommand("enablesit", {"undisablesit"}, "enables disablesit", {}, function()
  6649. DisableAllCmdConnections("disablesit");
  6650. return "enabled sit"
  6651. end)
  6652.  
  6653. AddCommand("massplay", {}, "massplays all of your boomboxes", {3,1,"1"}, function(Caller, Args)
  6654. local Audio = tonumber(Args[1]);
  6655. if (not Audio and not match(Audio, "rbxassetid://%d+")) then
  6656. return "number expected for audio"
  6657. end
  6658. Audio = Audio or Args[1]
  6659. local Character = GetCharacter();
  6660. local Humanoid = GetHumanoid();
  6661. UnequipTools(Humanoid);
  6662. local Boomboxes = filter(GetChildren(LocalPlayer.Backpack), function(i, v)
  6663. if (Sfind(lower(v.Name), "boombox") or FindFirstChildOfClass(v.Handle, "Sound", true)) then
  6664. v.Parent = Character
  6665. return true
  6666. end
  6667. return false
  6668. end)
  6669. for i = 1, #Boomboxes do
  6670. local Boombox = Boomboxes[i]
  6671. local RemoteEvent = FindFirstChildWhichIsA(Boombox, "RemoteEvent")
  6672. RemoteEvent.FireServer(RemoteEvent, "PlaySong", Audio);
  6673. end
  6674. delay(2, function()
  6675. ExecuteCommand("sync", {}, Caller);
  6676. end)
  6677. return "now massplaying"
  6678. end)
  6679.  
  6680. AddCommand("sync", {"syncaudios"}, "syncs audios playing", {3}, function()
  6681. local Humanoid = GetHumanoid();
  6682. local Playing = filter(GetChildren(GetCharacter()), function(i,v)
  6683. return IsA(v, "Tool") and FindFirstChildOfClass(v.Handle, "Sound");
  6684. end)
  6685. Playing = map(Playing, function(i, v)
  6686. return FindFirstChildOfClass(v.Handle, "Sound");
  6687. end)
  6688. local Sound = Playing[1]
  6689. Services.SoundService.RespectFilteringEnabled = false
  6690. for i = 1, #Playing do
  6691. Playing[i].TimePosition = Sound.TimePosition
  6692. end
  6693. Services.SoundService.RespectFilteringEnabled = true
  6694. return format("synced %d sounds", #Playing);
  6695. end)
  6696.  
  6697. AddCommand("pathfind", {"follow2"}, "finds a user with pathfinding", {"1",3}, function(Caller, Args)
  6698. local PathfindingService = Services.PathfindingService
  6699. local CreatePath = PathfindingService.CreatePath
  6700. local Target = GetPlayer(Args[1]);
  6701. local LRoot = GetRoot();
  6702. local LHumanoid = GetHumanoid();
  6703. local PSSuccess = Enum.PathStatus.Success
  6704. local Delay = tonumber(Args[2]);
  6705. for i, v in next, Target do
  6706. local TRoot = GetRoot(v);
  6707. if (not TRoot) then
  6708. continue;
  6709. end
  6710. local Path = CreatePath(PathfindingService);
  6711. Path.ComputeAsync(Path, LRoot.Position, TRoot.Position);
  6712. if (LHumanoid.Sit) then
  6713. ChangeState(LHumanoid, 3);
  6714. end
  6715. LHumanoid.WalkSpeed = 16
  6716. LHumanoid.MoveTo(LHumanoid, TRoot.Position);
  6717. wait(2);
  6718. local WayPoints = Path.GetWaypoints(Path);
  6719. for i = 1, #WayPoints do
  6720. local WayPoint = WayPoints[i]
  6721. if (Path.Status == PSSuccess) then
  6722. LHumanoid.WalkToPoint = WayPoint.Position
  6723. if (WayPoint.Action == Enum.PathWaypointAction.Jump) then
  6724. LHumanoid.WalkSpeed = 0
  6725. wait();
  6726. LHumanoid.WalkSpeed = 16
  6727. ChangeState(LHumanoid, 3);
  6728. end
  6729. CWait(LHumanoid.MoveToFinished);
  6730. else
  6731. repeat Path.ComputeAsync(Path, LRoot.Position, TRoot.Position) until Path.Status == PSSuccess;
  6732. end
  6733. end
  6734. if (Delay) then
  6735. wait(Delay);
  6736. end
  6737. end
  6738. end)
  6739.  
  6740. --AddCommand("dex", {"darkdex"}, "A quick way to execute dark dex from the synapse script hub.", {}, loadstring(game:HttpGet("https://cdn.synapse.to/synapsedistro/hub/DarkDex.lua")));
  6741.  
  6742. AddCommand("console", {"errors", "warns", "outputs"}, "shows the outputs fates admin has made", {}, function()
  6743. local MessageClone = Clone(Console.Frame.List);
  6744.  
  6745. Utils.ClearAllObjects(Console.Frame.List)
  6746. Console.Visible = true
  6747.  
  6748. local Tween = Utils.TweenAllTransToObject(Console, .25, ConsoleTransparencyClone)
  6749.  
  6750. Destroy(Console.Frame.List)
  6751. MessageClone.Parent = Console.Frame
  6752.  
  6753. for i, v in next, GetChildren(Console.Frame.List) do
  6754. if (not IsA(v, "UIListLayout")) then
  6755. Utils.Tween(v, "Sine", "Out", .25, {
  6756. TextTransparency = 0
  6757. })
  6758. end
  6759. end
  6760.  
  6761. local ConsoleListLayout = Console.Frame.List.UIListLayout
  6762.  
  6763. CConnect(GetPropertyChangedSignal(ConsoleListLayout, "AbsoluteContentSize"), function()
  6764. local CanvasPosition = Console.Frame.List.CanvasPosition
  6765. local CanvasSize = Console.Frame.List.CanvasSize
  6766. local AbsoluteSize = Console.Frame.List.AbsoluteSize
  6767.  
  6768. if (CanvasSize.Y.Offset - AbsoluteSize.Y - CanvasPosition.Y < 20) then
  6769. wait();
  6770. Console.Frame.List.CanvasPosition = Vector2.new(0, CanvasSize.Y.Offset + 1000);
  6771. end
  6772. end)
  6773.  
  6774. Utils.Tween(Console.Frame.List, "Sine", "Out", .25, {
  6775. ScrollBarImageTransparency = 0
  6776. })
  6777. end)
  6778.  
  6779. task.spawn(function()
  6780. local chatted = function(plr, raw)
  6781. local message = raw
  6782.  
  6783. if (_L.ChatLogsEnabled) then
  6784.  
  6785. local time = os.date("%X");
  6786. local Text = format("%s - [%s]: %s", time, plr.Name, raw);
  6787. local Clone = Clone(ChatLogMessage);
  6788.  
  6789. Clone.Text = Text
  6790. Clone.Visible = true
  6791. Clone.TextTransparency = 1
  6792. Clone.Parent = ChatLogs.Frame.List
  6793.  
  6794. Utils.Tween(Clone, "Sine", "Out", .25, {
  6795. TextTransparency = 0
  6796. })
  6797.  
  6798. ChatLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, ChatLogs.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  6799. end
  6800.  
  6801. if (startsWith(raw, "/e")) then
  6802. raw = sub(raw, 4);
  6803. elseif (startsWith(raw, "/w")) then
  6804. raw = shift(shift(split(message, " ")));
  6805. elseif (startsWith(raw, Prefix)) then
  6806. raw = sub(raw, #Prefix + 1);
  6807. else
  6808. return
  6809. end
  6810.  
  6811. message = trim(raw);
  6812.  
  6813. if (Tfind(AdminUsers, plr) or plr == LocalPlayer) then
  6814. local CommandArgs = split(message, " ");
  6815. local Command = CommandArgs[1]
  6816. local Args = shift(CommandArgs);
  6817.  
  6818. ExecuteCommand(Command, Args, plr);
  6819. end
  6820. end
  6821.  
  6822. CConnect(LocalPlayer.Chatted, function(raw)
  6823. chatted(LocalPlayer, raw);
  6824. end);
  6825.  
  6826. if (Services.TextChatService.ChatVersion == Enum.ChatVersion.TextChatService) then
  6827. Services.TextChatService.OnIncomingMessage = function(message)
  6828. chatted(Services.Players:FindFirstChild(message.TextSource.Name), message.Text);
  6829. end
  6830. return;
  6831. end
  6832.  
  6833. local DefaultChatSystemChatEvents = Services.ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents");
  6834. if (not DefaultChatSystemChatEvents) then return; end
  6835. local OnMessageDoneFiltering = DefaultChatSystemChatEvents:WaitForChild("OnMessageDoneFiltering", 5);
  6836. if (not OnMessageDoneFiltering) then return; end
  6837. if (typeof(OnMessageDoneFiltering) ~= "Instance" or OnMessageDoneFiltering.ClassName ~= "RemoteEvent") then return; end
  6838.  
  6839.  
  6840. CConnect(OnMessageDoneFiltering.OnClientEvent, function(messageData)
  6841. if (type(messageData) ~= "table") then return; end
  6842. local plr = Services.Players:FindFirstChild(messageData.FromSpeaker);
  6843. local raw = messageData.Message
  6844. if (not plr or not raw or plr == LocalPlayer) then return; end
  6845.  
  6846. if (messageData.OriginalChannel == "Team") then
  6847. raw = "/team " .. raw
  6848. else
  6849. local whisper = string.match(messageData.OriginalChannel, "To (.+)");
  6850. if (whisper) then
  6851. raw = string.format("/w %s %s", whisper, raw);
  6852. end
  6853. end
  6854.  
  6855. chatted(plr, raw);
  6856. end);
  6857.  
  6858. end);
  6859.  
  6860. --IMPORT [uimore]
  6861. Notification.Visible = false
  6862. Utils.SetAllTrans(CommandBar);
  6863. Utils.SetAllTrans(ChatLogs);
  6864. Utils.SetAllTrans(GlobalChatLogs);
  6865. Utils.SetAllTrans(HttpLogs);
  6866. Utils.SetAllTrans(Console);
  6867. Commands.Visible = false
  6868. ChatLogs.Visible = false
  6869. Console.Visible = false
  6870. GlobalChatLogs.Visible = false
  6871. HttpLogs.Visible = false
  6872.  
  6873. Utils.Draggable(Commands);
  6874. Utils.Draggable(ChatLogs);
  6875. Utils.Draggable(Console);
  6876. Utils.Draggable(GlobalChatLogs);
  6877. Utils.Draggable(HttpLogs);
  6878. Utils.Draggable(ConfigUI);
  6879.  
  6880. ParentGui(UI);
  6881. Connections.UI = {}
  6882.  
  6883. local Times = #LastCommand
  6884. AddConnection(CConnect(Services.UserInputService.InputBegan, function(Input, GameProccesed)
  6885. if (Input.KeyCode == CommandBarPrefix and (not GameProccesed)) then
  6886. CommandBarOpen = not CommandBarOpen
  6887.  
  6888. local TransparencyTween = CommandBarOpen and Utils.TweenAllTransToObject or Utils.TweenAllTrans
  6889. local Tween = TransparencyTween(CommandBar, .5, CommandBarTransparencyClone);
  6890. local UserInputService = Services.UserInputService
  6891.  
  6892. if (CommandBarOpen) then
  6893. if (not Draggable) then
  6894. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  6895. Position = UDim2.new(0.5, WideBar and -200 or -100, 1, -110)
  6896. })
  6897. end
  6898.  
  6899. CommandBar.Input.CaptureFocus(CommandBar.Input);
  6900. CThread(function()
  6901. wait()
  6902. CommandBar.Input.Text = ""
  6903. FocusedTextBox = UserInputService.GetFocusedTextBox(UserInputService);
  6904. local TextBox = CommandBar.Input
  6905. while (FocusedTextBox ~= TextBox) do
  6906. FocusedTextBox.ReleaseFocus(FocusedTextBox);
  6907. CommandBar.Input.CaptureFocus(TextBox);
  6908. FocusedTextBox = UserInputService.GetFocusedTextBox(UserInputService);
  6909. CWait(Heartbeat);
  6910. end
  6911. end)()
  6912. else
  6913. if (not Draggable) then
  6914. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  6915. Position = UDim2.new(0.5, WideBar and -200 or -100, 1, 5)
  6916. })
  6917. end
  6918. end
  6919. elseif (not GameProccesed and ChooseNewPrefix) then
  6920. CommandBarPrefix = Input.KeyCode
  6921. Utils.Notify(LocalPlayer, "New Prefix", "Your new prefix is: " .. split(tostring(Input.KeyCode), ".")[3]);
  6922. ChooseNewPrefix = false
  6923. if (writefile) then
  6924. Utils.Notify(LocalPlayer, nil, "use command saveprefix to save your prefix");
  6925. end
  6926. elseif (GameProccesed and CommandBarOpen) then
  6927. if (Input.KeyCode == Enum.KeyCode.Up) then
  6928. Times = Times >= 3 and Times or Times + 1
  6929. CommandBar.Input.Text = LastCommand[Times][1] .. " "
  6930. CommandBar.Input.CursorPosition = #CommandBar.Input.Text + 2
  6931. end
  6932. if (Input.KeyCode == Enum.KeyCode.Down) then
  6933. Times = Times <= 1 and 1 or Times - 1
  6934. CommandBar.Input.Text = LastCommand[Times][1] .. " "
  6935. CommandBar.Input.CursorPosition = #CommandBar.Input.Text + 2
  6936. end
  6937. end
  6938. end), Connections.UI, true);
  6939.  
  6940. Utils.Click(Commands.Close, "TextColor3")
  6941. Utils.Click(ChatLogs.Clear, "BackgroundColor3")
  6942. Utils.Click(ChatLogs.Save, "BackgroundColor3")
  6943. Utils.Click(ChatLogs.Toggle, "BackgroundColor3")
  6944. Utils.Click(ChatLogs.Close, "TextColor3")
  6945.  
  6946. Utils.Click(Console.Clear, "BackgroundColor3");
  6947. Utils.Click(Console.Save, "BackgroundColor3");
  6948. Utils.Click(Console.Close, "TextColor3");
  6949.  
  6950. Utils.Click(GlobalChatLogs.Clear, "BackgroundColor3")
  6951. Utils.Click(GlobalChatLogs.Save, "BackgroundColor3")
  6952. Utils.Click(GlobalChatLogs.Toggle, "BackgroundColor3")
  6953. Utils.Click(GlobalChatLogs.Close, "TextColor3")
  6954.  
  6955. Utils.Click(HttpLogs.Clear, "BackgroundColor3")
  6956. Utils.Click(HttpLogs.Save, "BackgroundColor3")
  6957. Utils.Click(HttpLogs.Toggle, "BackgroundColor3")
  6958. Utils.Click(HttpLogs.Close, "TextColor3")
  6959.  
  6960. AddConnection(CConnect(Commands.Close.MouseButton1Click, function()
  6961. local Tween = Utils.TweenAllTrans(Commands, .25)
  6962.  
  6963. CWait(Tween.Completed);
  6964. Commands.Visible = false
  6965. end), Connections.UI, true);
  6966.  
  6967. AddConnection(CConnect(GetPropertyChangedSignal(Commands.Search, "Text"), function()
  6968. local Text = Commands.Search.Text
  6969. local Children = GetChildren(Commands.Frame.List);
  6970. for i = 1, #Children do
  6971. local v = Children[i]
  6972. if (IsA(v, "Frame")) then
  6973. local Command = v.CommandText.Text
  6974. v.Visible = Sfind(lower(Command), Text, 1, true)
  6975. end
  6976. end
  6977. Commands.Frame.List.CanvasSize = UDim2.fromOffset(0, Commands.Frame.List.UIListLayout.AbsoluteContentSize.Y)
  6978. end), Connections.UI, true);
  6979.  
  6980. AddConnection(CConnect(ChatLogs.Close.MouseButton1Click, function()
  6981. local Tween = Utils.TweenAllTrans(ChatLogs, .25)
  6982.  
  6983. CWait(Tween.Completed);
  6984. ChatLogs.Visible = false
  6985. end), Connections.UI, true);
  6986. AddConnection(CConnect(GlobalChatLogs.Close.MouseButton1Click, function()
  6987. local Tween = Utils.TweenAllTrans(GlobalChatLogs, .25)
  6988.  
  6989. CWait(Tween.Completed);
  6990. GlobalChatLogs.Visible = false
  6991. end), Connections.UI, true);
  6992. AddConnection(CConnect(HttpLogs.Close.MouseButton1Click, function()
  6993. local Tween = Utils.TweenAllTrans(HttpLogs, .25)
  6994.  
  6995. CWait(Tween.Completed);
  6996. HttpLogs.Visible = false
  6997. end), Connections.UI, true);
  6998.  
  6999. AddConnection(CConnect(Console.Close.MouseButton1Click, function()
  7000. local Tween = Utils.TweenAllTrans(Console, .25)
  7001.  
  7002. CWait(Tween.Completed);
  7003. Console.Visible = false
  7004. end), Connections.UI, true);
  7005.  
  7006. ChatLogs.Toggle.Text = _L.ChatLogsEnabled and "Enabled" or "Disabled"
  7007. GlobalChatLogs.Toggle.Text = _L.ChatLogsEnabled and "Enabled" or "Disabled"
  7008. HttpLogs.Toggle.Text = _L.HttpLogsEnabled and "Enabled" or "Disabled"
  7009.  
  7010. AddConnection(CConnect(ChatLogs.Toggle.MouseButton1Click, function()
  7011. _L.ChatLogsEnabled = not _L.ChatLogsEnabled
  7012. ChatLogs.Toggle.Text = _L.ChatLogsEnabled and "Enabled" or "Disabled"
  7013. end), Connections.UI, true);
  7014. AddConnection(CConnect(GlobalChatLogs.Toggle.MouseButton1Click, function()
  7015. _L.GlobalChatLogsEnabled = not _L.GlobalChatLogsEnabled
  7016. GlobalChatLogs.Toggle.Text = _L.GlobalChatLogsEnabled and "Enabled" or "Disabled"
  7017. end), Connections.UI, true);
  7018. AddConnection(CConnect(HttpLogs.Toggle.MouseButton1Click, function()
  7019. _L.HttpLogsEnabled = not _L.HttpLogsEnabled
  7020. HttpLogs.Toggle.Text = _L.HttpLogsEnabled and "Enabled" or "Disabled"
  7021. end), Connections.UI, true);
  7022.  
  7023. AddConnection(CConnect(ChatLogs.Clear.MouseButton1Click, function()
  7024. Utils.ClearAllObjects(ChatLogs.Frame.List)
  7025. ChatLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, 0)
  7026. end), Connections.UI, true);
  7027. AddConnection(CConnect(GlobalChatLogs.Clear.MouseButton1Click, function()
  7028. Utils.ClearAllObjects(GlobalChatLogs.Frame.List)
  7029. GlobalChatLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, 0)
  7030. end), Connections.UI, true);
  7031. AddConnection(CConnect(HttpLogs.Clear.MouseButton1Click, function()
  7032. Utils.ClearAllObjects(HttpLogs.Frame.List)
  7033. HttpLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, 0)
  7034. end), Connections.UI, true);
  7035.  
  7036. AddConnection(CConnect(Console.Clear.MouseButton1Click, function()
  7037. Utils.ClearAllObjects(Console.Frame.List);
  7038. Console.Frame.List.CanvasSize = UDim2.fromOffset(0, 0);
  7039. end), Connections.UI, true);
  7040.  
  7041. do
  7042. local ShowWarns, ShowErrors, ShowOutput = true, true, true
  7043. AddConnection(CConnect(Console.Warns.MouseButton1Click, function()
  7044. ShowWarns = not ShowWarns
  7045. local Children = GetChildren(Console.Frame.List);
  7046. for i = 1, #Children do
  7047. local v = Children[i]
  7048. if (not IsA(v, "UIListLayout") and sub(v.Name, 1, 1) == "W") then
  7049. v.Visible = ShowWarns
  7050. end
  7051. end
  7052. Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  7053. Console.Warns.Text = ShowWarns and "Hide Warns" or "Show Warns"
  7054. end), Connections.UI, true);
  7055. AddConnection(CConnect(Console.Errors.MouseButton1Click, function()
  7056. ShowErrors = not ShowErrors
  7057. local Children = GetChildren(Console.Frame.List);
  7058. for i = 1, #Children do
  7059. local v = Children[i]
  7060. if (not IsA(v, "UIListLayout") and sub(v.Name, 1, 1) == "E") then
  7061. v.Visible = ShowErrors
  7062. end
  7063. end
  7064. Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  7065. Console.Errors.Text = ShowErrors and "Hide Errors" or "Show Errors"
  7066. end), Connections.UI, true);
  7067. AddConnection(CConnect(Console.Output.MouseButton1Click, function()
  7068. ShowOutput = not ShowOutput
  7069. local Children = GetChildren(Console.Frame.List);
  7070. for i = 1, #Children do
  7071. local v = Children[i]
  7072. if (not IsA(v, "UIListLayout") and sub(v.Name, 1, 1) == "P") then
  7073. v.Visible = ShowOutput
  7074. end
  7075. end
  7076. Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  7077. Console.Output.Text = ShowOutput and "Hide Output" or "Show Output"
  7078. end), Connections.UI, true);
  7079. end
  7080.  
  7081. AddConnection(CConnect(GetPropertyChangedSignal(ChatLogs.Search, "Text"), function()
  7082. local Text = ChatLogs.Search.Text
  7083. local Children = GetChildren(ChatLogs.Frame.List);
  7084. for i = 1, #Children do
  7085. local v = Children[i]
  7086. if (not IsA(v, "UIListLayout")) then
  7087. local Message = v.Text
  7088. v.Visible = Sfind(lower(Message), Text, 1, true);
  7089. end
  7090. end
  7091. ChatLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, ChatLogs.Frame.List.UIListLayout.AbsoluteContentSize.Y);
  7092. end), Connections.UI, true);
  7093.  
  7094. AddConnection(CConnect(GetPropertyChangedSignal(GlobalChatLogs.Search, "Text"), function()
  7095. local Text = GlobalChatLogs.Search.Text
  7096.  
  7097. local Children = GetChildren(GlobalChatLogs.Frame.List);
  7098. for i = 1, #Children do
  7099. local v = Children[i]
  7100. if (not IsA(v, "UIListLayout")) then
  7101. local Message = v.Text
  7102.  
  7103. v.Visible = Sfind(lower(Message), Text, 1, true)
  7104. end
  7105. end
  7106. end), Connections.UI, true);
  7107.  
  7108. AddConnection(CConnect(GetPropertyChangedSignal(HttpLogs.Search, "Text"), function()
  7109. local Text = HttpLogs.Search.Text
  7110.  
  7111. local Children = GetChildren(HttpLogs.Frame.List);
  7112. for i = 1, #Children do
  7113. local v = Children[i]
  7114. if (not IsA(v, "UIListLayout")) then
  7115. local Message = v.Text
  7116. v.Visible = Sfind(lower(Message), Text, 1, true)
  7117. end
  7118. end
  7119. end), Connections.UI, true);
  7120.  
  7121. AddConnection(CConnect(GetPropertyChangedSignal(Console.Search, "Text"), function()
  7122. local Text = Console.Search.Text
  7123. local Children = GetChildren(Console.Frame.List);
  7124. for i = 1, #Children do
  7125. local v = Children[i]
  7126. if (not IsA(v, "UIListLayout")) then
  7127. local Message = v.Text
  7128. v.Visible = Sfind(lower(Message), Text, 1, true)
  7129. end
  7130. end
  7131. Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y)
  7132. end), Connections.UI, true);
  7133.  
  7134.  
  7135. AddConnection(CConnect(ChatLogs.Save.MouseButton1Click, function()
  7136. local GameName = Services.MarketplaceService.GetProductInfo(Services.MarketplaceService, game.PlaceId).Name
  7137. local String = format("Fates Admin Chatlogs for %s (%s)\n\n", GameName, os.date());
  7138. local TimeSaved = gsub(tostring(os.date("%x")), "/", "-") .. " " .. gsub(tostring(os.date("%X")), ":", "-");
  7139. local Name = format("fates-admin/chatlogs/%s (%s).txt", GameName, TimeSaved);
  7140. local Children = GetChildren(ChatLogs.Frame.List);
  7141. for i = 1, #Children do
  7142. local v = Children[i]
  7143. if (not IsA(v, "UIListLayout")) then
  7144. String = format("%s%s\n", String, v.Text);
  7145. end
  7146. end
  7147. writefile(Name, String);
  7148. Utils.Notify(LocalPlayer, "Saved", "Chat logs saved!");
  7149. end), Connections.UI, true);
  7150.  
  7151. AddConnection(CConnect(HttpLogs.Save.MouseButton1Click, function()
  7152. local Children = GetChildren(HttpLogs.Frame.List);
  7153. local Logs = format("Fates Admin HttpLogs for %s\n\n", os.date());
  7154. for i = 1, #Children do
  7155. local v = Children[i]
  7156. if (not IsA(v, "UIListLayout")) then
  7157. Logs = format("%s%s\n", Logs, v.Text);
  7158. end
  7159. end
  7160. if (not isfolder("fates-admin/httplogs")) then
  7161. makefolder("fates-admin/httplogs");
  7162. end
  7163. writefile(format("fates-admin/httplogs/HttpLogs for %s", gsub(tostring(os.date("%X")), ":", "-")) .. ".txt", gsub(Logs, "%b<>", ""));
  7164. Utils.Notify(LocalPlayer, "Saved", "Http logs saved!");
  7165. end), Connections.UI, true);
  7166.  
  7167. AddConnection(CConnect(Console.Save.MouseButton1Click, function()
  7168. local GameName = Services.MarketplaceService.GetProductInfo(Services.MarketplaceService, game.PlaceId).Name
  7169. local TimeSaved = gsub(tostring(os.date("%x")), "/", "-") .. " " .. gsub(tostring(os.date("%X")), ":", "-");
  7170. local Children = GetChildren(Console.Frame.List);
  7171. local String = format("Fates Admin logs %s\nGame: %s - %d\n\n", TimeSaved, GameName, game.PlaceId);
  7172. local Names = { ["P"] = "OUTPUT", ["W"] = "WARNING", ["E"] = "ERROR" }
  7173. for i = 1, #Children do
  7174. local v = Children[i]
  7175. if (not IsA(v, "UIListLayout")) then
  7176. String = format("%s[%s] %s\n", String, Names[sub(v.Name, 1, 1)] or "", v.Text);
  7177. end
  7178. end
  7179. writefile("fates-admin/logs.txt", String);
  7180. Utils.Notify(LocalPlayer, "Saved", "Console Logs saved!");
  7181. end), Connections.UI, true);
  7182.  
  7183. -- auto correct
  7184. AddConnection(CConnect(GetPropertyChangedSignal(CommandBar.Input, "Text"), function() -- make it so that every space a players name will appear
  7185. CommandBar.Input.Text = CommandBar.Input.Text
  7186. local Text = CommandBar.Input.Text
  7187. local Prediction = CommandBar.Input.Predict
  7188. local PredictionText = Prediction.Text
  7189.  
  7190. local Args = split(Text, " ")
  7191.  
  7192. Prediction.Text = ""
  7193. if (Text == "") then
  7194. return
  7195. end
  7196.  
  7197. local FoundCommand = false
  7198. local FoundAlias = false
  7199. CommandArgs = CommandArgs or {}
  7200. if (not CommandsTable[Args[1]]) then
  7201. for _, v in next, CommandsTable do
  7202. local CommandName = v.Name
  7203. local Aliases = v.Aliases
  7204. local FoundAlias
  7205.  
  7206. if (Utils.MatchSearch(Args[1], CommandName)) then -- better search
  7207. Prediction.Text = CommandName
  7208. CommandArgs = v.Args or {}
  7209. break
  7210. end
  7211.  
  7212. for _, v2 in next, Aliases do
  7213. if (Utils.MatchSearch(Args[1], v2)) then
  7214. FoundAlias = true
  7215. Prediction.Text = v2
  7216. CommandArgs = v2.Args or {}
  7217. break
  7218. end
  7219.  
  7220. if (FoundAlias) then
  7221. break
  7222. end
  7223. end
  7224. end
  7225. end
  7226.  
  7227. for i, v in next, Args do -- make it get more players after i space out
  7228. if (i > 1 and v ~= "") then
  7229. local Predict = ""
  7230. if (#CommandArgs >= 1) then
  7231. for i2, v2 in next, CommandArgs do
  7232. if (lower(v2) == "player") then
  7233. Predict = Utils.GetPlayerArgs(v) or Predict;
  7234. else
  7235. Predict = Utils.MatchSearch(v, v2) and v2 or Predict
  7236. end
  7237. end
  7238. else
  7239. Predict = Utils.GetPlayerArgs(v) or Predict;
  7240. end
  7241. Prediction.Text = sub(Text, 1, #Text - #Args[#Args]) .. Predict
  7242. local split = split(v, ",");
  7243. if (next(split)) then
  7244. for i2, v2 in next, split do
  7245. if (i2 > 1 and v2 ~= "") then
  7246. local PlayerName = Utils.GetPlayerArgs(v2)
  7247. Prediction.Text = sub(Text, 1, #Text - #split[#split]) .. (PlayerName or "")
  7248. end
  7249. end
  7250. end
  7251. end
  7252. end
  7253.  
  7254. if (Sfind(Text, "\t")) then -- remove tab from preditction text also
  7255. CommandBar.Input.Text = PredictionText
  7256. CommandBar.Input.CursorPosition = #CommandBar.Input.Text + 1
  7257. end
  7258. end))
  7259.  
  7260.  
  7261. do
  7262. local Enabled = false
  7263. local Connection;
  7264. local Predict;
  7265. ToggleChatPrediction = function()
  7266. if (_L.Frame2) then
  7267. return
  7268. end
  7269. if (not Enabled) then
  7270. local RobloxChat = LocalPlayer.PlayerGui and FindFirstChild(LocalPlayer.PlayerGui, "Chat");
  7271. local RobloxChatBarFrame;
  7272. if (RobloxChat) then
  7273. local RobloxChatFrame = FindFirstChild(RobloxChat, "Frame");
  7274. if (RobloxChatFrame) then
  7275. RobloxChatBarFrame = FindFirstChild(RobloxChatFrame, "ChatBarParentFrame");
  7276. end
  7277. end
  7278. local PredictionClone, ChatBar
  7279. if (RobloxChatBarFrame) then
  7280. local Frame1 = FindFirstChild(RobloxChatBarFrame, 'Frame');
  7281. if Frame1 then
  7282. local BoxFrame = FindFirstChild(Frame1, 'BoxFrame');
  7283. if BoxFrame then
  7284. _L.Frame2 = FindFirstChild(BoxFrame, 'Frame');
  7285. if _L.Frame2 then
  7286. local TextLabel = FindFirstChild(_L.Frame2, 'TextLabel');
  7287. ChatBar = FindFirstChild(_L.Frame2, 'ChatBar');
  7288. if TextLabel and ChatBar then
  7289. PredictionClone = InstanceNew('TextLabel');
  7290. PredictionClone.Font = TextLabel.Font
  7291. PredictionClone.LineHeight = TextLabel.LineHeight
  7292. PredictionClone.MaxVisibleGraphemes = TextLabel.MaxVisibleGraphemes
  7293. PredictionClone.RichText = TextLabel.RichText
  7294. PredictionClone.Text = ''
  7295. PredictionClone.TextColor3 = TextLabel.TextColor3
  7296. PredictionClone.TextScaled = TextLabel.TextScaled
  7297. PredictionClone.TextSize = TextLabel.TextSize
  7298. PredictionClone.TextStrokeColor3 = TextLabel.TextStrokeColor3
  7299. PredictionClone.TextStrokeTransparency = TextLabel.TextStrokeTransparency
  7300. PredictionClone.TextTransparency = 0.3
  7301. PredictionClone.TextTruncate = TextLabel.TextTruncate
  7302. PredictionClone.TextWrapped = TextLabel.TextWrapped
  7303. PredictionClone.TextXAlignment = TextLabel.TextXAlignment
  7304. PredictionClone.TextYAlignment = TextLabel.TextYAlignment
  7305. PredictionClone.Name = "Predict"
  7306. PredictionClone.Size = UDim2.new(1, 0, 1, 0);
  7307. PredictionClone.BackgroundTransparency = 1
  7308. end
  7309. end
  7310. end
  7311. end
  7312. end
  7313.  
  7314. ParentGui(PredictionClone, _L.Frame2);
  7315. Predict = PredictionClone
  7316.  
  7317. Connection = AddConnection(CConnect(GetPropertyChangedSignal(ChatBar, "Text"), function() -- todo: add detection for /e
  7318. local Text = ChatBar.Text
  7319. local Prediction = PredictionClone
  7320. local PredictionText = PredictionClone.Text
  7321.  
  7322. local Args = split(concat(shift(split(Text, ""))), " ");
  7323.  
  7324. Prediction.Text = ""
  7325. if (not startsWith(Text, Prefix)) then
  7326. return
  7327. end
  7328.  
  7329. local FoundCommand = false
  7330. local FoundAlias = false
  7331. CommandArgs = CommandArgs or {}
  7332. if (not rawget(CommandsTable, Args[1])) then
  7333. for _, v in next, CommandsTable do
  7334. local CommandName = v.Name
  7335. local Aliases = v.Aliases
  7336. local FoundAlias
  7337.  
  7338. if (Utils.MatchSearch(Args[1], CommandName)) then -- better search
  7339. Prediction.Text = Prefix .. CommandName
  7340. FoundCommand = true
  7341. CommandArgs = v.Args or {}
  7342. break
  7343. end
  7344.  
  7345. for _, v2 in next, Aliases do
  7346. if (Utils.MatchSearch(Args[1], v2)) then
  7347. FoundAlias = true
  7348. Prediction.Text = v2
  7349. CommandArgs = v.Args or {}
  7350. break
  7351. end
  7352.  
  7353. if (FoundAlias) then
  7354. break
  7355. end
  7356. end
  7357. end
  7358. end
  7359.  
  7360. for i, v in next, Args do -- make it get more players after i space out
  7361. if (i > 1 and v ~= "") then
  7362. local Predict = ""
  7363. if (#CommandArgs >= 1) then
  7364. for i2, v2 in next, CommandArgs do
  7365. if (lower(v2) == "player") then
  7366. Predict = Utils.GetPlayerArgs(v) or Predict;
  7367. else
  7368. Predict = Utils.MatchSearch(v, v2) and v2 or Predict
  7369. end
  7370. end
  7371. else
  7372. Predict = Utils.GetPlayerArgs(v) or Predict;
  7373. end
  7374. Prediction.Text = sub(Text, 1, #Text - #Args[#Args]) .. Predict
  7375. local split = split(v, ",");
  7376. if (next(split)) then
  7377. for i2, v2 in next, split do
  7378. if (i2 > 1 and v2 ~= "") then
  7379. local PlayerName = Utils.GetPlayerArgs(v2)
  7380. Prediction.Text = sub(Text, 1, #Text - #split[#split]) .. (PlayerName or "")
  7381. end
  7382. end
  7383. end
  7384. end
  7385. end
  7386.  
  7387. if (Sfind(Text, "\t")) then -- remove tab from preditction text also
  7388. ChatBar.Text = PredictionText
  7389. ChatBar.CursorPosition = #ChatBar.Text + 2
  7390. end
  7391. end))
  7392. Enabled = true
  7393. return ChatBar
  7394. else
  7395. Disconnect(Connection);
  7396. Destroy(Predict);
  7397. Enabled = false
  7398. end
  7399. return _L.Frame2
  7400. end
  7401.  
  7402. if (CurrentConfig.ChatPrediction) then
  7403. delay(2, ToggleChatPrediction);
  7404. end
  7405. end
  7406.  
  7407. local ConfigUILib = {}
  7408. do
  7409. local GuiObjects = ConfigElements
  7410. local PageCount = 0
  7411. local SelectedPage
  7412. local UserInputService = Services.UserInputService
  7413.  
  7414. local Colors = {
  7415. ToggleEnabled = Color3.fromRGB(5, 5, 6);
  7416. Background = Color3.fromRGB(32, 33, 36);
  7417. ToggleDisabled = Color3.fromRGB(27, 28, 31);
  7418. }
  7419.  
  7420. local ColorElements = ConfigElements.Elements.ColorElements
  7421. local Overlay = ColorElements.Overlay
  7422. local OverlayMain = Overlay.Main
  7423. local ColorPicker = OverlayMain.ColorPicker
  7424. local Settings = OverlayMain.Settings
  7425. local ClosePicker = OverlayMain.Close
  7426. local ColorCanvas = ColorPicker.ColorCanvas
  7427. local ColorSlider = ColorPicker.ColorSlider
  7428. local ColorGradient = ColorCanvas.ColorGradient
  7429. local DarkGradient = ColorGradient.DarkGradient
  7430. local CanvasBar = ColorGradient.Bar
  7431. local RainbowGradient = ColorSlider.RainbowGradient
  7432. local SliderBar = RainbowGradient.Bar
  7433. local CanvasHitbox = ColorCanvas.Hitbox
  7434. local SliderHitbox = ColorSlider.Hitbox
  7435. local ColorPreview = Settings.ColorPreview
  7436. local ColorOptions = Settings.Options
  7437. local RedTextBox = ColorOptions.Red.TextBox
  7438. local BlueTextBox = ColorOptions.Blue.TextBox
  7439. local GreenTextBox = ColorOptions.Green.TextBox
  7440. local RainbowToggle = ColorOptions.Rainbow
  7441.  
  7442. local function UpdateClone()
  7443. ConfigUIClone = Clone(ConfigUI);
  7444. end
  7445.  
  7446. function ConfigUILib.NewPage(Title)
  7447. local Page = Clone(GuiObjects.Page.Container);
  7448. local TextButton = Clone(GuiObjects.Page.TextButton);
  7449.  
  7450. Page.Visible = true
  7451. TextButton.Visible = true
  7452.  
  7453. Utils.Click(TextButton, "BackgroundColor3")
  7454.  
  7455. if PageCount == 0 then
  7456. SelectedPage = Page
  7457. end
  7458.  
  7459. AddConnection(CConnect(TextButton.MouseButton1Click, function()
  7460. if SelectedPage.Name ~= TextButton.Name then
  7461. SelectedPage = Page
  7462. ConfigUI.Container.UIPageLayout:JumpTo(SelectedPage)
  7463. end
  7464. end))
  7465.  
  7466. Page.Name = Title
  7467. TextButton.Name = Title
  7468. TextButton.Text = Title
  7469.  
  7470. Page.Parent = ConfigUI.Container
  7471. TextButton.Parent = ConfigUI.Selection
  7472.  
  7473. PageCount = PageCount + 1
  7474.  
  7475.  
  7476. UpdateClone()
  7477.  
  7478. local function GetKeyName(KeyCode)
  7479. local _, Stringed = pcall(UserInputService.GetStringForKeyCode, UserInputService, KeyCode);
  7480. local IsEnum = Stringed == ""
  7481. return (not IsEnum and _) and Stringed or split(tostring(KeyCode), ".")[3], (IsEnum and not _);
  7482. end
  7483.  
  7484. local PageLibrary = {}
  7485.  
  7486. function PageLibrary.CreateMacroSection(MacrosToAdd, Callback)
  7487. local Macro = Clone(GuiObjects.Elements.Macro);
  7488. local MacroPage = Macro.MacroPage
  7489. local Selection = Page.Selection
  7490.  
  7491. Selection.ClearAllChildren(Selection);
  7492. for i,v in next, GetChildren(MacroPage) do
  7493. v.Parent = Selection
  7494. end
  7495. Selection.Container.Visible = true
  7496. local CommandsList = Selection.Container.Commands.Frame.List
  7497. local CurrentMacros = Selection.Container.CurrentMacros
  7498. local AddMacro = Selection.AddMacro
  7499. local BindA, CommandA, ArgsA = AddMacro.Bind, AddMacro.Command, AddMacro["z Args"]
  7500. local Add = AddMacro.AddMacro
  7501. local Keybind = {};
  7502. local Enabled = false
  7503. local Connection
  7504.  
  7505. local OnClick = function()
  7506. Enabled = not Enabled
  7507. if Enabled then
  7508. BindA.Text = "..."
  7509. local OldShiftLock = LocalPlayer.DevEnableMouseLock
  7510. LocalPlayer.DevEnableMouseLock = false
  7511. Keybind = {}
  7512. Connection = AddConnection(CConnect(UserInputService.InputBegan, function(Input, Processed)
  7513. if not Processed and Input.UserInputType == Enum.UserInputType.Keyboard then
  7514. local Input2, Proccessed2;
  7515. CThread(function()
  7516. Input2, Proccessed2 = CWait(UserInputService.InputBegan);
  7517. end)()
  7518. CWait(UserInputService.InputEnded);
  7519. if (Input2 and not Processed) then
  7520. local KeyName, IsEnum = GetKeyName(Input.KeyCode);
  7521. local KeyName2, IsEnum2 = GetKeyName(Input2.KeyCode);
  7522. BindA.Text = format("%s + %s", IsEnum2 and KeyName2 or KeyName, IsEnum2 and KeyName2 or KeyName2);
  7523. Keybind[1] = Input.KeyCode
  7524. Keybind[2] = Input2.KeyCode
  7525. else
  7526. local KeyName = GetKeyName(Input.KeyCode);
  7527. BindA.Text = KeyName
  7528. Keybind[1] = Input.KeyCode
  7529. Keybind[2] = nil
  7530. end
  7531. LocalPlayer.DevEnableMouseLock = OldShiftLock
  7532. else
  7533. BindA.Text = "Bind"
  7534. end
  7535. Enabled = false
  7536. Disconnect(Connection);
  7537. end));
  7538. else
  7539. BindA.Text = "Bind"
  7540. Disconnect(Connection);
  7541. end
  7542. end
  7543.  
  7544. AddConnection(CConnect(BindA.MouseButton1Click, OnClick));
  7545. AddConnection(CConnect(Add.MouseButton1Click, function()
  7546. if (BindA.Text == "Bind") then
  7547. Utils.Notify(nil, nil, "You must assign a keybind");
  7548. return
  7549. end
  7550. if (not CommandsTable[CommandA.Text]) then
  7551. Utils.Notify(nil, nil, "You must add a command");
  7552. return
  7553. end
  7554. Callback(Keybind, CommandA.Text, ArgsA.Text);
  7555. end));
  7556.  
  7557. local Focused = false
  7558. local MacroSection = {
  7559. CommandsList = CommandsList,
  7560. AddCmd = function(Name)
  7561. local Command = Clone(Macro.Command);
  7562. Command.Name = Name
  7563. Command.Text = Name
  7564. Command.Parent = CommandsList
  7565. Command.Visible = true
  7566. AddConnection(CConnect(Command.MouseButton1Click, function()
  7567. CommandA.Text = Name
  7568. ArgsA.CaptureFocus(ArgsA);
  7569. Focused = true
  7570. CWait(ArgsA.FocusLost);
  7571. CWait(UserInputService.InputBegan);
  7572. Focused = false
  7573. wait(.2);
  7574. if (not Focused) then
  7575. OnClick();
  7576. end
  7577. end))
  7578. end,
  7579. AddMacro = function(MacroName, Bind)
  7580. local NewMacro = Clone(Macro.EditMacro);
  7581. NewMacro.Bind.Text = Bind
  7582. NewMacro.Macro.Text = MacroName
  7583. NewMacro.Parent = CurrentMacros
  7584. NewMacro.Visible = true
  7585.  
  7586. Utils.Thing(NewMacro.Bind);
  7587. Utils.Thing(NewMacro.Macro);
  7588.  
  7589. FindFirstChild(NewMacro, "Remove").Name = "Delete"
  7590. AddConnection(CConnect(NewMacro.Delete.MouseButton1Click, function()
  7591. CWait(Utils.TweenAllTrans(NewMacro, .25).Completed);
  7592. Destroy(NewMacro);
  7593. for i = 1, #Macros do
  7594. if (Macros[i].Command == split(MacroName, " ")[1]) then
  7595. Macros[i] = nil
  7596. end
  7597. end
  7598. local TempMacros = clone(Macros);
  7599. for i, v in next, TempMacros do
  7600. for i2, v2 in next, v.Keys do
  7601. TempMacros[i]["Keys"][i2] = split(tostring(v2), ".")[3]
  7602. end
  7603. end
  7604. SetConfig({Macros=TempMacros});
  7605. end))
  7606. end
  7607. }
  7608.  
  7609. for i, v in next, MacrosToAdd do
  7610. local Suc, Err = pcall(concat, v.Args, " ");
  7611. if (not Suc) then
  7612. SetConfig({Macros={}});
  7613. Utils.Notify(LocalPlayer, "Error", "Macros were reset due to corrupted data")
  7614. break;
  7615. end
  7616. local KeyName, IsEnum = GetKeyName(v.Keys[1]);
  7617. local Formatted;
  7618. if (v.Keys[2]) then
  7619. local KeyName2, IsEnum2 = GetKeyName(v.Keys[2]);
  7620. Formatted = format("%s + %s", IsEnum2 and KeyName2 or KeyName, IsEnum2 and KeyName2 or KeyName2);
  7621. else
  7622. Formatted = KeyName
  7623. end
  7624. MacroSection.AddMacro(v.Command .. " " .. concat(v.Args, " "), Formatted);
  7625. end
  7626.  
  7627. return MacroSection
  7628. end
  7629.  
  7630. function PageLibrary.NewSection(Title)
  7631. local Section = Clone(GuiObjects.Section.Container);
  7632. local SectionOptions = Section.Options
  7633. local SectionUIListLayout = SectionOptions.UIListLayout
  7634.  
  7635. Section.Visible = true
  7636.  
  7637. Utils.SmoothScroll(Section.Options, .14)
  7638. Section.Title.Text = Title
  7639. Section.Parent = Page.Selection
  7640.  
  7641.  
  7642. SectionOptions.CanvasSize = UDim2.fromOffset(0,0) --// change
  7643. AddConnection(CConnect(GetPropertyChangedSignal(SectionUIListLayout, "AbsoluteContentSize"), function()
  7644. SectionOptions.CanvasSize = UDim2.fromOffset(0, SectionUIListLayout.AbsoluteContentSize.Y + 5);
  7645. end));
  7646.  
  7647. UpdateClone();
  7648.  
  7649. local ElementLibrary = {}
  7650.  
  7651.  
  7652. function ElementLibrary.Toggle(Title, Enabled, Callback)
  7653. local Toggle = Clone(GuiObjects.Elements.Toggle);
  7654. local Container = Toggle.Container
  7655.  
  7656. local Switch = Container.Switch
  7657. local Hitbox = Container.Hitbox
  7658.  
  7659. if not Enabled then
  7660. Switch.Position = UDim2.fromOffset(2, 2)
  7661. Container.BackgroundColor3 = Colors.ToggleDisabled
  7662. end
  7663. local NoCallback = false
  7664.  
  7665. local OnClick = function()
  7666. Enabled = not Enabled
  7667.  
  7668. Utils.Tween(Switch, "Quad", "Out", .25, {
  7669. Position = Enabled and UDim2.new(1, -18, 0, 2) or UDim2.fromOffset(2, 2)
  7670. })
  7671. Utils.Tween(Container, "Quad", "Out", .25, {
  7672. BackgroundColor3 = Enabled and Colors.ToggleEnabled or Colors.ToggleDisabled
  7673. })
  7674.  
  7675. if (not NoCallback) then
  7676. Callback(Enabled);
  7677. end
  7678. end
  7679.  
  7680. AddConnection(CConnect(Hitbox.MouseButton1Click, OnClick));
  7681.  
  7682. Toggle.Visible = true
  7683. Toggle.Title.Text = Title
  7684. Toggle.Parent = Section.Options
  7685. Utils.Thing(Toggle.Title);
  7686.  
  7687. UpdateClone()
  7688.  
  7689. return function()
  7690. NoCallback = true
  7691. OnClick();
  7692. NoCallback = false
  7693. end
  7694. end
  7695.  
  7696. function ElementLibrary.ScrollingFrame(Title, Callback, Elements, Toggles)
  7697. local ScrollingFrame = Clone(GuiObjects.Elements.ScrollingFrame);
  7698. local Frame = ScrollingFrame.Frame
  7699. local Toggle = ScrollingFrame.Toggle
  7700.  
  7701. for ElementTitle, Enabled in next, Elements do
  7702. local NewToggle = Clone(Toggle);
  7703. NewToggle.Visible = true
  7704. NewToggle.Title.Text = ElementTitle
  7705. NewToggle.Plugins.Text = Enabled and (Toggles and Toggles[1] or "Enabled") or (Toggles and Toggles[2] or "Disabled");
  7706.  
  7707.  
  7708. Utils.Click(NewToggle.Plugins, "BackgroundColor3")
  7709.  
  7710. AddConnection(CConnect(NewToggle.Plugins.MouseButton1Click, function()
  7711. Enabled = not Enabled
  7712. NewToggle.Plugins.Text = Enabled and (Toggles and Toggles[1] or "Enabled") or (Toggles and Toggles[2] or "Disabled");
  7713.  
  7714. Callback(ElementTitle, Enabled);
  7715. end));
  7716.  
  7717. NewToggle.Parent = Frame.Container
  7718. end
  7719.  
  7720. Frame.Visible = true
  7721. Frame.Title.Text = Title
  7722. Frame.Parent = Section.Options
  7723.  
  7724. for _, NewToggle in next, GetChildren(Frame.Container) do
  7725. if (IsA(NewToggle, "GuiObject")) then
  7726. Utils.Thing(NewToggle.Title);
  7727. end
  7728. end
  7729.  
  7730. UpdateClone()
  7731. end
  7732.  
  7733. function ElementLibrary.Keybind(Title, Bind, Callback)
  7734. local Keybind = Clone(GuiObjects.Elements.Keybind);
  7735. local Enabled = false
  7736. local Connection
  7737.  
  7738. Keybind.Container.Text = Bind
  7739. Keybind.Title.Text = Title
  7740.  
  7741. local Container = Keybind.Container
  7742. AddConnection(CConnect(Container.MouseButton1Click, function()
  7743. Enabled = not Enabled
  7744.  
  7745. if Enabled then
  7746. Container.Text = "..."
  7747. local OldShiftLock = LocalPlayer.DevEnableMouseLock
  7748. -- disable shift lock so it doesn't interfere with keybind
  7749. LocalPlayer.DevEnableMouseLock = false
  7750. Connection = AddConnection(CConnect(UserInputService.InputBegan, function(Input, Processed)
  7751. if not Processed and Input.UserInputType == Enum.UserInputType.Keyboard then
  7752. local Input2, Proccessed2;
  7753. CThread(function()
  7754. Input2, Proccessed2 = CWait(UserInputService.InputBegan);
  7755. end)()
  7756. CWait(UserInputService.InputEnded);
  7757. if (Input2 and not Processed) then
  7758. local KeyName, IsEnum = GetKeyName(Input.KeyCode);
  7759. local KeyName2, IsEnum2 = GetKeyName(Input2.KeyCode);
  7760. -- Order by if it's an enum first, example 'Shift + K' and not 'K + Shift'
  7761. Container.Text = format("%s + %s", IsEnum2 and KeyName2 or KeyName, IsEnum2 and KeyName2 or KeyName2);
  7762. Callback(Input.KeyCode, Input2.KeyCode);
  7763. else
  7764. local KeyName = GetKeyName(Input.KeyCode);
  7765. Container.Text = KeyName
  7766. Callback(Input.KeyCode);
  7767. end
  7768. LocalPlayer.DevEnableMouseLock = OldShiftLock
  7769. else
  7770. Container.Text = "press"
  7771. end
  7772. Enabled = false
  7773. Disconnect(Connection);
  7774. end));
  7775. else
  7776. Container.Text = "press"
  7777. Disconnect(Connection);
  7778. end
  7779. end));
  7780.  
  7781. Utils.Click(Container, "BackgroundColor3");
  7782. Keybind.Visible = true
  7783. Keybind.Parent = Section.Options
  7784. UpdateClone();
  7785. end
  7786.  
  7787. function ElementLibrary.TextboxKeybind(Title, Bind, Callback)
  7788. local Keybind = Clone(GuiObjects.Elements.TextboxKeybind);
  7789.  
  7790. Keybind.Container.Text = Bind
  7791. Keybind.Title.Text = Title
  7792.  
  7793. local Container = Keybind.Container
  7794. AddConnection(CConnect(GetPropertyChangedSignal(Container, "Text"), function(Key)
  7795. if (#Container.Text >= 1) then
  7796. Container.Text = sub(Container.Text, 1, 1);
  7797. Callback(Container.Text);
  7798. Container.ReleaseFocus(Container);
  7799. end
  7800. end))
  7801.  
  7802. Keybind.Visible = true
  7803. Keybind.Parent = Section.Options
  7804. UpdateClone();
  7805. end
  7806.  
  7807. function ElementLibrary.ColorPicker(Title, DefaultColor, Callback)
  7808. local SelectColor = Clone(ColorElements.SelectColor);
  7809. local CurrentColor = DefaultColor
  7810. local Button = SelectColor.Button
  7811. local ToHSV = DefaultColor.ToHSV
  7812. local Color3New = Color3.new
  7813. local Color3fromHSV = Color3.fromHSV
  7814. local UDim2New = UDim2.new
  7815. local clamp = math.clamp
  7816.  
  7817. local H, S, V = ToHSV(DefaultColor);
  7818. local Opened = false
  7819. local Rainbow = false
  7820.  
  7821. local function UpdateText()
  7822. RedTextBox.PlaceholderText = tostring(math.floor(CurrentColor.R * 255))
  7823. GreenTextBox.PlaceholderText = tostring(math.floor(CurrentColor.G * 255))
  7824. BlueTextBox.PlaceholderText = tostring(math.floor(CurrentColor.B * 255))
  7825. end
  7826.  
  7827. local function UpdateColor()
  7828. H, S, V = ToHSV(CurrentColor);
  7829.  
  7830. SliderBar.Position = UDim2New(0, 0, H, 2);
  7831. CanvasBar.Position = UDim2New(S, 2, 1 - V, 2);
  7832. ColorGradient.UIGradient.Color = Utils.MakeGradient({
  7833. [1] = Color3New(1, 1, 1);
  7834. [2] = Color3fromHSV(H, 1, 1);
  7835. })
  7836.  
  7837. ColorPreview.BackgroundColor3 = CurrentColor
  7838. UpdateText();
  7839. end
  7840.  
  7841. local function UpdateHue(Hue)
  7842. SliderBar.Position = UDim2New(0, 0, Hue, 2);
  7843. ColorGradient.UIGradient.Color = Utils.MakeGradient({
  7844. [1] = Color3New(1, 1, 1);
  7845. [2] = Color3fromHSV(Hue, 1, 1);
  7846. });
  7847.  
  7848. ColorPreview.BackgroundColor3 = CurrentColor
  7849. UpdateText();
  7850. end
  7851.  
  7852. local function ColorSliderInit()
  7853. local Moving = false
  7854.  
  7855. local function Update()
  7856. if Opened and not Rainbow then
  7857. local LowerBound = SliderHitbox.AbsoluteSize.Y
  7858. local Position = clamp(Mouse.Y - SliderHitbox.AbsolutePosition.Y, 0, LowerBound);
  7859. local Value = Position / LowerBound
  7860.  
  7861. H = Value
  7862. CurrentColor = Color3fromHSV(H, S, V);
  7863. ColorPreview.BackgroundColor3 = CurrentColor
  7864. ColorGradient.UIGradient.Color = Utils.MakeGradient({
  7865. [1] = Color3New(1, 1, 1);
  7866. [2] = Color3fromHSV(H, 1, 1);
  7867. });
  7868.  
  7869. UpdateText();
  7870.  
  7871. local Position = UDim2.new(0, 0, Value, 2)
  7872. local Tween = Utils.Tween(SliderBar, "Linear", "Out", .05, {
  7873. Position = Position
  7874. });
  7875.  
  7876. Callback(CurrentColor);
  7877. CWait(Tween.Completed);
  7878. end
  7879. end
  7880.  
  7881. AddConnection(CConnect(SliderHitbox.MouseButton1Down, function()
  7882. Moving = true
  7883. Update()
  7884. end))
  7885.  
  7886. AddConnection(CConnect(UserInputService.InputEnded, function(Input)
  7887. if Input.UserInputType == Enum.UserInputType.MouseButton1 and Moving then
  7888. Moving = false
  7889. end
  7890. end))
  7891.  
  7892. AddConnection(CConnect(Mouse.Move, Utils.Debounce(function()
  7893. if Moving then
  7894. Update()
  7895. end
  7896. end)))
  7897. end
  7898. local function ColorCanvasInit()
  7899. local Moving = false
  7900.  
  7901. local function Update()
  7902. if Opened then
  7903. local LowerBound = CanvasHitbox.AbsoluteSize.Y
  7904. local YPosition = clamp(Mouse.Y - CanvasHitbox.AbsolutePosition.Y, 0, LowerBound)
  7905. local YValue = YPosition / LowerBound
  7906. local RightBound = CanvasHitbox.AbsoluteSize.X
  7907. local XPosition = clamp(Mouse.X - CanvasHitbox.AbsolutePosition.X, 0, RightBound)
  7908. local XValue = XPosition / RightBound
  7909.  
  7910. S = XValue
  7911. V = 1 - YValue
  7912.  
  7913. CurrentColor = Color3fromHSV(H, S, V);
  7914. ColorPreview.BackgroundColor3 = CurrentColor
  7915. UpdateText()
  7916.  
  7917. local Position = UDim2New(XValue, 2, YValue, 2);
  7918. local Tween = Utils.Tween(CanvasBar, "Linear", "Out", .05, {
  7919. Position = Position
  7920. });
  7921. Callback(CurrentColor);
  7922. CWait(Tween.Completed);
  7923. end
  7924. end
  7925.  
  7926. AddConnection(CConnect(CanvasHitbox.MouseButton1Down, function()
  7927. Moving = true
  7928. Update()
  7929. end))
  7930.  
  7931. AddConnection(CConnect(UserInputService.InputEnded, function(Input)
  7932. if Input.UserInputType == Enum.UserInputType.MouseButton1 and Moving then
  7933. Moving = false
  7934. end
  7935. end))
  7936.  
  7937. AddConnection(CConnect(Mouse.Move, Utils.Debounce(function()
  7938. if Moving then
  7939. Update()
  7940. end
  7941. end)))
  7942. end
  7943.  
  7944. ColorSliderInit()
  7945. ColorCanvasInit()
  7946.  
  7947. AddConnection(CConnect(Button.MouseButton1Click, function()
  7948. if not Opened then
  7949. Opened = true
  7950. UpdateColor()
  7951. RainbowToggle.Container.Switch.Position = Rainbow and UDim2New(1, -18, 0, 2) or UDim2.fromOffset(2, 2)
  7952. RainbowToggle.Container.BackgroundColor3 = Color3.fromRGB(25, 25, 25);
  7953. Overlay.Visible = true
  7954. OverlayMain.Visible = false
  7955. Utils.Intro(OverlayMain)
  7956. end
  7957. end))
  7958.  
  7959. AddConnection(CConnect(ClosePicker.MouseButton1Click, Utils.Debounce(function()
  7960. Button.BackgroundColor3 = CurrentColor
  7961. Utils.Intro(OverlayMain)
  7962. Overlay.Visible = false
  7963. Opened = false
  7964. end)))
  7965.  
  7966. AddConnection(CConnect(RedTextBox.FocusLost, function()
  7967. if Opened then
  7968. local Number = tonumber(RedTextBox.Text)
  7969. if Number then
  7970. Number = clamp(floor(Number), 0, 255)
  7971. CurrentColor = Color3New(Number / 255, CurrentColor.G, CurrentColor.B)
  7972. UpdateColor()
  7973. RedTextBox.PlaceholderText = tostring(Number)
  7974. Callback(CurrentColor)
  7975. end
  7976. RedTextBox.Text = ""
  7977. end
  7978. end))
  7979.  
  7980. AddConnection(CConnect(GreenTextBox.FocusLost, function()
  7981. if Opened then
  7982. local Number = tonumber(GreenTextBox.Text)
  7983. if Number then
  7984. Number = clamp(floor(Number), 0, 255)
  7985. CurrentColor = Color3New(CurrentColor.R, Number / 255, CurrentColor.B)
  7986. UpdateColor()
  7987. GreenTextBox.PlaceholderText = tostring(Number)
  7988. Callback(CurrentColor)
  7989. end
  7990. GreenTextBox.Text = ""
  7991. end
  7992. end))
  7993.  
  7994. AddConnection(CConnect(BlueTextBox.FocusLost, function()
  7995. if Opened then
  7996. local Number = tonumber(BlueTextBox.Text)
  7997. if Number then
  7998. Number = clamp(floor(Number), 0, 255)
  7999. CurrentColor = Color3New(CurrentColor.R, CurrentColor.G, Number / 255)
  8000. UpdateColor()
  8001. BlueTextBox.PlaceholderText = tostring(Number)
  8002. Callback(CurrentColor)
  8003. end
  8004. BlueTextBox.Text = ""
  8005. end
  8006. end))
  8007.  
  8008. Utils.ToggleFunction(RainbowToggle.Container, false, function(Callback)
  8009. if Opened then
  8010. Rainbow = Callback
  8011. end
  8012. end)
  8013.  
  8014. AddConnection(CConnect(RenderStepped, function()
  8015. if Rainbow then
  8016. local Hue = (tick() / 5) % 1
  8017. CurrentColor = Color3.fromHSV(Hue, S, V)
  8018.  
  8019. if Opened then
  8020. UpdateHue(Hue)
  8021. end
  8022.  
  8023. Button.BackgroundColor3 = CurrentColor
  8024. Callback(CurrentColor, true);
  8025. end
  8026. end))
  8027.  
  8028. Button.BackgroundColor3 = DefaultColor
  8029. SelectColor.Title.Text = Title
  8030. SelectColor.Visible = true
  8031. SelectColor.Parent = Section.Options
  8032. Utils.Thing(SelectColor.Title);
  8033. end
  8034.  
  8035. return ElementLibrary
  8036. end
  8037.  
  8038. return PageLibrary
  8039. end
  8040. end
  8041.  
  8042. Utils.Click(ConfigUI.Close, "TextColor3")
  8043. AddConnection(CConnect(ConfigUI.Close.MouseButton1Click, function()
  8044. ConfigLoaded = false
  8045. CWait(Utils.TweenAllTrans(ConfigUI, .25).Completed);
  8046. ConfigUI.Visible = false
  8047. end))
  8048. --END IMPORT [uimore]
  8049.  
  8050.  
  8051. --IMPORT [plugin]
  8052. PluginConf = IsSupportedExploit and GetPluginConfig();
  8053. local Plugins;
  8054.  
  8055. PluginLibrary = {
  8056. LocalPlayer = LocalPlayer,
  8057. Services = Services,
  8058. GetCharacter = GetCharacter,
  8059. ProtectInstance = ProtectInstance,
  8060. SpoofInstance = SpoofInstance,
  8061. SpoofProperty = SpoofProperty,
  8062. UnSpoofInstance = UnSpoofInstance,
  8063. ReplaceCharacter = ReplaceCharacter,
  8064. ReplaceHumanoid = ReplaceHumanoid,
  8065. GetCorrectToolWithHandle = GetCorrectToolWithHandle,
  8066. DisableAnimate = DisableAnimate,
  8067. GetPlayer = GetPlayer,
  8068. GetHumanoid = GetHumanoid,
  8069. GetRoot = GetRoot,
  8070. GetMagnitude = GetMagnitude,
  8071. GetCommandEnv = function(Name)
  8072. local Command = LoadCommand(Name);
  8073. if (Command.CmdEnv) then
  8074. return Command.CmdEnv
  8075. end
  8076. end,
  8077. isR6 = isR6,
  8078. ExecuteCommand = ExecuteCommand,
  8079. Notify = Utils.Notify,
  8080. HasTool = HasTool,
  8081. isSat = isSat,
  8082. Request = syn and syn.request or request or game.HttpGet,
  8083. CThread = CThread,
  8084. AddConnection = AddConnection,
  8085. filter = filter,
  8086. map = map,
  8087. clone = clone,
  8088. firetouchinterest = firetouchinterest,
  8089. fireproximityprompt = fireproximityprompt,
  8090. decompile = decompile,
  8091. getnilinstances = getnilinstances,
  8092. getinstances = getinstances,
  8093. Drawing = Drawing
  8094. }
  8095.  
  8096. do
  8097. local IsDebug = IsSupportedExploit and PluginConf.PluginDebug
  8098.  
  8099. Plugins = IsSupportedExploit and map(filter(listfiles("fates-admin/plugins"), function(i, v)
  8100. return lower(split(v, ".")[#split(v, ".")]) == "lua"
  8101. end), function(i, v)
  8102. local splitted = split(v, "\\");
  8103. if (identifyexecutor and identifyexecutor() == "ScriptWare") then
  8104. return {splitted[#splitted], loadfile("fates-admin/plugins/" .. v)}
  8105. else
  8106. return {splitted[#splitted], loadfile(v)}
  8107. end
  8108. end) or {}
  8109.  
  8110. if (SafePlugins) then
  8111. local Renv = clone(getrenv(), true);
  8112. for i, v in next, Renv do
  8113. PluginLibrary[i] = v
  8114. end
  8115. end
  8116. PluginLibrary.debug = nil
  8117. PluginLibrary.getfenv = nil
  8118. PluginLibrary.loadstring = loadstring
  8119.  
  8120. if (PluginConf.SafePlugins) then
  8121. local Funcs = {}
  8122. for i, v in next, PluginLibrary do
  8123. if (type(v) == 'function') then
  8124. Funcs[#Funcs + 1] = v
  8125. end
  8126. end
  8127. local FateEnv = getfenv(1);
  8128. PluginLibrary.getfenv = newcclosure(function(...)
  8129. local f = ({...})[1]
  8130. local Env = getfenv(...);
  8131. if (type(f) == 'function' and Tfind(Funcs, f) or Env == FateEnv and checkcaller()) then
  8132. return PluginLibrary
  8133. end
  8134. return Env
  8135. end)
  8136. end
  8137.  
  8138. if (PluginConf.PluginsEnabled) then
  8139. local LoadPlugin = function(Plugin)
  8140. if (not IsSupportedExploit) then
  8141. return
  8142. end
  8143.  
  8144. if (Plugin and PluginConf.DisabledPlugins[Plugin.Name]) then
  8145. Utils.Notify(LocalPlayer, "Plugin not loaded.", format("Plugin %s was not loaded as it is on the disabled list.", Plugin.Name));
  8146. return "Disabled"
  8147. end
  8148. if (#keys(Plugin) < 3) then
  8149. return Utils.Notify(LocalPlayer, "Plugin Fail", "One of your plugins is missing information.");
  8150. end
  8151. if (IsDebug) then
  8152. Utils.Notify(LocalPlayer, "Plugin loading", format("Plugin %s is being loaded.", Plugin.Name));
  8153. end
  8154.  
  8155. local Context;
  8156. local sett, gett = setthreadidentity, getthreadidentity
  8157. if (sett and PluginConf.SafePlugins) then
  8158. Context = gett();
  8159. sett(5);
  8160. end
  8161. local Ran, Return = pcall(Plugin.Init);
  8162. if (sett and Context) then
  8163. sett(Context);
  8164. end
  8165. if (not Ran and Return and IsDebug) then
  8166. return Utils.Notify(LocalPlayer, "Plugin Fail", format("there is an error in plugin Init %s: %s", Plugin.Name, Return));
  8167. end
  8168.  
  8169. for i, command in next, Plugin.Commands or {} do -- adding the "or" because some people might have outdated plugins in the dir
  8170. if (#keys(command) < 3) then
  8171. Utils.Notify(LocalPlayer, "Plugin Command Fail", format("Command %s is missing information", command.Name));
  8172. continue
  8173. end
  8174. AddCommand(command.Name, command.Aliases or {}, command.Description .. " - " .. Plugin.Author, command.Requirements or {}, command.Func, true);
  8175.  
  8176. if (FindFirstChild(Commands.Frame.List, command.Name)) then
  8177. Destroy(FindFirstChild(Commands.Frame.List, command.Name));
  8178. end
  8179. local Clone = Clone(Command);
  8180. Utils.Hover(Clone, "BackgroundColor3");
  8181. Utils.ToolTip(Clone, format("%s\n%s - %s", command.Name, command.Description, Plugin.Author));
  8182. Clone.CommandText.RichText = true
  8183. Clone.CommandText.Text = format("%s %s %s", command.Name, next(command.Aliases or {}) and format("(%s)", concat(command.Aliases, ", ")) or "", Utils.TextFont("[PLUGIN]", {77, 255, 255}));
  8184. Clone.Name = command.Name
  8185. Clone.Visible = true
  8186. Clone.Parent = Commands.Frame.List
  8187. if (IsDebug) then
  8188. Utils.Notify(LocalPlayer, "Plugin Command Loaded", format("Command %s loaded successfully", command.Name));
  8189. end
  8190. end
  8191. end
  8192.  
  8193. if (IsSupportedExploit) then
  8194. if (not isfolder("fates-admin") and not isfolder("fates-admin/plugins") and not isfolder("fates-admin/plugin-conf.json") or not isfolder("fates-admin/chatlogs")) then
  8195. WriteConfig();
  8196. end
  8197. end
  8198.  
  8199. for i, Plugin in next, Plugins do
  8200. local PluginFunc = Plugin[2]
  8201. if (PluginConf.SafePlugins) then
  8202. setfenv(PluginFunc, PluginLibrary);
  8203. else
  8204. local CurrentEnv = getfenv(PluginFunc);
  8205. for i2, v2 in next, PluginLibrary do
  8206. CurrentEnv[i2] = v2
  8207. end
  8208. end
  8209. local Success, Ret = pcall(PluginFunc);
  8210. if (Success) then
  8211. LoadPlugin(Ret);
  8212. elseif (PluginConf.PluginDebug) then
  8213. Utils.Notify(LocalPlayer, "Fail", "There was an error Loading plugin (console for more information)");
  8214. warn("[FA Plugin Error]: " .. debug.traceback(Ret));
  8215. end
  8216. end
  8217.  
  8218. AddCommand("refreshplugins", {"rfp", "refreshp", "reloadp"}, "Loads all new plugins.", {}, function()
  8219. if (not IsSupportedExploit) then
  8220. return "your exploit does not support plugins"
  8221. end
  8222. PluginConf = GetPluginConfig();
  8223. IsDebug = PluginConf.PluginDebug
  8224.  
  8225. Plugins = map(filter(listfiles("fates-admin/plugins"), function(i, v)
  8226. return lower(split(v, ".")[#split(v, ".")]) == "lua"
  8227. end), function(i, v)
  8228. return {split(v, "\\")[2], loadfile(v)}
  8229. end)
  8230.  
  8231. for i, Plugin in next, Plugins do
  8232. local PluginFunc = Plugin[2]
  8233. setfenv(PluginFunc, PluginLibrary);
  8234. local Success, Ret = pcall(PluginFunc);
  8235. if (Success) then
  8236. LoadPlugin(Ret);
  8237. elseif (PluginConf.PluginDebug) then
  8238. Utils.Notify(LocalPlayer, "Fail", "There was an error Loading plugin (console for more information)");
  8239. warn("[FA Plugin Error]: " .. debug.traceback(Ret));
  8240. end
  8241. end
  8242. end)
  8243. end
  8244. end
  8245. --END IMPORT [plugin]
  8246.  
  8247.  
  8248. WideBar = false
  8249. Draggable = false
  8250.  
  8251. --IMPORT [config]
  8252. do
  8253. local UserInputService = Services.UserInputService
  8254. local GetStringForKeyCode = UserInputService.GetStringForKeyCode
  8255. local function GetKeyName(KeyCode)
  8256. local _, Stringed = pcall(GetStringForKeyCode, UserInputService, KeyCode);
  8257. local IsEnum = Stringed == ""
  8258. return (not IsEnum and _) and Stringed or split(tostring(KeyCode), ".")[3], (IsEnum and not _);
  8259. end
  8260.  
  8261. local SortKeys = function(Key1, Key2)
  8262. local KeyName, IsEnum = GetKeyName(Key1);
  8263. if (Key2) then
  8264. local KeyName2, IsEnum2 = GetKeyName(Key2);
  8265. return format("%s + %s", IsEnum2 and KeyName2 or KeyName, IsEnum2 and KeyName2 or KeyName2);
  8266. end
  8267. return KeyName
  8268. end
  8269.  
  8270. LoadConfig = function()
  8271. local Script = ConfigUILib.NewPage("Script");
  8272. local Settings = Script.NewSection("Settings");
  8273.  
  8274. local CurrentConf = GetConfig();
  8275.  
  8276. Settings.TextboxKeybind("Chat Prefix", Prefix, function(Key)
  8277. if (not match(Key, "%A") or match(Key, "%d") or #Key > 1) then
  8278. Utils.Notify(nil, "Prefix", "Prefix must be a 1 character symbol.");
  8279. return
  8280. end
  8281. Prefix = Key
  8282. Utils.Notify(nil, "Prefix", "Prefix is now " .. Key);
  8283. end)
  8284.  
  8285. Settings.Keybind("CMDBar Prefix", GetKeyName(CommandBarPrefix), function(KeyCode1, KeyCode2)
  8286. CommandBarPrefix = KeyCode1
  8287. Utils.Notify(nil, "Prefix", "CommandBar Prefix is now " .. GetKeyName(KeyCode1));
  8288. end)
  8289.  
  8290. local ToggleSave;
  8291. ToggleSave = Settings.Toggle("Save Prefix's", false, function(Callback)
  8292. SetConfig({["Prefix"]=Prefix,["CommandBarPrefix"]=split(tostring(CommandBarPrefix), ".")[3]});
  8293. wait(.5);
  8294. ToggleSave();
  8295. Utils.Notify(nil, "Prefix", "saved prefix's");
  8296. end)
  8297.  
  8298. local Misc = Script.NewSection("Misc");
  8299.  
  8300. Misc.Toggle("Chat Prediction", CurrentConf.ChatPrediction or false, function(Callback)
  8301. local ChatBar = ToggleChatPrediction();
  8302. if (Callback) then
  8303. ChatBar.CaptureFocus(ChatBar);
  8304. wait();
  8305. ChatBar.Text = Prefix
  8306. end
  8307. SetConfig({ChatPrediction=Callback});
  8308. Utils.Notify(nil, nil, format("ChatPrediction %s", Callback and "enabled" or "disabled"));
  8309. end)
  8310.  
  8311. Misc.Toggle("Anti Kick", Hooks.AntiKick, function(Callback)
  8312. Hooks.AntiKick = Callback
  8313. Utils.Notify(nil, nil, format("AntiKick %s", Hooks.AntiKick and "enabled" or "disabled"));
  8314. end)
  8315.  
  8316. Misc.Toggle("Anti Teleport", Hooks.AntiTeleport, function(Callback)
  8317. Hooks.AntiTeleport = Callback
  8318. Utils.Notify(nil, nil, format("AntiTeleport %s", Hooks.AntiTeleport and "enabled" or "disabled"));
  8319. end)
  8320.  
  8321. Misc.Toggle("wide cmdbar", WideBar, function(Callback)
  8322. WideBar = Callback
  8323. if (not Draggable) then
  8324. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  8325. Position = UDim2.new(0.5, WideBar and -200 or -100, 1, 5) -- tween -110
  8326. })
  8327. end
  8328. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  8329. Size = UDim2.new(0, WideBar and 400 or 200, 0, 35) -- tween -110
  8330. })
  8331. SetConfig({WideBar=Callback});
  8332. Utils.Notify(nil, nil, format("widebar %s", WideBar and "enabled" or "disabled"));
  8333. end)
  8334.  
  8335. Misc.Toggle("draggable cmdbar", Draggable, function(Callback)
  8336. Draggable = Callback
  8337. CommandBarOpen = true
  8338. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  8339. Position = UDim2.new(0, Mouse.X, 0, Mouse.Y + 36);
  8340. })
  8341. Utils.Draggable(CommandBar);
  8342. local TransparencyTween = CommandBarOpen and Utils.TweenAllTransToObject or Utils.TweenAllTrans
  8343. local Tween = TransparencyTween(CommandBar, .5, CommandBarTransparencyClone);
  8344. CommandBar.Input.Text = ""
  8345. if (not Callback) then
  8346. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  8347. Position = UDim2.new(0.5, WideBar and -200 or -100, 1, 5) -- tween 5
  8348. })
  8349. end
  8350. Utils.Notify(nil, nil, format("draggable command bar %s", Draggable and "enabled" or "disabled"));
  8351. end)
  8352.  
  8353. Misc.Toggle("KillCam when killing", CurrentConf.KillCam, function(Callback)
  8354. SetConfig({KillCam=Callback});
  8355. _L.KillCam = Callback
  8356. end)
  8357.  
  8358. local OldFireTouchInterest = firetouchinterest
  8359. Misc.Toggle("cframe touchinterest", firetouchinterest == nil, function(Callback)
  8360. firetouchinterest = Callback and function(part1, part2, toggle)
  8361. if (part1 and part2) then
  8362. if (toggle == 0) then
  8363. touched[1] = part1.CFrame
  8364. part1.CFrame = part2.CFrame
  8365. else
  8366. part1.CFrame = touched[1]
  8367. touched[1] = nil
  8368. end
  8369. end
  8370. end or OldFireTouchInterest
  8371. end)
  8372.  
  8373. local MacrosPage = ConfigUILib.NewPage("Macros");
  8374. local MacroSection;
  8375. MacroSection = MacrosPage.CreateMacroSection(Macros, function(Bind, Command, Args)
  8376. local AlreadyAdded = false
  8377. for i = 1, #Macros do
  8378. if (Macros[i].Command == Command) then
  8379. AlreadyAdded = true
  8380. end
  8381. end
  8382. if (CommandsTable[Command] and not AlreadyAdded) then
  8383. MacroSection.AddMacro(Command .. " " .. Args, SortKeys(Bind[1], Bind[2]));
  8384. Args = split(Args, " ");
  8385. if (sub(Command, 1, 2) == "un" or CommandsTable["un" .. Command]) then
  8386. local Shifted = {Command, unpack(Args)}
  8387. Macros[#Macros + 1] = {
  8388. Command = "toggle",
  8389. Args = Shifted,
  8390. Keys = Bind
  8391. }
  8392. else
  8393. Macros[#Macros + 1] = {
  8394. Command = Command,
  8395. Args = Args,
  8396. Keys = Bind
  8397. }
  8398. end
  8399. local TempMacros = clone(Macros);
  8400. for i, v in next, TempMacros do
  8401. for i2, v2 in next, v.Keys do
  8402. TempMacros[i]["Keys"][i2] = split(tostring(v2), ".")[3]
  8403. end
  8404. end
  8405. SetConfig({Macros=TempMacros});
  8406. end
  8407. end)
  8408. local UIListLayout = MacroSection.CommandsList.UIListLayout
  8409. for i, v in next, CommandsTable do
  8410. if (not FindFirstChild(MacroSection.CommandsList, v.Name)) then
  8411. MacroSection.AddCmd(v.Name);
  8412. end
  8413. end
  8414. MacroSection.CommandsList.CanvasSize = UDim2.fromOffset(0, UIListLayout.AbsoluteContentSize.Y);
  8415. local Search = FindFirstChild(MacroSection.CommandsList.Parent.Parent, "Search");
  8416.  
  8417. AddConnection(CConnect(GetPropertyChangedSignal(Search, "Text"), function()
  8418. local Text = Search.Text
  8419. for _, v in next, GetChildren(MacroSection.CommandsList) do
  8420. if (IsA(v, "TextButton")) then
  8421. local Command = v.Text
  8422. v.Visible = Sfind(lower(Command), Text, 1, true)
  8423. end
  8424. end
  8425. MacroSection.CommandsList.CanvasSize = UDim2.fromOffset(0, UIListLayout.AbsoluteContentSize.Y);
  8426. end), Connections.UI, true);
  8427.  
  8428. local PluginsPage = ConfigUILib.NewPage("Plugins");
  8429.  
  8430. local CurrentPlugins = PluginsPage.NewSection("Current Plugins");
  8431. local PluginSettings = PluginsPage.NewSection("Plugin Settings");
  8432.  
  8433. local CurrentPluginConf = GetPluginConfig();
  8434.  
  8435. CurrentPlugins.ScrollingFrame("plugins", function(Option, Enabled)
  8436. CurrentPluginConf = GetPluginConfig();
  8437. for i = 1, #Plugins do
  8438. local Plugin = Plugins[i]
  8439. if (Plugin[1] == Option) then
  8440. local DisabledPlugins = CurrentPluginConf.DisabledPlugins
  8441. local PluginName = Plugin[2]().Name
  8442. if (Enabled) then
  8443. DisabledPlugins[PluginName] = nil
  8444. SetPluginConfig({DisabledPlugins=DisabledPlugins});
  8445. Utils.Notify(nil, "Plugin Enabled", format("plugin %s successfully enabled", PluginName));
  8446. else
  8447. DisabledPlugins[PluginName] = true
  8448. SetPluginConfig({DisabledPlugins=DisabledPlugins});
  8449. Utils.Notify(nil, "Plugin Disabled", format("plugin %s successfully disabled", PluginName));
  8450. end
  8451. end
  8452. end
  8453. end, map(Plugins, function(Key, Plugin)
  8454. return not PluginConf.DisabledPlugins[Plugin[2]().Name], Plugin[1]
  8455. end));
  8456.  
  8457. PluginSettings.Toggle("Plugins Enabled", CurrentPluginConf.PluginsEnabled, function(Callback)
  8458. SetPluginConfig({PluginsEnabled = Callback});
  8459. end)
  8460.  
  8461. PluginSettings.Toggle("Plugins Debug", CurrentPluginConf.PluginDebug, function(Callback)
  8462. SetPluginConfig({PluginDebug = Callback});
  8463. end)
  8464.  
  8465. PluginSettings.Toggle("Safe Plugins", CurrentPluginConf.SafePlugins, function(Callback)
  8466. SetPluginConfig({SafePlugins = Callback});
  8467. end)
  8468.  
  8469. local Themes = ConfigUILib.NewPage("Themes");
  8470.  
  8471. local Color = Themes.NewSection("Colors");
  8472. local Options = Themes.NewSection("Options");
  8473.  
  8474. local RainbowEnabled = false
  8475. Color.ColorPicker("All Background", UITheme.Background.BackgroundColor, function(Callback, IsRainbow)
  8476. UITheme.Background.BackgroundColor = Callback
  8477. RainbowEnabled = IsRainbow
  8478. end)
  8479. Color.ColorPicker("CommandBar", UITheme.CommandBar.BackgroundColor, function(Callback)
  8480. if (not RainbowEnabled) then
  8481. UITheme.CommandBar.BackgroundColor = Callback
  8482. end
  8483. end)
  8484. Color.ColorPicker("Notification", UITheme.Notification.BackgroundColor, function(Callback)
  8485. if (not RainbowEnabled) then
  8486. UITheme.Notification.BackgroundColor = Callback
  8487. end
  8488. end)
  8489. Color.ColorPicker("ChatLogs", UITheme.ChatLogs.BackgroundColor, function(Callback)
  8490. if (not RainbowEnabled) then
  8491. UITheme.ChatLogs.BackgroundColor = Callback
  8492. end
  8493. end)
  8494. Color.ColorPicker("CommandList", UITheme.CommandList.BackgroundColor, function(Callback)
  8495. if (not RainbowEnabled) then
  8496. UITheme.CommandList.BackgroundColor = Callback
  8497. end
  8498. end)
  8499. Color.ColorPicker("Config", UITheme.Config.BackgroundColor, function(Callback)
  8500. if (not RainbowEnabled) then
  8501. UITheme.Config.BackgroundColor = Callback
  8502. end
  8503. end)
  8504.  
  8505. Color.ColorPicker("All Text", UITheme.Background.TextColor, function(Callback)
  8506. UITheme.Background.TextColor = Callback
  8507. end)
  8508.  
  8509. local ToggleSave;
  8510. ToggleSave = Options.Toggle("Save Theme", false, function(Callback)
  8511. WriteThemeConfig();
  8512. wait(.5);
  8513. ToggleSave();
  8514. Utils.Notify(nil, "Theme", "saved theme");
  8515. end)
  8516.  
  8517. local ToggleLoad;
  8518. ToggleLoad = Options.Toggle("Load Theme", false, function(Callback)
  8519. LoadTheme(GetThemeConfig());
  8520. wait(.5);
  8521. ToggleLoad();
  8522. Utils.Notify(nil, "Theme", "Loaded theme");
  8523. end)
  8524.  
  8525. local ToggleReset;
  8526. ToggleReset = Options.Toggle("Reset Theme", false, function(Callback)
  8527. UITheme.Background.BackgroundColor = "Reset"
  8528. UITheme.Notification.TextColor = "Reset"
  8529. UITheme.CommandBar.TextColor = "Reset"
  8530. UITheme.CommandList.TextColor = "Reset"
  8531. UITheme.ChatLogs.TextColor = "Reset"
  8532. UITheme.Config.TextColor = "Reset"
  8533. UITheme.Notification.Transparency = "Reset"
  8534. UITheme.CommandBar.Transparency = "Reset"
  8535. UITheme.CommandList.Transparency = "Reset"
  8536. UITheme.ChatLogs.Transparency = "Reset"
  8537. UITheme.Config.Transparency = "Reset"
  8538. wait(.5);
  8539. ToggleReset();
  8540. Utils.Notify(nil, "Theme", "reset theme");
  8541. end)
  8542.  
  8543. end
  8544.  
  8545. delay(1, function()
  8546. for i = 1, #Macros do
  8547. local Macro = Macros[i]
  8548. for i2 = 1, #Macro.Keys do
  8549. Macros[i].Keys[i2] = Enum.KeyCode[Macros[i].Keys[i2]]
  8550. end
  8551. end
  8552. if (CurrentConfig.WideBar) then
  8553. WideBar = true
  8554. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  8555. Size = UDim2.new(0, WideBar and 400 or 200, 0, 35) -- tween -110
  8556. })
  8557. end
  8558. KillCam = CurrentConfig.KillCam
  8559. local Aliases = CurrentConfig.Aliases
  8560. if (Aliases) then
  8561. for i, v in next, Aliases do
  8562. if (CommandsTable[i]) then
  8563. for i2 = 1, #v do
  8564. local Alias = v[i2]
  8565. local Add = CommandsTable[i]
  8566. Add.Name = Alias
  8567. CommandsTable[Alias] = Add
  8568. end
  8569. end
  8570. end
  8571. end
  8572. end)
  8573. end
  8574. --END IMPORT [config]
  8575.  
  8576.  
  8577. AddConnection(CConnect(CommandBar.Input.FocusLost, function()
  8578. local Text = trim(CommandBar.Input.Text);
  8579. local CommandArgs = split(Text, " ");
  8580.  
  8581. CommandBarOpen = false
  8582.  
  8583. if (not Draggable) then
  8584. Utils.TweenAllTrans(CommandBar, .5)
  8585. Utils.Tween(CommandBar, "Quint", "Out", .5, {
  8586. Position = UDim2.new(0.5, WideBar and -200 or -100, 1, 5); -- tween 5
  8587. })
  8588. end
  8589.  
  8590. local Command = CommandArgs[1]
  8591. local Args = shift(CommandArgs);
  8592.  
  8593. if (Command ~= "") then
  8594. ExecuteCommand(Command, Args, LocalPlayer);
  8595. end
  8596. end), Connections.UI, true);
  8597.  
  8598. local PlayerAdded = function(plr)
  8599. RespawnTimes[plr.Name] = tick();
  8600. AddConnection(CConnect(plr.CharacterAdded, function()
  8601. RespawnTimes[plr.Name] = tick();
  8602. end));
  8603. end
  8604.  
  8605. forEach(GetPlayers(Players), function(i,v)
  8606. PlayerAdded(v);
  8607. end);
  8608.  
  8609. AddConnection(CConnect(Players.PlayerAdded, function(plr)
  8610. PlayerAdded(plr);
  8611. end))
  8612.  
  8613. AddConnection(CConnect(Players.PlayerRemoving, function(plr)
  8614. if (Connections.Players[plr.Name]) then
  8615. if (Connections.Players[plr.Name].ChatCon) then
  8616. Disconnect(Connections.Players[plr.Name].ChatCon);
  8617. end
  8618. Connections.Players[plr.Name] = nil
  8619. end
  8620. if (RespawnTimes[plr.Name]) then
  8621. RespawnTimes[plr.Name] = nil
  8622. end
  8623. end))
  8624.  
  8625. getgenv().F_A = {
  8626. Utils = Utils,
  8627. PluginLibrary = PluginLibrary,
  8628. GetConfig = GetConfig
  8629. }
  8630.  
  8631. Utils.Notify(LocalPlayer, "Loaded", format("script loaded in %.3f seconds", (tick()) - _L.start));
  8632. Utils.Notify(LocalPlayer, "Welcome", "'cmds' to see all of the commands, 'config' to customise the script");
  8633. if (debug.info(2, "f") == nil) then
  8634. Utils.Notify(LocalPlayer, "Outdated Script", "use the loadstring to get latest updates (https://fatesc/fates-admin)", 10);
  8635. end
  8636. _L.LatestCommit = JSONDecode(Services.HttpService, game.HttpGetAsync(game, "https://api.github.com/repos/fatesc/fates-admin/commits?per_page=1&path=main.lua"))[1]
  8637. wait(1);
  8638. Utils.Notify(LocalPlayer, "Newest Update", format("%s - %s", _L.LatestCommit.commit.message, _L.LatestCommit.commit.author.name));
  8639. end)
Add Comment
Please, Sign In to add comment