vlogergamer

Fates Admin

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