ben10keil5

Fat's Simple Admin Gui Hub

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