Run it
Copy the script and paste it into your executor.
Players = :()
Player = Players.LocalPlayer
()
Settings_NoCrash =
isfile, writefile = isfile (...), writefile (...)
, , , = .spawn, .wait, ,
tinsert, tfind, tremove = .insert, .find, .remove
format, sub, rep, match = .format, .sub, .rep, .match
floor = .floor
Instance_new = .new
JSON = () () :()
() (writefile, , JSON)
JSON = :():(JSON)
Properties = {
GuiObject = {
, , ,
},
UIListLayout = {
, , , ,
},
UISizeConstraint = {
},
UIAspectRatioConstraint = {
, ,
},
UICorner = {
},
UIStroke = {
, , , , ,
}
};
Clone = {
Frame = ,
TextLabel = ,
TextButton = ,
TextBox = ,
ImageLabel = ,
ImageButton = ,
ScrollingFrame =
}
_, Class , JSON.Classes
Class.MemoryCategory ==
ClassName = Class.Name
Properties[ClassName] = Properties[ClassName] Properties[Clone[ClassName]] {};
_, Property , Class.Members
Tags = Property.Tags {}
Property.MemberType == (Tags, ) (Tags, ) (Tags, ) (Properties[ClassName], Property.Name)
(Properties[ClassName], Property.Name)
IdentifiersArray = {}
Identifiers = {};
()
Identifier = Identifiers[]
Identifier
Identifier
Identifier = .Name
dupeCount =
(IdentifiersArray, Identifier .. (dupeCount == .. dupeCount))
dupeCount +=
Identifier = Identifier .. (dupeCount == .. dupeCount)
(IdentifiersArray, Identifier)
Identifiers[] = Identifier
Identifier
(n)
i = ,
Number = (
.. (i) .. ,
n
)
(Number) == n i ==
((Number, )) ==
Number = (Number, )
Number
(Value)
(({
[] = ()
(, Value:(, ):(, ))
,
[] = ()
(, (Value.X), (Value.Y))
,
[] = ()
X, Y = Value.X, Value.Y
(, (X.Scale), (X.Offset), (Y.Scale), (Y.Offset))
,
[] = ()
(, (Value.Scale), (Value.Offset))
,
[] = ()
(, Value.R * , Value.G * , Value.B * )
,
[] = ()
(, (Value.Family), (Value.Weight), (Value.Style))
,
[] = ()
(, (Value.Uri))
,
[] = ()
Min, Max = Value.Min, Value.Max;
(, (Min.X), (Min.Y), (Max.X), (Max.Y))
,
[] = ()
Value ==
Value ==
Path = {};
P = Value
P P ~=
(Path, {=P,Index=#Path+})
P = P.Parent
.(Path, (a, b)
a.Index > b.Index
)
Result = (, (Path[].Instance.ClassName));
Path[] =
Path[] =
_, V , Path
Result = Result .. (, (V.Instance.Name))
Result = Result:( .. Player.Name .. , )
Result = Result:(, )
Result
})[(Value)] () (Value) )()
(I, P)
(()
I[P]
)
(Gui)
start = ()
Table =
Code = ;
bin = (, Table)
Defaults = {};
_, , {Gui, (Gui:())}
Settings_NoCrash
();
Class = .ClassName
bin = bin .. (, (), Class)
_, Property , (Properties[Class] {})
Default = Defaults[Class] (Class);
Success, Value = (, Property)
Success2, Value2 = (Default, Property)
Success Success2 Value ~= Value2
Formatted = (Value) == (, Table, ((Value))) (Value)
Code = Code .. (, Table, (), Property, Formatted)
Defaults[Class] = Default
Code = Code .. (, Table, (), , (.Name))
_ ==
Code = Code .. (, Table, (), , (Gui.Parent))
Code = Code .. (, Table, (), , Table, (.Parent))
Code = Code ..
bin = (bin, , -) ..
bin .. Code, () - start
StealGuiLoads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com.
Remade GuiStealer to be over 2.23x faster! Usage: local UI = --path/to/your/ui -- you can change local FileName = "GuiStealerTest.lua" -- you can change local StealGUI = loadstring(game:HttpGet("https://scriptblox.com/raw/Universal-Script-GuiStealer-12751/"))() -- you CANNOT change writefile(FileName, StealGui(UI)) Updates: v1.0.1: Added properties for ScrollingFrame, UIStroke, UI...