Run it
Copy the script and paste it into your executor.
.PlaceId ==
.LoremipsumdwerolorsitametconsectetueradipiscingelitAeneancommodoligulaegetdolorAeneanmassaCumsociisnatoquepenatibusetmagnisdisparturientmontesnasceturridiculusmusDonecquamfelisultriciesnecpellentesqueeupretiumquissemNullaconsequatmassaquisenimDonecpedejustofringillavelaliquetnecvulputateegetarcuInenimjustorhoncusutimperdietavenenatisvitaejustoNullamdictumfeliseupedemollispretiumIntegertinciduntCrasdapibusVivamuselementumsempernisiAeneanvulputateeleifendtellusAeneanleoligulaporttitoreuconsequatvitaeeleifendacenimAliquamloremantedapibusinviverraquisfeugiatatellusPhasellusviverranullautmetusvariuslaoreetQuisquerutrumAeneanimperdietEtiamultriciesnisivelaugueCurabiturullamcorperultriciesnisiNamegetduiEtiamrhoncusMaecenastempustellusegetcondimentumrhoncussemquamsemperliberositametadipiscingsemnequesedipsumN
.LoremipsumdwerolorsitametconsectetueradipiscingelitAeneancommodoligulaegetdolorAeneanmassaCumsociisnatoquepenatibusetmagnisdisparturientmontesnasceturridiculusmusDonecquamfelisultriciesnecpellentesqueeupretiumquissemNullaconsequatmassaquisenimDonecpedejustofringillavelaliquetnecvulputateegetarcuInenimjustorhoncusutimperdietavenenatisvitaejustoNullamdictumfeliseupedemollispretiumIntegertinciduntCrasdapibusVivamuselementumsempernisiAeneanvulputateeleifendtellusAeneanleoligulaporttitoreuconsequatvitaeeleifendacenimAliquamloremantedapibusinviverraquisfeugiatatellusPhasellusviverranullautmetusvariuslaoreetQuisquerutrumAeneanimperdietEtiamultriciesnisivelaugueCurabiturullamcorperultriciesnisiNamegetduiEtiamrhoncusMaecenastempustellusegetcondimentumrhoncussemquamsemperliberositametadipiscingsemnequesedipsumN =
Mercury = (:())() GUI = Mercury:{
Name = ,
Size = .(, ),
Theme = Mercury.Themes.Serika,
Link =
}
=
GetService = .GetService
( .())
Loaded = .Loaded
Loaded.(Loaded);
_L = {}
_L.start = start ();
Debug =
F_A = ().F_A
(F_A)
Notify, GetConfig = F_A.Utils.Notify, F_A.GetConfig
UserInputService = (, );
CommandBarPrefix = ().CommandBarPrefix
StringKeyCode = UserInputService.(UserInputService, .KeyCode[CommandBarPrefix]);
()
Services = {
Workspace = (, );
UserInputService = (, );
ReplicatedStorage = (, );
StarterPlayer = (, );
StarterPack = (, );
StarterGui = (, );
TeleportService = (, );
CoreGui = (, );
TweenService = (, );
HttpService = (, );
TextService = (, );
MarketplaceService = (, );
Chat = (, );
Teams = (, );
SoundService = (, );
Lighting = (, );
ScriptContext = (, );
Stats = (, );
}
(Services, {
__index = (Table, Property)
Ret, Service = (GetService, , Property);
(Ret)
Services[Property] = Service
Service
,
__mode =
});
GetChildren, GetDescendants = .GetChildren, .GetDescendants
IsA = .IsA
FindFirstChild, FindFirstChildOfClass, FindFirstChildWhichIsA, WaitForChild =
.FindFirstChild,
.FindFirstChildOfClass,
.FindFirstChildWhichIsA,
.WaitForChild
GetPropertyChangedSignal, Changed =
.GetPropertyChangedSignal,
.Changed
Destroy, Clone = .Destroy, .Clone
Heartbeat, Stepped, RenderStepped;
RunService = Services.RunService;
Heartbeat, Stepped, RenderStepped =
RunService.Heartbeat,
RunService.Stepped,
RunService.RenderStepped
Players = Services.Players
GetPlayers = Players.GetPlayers
JSONEncode, JSONDecode, GenerateGUID =
Services.HttpService.JSONEncode,
Services.HttpService.JSONDecode,
Services.HttpService.GenerateGUID
Camera = Services.Workspace.CurrentCamera
Tfind, sort, concat, pack, ;
=
Tfind, sort, concat, pack, =
.find,
.sort,
.concat,
.pack,
.unpack
lower, upper, Sfind, split, sub, format, len, match, gmatch, gsub, byte;
=
lower, upper, Sfind, split, sub, format, len, match, gmatch, gsub, byte =
.lower,
.upper,
.find,
.split,
.sub,
.format,
.len,
.match,
.gmatch,
.gsub,
.byte
random, floor, round, abs, atan, cos, sin, rad;
=
random, floor, round, abs, atan, cos, sin, rad =
.random,
.floor,
.round,
.abs,
.atan,
.cos,
.sin,
.rad
InstanceNew = .new
CFrameNew = .new
Vector3New = .new
Inverse, toObjectSpace, components
CalledCFrameNew = ();
Inverse = CalledCFrameNew.Inverse
toObjectSpace = CalledCFrameNew.toObjectSpace
components = CalledCFrameNew.components
Connection = .Loaded
CWait = Connection.Wait
CConnect = Connection.Connect
Disconnect;
CalledConnection = (Connection, () );
Disconnect = CalledConnection.Disconnect
__H = ();
UnequipTools = __H.UnequipTools
ChangeState = __H.ChangeState
SetStateEnabled = __H.SetStateEnabled
GetState = __H.GetState
GetAccessories = __H.GetAccessories
LocalPlayer = Players.LocalPlayer
PlayerGui = (LocalPlayer, );
Mouse = LocalPlayer.(LocalPlayer);
CThread;
wrap = .wrap
CThread = (Func, ...)
((Func) ~= )
Varag = ...
()
Success, Ret = ((Func, Varag));
(Success)
Ret
(Debug)
( .. debug.(Ret));
startsWith = (str, searchString, rawPos)
pos = rawPos
searchString == (str, pos, pos) == searchString
trim = (str)
(str, , );
tbl_concat = (...)
new = {}
i, v , {...}
i2, v2 , v
new[i] = v2
new
indexOf = (tbl, val)
((tbl) == )
i, v , tbl
(v == val)
i
forEach = (tbl, ret)
i, v , tbl
(i, v);
filter = (tbl, ret)
((tbl) == )
new = {}
i, v , tbl
((i, v))
new[#new + ] = v
new
map = (tbl, ret)
((tbl) == )
new = {}
i, v , tbl
Value, Key = (i, v);
new[Key #new + ] = Value
new
deepsearch;
deepsearch = (tbl, ret)
((tbl) == )
i, v , tbl
((v) == )
(v, ret);
(i, v);
deepsearchset;
deepsearchset = (tbl, ret, value)
((tbl) == )
new = {}
i, v , tbl
new[i] = v
((v) == )
new[i] = (v, ret, value);
((i, v))
new[i] = (i, v);
new
flat = (tbl)
((tbl) == )
new = {}
(tbl, (i, v)
((v) ~= )
new[#new + ] = v
)
new
flatMap = (tbl, ret)
((tbl) == )
new = ((tbl, ret));
new
shift = (tbl)
((tbl) == )
firstVal = tbl[]
tbl = ((tbl, , #tbl));
tbl.n =
tbl
keys = (tbl)
((tbl) == )
new = {}
i, v , tbl
new[#new + ] = i
new
(toClone, shallow)
((toClone) == clonefunction)
(toClone);
new = {}
i, v (toClone)
((v) == shallow)
v = (v);
new[i] = v
new
setthreadidentity = setthreadidentity syn_context_set setthreadcontext ( .set_thread_identity)
getthreadidentity = getthreadidentity syn_context_get getthreadcontext ( .get_thread_identity)
GetCharacter = GetCharacter (Plr)
Plr Plr.Character LocalPlayer.Character
Utils = {}
Stats = Services.Stats
ContentProvider = Services.ContentProvider
, ;
GEnv = ();
touched = {}
= GEnv.firetouchinterest (part1, part2, toggle)
(part1 part2)
(toggle == )
touched[] = part1.CFrame
part1.CFrame = part2.CFrame
part1.CFrame = touched[]
touched[] =
= (f)
f
= GEnv.hookfunction (func, newfunc, applycclosure)
(replaceclosure)
(func, newfunc);
func
func = applycclosure newfunc
func
( syn_context_set)
CachedConnections = ({}, {
__mode =
});
GEnv = ();
getconnections = (Connection, FromCache, AddOnConnect)
getconnections = GEnv.getconnections
( getconnections)
{}
CachedConnection;
i, v , CachedConnections
(i == Connection)
CachedConnection = v
;
(CachedConnection FromCache)
CachedConnection
Connections = GEnv.(Connection);
CachedConnections[Connection] = Connections
Connections
= ()
({}, {});
getnamecallmethod = getnamecallmethod ()
checkcaller = checkcaller ()
Hooks = {
AntiKick = ,
AntiTeleport = ,
NoJumpCooldown = ,
}
mt = ();
OldMetaMethods = {}
(mt, );
i, v , mt
OldMetaMethods[i] = v
(mt, );
MetaMethodHooks = {}
ProtectInstance, SpoofInstance, SpoofProperty;
pInstanceCount = {, };
ProtectedInstances = ({}, {
__mode =
});
FocusedTextBox =
SpoofedInstances = ({}, {
__mode =
});
SpoofedProperties = {}
Hooks.SpoofedProperties = SpoofedProperties
otherCheck = (instance, n)
((instance, ) (instance, ))
ProtectedInstances[#ProtectedInstances + ] = instance
;
((instance, ))
pInstanceCount[] = .(pInstanceCount[] + (n ), );
ProtectInstance = (Instance_)
( (ProtectedInstances, Instance_))
ProtectedInstances[#ProtectedInstances + ] = Instance_
descendants = Instance_:();
pInstanceCount[] += + #descendants;
i = , #descendants
(descendants[i]);
dAdded = Instance_.DescendantAdded:((descendant)
pInstanceCount[] +=
(descendant);
);
dRemoving = Instance_.DescendantRemoving:((descendant)
pInstanceCount[] = .(pInstanceCount[] - , );
(descendant, -);
);
(Instance_);
Instance_.Name = (((Services.HttpService, ), , ), , (, ));
Instance_.Archivable =
SpoofInstance = (Instance_, Instance2)
( SpoofedInstances[Instance_])
SpoofedInstances[Instance_] = Instance2 Instance2 (Instance_);
UnSpoofInstance = (Instance_)
(SpoofedInstances[Instance_])
SpoofedInstances[Instance_] =
ChangedSpoofedProperties = {}
SpoofProperty = (Instance_, Property, NoClone)
(SpoofedProperties[Instance_])
SpoofedPropertiesForInstance = SpoofedProperties[Instance_]
Properties = (SpoofedPropertiesForInstance, (i, v)
v.Property
)
( (Properties, Property))
SpoofedProperties[Instance_][#SpoofedPropertiesForInstance + ] = {
SpoofedProperty = SpoofedPropertiesForInstance[].SpoofedProperty,
Property = Property,
};
Cloned;
( NoClone (Instance_, ) Services[(Instance_)] Instance_.Archivable)
Success, Ret = (Clone, Instance_);
(Success)
Cloned = Ret
SpoofedProperties[Instance_] = {{
SpoofedProperty = Cloned Cloned {[Property]=Instance_[Property]},
Property = Property,
}}
ChangedSpoofedProperties[Instance_] = {}
GetAllParents = (Instance_, NIV)
((Instance_) == )
Parents = {}
Current = NIV Instance_
(NIV)
Parents[#Parents + ] = Current
Parent = Current.Parent
Parents[#Parents + ] = Parent
Current = Parent
Current
Parents
{}
Methods = {
,
,
,
}
lockedInstances = {};
(lockedInstances, { __mode = });
isProtected = (instance)
(lockedInstances[instance])
;
good2 = (, instance);
( good2)
lockedInstances[instance] =
;
i2 = , #ProtectedInstances
pInstance = ProtectedInstances[i2]
(pInstance == instance)
;
;
MetaMethodHooks.Namecall = (...)
__Namecall = OldMetaMethods.__namecall;
Args = {...}
self = Args[]
Method = () ;
(Method ~= )
Success, result = (OldMetaMethods.__index, self, Method);
( Success Success (result) ~= )
(...);
(Hooks.AntiKick (Method) == )
Player, Message = self, Args[]
(Hooks.AntiKick Player == LocalPlayer)
Notify = Utils.Notify
Context;
(setthreadidentity)
Context = ();
();
(Notify Context)
(, , (, (Message (Message) == (Message) == ) .. Message ));
(Context);
(Hooks.AntiTeleport Method == Method == )
Player, PlaceId = self, Args[]
(Hooks.AntiTeleport Player == LocalPlayer)
Notify = Utils.Notify
Context;
(setthreadidentity)
Context = ();
();
(Notify Context)
(, , (, PlaceId PlaceId ));
(Context);
(())
(...);
((Methods, Method))
ReturnedInstance = (...);
((ProtectedInstances, ReturnedInstance))
Method ==
(Method == Method == Method == Method == Method == )
((...), (i, instance)
(instance);
);
(self == Services.UserInputService (Method == Method == ))
focused = (...);
(focused)
i = , #ProtectedInstances
ProtectedInstance = ProtectedInstances[i]
iden = ();
();
pInstance = (ProtectedInstances, focused) focused.(focused, ProtectedInstance);
(iden);
(pInstance)
;
focused;
(Hooks.NoJumpCooldown (Method == Method == ))
State = (...);
(Method == (State == .HumanoidStateType.Jumping State == ))
.HumanoidStateType.RunningNoPhysics
(Method == (self == .HumanoidStateType.Jumping self == ))
(...);
AllowedIndexes = {
,
}
AllowedNewIndexes = {
}
MetaMethodHooks.Index = (...)
__Index = OldMetaMethods.__index;
called = (...);
(())
(...);
Instance_, Index = ...
SanitisedIndex = Index
((Instance_) == (Index) == )
SanitisedIndex = ((Index, , ), , );
SpoofedInstance = SpoofedInstances[Instance_]
SpoofedPropertiesForInstance = SpoofedProperties[Instance_]
(SpoofedInstance)
((AllowedIndexes, SanitisedIndex))
(Instance_, Index);
(SpoofedInstance, Index);
(SpoofedPropertiesForInstance)
i, SpoofedProperty , SpoofedPropertiesForInstance
SanitisedIndex = (SanitisedIndex, , upper);
(SanitisedIndex == SpoofedProperty.Property)
ClientChangedData = ChangedSpoofedProperties[Instance_][SanitisedIndex]
IndexedSpoofed = (SpoofedProperty.SpoofedProperty, Index);
Indexed = (Instance_, Index);
(ClientChangedData.Caller ClientChangedData.Value ~= Indexed)
OldMetaMethods.(SpoofedProperty.SpoofedProperty, Index, Indexed);
OldMetaMethods.(Instance_, Index, ClientChangedData.Value);
Indexed
IndexedSpoofed
(Hooks.NoJumpCooldown SanitisedIndex == )
((Instance_, ))
(Instance_ == Stats (SanitisedIndex == SanitisedIndex == ))
called - pInstanceCount[];
(Instance_ == Stats (SanitisedIndex == SanitisedIndex == ))
called - pInstanceCount[];
called;
MetaMethodHooks.NewIndex = (...)
__NewIndex = OldMetaMethods.__newindex;
__Index = OldMetaMethods.__index;
Instance_, Index, Value = ...
SpoofedInstance = SpoofedInstances[Instance_]
SpoofedPropertiesForInstance = SpoofedProperties[Instance_]
(())
(Index == Value)
ProtectedInstance
i = , #ProtectedInstances
ProtectedInstance_ = ProtectedInstances[i]
(Instance_ == ProtectedInstance_ Instance_.(Value, ProtectedInstance_))
ProtectedInstance =
(ProtectedInstance)
Parents = (Instance_, Value);
child1 = (Parents[].ChildAdded, );
descendantconnections = {}
i, v , child1
v.(v);
i = , #Parents
Parent = Parents[i]
i2, v , (Parent.DescendantAdded, )
v.(v);
descendantconnections[#descendantconnections + ] = v
good, Ret = (__NewIndex, ...);
i, v (descendantconnections)
v:();
i, v , child1
v.(v);
( good)
(...);
Ret;
(SpoofedInstance SpoofedPropertiesForInstance)
(SpoofedPropertiesForInstance)
ChangedSpoofedProperties[Instance_][Index] = {
Caller = ,
BeforeValue = Instance_[Index],
Value = Value
}
Connections = (
(.ItemChanged, )
)
( (Connections))
(Instance_, Index, Value);
i, v , Connections
v.(v);
Ret = (Instance_, Index, Value);
i, v , Connections
v.(v);
Ret
(...);
SanitisedIndex = Index
((Instance_) == (Index) == )
len = (, (Index, , ));
(len > )
(...);
SanitisedIndex = ((Index, , ), , );
(SpoofedInstance)
((AllowedNewIndexes, SanitisedIndex))
(...);
(SpoofedInstance, Index, (SpoofedInstance, Index));
(SpoofedPropertiesForInstance)
i, SpoofedProperty , SpoofedPropertiesForInstance
(SpoofedProperty.Property == SanitisedIndex (AllowedIndexes, SanitisedIndex))
ChangedSpoofedProperties[Instance_][SanitisedIndex] = {
Caller = ,
BeforeValue = Instance_[Index],
Value = Value
}
(SpoofedProperty.SpoofedProperty, Index, Value);
(...);
= (metatable, metamethod, func)
(metatable, );
Old = (metatable[metamethod], func, );
(metatable, );
Old
OldMetaMethods.__index = (, , MetaMethodHooks.Index);
OldMetaMethods.__newindex = (, , MetaMethodHooks.NewIndex);
OldMetaMethods.__namecall = (, , MetaMethodHooks.Namecall);
Hooks.Destroy = (.Destroy, (...)
instance = ...
protected = .(ProtectedInstances, instance);
(() protected)
(instance, -);
Parents = (instance);
i, v , (Parents[].ChildRemoved, )
v.(v);
i = , #Parents
Parent = Parents[i]
i2, v , (Parent.DescendantRemoving, )
v.(v);
destroy = Hooks.(...);
i = , #Parents
Parent = Parents[i]
i2, v , (Parent.DescendantRemoving, )
v.(v);
i, v , (Parents[].ChildRemoved, )
v.(v);
.(ProtectedInstances, protected);
destroy;
Hooks.(...);
);
Hooks.OldGetChildren = (.GetChildren, ((...)
( ())
Children = Hooks.(...);
(Children, (i, v)
(ProtectedInstances, v);
)
Hooks.(...);
));
Hooks.OldGetDescendants = (.GetDescendants, ((...)
( ())
Descendants = Hooks.(...);
(Descendants, (i, v)
Protected =
i2 = , #ProtectedInstances
ProtectedInstance = ProtectedInstances[i2]
Protected = v ProtectedInstance == v v.(v, ProtectedInstance)
(Protected)
;
Protected
)
Hooks.(...);
));
Hooks.FindFirstChild = (.FindFirstChild, ((...)
( ())
ReturnedInstance = Hooks.(...);
(ReturnedInstance (ProtectedInstances, ReturnedInstance))
Hooks.(...);
));
Hooks.FindFirstChildOfClass = (.FindFirstChildOfClass, ((...)
( ())
ReturnedInstance = Hooks.(...);
(ReturnedInstance (ProtectedInstances, ReturnedInstance))
Hooks.(...);
));
Hooks.FindFirstChildWhichIsA = (.FindFirstChildWhichIsA, ((...)
( ())
ReturnedInstance = Hooks.(...);
(ReturnedInstance (ProtectedInstances, ReturnedInstance))
Hooks.(...);
));
Hooks.IsA = (.IsA, ((...)
( ())
Args = {...}
IsACheck = Args[]
(IsACheck)
ProtectedInstance = (ProtectedInstances, IsACheck);
(ProtectedInstance Args[])
Hooks.(...);
));
Hooks.OldGetFocusedTextBox = (Services.UserInputService.GetFocusedTextBox, ((...)
( () ... == Services.UserInputService)
FocusedTextBox = Hooks.(...);
(FocusedTextBox)
Protected =
i = , #ProtectedInstances
ProtectedInstance = ProtectedInstances[i]
Protected = (ProtectedInstances, FocusedTextBox) FocusedTextBox.(FocusedTextBox, ProtectedInstance);
(Protected)
FocusedTextBox;
Hooks.(...);
));
Hooks.OldKick = (LocalPlayer.Kick, ((...)
Player, Message = ...
(Hooks.AntiKick Player == LocalPlayer)
Notify = Utils.Notify
Context;
(setthreadidentity)
Context = ();
();
(Notify Context)
(, , (, (Message (Message) == (Message) == ) .. Message ));
(Context)
Hooks.(...);
))
Hooks.OldTeleportToPlaceInstance = (Services.TeleportService.TeleportToPlaceInstance, ((...)
Player, PlaceId = ...
(Hooks.AntiTeleport Player == LocalPlayer)
Notify = Utils.Notify
Context;
(setthreadidentity)
Context = ();
();
(Notify Context)
(, , (, PlaceId PlaceId ));
(Context)
Hooks.(...);
))
Hooks.OldTeleport = (Services.TeleportService.Teleport, ((...)
Player, PlaceId = ...
(Hooks.AntiTeleport Player == LocalPlayer)
Notify = Utils.Notify
Context;
(setthreadidentity)
Context = ();
();
(Notify Context)
(, , (, PlaceId PlaceId ));
(Context);
Hooks.(...);
))
Hooks.GetState = (GetState, (...)
Humanoid, State = ..., Hooks.(...);
Parent, Character = Humanoid.Parent, LocalPlayer.Character
(Hooks.NoJumpCooldown (State == .HumanoidStateType.Jumping State == ) Parent Character Parent == Character)
.HumanoidStateType.RunningNoPhysics
State
)
Hooks.GetStateEnabled = (__H.GetStateEnabled, (...)
Humanoid, State = ...
Ret = Hooks.(...);
Parent, Character = Humanoid.Parent, LocalPlayer.Character
(Hooks.NoJumpCooldown (State == .HumanoidStateType.Jumping State == ) Parent Character Parent == Character)
Ret
)
GetRoot = (Plr, Char)
LCharacter = ();
Character = Char (Plr);
Plr Character ((Character, ) (Character, ) (Character, )) LCharacter ((LCharacter, ) (LCharacter, ) (LCharacter, ));
GetHumanoid = (Plr, Char)
LCharacter = ();
Character = Char (Plr);
Plr Character (Character, ) LCharacter (LCharacter, );
GetMagnitude = (Plr, Char)
LRoot = ();
Root = (Plr, Char);
Plr Root (Root.Position - LRoot.Position).magnitude .huge
Settings = {
Prefix = ,
CommandBarPrefix = ,
ChatPrediction = ,
Macros = {},
Aliases = {},
}
PluginSettings = {
PluginsEnabled = ,
PluginDebug = ,
DisabledPlugins = {
[] =
},
SafePlugins =
}
WriteConfig = (Destroy)
JSON = (Services.HttpService, Settings);
PluginJSON = (Services.HttpService, PluginSettings);
(() Destroy)
();
(, JSON);
(, PluginJSON);
();
();
();
(, JSON);
(, PluginJSON);
GetConfig = ()
(() ())
(Services.HttpService, ());
();
(Services.HttpService, ());
GetPluginConfig = ()
(() () ())
JSON = (Services.HttpService, ());
JSON
();
(Services.HttpService, ());
SetPluginConfig = (conf)
(() () ())
();
NewConfig = ();
i, v , conf
NewConfig[i] = v
(, (Services.HttpService, NewConfig));
SetConfig = (conf)
( () ())
();
NewConfig = ();
i, v , conf
NewConfig[i] = v
(, (Services.HttpService, NewConfig));
CurrentConfig = ();
Prefix = isfolder CurrentConfig.Prefix
Macros = CurrentConfig.Macros {}
AdminUsers = AdminUsers {}
Exceptions = Exceptions {}
Connections = {
Players = {}
}
_L.CLI =
_L.ChatLogsEnabled =
_L.GlobalChatLogsEnabled =
_L.HttpLogsEnabled =
GetPlayer;
GetPlayer = (str, noerror)
CurrentPlayers = ((Players), (i, v)
(Exceptions, v);
)
( str)
{}
str = ((str));
((str, ))
((str, ), (i, v)
(v, noerror);
)
Magnitudes = (CurrentPlayers, (i, v)
{v,((v).CFrame.p - ().CFrame.p).Magnitude}
)
PlayerArgs = {
[] = ()
(CurrentPlayers, (i, v)
v ~= LocalPlayer
)
,
[] = ()
(CurrentPlayers, (i, v)
v ~= LocalPlayer
)
,
[] = ()
{LocalPlayer}
}
(PlayerArgs[str])
PlayerArgs[str]();
Players = (CurrentPlayers, (i, v)
(((v.Name), , #str) == str) (((v.DisplayName), , #str) == str);
)
( (Players) noerror)
GUI:{
Title = ,
Text = , str,
Duration = ,
Callback = ()
};
Players
AddConnection = (Connection, CEnv, TblOnly)
(CEnv)
CEnv[#CEnv + ] = Connection
(TblOnly)
Connection
Connections[#Connections + ] = Connection
Connection
LastCommand = {}
Guis = {}
ParentGui = (Gui, Parent)
Gui.Name = (((Services.HttpService, ), , ), , (, ))
(Gui);
( .protect_gui) .(Gui);
Gui.Parent = Parent Services.CoreGui
Guis[#Guis + ] = Gui
Gui
UI = (Services.InsertService:());
UI.Enabled =
CommandBarPrefix;
ConfigUI = UI.Config
ConfigElements = ConfigUI.GuiElements
CommandBar = UI.CommandBar
Commands = UI.Commands
ChatLogs = UI.ChatLogs
Console = UI.Console
GlobalChatLogs = (UI.ChatLogs);
HttpLogs = (UI.ChatLogs);
Notification = UI.Notification
Command = UI.Command
ChatLogMessage = UI.Message
GlobalChatLogMessage = (UI.Message);
NotificationBar = UI.NotificationBar
CommandBarOpen =
CommandBarTransparencyClone = (CommandBar);
ChatLogsTransparencyClone = (ChatLogs);
ConsoleTransparencyClone = (Console);
GlobalChatLogsTransparencyClone = (GlobalChatLogs);
HttpLogsTransparencyClone = (HttpLogs);
CommandsTransparencyClone =
ConfigUIClone = (ConfigUI);
PredictionText =
UIParent = CommandBar.Parent
GlobalChatLogs.Parent = UIParent
GlobalChatLogMessage.Parent = UIParent
GlobalChatLogs.Name =
GlobalChatLogMessage.Name =
HttpLogs.Parent = UIParent
HttpLogs.Name =
HttpLogs.Size = .(, , , );
HttpLogs.Search.PlaceholderText =
CommandBar.Position = .(, -, , );
UITheme, Values;
BaseBGColor = .(, , );
BaseTransparency =
BaseTextColor = .(, , );
BaseValues = { BackgroundColor = BaseBGColor, Transparency = BaseTransparency, TextColor = BaseTextColor }
Values = { Background = (BaseValues), CommandBar = (BaseValues), CommandList = (BaseValues), Notification = (BaseValues), ChatLogs = (BaseValues), Config = (BaseValues) }
Objects = (Values);
GetBaseMT = (Object)
({}, {
__newindex = (self, Index, Value)
= (Value);
(Index == )
(Value == )
Value = BaseBGColor
=
( == , (, ));
(Object == )
CommandBar.BackgroundColor3 = Value
Notification.BackgroundColor3 = Value
Command.BackgroundColor3 = Value
ChatLogs.BackgroundColor3 = Value
ChatLogs.Frame.BackgroundColor3 = Value
Console.BackgroundColor3 = Value
Console.Frame.BackgroundColor3 = Value
HttpLogs.BackgroundColor3 = Value
HttpLogs.Frame.BackgroundColor3 = Value
UI.ToolTip.BackgroundColor3 = Value
ConfigUI.BackgroundColor3 = Value
ConfigUI.Container.BackgroundColor3 = Value
Commands.BackgroundColor3 = Value
Commands.Frame.BackgroundColor3 = Value
Children = (UI.NotificationBar);
i = , #Children
Child = Children[i]
((Child, ))
Child.BackgroundColor3 = Value
Children = (Commands.Frame.List);
i = , #Children
Child = Children[i]
((Child, ))
Child.BackgroundColor3 = Value
i, v , Values
Values[i].BackgroundColor = Value
(Object == )
CommandBar.BackgroundColor3 = Value
(Object == )
Notification.BackgroundColor3 = Value
Children = (UI.NotificationBar);
i = , #Children
Child = Children[i]
((Child, ))
Child.BackgroundColor3 = Value
(Object == )
Commands.BackgroundColor3 = Value
Commands.Frame.BackgroundColor3 = Value
(Object == )
Command.BackgroundColor3 = Value
(Object == )
ChatLogs.BackgroundColor3 = Value
ChatLogs.Frame.BackgroundColor3 = Value
HttpLogs.BackgroundColor3 = Value
HttpLogs.Frame.BackgroundColor3 = Value
(Object == )
Console.BackgroundColor3 = Value
Console.Frame.BackgroundColor3 = Value
(Object == )
ConfigUI.BackgroundColor3 = Value
ConfigUI.Container.BackgroundColor3 = Value
Values[Object][Index] = Value
(Index == )
(Value == )
Value = BaseTextColor
=
( == , (, ));
(Object == )
Notification.Title.TextColor3 = Value
Notification.Message.TextColor3 = Value
Notification.Close.TextColor3 = Value
(Object == )
CommandBar.Input.TextColor3 = Value
CommandBar.Arrow.TextColor3 = Value
(Object == )
Command.CommandText.TextColor3 = Value
Descendants = (Commands);
i = , #Descendants
Descendant = Descendants[i]
IsText = (Descendant, ) (Descendant, ) (Descendant, );
(IsText)
Descendant.TextColor3 = Value
(Object == )
UI.Message.TextColor3 = Value
(Object == )
Descendants = (ConfigUI);
i = , #Descendants
Descendant = Descendants[i]
IsText = (Descendant, ) (Descendant, ) (Descendant, );
(IsText)
Descendant.TextColor3 = Value
(Object == )
Notification.Title.TextColor3 = Value
Notification.Message.TextColor3 = Value
Notification.Close.TextColor3 = Value
CommandBar.Input.TextColor3 = Value
CommandBar.Arrow.TextColor3 = Value
Command.CommandText.TextColor3 = Value
UI.Message.TextColor3 = Value
Descendants = (ConfigUI);
i = , #Descendants
Descendant = Descendants[i]
IsText = (Descendant, ) (Descendant, ) (Descendant, );
(IsText)
Descendant.TextColor3 = Value
Descendants = (Commands);
i = , #Descendants
Descendant = Descendants[i]
IsText = (Descendant, ) (Descendant, ) (Descendant, );
(IsText)
Descendant.TextColor3 = Value
i, v , Values
Values[i].TextColor = Value
Values[Object][Index] = Value
(Index == )
(Value == )
Value = BaseTransparency
=
( == , (, ));
(Object == )
CommandBar.Transparency = Value
Notification.Transparency = Value
Command.Transparency = Value +
ChatLogs.Transparency = Value
ChatLogs.Frame.Transparency = Value
HttpLogs.Transparency = Value
HttpLogs.Frame.Transparency = Value
UI.ToolTip.Transparency = Value
ConfigUI.Transparency = Value
ConfigUI.Container.Transparency = Value +
Commands.Transparency = Value
Commands.Frame.Transparency = Value +
Values[Object][Index] = Value
(Object == )
Notification.Transparency = Value
Children = (UI.NotificationBar);
i = , #Children
Child = Children[i]
((Child, ))
Child.Transparency = Value
Values[Object][Index] = Value
,
__index = (self, Index)
Values[Object][Index]
})
UITheme = ({}, {
__index = (self, Index)
((Objects, Index))
BaseMt = (Index);
self[Index] = BaseMt
BaseMt
})
IsSupportedExploit = isfile isfolder writefile readfile
GetThemeConfig
WriteThemeConfig = (Conf)
(IsSupportedExploit ())
ToHSV = .().ToHSV
ValuesToEncode = (Values, (i, v)
(v) ==
, (i, v)
H, S, V = (v);
{H, S, V, }
)
Data = (Services.HttpService, ValuesToEncode);
(, Data);
GetThemeConfig = ()
(IsSupportedExploit ())
(())
Success, Data = (JSONDecode, Services.HttpService, ());
( Success (Data) ~= )
();
Values
DecodedData = (Data, (i, v)
(v) == #v == v[] ==
, (i,v)
.(v[], v[], v[]);
)
DecodedData
();
Values
Values
LoadTheme;
Config = ();
CommandBarPrefix = isfolder (Config.CommandBarPrefix .KeyCode[Config.CommandBarPrefix] .KeyCode.Semicolon) .KeyCode.Semicolon
Theme = ();
LoadTheme = (Theme)
UITheme.Background.BackgroundColor = Theme.Background.BackgroundColor
UITheme.Background.Transparency = Theme.Background.Transparency
UITheme.ChatLogs.BackgroundColor = Theme.ChatLogs.BackgroundColor
UITheme.CommandBar.BackgroundColor = Theme.CommandBar.BackgroundColor
UITheme.Config.BackgroundColor = Theme.Config.BackgroundColor
UITheme.Notification.BackgroundColor = Theme.Notification.BackgroundColor
UITheme.CommandList.BackgroundColor = Theme.Notification.BackgroundColor
UITheme.ChatLogs.TextColor = Theme.ChatLogs.TextColor
UITheme.CommandBar.TextColor = Theme.CommandBar.TextColor
UITheme.Config.TextColor = Theme.Config.TextColor
UITheme.Notification.TextColor = Theme.Notification.TextColor
UITheme.CommandList.TextColor = Theme.Notification.TextColor
UITheme.ChatLogs.Transparency = Theme.ChatLogs.Transparency
UITheme.CommandBar.Transparency = Theme.CommandBar.Transparency
UITheme.Config.Transparency = Theme.Config.Transparency
UITheme.Notification.Transparency = Theme.Notification.Transparency
UITheme.CommandList.Transparency = Theme.Notification.Transparency
(Theme);
Utils.Tween = (Object, Style, Direction, Time, Goal)
TweenService = Services.TweenService
TInfo = TweenInfo.(Time, .EasingStyle[Style], .EasingDirection[Direction])
Tween = TweenService.(TweenService, Object, TInfo, Goal)
Tween.(Tween)
Tween
Utils.MultColor3 = (Color, Delta)
clamp = .clamp
.((Color.R * Delta, , ), (Color.G * Delta, , ), (Color.B * Delta, , ));
Utils.Click = (Object, Goal)
Hover = {
[Goal] = Utils.(Object[Goal], )
}
Press = {
[Goal] = Utils.(Object[Goal], )
}
Origin = {
[Goal] = Object[Goal]
}
((Object.MouseEnter, ()
Utils.(Object, , , , Hover);
));
((Object.MouseLeave, ()
Utils.(Object, , , , Origin);
));
((Object.MouseButton1Down, ()
Utils.(Object, , , , Press);
));
((Object.MouseButton1Up, ()
Utils.(Object, , , , Hover);
));
Utils.Blink = (Object, Goal, Color1, Color2)
Normal = {
[Goal] = Color1
}
Blink = {
[Goal] = Color2
}
Tween = Utils.(Object, , , , Blink)
(Tween.Completed);
Tween = Utils.(Object, , , , Normal)
(Tween.Completed);
Utils.Hover = (Object, Goal)
Hover = {
[Goal] = Utils.(Object[Goal], )
}
Origin = {
[Goal] = Object[Goal]
}
((Object.MouseEnter, ()
Utils.(Object, , , , Hover);
));
((Object.MouseLeave, ()
Utils.(Object, , , , Origin);
));
Utils.Draggable = (Ui, DragUi)
DragSpeed =
StartPos
DragToggle, DragInput, DragStart, DragPos
DragUi = Dragui Ui
TweenService = Services.TweenService
(Input)
Delta = Input.Position - DragStart
Position = .(StartPos.X.Scale, StartPos.X.Offset + Delta.X, StartPos.Y.Scale, StartPos.Y.Offset + Delta.Y)
Utils.(Ui, , , , {
Position = Position
});
Tween = TweenService.(TweenService, Ui, TweenInfo.(), {Position = Position});
Tween.(Tween);
((Ui.InputBegan, (Input)
((Input.UserInputType == .UserInputType.MouseButton1 Input.UserInputType == .UserInputType.Touch) Services.UserInputService.(Services.UserInputService) == )
DragToggle =
DragStart = Input.Position
StartPos = Ui.Position
((Input.Changed, ()
(Input.UserInputState == .UserInputState.End)
DragToggle =
));
));
((Ui.InputChanged, (Input)
(Input.UserInputType == .UserInputType.MouseMovement Input.UserInputType == .UserInputType.Touch)
DragInput = Input
));
((Services.UserInputService.InputChanged, (Input)
(Input == DragInput DragToggle)
(Input)
));
Utils.SmoothScroll = (content, SmoothingFactor)
ling frame with all the content inside
-- if smoothing is enabled, disable scrolling
content.ScrollingEnabled = false
-- create the 'input' scrolling frame, aka the scrolling frame which receives user input
-- if smoothing is enabled, enable scrolling
local input = Clone(content)
input.ClearAllChildren(input);
input.BackgroundTransparency = 1
input.ScrollBarImageTransparency = 1
input.ZIndex = content.ZIndex + 1
input.Name = "_smoothinputframe"
input.ScrollingEnabled = true
input.Parent = content.Parent
-- keep input frame in sync with content frame
local function syncProperty(prop)
AddConnection(CConnect(GetPropertyChangedSignal(content, prop), function()
if prop == "ZIndex" then
-- keep the input frame on top!
input[prop] = content[prop] + 1
else
input[prop] = content[prop]
end
end));
end
syncProperty "CanvasSize"
syncProperty "Position"
syncProperty "Rotation"
syncProperty "ScrollingDirection"
syncProperty "ScrollBarThickness"
syncProperty "BorderSizePixel"
syncProperty "ElasticBehavior"
syncProperty "SizeConstraint"
syncProperty "ZIndex"
syncProperty "BorderColor3"
syncProperty "Size"
syncProperty "AnchorPoint"
syncProperty "Visible"
-- create a render stepped connection to interpolate the content frame position to the input frame position
local smoothConnection = AddConnection(CConnect(RenderStepped, function()
local a = content.CanvasPosition
local b = input.CanvasPosition
local c = SmoothingFactor
local d = (b - a) * c + a
content.CanvasPosition = d
end));
AddConnection(CConnect(content.AncestryChanged, function()
if content.Parent == nil then
Destroy(input);
Disconnect(smoothConnection);
end
end));
end
Utils.TweenAllTransToObject = function(Object, Time, BeforeObject) -- max transparency is max object transparency, swutched args bc easier command
local Descendants = GetDescendants(Object);
local OldDescentants = GetDescendants(BeforeObject);
local Tween -- to use to wait
Tween = Utils.Tween(Object, "Sine", "Out", Time, {
BackgroundTransparency = BeforeObject.BackgroundTransparency
})
for i = 1, #Descendants do
local v = Descendants[i]
local IsText = IsA(v, "TextBox") or IsA(v, "TextLabel") or IsA(v, "TextButton")
local IsImage = IsA(v, "ImageLabel") or IsA(v, "ImageButton")
local IsScrollingFrame = IsA(v, "ScrollingFrame")
if (IsA(v, "GuiObject")) then
if (IsText) then
Utils.Tween(v, "Sine", "Out", Time, {
TextTransparency = OldDescentants[i].TextTransparency,
TextStrokeTransparency = OldDescentants[i].TextStrokeTransparency,
BackgroundTransparency = OldDescentants[i].BackgroundTransparency
})
elseif (IsImage) then
Utils.Tween(v, "Sine", "Out", Time, {
ImageTransparency = OldDescentants[i].ImageTransparency,
BackgroundTransparency = OldDescentants[i].BackgroundTransparency
})
elseif (IsScrollingFrame) then
Utils.Tween(v, "Sine", "Out", Time, {
ScrollBarImageTransparency = OldDescentants[i].ScrollBarImageTransparency,
BackgroundTransparency = OldDescentants[i].BackgroundTransparency
})
else
Utils.Tween(v, "Sine", "Out", Time, {
BackgroundTransparency = OldDescentants[i].BackgroundTransparency
})
end
end
end
return Tween
end
Utils.SetAllTrans = function(Object)
Object.BackgroundTransparency = 1
local Descendants = GetDescendants(Object);
for i = 1, #Descendants do
local v = Descendants[i]
local IsText = IsA(v, "TextBox") or IsA(v, "TextLabel") or IsA(v, "TextButton")
local IsImage = IsA(v, "ImageLabel") or IsA(v, "ImageButton")
local IsScrollingFrame = IsA(v, "ScrollingFrame")
if (IsA(v, "GuiObject")) then
v.BackgroundTransparency = 1
if (IsText) then
v.TextTransparency = 1
elseif (IsImage) then
v.ImageTransparency = 1
elseif (IsScrollingFrame) then
v.ScrollBarImageTransparency = 1
end
end
end
end
Utils.TweenAllTrans = function(Object, Time)
local Tween -- to use to wait
Tween = Utils.Tween(Object, "Sine", "Out", Time, {
BackgroundTransparency = 1
})
local Descendants = GetDescendants(Object);
for i = 1, #Descendants do
local v = Descendants[i]
local IsText = IsA(v, "TextBox") or IsA(v, "TextLabel") or IsA(v, "TextButton")
local IsImage = IsA(v, "ImageLabel") or IsA(v, "ImageButton")
local IsScrollingFrame = IsA(v, "ScrollingFrame")
if (IsA(v, "GuiObject")) then
if (IsText) then
Utils.Tween(v, "Sine", "Out", Time, {
TextTransparency = 1,
BackgroundTransparency = 1
})
elseif (IsImage) then
Utils.Tween(v, "Sine", "Out", Time, {
ImageTransparency = 1,
BackgroundTransparency = 1
})
elseif (IsScrollingFrame) then
Utils.Tween(v, "Sine", "Out", Time, {
ScrollBarImageTransparency = 1,
BackgroundTransparency = 1
})
else
Utils.Tween(v, "Sine", "Out", Time, {
BackgroundTransparency = 1
})
end
end
end
return Tween
end
Utils.TextSize = function(Object)
local TextService = Services.TextService
return TextService.GetTextSize(TextService, Object.Text, Object.TextSize, Object.Font, Vector2.new(Object.AbsoluteSize.X, 1000)).Y
end
Utils.Notify = function(Caller, Title, Message, Time)
if (not Caller or Caller == LocalPlayer) then
local Notification = UI.Notification
local NotificationBar = UI.NotificationBar
local Clone = Clone(Notification)
local function TweenDestroy()
if (Utils and Clone) then
local Tween = Utils.TweenAllTrans(Clone, .25)
CWait(Tween.Completed)
Destroy(Clone);
end
end
Clone.Message.Text = Message
Clone.Title.Text = Title or "Notification"
Utils.SetAllTrans(Clone)
Utils.Click(Clone.Close, "TextColor3")
Clone.Visible = true
Clone.Size = UDim2.fromOffset(Clone.Size.X.Offset, Utils.TextSize(Clone.Message) + Clone.Size.Y.Offset - Clone.Message.TextSize);
Clone.Parent = NotificationBar
coroutine.wrap(function()
local Tween = Utils.TweenAllTransToObject(Clone, .5, Notification)
CWait(Tween.Completed);
wait(Time or 5);
if (Clone) then
TweenDestroy();
end
end)()
AddConnection(CConnect(Clone.Close.MouseButton1Click, TweenDestroy));
if (Title ~= "Warning" and Title ~= "Error") then
Utils.Print(format("%s - %s", Title, Message), Caller, true);
end
return Clone
else
local ChatRemote = Services.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest
ChatRemote.FireServer(ChatRemote, format("/w %s [FA] %s: %s", Caller.Name, Title, Message), "All");
end
end
Utils.MatchSearch = function(String1, String2)
return String1 == sub(String2, 1, #String1);
end
Utils.StringFind = function(Table, String)
for _, v in ipairs(Table) do
if (Utils.MatchSearch(String, v)) then
return v
end
end
end
Utils.GetPlayerArgs = function(Arg)
Arg = lower(Arg);
local SpecialCases = {"all", "others", "random", "me", "nearest", "farthest", "npcs", "allies", "enemies"}
if (Utils.StringFind(SpecialCases, Arg)) then
return Utils.StringFind(SpecialCases, Arg);
end
local CurrentPlayers = GetPlayers(Players);
for i, v in next, CurrentPlayers do
local Name, DisplayName = v.Name, v.DisplayName
if (Name ~= DisplayName and Utils.MatchSearch(Arg, lower(DisplayName))) then
return lower(DisplayName);
end
if (Utils.MatchSearch(Arg, lower(Name))) then
return lower(Name);
end
end
end
Utils.ToolTip = function(Object, Message)
local CloneToolTip
local TextService = Services.TextService
AddConnection(CConnect(Object.MouseEnter, function()
if (Object.BackgroundTransparency < 1 and not CloneToolTip) then
local TextSize = TextService.GetTextSize(TextService, Message, 12, Enum.Font.Gotham, Vector2.new(200, math.huge)).Y > 24
CloneToolTip = Clone(UI.ToolTip)
CloneToolTip.Text = Message
CloneToolTip.TextScaled = TextSize
CloneToolTip.Visible = true
CloneToolTip.Parent = UI
end
end))
AddConnection(CConnect(Object.MouseLeave, function()
if (CloneToolTip) then
Destroy(CloneToolTip);
CloneToolTip = nil
end
end))
if (LocalPlayer) then
AddConnection(CConnect(Mouse.Move, function()
if (CloneToolTip) then
CloneToolTip.Position = UDim2.fromOffset(Mouse.X + 10, Mouse.Y + 10)
end
end))
else
delay(3, function()
LocalPlayer = Players.LocalPlayer
AddConnection(CConnect(Mouse.Move, function()
if (CloneToolTip) then
CloneToolTip.Position = UDim2.fromOffset(Mouse.X + 10, Mouse.Y + 10)
end
end))
end)
end
end
Utils.ClearAllObjects = function(Object)
local Children = GetChildren(Object);
for i = 1, #Children do
local Child = Children[i]
if (IsA(Child, "GuiObject")) then
Destroy(Child);
end
end
end
Utils.Rainbow = function(TextObject)
local Text = TextObject.Text
local Frequency = 1 -- determines how quickly it repeats
local TotalCharacters = 0
local Strings = {}
TextObject.RichText = true
for Character in gmatch(Text, ".") do
if match(Character, "%s") then
Strings[#Strings + 1] = Character
else
TotalCharacters = TotalCharacters + 1
Strings[#Strings + 1] = {'<font color="rgb(%i, %i, %i)">' .. Character .. '</font>'}
end
end
local Connection = AddConnection(CConnect(Heartbeat, function()
local String = ""
local Counter = TotalCharacters
for _, CharacterTable in ipairs(Strings) do
local Concat = ""
if (type(CharacterTable) == "table") then
Counter = Counter - 1
local Color = Color3.fromHSV(-atan(math.tan((tick() + Counter/math.pi)/Frequency))/math.pi + 0.5, 1, 1)
CharacterTable = format(CharacterTable[1], floor(Color.R * 255), floor(Color.G * 255), floor(Color.B * 255))
end
String = String .. CharacterTable
end
TextObject.Text = String .. " "
end));
delay(150, function()
Disconnect(Connection);
end)
end
Utils.Vector3toVector2 = function(Vector)
local Tuple = WorldToViewportPoint(Camera, Vector);
return Vector2New(Tuple.X, Tuple.Y);
end
Utils.AddTag = function(Tag)
if (not Tag) then
return
end
local PlrCharacter = GetCharacter(Tag.Player)
if (not PlrCharacter) then
return
end
local Billboard = InstanceNew("BillboardGui");
Billboard.Parent = UI
Billboard.Name = GenerateGUID(Services.HttpService);
Billboard.AlwaysOnTop = true
Billboard.Adornee = FindFirstChild(PlrCharacter, "Head") or nil
Billboard.Enabled = FindFirstChild(PlrCharacter, "Head") and true or false
Billboard.Size = UDim2.new(0, 200, 0, 50)
Billboard.StudsOffset = Vector3New(0, 4, 0);
local TextLabel = InstanceNew("TextLabel", Billboard);
TextLabel.Name = GenerateGUID(Services.HttpService);
TextLabel.TextStrokeTransparency = 0.6
TextLabel.BackgroundTransparency = 1
TextLabel.TextColor3 = Color3.new(0, 255, 0);
TextLabel.Size = UDim2.new(0, 200, 0, 50);
TextLabel.TextScaled = false
TextLabel.TextSize = 15
TextLabel.Text = format("%s (%s)", Tag.Name, Tag.Tag);
if (Tag.Rainbow) then
Utils.Rainbow(TextLabel)
end
if (Tag.Colour) then
local TColour = Tag.Colour
TextLabel.TextColor3 = Color3.fromRGB(TColour[1], TColour[2], TColour[3]);
end
local Added = AddConnection(CConnect(Tag.Player.CharacterAdded, function()
Billboard.Adornee = WaitForChild(Tag.Player.Character, "Head");
end));
AddConnection(CConnect(Players.PlayerRemoving, function(plr)
if (plr == Tag.Player) then
Disconnect(Added);
Destroy(Billboard);
end
end))
end
Utils.TextFont = function(Text, RGB)
RGB = concat(RGB, ",")
local New = {}
gsub(Text, ".", function(x)
New[#New + 1] = x
end)
return concat(map(New, function(i, letter)
return format('<font color="rgb(%s)">%s</font>', RGB, letter)
end)) .. " "
end
Utils.Thing = function(Object)
local Container = InstanceNew("Frame");
local Hitbox = InstanceNew("ImageButton");
local UDim2fromOffset = UDim2.fromOffset
Container.Name = "Container"
Container.Parent = Object.Parent
Container.BackgroundTransparency = 1.000
Container.BorderSizePixel = 0
Container.Position = Object.Position
Container.ClipsDescendants = true
Container.Size = UDim2fromOffset(Object.AbsoluteSize.X, Object.AbsoluteSize.Y);
Container.ZIndex = Object
Object.AutomaticSize = Enum.AutomaticSize.X
Object.Size = UDim2.fromScale(1, 1)
Object.Position = UDim2.fromScale(0, 0)
Object.Parent = Container
Object.TextTruncate = Enum.TextTruncate.None
Object.ZIndex = Object.ZIndex + 2
Hitbox.Name = "Hitbox"
Hitbox.Parent = Container.Parent
Hitbox.BackgroundTransparency = 1.000
Hitbox.Size = Container.Size
Hitbox.Position = Container.Position
Hitbox.ZIndex = Object.ZIndex + 2
local MouseOut = true
AddConnection(CConnect(Hitbox.MouseEnter, function()
if Object.AbsoluteSize.X > Container.AbsoluteSize.X then
MouseOut = false
repeat
local Tween1 = Utils.Tween(Object, "Quad", "Out", .5, {
Position = UDim2fromOffset(Container.AbsoluteSize.X - Object.AbsoluteSize.X, 0);
})
CWait(Tween1.Completed);
wait(.5);
local Tween2 = Utils.Tween(Object, "Quad", "Out", .5, {
Position = UDim2fromOffset(0, 0);
})
CWait(Tween2.Completed);
wait(.5);
until MouseOut
end
end))
AddConnection(CConnect(Hitbox.MouseLeave, function()
MouseOut = true
Utils.Tween(Object, "Quad", "Out", .25, {
Position = UDim2fromOffset(0, 0);
});
end))
return Object
end
function Utils.Intro(Object)
local Frame = InstanceNew("Frame");
local UICorner = InstanceNew("UICorner");
local CornerRadius = FindFirstChild(Object, "UICorner") and Object.UICorner.CornerRadius or UDim.new(0, 0)
local UDim2fromOffset = UDim2.fromOffset
Frame.Name = "IntroFrame"
Frame.ZIndex = 1000
Frame.Size = UDim2fromOffset(Object.AbsoluteSize.X, Object.AbsoluteSize.Y)
Frame.AnchorPoint = Vector2.new(.5, .5)
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))
Frame.BackgroundColor3 = Object.BackgroundColor3
Frame.BorderSizePixel = 0
UICorner.CornerRadius = CornerRadius
UICorner.Parent = Frame
Frame.Parent = Object.Parent
if (Object.Visible) then
Frame.BackgroundTransparency = 1
local Tween = Utils.Tween(Frame, "Quad", "Out", .25, {
BackgroundTransparency = 0
});
CWait(Tween.Completed);
Object.Visible = false
local Tween = Utils.Tween(Frame, "Quad", "Out", .25, {
Size = UDim2fromOffset(0, 0);
});
Utils.Tween(UICorner, "Quad", "Out", .25, {
CornerRadius = UDim.new(1, 0)
});
CWait(Tween.Completed);
Destroy(Frame);
else
Frame.Visible = true
Frame.Size = UDim2fromOffset(0, 0)
UICorner.CornerRadius = UDim.new(1, 0)
local Tween = Utils.Tween(Frame, "Quad", "Out", .25, {
Size = UDim2fromOffset(Object.AbsoluteSize.X, Object.AbsoluteSize.Y)
});
Utils.Tween(UICorner, "Quad", "Out", .25, {
CornerRadius = CornerRadius
});
CWait(Tween.Completed);
Object.Visible = true
local Tween = Utils.Tween(Frame, "Quad", "Out", .25, {
BackgroundTransparency = 1
})
CWait(Tween.Completed);
Destroy(Frame);
end
end
Utils.MakeGradient = function(ColorTable)
local Table = {}
local ColorSequenceKeypointNew = ColorSequenceKeypoint.new
for Time, Color in next, ColorTable do
Table[#Table + 1] = ColorSequenceKeypointNew(Time - 1, Color);
end
return ColorSequence.new(Table)
end
Utils.Debounce = function(Func)
local Debounce = false
return function(...)
if (not Debounce) then
Debounce = true
Func(...);
Debounce = false
end
end
end
Utils.ToggleFunction = function(Container, Enabled, Callback) -- fpr color picker
local Switch = Container.Switch
local Hitbox = Container.Hitbox
local Color3fromRGB = Color3.fromRGB
local UDim2fromOffset = UDim2.fromOffset
Container.BackgroundColor3 = Color3fromRGB(255, 79, 87);
if not Enabled then
Switch.Position = UDim2fromOffset(2, 2)
Container.BackgroundColor3 = Color3fromRGB(25, 25, 25);
end
AddConnection(CConnect(Hitbox.MouseButton1Click, function()
Enabled = not Enabled
Utils.Tween(Switch, "Quad", "Out", .25, {
Position = Enabled and UDim2.new(1, -18, 0, 2) or UDim2fromOffset(2, 2)
});
Utils.Tween(Container, "Quad", "Out", .25, {
BackgroundColor3 = Enabled and Color3fromRGB(255, 79, 87) or Color3fromRGB(25, 25, 25);
});
Callback(Enabled);
end));
end
do
local AmountPrint, AmountWarn, AmountError = 0, 0, 0;
Utils.Warn = function(Text, Plr)
local TimeOutputted = os.date("%X");
local Clone = Clone(UI.MessageOut);
Clone.Name = "W" .. tostring(AmountWarn + 1);
Clone.Text = format("%s -- %s", TimeOutputted, Text);
Clone.TextColor3 = Color3.fromRGB(255, 218, 68);
Clone.Visible = true
Clone.TextTransparency = 1
Clone.Parent = Console.Frame.List
Utils.Tween(Clone, "Sine", "Out", .25, {
TextTransparency = 0
})
Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
AmountWarn = AmountWarn + 1
Utils.Notify(Plr, "Warning", Text);
end
Utils.Error = function(Text, Caller, FromNotif)
local TimeOutputted = os.date("%X");
local Clone = Clone(UI.MessageOut);
Clone.Name = "E" .. tostring(AmountError + 1);
Clone.Text = format("%s -- %s", TimeOutputted, Text);
Clone.TextColor3 = Color3.fromRGB(215, 90, 74);
Clone.Visible = true
Clone.TextTransparency = 1
Clone.Parent = Console.Frame.List
Utils.Tween(Clone, "Sine", "Out", .25, {
TextTransparency = 0
})
Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
AmountError = AmountError + 1
end
Utils.Print = function(Text, Caller, FromNotif)
local TimeOutputted = os.date("%X");
local Clone = Clone(UI.MessageOut);
Clone.Name = "P" .. tostring(AmountPrint + 1);
Clone.Text = format("%s -- %s", TimeOutputted, Text);
Clone.Visible = true
Clone.TextTransparency = 1
Clone.Parent = Console.Frame.List
Utils.Tween(Clone, "Sine", "Out", .25, {
TextTransparency = 0
})
Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
AmountPrint = AmountPrint + 1
if (len(Text) <= 35 and not FromNotif) then
Utils.Notify(Caller, "Output", Text);
end
end
end
--END IMPORT [utils]
-- commands table
local CommandsTable = {}
local RespawnTimes = {}
local HasTool = function(plr)
plr = plr or LocalPlayer
local CharChildren, BackpackChildren = GetChildren(GetCharacter(plr)), GetChildren(plr.Backpack);
local ToolFound = false
local tbl = tbl_concat(CharChildren, BackpackChildren);
for i = 1, #tbl do
local v = tbl[i]
if (IsA(v, "Tool")) then
ToolFound = true
break;
end
end
return ToolFound
end
local isR6 = function(plr)
plr = plr or LocalPlayer
local Humanoid = GetHumanoid(plr);
if (Humanoid) then
return Humanoid.RigType == Enum.HumanoidRigType.R6
end
return false
end
local isSat = function(plr)
plr = plr or LocalPlayer
local Humanoid = GetHumanoid(plr)
if (Humanoid) then
return Humanoid.Sit
end
end
local DisableAnimate = function()
local Animate = GetCharacter().Animate
Animate = IsA(Animate, "LocalScript") and Animate or nil
if (Animate) then
SpoofProperty(Animate, "Disabled");
Animate.Disabled = true
end
end
local GetCorrectToolWithHandle = function()
local Tools = filter(tbl_concat(GetChildren(LocalPlayer.Backpack), GetChildren(LocalPlayer.Character)), function(i, Tool)
local Correct = IsA(Tool, "Tool");
if (Correct and (Tool.RequiresHandle or FindFirstChild(Tool, "Handle"))) then
local Descendants = GetDescendants(Tool);
for i = 1, #Descendants do
local Descendant = Descendants[i]
if (IsA(Descendant, "Sound") or IsA(Descendant, "Camera") or IsA(Descendant, "LocalScript")) then
Destroy(Descendant);
end
end
return true
end
return false
end)
return Tools[1]
end
local CommandRequirements = {
[1] = {
Func = HasTool,
Message = "You need a tool for this command"
},
[2] = {
Func = isR6,
Message = "You need to be R6 for this command"
},
[3] = {
Func = function()
return GetCharacter() ~= nil
end,
Message = "You need to be spawned for this command"
}
}
local AddCommand = function(name, aliases, description, options, func, isplugin)
local Cmd = {
Name = name,
Aliases = aliases,
Description = description,
Options = options,
Function = function()
for i, v in next, options do
if (type(v) == 'function' and v() == false) then
Utils.Warn("You are missing something that is needed for this command", LocalPlayer);
return nil
elseif (type(v) == 'number' and CommandRequirements[v].Func() == false) then
Utils.Warn(CommandRequirements[v].Message, LocalPlayer);
return nil
end
end
return func
end,
ArgsNeeded = tonumber(filter(options, function(i,v)
return type(v) == "string"
end)[1]) or 0,
Args = filter(options, function(i, v)
return type(v) == "table"
end)[1] or {},
CmdEnv = {},
IsPlugin = isplugin == true
}
CommandsTable[name] = Cmd
if (type(aliases) == 'table') then
for i, v in next, aliases do
CommandsTable[v] = Cmd
end
end
return Success
end
local RemoveCommand = function(Name)
local Command = LoadCommand(Name);
if (Command) then
CommandsTable[Name] = nil
local CommandsList = Commands.Frame.List
local CommandLabel = FindFirstChild(CommandsList, Name);
if (CommandLabel) then
Destroy(CommandLabel);
end
return true
end
return false
end
local LoadCommand = function(Name)
return rawget(CommandsTable, Name);
end
local PluginConf;
local ExecuteCommand = function(Name, Args, Caller)
local Command = LoadCommand(Name);
if (Command) then
if (Command.ArgsNeeded > #Args) then
return Utils.Warn(format("Insuficient Args (you need %d)", Command.ArgsNeeded), LocalPlayer);
end
local Context;
local sett, gett = syn and syn_context_set or setidentity, syn and syn_context_get or getidentity
if (Command.IsPlugin and sett and gett and PluginConf.SafePlugins) then
Context = gett();
sett(2);
end
local Success, Ret = xpcall(function()
local Func = Command.Function();
if (Func) then
local Executed = Func(Caller, Args, Command.CmdEnv);
if (Executed) then
Utils.Notify(Caller, "Command", Executed);
end
if (Command.Name ~= "lastcommand") then
if (#LastCommand == 3) then
LastCommand = shift(LastCommand);
end
LastCommand[#LastCommand + 1] = {Command.Name, Args, Caller, Command.CmdEnv}
end
end
Success = true
end, function(Err)
if (Debug) then
Utils.Error(format("[FA CMD Error]: Command = '%s' Traceback = '%s'", Name, debug.traceback(Err)), Caller);
Utils.Notify(Caller, "Error", format("error in the '%s' command, more info shown in console", Name));
end
end);
if (Command.IsPlugin and sett and PluginConf.SafePlugins and Context) then
sett(Context);
end
else
GUI:Notification{
Title = "Warning",
Text = "Couldn't find the command " .. Name, Caller,
Duration = 3,
Callback = function() end
};
end
end
local ReplaceHumanoid = function(Hum, R)
local Humanoid = Hum or GetHumanoid();
local NewHumanoid = Clone(Humanoid);
if (R) then
NewHumanoid.Name = "1"
end
NewHumanoid.Parent = Humanoid.Parent
NewHumanoid.Name = Humanoid.Name
Services.Workspace.Camera.CameraSubject = NewHumanoid
Destroy(Humanoid);
SpoofInstance(NewHumanoid);
return NewHumanoid
end
local ReplaceCharacter = function()
local Char = LocalPlayer.Character
local Model = InstanceNew("Model");
LocalPlayer.Character = Model
LocalPlayer.Character = Char
Destroy(Model);
return Char
end
local CFrameTool = function(tool, pos)
local RightArm = FindFirstChild(GetCharacter(), "RightLowerArm") or FindFirstChild(GetCharacter(), "Right Arm");
local Arm = RightArm.CFrame * CFrameNew(0, -1, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0);
local Frame = Inverse(toObjectSpace(Arm, pos));
tool.Grip = Frame
end
local Sanitize = function(value)
if typeof(value) == 'CFrame' then
local components = {components(value)}
for i,v in pairs(components) do
components[i] = floor(v * 10000 + .5) / 10000
end
return 'CFrame.new('..concat(components, ', ')..')'
end
end
local AddPlayerConnection = function(Player, Connection, CEnv)
if (CEnv) then
CEnv[#CEnv + 1] = Connection
else
Connections.Players[Player.Name].Connections[#Connections.Players[Player.Name].Connections + 1] = Connection
end
return Connection
end
local DisableAllCmdConnections = function(Cmd)
local Command = LoadCommand(Cmd)
if (Command and Command.CmdEnv) then
for i, v in next, flat(Command.CmdEnv) do
if (type(v) == 'userdata' and v.Disconnect) then
Disconnect(v);
end
end
end
return Command
end
local Keys = {}
do
local UserInputService = Services.UserInputService
local IsKeyDown = UserInputService.IsKeyDown
local WindowFocused = true
AddConnection(CConnect(UserInputService.WindowFocusReleased, function()
WindowFocused = false
end));
AddConnection(CConnect(UserInputService.WindowFocused, function()
WindowFocused = true
end));
local GetFocusedTextBox = UserInputService.GetFocusedTextBox
AddConnection(CConnect(UserInputService.InputBegan, function(Input, GameProcessed)
Keys["GameProcessed"] = GameProcessed and WindowFocused and not (not GetFocusedTextBox(UserInputService));
Keys["LastEntered"] = Input.KeyCode
if (GameProcessed) then return end
local KeyCode = split(tostring(Input.KeyCode), ".")[3]
Keys[KeyCode] = true
for i = 1, #Macros do
local Macro = Macros[i]
if (Tfind(Macro.Keys, Input.KeyCode)) then
if (#Macro.Keys == 2) then
if (IsKeyDown(UserInputService, Macro.Keys[1]) and IsKeyDown(UserInputService, Macro.Keys[2]) --[[and Macro.Keys[1] == Input.KeyCode]]) then
ExecuteCommand(Macro.Command, Macro.Args);
end
else
ExecuteCommand(Macro.Command, Macro.Args);
end
end
end
if (Input.KeyCode == Enum.KeyCode.F8) then
if (Console.Visible) then
local Tween = Utils.TweenAllTrans(Console, .25)
CWait(Tween.Completed);
Console.Visible = false
else
local MessageClone = Clone(Console.Frame.List);
Utils.ClearAllObjects(Console.Frame.List)
Console.Visible = true
local Tween = Utils.TweenAllTransToObject(Console, .25, ConsoleTransparencyClone)
Destroy(Console.Frame.List)
MessageClone.Parent = Console.Frame
for i, v in next, GetChildren(Console.Frame.List) do
if (not IsA(v, "UIListLayout")) then
Utils.Tween(v, "Sine", "Out", .25, {
TextTransparency = 0
})
end
end
local ConsoleListLayout = Console.Frame.List.UIListLayout
CConnect(GetPropertyChangedSignal(ConsoleListLayout, "AbsoluteContentSize"), function()
local CanvasPosition = Console.Frame.List.CanvasPosition
local CanvasSize = Console.Frame.List.CanvasSize
local AbsoluteSize = Console.Frame.List.AbsoluteSize
if (CanvasSize.Y.Offset - AbsoluteSize.Y - CanvasPosition.Y < 20) then
wait();
Console.Frame.List.CanvasPosition = Vector2.new(0, CanvasSize.Y.Offset + 1000);
end
end)
Utils.Tween(Console.Frame.List, "Sine", "Out", .25, {
ScrollBarImageTransparency = 0
})
end
end
end));
AddConnection(CConnect(UserInputService.InputEnded, function(Input, GameProcessed)
if (GameProcessed) then return end
local KeyCode = split(tostring(Input.KeyCode), ".")[3]
if (Keys[KeyCode] or Keys[Input.KeyCode]) then
Keys[KeyCode] = false
end
end));
end
AddCommand("noclip", {}, "noclips your character", {3}, function(Caller, Args, CEnv)
local Char = GetCharacter()
local Noclipping = AddConnection(CConnect(Stepped, function()
for i, v in next, GetChildren(Char) do
if (IsA(v, "BasePart") and v.CanCollide) then
SpoofProperty(v, "CanCollide");
v.CanCollide = false
end
end
end), CEnv);
local Torso = isR6() and Char.Torso or Char.UpperTorso
local Noclipping2 = AddConnection(CConnect(Torso.Touched, function(Part)
if (Part and Part.CanCollide and not FindFirstChildWhichIsA(Part.Parent, "Humanoid")) then
local OldTransparency = Part.Transparency
Part.CanCollide = false
Part.Transparency = Part.Transparency <= 0.5 and 0.6 or Part.Transparency
wait(2);
Part.CanCollide = true
Part.Transparency = OldTransparency
end
end), CEnv);
Utils.Notify(Caller, "Command", "noclip enabled");
CWait(GetHumanoid().Died);
DisableAllCmdConnections("noclip");
GUI:Notification{
Title = "Alert",
Text = "Noclip disabled.",
Duration = 3,
Callback = function() end
}
end)
AddCommand("clip", {"unnoclip"}, "disables noclip", {}, function(Caller, Args)
if (not next(LoadCommand("noclip").CmdEnv)) then
GUI:Notification{
Title = "Alert",
Text = "You aren't in noclip.",
Duration = 3,
Callback = function() end
}
else
DisableAllCmdConnections("noclip");
GUI:Notification{
Title = "Alert",
Text = "Noclipped disabled.",
Duration = 3,
Callback = function() end
}
end
end)
local CommandsLoaded = false
AddCommand("commands", {"cmds"}, "shows you all the commands listed in Goign Rogue admin", {}, function()
if (not CommandsLoaded) then
local CommandsList = Commands.Frame.List
Utils.SmoothScroll(CommandsList, .14);
for _, v in next, CommandsTable do
if (not FindFirstChild(CommandsList, v.Name)) then
local Clone = Clone(Command)
Utils.Hover(Clone, "BackgroundColor3");
Utils.ToolTip(Clone, v.Name .. "\n" .. v.Description);
Clone.CommandText.Text = v.Name .. (#v.Aliases > 0 and " (" ..concat(v.Aliases, ", ") .. ")" or "");
Clone.Name = v.Name
Clone.Visible = true
Clone.Parent = CommandsList
end
end
Commands.Frame.List.CanvasSize = UDim2.fromOffset(0, Commands.Frame.List.UIListLayout.AbsoluteContentSize.Y);
CommandsTransparencyClone = Clone(Commands);
Utils.SetAllTrans(Commands)
CommandsLoaded = true
end
Commands.Visible = true
Utils.TweenAllTransToObject(Commands, .25, CommandsTransparencyClone);
GUI:Notification{
Title = "Alert",
Text = "Commands loaded.",
Duration = 3,
Callback = function() end
}
end)
AddCommand("walkspeed", {"speed"}, "changes your walkspeed to the second argument", {}, function(Caller, Args, CEnv)
local Humanoid = GetHumanoid();
CEnv[1] = Humanoid.WalkSpeed
SpoofProperty(Humanoid, "WalkSpeed");
Humanoid.WalkSpeed = tonumber(Args[1]) or 16
GUI:Notification{
Title = "Alert",
Text = "Your walkspeed is now " .. Humanoid.WalkSpeed,
Duration = 3,
Callback = function() end
}
end)
AddCommand("jumppower", {}, "changes your jumpower to the second argument", {}, function(Caller, Args, CEnv)
local Humanoid = GetHumanoid();
CEnv[1] = Humanoid.JumpPower
SpoofProperty(Humanoid, "JumpPower");
SpoofProperty(Humanoid, "UseJumpPower");
Humanoid.UseJumpPower = true
Humanoid.JumpPower = tonumber(Args[1]) or 50
GUI:Notification{
Title = "Alert",
Text = "Your jumppower is now " .. Humanoid.JumpPower .. ".",
Duration = 3,
Callback = function() end
}
end)
AddCommand("fly", {}, "fly your character", {3}, function(Caller, Args, CEnv)
LoadCommand("fly").CmdEnv[1] = tonumber(Args[1]) or GetConfig().FlySpeed or 3
local Speed = LoadCommand("fly").CmdEnv[1]
for i, v in next, GetChildren(GetRoot()) do
if (IsA(v, "BodyPosition") or IsA(v, "BodyGyro")) then
Destroy(v);
end
end
local BodyPos = InstanceNew("BodyPosition");
local BodyGyro = InstanceNew("BodyGyro");
ProtectInstance(BodyPos);
ProtectInstance(BodyGyro);
SpoofProperty(GetHumanoid(), "FloorMaterial");
SpoofProperty(GetHumanoid(), "PlatformStand");
BodyPos.Parent = GetRoot();
BodyGyro.Parent = GetRoot();
BodyGyro.maxTorque = Vector3New(1, 1, 1) * 9e9
BodyGyro.CFrame = GetRoot().CFrame
BodyPos.maxForce = Vector3New(1, 1, 1) * math.huge
GetHumanoid().PlatformStand = true
CThread(function()
BodyPos.Position = GetRoot().Position
while (next(LoadCommand("fly").CmdEnv) and wait()) do
Speed = LoadCommand("fly").CmdEnv[1]
local NewPos = (BodyGyro.CFrame - (BodyGyro.CFrame).Position) + BodyPos.Position
local CoordinateFrame = Camera.CoordinateFrame
if (Keys["W"]) then
NewPos = NewPos + CoordinateFrame.lookVector * Speed
BodyPos.Position = (GetRoot().CFrame * CFrameNew(0, 0, -Speed)).Position;
BodyGyro.CFrame = CoordinateFrame * CFrame.Angles(-rad(Speed * 15), 0, 0);
end
if (Keys["A"]) then
NewPos = NewPos * CFrameNew(-Speed, 0, 0);
end
if (Keys["S"]) then
NewPos = NewPos - CoordinateFrame.lookVector * Speed
BodyPos.Position = (GetRoot().CFrame * CFrameNew(0, 0, Speed)).Position;
BodyGyro.CFrame = CoordinateFrame * CFrame.Angles(-rad(Speed * 15), 0, 0);
end
if (Keys["D"]) then
NewPos = NewPos * CFrameNew(Speed, 0, 0);
end
BodyPos.Position = NewPos.Position
BodyGyro.CFrame = CoordinateFrame
end
GetHumanoid().PlatformStand = false
end)();
end)
AddCommand("flyspeed", {"fs"}, "changes the fly speed", {3, "1"}, function(Caller, Args)
local Speed = tonumber(Args[1]);
LoadCommand("fly").CmdEnv[1] = Speed or LoadCommand("fly").CmdEnv[1]
if (Speed) then
SetConfig({FlySpeed=Speed});
GUI:Notification{
Title = "Alert",
Text = "Your fly speed is now " .. Speed .. ".",
Duration = 3,
Callback = function() end
}
else
GUI:Notification{
Title = "Alert",
Text = "Flyspeed must be a number.",
Duration = 3,
Callback = function() end
}
end
end)
AddCommand("unfly", {}, "unflies your character", {3}, function()
local FlyCEnv = LoadCommand("fly").CmdEnv
if (FlyCEnv.Animate) then
FlyCEnv.Animate.Disabled = false
FlyCEnv.Animate = nil
end
DisableAllCmdConnections("fly");
table.clear(FlyCEnv);
LoadCommand("fly").CmdEnv = {}
local Root = GetRoot();
local Instances = { ["BodyPosition"] = true, ["BodyGyro"] = true, ["BodyVelocity"] = true }
for i, v in next, GetChildren(Root) do
if (Instances[v.ClassName]) then
Destroy(v);
end
end
UnSpoofInstance(Root);
GetHumanoid().PlatformStand = false
end)
AddCommand("unfly", {}, "unflies your character", {3}, function()
local FlyCEnv = LoadCommand("fly").CmdEnv
if (FlyCEnv.Animate) then
FlyCEnv.Animate.Disabled = false
FlyCEnv.Animate = nil
end
DisableAllCmdConnections("fly");
table.clear(FlyCEnv);
LoadCommand("fly").CmdEnv = {}
local Root = GetRoot();
local Instances = { ["BodyPosition"] = true, ["BodyGyro"] = true, ["BodyVelocity"] = true }
for i, v in next, GetChildren(Root) do
if (Instances[v.ClassName]) then
Destroy(v);
end
end
UnSpoofInstance(Root);
GetHumanoid().PlatformStand = false
end)
AddCommand("float", {}, "floats your character", {}, function(Caller, Args, CEnv)
if (not CEnv[1]) then
local Part = InstanceNew("Part");
Part.CFrame = CFrameNew(0, -10000, 0);
Part.Size = Vector3New(2, .2, 1.5);
Part.Material = "Grass"
Part.Anchored = true
Part.Transparency = 1
ProtectInstance(Part);
Part.Parent = Services.Workspace
CEnv[2] = Part
local R6 = isR6();
local Root = GetRoot();
AddConnection(CConnect(RenderStepped, function()
if (CEnv[1] and Root) then
Part.CFrame = Root.CFrame * CFrameNew(0, -3.1, 0);
else
Part.CFrame = CFrameNew(0, -10000, 0);
Root = GetRoot();
end
if (Keys["Q"]) then
Root.CFrame = Root.CFrame * CFrameNew(0, -1.5, 0);
elseif (Keys["E"]) then
Root.CFrame = Root.CFrame * CFrameNew(0, 1.5, 0);
end
end), CEnv)
GUI:Notification{
Title = "Alert",
Text = "Now floating.",
Duration = 3,
Callback = function() end
}
end
end)
AddCommand("unfloat", {"nofloat"}, "stops float", {}, function(Caller, Args, CEnv)
local Floating = LoadCommand("float").CmdEnv
if (Floating[1]) then
Disconnect(Floating[1]);
Destroy(Floating[2]);
LoadCommand("float").CmdEnv = {}
GUI:Notification{
Title = "Alert",
Text = "Stopped floating.",
Duration = 3,
Callback = function() end
}
end
GUI:Notification{
Title = "Alert",
Text = "Floating is not on.",
Duration = 3,
Callback = function() end
}
end)
AddCommand("fov", {}, "sets your fov", {}, function(Caller, Args)
local Amount = tonumber(Args[1]) or 70
SpoofProperty(Camera, "FieldOfView");
Camera.FieldOfView = Amount
end)
AddCommand("view", {}, "views a user", {3,"1"}, function(Caller, Args, CEnv)
local Target = GetPlayer(Args[1]);
if (#Target ~= 1) then
GUI:Notification{
Title = "Alert",
Text = "You can only view 1 person.",
Duration = 3,
Callback = function() end
}
end
Target = Target[1]
Camera.CameraSubject = GetCharacter(Target) or GetCharacter();
AddConnection(CConnect(Target.CharacterAdded, function()
CWait(Heartbeat);
Camera.CameraSubject = Target.Character
end), CEnv);
AddConnection(CConnect(LocalPlayer.CharacterAdded, function()
WaitForChild(LocalPlayer.Character, "Humanoid");
CWait(Camera.CameraSubject.Changed);
CWait(Heartbeat);
Camera.CameraSubject = Target.Character
end), CEnv);
GUI:Notification{
Title = "Alert",
Text = "Viewing" .. Target.Name,
Duration = 3,
Callback = function() end
}
end)
AddCommand("unview", {"rv"}, "unviews a user", {3}, function(Caller, Args)
DisableAllCmdConnections("view");
Camera.CameraSubject = GetCharacter();
GUI:Notification{
Title = "Alert",
Text = "Unviewing...",
Duration = 3,
Callback = function() end
}
end)
AddCommand("rejoin", {"rj"}, "rejoins the game you're currently in", {}, function(Caller)
if (Caller == LocalPlayer) then
local TeleportService = Services.TeleportService
if (#GetPlayers(Players) == 1) then
LocalPlayer:Kick();
TeleportService.Teleport(TeleportService, game.PlaceId);
else
TeleportService.TeleportToPlaceInstance(TeleportService, game.PlaceId, game.JobId)
end
GUI:Notification{
Title = "Alert",
Text = "Rejoining...",
Duration = 3,
Callback = function() end
}
end
end)
AddCommand("serverhop", {"shop"}, "switches servers (optional: min, max (default: max))", {{"min", "max"}}, function(Caller, Args)
if (Caller == LocalPlayer) then
Utils.Notify(Caller or LocalPlayer, "Command", "Looking for servers...");
local order = ""
local Option, Server = lower(Args[1] or "max");
if Option == "min" then
order = "Asc"
elseif Option == "max" then
order = "Desc"
end;
local Servers = {};
local url = format("https://games.roblox.com/v1/games/%s/servers/Public?sortOrder=%s&limit=100", game.PlaceId, order);
local starting = tick();
repeat
local good, result = pcall(function()
return game:HttpGet(url);
end);
if (not good) then
wait(2);
continue;
end
local decoded = Services.HttpService:JSONDecode(result);
if (#decoded.data ~= 0) then
Servers = decoded.data
for i, v in pairs(Servers) do
if (v.maxPlayers and v.playing and v.maxPlayers > v.playing and v.id ~= game.JobId) then
Server = v
break;
end
end
if (Server) then
break;
end
end
url = format("https://games.roblox.com/v1/games/%s/servers/Public?sortOrder=%s&limit=100&cursor=%s", game.PlaceId, order, decoded.nextPageCursor);
until tick() - starting >= 600;
if (not Server or #Servers == 0) then
return "no servers found";
end
local queue_on_teleport = syn and syn.queue_on_teleport or queue_on_teleport
if (queue_on_teleport and not Args[2]) then
queue_on_teleport("loadstring(game.HttpGet(game, \"https://raw.githubusercontent.com\"))()");
end;
Services.TeleportService:TeleportToPlaceInstance(game.PlaceId, Server.id);
return format("joining server (%d/%d players)", Server.playing, Server.maxPlayers);
end
end);
AddCommand("freecam", {"fc"}, "enables/disables freecam", {}, function(Caller, Args, CEnv)
if (not CEnv.Activated) then
-- roblox freecam modifed by fate
local Spring = {}
Spring.__index = Spring
function Spring:Update(dt)
local t, k, d, x0, v0 = self.t, self.k, self.d, self.x, self.v
local a0 = k * (t - x0) + v0 * d
local v1 = v0 + a0 * (dt / 2);
local a1 = k * (t - (x0 + v0 * (dt / 2))) + v1 * d
local v2 = v0 + a1 * (dt / 2);
local a2 = k * (t - (x0 + v1 * (dt / 2))) + v2 * d
local v3 = v0 + a2 * dt
local x4 = x0 + (v0 + 2 * (v1 + v2) + v3) * (dt / 6);
self.x, self.v = x4, v0 + (a0 + 2 * (a1 + a2) + k * (t - (x0 + v2 * dt)) + v3 * d) * (dt / 6);
return x4
end
function Spring.new(stiffness, dampingCoeff, dampingRatio, initialPos)
local self = setmetatable({}, Spring);
dampingRatio = dampingRatio or 1
local m = dampingCoeff * dampingCoeff / (4 * stiffness * dampingRatio * dampingRatio);
self.k = stiffness / m
self.d = -dampingCoeff / m
self.x = initialPos
self.t = initialPos
self.v = initialPos * 0
return self
end
local StarterGui = Services.StarterGui
local UserInputService = Services.UserInputService
local RunService = Services.RunService
local WasGuiVisible = {}
local GetCore, GetCoreGuiEnabled, SetCore, SetCoreGuiEnabled = StarterGui.GetCore, StarterGui.GetCoreGuiEnabled, StarterGui.SetCore, StarterGui.SetCoreGuiEnabled
local CoreGuiType = Enum.CoreGuiType
function ToggleGui(on)
if not on then
WasGuiVisible["PointsNotificationsActive"] = GetCore(StarterGui, "PointsNotificationsActive");
WasGuiVisible["BadgesNotificationsActive"] = GetCore(StarterGui, "BadgesNotificationsActive");
WasGuiVisible["Health"] = GetCoreGuiEnabled(StarterGui, CoreGuiType.Health);
WasGuiVisible["Backpack"] = GetCoreGuiEnabled(StarterGui, CoreGuiType.Backpack);
WasGuiVisible["PlayerList"] = GetCoreGuiEnabled(StarterGui, CoreGuiType.PlayerList);
WasGuiVisible["Chat"] = GetCoreGuiEnabled(StarterGui, CoreGuiType.Chat);
end
local function GuiOn(name)
if on == false then
return false
end
if WasGuiVisible[name] ~= nil then
return WasGuiVisible[name]
end
return true
end
SetCore(StarterGui, "PointsNotificationsActive", GuiOn("PointsNotificationsActive"));
SetCore(StarterGui, "BadgesNotificationsActive", GuiOn("BadgesNotificationsActive"));
SetCoreGuiEnabled(StarterGui, CoreGuiType.Health, GuiOn("Health"));
SetCoreGuiEnabled(StarterGui, CoreGuiType.Backpack, GuiOn("Backpack"));
SetCoreGuiEnabled(StarterGui, CoreGuiType.PlayerList, GuiOn("PlayerList"));
SetCoreGuiEnabled(StarterGui, CoreGuiType.Chat, GuiOn("Chat"));
end
local Vector2New = Vector2.new
local DEF_FOV = 70
local NM_ZOOM = math.tan(DEF_FOV * math.pi/360);
local LVEL_GAIN = Vector3New(1, 0.75, 1);
local RVEL_GAIN = Vector2New(0.85, 1) / 128
local FVEL_GAIN = -330
local DEADZONE = 0.125
local FOCUS_OFFSET = CFrameNew(0, 0, -16);
local DIRECTION_LEFT = 1
local DIRECTION_RIGHT = 2
local DIRECTION_FORWARD = 3
local DIRECTION_BACKWARD = 4
local DIRECTION_UP = 5
local DIRECTION_DOWN = 6
local KEY_MAPPINGS = {
[DIRECTION_LEFT] = {Enum.KeyCode.A, Enum.KeyCode.H},
[DIRECTION_RIGHT] = {Enum.KeyCode.D, Enum.KeyCode.K},
[DIRECTION_FORWARD] = {Enum.KeyCode.W, Enum.KeyCode.U},
[DIRECTION_BACKWARD] = {Enum.KeyCode.S, Enum.KeyCode.J},
[DIRECTION_UP] = {Enum.KeyCode.E, Enum.KeyCode.I},
[DIRECTION_DOWN] = {Enum.KeyCode.Q, Enum.KeyCode.Y},
}
local screenGuis = {}
local freeCamEnabled = false
local V3, V2 = Vector3New(), Vector2New();
local stateRot = V2
local panDeltaGamepad = V2
local panDeltaMouse = V2
local velSpring = Spring.new(7 / 9, 1 / 3, 1, V3);
local rotSpring = Spring.new(7 / 9, 1 / 3, 1, V2);
local fovSpring = Spring.new(2, 1 / 3, 1, 0);
local gp_x = 0
local gp_z = 0
local gp_l1 = 0
local gp_r1 = 0
local rate_fov = 0
local SpeedModifier = 1
local function Clamp(x, min, max)
return x < min and min or x > max and max or x
end
local function GetChar()
local Char = GetCharacter();
if Char then
return FindFirstChildOfClass(Char, "Humanoid"), FindFirstChild(Char, "HumanoidRootPart");
end
end
local function InputCurve(x)
local s = abs(x);
if s > DEADZONE then
s = 0.255000975 * (2 ^ (2.299113817 * s) - 1);
return x > 0 and (s > 1 and 1 or s) or (s > 1 and -1 or -s);
end
return 0
end
local function ProcessInput(input, processed)
local userInputType = input.UserInputType
Processed = processed
if userInputType == Enum.UserInputType.Gamepad1 then
local keycode = input.KeyCode
if keycode == Enum.KeyCode.Thumbstick2 then
local pos = input.Position
panDeltaGamepad = Vector2.new(InputCurve(pos.y), InputCurve(-pos.x)) * 7
elseif keycode == Enum.KeyCode.Thumbstick1 then
local pos = input.Position
gp_x = InputCurve(pos.x)
gp_z = InputCurve(-pos.y)
elseif keycode == Enum.KeyCode.ButtonL2 then
gp_l1 = input.Position.z
elseif keycode == Enum.KeyCode.ButtonR2 then
gp_r1 = input.Position.z
end
rate_fov = input.Position.Z
end
end
CEnv.Connections = {}
AddConnection(CConnect(UserInputService.InputChanged, ProcessInput));
AddConnection(CConnect(UserInputService.InputEnded, ProcessInput));
AddConnection(CConnect(UserInputService.InputBegan, ProcessInput));
local IsKeyDown = UserInputService.IsKeyDown
local function IsDirectionDown(direction)
for i = 1, #KEY_MAPPINGS[direction] do
if (IsKeyDown(UserInputService, KEY_MAPPINGS[direction][i]) and not Processed) then
return true
end
end
return false
end
local UpdateFreecam do
local dt = 1/60
AddConnection(CConnect(RenderStepped, function(_dt)
dt = _dt
end));
function UpdateFreecam()
local camCFrame = Camera.CFrame
local kx = (IsDirectionDown(DIRECTION_RIGHT) and 1 or 0) - (IsDirectionDown(DIRECTION_LEFT) and 1 or 0);
local ky = (IsDirectionDown(DIRECTION_UP) and 1 or 0) - (IsDirectionDown(DIRECTION_DOWN) and 1 or 0);
local kz = (IsDirectionDown(DIRECTION_BACKWARD) and 1 or 0) - (IsDirectionDown(DIRECTION_FORWARD) and 1 or 0);
local km = (kx * kx) + (ky * ky) + (kz * kz)
if km > 1e-15 then
km = ((IsKeyDown(UserInputService, Enum.KeyCode.LeftShift) or IsKeyDown(UserInputService, Enum.KeyCode.RightShift)) and 1 / 4 or 1) / math.sqrt(km);
kx = kx * km
ky = ky * km
kz = kz * km
end
local dx = kx + gp_x
local dy = ky + gp_r1 - gp_l1
local dz = kz + gp_z
velSpring.t = Vector3New(dx, dy, dz) * SpeedModifier
rotSpring.t = panDeltaMouse + panDeltaGamepad
fovSpring.t = Clamp(fovSpring.t + dt * rate_fov*FVEL_GAIN, 5, 120);
local fov = fovSpring:Update(dt);
local dPos = velSpring:Update(dt) * LVEL_GAIN
local dRot = rotSpring:Update(dt) * (RVEL_GAIN * math.tan(fov * math.pi / 360) * NM_ZOOM);
rate_fov = 0
panDeltaMouse = V2
stateRot = stateRot + dRot
stateRot = Vector2New(Clamp(stateRot.x, -3 / 2, 3 / 2), stateRot.y);
local c = CFrameNew(camCFrame.p) * CFrame.Angles(0, stateRot.y, 0) * CFrame.Angles(stateRot.x, 0, 0) * CFrameNew(dPos);
Camera.CFrame = c
Camera.Focus = c * FOCUS_OFFSET
Camera.FieldOfView = fov
end
end
local function Panned(input, processed)
if not processed and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Delta
panDeltaMouse = Vector2New(-delta.y, -delta.x);
end
end
local function EnterFreecam()
ToggleGui(false);
UserInputService.MouseIconEnabled = false
AddConnection(CConnect(UserInputService.InputBegan, function(input, processed)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
local conn = CConnect(UserInputService.InputChanged, Panned)
repeat
input = CWait(UserInputService.InputEnded);
until input.UserInputType == Enum.UserInputType.MouseButton2 or not freeCamEnabled
panDeltaMouse = V2
panDeltaGamepad = V2
Disconnect(conn);
if freeCamEnabled then
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
end
elseif input.KeyCode == Enum.KeyCode.LeftShift or input.KeyCode == Enum.KeyCode.RightShift then
SpeedModifier = 0.5
end
end), CEnv.Connections);
AddConnection(CConnect(UserInputService.InputEnded, function(input, processed)
if input.KeyCode == Enum.KeyCode.LeftShift or input.KeyCode == Enum.KeyCode.RightShift then
SpeedModifier = 1
end
end), CEnv.Connections);
Camera.CameraType = Enum.CameraType.Scriptable
local hum, hrp = GetChar()
if hrp then
hrp.Anchored = true
end
if hum then
hum.WalkSpeed = 0
AddConnection(CConnect(hum.Jumping, function(active)
if active then
hum.Jumping = false
end
end), CEnv.Connections);
end
velSpring.t, velSpring.v, velSpring.x = V3, V3, V3
rotSpring.t, rotSpring.v, rotSpring.x = V2, V2, V2
fovSpring.t, fovSpring.v, fovSpring.x = Camera.FieldOfView, 0, Camera.FieldOfView
local camCFrame = Camera.CFrame
local lookVector = camCFrame.lookVector.unit
stateRot = Vector2.new(
math.asin(lookVector.y),
math.atan2(-lookVector.z, lookVector.x) - math.pi/2
)
panDeltaMouse = Vector2New();
for _, obj in next, GetChildren(PlayerGui) do
if IsA(obj, "ScreenGui") and obj.Enabled then
obj.Enabled = false
screenGuis[obj] = true
end
end
AddConnection(CConnect(LocalPlayer.CharacterAdded, function()
local Hrp = WaitForChild(LocalPlayer.Character, "HumanoidRootPart");
Hrp.Anchored = true
end), CEnv.Connections);
RunService.BindToRenderStep(RunService, "Freecam", Enum.RenderPriority.Camera.Value, UpdateFreecam);
CEnv.Enabled = true
end
local function ExitFreecam()
CEnv.Enabled = false
UserInputService.MouseIconEnabled = true
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
RunService.UnbindFromRenderStep(RunService, "Freecam")
local hum, hrp = GetChar()
if hum then
hum.WalkSpeed = 16
end
if hrp then
hrp.Anchored = false
end
Camera.FieldOfView = DEF_FOV
Camera.CameraType = Enum.CameraType.Custom
for i, Connection in next, CEnv.Connections do
Disconnect(Connection);
end
for obj in next, screenGuis do
obj.Enabled = true
end
screenGuis = {}
ToggleGui(true)
end
EnterFreecam()
CEnv.Activated = true
CEnv.Enabled = true
CEnv.EnterFreecam = EnterFreecam
CEnv.ExitFreecam = ExitFreecam
GUI:Notification{
Title = "Alert",
Text = "Freecam enabled!",
Duration = 3,
Callback = function() end
}
end
if (CEnv.Enabled) then
CEnv.ExitFreecam();
GUI:Notification{
Title = "Alert",
Text = "Freecam disabled.",
Duration = 3,
Callback = function() end
}
else
CEnv.EnterFreecam();
GUI:Notification{
Title = "Alert",
Text = "Freecam enabled!",
Duration = 3,
Callback = function() end
}
end
end)
AddCommand("respawn", {"undetain", "re"}, "Respawns you", {}, function(Caller, Args)
game:GetService("ReplicatedStorage"):WaitForChild("Packages"):WaitForChild("Knit"):WaitForChild("Services"):WaitForChild("PlayerHandler"):WaitForChild("RF"):WaitForChild("Reset"):InvokeServer()
game:GetService("ReplicatedStorage"):WaitForChild("Packages"):WaitForChild("Knit"):WaitForChild("Services"):WaitForChild("SkydivingService"):WaitForChild("RF"):WaitForChild("FallDamage"):InvokeServer(10)
game:GetService("ReplicatedStorage"):WaitForChild("Packages"):WaitForChild("Knit"):WaitForChild("Services"):WaitForChild("PlayerHandler"):WaitForChild("RF"):WaitForChild("RequestDeploy"):InvokeServer()
game:GetService("ReplicatedStorage"):WaitForChild("Packages"):WaitForChild("Knit"):WaitForChild("Services"):WaitForChild("PlayerHandler"):WaitForChild("RF"):WaitForChild("Respawn"):InvokeServer()
GUI:Notification{
Title = "Alert",
Text = "Respawned.",
Duration = 3,
Callback = function() end
}
end)
AddCommand("kill", {"username"}, "Kills personnel", {}, function(Caller, Args)
local targetUsername = Args[1]
if targetUsername then
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local backpack = player.Backpack
local firstTool = backpack:FindFirstChildOfClass("Tool")
if firstTool then
firstTool.Parent = character
firstTool.Parent = character
end
local function killPlayer(player)
local args = {
[1] = workspace[player.Name].Head,
[2] = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Main,
[3] = workspace[player.Name].Head.Position,
[4] = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Handle.FireSound,
[5] = Vector3.new(0, 0, -1)
}
game:GetService("ReplicatedStorage").Stratarches.RepRayEvent:FireServer(unpack(args))
end
local targetPlayer = nil
for _, player in ipairs(game.Players:GetPlayers()) do
if string.find(player.Name:lower(), targetUsername:lower(), 1, true) then
targetPlayer = player
break
end
end
if targetPlayer then
repeat
killPlayer(targetPlayer)
wait(1) -- Adjust the delay as needed
until targetPlayer.Character and targetPlayer.Character:FindFirstChild("Humanoid") and targetPlayer.Character.Humanoid.Health <= 0
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local equippedTool = character:FindFirstChildOfClass("Tool")
if equippedTool then
equippedTool.Parent = player.Backpack
wait()
end
GUI:Notification{
Title = "Alert",
Text = "Killed " .. targetPlayer.Name .. "!",
Duration = 3,
Callback = function() end
}
else
GUI:Notification{
Title = "Alert",
Text = "No player matching the provided username found.",
Duration = 3,
Callback = function() end
}
end
else
GUI:Notification{
Title = "Alert",
Text = "Please enter a valid username in the text box.",
Duration = 3,
Callback = function() end
}
end
end)
AddCommand("goto", {"to"}, "teleports yourself to the other character", {3, "1"}, function(Caller, Args)
local Target = GetPlayer(Args[1]);
local Delay = tonumber(Args[2]);
for i, v in next, Target do
if (Delay) then
wait(Delay);
end
if (Caller ~= LocalPlayer) then
ExecuteCommand("bring", {Caller.Name, v.Name}, LocalPlayer)
else
GetRoot().CFrame = GetRoot(v).CFrame * CFrameNew(-5, 0, 0);
end
end
end)
AddCommand("loopgoto", {"loopto"}, "loop teleports yourself to the other character", {3, "1"}, function(Caller, Args, CEnv)
local Target = GetPlayer(Args[1])[1]
local Connection = CConnect(Heartbeat, function()
GetRoot().CFrame = GetRoot(Target).CFrame * CFrameNew(0, 0, 2);
end)
CEnv[Target.Name] = Connection
AddPlayerConnection(LocalPlayer, Connection);
AddConnection(Connection);
GUI:Notification{
Title = "Alert",
Text = "Now looping to" .. Target.name .. ".",
Duration = 3,
Callback = function() end
}
end)
AddCommand("unloopgoto", {"unloopto"}, "removes loop teleportation to the other character", {}, function(Caller)
local Looping = LoadCommand("loopgoto").CmdEnv;
if (not next(Looping)) then
GUI:Notification{
Title = "Alert",
Text = "You aren't loop teleporting to anyone.",
Duration = 3,
Callback = function() end
}
end
DisableAllCmdConnections("loopgoto");
GUI:Notification{
Title = "Alert",
Text = "Loopgoto disabled.",
Duration = 3,
Callback = function() end
}
end)
AddCommand("freecamgoto", {"fcgoto"}, "takes your freecam to t hem", {"1"}, function(Caller, Args)
local Target = GetPlayer(Args[1]);
local Delay = tonumber(Args[2]);
for i, v in next, Target do
if (Delay) then
wait(Delay);
end
Camera.CFrame = GetRoot(v).CFrame * CFrameNew(0, 10, 10);
end
end)
AddCommand("inviscam", {"inviscamera"}, "makes you see through walls more better", {}, function(Caller, Args, CEnv)
CEnv.OldCameraMaxZoomDistance = LocalPlayer.CameraMaxZoomDistance
CEnv.OldDevCameraOcclusionMode = LocalPlayer.DevCameraOcclusionMode
LocalPlayer.CameraMaxZoomDistance = 600
LocalPlayer.DevCameraOcclusionMode = "Invisicam"
GUI:Notification{
Title = "Alert",
Text = "Inviscam enabled.",
Duration = 3,
Callback = function() end
}
end)
AddCommand("uninviscam", {"uninviscamera"}, "disables inviscam", {}, function()
local CmdEnv = LoadCommand("inviscam").CmdEnv
LocalPlayer.CameraMaxZoomDistance = CmdEnv.OldCameraMaxZoomDistance
LocalPlayer.DevCameraOcclusionMode = CmdEnv.OldDevCameraOcclusionMode
GUI:Notification{
Title = "Alert",
Text = "Inviscam disabled.",
Duration = 3,
Callback = function() end
}
end)
AddCommand("loop", {"loopcommand"}, "loops a command", {"1"}, function(Caller, Args, CEnv)
local Command = Args[1]
local LoadedCommand = LoadCommand(Command);
if (not LoadedCommand) then
return format("command %s not found", Command);
end
Args = shift(Args);
CEnv.Looping = true
CEnv.LoopedCommands = CEnv.LoopedCommands or {}
CEnv.LoopedCommands[Command] = true
CThread(function()
while (CEnv.Looping and CEnv.LoopedCommands[Command]) do
ExecuteCommand(Command, Args, Caller);
wait(tonumber(Args[#Args]) or 1);
end
end)();
return format("now looping the %s command", Command);
end)
AddCommand("unloop", {"unloopcommand"}, "unloops a command", {}, function(Caller, Args)
local Looped = LoadCommand("loop").CmdEnv
if (Args[1]) then
if (Looped.LoopedCommands[Args[1]]) then
Looped.LoopedCommands[Args[1]] = nil
return format("unlooped command %s", Args[1]);
end
GUI:Notification{
Title = "Alert",
Text = "Command isn't looped.",
Duration = 3,
Callback = function() end
}
else
Looped.Looping = false
GUI:Notification{
Title = "Alert",
Text = "Unlooped all commands that were looped.",
Duration = 3,
Callback = function() end
}
end
end)
task.spawn(function()
local chatted = function(plr, raw)
local message = raw
if (_L.ChatLogsEnabled) then
local time = os.date("%X");
local Text = format("%s - [%s]: %s", time, plr.Name, raw);
local Clone = Clone(ChatLogMessage);
Clone.Text = Text
Clone.Visible = true
Clone.TextTransparency = 1
Clone.Parent = ChatLogs.Frame.List
Utils.Tween(Clone, "Sine", "Out", .25, {
TextTransparency = 0
})
ChatLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, ChatLogs.Frame.List.UIListLayout.AbsoluteContentSize.Y);
end
if (startsWith(raw, "/e")) then
raw = sub(raw, 4);
elseif (startsWith(raw, "/w")) then
raw = shift(shift(split(message, " ")));
elseif (startsWith(raw, Prefix)) then
raw = sub(raw, #Prefix + 1);
else
return
end
message = trim(raw);
if (Tfind(AdminUsers, plr) or plr == LocalPlayer) then
local CommandArgs = split(message, " ");
local Command = CommandArgs[1]
local Args = shift(CommandArgs);
ExecuteCommand(Command, Args, plr);
end
end
CConnect(LocalPlayer.Chatted, function(raw)
chatted(LocalPlayer, raw);
end);
if (Services.TextChatService.ChatVersion == Enum.ChatVersion.TextChatService) then
Services.TextChatService.OnIncomingMessage = function(message)
chatted(Services.Players:FindFirstChild(message.TextSource.Name), message.Text);
end
return;
end
local DefaultChatSystemChatEvents = Services.ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents");
if (not DefaultChatSystemChatEvents) then return; end
local OnMessageDoneFiltering = DefaultChatSystemChatEvents:WaitForChild("OnMessageDoneFiltering", 5);
if (not OnMessageDoneFiltering) then return; end
if (typeof(OnMessageDoneFiltering) ~= "Instance" or OnMessageDoneFiltering.ClassName ~= "RemoteEvent") then return; end
CConnect(OnMessageDoneFiltering.OnClientEvent, function(messageData)
if (type(messageData) ~= "table") then return; end
local plr = Services.Players:FindFirstChild(messageData.FromSpeaker);
local raw = messageData.Message
if (not plr or not raw or plr == LocalPlayer) then return; end
if (messageData.OriginalChannel == "Team") then
raw = "/team " .. raw
else
local whisper = string.match(messageData.OriginalChannel, "To (.+)");
if (whisper) then
raw = string.format("/w %s %s", whisper, raw);
end
end
chatted(plr, raw);
end);
end);
--IMPORT [uimore]
Notification.Visible = false
Utils.SetAllTrans(CommandBar);
Utils.SetAllTrans(ChatLogs);
Utils.SetAllTrans(GlobalChatLogs);
Utils.SetAllTrans(HttpLogs);
Utils.SetAllTrans(Console);
Commands.Visible = false
ChatLogs.Visible = false
Console.Visible = false
GlobalChatLogs.Visible = false
HttpLogs.Visible = false
Utils.Draggable(Commands);
Utils.Draggable(ChatLogs);
Utils.Draggable(Console);
Utils.Draggable(GlobalChatLogs);
Utils.Draggable(HttpLogs);
Utils.Draggable(ConfigUI);
ParentGui(UI);
Connections.UI = {}
local Times = #LastCommand
AddConnection(CConnect(Services.UserInputService.InputBegan, function(Input, GameProccesed)
if (Input.KeyCode == CommandBarPrefix and (not GameProccesed)) then
CommandBarOpen = not CommandBarOpen
local TransparencyTween = CommandBarOpen and Utils.TweenAllTransToObject or Utils.TweenAllTrans
local Tween = TransparencyTween(CommandBar, .5, CommandBarTransparencyClone);
local UserInputService = Services.UserInputService
if (CommandBarOpen) then
if (not Draggable) then
Utils.Tween(CommandBar, "Quint", "Out", .5, {
Position = UDim2.new(0.5, WideBar and -200 or -100, 1, -110)
})
end
CommandBar.Input.CaptureFocus(CommandBar.Input);
CThread(function()
wait()
CommandBar.Input.Text = ""
FocusedTextBox = UserInputService.GetFocusedTextBox(UserInputService);
local TextBox = CommandBar.Input
while (FocusedTextBox ~= TextBox) do
FocusedTextBox.ReleaseFocus(FocusedTextBox);
CommandBar.Input.CaptureFocus(TextBox);
FocusedTextBox = UserInputService.GetFocusedTextBox(UserInputService);
CWait(Heartbeat);
end
end)()
else
if (not Draggable) then
Utils.Tween(CommandBar, "Quint", "Out", .5, {
Position = UDim2.new(0.5, WideBar and -200 or -100, 1, 5)
})
end
end
elseif (not GameProccesed and ChooseNewPrefix) then
CommandBarPrefix = Input.KeyCode
Utils.Notify(LocalPlayer, "New Prefix", "Your new prefix is: " .. split(tostring(Input.KeyCode), ".")[3]);
ChooseNewPrefix = false
if (writefile) then
Utils.Notify(LocalPlayer, nil, "use command saveprefix to save your prefix");
end
elseif (GameProccesed and CommandBarOpen) then
if (Input.KeyCode == Enum.KeyCode.Up) then
Times = Times >= 3 and Times or Times + 1
CommandBar.Input.Text = LastCommand[Times][1] .. " "
CommandBar.Input.CursorPosition = #CommandBar.Input.Text + 2
end
if (Input.KeyCode == Enum.KeyCode.Down) then
Times = Times <= 1 and 1 or Times - 1
CommandBar.Input.Text = LastCommand[Times][1] .. " "
CommandBar.Input.CursorPosition = #CommandBar.Input.Text + 2
end
end
end), Connections.UI, true);
Utils.Click(Commands.Close, "TextColor3")
Utils.Click(ChatLogs.Clear, "BackgroundColor3")
Utils.Click(ChatLogs.Save, "BackgroundColor3")
Utils.Click(ChatLogs.Toggle, "BackgroundColor3")
Utils.Click(ChatLogs.Close, "TextColor3")
Utils.Click(Console.Clear, "BackgroundColor3");
Utils.Click(Console.Save, "BackgroundColor3");
Utils.Click(Console.Close, "TextColor3");
Utils.Click(GlobalChatLogs.Clear, "BackgroundColor3")
Utils.Click(GlobalChatLogs.Save, "BackgroundColor3")
Utils.Click(GlobalChatLogs.Toggle, "BackgroundColor3")
Utils.Click(GlobalChatLogs.Close, "TextColor3")
Utils.Click(HttpLogs.Clear, "BackgroundColor3")
Utils.Click(HttpLogs.Save, "BackgroundColor3")
Utils.Click(HttpLogs.Toggle, "BackgroundColor3")
Utils.Click(HttpLogs.Close, "TextColor3")
AddConnection(CConnect(Commands.Close.MouseButton1Click, function()
local Tween = Utils.TweenAllTrans(Commands, .25)
CWait(Tween.Completed);
Commands.Visible = false
end), Connections.UI, true);
AddConnection(CConnect(GetPropertyChangedSignal(Commands.Search, "Text"), function()
local Text = Commands.Search.Text
local Children = GetChildren(Commands.Frame.List);
for i = 1, #Children do
local v = Children[i]
if (IsA(v, "Frame")) then
local Command = v.CommandText.Text
v.Visible = Sfind(lower(Command), Text, 1, true)
end
end
Commands.Frame.List.CanvasSize = UDim2.fromOffset(0, Commands.Frame.List.UIListLayout.AbsoluteContentSize.Y)
end), Connections.UI, true);
AddConnection(CConnect(ChatLogs.Close.MouseButton1Click, function()
local Tween = Utils.TweenAllTrans(ChatLogs, .25)
CWait(Tween.Completed);
ChatLogs.Visible = false
end), Connections.UI, true);
AddConnection(CConnect(GlobalChatLogs.Close.MouseButton1Click, function()
local Tween = Utils.TweenAllTrans(GlobalChatLogs, .25)
CWait(Tween.Completed);
GlobalChatLogs.Visible = false
end), Connections.UI, true);
AddConnection(CConnect(HttpLogs.Close.MouseButton1Click, function()
local Tween = Utils.TweenAllTrans(HttpLogs, .25)
CWait(Tween.Completed);
HttpLogs.Visible = false
end), Connections.UI, true);
AddConnection(CConnect(Console.Close.MouseButton1Click, function()
local Tween = Utils.TweenAllTrans(Console, .25)
CWait(Tween.Completed);
Console.Visible = false
end), Connections.UI, true);
ChatLogs.Toggle.Text = _L.ChatLogsEnabled and "Enabled" or "Disabled"
GlobalChatLogs.Toggle.Text = _L.ChatLogsEnabled and "Enabled" or "Disabled"
HttpLogs.Toggle.Text = _L.HttpLogsEnabled and "Enabled" or "Disabled"
AddConnection(CConnect(ChatLogs.Toggle.MouseButton1Click, function()
_L.ChatLogsEnabled = not _L.ChatLogsEnabled
ChatLogs.Toggle.Text = _L.ChatLogsEnabled and "Enabled" or "Disabled"
end), Connections.UI, true);
AddConnection(CConnect(GlobalChatLogs.Toggle.MouseButton1Click, function()
_L.GlobalChatLogsEnabled = not _L.GlobalChatLogsEnabled
GlobalChatLogs.Toggle.Text = _L.GlobalChatLogsEnabled and "Enabled" or "Disabled"
end), Connections.UI, true);
AddConnection(CConnect(HttpLogs.Toggle.MouseButton1Click, function()
_L.HttpLogsEnabled = not _L.HttpLogsEnabled
HttpLogs.Toggle.Text = _L.HttpLogsEnabled and "Enabled" or "Disabled"
end), Connections.UI, true);
AddConnection(CConnect(ChatLogs.Clear.MouseButton1Click, function()
Utils.ClearAllObjects(ChatLogs.Frame.List)
ChatLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, 0)
end), Connections.UI, true);
AddConnection(CConnect(GlobalChatLogs.Clear.MouseButton1Click, function()
Utils.ClearAllObjects(GlobalChatLogs.Frame.List)
GlobalChatLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, 0)
end), Connections.UI, true);
AddConnection(CConnect(HttpLogs.Clear.MouseButton1Click, function()
Utils.ClearAllObjects(HttpLogs.Frame.List)
HttpLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, 0)
end), Connections.UI, true);
AddConnection(CConnect(Console.Clear.MouseButton1Click, function()
Utils.ClearAllObjects(Console.Frame.List);
Console.Frame.List.CanvasSize = UDim2.fromOffset(0, 0);
end), Connections.UI, true);
do
local ShowWarns, ShowErrors, ShowOutput = true, true, true
AddConnection(CConnect(Console.Warns.MouseButton1Click, function()
ShowWarns = not ShowWarns
local Children = GetChildren(Console.Frame.List);
for i = 1, #Children do
local v = Children[i]
if (not IsA(v, "UIListLayout") and sub(v.Name, 1, 1) == "W") then
v.Visible = ShowWarns
end
end
Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
Console.Warns.Text = ShowWarns and "Hide Warns" or "Show Warns"
end), Connections.UI, true);
AddConnection(CConnect(Console.Errors.MouseButton1Click, function()
ShowErrors = not ShowErrors
local Children = GetChildren(Console.Frame.List);
for i = 1, #Children do
local v = Children[i]
if (not IsA(v, "UIListLayout") and sub(v.Name, 1, 1) == "E") then
v.Visible = ShowErrors
end
end
Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
Console.Errors.Text = ShowErrors and "Hide Errors" or "Show Errors"
end), Connections.UI, true);
AddConnection(CConnect(Console.Output.MouseButton1Click, function()
ShowOutput = not ShowOutput
local Children = GetChildren(Console.Frame.List);
for i = 1, #Children do
local v = Children[i]
if (not IsA(v, "UIListLayout") and sub(v.Name, 1, 1) == "P") then
v.Visible = ShowOutput
end
end
Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y);
Console.Output.Text = ShowOutput and "Hide Output" or "Show Output"
end), Connections.UI, true);
end
AddConnection(CConnect(GetPropertyChangedSignal(ChatLogs.Search, "Text"), function()
local Text = ChatLogs.Search.Text
local Children = GetChildren(ChatLogs.Frame.List);
for i = 1, #Children do
local v = Children[i]
if (not IsA(v, "UIListLayout")) then
local Message = v.Text
v.Visible = Sfind(lower(Message), Text, 1, true);
end
end
ChatLogs.Frame.List.CanvasSize = UDim2.fromOffset(0, ChatLogs.Frame.List.UIListLayout.AbsoluteContentSize.Y);
end), Connections.UI, true);
AddConnection(CConnect(GetPropertyChangedSignal(GlobalChatLogs.Search, "Text"), function()
local Text = GlobalChatLogs.Search.Text
local Children = GetChildren(GlobalChatLogs.Frame.List);
for i = 1, #Children do
local v = Children[i]
if (not IsA(v, "UIListLayout")) then
local Message = v.Text
v.Visible = Sfind(lower(Message), Text, 1, true)
end
end
end), Connections.UI, true);
AddConnection(CConnect(GetPropertyChangedSignal(HttpLogs.Search, "Text"), function()
local Text = HttpLogs.Search.Text
local Children = GetChildren(HttpLogs.Frame.List);
for i = 1, #Children do
local v = Children[i]
if (not IsA(v, "UIListLayout")) then
local Message = v.Text
v.Visible = Sfind(lower(Message), Text, 1, true)
end
end
end), Connections.UI, true);
AddConnection(CConnect(GetPropertyChangedSignal(Console.Search, "Text"), function()
local Text = Console.Search.Text
local Children = GetChildren(Console.Frame.List);
for i = 1, #Children do
local v = Children[i]
if (not IsA(v, "UIListLayout")) then
local Message = v.Text
v.Visible = Sfind(lower(Message), Text, 1, true)
end
end
Console.Frame.List.CanvasSize = UDim2.fromOffset(0, Console.Frame.List.UIListLayout.AbsoluteContentSize.Y)
end), Connections.UI, true);
-- auto correct
AddConnection(CConnect(GetPropertyChangedSignal(CommandBar.Input, "Text"), function() -- make it so that every space a players name will appear
CommandBar.Input.Text = CommandBar.Input.Text
local Text = CommandBar.Input.Text
local Prediction = CommandBar.Input.Predict
local PredictionText = Prediction.Text
local Args = split(Text, " ")
Prediction.Text = ""
if (Text == "") then
return
end
local FoundCommand = false
local FoundAlias = false
CommandArgs = CommandArgs or {}
if (not CommandsTable[Args[1]]) then
for _, v in next, CommandsTable do
local CommandName = v.Name
local Aliases = v.Aliases
local FoundAlias
if (Utils.MatchSearch(Args[1], CommandName)) then -- better search
Prediction.Text = CommandName
CommandArgs = v.Args or {}
break
end
for _, v2 in next, Aliases do
if (Utils.MatchSearch(Args[1], v2)) then
FoundAlias = true
Prediction.Text = v2
CommandArgs = v2.Args or {}
break
end
if (FoundAlias) then
break
end
end
end
end
for i, v in next, Args do -- make it get more players after i space out
if (i > 1 and v ~= "") then
local Predict = ""
if (#CommandArgs >= 1) then
for i2, v2 in next, CommandArgs do
if (lower(v2) == "player") then
Predict = Utils.GetPlayerArgs(v) or Predict;
else
Predict = Utils.MatchSearch(v, v2) and v2 or Predict
end
end
else
Predict = Utils.GetPlayerArgs(v) or Predict;
end
Prediction.Text = sub(Text, 1, #Text - #Args[#Args]) .. Predict
local split = split(v, ",");
if (next(split)) then
for i2, v2 in next, split do
if (i2 > 1 and v2 ~= "") then
local PlayerName = Utils.GetPlayerArgs(v2)
Prediction.Text = sub(Text, 1, #Text - #split[#split]) .. (PlayerName or "")
end
end
end
end
end
if (Sfind(Text, "\t")) then -- remove tab from preditction text also
CommandBar.Input.Text = PredictionText
CommandBar.Input.CursorPosition = #CommandBar.Input.Text + 1
end
end))
do
local Enabled = false
local Connection;
local Predict;
ToggleChatPrediction = function()
if (_L.Frame2) then
return
end
if (not Enabled) then
local RobloxChat = LocalPlayer.PlayerGui and FindFirstChild(LocalPlayer.PlayerGui, "Chat");
local RobloxChatBarFrame;
if (RobloxChat) then
local RobloxChatFrame = FindFirstChild(RobloxChat, "Frame");
if (RobloxChatFrame) then
RobloxChatBarFrame = FindFirstChild(RobloxChatFrame, "ChatBarParentFrame");
end
end
local PredictionClone, ChatBar
if (RobloxChatBarFrame) then
local Frame1 = FindFirstChild(RobloxChatBarFrame, 'Frame');
if Frame1 then
local BoxFrame = FindFirstChild(Frame1, 'BoxFrame');
if BoxFrame then
_L.Frame2 = FindFirstChild(BoxFrame, 'Frame');
if _L.Frame2 then
local TextLabel = FindFirstChild(_L.Frame2, 'TextLabel');
ChatBar = FindFirstChild(_L.Frame2, 'ChatBar');
if TextLabel and ChatBar then
PredictionClone = InstanceNew('TextLabel');
PredictionClone.Font = TextLabel.Font
PredictionClone.LineHeight = TextLabel.LineHeight
PredictionClone.MaxVisibleGraphemes = TextLabel.MaxVisibleGraphemes
PredictionClone.RichText = TextLabel.RichText
PredictionClone.Text = ''
PredictionClone.TextColor3 = TextLabel.TextColor3
PredictionClone.TextScaled = TextLabel.TextScaled
PredictionClone.TextSize = TextLabel.TextSize
PredictionClone.TextStrokeColor3 = TextLabel.TextStrokeColor3
PredictionClone.TextStrokeTransparency = TextLabel.TextStrokeTransparency
PredictionClone.TextTransparency = 0.3
PredictionClone.TextTruncate = TextLabel.TextTruncate
PredictionClone.TextWrapped = TextLabel.TextWrapped
PredictionClone.TextXAlignment = TextLabel.TextXAlignment
PredictionClone.TextYAlignment = TextLabel.TextYAlignment
PredictionClone.Name = "Predict"
PredictionClone.Size = UDim2.new(1, 0, 1, 0);
PredictionClone.BackgroundTransparency = 1
end
end
end
end
end
ParentGui(PredictionClone, _L.Frame2);
Predict = PredictionClone
Connection = AddConnection(CConnect(GetPropertyChangedSignal(ChatBar, "Text"), function() -- todo: add detection for /e
local Text = ChatBar.Text
local Prediction = PredictionClone
local PredictionText = PredictionClone.Text
local Args = split(concat(shift(split(Text, ""))), " ");
Prediction.Text = ""
if (not startsWith(Text, Prefix)) then
return
end
local FoundCommand = false
local FoundAlias = false
CommandArgs = CommandArgs or {}
if (not rawget(CommandsTable, Args[1])) then
for _, v in next, CommandsTable do
local CommandName = v.Name
local Aliases = v.Aliases
local FoundAlias
if (Utils.MatchSearch(Args[1], CommandName)) then -- better search
Prediction.Text = Prefix .. CommandName
FoundCommand = true
CommandArgs = v.Args or {}
break
end
for _, v2 in next, Aliases do
if (Utils.MatchSearch(Args[1], v2)) then
FoundAlias = true
Prediction.Text = v2
CommandArgs = v.Args or {}
break
end
if (FoundAlias) then
break
end
end
end
end
for i, v in next, Args do -- make it get more players after i space out
if (i > 1 and v ~= "") then
local Predict = ""
if (#CommandArgs >= 1) then
for i2, v2 in next, CommandArgs do
if (lower(v2) == "player") then
Predict = Utils.GetPlayerArgs(v) or Predict;
else
Predict = Utils.MatchSearch(v, v2) and v2 or Predict
end
end
else
Predict = Utils.GetPlayerArgs(v) or Predict;
end
Prediction.Text = sub(Text, 1, #Text - #Args[#Args]) .. Predict
local split = split(v, ",");
if (next(split)) then
for i2, v2 in next, split do
if (i2 > 1 and v2 ~= "") then
local PlayerName = Utils.GetPlayerArgs(v2)
Prediction.Text = sub(Text, 1, #Text - #split[#split]) .. (PlayerName or "")
end
end
end
end
end
if (Sfind(Text, "\t")) then -- remove tab from preditction text also
ChatBar.Text = PredictionText
ChatBar.CursorPosition = #ChatBar.Text + 2
end
end))
Enabled = true
return ChatBar
else
Disconnect(Connection);
Destroy(Predict);
Enabled = false
end
return _L.Frame2
end
if (CurrentConfig.ChatPrediction) then
delay(2, ToggleChatPrediction);
end
end
local ConfigUILib = {}
do
local GuiObjects = ConfigElements
local PageCount = 0
local SelectedPage
local UserInputService = Services.UserInputService
local Colors = {
ToggleEnabled = Color3.fromRGB(5, 5, 6);
Background = Color3.fromRGB(68, 124, 170);
ToggleDisabled = Color3.fromRGB(68, 124, 170);
}
local ColorElements = ConfigElements.Elements.ColorElements
local Overlay = ColorElements.Overlay
local OverlayMain = Overlay.Main
local ColorPicker = OverlayMain.ColorPicker
local Settings = OverlayMain.Settings
local ClosePicker = OverlayMain.Close
local ColorCanvas = ColorPicker.ColorCanvas
local ColorSlider = ColorPicker.ColorSlider
local ColorGradient = ColorCanvas.ColorGradient
local DarkGradient = ColorGradient.DarkGradient
local CanvasBar = ColorGradient.Bar
local RainbowGradient = ColorSlider.RainbowGradient
local SliderBar = RainbowGradient.Bar
local CanvasHitbox = ColorCanvas.Hitbox
local SliderHitbox = ColorSlider.Hitbox
local ColorPreview = Settings.ColorPreview
local ColorOptions = Settings.Options
local RedTextBox = ColorOptions.Red.TextBox
local BlueTextBox = ColorOptions.Blue.TextBox
local GreenTextBox = ColorOptions.Green.TextBox
local RainbowToggle = ColorOptions.Rainbow
local function UpdateClone()
ConfigUIClone = Clone(ConfigUI);
end
function ConfigUILib.NewPage(Title)
local Page = Clone(GuiObjects.Page.Container);
local TextButton = Clone(GuiObjects.Page.TextButton);
Page.Visible = true
TextButton.Visible = true
Utils.Click(TextButton, "BackgroundColor3")
if PageCount == 0 then
SelectedPage = Page
end
AddConnection(CConnect(TextButton.MouseButton1Click, function()
if SelectedPage.Name ~= TextButton.Name then
SelectedPage = Page
ConfigUI.Container.UIPageLayout:JumpTo(SelectedPage)
end
end))
Page.Name = Title
TextButton.Name = Title
TextButton.Text = Title
Page.Parent = ConfigUI.Container
TextButton.Parent = ConfigUI.Selection
PageCount = PageCount + 1
UpdateClone()
local function GetKeyName(KeyCode)
local _, Stringed = pcall(UserInputService.GetStringForKeyCode, UserInputService, KeyCode);
local IsEnum = Stringed == ""
return (not IsEnum and _) and Stringed or split(tostring(KeyCode), ".")[3], (IsEnum and not _);
end
local PageLibrary = {}
function PageLibrary.CreateMacroSection(MacrosToAdd, Callback)
local Macro = Clone(GuiObjects.Elements.Macro);
local MacroPage = Macro.MacroPage
local Selection = Page.Selection
Selection.ClearAllChildren(Selection);
for i,v in next, GetChildren(MacroPage) do
v.Parent = Selection
end
Selection.Container.Visible = true
local CommandsList = Selection.Container.Commands.Frame.List
local CurrentMacros = Selection.Container.CurrentMacros
local AddMacro = Selection.AddMacro
local BindA, CommandA, ArgsA = AddMacro.Bind, AddMacro.Command, AddMacro["z Args"]
local Add = AddMacro.AddMacro
local Keybind = {};
local Enabled = false
local Connection
local OnClick = function()
Enabled = not Enabled
if Enabled then
BindA.Text = "..."
local OldShiftLock = LocalPlayer.DevEnableMouseLock
LocalPlayer.DevEnableMouseLock = false
Keybind = {}
Connection = AddConnection(CConnect(UserInputService.InputBegan, function(Input, Processed)
if not Processed and Input.UserInputType == Enum.UserInputType.Keyboard then
local Input2, Proccessed2;
CThread(function()
Input2, Proccessed2 = CWait(UserInputService.InputBegan);
end)()
CWait(UserInputService.InputEnded);
if (Input2 and not Processed) then
local KeyName, IsEnum = GetKeyName(Input.KeyCode);
local KeyName2, IsEnum2 = GetKeyName(Input2.KeyCode);
BindA.Text = format("%s + %s", IsEnum2 and KeyName2 or KeyName, IsEnum2 and KeyName2 or KeyName2);
Keybind[1] = Input.KeyCode
Keybind[2] = Input2.KeyCode
else
local KeyName = GetKeyName(Input.KeyCode);
BindA.Text = KeyName
Keybind[1] = Input.KeyCode
Keybind[2] = nil
end
LocalPlayer.DevEnableMouseLock = OldShiftLock
else
BindA.Text = "Bind"
end
Enabled = false
Disconnect(Connection);
end));
else
BindA.Text = "Bind"
Disconnect(Connection);
end
end
AddConnection(CConnect(BindA.MouseButton1Click, OnClick));
AddConnection(CConnect(Add.MouseButton1Click, function()
if (BindA.Text == "Bind") then
Utils.Notify(nil, nil, "You must assign a keybind");
return
end
if (not CommandsTable[CommandA.Text]) then
Utils.Notify(nil, nil, "You must add a command");
return
end
Callback(Keybind, CommandA.Text, ArgsA.Text);
end));
local Focused = false
local MacroSection = {
CommandsList = CommandsList,
AddCmd = function(Name)
local Command = Clone(Macro.Command);
Command.Name = Name
Command.Text = Name
Command.Parent = CommandsList
Command.Visible = true
AddConnection(CConnect(Command.MouseButton1Click, function()
CommandA.Text = Name
ArgsA.CaptureFocus(ArgsA);
Focused = true
CWait(ArgsA.FocusLost);
CWait(UserInputService.InputBegan);
Focused = false
wait(.2);
if (not Focused) then
OnClick();
end
end))
end,
AddMacro = function(MacroName, Bind)
local NewMacro = Clone(Macro.EditMacro);
NewMacro.Bind.Text = Bind
NewMacro.Macro.Text = MacroName
NewMacro.Parent = CurrentMacros
NewMacro.Visible = true
Utils.Thing(NewMacro.Bind);
Utils.Thing(NewMacro.Macro);
FindFirstChild(NewMacro, "Remove").Name = "Delete"
AddConnection(CConnect(NewMacro.Delete.MouseButton1Click, function()
CWait(Utils.TweenAllTrans(NewMacro, .25).Completed);
Destroy(NewMacro);
for i = 1, #Macros do
if (Macros[i].Command == split(MacroName, " ")[1]) then
Macros[i] = nil
end
end
local TempMacros = clone(Macros);
for i, v in next, TempMacros do
for i2, v2 in next, v.Keys do
TempMacros[i]["Keys"][i2] = split(tostring(v2), ".")[3]
end
end
SetConfig({Macros=TempMacros});
end))
end
}
for i, v in next, MacrosToAdd do
local Suc, Err = pcall(concat, v.Args, " ");
if (not Suc) then
SetConfig({Macros={}});
Utils.Notify(LocalPlayer, "Error", "Macros were reset due to corrupted data")
break;
end
local KeyName, IsEnum = GetKeyName(v.Keys[1]);
local Formatted;
if (v.Keys[2]) then
local KeyName2, IsEnum2 = GetKeyName(v.Keys[2]);
Formatted = format("%s + %s", IsEnum2 and KeyName2 or KeyName, IsEnum2 and KeyName2 or KeyName2);
else
Formatted = KeyName
end
MacroSection.AddMacro(v.Command .. " " .. concat(v.Args, " "), Formatted);
end
return MacroSection
end
function PageLibrary.NewSection(Title)
local Section = Clone(GuiObjects.Section.Container);
local SectionOptions = Section.Options
local SectionUIListLayout = SectionOptions.UIListLayout
Section.Visible = true
Utils.SmoothScroll(Section.Options, .14)
Section.Title.Text = Title
Section.Parent = Page.Selection
SectionOptions.CanvasSize = UDim2.fromOffset(0,0) --// change
AddConnection(CConnect(GetPropertyChangedSignal(SectionUIListLayout, "AbsoluteContentSize"), function()
SectionOptions.CanvasSize = UDim2.fromOffset(0, SectionUIListLayout.AbsoluteContentSize.Y + 5);
end));
UpdateClone();
local ElementLibrary = {}
function ElementLibrary.Toggle(Title, Enabled, Callback)
local Toggle = Clone(GuiObjects.Elements.Toggle);
local Container = Toggle.Container
local Switch = Container.Switch
local Hitbox = Container.Hitbox
if not Enabled then
Switch.Position = UDim2.fromOffset(2, 2)
Container.BackgroundColor3 = Colors.ToggleDisabled
end
local NoCallback = false
local OnClick = function()
Enabled = not Enabled
Utils.Tween(Switch, "Quad", "Out", .25, {
Position = Enabled and UDim2.new(1, -18, 0, 2) or UDim2.fromOffset(2, 2)
})
Utils.Tween(Container, "Quad", "Out", .25, {
BackgroundColor3 = Enabled and Colors.ToggleEnabled or Colors.ToggleDisabled
})
if (not NoCallback) then
Callback(Enabled);
end
end
AddConnection(CConnect(Hitbox.MouseButton1Click, OnClick));
Toggle.Visible = true
Toggle.Title.Text = Title
Toggle.Parent = Section.Options
Utils.Thing(Toggle.Title);
UpdateClone()
return function()
NoCallback = true
OnClick();
NoCallback = false
end
end
function ElementLibrary.ScrollingFrame(Title, Callback, Elements, Toggles)
local ScrollingFrame = Clone(GuiObjects.Elements.ScrollingFrame);
local Frame = ScrollingFrame.Frame
local Toggle = ScrollingFrame.Toggle
for ElementTitle, Enabled in next, Elements do
local NewToggle = Clone(Toggle);
NewToggle.Visible = true
NewToggle.Title.Text = ElementTitle
NewToggle.Plugins.Text = Enabled and (Toggles and Toggles[1] or "Enabled") or (Toggles and Toggles[2] or "Disabled");
Utils.Click(NewToggle.Plugins, "BackgroundColor3")
AddConnection(CConnect(NewToggle.Plugins.MouseButton1Click, function()
Enabled = not Enabled
NewToggle.Plugins.Text = Enabled and (Toggles and Toggles[1] or "Enabled") or (Toggles and Toggles[2] or "Disabled");
Callback(ElementTitle, Enabled);
end));
NewToggle.Parent = Frame.Container
end
Frame.Visible = true
Frame.Title.Text = Title
Frame.Parent = Section.Options
for _, NewToggle in next, GetChildren(Frame.Container) do
if (IsA(NewToggle, "GuiObject")) then
Utils.Thing(NewToggle.Title);
end
end
UpdateClone()
end
function ElementLibrary.Keybind(Title, Bind, Callback)
local Keybind = Clone(GuiObjects.Elements.Keybind);
local Enabled = false
local Connection
Keybind.Container.Text = Bind
Keybind.Title.Text = Title
local Container = Keybind.Container
AddConnection(CConnect(Container.MouseButton1Click, function()
Enabled = not Enabled
if Enabled then
Container.Text = "..."
local OldShiftLock = LocalPlayer.DevEnableMouseLock
-- disable shift lock so it doesn't interfere with keybind
LocalPlayer.DevEnableMouseLock = false
Connection = AddConnection(CConnect(UserInputService.InputBegan, function(Input, Processed)
if not Processed and Input.UserInputType == Enum.UserInputType.Keyboard then
local Input2, Proccessed2;
CThread(function()
Input2, Proccessed2 = CWait(UserInputService.InputBegan);
end)()
CWait(UserInputService.InputEnded);
if (Input2 and not Processed) then
local KeyName, IsEnum = GetKeyName(Input.KeyCode);
local KeyName2, IsEnum2 = GetKeyName(Input2.KeyCode);
-- Order by if it's an enum first, example 'Shift + K' and not 'K + Shift'
Container.Text = format("%s + %s", IsEnum2 and KeyName2 or KeyName, IsEnum2 and KeyName2 or KeyName2);
Callback(Input.KeyCode, Input2.KeyCode);
else
local KeyName = GetKeyName(Input.KeyCode);
Container.Text = KeyName
Callback(Input.KeyCode);
end
LocalPlayer.DevEnableMouseLock = OldShiftLock
else
Container.Text = "press"
end
Enabled = false
Disconnect(Connection);
end));
else
Container.Text = "press"
Disconnect(Connection);
end
end));
Utils.Click(Container, "BackgroundColor3");
Keybind.Visible = true
Keybind.Parent = Section.Options
UpdateClone();
end
function ElementLibrary.TextboxKeybind(Title, Bind, Callback)
local Keybind = Clone(GuiObjects.Elements.TextboxKeybind);
Keybind.Container.Text = Bind
Keybind.Title.Text = Title
local Container = Keybind.Container
AddConnection(CConnect(GetPropertyChangedSignal(Container, "Text"), function(Key)
if (#Container.Text >= 1) then
Container.Text = sub(Container.Text, 1, 1);
Callback(Container.Text);
Container.ReleaseFocus(Container);
end
end))
Keybind.Visible = true
Keybind.Parent = Section.Options
UpdateClone();
end
function ElementLibrary.ColorPicker(Title, DefaultColor, Callback)
local SelectColor = Clone(ColorElements.SelectColor);
local CurrentColor = DefaultColor
local Button = SelectColor.Button
local ToHSV = DefaultColor.ToHSV
local Color3New = Color3.new
local Color3fromHSV = Color3.fromHSV
local UDim2New = UDim2.new
local clamp = math.clamp
local H, S, V = ToHSV(DefaultColor);
local Opened = false
local Rainbow = false
local function UpdateText()
RedTextBox.PlaceholderText = tostring(math.floor(CurrentColor.R * 255))
GreenTextBox.PlaceholderText = tostring(math.floor(CurrentColor.G * 255))
BlueTextBox.PlaceholderText = tostring(math.floor(CurrentColor.B * 255))
end
local function UpdateColor()
H, S, V = ToHSV(CurrentColor);
SliderBar.Position = UDim2New(0, 0, H, 2);
CanvasBar.Position = UDim2New(S, 2, 1 - V, 2);
ColorGradient.UIGradient.Color = Utils.MakeGradient({
[1] = Color3New(1, 1, 1);
[2] = Color3fromHSV(H, 1, 1);
})
ColorPreview.BackgroundColor3 = CurrentColor
UpdateText();
end
local function UpdateHue(Hue)
SliderBar.Position = UDim2New(0, 0, Hue, 2);
ColorGradient.UIGradient.Color = Utils.MakeGradient({
[1] = Color3New(1, 1, 1);
[2] = Color3fromHSV(Hue, 1, 1);
});
ColorPreview.BackgroundColor3 = CurrentColor
UpdateText();
end
local function ColorSliderInit()
local Moving = false
local function Update()
if Opened and not Rainbow then
local LowerBound = SliderHitbox.AbsoluteSize.Y
local Position = clamp(Mouse.Y - SliderHitbox.AbsolutePosition.Y, 0, LowerBound);
local Value = Position / LowerBound
H = Value
CurrentColor = Color3fromHSV(H, S, V);
ColorPreview.BackgroundColor3 = CurrentColor
ColorGradient.UIGradient.Color = Utils.MakeGradient({
[1] = Color3New(1, 1, 1);
[2] = Color3fromHSV(H, 1, 1);
});
UpdateText();
local Position = UDim2.new(0, 0, Value, 2)
local Tween = Utils.Tween(SliderBar, "Linear", "Out", .05, {
Position = Position
});
Callback(CurrentColor);
CWait(Tween.Completed);
end
end
AddConnection(CConnect(SliderHitbox.MouseButton1Down, function()
Moving = true
Update()
end))
AddConnection(CConnect(UserInputService.InputEnded, function(Input)
if Input.UserInputType == Enum.UserInputType.MouseButton1 and Moving then
Moving = false
end
end))
AddConnection(CConnect(Mouse.Move, Utils.Debounce(function()
if Moving then
Update()
end
end)))
end
local function ColorCanvasInit()
local Moving = false
local function Update()
if Opened then
local LowerBound = CanvasHitbox.AbsoluteSize.Y
local YPosition = clamp(Mouse.Y - CanvasHitbox.AbsolutePosition.Y, 0, LowerBound)
local YValue = YPosition / LowerBound
local RightBound = CanvasHitbox.AbsoluteSize.X
local XPosition = clamp(Mouse.X - CanvasHitbox.AbsolutePosition.X, 0, RightBound)
local XValue = XPosition / RightBound
S = XValue
V = 1 - YValue
CurrentColor = Color3fromHSV(H, S, V);
ColorPreview.BackgroundColor3 = CurrentColor
UpdateText()
local Position = UDim2New(XValue, 2, YValue, 2);
local Tween = Utils.Tween(CanvasBar, "Linear", "Out", .05, {
Position = Position
});
Callback(CurrentColor);
CWait(Tween.Completed);
end
end
AddConnection(CConnect(CanvasHitbox.MouseButton1Down, function()
Moving = true
Update()
end))
AddConnection(CConnect(UserInputService.InputEnded, function(Input)
if Input.UserInputType == Enum.UserInputType.MouseButton1 and Moving then
Moving = false
end
end))
AddConnection(CConnect(Mouse.Move, Utils.Debounce(function()
if Moving then
Update()
end
end)))
end
ColorSliderInit()
ColorCanvasInit()
AddConnection(CConnect(Button.MouseButton1Click, function()
if not Opened then
Opened = true
UpdateColor()
RainbowToggle.Container.Switch.Position = Rainbow and UDim2New(1, -18, 0, 2) or UDim2.fromOffset(2, 2)
RainbowToggle.Container.BackgroundColor3 = Color3.fromRGB(25, 25, 25);
Overlay.Visible = true
OverlayMain.Visible = false
Utils.Intro(OverlayMain)
end
end))
AddConnection(CConnect(ClosePicker.MouseButton1Click, Utils.Debounce(function()
Button.BackgroundColor3 = CurrentColor
Utils.Intro(OverlayMain)
Overlay.Visible = false
Opened = false
end)))
AddConnection(CConnect(RedTextBox.FocusLost, function()
if Opened then
local Number = tonumber(RedTextBox.Text)
if Number then
Number = clamp(floor(Number), 0, 255)
CurrentColor = Color3New(Number / 255, CurrentColor.G, CurrentColor.B)
UpdateColor()
RedTextBox.PlaceholderText = tostring(Number)
Callback(CurrentColor)
end
RedTextBox.Text = ""
end
end))
AddConnection(CConnect(GreenTextBox.FocusLost, function()
if Opened then
local Number = tonumber(GreenTextBox.Text)
if Number then
Number = clamp(floor(Number), 0, 255)
CurrentColor = Color3New(CurrentColor.R, Number / 255, CurrentColor.B)
UpdateColor()
GreenTextBox.PlaceholderText = tostring(Number)
Callback(CurrentColor)
end
GreenTextBox.Text = ""
end
end))
AddConnection(CConnect(BlueTextBox.FocusLost, function()
if Opened then
local Number = tonumber(BlueTextBox.Text)
if Number then
Number = clamp(floor(Number), 0, 255)
CurrentColor = Color3New(CurrentColor.R, CurrentColor.G, Number / 255)
UpdateColor()
BlueTextBox.PlaceholderText = tostring(Number)
Callback(CurrentColor)
end
BlueTextBox.Text = ""
end
end))
Utils.ToggleFunction(RainbowToggle.Container, false, function(Callback)
if Opened then
Rainbow = Callback
end
end)
AddConnection(CConnect(RenderStepped, function()
if Rainbow then
local Hue = (tick() / 5) % 1
CurrentColor = Color3.fromHSV(Hue, S, V)
if Opened then
UpdateHue(Hue)
end
Button.BackgroundColor3 = CurrentColor
Callback(CurrentColor, true);
end
end))
Button.BackgroundColor3 = DefaultColor
SelectColor.Title.Text = Title
SelectColor.Visible = true
SelectColor.Parent = Section.Options
Utils.Thing(SelectColor.Title);
end
return ElementLibrary
end
return PageLibrary
end
end
Utils.Click(ConfigUI.Close, "TextColor3")
AddConnection(CConnect(ConfigUI.Close.MouseButton1Click, function()
ConfigLoaded = false
CWait(Utils.TweenAllTrans(ConfigUI, .25).Completed);
ConfigUI.Visible = false
end))
--END IMPORT [uimore]
--IMPORT [plugin]
PluginConf = IsSupportedExploit and GetPluginConfig();
local Plugins;
PluginLibrary = {
LocalPlayer = LocalPlayer,
Services = Services,
GetCharacter = GetCharacter,
ProtectInstance = ProtectInstance,
SpoofInstance = SpoofInstance,
SpoofProperty = SpoofProperty,
UnSpoofInstance = UnSpoofInstance,
ReplaceCharacter = ReplaceCharacter,
ReplaceHumanoid = ReplaceHumanoid,
GetCorrectToolWithHandle = GetCorrectToolWithHandle,
DisableAnimate = DisableAnimate,
GetPlayer = GetPlayer,
GetHumanoid = GetHumanoid,
GetRoot = GetRoot,
GetMagnitude = GetMagnitude,
GetCommandEnv = function(Name)
local Command = LoadCommand(Name);
if (Command.CmdEnv) then
return Command.CmdEnv
end
end,
isR6 = isR6,
ExecuteCommand = ExecuteCommand,
Notify = Utils.Notify,
HasTool = HasTool,
isSat = isSat,
Request = syn and syn.request or request or game.HttpGet,
CThread = CThread,
AddConnection = AddConnection,
filter = filter,
map = map,
clone = clone,
firetouchinterest = firetouchinterest,
fireproximityprompt = fireproximityprompt,
decompile = decompile,
getnilinstances = getnilinstances,
getinstances = getinstances,
Drawing = Drawing
}
do
local IsDebug = IsSupportedExploit and PluginConf.PluginDebug
Plugins = IsSupportedExploit and map(filter(listfiles("Rogue-admin/plugins"), function(i, v)
return lower(split(v, ".")[#split(v, ".")]) == "lua"
end), function(i, v)
local splitted = split(v, "\\");
return {splitted[#splitted], loadfile(v)}
end) or {}
if (SafePlugins) then
local Renv = clone(getrenv(), true);
for i, v in next, Renv do
PluginLibrary[i] = v
end
end
PluginLibrary.debug = nil
PluginLibrary.getfenv = nil
PluginLibrary.loadstring = loadstring
if (PluginConf.SafePlugins) then
local Funcs = {}
for i, v in next, PluginLibrary do
if (type(v) == 'function') then
Funcs[#Funcs + 1] = v
end
end
local RogueEnv = getfenv(1);
PluginLibrary.getfenv = newcclosure(function(...)
local f = ({...})[1]
local Env = getfenv(...);
if (type(f) == 'function' and Tfind(Funcs, f) or Env == RogueEnv and checkcaller()) then
return PluginLibrary
end
return Env
end)
end
if (PluginConf.PluginsEnabled) then
local LoadPlugin = function(Plugin)
if (not IsSupportedExploit) then
return
end
if (Plugin and PluginConf.DisabledPlugins[Plugin.Name]) then
Utils.Notify(LocalPlayer, "Plugin not loaded.", format("Plugin %s was not loaded as it is on the disabled list.", Plugin.Name));
GUI:Notification{
Title = "Alert",
Text = "Disabled.",
Duration = 3,
Callback = function() end
}
end
if (#keys(Plugin) < 3) then
return Utils.Notify(LocalPlayer, "Plugin Fail", "One of your plugins is missing information.");
end
if (IsDebug) then
Utils.Notify(LocalPlayer, "Plugin loading", format("Plugin %s is being loaded.", Plugin.Name));
end
local Context;
local sett, gett = setthreadidentity, getthreadidentity
if (sett and PluginConf.SafePlugins) then
Context = gett();
sett(5);
end
local Ran, Return = pcall(Plugin.Init);
if (sett and Context) then
sett(Context);
end
if (not Ran and Return and IsDebug) then
return Utils.Notify(LocalPlayer, "Plugin Fail", format("there is an error in plugin Init %s: %s", Plugin.Name, Return));
end
for i, command in next, Plugin.Commands or {} do -- adding the "or" because some people might have outdated plugins in the dir
if (#keys(command) < 3) then
Utils.Notify(LocalPlayer, "Plugin Command Fail", format("Command %s is missing information", command.Name));
continue
end
AddCommand(command.Name, command.Aliases or {}, command.Description .. " - " .. Plugin.Author, command.Requirements or {}, command.Func, true);
if (FindFirstChild(Commands.Frame.List, command.Name)) then
Destroy(FindFirstChild(Commands.Frame.List, command.Name));
end
local Clone = Clone(Command);
Utils.Hover(Clone, "BackgroundColor3");
Utils.ToolTip(Clone, format("%s\n%s - %s", command.Name, command.Description, Plugin.Author));
Clone.CommandText.RichText = true
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}));
Clone.Name = command.Name
Clone.Visible = true
Clone.Parent = Commands.Frame.List
if (IsDebug) then
Utils.Notify(LocalPlayer, "Plugin Command Loaded", format("Command %s loaded successfully", command.Name));
end
end
end
if (IsSupportedExploit) then
if (not isfolder("Rogue-admin") and not isfolder("Rogue-admin/plugins") and not isfolder("Rogue-admin/plugin-conf.json") or not isfolder("Rogue-admin/chatlogs")) then
WriteConfig();
end
end
for i, Plugin in next, Plugins do
local PluginFunc = Plugin[2]
if (PluginConf.SafePlugins) then
setfenv(PluginFunc, PluginLibrary);
else
local CurrentEnv = getfenv(PluginFunc);
for i2, v2 in next, PluginLibrary do
CurrentEnv[i2] = v2
end
end
local Success, Ret = pcall(PluginFunc);
if (Success) then
LoadPlugin(Ret);
elseif (PluginConf.PluginDebug) then
Utils.Notify(LocalPlayer, "Fail", "There was an error Loading plugin (console for more information)");
warn("[FA Plugin Error]: " .. debug.traceback(Ret));
end
end
end
end
--END IMPORT [plugin]
WideBar = false
Draggable = false
--IMPORT [config]
do
local UserInputService = Services.UserInputService
local GetStringForKeyCode = UserInputService.GetStringForKeyCode
local function GetKeyName(KeyCode)
local _, Stringed = pcall(GetStringForKeyCode, UserInputService, KeyCode);
local IsEnum = Stringed == ""
return (not IsEnum and _) and Stringed or split(tostring(KeyCode), ".")[3], (IsEnum and not _);
end
local SortKeys = function(Key1, Key2)
local KeyName, IsEnum = GetKeyName(Key1);
if (Key2) then
local KeyName2, IsEnum2 = GetKeyName(Key2);
return format("%s + %s", IsEnum2 and KeyName2 or KeyName, IsEnum2 and KeyName2 or KeyName2);
end
return KeyName
end
LoadConfig = function()
local Script = ConfigUILib.NewPage("Script");
local Settings = Script.NewSection("Settings");
local CurrentConf = GetConfig();
Settings.TextboxKeybind("Chat Prefix", Prefix, function(Key)
if (not match(Key, "%A") or match(Key, "%d") or #Key > 1) then
Utils.Notify(nil, "Prefix", "Prefix must be a 1 character symbol.");
return
end
Prefix = Key
Utils.Notify(nil, "Prefix", "Prefix is now " .. Key);
end)
Settings.Keybind("CMDBar Prefix", GetKeyName(CommandBarPrefix), function(KeyCode1, KeyCode2)
CommandBarPrefix = KeyCode1
Utils.Notify(nil, "Prefix", "CommandBar Prefix is now " .. GetKeyName(KeyCode1));
end)
local ToggleSave;
ToggleSave = Settings.Toggle("Save Prefix's", false, function(Callback)
SetConfig({["Prefix"]=Prefix,["CommandBarPrefix"]=split(tostring(CommandBarPrefix), ".")[3]});
wait(.5);
ToggleSave();
Utils.Notify(nil, "Prefix", "saved prefix's");
end)
local Misc = Script.NewSection("Misc");
Misc.Toggle("Chat Prediction", CurrentConf.ChatPrediction or false, function(Callback)
local ChatBar = ToggleChatPrediction();
if (Callback) then
ChatBar.CaptureFocus(ChatBar);
wait();
ChatBar.Text = Prefix
end
SetConfig({ChatPrediction=Callback});
Utils.Notify(nil, nil, format("ChatPrediction %s", Callback and "enabled" or "disabled"));
end)
Misc.Toggle("Anti Kick", Hooks.AntiKick, function(Callback)
Hooks.AntiKick = Callback
Utils.Notify(nil, nil, format("AntiKick %s", Hooks.AntiKick and "enabled" or "disabled"));
end)
Misc.Toggle("Anti Teleport", Hooks.AntiTeleport, function(Callback)
Hooks.AntiTeleport = Callback
Utils.Notify(nil, nil, format("AntiTeleport %s", Hooks.AntiTeleport and "enabled" or "disabled"));
end)
Misc.Toggle("wide cmdbar", WideBar, function(Callback)
WideBar = Callback
if (not Draggable) then
Utils.Tween(CommandBar, "Quint", "Out", .5, {
Position = UDim2.new(0.5, WideBar and -200 or -100, 1, 5) -- tween -110
})
end
Utils.Tween(CommandBar, "Quint", "Out", .5, {
Size = UDim2.new(0, WideBar and 400 or 200, 0, 35) -- tween -110
})
SetConfig({WideBar=Callback});
Utils.Notify(nil, nil, format("widebar %s", WideBar and "enabled" or "disabled"));
end)
Misc.Toggle("draggable cmdbar", Draggable, function(Callback)
Draggable = Callback
CommandBarOpen = true
Utils.Tween(CommandBar, "Quint", "Out", .5, {
Position = UDim2.new(0, Mouse.X, 0, Mouse.Y + 36);
})
Utils.Draggable(CommandBar);
local TransparencyTween = CommandBarOpen and Utils.TweenAllTransToObject or Utils.TweenAllTrans
local Tween = TransparencyTween(CommandBar, .5, CommandBarTransparencyClone);
CommandBar.Input.Text = ""
if (not Callback) then
Utils.Tween(CommandBar, "Quint", "Out", .5, {
Position = UDim2.new(0.5, WideBar and -200 or -100, 1, 5) -- tween 5
})
end
Utils.Notify(nil, nil, format("draggable command bar %s", Draggable and "enabled" or "disabled"));
end)
Misc.Toggle("KillCam when killing", CurrentConf.KillCam, function(Callback)
SetConfig({KillCam=Callback});
_L.KillCam = Callback
end)
local OldFireTouchInterest = firetouchinterest
Misc.Toggle("cframe touchinterest", firetouchinterest == nil, function(Callback)
firetouchinterest = Callback and function(part1, part2, toggle)
if (part1 and part2) then
if (toggle == 0) then
touched[1] = part1.CFrame
part1.CFrame = part2.CFrame
else
part1.CFrame = touched[1]
touched[1] = nil
end
end
end or OldFireTouchInterest
end)
local MacrosPage = ConfigUILib.NewPage("Macros");
local MacroSection;
MacroSection = MacrosPage.CreateMacroSection(Macros, function(Bind, Command, Args)
local AlreadyAdded = false
for i = 1, #Macros do
if (Macros[i].Command == Command) then
AlreadyAdded = true
end
end
if (CommandsTable[Command] and not AlreadyAdded) then
MacroSection.AddMacro(Command .. " " .. Args, SortKeys(Bind[1], Bind[2]));
Args = split(Args, " ");
if (sub(Command, 1, 2) == "un" or CommandsTable["un" .. Command]) then
local Shifted = {Command, unpack(Args)}
Macros[#Macros + 1] = {
Command = "toggle",
Args = Shifted,
Keys = Bind
}
else
Macros[#Macros + 1] = {
Command = Command,
Args = Args,
Keys = Bind
}
end
local TempMacros = clone(Macros);
for i, v in next, TempMacros do
for i2, v2 in next, v.Keys do
TempMacros[i]["Keys"][i2] = split(tostring(v2), ".")[3]
end
end
SetConfig({Macros=TempMacros});
end
end)
local UIListLayout = MacroSection.CommandsList.UIListLayout
for i, v in next, CommandsTable do
if (not FindFirstChild(MacroSection.CommandsList, v.Name)) then
MacroSection.AddCmd(v.Name);
end
end
MacroSection.CommandsList.CanvasSize = UDim2.fromOffset(0, UIListLayout.AbsoluteContentSize.Y);
local Search = FindFirstChild(MacroSection.CommandsList.Parent.Parent, "Search");
AddConnection(CConnect(GetPropertyChangedSignal(Search, "Text"), function()
local Text = Search.Text
for _, v in next, GetChildren(MacroSection.CommandsList) do
if (IsA(v, "TextButton")) then
local Command = v.Text
v.Visible = Sfind(lower(Command), Text, 1, true)
end
end
MacroSection.CommandsList.CanvasSize = UDim2.fromOffset(0, UIListLayout.AbsoluteContentSize.Y);
end), Connections.UI, true);
local PluginsPage = ConfigUILib.NewPage("Plugins");
local CurrentPlugins = PluginsPage.NewSection("Current Plugins");
local PluginSettings = PluginsPage.NewSection("Plugin Settings");
local CurrentPluginConf = GetPluginConfig();
CurrentPlugins.ScrollingFrame("plugins", function(Option, Enabled)
CurrentPluginConf = GetPluginConfig();
for i = 1, #Plugins do
local Plugin = Plugins[i]
if (Plugin[1] == Option) then
local DisabledPlugins = CurrentPluginConf.DisabledPlugins
local PluginName = Plugin[2]().Name
if (Enabled) then
DisabledPlugins[PluginName] = nil
SetPluginConfig({DisabledPlugins=DisabledPlugins});
Utils.Notify(nil, "Plugin Enabled", format("plugin %s successfully enabled", PluginName));
else
DisabledPlugins[PluginName] = true
SetPluginConfig({DisabledPlugins=DisabledPlugins});
Utils.Notify(nil, "Plugin Disabled", format("plugin %s successfully disabled", PluginName));
end
end
end
end, map(Plugins, function(Key, Plugin)
return not PluginConf.DisabledPlugins[Plugin[2]().Name], Plugin[1]
end));
PluginSettings.Toggle("Plugins Enabled", CurrentPluginConf.PluginsEnabled, function(Callback)
SetPluginConfig({PluginsEnabled = Callback});
end)
PluginSettings.Toggle("Plugins Debug", CurrentPluginConf.PluginDebug, function(Callback)
SetPluginConfig({PluginDebug = Callback});
end)
PluginSettings.Toggle("Safe Plugins", CurrentPluginConf.SafePlugins, function(Callback)
SetPluginConfig({SafePlugins = Callback});
end)
local Themes = ConfigUILib.NewPage("Themes");
local Color = Themes.NewSection("Colors");
local Options = Themes.NewSection("Options");
local RainbowEnabled = false
Color.ColorPicker("All Background", UITheme.Background.BackgroundColor, function(Callback, IsRainbow)
UITheme.Background.BackgroundColor = Callback
RainbowEnabled = IsRainbow
end)
Color.ColorPicker("CommandBar", UITheme.CommandBar.BackgroundColor, function(Callback)
if (not RainbowEnabled) then
UITheme.CommandBar.BackgroundColor = Callback
end
end)
Color.ColorPicker("Notification", UITheme.Notification.BackgroundColor, function(Callback)
if (not RainbowEnabled) then
UITheme.Notification.BackgroundColor = Callback
end
end)
Color.ColorPicker("ChatLogs", UITheme.ChatLogs.BackgroundColor, function(Callback)
if (not RainbowEnabled) then
UITheme.ChatLogs.BackgroundColor = Callback
end
end)
Color.ColorPicker("CommandList", UITheme.CommandList.BackgroundColor, function(Callback)
if (not RainbowEnabled) then
UITheme.CommandList.BackgroundColor = Callback
end
end)
Color.ColorPicker("Config", UITheme.Config.BackgroundColor, function(Callback)
if (not RainbowEnabled) then
UITheme.Config.BackgroundColor = Callback
end
end)
Color.ColorPicker("All Text", UITheme.Background.TextColor, function(Callback)
UITheme.Background.TextColor = Callback
end)
local ToggleSave;
ToggleSave = Options.Toggle("Save Theme", false, function(Callback)
WriteThemeConfig();
wait(.5);
ToggleSave();
Utils.Notify(nil, "Theme", "saved theme");
end)
local ToggleLoad;
ToggleLoad = Options.Toggle("Load Theme", false, function(Callback)
LoadTheme(GetThemeConfig());
wait(.5);
ToggleLoad();
Utils.Notify(nil, "Theme", "Loaded theme");
end)
local ToggleReset;
ToggleReset = Options.Toggle("Reset Theme", false, function(Callback)
UITheme.Background.BackgroundColor = "Reset"
UITheme.Notification.TextColor = "Reset"
UITheme.CommandBar.TextColor = "Reset"
UITheme.CommandList.TextColor = "Reset"
UITheme.ChatLogs.TextColor = "Reset"
UITheme.Config.TextColor = "Reset"
UITheme.Notification.Transparency = "Reset"
UITheme.CommandBar.Transparency = "Reset"
UITheme.CommandList.Transparency = "Reset"
UITheme.ChatLogs.Transparency = "Reset"
UITheme.Config.Transparency = "Reset"
wait(.5);
ToggleReset();
Utils.Notify(nil, "Theme", "reset theme");
end)
end
delay(1, function()
for i = 1, #Macros do
local Macro = Macros[i]
for i2 = 1, #Macro.Keys do
Macros[i].Keys[i2] = Enum.KeyCode[Macros[i].Keys[i2]]
end
end
if (CurrentConfig.WideBar) then
WideBar = true
Utils.Tween(CommandBar, "Quint", "Out", .5, {
Size = UDim2.new(0, WideBar and 400 or 200, 0, 35) -- tween -110
})
end
KillCam = CurrentConfig.KillCam
local Aliases = CurrentConfig.Aliases
if (Aliases) then
for i, v in next, Aliases do
if (CommandsTable[i]) then
for i2 = 1, #v do
local Alias = v[i2]
local Add = CommandsTable[i]
Add.Name = Alias
CommandsTable[Alias] = Add
end
end
end
end
end)
end
--END IMPORT [config]
AddConnection(CConnect(CommandBar.Input.FocusLost, function()
local Text = trim(CommandBar.Input.TextLoads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com, www.roblox.com, games.roblox.com.
ewfwefewfwe

Universal