Run it
Copy the script and paste it into your executor.
(() )()
LPH_OBFUSCATED
dummy = (...) ...
LPH_NO_VIRTUALIZE = LPH_NO_VIRTUALIZE dummy
LPH_NO_UPVALUES = LPH_NO_UPVALUES dummy
LPH_OBFUSCATED = LPH_OBFUSCATED
LPH_JIT_MAX = LPH_JIT_MAX dummy
LPH_ENCFUNC = LPH_ENCFUNC dummy
LPH_ENCSTR = LPH_ENCSTR dummy
LPH_ENCNUM = LPH_ENCNUM dummy
LPH_CRASH = LPH_CRASH dummy
LPH_JIT = LPH_JIT dummy
framework, endpoints
endpoints = {
arceus_neo = (),
xploit = (),
scriptblox = (),
api = (),
rbxcdn = {
tr = (),
t1 = ()
}
}
endpoints.arceus_v =
(() (:())() )
axinclude, axerr = (()
(:())()
)
cloneref = cloneref (...) ...
run: RunService = (:())
run:()
.Once .Once =
framework = (:():():())
framework = (arceus.(:()))()
axinclude framework.protected:()
framework.console.( .. axerr)
spdminclude, spdmerr = (()
(framework.utils.http:())(framework)
)
spdminclude framework.protected:()
framework.console.( .. spdmerr)
EXPLOIT_CONFIGS, OS_CONFIGS
OS_CONFIGS = {
IS_IOS = (framework.env.arceus framework.env.arceus.is_ios ()
( framework.protected:()) framework.protected:():() == .Platform.IOS
)(),
IS_VNG = (framework.env.arceus framework.env.arceus.is_vng ()
)(),
DEVICE_INFO = framework.env.arceus framework.env.arceus.WOWPALAKSZMNXBRU ()
,
HWID = (framework.env.gethwid)()
}
OS_CONFIGS.HIDE_PREFIX = OS_CONFIGS.IS_IOS
EXPLOIT_CONFIGS = {
EXPLOIT_FULLNAME = (),
EXPLOIT_IDENTITY = (),
UI_VERSION = (),
API_CRYPT = (),
FILES_KEY = (),
CLOUD_SCRIPTS = OS_CONFIGS.HIDE_PREFIX.. (),
SETTINGS_FILE = OS_CONFIGS.HIDE_PREFIX.. (),
LICENSE_FILE = OS_CONFIGS.HIDE_PREFIX.. (),
VERSION_FILE = OS_CONFIGS.HIDE_PREFIX.. (),
PLUGINS_FILE = OS_CONFIGS.HIDE_PREFIX.. (),
TABS_FILE = (),
AUTH_FETCH_DELAY = ,
SETTINGS = {
Popups_Confirmation = ,
Popups_Toast = ,
Colors_Primary = .(, , ):(),
Colors_Secondary = .(, , ):(),
Colors_Text_Primary = .(, , ):(),
Colors_Text_Secondary = .(, , ):(),
FontSizes_Editor = ,
TextboxWrapper = ,
Anim_Quality = ,
Country_Code = ,
UI_WindowState = ,
User_AI_OpenAI = ,
User_Intro = ,
User_EMail = ,
Setting_Fps = ,
Settings_Afk = ,
Fonts_HeadingItalic = Font.(, .FontWeight.Medium, .FontStyle.Italic),
Fonts_Description = Font.(, .FontWeight.Light, .FontStyle.Normal),
Fonts_Editor = Font.(, .FontWeight.Regular, .FontStyle.Normal),
Fonts_Black = Font.(, .FontWeight.ExtraBold, .FontStyle.Normal),
Fonts_Heading = Font.(, .FontWeight.Medium, .FontStyle.Normal),
Fonts_Body = Font.(, .FontWeight.SemiBold, .FontStyle.Normal),
Fonts_Caption = Font.(, .FontWeight.Thin, .FontStyle.Italic),
Fonts_Title = Font.(, .FontWeight.Bold, .FontStyle.Normal)
}
}
framework.protected:(OS_CONFIGS)
framework.protected:(EXPLOIT_CONFIGS)
ARCEUS_FOLDERS
ARCEUS_FOLDERS = framework.protected:({
AUTOEXECUTE = framework.storage:((), ()),
SCRIPT_HUB = framework.storage:((), ()),
WORKSPACE = framework.storage:((), ()),
CONFIGS = framework.storage:((), ())
})
ARCEUS_FOLDERS.CACHE = ARCEUS_FOLDERS.WORKSPACE:((), OS_CONFIGS.HIDE_PREFIX.. ())
ARCEUS_FOLDERS.TABS = ARCEUS_FOLDERS.SCRIPT_HUB:((), ())
ARCEUS_FOLDERS.RAW = ARCEUS_FOLDERS.CONFIGS:((), ())
blocked = framework.protected:({ })
lower, match, err = framework.protected:(framework.utils.strings.lower),
framework.protected:(framework.utils.strings.match), framework.protected:()
writefile = framework.env.().writefile ()
framework.protected:(writefile)
writefile = framework.protected:(writefile)
wf = (path: , ...)
low = (path)
_, folder blocked
(low, ..folder)
(low, ..folder)
(low, ..folder)
(())
(path, ...)
framework.env.().writefile = wf
_, file (ARCEUS_FOLDERS.CACHE:())
framework.storage.(, file)
framework.protected:(ARCEUS_FOLDERS)
framework.enums:(, , , , , )
framework.enums:(, , , )
framework.enums:(, , , )
framework.enums:(, ,,,,,,,,,,,,,)
framework.enums:(, , , , , , )
framework.enums:(, , , )
framework.enums:(, , , )
framework.enums:(, , , )
framework.enums:(, , , )
framework.enums:(, , , )
framework.enums:(, , , )
framework.enums:(, , , )
framework.console:(EXPLOIT_CONFIGS.EXPLOIT_FULLNAME)
framework.protected:( framework.protected:())
framework.settings:(ARCEUS_FOLDERS.CONFIGS)
framework.settings:(EXPLOIT_CONFIGS.SETTINGS_FILE)
framework.settings:(EXPLOIT_CONFIGS.FILES_KEY)
framework.settings:(EXPLOIT_CONFIGS.SETTINGS)
.((()
framework.protected:()
httpService = framework.protected:()
jsonDecode = framework.env.(httpService.JSONDecode);
getScriptBytecode = framework.env.getscriptbytecode;
isA = framework.env.(.IsA);
data = {
compatiblity = {
binaryStrings = (, (framework.env.gethiddenproperty () .CauseMeAnError; , .Terrain, )) == ,
sharedStrings = (, (framework.env.gethiddenproperty () .CauseMeAnError; , .(), )) ==
},
xml = {
cframeComponents = { , , , , , , , , , , , },
customPhysicsComponents = { , , , , };
overwrites = {
EnumItem = ,
Rect =
},
pattern = ,
escapes = {
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] =
}
},
classes = {
overwrites = {
= ,
Class =
},
folders = {
[] = ,
[] = ,
[] = ,
[] =
}
}
};
(priority: {: any}, backup: {: any}): {: any}
(backup) ==
i, v priority
backupValue = backup[i];
(v) == (backupValue)
priority[i] = backupValue;
priority;
(modifier: (number) -> ()): {: any}
({
count = ,
cache = {}
}, {
__index = (t, k)
t.cache[k] ==
t.count += ;
t.cache[k] = (t.count);
t.cache[k];
});
(className: ): boolean
data.api[className] data.api[className].isService;
(scriptInstance: BaseScript): boolean
scriptInstance:()
;
scriptInstance:() (scriptInstance.RunContext == .RunContext.Client scriptInstance.RunContext == .RunContext.Legacy)
;
scriptInstance:() scriptInstance.RunContext == .RunContext.Client
;
;
(object: , name: , value: {: any}): (boolean, any)
success, grabbedValue;
value.isHidden
value.valueType == data.compatiblity.binaryStrings ==
;
value.valueType == data.compatiblity.sharedStrings ==
;
success, grabbedValue = (framework.env.gethiddenproperty, object, name);
success, grabbedValue = (()
object[name];
);
success, grabbedValue;
(...: {any}): number
value = ;
i, v {...}
v
value += ^ (i - );
value;
(value: ):
.(value, data.xml.pattern, data.xml.escapes);
(value: number, denominations: number):
value == value % ==
value;
value == .huge
;
value == -.huge
;
value ~= value
;
denominations ==
value;
.( .. denominations .. , value);
(api: {: any}, class: ): {: any}
_, v api.Classes
v.Name == class
v;
(): {: any}
latestVersion = ;
versionArray = .(:(, ), );
i = #versionArray, , -
versionData = .(versionArray[i], );
versionData[] ==
latestVersion = versionData[];
;
httpService:(:( .. latestVersion .. , ));
(api: {: any}, class: {: any}): {: any}
currentClass = class;
changes = ;
properties = {};
currentClass currentClass.Name ~=
_, v currentClass.Members
v.MemberType == v.Name ~= v.Serialization.CanLoad v.Serialization.CanSave
properties[v.Name] = {
valueType = data.classes.overwrites[v.ValueType.Category] v.ValueType.Name,
isHidden = v.Tags .(v.Tags, )
};
currentClass = (api, currentClass.Superclass);
changes += ;
properties;
(api: {: any}): {: any}
generatedClassData = {};
_, v api.Classes
classData = {
properties = (api, v),
defaults = {},
isService = v.Tags .(v.Tags, )
};
success, instance = (.new, v.Name);
success
i2, v2 classData.properties
success2, value = (instance, i2, v2);
success2
classData.defaults[i2] = value;
generatedClassData[v.Name] = classData;
generatedClassData;
saveinstanceModule = {};
saveinstanceModule.__index = saveinstanceModule;
saveinstanceModule.(options: {: any}): {: any}
metatable = ({
database = { },
options = options,
instances = ,
exclusions = {
:(),
:(),
:().StarterPlayerScripts:(),
:().StarterPlayerScripts:(),
:().StarterPlayerScripts:()
},
decompiled = {},
refHandler = ((count)
.. count;
),
sharedStringHandler = ((count)
framework.utils.crypt.base64.((count + ));
)
}, saveinstanceModule);
i, v metatable.exclusions
(v)
metatable.exclusions[i] = framework.env.(v);
metatable;
saveinstanceModule:(object: ): boolean
isScript = (object);
_, v self.exclusions
v == object
;
isScript (v) ==
s, r = (framework.env.getscripthash, object);
s r == v
;
object:()
;
;
saveinstanceModule:(name: ): Folder
folder = .();
folder.Name = name;
.(()
folder:();
);
folder;
saveinstanceModule:(object: , name: , value: {: any}): (boolean, any)
name == self.decompiled[object]
, self.decompiled[object];
(object, name, value);
saveinstanceModule:(value: any, valueType: , bypassSanitising: boolean):
valueType ==
.(, (value.X, value.Y, value.Z));
valueType ==
value == self:(framework.utils.crypt.base64.(value), );
valueType ==
value ;
valueType ==
value.Number;
valueType == valueType ==
ret = ;
_, v data.xml.cframeComponents
ret ..= .(, v, v);
.(ret, value:());
valueType ==
.(, value.R, value.G, value.B);
valueType ==
+ (.(value.R * ) * ) + (.(value.G * ) * ) + .(value.B * )
valueType ==
ret = {};
_, v value.Keypoints
ret[#ret + ] = .(, v.Time, v.Value.R, v.Value.G, v.Value.B);
.(ret, );
valueType == valueType ==
value ==
;
.(, (value));
valueType ==
value.UnixTimestampMillis;
valueType ==
(value, );
valueType ==
value.Value;
valueType ==
.(, (value.Right, value.Top, value.Back, value.Left, value.Bottom, value.Front));
valueType ==
(value, );
valueType ==
.(, self:(value.Family, ), value.Weight.Value, value.Style.Name);
valueType == valueType ==
(value);
valueType ==
.(, value.Min, value.Max);
valueType ==
ret = {};
_, v value.Keypoints
ret[#ret + ] = .(, v.Time, v.Value, v.Envelope);
.(ret, );
valueType ==
ret = .(, value );
value
_, v data.xml.customPhysicsComponents
ret ..= .(, v, value[v], v);
ret;
valueType ==
.(, bypassSanitising value (value));
valueType ==
.(, self:(value.Origin, ), self:(value.Direction, ));
valueType ==
.(, self:(value.Min, ), self:(value.Max, ));
valueType ==
value self.refHandler[value] ;
valueType ==
self.sharedStringHandler[framework.utils.crypt.base64.(value)];
valueType ==
(value);
valueType ==
.(, value.Scale, value.Offset);
valueType ==
.(, value.X.Scale, value.X.Offset, value.Y.Scale, value.Y.Offset);
valueType ==
;
valueType == valueType ==
.(, value.X, value.Y);
valueType == valueType ==
.(, value.X, value.Y, value.Z);
;
saveinstanceModule:(propertyName: , value: any, valueType: ):
xmlValue = self:(value, valueType, propertyName == );
newTag = data.xml.overwrites[valueType] valueType;
xmlString = .(, newTag, propertyName, xmlValue , newTag);
xmlValue
xmlString;
.. xmlString .. ;
saveinstanceModule:(object: , altChildren: {number: } | ):
self:(object)
;
className = data.classes.folders[object.ClassName] object.ClassName;
.(self.database, .(, className, self.refHandler[object]));
objectData = data.api[className];
objectData
.(self.database, );
i, v objectData.properties
success, grabbedValue = self:(object, i, v);
success (self.options.excludeDefaults == grabbedValue ~= objectData.defaults[i])
(grabbedValue) ~=
.(self.database, self:(i, grabbedValue, v.valueType));
.(self.database, );
self.instances += ;
_, v altChildren object:()
self:(v);
.(self.database, );
saveinstanceModule:()
self.sharedStringHandler.count >
.(self.database, );
i, v self.sharedStringHandler.cache
.(self.database, .(, v, i));
.(self.database, );
saveinstanceModule:(inst: | {number: }, cache: {number: } | ): {number: }
store = cache {};
i, v (inst) == inst inst:()
self:(v)
(v)
store[#store + ] = v;
self:(v, store);
store;
saveinstanceModule:()
scripts = self:();
self.options.includeNil
self:(framework.env.(), scripts);
framework.console.();
i, v framework.env.(scripts, )
self.decompiled[scripts[i]] = v;
saveinstanceModule:():
tick1 = ();
data.api ==
framework.console.();
data.api = (());
self.options.excludeScripts
framework.console.();
framework.console.();
self:();
framework.console.();
tick2 = ();
gameChildren = {};
_, v :()
(v.ClassName)
self:(v);
.(gameChildren, v);
self.options.includeNil
nilInstances = framework.env.();
self:(self:(), nilInstances);
#gameChildren >
self:(self:(), gameChildren);
self:();
.(self.database, );
tick3 = ();
ARCEUS_FOLDERS.WORKSPACE:(self.options.fileName .. , .(self.database, ));
endTick = ();
framework.console.( .. (.((tick2 - tick1) * )) .. .. (.((tick3 - tick2) * )) .. .. (.(((tick3 - tick2) / self.instances) * )) .. .. (.((endTick - tick3) * )) .. .. (.((endTick - tick1) * )) .. );
framework.env.().saveinstance = (options: {: any} | )
framework.console.()
saveinstanceModule.(({
fileName = (.PlaceId),
includeNil = ,
excludeScripts = ,
excludeDefaults =
}, options)):();
;
))
this, utils = {}, {}
this.utils = utils
LPH_OBFUSCATED
dummy = (...) ...
LPH_NO_VIRTUALIZE = LPH_NO_VIRTUALIZE dummy
LPH_NO_UPVALUES = LPH_NO_UPVALUES dummy
LPH_OBFUSCATED = LPH_OBFUSCATED
LPH_JIT_MAX = LPH_JIT_MAX dummy
LPH_ENCFUNC = LPH_ENCFUNC dummy
LPH_ENCSTR = LPH_ENCSTR dummy
LPH_ENCNUM = LPH_ENCNUM dummy
LPH_CRASH = LPH_CRASH dummy
LPH_JIT = LPH_JIT dummy
utils:(parent: ?)
self.ui:(, {
Size = .(, ),
Visible = ,
Parent = parent
})
utils:():
obj = self:()
coords = obj.instance.AbsolutePosition
obj:()
coords
utils:(parent: ?): number
obj = self:(parent)
viewportSize = obj.instance.AbsoluteSize
obj:()
width, height = viewportSize.X, viewportSize.Y
self.player_gui.CurrentScreenOrientation == .ScreenOrientation.Portrait
height / width width / height
utils:(): number
ui = self.framework.interface.()
ui.instance.ScreenInsets = .ScreenInsets.CoreUISafeInsets
ui.instance.IgnoreGuiInset =
ratio = self:(ui)
ui:()
ratio
utils:(): number
(utils.player_gui.CurrentScreenOrientation == .ScreenOrientation.Portrait
self.ui.instance.AbsoluteSize.X self.ui.instance.AbsoluteSize.Y) * /
utils:(quality: )
quality = quality utils.framework.settings:()
quality = utils.framework.enums.AnimQuality[quality]
({.(, ), .(, ), .(, )})[quality]
utils:(quality: , duration: )
quality = quality utils.framework.settings:()
quality = utils.framework.enums.AnimQuality[quality]
duration = duration
({ *duration, *duration, *duration})[quality]
utils:(id: , options: {any}, frameGen: (idx: number, frames: number) -> buffer, priority: number, ...: any)
quality = utils.framework.settings:()
res = options.Resolution
options.Resolution = res self:(quality)
options.Density = options.Density self:(quality, options.Duration)
raws = utils.framework.storage:()
content = options.raw
content raws:(id) utils.framework.protected:()
res = utils.framework.dependencies.exploit:()
res raws:(id, res)
content = res
anim = utils.framework.animator.(id, options, content raws:(id), frameGen)
anim.RenderOnLoad = options.RenderOnLoad
anim.Duration = options.Duration
anim.FixedResolution = res
_, tag (options.Tags {})
utils.animsTags[tag] = utils.animsTags[tag] {}
utils.framework.utils.tables.(utils.animsTags[tag], anim)
anim:()
anim.Loaded
raws:(id, anim:())
utils.framework.protected:()
fps = anim:();
(fps < utils.framework.console.warn utils.framework.console.print
)()
utils.framework.utils.tables.(utils.anims, anim)
anim
utils:(id: )
utils.framework.renderer:(id)
utils:(tag: )
utils.animsTags[tag] {}
utils:(texts: {})
value = utils.framework.enums.CountryCode[utils.framework.settings:()]
utils.framework.enums.CountryCode[utils.framework.settings:()]
texts[value]
utils:(framework, ui)
utils.framework = framework
utils.ui = ui
utils.anims = framework.protected:({})
utils.animsTags = framework.protected:({})
utils.player_gui = framework.protected:()
.LocalPlayer:()
arceus_layout, cache = {}, framework.protected:({})
framework.env.().arceus_layout = arceus_layout
framework.settings.OnSettingChanged:(framework.protected:(((setting: , value: any, default: any)
utils.framework.utils.strings.(setting, , ) ==
utils.framework.utils.strings.(setting, , ) ==
succ, err = (.fromHex, value)
value = succ err .(default)
_, inst (utils.ui:(setting))
props = inst[setting]
props
(props) ==
(value)
_, prop (props)
inst.instance[prop] = value
utils.framework.utils.strings.(setting, , ) ==
value = (value) default
_, inst (utils.ui:(setting))
inst.instance.TextSize = value
utils.framework.utils.strings.(setting, , ) ==
font = default
(value) ==
font = framework.utils.strings.(value)
_, inst (utils.ui:(setting))
inst.instance.FontFace = font
utils.framework.utils.strings.(setting, , ) ==
value = framework.utils.maths.(value, framework.enums.WindowState.Base, framework.enums.WindowState.Full)
_, inst (utils.ui:(setting))
props = inst[setting]
props
prop, values (props)
cache[inst] = cache[inst] {}
cache[inst][prop] = cache[inst][prop] inst.instance[prop]
inst.instance[prop] = values[value] cache[inst][prop]
setting ==
value = utils.framework.enums.CountryCode[value]
utils.framework.enums.CountryCode[default]
_, inst (utils.ui:(setting))
onCC = inst[]
onCC (value)
translations = inst[setting]
translations (translations[value] translations[])
inst.instance.Text = translations[value] translations[]
translations = inst[]
translations (translations[value] translations[])
inst.instance.PlaceholderText = translations[value] translations[]
arceus_layout[setting] = value
)))
utils:()
ui.OnInstanceAdded:(framework.protected:(((inst)
_, tag (inst:())
default = framework.settings:(tag)
value = framework.settings:(tag)
value default
utils.framework.utils.strings.(tag, , ) ==
props = inst[tag]
props
succ, err = (.fromHex, value)
value = succ err .(default)
(props) ==
(value)
_, prop (props)
inst.instance[prop] = value
utils.framework.utils.strings.(tag, , ) ==
value = (value) default
inst.instance.TextSize = value
utils.framework.utils.strings.(tag, , ) ==
font = default
(value) ==
font = framework.utils.strings.(value)
inst.instance.FontFace = font
utils.framework.utils.strings.(tag, , ) ==
props = inst[tag]
props
value = framework.utils.maths.(value, framework.enums.WindowState.Base, framework.enums.WindowState.Full)
prop, values (props)
cache[inst] = cache[inst] {}
cache[inst][prop] = cache[inst][prop] inst.instance[prop]
inst.instance[prop] = values[value] cache[inst][prop]
tag ==
translations = inst[tag]
value = utils.framework.enums.CountryCode[value]
utils.framework.enums.CountryCode[default]
translations (translations[value] translations[])
inst.instance.Text = translations[value] translations[]
translations = inst[]
translations (translations[value] translations[])
inst.instance.PlaceholderText = translations[value] translations[]
)))
playerGui = framework.protected:().LocalPlayer:()
debounce =
playerGui:():(framework.protected:(()
ui:().instance.Position = .(, )
ui.(framework.enums.WindowState.Base)
))
framework.settings:(()):(framework.protected:((value: )
emailBox = ui:(())
emailBox
emailBox.instance.Text = (value)
))
framework.settings:():(framework.protected:(((value: )
utils.animsInitialized
_, anim (utils.anims)
value = anim.FixedResolution value
anim:(utils:(value), utils:(value, anim.Duration))
anim:()
anim.RenderOnLoad anim:()
)))
ui.OnInstanceAdded:(framework.protected:(((inst)
inst.instance:()
inst.instance.MouseButton1Down:(()
utils:(.HapticEffectType.UIClick)
)
)))
uis = framework.protected:()
run = framework.protected:()
fakeFocus =
uis.TextBoxFocused:(((tb: TextBox)
custom = ui:(tb)
custom custom:()
overall = framework.settings:()
tb:(overall ui.instance.Parent ui.instance) tb.MultiLine
fakeFocus
fakeFocus =
editable = tb.TextEditable
run.Heartbeat:()
toast = utils:(, {
PlaceholderText = {,,,,,,,,,,,,,},
Style = utils.currentPage.id == ,
Callback = (txt: )
editable
fakeFocus =
run.Heartbeat:()
tb:()
tb.Text = framework.utils.strings.(txt, , )
run.Heartbeat:()
tb:()
})
toast.instance.ZIndex =
customTb = toast.tb.instance
txt = tb.Text
customTb.TextEditable = editable
customTb.Text = txt
customTb.CursorPosition = framework.utils.strings.(txt) +
))
haptic: HapticEffect = ui:(, {}).instance
utils:(: .HapticEffectType, duration: number?)
duration = (duration)
haptic.Type = .HapticEffectType.UINotification
haptic.Looped = duration
(haptic.Play, haptic)
duration
.(duration)
(haptic.Stop, haptic)
utils:(enabled: boolean, offset: number)
TweenService = :()
main = utils.ui:().instance
newState, targetPos
enabled
utils.prevSate = utils.ui.windowState
utils.prevPos = main.Position
newState = utils.framework.enums.WindowState.Base
newState = utils.prevSate utils.ui.windowState
targetPos = utils.prevPos main.Position
utils.ui.(newState)
tweenInfo = TweenInfo.(, .EasingStyle.Sine, .EasingDirection.Out)
tw = TweenService:(main, tweenInfo, { Position = targetPos })
tw:()
utils:(utils.ui:().instance, {
TweenInfo = TweenInfo.(, .EasingStyle.Back, .EasingDirection.Out),
DelayBetween = ,
SkipTransparency = ,
Direction = enabled
})
utils:(: number, duration: number, style: .EasingStyle, direction: .EasingDirection, rep: number, inv: boolean)
TweenInfo.(duration , style .EasingStyle.Quad, direction .EasingDirection.Out, rep , inv , )
utils:()
pop = utils.lastPopup
pop pop:()
utils.lastPopup =
utils:(class: , ...: any)
self:()
utils.lastPopup = utils.ui:(class, ...)
utils:(.HapticEffectType.UINotification)
utils:(class: , props: {any}, ...)
main = utils.ui:()
main:(utils:(), { GroupTransparency = })
toast, once
props.Close = (...: any)
once
once =
toast:()
main:(utils:(), { GroupTransparency = })
props.Callback props.(...)
toast = utils.ui:(class, props, ...)
utils.ui:()
utils.(utils.ui:().instance,{
DelayBetween = ,
TweenInfo = TweenInfo.(, .EasingStyle.Back, .EasingDirection.Out),
})
utils:(.HapticEffectType.UINotification)
toast
utils.AnimateCascade = ((self, frameParam, opts)
utils.ui.Loaded
TweenService = utils.framework.protected:()
opts = opts {}
rawOffset = opts.StartOffset opts.AnimateSelf .(, , , ) .(, , , )
tweenInfo = opts.TweenInfo TweenInfo.(, .EasingStyle.Back, .EasingDirection.Out)
delayBetween = opts.DelayBetween
globalLimit = opts.Limit
excludeNames = {}
opts.ExcludeNames
_, name (opts.ExcludeNames)
excludeNames[name] =
scaleDirection = opts.ScaleDirection
scaleCascade = (opts.ScaleCascade == )
startScaleOffset
(opts.StartScaleOffset) ==
startScaleOffset = utils.framework.utils.maths.(opts.StartScaleOffset, , utils.framework.utils.maths.huge)
startScaleOffset = (scaleDirection == )
skipTransparency = (opts.SkipTransparency == )
animateSelf = (opts.AnimateSelf == )
limitMap = opts.LimitMap {}
startOffset
animateSelf
vp = .CurrentCamera.ViewportSize
offsetX = rawOffset.X.Scale * vp.X + rawOffset.X.Offset
offsetY = rawOffset.Y.Scale * vp.Y + rawOffset.Y.Offset
startOffset = .(, utils.framework.utils.maths.(offsetX + ), , utils.framework.utils.maths.(offsetY + ))
startOffset = rawOffset
root = utils.framework.utils.instances.(frameParam)
root
activeTweens = {}
utils._cascadeOriginals = utils._cascadeOriginals {}
objs = {}
collect; collect = (parent)
_, child (parent:())
child:() child.Visible
inst = utils.ui:(child)
inst excludeNames[inst.id]
utils.framework.utils.tables.(objs, child)
(child)
(root)
animateSelf
utils.framework.utils.tables.(objs, , root)
_, child (objs)
utils._cascadeOriginals[child]
hasText, textVal = (() child.TextTransparency )
hasImage, imageVal = (() child.ImageTransparency )
utils._cascadeOriginals[child] = {
BackgroundTransparency = child.BackgroundTransparency,
ImageTransparency = hasImage imageVal ,
TextTransparency = hasText textVal ,
Position = child.Position,
Size = child.Size
}
_, child (objs)
orig = utils._cascadeOriginals[child]
skipTransparency
t0 = ((opts.StartTransparency) == )
utils.framework.utils.maths.(opts.StartTransparency, , )
child.BackgroundTransparency = t0
orig.TextTransparency
child.TextTransparency = t0
orig.ImageTransparency
child.ImageTransparency = t0
scaleCascade
osz = orig.Size
sStart = .(
osz.X.Scale * startScaleOffset,
osz.X.Offset * startScaleOffset,
osz.Y.Scale * startScaleOffset,
osz.Y.Offset * startScaleOffset
)
tweenerIn = TweenService:(child,
TweenInfo.(, .EasingStyle.Linear, .EasingDirection.Out), { Size = sStart })
tweenerIn:()
.(activeTweens, tweenerIn)
startPos = orig.Position + startOffset
tweenerIn = TweenService:(child,
TweenInfo.(, .EasingStyle.Linear, .EasingDirection.Out), { Position = startPos })
tweenerIn:()
.(activeTweens, tweenerIn)
.(()
.()
parentCounts = {}
i, child (objs)
orig = utils._cascadeOriginals[child]
parent = child.Parent
parent
parentCounts[parent] = (parentCounts[parent] ) +
perLim = limitMap[parent]
count = parentCounts[parent]
useIt
perLim
useIt = (count <= perLim)
useIt = ( globalLimit) (i <= globalLimit)
useIt
.(()
.((i - ) * delayBetween)
goal = {}
scaleCascade
goal.Size = orig.Size
goal.Position = orig.Position
skipTransparency
goal.BackgroundTransparency = orig.BackgroundTransparency
orig.TextTransparency
goal.TextTransparency = orig.TextTransparency
orig.ImageTransparency
goal.ImageTransparency = orig.ImageTransparency
tweenerOut = TweenService:(child, tweenInfo, goal)
tweenerOut:()
utils.framework.utils.tables.(activeTweens, tweenerOut)
)
scaleCascade
child.Size = orig.Size
child.Position = orig.Position
skipTransparency
child.BackgroundTransparency = orig.BackgroundTransparency
orig.TextTransparency
child.TextTransparency = orig.TextTransparency
orig.ImageTransparency
child.ImageTransparency = orig.ImageTransparency
.((#objs * delayBetween) + tweenInfo.Time)
_, t (activeTweens)
(() t:() )
)
)
utils.AddSlimeEffect = ((self, frameWrapper: {any}, targetWrappers: {any}, options: {any})
UserInputService: UserInputService = utils.framework.protected:()
TweenService: TweenService = utils.framework.protected:()
RunService: RunService = utils.framework.protected:()
opts = {
returnTweenInfo = TweenInfo.(, .EasingStyle.Back, .EasingDirection.Out),
referenceSize = .(, ),
movementFactor = ,
cascadeDelay = ,
antialias =
}
options
k, v (options) opts[k] = v
frame = utils.framework.utils.instances.(frameWrapper)
frame.Active =
originalFrameAbsPos = frame.AbsolutePosition
all = targetWrappers.All {}
originalPositions = {}
targets = {}
targetWrappers.All =
page, wrappers (targetWrappers)
targets[page.Content] = {}
_, w (wrappers)
gui = utils.framework.utils.instances.(w)
gui gui:()
utils.framework.utils.tables.(targets[page.Content], gui)
originalPositions[gui] = gui.Position
_, w (all)
gui = utils.framework.utils.instances.(w)
gui gui:()
utils.framework.utils.tables.(targets[page.Content], gui)
originalPositions[gui] = gui.Position
getScaleFactors = utils.framework.protected:(()
vp = .CurrentCamera.ViewportSize
opts.referenceSize.X / vp.X, opts.referenceSize.Y / vp.Y
)
prevFrameAbsPos = frame.AbsolutePosition
isDragging =
activeTweens = {}
reset = utils.framework.protected:(()
isDragging =
RunService.Heartbeat:()
i, gui (targets[utils.currentPage] {})
.(()
.((i - ) * opts.cascadeDelay)
tw = TweenService:(gui, opts.returnTweenInfo, {
Position = originalPositions[gui]
})
utils.framework.utils.tables.(activeTweens, tw)
tw:()
)
)
frame.InputBegan:(utils.framework.protected:((input)
isDragging (input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch)
isDragging =
#activeTweens >
_, tw (activeTweens)
(() tw:() )
activeTweens = {}
originalFrameAbsPos = frame.AbsolutePosition
prevFrameAbsPos = originalFrameAbsPos
input.Changed:(()
input.UserInputState == .UserInputState.End
()
)
))
frame.InputEnded:(reset)
UserInputService.InputEnded:(utils.framework.protected:((input)
isDragging ()
))
RunService.RenderStepped:(utils.framework.protected:(()
isDragging
currAbsPos = frame.AbsolutePosition
vp = .CurrentCamera.ViewportSize
scaleX, scaleY = opts.referenceSize.X /vp.X, opts.referenceSize.Y /vp.Y
invX = -(currAbsPos.X -originalFrameAbsPos.X) *opts.movementFactor *scaleX
invY = -(currAbsPos.Y -originalFrameAbsPos.Y) *opts.movementFactor *scaleY
_, gui (targets[utils.currentPage])
orig = originalPositions[gui]
opts.antialias
gui.Position = .(
orig.X.Scale, orig.X.Offset + invX,
orig.Y.Scale, orig.Y.Offset + invY
)
gui.Position = orig + .(, invX, , invY)
))
)
this:()
_, anim (utils.anims)
anim.Loaded
anim:()
anim:()
.()
anim.RenderOnLoad
anim:()
utils.animsInitialized =
this:(framework)
framework = ()
ui, tweens, padding
ui = framework.interface.()
ui.instance.ZIndexBehavior = .ZIndexBehavior.Sibling
ui.instance.ScreenInsets = .ScreenInsets.None
utils:(framework, ui)
padding = utils:()
tweens = {
glow = utils:(, , .EasingStyle.Exponential, .EasingDirection.InOut, -, ),
delaied_fast_windows = utils:(, , .EasingStyle.Quart),
fast_windows = utils:(, , .EasingStyle.Quart),
windows = utils:(, , .EasingStyle.Quart),
slow_default = utils:(, ),
default = utils:()
}
framework.protected:(tweens)
ui.windowState = framework.enums.WindowState.Base
playerGui = framework.protected:().LocalPlayer:()
sizes = framework.protected:({ .(, ), .(, ), .(, ) })
ui.currentSize = framework.protected:(()
sizes[ui.windowState]
)
prevPos
ui.nextSize = framework.protected:(((size: number?)
utils:(ui:().instance, {
AnimateSelf = ,
ScaleCascade = ,
ScaleDirection = ,
SkipTransparency =
})
prevState = ui.windowState
ui.windowState = size ui.windowState +
ui.windowState > framework.enums.WindowState.Full
ui.windowState = framework.enums.WindowState.Base
newSize = (ui.windowState == framework.enums.WindowState.Full)
prevSize = (prevState == framework.enums.WindowState.Full)
portrait = playerGui.CurrentScreenOrientation == .ScreenOrientation.Portrait
isFull = ui.windowState == framework.enums.WindowState.Full portrait
main = ui:()
ui.Loaded framework.settings:(, ui.windowState)
ui:().instance.CornerRadius = .(isFull , )
ui:():(isFull ui:() {})
ui:():(isFull {} main)
main:( isFull)
main:(tweens.slow_default, {
Position = isFull .(, ) main.Position,
GroupTransparency = ,
Size = ui.()
})
utils:(utils.currentPage, {
ExcludeNames = { , , , , , , , , , },
ScaleDirection = prevSize == newSize ~= ,
SkipTransparency = ,
ScaleCascade =
})
main:(tweens.delaied_fast_windows, {
GroupTransparency =
})
))
open =
lastPos, lastSize
ui.close = framework.protected:((()
utils:(ui:().instance, {
AnimateSelf = ,
ScaleCascade = ,
ScaleDirection = ,
SkipTransparency =
})
open utils:()
main, ficon = ui:(), ui:()
lastPos = main.instance.Position
main:(tweens.windows, {
Size = .(, ),
})
main:(tweens.slow_default, {
Position = .(, ),
GroupTransparency = ,
Visible =
})
_, anim (utils:()) anim:()
ficon.instance.Visible =
ficon:(tweens.windows, {
ImageTransparency = ,
Size = lastSize
}).Completed:()
utils:(ficon, {
AnimateSelf = ,
SkipTransparency = ,
ScaleCascade = ,
ScaleDirection =
})
open =
))
ui.open = framework.protected:((()
open
main, ficon = ui:(), ui:()
utils:(ficon.instance, {
SkipTransparency =
})
lastSize = ficon.instance.Size
ficon:(tweens.windows, {
Size = .(, ),
ImageTransparency = ,
Visible =
})
main.instance.Visible =
main:(tweens.windows, {
Size = ui.(),
})
utils:(utils.currentPage, {
EnterTweenInfo = TweenInfo.(, .EasingStyle.Linear, .EasingDirection.Out),
TweenInfo = TweenInfo.(, .EasingStyle.Back, .EasingDirection.Out),
ExcludeNames = { , , , , , , , },
SkipTransparency = ,
ScaleDirection = ,
DelayBetween = ,
ScaleCascade = ,
Limit =
})
_, anim (utils:()) anim:()
main:(tweens.slow_default, {
GroupTransparency = ,
Position = lastPos,
}).Completed:()
open =
))
skip
setLog = framework.protected:((text: )
log = ui:()
log log.instance
log.instance.Text = text
)
ui.getLoading = framework.protected:(()
back = ui:()
phase =
exitBtn = framework.utils.inputs.buttons.(back)
loading, phases = {}, {
()
back back.instance
back:(TweenInfo.(, .EasingStyle.Sine, .EasingDirection.In, , , ), {
BackgroundTransparency =
})
id =
anim = utils:(id)
anim anim:()
obj = ui:(id)
obj obj.instance
obj:(TweenInfo.(, .EasingStyle.Sine, .EasingDirection.In, , , ), {
ImageTransparency =
})
tween = TweenInfo.(, .EasingStyle.Sine, .EasingDirection.In, , , )
_, id ({, })
obj = ui:(id)
obj obj.instance
obj:(tween, { BackgroundTransparency = })
.()
,
() ()
tween = TweenInfo.(, .EasingStyle.Sine, .EasingDirection.In, , , )
_, id ({, })
obj = ui:(id)
obj obj.instance
obj:(tween, { TextTransparency = })
.()
,
() ()
tween = TweenInfo.(, .EasingStyle.Sine, .EasingDirection.In, , , )
id =
back back.instance
back:(tween, { BackgroundTransparency = , Visible = })
b = ui:(id)
b b.instance
b:(tween, { ImageTransparency = , Visible = })
_, id ({, })
obj = ui:(id)
if not obj or not obj.instance then continue end
obj:Tween(tween, { TextTransparency = 1, Visible = false })
end
for _, id in ipairs({"BottomShadeLeft", "BottomShadeRight"}) do
local obj = ui:Get(id)
if not obj or not obj.instance then continue end
obj:Tween(tween, { BackgroundTransparency = 1, Visible = false })
end
task.delay(1.1, function()
if exitBtn then exitBtn:Remove() end
local anim = utils:GetAnimation(id)
if anim then anim:Unbind() end
end)
end,
function()
local id = "StartingScreen"
local page = ui:Get(id)
local screen = ui:Get(id)
if page and page.instance then
page.instance.Visible = true
end
local anim = utils:GetAnimation(id)
if anim then anim:Render() end
if back and back.instance then
back:Tween(TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.In, 0, false), {
BackgroundTransparency = .4
})
end
--screen:Tween(TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.In, 0, false), {
-- ImageTransparency = 0
--})
if screen and screen.instance then
screen:Tween(TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.In, 0, false,2), {
ImageTransparency = .15
})
end
--task.wait(1)
if page and page.instance then
utils:AnimateCascade(page, {
DelayBetween = .5,
TweenInfo = TweenInfo.new(3, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
})
end
end,
function(callback: () -> any)
--[[local action
task.delay(10, function()
if action then return end
action = true
callback()
end)]]
for i=10, 1, -1 do
--print("Check in:", i)
task.wait(1)
end
local btn = ui:Get("StartButton")
btn.instance.MouseButton1Click:Wait()
--[[if action then return end
action = true]]
callback()
end,
function()
local id = "StartingScreen"
local page = ui:Get(id)
--task.wait(8)
--page.instance.Visible = true
local anim = utils:GetAnimation(id)
if anim then anim:Unbind() end
if page and page.instance then
page.instance.Visible = false
page:Remove()
end
if back and back.instance then
back:Remove()
end
task.delay(1.1, ui.close)
end
}
local function doPhase(n: number, callback: () -> any)
local action = phases[n]
if not action then return end
phase = n +1
action(callback)
end
function loading:Skip(n: number, callback: () -> any)
doPhase(n or #phases, callback)
return self
end
function loading:Advance(n: number, callback: () -> any)
if skip then return self end
doPhase(phase, callback)
if n and n > 1 then self:Advance(n -1, callback) end
return self
end
exitBtn.OnLongPress:Connect(function(clickTime: number)
setLog("Skipping…")
exitBtn:Remove()
exitBtn = nil
skip = true
loading:Skip(3)
end)
return loading
end)
end
-- Components
ui:CreateComponent("ButtonToast").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
local glowStyle, colorStyle, gradientStyle = {
info = "rbxassetid://128601429542160",
error = "rbxassetid://105234289135931",
success = "rbxassetid://89752107107901",
confirm = "rbxassetid://128601429542160"
}, {
info = Color3.fromHex("#006AFF"),
error = Color3.fromHex("#F00"),
success = Color3.fromHex("#0F0"),
confirm = Color3.fromHex("#006AFF")
}, {
info = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#449EF8")),
ColorSequenceKeypoint.new(.33, Color3.fromHex("#73A5F4")),
ColorSequenceKeypoint.new(.66, Color3.fromHex("#3894FF")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#2A87FF"))
}),
error = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#FA3232")),
ColorSequenceKeypoint.new(.33, Color3.fromHex("#F47373")),
ColorSequenceKeypoint.new(.66, Color3.fromHex("#FF3838")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#FF2929"))
}),
success = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#17FD4D")),
ColorSequenceKeypoint.new(.33, Color3.fromHex("#73F591")),
ColorSequenceKeypoint.new(.66, Color3.fromHex("#38FF67")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#1DFF52"))
}),
confirm = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#449EF8")),
ColorSequenceKeypoint.new(.33, Color3.fromHex("#73A5F4")),
ColorSequenceKeypoint.new(.66, Color3.fromHex("#3894FF")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#2A87FF"))
}),
}
local glowButton = ui:AddInstance("ImageLabel", {
Image = glowStyle[props.Style] or glowStyle.info, -- glowing toast button
BackgroundTransparency = 1,
ZIndex = 10
})
local additionalTitle = ui:AddInstance("TextLabel", {
Visible = props.AdditionalTitle and true or false,
TextXAlignment = Enum.TextXAlignment.Center,
AutomaticSize = Enum.AutomaticSize.Y,
Position = UDim2.fromScale(.5, .1),
AnchorPoint = Vector2.new(.5, 0),
Size = UDim2.fromScale(.7, .35),
BackgroundTransparency = 1,
TextSize = padding * 10,
TextWrapped = true,
Text = "",
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Title"},
Colors_Text_Primary = {"TextColor3"},
Country_Code = props.AdditionalTitle
}, ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(0, padding),
PaddingTop = UDim.new(0, padding)
}), ui:AddInstance("UIGradient", {
Color = gradientStyle[props.Style] or gradientStyle.info,
Rotation = 210
}))
local additionalText = ui:AddInstance("TextLabel", {
Visible = props.AdditionalText and true or false,
TextXAlignment = Enum.TextXAlignment.Center,
AutomaticSize = Enum.AutomaticSize.Y,
Position = UDim2.fromScale(.5, .325),
AnchorPoint = Vector2.new(.5, 0),
Size = UDim2.fromScale(.7, .2),
BackgroundTransparency = 1,
TextSize = padding * 6,
TextWrapped = true,
Text = "",
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Title"},
Colors_Text_Primary = {"TextColor3"},
Country_Code = props.AdditionalText
}, ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(0, padding),
PaddingTop = UDim.new(0, padding)
}))
local button = ui:AddInstance("TextButton", {
BackgroundColor3 = Color3.fromHex("#FFF"),
AutomaticSize = Enum.AutomaticSize.XY,
Position = UDim2.fromScale(.5, .6),
AnchorPoint = Vector2.new(.5, 0),
BackgroundTransparency = .8,
ZIndex = 9,
Text = "",
MouseButton1Click = function()
props.Close(true)
end
}, ui:AddInstance("UIPadding", {
PaddingRight = UDim.new(0, padding *3.5),
PaddingBottom = UDim.new(0, padding *2),
PaddingLeft = UDim.new(0, padding *3.5),
PaddingTop = UDim.new(0, padding *2)
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(0, padding *5)
}), ui:AddInstance("UIListLayout", {
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Center,
FillDirection = Enum.FillDirection.Vertical,
HorizontalFlex = Enum.UIFlexAlignment.Fill,
VerticalFlex = Enum.UIFlexAlignment.Fill,
SortOrder = Enum.SortOrder.LayoutOrder
}), ui:AddInstance("Frame", {
AutomaticSize = Enum.AutomaticSize.XY,
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
BackgroundTransparency = 1
}), ui:AddInstance("TextLabel", {
AutomaticSize = Enum.AutomaticSize.XY,
Position = UDim2.fromScale(.5,.5),
AnchorPoint = Vector2.new(.5, .5),
BackgroundTransparency = 1,
TextSize = padding * 4,
TextWrapped = true,
Text = "",
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Title"},
Colors_Text_Primary = {"TextColor3"},
Country_Code = props.Style == "confirm" and
{"Confirm","Conferma","Xác nhận","Confirmar","Konfirmasi","Подтвердить","Bestätigen","Confirmar","Confirmer","确认","確認","تأكيد","पुष्टि करें","ยืนยัน"}or {"Ok"}
}, ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(0, padding),
PaddingTop = UDim.new(0, padding)
})))
local main = ui:AddInstance("TextButton", {
Id = `ButtonToast_{props.Id}` or "ButtonToast_",
BackgroundColor3 = Color3.fromHex("#000"),
MouseButton1Click = props.Close,
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = .25,
AutoButtonColor = false,
ZIndex = 1499,
Text = ""
}, ui:AddInstance("ImageLabel", {
Id = "ToastGlow",
ImageColor3 = colorStyle[props.Style] or colorStyle.info,
Position = UDim2.fromScale(0, 0),
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1
}, additionalTitle, additionalText, glowButton, button))
local function update()
local size, pos = button.instance.AbsoluteSize, button.instance.AbsolutePosition
glowButton.instance.Size = UDim2.fromOffset(size.X *2, size.Y *4)
local siz = glowButton.instance.AbsoluteSize
glowButton.instance.Position = UDim2.fromOffset(pos.X -(siz.X -size.X)/2, pos.Y -(siz.Y -size.Y) /3) --+size.Y /1.75) -- Image is not centered
end
update()
glowButton:Tween(TweenInfo.new(
1.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {
ImageTransparency = .5
})
button.instance:GetPropertyChangedSignal("AbsoluteSize"):Connect(update)
button.instance:GetPropertyChangedSignal("AbsolutePosition"):Connect(update)
return main
end)))
ui:CreateComponent("InputToast").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
local glowStyle, colorStyle, gradientStyle = {
info = "rbxassetid://128601429542160",
error = "rbxassetid://105234289135931",
success = "rbxassetid://89752107107901",
ai = "rbxassetid://93050869167661"
}, {
info = Color3.fromHex("#006AFF"),
error = Color3.fromHex("#F00"),
success = Color3.fromHex("#0F0"),
ai = Color3.fromHex("#FA54A8")
}, {
info = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#449EF8")),
ColorSequenceKeypoint.new(.33, Color3.fromHex("#73A5F4")),
ColorSequenceKeypoint.new(.66, Color3.fromHex("#3894FF")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#2A87FF"))
}),
error = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#FA3232")),
ColorSequenceKeypoint.new(.33, Color3.fromHex("#F47373")),
ColorSequenceKeypoint.new(.66, Color3.fromHex("#FF3838")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#FF2929"))
}),
success = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#17FD4D")),
ColorSequenceKeypoint.new(.33, Color3.fromHex("#73F591")),
ColorSequenceKeypoint.new(.66, Color3.fromHex("#38FF67")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#1DFF52"))
}),
ai = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#FF0000")),
ColorSequenceKeypoint.new(.4, Color3.fromHex("#FF3869")),
ColorSequenceKeypoint.new(.7, Color3.fromHex("#F473EC")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#15A6FE"))
})
}
local glowButton = ui:AddInstance("ImageLabel", {
Image = glowStyle[props.Style] or glowStyle.info, -- glowing toast button
BackgroundTransparency = 1,
ZIndex = 10
})
local additionalText = ui:AddInstance("TextLabel", {
Visible = props.AdditionalText and true or false,
TextXAlignment = Enum.TextXAlignment.Center,
AutomaticSize = Enum.AutomaticSize.Y,
Position = UDim2.fromScale(.5, .1),
AnchorPoint = Vector2.new(.5, 0),
Size = UDim2.fromScale(.8, .2),
BackgroundTransparency = 1,
TextSize = padding * 6,
TextWrapped = true,
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Title"},
Colors_Text_Primary = {"TextColor3"},
Country_Code = props.AdditionalText
}, ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(0, padding),
PaddingTop = UDim.new(0, padding)
}), ui:AddInstance("UIGradient", {
Color = gradientStyle[props.Style] or gradientStyle.info,
Rotation = 210
}))
local box = ui:AddInstance("TextBox", {
PlaceholderText = "Insert text here...",
TextTruncate = Enum.TextTruncate.AtEnd,
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
ClearTextOnFocus = false,
TextSize = padding * 4,
Text = "",
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Title", "No_Focus"},
Country_Code_Placeholder = props.PlaceholderText,
Colors_Text_Primary = {"TextColor3"}
})
local textbox = ui:AddInstance("Frame", {
BackgroundColor3 = Color3.fromHex("#FFF"),
AutomaticSize = Enum.AutomaticSize.Y,
Position = UDim2.fromScale(.5, .25),
Size = UDim2.fromScale(.85, .115),
AnchorPoint = Vector2.new(.5, 0),
BackgroundTransparency = .8,
ZIndex = 9
}, ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(0, padding *2),
PaddingRight = UDim.new(0, padding *3.5),
PaddingLeft = UDim.new(0, padding *2),
PaddingTop = UDim.new(0, padding *2)
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(0, padding *5)
}), box)
local main = ui:AddInstance("Frame", {
Id = `Toast_{props.Id}`,
BackgroundColor3 = Color3.fromHex("#000"),
Size = UDim2.fromScale(1, 1),
ZIndex = 1499
}, ui:AddInstance("UIGradient", {
Rotation = 90,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, .25),
NumberSequenceKeypoint.new(1, 1)
})
}), ui:AddInstance("ImageLabel", {
Id = "ToastGlow",
ImageColor3 = colorStyle[props.Style] or colorStyle.info,
Position = UDim2.fromScale(0, 0),
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1
}, additionalText, glowButton, textbox))
local function update()
local size, pos = textbox.instance.AbsoluteSize, textbox.instance.AbsolutePosition
local aiMultiplier = props.Style == "ai" and 1.4 or 1
glowButton.instance.Size = UDim2.fromOffset(size.X *1.4 * aiMultiplier, size.Y *4)
local siz = glowButton.instance.AbsoluteSize
glowButton.instance.Position = UDim2.fromOffset(pos.X -(siz.X -size.X)/2, pos.Y -(siz.Y -size.Y)/3) -- Image is not centered
-- glowButton.instance.Position = UDim2.fromOffset(pos.X -(siz.X -size.X)/2, pos.Y -(siz.Y -size.Y)/2 +size.Y /1.75)
end
update()
glowButton:Tween(TweenInfo.new(
1.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {
ImageTransparency = .5
})
textbox.instance:GetPropertyChangedSignal("AbsoluteSize"):Connect(update)
textbox.instance:GetPropertyChangedSignal("AbsolutePosition"):Connect(update)
box.instance:CaptureFocus()
box.instance.FocusLost:Once(function() props.Close(box.instance.Text) end)
main.tb = box
return main
end)))
ui:CreateComponent("Toast").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
local glowStyle, iconStyle, colorStyle = {
info = "rbxassetid://128601429542160",
error = "rbxassetid://105234289135931",
success = "rbxassetid://89752107107901"
}, {
info = "rbxassetid://102895040094534",
error = "rbxassetid://137768773239157",
success = "rbxassetid://99252037962470"
}, {
success = Color3.fromHex("#0F0"),
info = Color3.fromHex("#006AFF"),
error = Color3.fromHex("#F00")
}
local glowButton = ui:AddInstance("ImageLabel", {
Image = glowStyle[props.Style] or glowStyle.info, -- glowing toast button
BackgroundTransparency = 1,
ZIndex = 10
})
local button = ui:AddInstance("TextButton", {
BackgroundColor3 = Color3.fromHex("#FFF"),
AutomaticSize = Enum.AutomaticSize.XY,
Position = UDim2.fromScale(.5, .1),
AnchorPoint = Vector2.new(.5, 0),
BackgroundTransparency = .8,
ZIndex = 9,
Text = "",
MouseButton1Click = props.Close
}, ui:AddInstance("UIPadding", {
PaddingRight = UDim.new(0, padding *3.5),
PaddingBottom = UDim.new(0, padding *2),
PaddingLeft = UDim.new(0, padding *2),
PaddingTop = UDim.new(0, padding *2)
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(0, padding *5)
}), ui:AddInstance("UIListLayout", {
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Center,
FillDirection = Enum.FillDirection.Vertical,
HorizontalFlex = Enum.UIFlexAlignment.Fill,
VerticalFlex = Enum.UIFlexAlignment.Fill,
SortOrder = Enum.SortOrder.LayoutOrder
}), ui:AddInstance("Frame", {
AutomaticSize = Enum.AutomaticSize.XY,
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
BackgroundTransparency = 1
}, ui:AddInstance("UIListLayout", {
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Center,
FillDirection = Enum.FillDirection.Horizontal,
HorizontalFlex = Enum.UIFlexAlignment.Fill,
VerticalFlex = Enum.UIFlexAlignment.Fill,
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, padding*1.5)
}), ui:AddInstance("ImageLabel", {
Image = iconStyle[props.Style] or iconStyle.info, -- icon
AutomaticSize = Enum.AutomaticSize.XY,
Position = UDim2.fromScale(0, .5),
AnchorPoint = Vector2.new(0, .5),
BackgroundTransparency = 1
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
})), ui:AddInstance("TextLabel", {
AutomaticSize = Enum.AutomaticSize.XY,
AnchorPoint = Vector2.new(1, .5),
BackgroundTransparency = 1,
TextSize = padding * 4,
TextWrapped = true,
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Title"},
Colors_Text_Primary = {"TextColor3"},
Country_Code = props.Text
}, ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(0, padding),
PaddingTop = UDim.new(0, padding)
}))))
local main = ui:AddInstance("Frame", {
Size = UDim2.fromScale(1, 1),
BackgroundColor3 = Color3.fromHex("#000"),
ZIndex = 499
}, ui:AddInstance("UIGradient", {
Rotation = 90,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, .25),
NumberSequenceKeypoint.new(1, 1)
})
}), ui:AddInstance("ImageLabel", {
Id = "ToastGlow",
ImageColor3 = colorStyle[props.Style] or colorStyle.info,
Position = UDim2.fromScale(0, 0),
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
}, glowButton, button))
local function update()
local size, pos = button.instance.AbsoluteSize, button.instance.AbsolutePosition
glowButton.instance.Size = UDim2.fromOffset(size.X *1.6, size.Y *4)
local siz = glowButton.instance.AbsoluteSize
glowButton.instance.Position = UDim2.fromOffset(pos.X -(siz.X -size.X) /2, pos.Y -(siz.Y -size.Y) /3) --+size.Y /1.75) -- Image is not centered
end
update()
glowButton:Tween(TweenInfo.new(
1.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {
ImageTransparency = .5
})
button.instance:GetPropertyChangedSignal("AbsoluteSize"):Connect(update)
button.instance:GetPropertyChangedSignal("AbsolutePosition"):Connect(update)
return main
end)))
ui:CreateComponent("Shade").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
return ui:AddInstance("Frame", {
Id = props.Id or nil,
BorderSizePixel = 0,
BackgroundTransparency = 1,
Size = props.Size or UDim2.fromScale(0, 0),
Position = props.Position or UDim2.fromScale(0, 0)
}, ui:AddInstance("UIGradient", {
Id = props.Id and framework.utils.strings.format("%s_Gradient", props.Id) or nil,
Rotation = props.Rotation or 0,
Color = props.Color or ColorSequence.new(Color3.fromRGB(255, 0, 0)),
Transparency = props.Transparency or NumberSequence.new({
NumberSequenceKeypoint.new(0, 1, 0),
NumberSequenceKeypoint.new(.75, 1, 0),
NumberSequenceKeypoint.new(1, .6, 0)
})
}))
end)))
ui:CreateComponent("SideBtn").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
return ui:AddInstance("ImageButton", {
Id = props.Id,
MouseButton1Click = props.OnClick,
Position = props.Position or UDim2.fromScale(.5, .05),
AnchorPoint = Vector2.new(.5, 0),
Size = UDim2.fromScale(.8, .08),
BackgroundTransparency = 1,
AutoButtonColor = false
}, ui:AddInstance("ImageLabel", {
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.85, .85),
ScaleType = Enum.ScaleType.Fit,
BackgroundTransparency = 1,
Image = props.Image
}), ui:AddInstance("UIAspectRatioConstraint"))
end)))
ui:CreateComponent("ScriptTab").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: boolean)
local tbx = ui:AddInstance("TextBox", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.05, .5),
AnchorPoint = Vector2.new(0, .5),
Size = UDim2.fromScale(.9, .5),
BackgroundTransparency = 1,
ClearTextOnFocus = false,
Text = props.Title,
TextScaled = true,
Visible = false,
Tags = {"Colors_Text_Primary", "Fonts_Title"},
Colors_Text_Primary = {"TextColor3"}
})
local lbl = ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.05, .5),
AnchorPoint = Vector2.new(0, .5),
Size = UDim2.fromScale(.75, .5),
BackgroundTransparency = 1,
Text = props.Title,
TextScaled = true,
Tags = {"Colors_Text_Primary", "Fonts_Title"},
Colors_Text_Primary = {"TextColor3"}
})
local btn
btn = ui:AddInstance("ImageButton", {
Image = "rbxassetid://103207032755758",
Position = UDim2.fromScale(.95, .5),
AnchorPoint = Vector2.new(1, .5),
Size = UDim2.fromScale(.5, .5),
BackgroundTransparency = 1,
AutoButtonColor = false,
MouseButton1Click = function()
local tabs = framework.dependencies.editortabs
local tab = tabs:GetSelection()
if not tab then return end
btn.instance.Visible = false
lbl.instance.Visible = false
tbx.instance.Visible = true
tbx.instance.TextEditable = true
tbx.instance:CaptureFocus()
tbx.instance.FocusLost:Wait()
tbx.instance.FocusLost:Wait() -- due to text handler
tbx.instance.TextEditable = false
tab:SetName(tbx.instance.Text)
btn.instance.Visible = true
lbl.instance.Visible = true
tbx.instance.Visible = false
end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}))
local selected = false
local comp;
comp = ui:AddInstance("ImageButton", {
Position = UDim2.fromScale(.5, .0),
AnchorPoint = Vector2.new(.5, 0),
LayoutOrder = props.LayoutOrder,
Size = UDim2.fromScale(1, .2),
BackgroundTransparency = .5,
AutoButtonColor = false,
Parent = props.Parent,
Colors_Primary = framework.protected:GCProtect(function(color)
if not selected then return end
comp.instance.BackgroundColor3 = color
end),
Tags = {"Colors_Primary"}
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.3, 0)
}), tbx, lbl, btn)
function comp:Select()
selected = true
local succ, err = pcall(Color3.fromHex, framework.settings:GetSetting("Colors_Primary"))
comp:Tween(tweens.default, { BackgroundColor3 = succ and err or Color3.fromHex(framework.settings:GetDefaultSetting("Colors_Primary")) })
end
function comp:Unselect()
selected = false
local succ, err = pcall(Color3.fromHex, framework.settings:GetSetting("Colors_Secondary"))
comp:Tween(tweens.default, { BackgroundColor3 = succ and err or Color3.fromHex(framework.settings:GetDefaultSetting("Colors_Secondary")) })
end
comp:Unselect()
return comp
end)))
do
local prevbtn
ui:CreateComponent("CategoryButton").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: any)
local bgColor = props.BackgroundColor3 or Color3.fromHex("#F00")
local txt = ui:AddInstance("TextLabel", {
TextYAlignment = Enum.TextYAlignment.Center,
TextXAlignment = Enum.TextXAlignment.Right,
Position = UDim2.fromScale(.875, .5),
AnchorPoint = Vector2.new(1, .5),
Size = UDim2.fromScale(.45, .55),
BackgroundTransparency = 1,
TextColor3 = bgColor,
TextScaled = true,
Visible = false,
Text = "",
Tags = {"Fonts_Heading", "Country_Code"},
Country_Code = props.Title
})
local ratio = ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
})
local comp
comp = ui:AddInstance("TextButton", {
Id = `CategoryBtn_{props.Title[1]}`,
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
BackgroundColor3 = bgColor,
Text = "",
MouseButton1Click = function() comp:Select() end,
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.4, 0)
}), txt, ui:AddInstance("ImageLabel", {
Image = props.Image or "rbxassetid://135906354399656",
Position = UDim2.fromScale(.125, .5),
AnchorPoint = Vector2.new(0, .5),
Size = UDim2.fromScale(.55, .55),
BackgroundTransparency = 1,
ImageColor3 = bgColor
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
})), ratio)
function comp:Select()
if prevbtn then prevbtn:Unselect() end
prevbtn = comp
local callback = props.Callback
if callback then callback() end
comp:Tween(tweens.default, { BackgroundTransparency = .7 })
ratio:Tween(tweens.default, { AspectRatio = 2.5 })
--txt.instance.Text = utils:Translate(props.Title)
ui:Get("CategoryTitle").instance.Text = utils:Translate(props.LongTitle or props.Title)
txt.instance.Visible = true
end
function comp:Unselect()
comp:Tween(tweens.default, { BackgroundTransparency = 1 })
ratio:Tween(tweens.default, { AspectRatio = 1 })
txt.instance.Visible = false
--txt.instance.Text = ""
end
if props.Selected then comp:Select() end
return comp
end)))
end
ui:CreateComponent("MovingText").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
local glowGradient = ui:AddInstance("UIGradient", {
Offset = Vector2.new(-1, 0),
Rotation = 0,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(.25, 1),
NumberSequenceKeypoint.new(.5, 0),
NumberSequenceKeypoint.new(.75, .5),
NumberSequenceKeypoint.new(1, 0),
})
})
local label = ui:AddInstance("TextLabel", {
TextColor3 = Color3.fromRGB(255, 255, 255),
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
Position = UDim2.new(0, 0, 0, 0),
AnchorPoint = Vector2.new(0, 0),
Size = UDim2.new(1, 0, 1, 0),
BackgroundTransparency = 1,
Text = props.Text or "",
TextTransparency = 0,
TextSize = 25,
Tags = {"Fonts_Black"}
}, glowGradient)
props.Text = nil
-- create container and enable clipping
local comp = ui:AddInstance("Frame", props, label)
comp.instance.ClipsDescendants = true
task.spawn(function()
local TextService = framework.protected:GetService("TextService")
local scrollRunning = false
local scrollTweenThread
local function startScrollLoop(fullWidth, containerWidth)
-- cancel previous loop
if scrollTweenThread then
scrollRunning = false
task.cancel(scrollTweenThread)
scrollTweenThread = nil
end
-- if text fits, reset to original mid-Y
if fullWidth <= containerWidth * 1.05 then
label.instance.Position = UDim2.new(0, 0, 0, 0)
return
end
local distance = fullWidth - containerWidth
local tinfo = utils:GetTweenInfos(0, distance/35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local pauseTime = 2.5
scrollRunning = true
scrollTweenThread = task.spawn(pcall, function()
while scrollRunning and label.instance do
-- slide left, keep mid-Y
label:Tween(tinfo, {
Position = UDim2.new(0, -distance, 0, 0)
}).Completed:Wait()
task.wait(pauseTime)
-- slide back, keep mid-Y
label:Tween(tinfo, {
Position = UDim2.new(0, 0, 0, 0)
}).Completed:Wait()
task.wait(pauseTime)
end
end)
end
local updateSize = framework.protected:GCProtect(function()
if not label.instance or not comp.instance then return end
-- match text size to frame height
label.instance.TextSize = comp.instance.AbsoluteSize.Y
local textSize = TextService:GetTextSize(
label.instance.Text,
label.instance.TextSize,
Enum.Font.MontserratBlack,
Vector2.new(math.huge, comp.instance.AbsoluteSize.Y)
)
local fullWidth = textSize.X
-- reset label
label.instance.Position = UDim2.fromScale(0, 0)
label.instance.Size = UDim2.new(1, 0, 1, 0)
startScrollLoop(fullWidth, comp.instance.AbsoluteSize.X)
end)
-- animate initial glow offset
glowGradient:Tween(tweens.glow, { Offset = Vector2.new(1, 0) })
-- re-run on resize
comp.instance:GetPropertyChangedSignal("AbsoluteSize"):Connect(updateSize)
-- initial sizing + scroll start
task.wait(.5)
updateSize()
end)
return comp
end)))
ui:CreateComponent("ScriptObj").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
local comp, holdable
local fav = ui:AddInstance("ImageButton", {
Id = `ScriptObj_FavsButton_{props.Title}`,
Visible = not (props.NoFav or props.IsFolder),
ImageColor3 = Color3.fromHex("#FDC41B"),
Image = "rbxassetid://80350699155696",
Position = UDim2.fromScale(.95, .1),
AnchorPoint = Vector2.new(1, 0),
Size = UDim2.fromScale(.1, .2),
BackgroundTransparency = 1,
MouseButton1Click = function()
local btn = ui:Get(`ScriptObj_FavsButton_{props.Title}`)
if btn and btn.instance then
utils:AnimateCascade(btn.instance, {
AnimateSelf = true,
SkipTransparency = true
})
end
if props.OnFavourite then comp:SetFavourite(props.OnFavourite()) end
end,
OnRemoved = function()
if holdable then
holdable:Remove()
holdable = nil
end
end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}))
local del = ui:AddInstance("ImageButton", {
Id = `ScriptObj_DelButton_{props.Title}`,
Image = "rbxassetid://80286816747552",
Position = UDim2.fromScale(.05, .1),
AnchorPoint = Vector2.new(0, 0),
Size = UDim2.fromScale(.1, .2),
BackgroundTransparency = 1,
Visible = not not props.OnDelete,
MouseButton1Click = function()
utils:AnimateCascade(ui:Get(`ScriptObj_DelButton_{props.Title}`).instance, {
AnimateSelf = true,
SkipTransparency = true
})
if props.OnDelete then props.OnDelete() end
end,
OnRemoved = function()
if holdable then
holdable:Remove()
holdable = nil
end
end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}))
local function getRandomAIColor()
local aiColors = {
{255, 0, 0},
{255, 56, 105},
{244, 115, 236},
{21, 166, 254},
{255, 56, 105}
}
local color = aiColors[math.random(1, #aiColors)]
return Color3.fromRGB(color[1], color[2], color[3])
end
local image = props.Image
if props.IsFolder then
image = framework.protected:ProtectAsset("rbxassetid://99211126565176")
else
image = props.IsLocal and framework.protected:ProtectAsset("rbxassetid://87562736891746")
or framework.protected:ProtectAsset("rbxassetid://71177623238811")
end
comp = ui:AddInstance("ImageButton", {
Id = `ScriptObj_MainButton_{props.Title}`,
Size = UDim2.fromScale(1, 1),
AutoButtonColor = false,
Parent = props.Parent,
ImageColor3 = props.Image and Color3.fromHex("#FFF") or getRandomAIColor(),
Image = image
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.2, 0)
}), fav, del, ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.5, .8),
AnchorPoint = Vector2.new(.5, 1),
Size = UDim2.fromScale(.9, .2),
Text = props.Title or "Script",
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Colors_Text_Primary", "Fonts_Body"},
Colors_Text_Primary = {"TextColor3"}
}, ui:AddInstance("TextLabel", {
TextColor3 = Color3.fromRGB(175, 175, 175),
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(0, 1),
Text = props.Description or "",
Size = UDim2.fromScale(1, .6),
BackgroundTransparency = 1,
TextScaled = true
})), ui:AddInstance("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#404040")),
ColorSequenceKeypoint.new(0.5, Color3.fromHex("#FFF")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#404040"))
}),
Rotation = 90
}))
if props.Slug then comp:AddTags(props.Slug) end
comp.favourite = fav
if props.OnClick then
holdable = framework.utils.inputs.buttons.holdable(comp)
holdable.OnShortPress:Connect(function(elapsed)
if elapsed < .2 and props.OnClick then
if ui:Get(`ScriptObj_MainButton_{props.Title}`) then
utils:AnimateCascade(ui:Get(`ScriptObj_MainButton_{props.Title}`).instance, {
AnimateSelf = true,
ScaleCascade = true,
ScaleDirection = "Out",
SkipTransparency = true
})
end
props.OnClick()
end
end)
end
function comp:SetFavourite(status: boolean, dontUpdate: boolean)
for _, v in ipairs(ui:GetByTag(props.Slug)) do
v.favourite.instance.Image = status and framework.protected:ProtectAsset("rbxassetid://137934368112423") or "rbxassetid://80350699155696"
end
local scriptsgrid = ui:Get("ScriptsGrid")
if not dontUpdate and not scriptsgrid.lastQuery then
framework.dependencies.cloudscripts:FetchFavourites("grid")
end
end
comp:SetFavourite(props.IsFavourite, true)
return comp
end)))
ui:CreateComponent("ExtensionObj").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
local del = props.OnDelete and ui:AddInstance("ImageButton", {
Image = "rbxassetid://80286816747552",
Position = UDim2.fromScale(.95, .05),
MouseButton1Click = props.OnDelete,
AnchorPoint = Vector2.new(1, 0),
Size = UDim2.fromScale(.25, .25),
BackgroundTransparency = 1
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}))
return ui:AddInstance("ImageButton", {
MouseButton1Click = props.OnClick,
Size = UDim2.fromScale(1, 1),
AutoButtonColor = false,
Parent = props.Parent,
Image = props.Image
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectType = Enum.AspectType.ScaleWithParentSize,
DominantAxis = Enum.DominantAxis.Width,
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.2, 0)
}), ui:AddInstance("TextLabel", {
Position = UDim2.fromScale(.5, 1.05),
AnchorPoint = Vector2.new(.5, 0),
Size = UDim2.fromScale(.9, .2),
Text = props.Title or "Extension",
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Colors_Text_Primary", "Fonts_Body"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromHex("#404040"))
}),
Rotation = -45
}), del)
end)))
ui:CreateComponent("ContentBar").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
local layout = ui:AddInstance("UIPageLayout", {
Id = "ScriptsLayout",
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Center,
FillDirection = Enum.FillDirection.Horizontal,
EasingDirection = Enum.EasingDirection.Out,
SortOrder = Enum.SortOrder.LayoutOrder,
EasingStyle = Enum.EasingStyle.Linear,
ScrollWheelInputEnabled = false,
GamepadInputEnabled = false,
TouchInputEnabled = false,
--Circular = true,
TweenTime = .25
})
local comp = ui:AddInstance("Frame", {
Id = props.Id,
AnchorPoint = props.AnchorPoint,
BackgroundTransparency = 1,
Position = props.Position,
Size = props.Size
}, ui:AddInstance("UIAspectRatioConstraint", {
DominantAxis = Enum.DominantAxis.Height,
AspectRatio = 1.78
}), layout)
local tweenService = framework.protected:GetService("TweenService")
local scripts, idx, current = {}, -1, nil
local setSize = framework.protected:GCProtect(function(time: number, scrOffset: number, ySize: number, xPos: number, ZIndex: number)
local scr = scripts[idx +scrOffset]
if not scr then return end
local inner = scr:GetObject()
local tween = utils:GetTweenInfos(0, time)
local color, transp = 255/3*ZIndex, ZIndex == 3 and 0 or 1 -1/3*ZIndex
for _, lbl in ipairs(inner.instance:GetDescendants()) do
if not lbl:IsA("TextLabel") then continue end
tweenService:Create(lbl, tween, { TextTransparency = transp }):Play()
end
inner.instance.ImageColor3 = Color3.fromRGB(color, color, color)
scr.instance.instance.ZIndex = ZIndex
scr.instance:Tween(tween, { Size = UDim2.fromScale(1, ySize) })
inner:Tween(tween, { Position = UDim2.fromScale(xPos, 0) })
end)
local slideIndex = framework.protected:GCProtect(function(increment: number)
local lenght = #scripts -1
local idx = idx
local bound
if idx +increment >= lenght then
bound = 1
idx = lenght
elseif idx +increment <= 0 then
bound = -1
idx = 0
else
idx += increment
end
if bound and props.OnBound then props.OnBound(bound) end -- on bound reached
return idx
end)
local updateList = framework.protected:GCProtect(function(timeMult)
if idx +3 < #scripts then
if idx == -1 then idx = slideIndex(2) end
elseif #scripts > 4 and props.OnLoad then task.spawn(props.OnLoad) end -- load more content
idx = framework.utils.maths.max(idx, 0)
timeMult = timeMult or 1
timeMult = .25 *timeMult
layout.instance.TweenTime = timeMult
layout.instance:JumpToIndex(idx)
local scr = scripts[idx +1]
current = scr
if current and props.OnSelected then task.spawn(props.OnSelected, scr) end -- on content selected
setSize(timeMult, 1, 1, 0, 3)
setSize(timeMult, 0, .8, .35, 2)
setSize(timeMult, -1, .6, 1, 1)
setSize(timeMult, -2, .4, 0, 1)
setSize(timeMult, 2, .8, -.35, 2)
setSize(timeMult, 3, .6, -1, 1)
setSize(timeMult, 4, .4, 0, 1)
end)
function comp:AddScript(props: {any})
local scr = {}
local inner
inner = ui:AddComponent("ScriptObj", {
OnFavourite = props.OnFavourite,
Description = props.Description,
IsFavourite = props.IsFavourite,
OnDelete = props.OnDelete,
IsFolder = props.IsFolder,
IsLocal = props.IsLocal,
Title = props.Title,
Image = props.Image,
NoFav = props.NoFav,
Slug = props.Slug,
OnClick = function()
if scr == current then
if props.Callback then props.Callback() end
return
end
local diff = framework.utils.tables.find(scripts, scr)
-(framework.utils.tables.find(scripts, current) or 0)
idx = slideIndex(diff)
updateList(framework.utils.maths.abs(diff))
end
})
local inst = ui:AddInstance("Frame", {
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
LayoutOrder = #scripts,
Parent = comp
}, inner)
scr.instance = inst
function scr:Remove()
local found = framework.utils.tables.find(scripts, scr)
if found then framework.utils.tables.remove(scripts, found) end
inst:Remove()
end
function scr:GetObject()
return inner
end
framework.utils.tables.insert(scripts, scr)
return scr
end
function comp:UpdateList()
updateList()
return self
end
function comp:Move(increment: number)
idx = slideIndex(increment)
updateList()
return self
end
function comp:GetScripts()
return framework.utils.tables.listCopy(scripts)
end
function comp:ClearScripts()
local scrs = self:GetScripts()
current = nil
scripts = {}
idx = -1
for _, scr in ipairs(scrs) do scr:Remove() end
return self
end
return comp
end)))
ui:CreateComponent("FilterSelector").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
local comp = ui:AddInstance("ScrollingFrame", {
Id = props.Id,
ScrollingDirection = Enum.ScrollingDirection.X,
AutomaticCanvasSize = Enum.AutomaticSize.X,
CanvasSize = UDim2.fromScale(0, 0),
AnchorPoint = props.AnchorPoint,
ScrollBarThickness = padding,
BackgroundTransparency = 1,
Position = props.Position,
BorderSizePixel = 0,
Size = props.Size,
ZIndex = 1
}, ui:AddInstance("UIListLayout", {
VerticalAlignment = Enum.VerticalAlignment.Center,
HorizontalAlignment = props.HorizontalAlignment,
FillDirection = Enum.FillDirection.Horizontal,
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, padding)
}))
local current = props.Filters[1]
for _, filter in ipairs(props.Filters) do
local img = ui:AddInstance("ImageLabel", {
Image = "rbxassetid://71605317317599",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, 0),
ScaleType = Enum.ScaleType.Fit,
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
ImageTransparency = 1,
Colors_Primary = {"ImageColor3"},
Tags = {"Colors_Primary"}
})
local lbl = ui:AddInstance("TextLabel", {
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(1, .5),
BackgroundTransparency = 1,
Text = filter.Title[1],
TextScaled = true,
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Body"},
Colors_Text_Primary = {"TextColor3"},
Country_Code = filter.Title
})
ui:AddInstance("TextButton", {
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
AutoButtonColor = false,
Parent = comp,
Text = "",
MouseButton1Click = function()
if current then current:Unselect() end
current = filter
filter:Select()
end
}, img, lbl, ui:AddInstance("UIAspectRatioConstraint", {
DominantAxis = Enum.DominantAxis.Height,
AspectRatio = 2
}))
function filter:Select()
img:Tween(tweens.default, { ImageTransparency = 0 })
if filter.Callback then filter.Callback(lbl.instance.Text) end
end
function filter:Unselect()
img:Tween(tweens.default, { ImageTransparency = 1 })
end
end
function comp:Refresh()
if not ui.Loaded then return end
if current then task.spawn(current.Select, current) end
end
--task.defer(comp.Refresh, comp)
return comp
end)))
ui:CreateComponent("HistorySelector").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
local padding = props.Padding or 8
-- Container principale
local comp = ui:AddInstance("ScrollingFrame", {
Id = props.Id,
ScrollingDirection = Enum.ScrollingDirection.X,
AutomaticCanvasSize = Enum.AutomaticSize.X,
CanvasSize = UDim2.fromScale(0, 0),
AnchorPoint = props.AnchorPoint,
ScrollBarThickness = padding,
BackgroundTransparency = 1,
Position = props.Position,
Visible = props.Visible,
BorderSizePixel = 0,
Size = props.Size,
ZIndex = 1
}, ui:AddInstance("UIListLayout", {
HorizontalAlignment = props.HorizontalAlignment or Enum.HorizontalAlignment.Left,
VerticalAlignment = Enum.VerticalAlignment.Center,
FillDirection = Enum.FillDirection.Horizontal,
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, padding)
}))
local current = {}
function comp:SetPath(path: {any})
for _, v in ipairs(current) do v:Remove() end
framework.utils.tables.clear(current)
for i, segment in ipairs(path) do
if i > 1 then
framework.utils.tables.insert(current, ui:AddInstance("TextLabel", {
AutomaticSize = Enum.AutomaticSize.X,
Size = UDim2.fromScale(0, 1),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
LayoutOrder = i *2,
Parent = comp,
Text = "›",
Tags = {"Colors_Text_Primary", "Fonts_Body"},
Colors_Text_Primary = {"TextColor3"}
}))
end
local isLast = (i == #path)
framework.utils.tables.insert(current, ui:AddInstance("TextButton", {
Size = UDim2.fromScale(0, isLast and 1 or .65),
TextTransparency = isLast and 0 or .5,
AutomaticSize = Enum.AutomaticSize.X,
BackgroundTransparency = 1,
AutoButtonColor = false,
Text = segment.name,
LayoutOrder = i *2 +1,
TextScaled = true,
Parent = comp,
Tags = {"Colors_Text_Primary", isLast and "Fonts_Body" or "Fonts_HeadingItalic"},
Colors_Text_Primary = {"TextColor3"},
MouseButton1Click = function() segment:Browse() end
}))
end
end
return comp
end)))
ui:CreateComponent("CloudScriptInfo").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(scr: {any}, props: {any})
if not scr.features then
local res = framework.dependencies.cloudscripts:FetchDetails(scr.slug)
if res then
scr.updatedAt = res.updatedAt
scr.features = res.features
scr.script = res.script
end
end
if not scr.script then
task.spawn(function()
local res = framework.dependencies.cloudscripts:FetchDetails(scr.slug)
scr.script = res and res.script or ""
end)
end
local innerImg = ui:AddInstance("ImageLabel", {
Image = scr.Image or "rbxassetid://71177623238811",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.6, .6),
BackgroundTransparency = 1,
BorderSizePixel = 0
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.25, 0)
}), ui:AddInstance("UIAspectRatioConstraint", {
AspectType = Enum.AspectType.ScaleWithParentSize,
DominantAxis = Enum.DominantAxis.Width,
AspectRatio = 16/9
}))
local img = ui:AddInstance("ImageLabel", {
Image = "rbxassetid://99756586318026", --71177623238811",
ImageColor3 = Color3.fromHex("#F00"),
Position = UDim2.fromScale(-.1, 0),
Size = UDim2.fromScale(.6, .75),
BackgroundTransparency = 1,
BorderSizePixel = 0
}, innerImg)
local comp
local fav = ui:AddInstance("ImageButton", {
Image = scr.isFavourite and "rbxassetid://137934368112423" or "rbxassetid://80350699155696",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.75, .75),
BackgroundTransparency = 1,
ImageColor3 = Color3.fromHex("#FDC41B"),
MouseButton1Click = function() comp:SetFavourite(scr.setFavourite()) end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))
comp = ui:AddInstance("ImageButton", {
BackgroundColor3 = Color3.fromHex("#000"),
Image = scr.Image or "rbxassetid://71177623238811",
ImageColor3 = Color3.fromHex("#202020"),
Position = UDim2.fromScale(0, 0),
Parent = ui:Get("MainFrame"),
Size = UDim2.fromScale(1, 1),
AutoButtonColor = false,
ZIndex = 499,
}, ui:AddInstance("Frame", {
BackgroundColor3 = Color3.fromHex("#FFF"),
Position = UDim2.fromScale(0, 0),
BackgroundTransparency = .5,
Size = UDim2.fromScale(1, 1)
}, ui:AddInstance("UIPadding", {
PaddingTop = UDim.new(.075, 0),
PaddingBottom = UDim.new(.075, 0),
PaddingLeft = UDim.new(.05, 0),
PaddingRight = UDim.new(.05, 0)
}), ui:AddInstance("UIGradient", {
Rotation = -90,
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#000")),
ColorSequenceKeypoint.new(.175, Color3.fromHex("#000")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#707070"))
}),
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(1, .35)
})
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Text = scr.title or "Cloud Script",
Position = UDim2.fromScale(0, .0),
AnchorPoint = Vector2.new(0, 0),
Size = UDim2.fromScale(.98, .1),
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Colors_Text_Primary", "Fonts_Title"},
Colors_Text_Primary = {"TextColor3"}
}), img, ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(0, .65),
Size = UDim2.fromScale(.2, .1),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Description"},
Country_Code = {"Creation date:","Data di creazione:","Ngày tạo:","Data de criação:","Tanggal pembuatan:","Дата создания:","Erstellungsdatum:","Fecha de creación:","Date de création :","创建日期:","作成日:","تاريخ الإنشاء:","निर्माण तिथि:","วันที่สร้าง:"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.2, .7),
Text = scr.createdAt and framework.utils.datetimes.unixToDAgo(framework.utils.datetimes.isoToUnix(scr.createdAt)) or "N/A",
AnchorPoint = Vector2.new(0, .5),
Size = UDim2.fromScale(.2, .07),
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Colors_Text_Primary", "Fonts_HeadingItalic"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(0, .73),
Size = UDim2.fromScale(.2, .1),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
Visible = props.updatedAt and true or false,
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Description"},
Country_Code = {"Update date:","Data di aggiornamento:","Ngày cập nhật:","Data de atualização:","Tanggal pembaruan:","Дата обновления:","Aktualisierungsdatum:","Fecha de actualización:","Date de mise à jour :","更新日期:","更新日:","تاريخ التحديث:","अपडेट की तिथि:","วันที่อัปเดต:"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.2, .78),
AnchorPoint = Vector2.new(0, .5),
Text = scr.updatedAt and framework.utils.datetimes.unixToDAgo(framework.utils.datetimes.isoToUnix(scr.updatedAt)) or "N/A",
Size = UDim2.fromScale(.2, .07),
BackgroundTransparency = 1,
TextScaled = true,
Visible = props.updatedAt and true or false,
Tags = {"Colors_Text_Primary", "Fonts_HeadingItalic"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("ImageLabel", {
Image = "rbxassetid://71545944975150",
Position = UDim2.fromScale(0, 1),
AnchorPoint = Vector2.new(0, 1),
Size = UDim2.fromScale(.05, .15),
BackgroundTransparency = 1
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
})), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Text = scr.game or "Game name N/A",
Position = UDim2.fromScale(.065, 1),
AnchorPoint = Vector2.new(0, 1),
Size = UDim2.fromScale(.3, .1),
BackgroundTransparency = 1,
TextScaled = true,
TextTransparency = .2,
Tags = {"Colors_Text_Primary", "Fonts_Body"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("Frame", {
BackgroundColor3 = Color3.fromHex("#000"),
Position = UDim2.fromScale(1, .12),
AnchorPoint = Vector2.new(1, 0),
Size = UDim2.fromScale(.5, .65),
BackgroundTransparency = .5,
ZIndex = 1,
}, ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(0, padding*2),
PaddingRight = UDim.new(0, padding*2),
PaddingLeft = UDim.new(0, padding*2),
PaddingTop = UDim.new(0, padding*2)
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Size = UDim2.fromScale(1, .075),
Position = UDim2.fromScale(0, 0),
AnchorPoint = Vector2.new(0, 0),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
Tags = {"Country_Code", "Fonts_Heading", "Colors_Text_Primary"},
Country_Code = {"DESCRIPTION","DESCRIZIONE","MÔ TẢ","DESCRIÇÃO","DESKRIPSI","ОПИСАНИЕ","BESCHREIBUNG","DESCRIPCIÓN","DESCRIPTION","描述","説明","الوصف","विवरण","รายละเอียด"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("TextLabel", { -- NO DESCR PROVIDED
Text = scr.features or "No description.", --"This highly optimized script leverages Roblox's experimental parallel execution framework to dynamically reshape in-game terrain using real-time quantum noise functions. By integrating asynchronous spatial threading with localized biome-awake AI prediction models, the script ensures seamless environmental transitions across all client-server instances. Includes built-in redundancy bypass for legacy terrain annchors",
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
Position = UDim2.fromScale(0, .075),
AnchorPoint = Vector2.new(0, 0),
Size = UDim2.fromScale(1, .9),
BackgroundTransparency = 1,
TextWrapped = true,
TextSize = padding*1.5,
Tags = {"Fonts_Heading", "Colors_Text_Primary"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.075, 0)
})), ui:AddInstance("ImageLabel", {
Id = "Popup_ExecuteButtonShadow",
BackgroundColor3 = Color3.fromHex("#000"),
Image = "rbxassetid://111537386489097",
Position = UDim2.fromScale(1.06, 1.1075),
Size = UDim2.fromScale(.35, .35),
AnchorPoint = Vector2.new(1,1),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.117
}), ui:AddInstance("ImageButton", {
Image = "rbxassetid://100628992603432",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.3, .3),
BackgroundTransparency = 1,
MouseButton1Click = function()
utils:AnimateCascade(ui:Get("Popup_ExecuteButtonShadow").instance, {
AnimateSelf = true,
SkipTransparency = true
})
if scr.verified then
return framework.execution:Execute(scr.script)
end
utils:ShowToast("ButtonToast", {
AdditionalText = {"Script not verified, execute?","Script non verificato, eseguire?","Tập lệnh chưa được xác minh, thực thi?","Script não verificado, executar?","Skrip belum diverifikasi, jalankan?","Скрипт не проверен, выполнить?","Skript nicht verifiziert, ausführen?","Script no verificado, ¿ejecutar?","Script non vérifié, exécuter ?","脚本未验证,执行?","スクリプトが未検証です、実行しますか?","البرنامج النصي غير مُتحقق منه، هل تريد التنفيذ؟","स्क्रिप्ट सत्यापित नहीं है, चलाएँ?","สคริปต์ไม่ได้รับการยืนยัน ต้องการเรียกใช้หรือไม่?"},
Style = "confirm",
Callback = function(res: boolean)
if not res then return end
framework.execution:Execute(scr.script)
end
})
end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- COPY BUTTON
Id = "Popup_CopyButtonShadow",
BackgroundColor3 = Color3.fromHex("#F00"),
Image = "rbxassetid://96112258106990",
Position = UDim2.fromScale(.885, 1),
Size = UDim2.fromScale(.112, .133),
AnchorPoint = Vector2.new(1,1),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.125
}), ui:AddInstance("ImageButton", {
Image = "rbxassetid://104350786247520",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.75, .75),
BackgroundTransparency = 1,
MouseButton1Click = function()
utils:AnimateCascade(ui:Get("Popup_CopyButtonShadow").instance, {
AnimateSelf = true,
SkipTransparency = true
})
framework.utils.clipboard:Set(scr.script)
end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- OPEN EDITOR BUTTON
Id = "Popup_OpenEditorButtonShadow",
BackgroundColor3 = Color3.fromHex("#F00"),
Image = "rbxassetid://96112258106990",
Position = UDim2.fromScale(.78, 1),
Size = UDim2.fromScale(.112, .133),
AnchorPoint = Vector2.new(1,1),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.125
}), ui:AddInstance("ImageButton", {
Image = "rbxassetid://100582884942929",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.75, .75),
BackgroundTransparency = 1,
MouseButton1Click = function()
utils:AnimateCascade(ui:Get("Popup_OpenEditorButtonShadow").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local editor = framework.utils.inputs.editors:Get("Main_Editor")
editor:AddTab(scr.title, scr.script)
utils:ClosePopup()
for _, page in ipairs(utils.pages) do
if page.Name == "Executor" then
ui.showPage(`Page_{page.Name}`, page.Indicator)
break
end
end
end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- FAVS BUTTON
Image = "rbxassetid://96112258106990",
Position = UDim2.fromScale(.675, 1),
Size = UDim2.fromScale(.112, .133),
AnchorPoint = Vector2.new(1,1),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.125
}), fav)))
scr.loadImage(comp.instance, true)
scr.loadImage(innerImg.instance, true)
function comp:SetFavourite(status: boolean)
fav.instance.Image = status and framework.protected:ProtectAsset("rbxassetid://137934368112423") or "rbxassetid://80350699155696"
if props.component then props.component:SetFavourite(status) end
end
return comp
end)))
ui:CreateComponent("LocalScriptInfo").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(file: {any}, props: {any})
local src, content = file:Read()
content = content or {}
src = src or ""
local comp
local fav = ui:AddInstance("ImageButton", {
Image = file:GetProperty("favourite") and "rbxassetid://137934368112423" or "rbxassetid://80350699155696",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.75, .75),
BackgroundTransparency = 1,
ImageColor3 = Color3.fromHex("#FDC41B"),
MouseButton1Click = function()
local status = not (file:GetProperty("favourite") and true or false)
file:SetProperty({ favourite = status })
comp:SetFavourite(status)
framework.dependencies.editortabs:GetSaved("tabs")
end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))
local autoexec
local updateAutoexec = function()
autoexec.instance.ImageColor3 = (not not file:GetProperty("autoexecute")) and Color3.fromRGB(255, 0, 0) or Color3.fromRGB(85, 170, 0)
end
local refreshTabs = function()
local tabs = framework.dependencies.editortabs
if utils.tabsMode == "files" then return end
for _, tab in ipairs(tabs:GetTabs()) do
local state = tab:GetProperty(utils.tabsMode) and true or false
tab:GetData().instance.instance.Visible = state
tabs:GetSavedByProperties({
[utils.tabsMode] = {true}
}, "tabs")
end
end
autoexec = ui:AddInstance("ImageButton", {
Image = "rbxassetid://115061506034125",
Position = UDim2.fromScale(.675, .685),
Size = UDim2.fromScale(.05, .1),
BackgroundTransparency = 1,
MouseButton1Click = function()
local status = not (file:GetProperty("autoexecute") and true or false)
file:SetProperty({ autoexecute = status })
autoexec.instance.ImageColor3 = status and Color3.fromRGB(255, 0, 0) or Color3.fromRGB(85, 170, 0)
refreshTabs()
end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}))
comp = ui:AddInstance("ImageButton", {
Image = props.Image or "rbxassetid://71177623238811",
ImageColor3 = Color3.fromHex("#202020"),
Position = UDim2.fromScale(0, 0),
Parent = ui:Get("MainFrame"),
Size = UDim2.fromScale(1, 1),
AutoButtonColor = false,
ZIndex = 499
}, ui:AddInstance("Frame", {
BackgroundColor3 = Color3.fromHex("#fff"),
Position = UDim2.fromScale(0, 0),
BackgroundTransparency = .5,
Size = UDim2.fromScale(1, 1)
}, ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(.075, 0),
PaddingRight = UDim.new(.05, 0),
PaddingLeft = UDim.new(.05, 0),
PaddingTop = UDim.new(.075, 0)
}), ui:AddInstance("UIGradient", {
Rotation = -90,
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHex("#000")),
ColorSequenceKeypoint.new(.175, Color3.fromHex("#000")),
ColorSequenceKeypoint.new(1, Color3.fromHex("#707070"))
}),
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(1, .35)
})
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Text = file.name or "Local Script",
Position = UDim2.fromScale(0, .0),
AnchorPoint = Vector2.new(0, 0),
Size = UDim2.fromScale(.98, .1),
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Colors_Text_Primary", "Fonts_Title"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.675, .15),
Size = UDim2.fromScale(.3, .075),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Description"},
Country_Code = {"Creation date:","Data di creazione:","Ngày tạo:","Data de criação:","Tanggal pembuatan:","Дата создания:","Erstellungsdatum:","Fecha de creación:","Date de création :","创建日期:","作成日:","تاريخ الإنشاء:","निर्माण तिथि:","วันที่สร้าง:"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("TextLabel", {
Text = framework.utils.datetimes.unixToDAgo(content.creation or os.time()),
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.675, .25),
AnchorPoint = Vector2.new(0, .5),
Size = UDim2.fromScale(.2, .07),
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Colors_Text_Primary", "Fonts_HeadingItalic"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.675, .32),
Size = UDim2.fromScale(.3, .075),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Description"},
Country_Code = {"Last viewed:","Ultima visualizzazione:","Lần cuối xem:","Última visualização:","Terakhir dilihat:","Последний просмотр:","Zuletzt angesehen:","Última visualización:","Dernière consultation :","上次查看:","最終閲覧:","آخر مشاهدة:","अंतिम बार देखा गया:","การเข้าชมล่าสุด:"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("TextLabel", {
Text = framework.utils.datetimes.unixToDAgo(content.viewed or os.time()),
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.675, .42),
AnchorPoint = Vector2.new(0, .5),
Size = UDim2.fromScale(.2, .07),
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Colors_Text_Primary", "Fonts_HeadingItalic"},
Colors_Text_Primary = {"TextColor3"}
}), autoexec, ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.725, .7),
Size = UDim2.fromScale(.3, .05),
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Heading"},
Country_Code = {"Auto-Execute","Auto-Esecuzione","Tự động thực thi","Auto-executar","Eksekusi Otomatis","Автовыполнение","Automatische Ausführung","Ejecución automática","Exécution automatique","自动执行","自動実行","التنفيذ التلقائي","स्वचालित निष्पादन","เรียกใช้โดยอัตโนมัติ"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("Frame", {
BackgroundColor3 = Color3.fromHex("#000"),
Position = UDim2.fromScale(0, .12),
Size = UDim2.fromScale(.65, .65),
AnchorPoint = Vector2.new(0, 0),
BackgroundTransparency = .5,
ZIndex = 1,
}, ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(0, padding*2),
PaddingRight = UDim.new(0, padding*2),
PaddingLeft = UDim.new(0, padding*2),
PaddingTop = UDim.new(0, padding*2)
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(0, 0),
Size = UDim2.fromScale(1, .075),
AnchorPoint = Vector2.new(0, 0),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
Text = "CONTENT",
Tags = {"Country_Code", "Fonts_Heading", "Colors_Text_Primary"},
Country_Code = {"CONTENT","CONTENUTO","Nội dung","Conteúdo","Konten","Контент","Inhalt","Contenido","Contenu","内容","コンテンツ","المحتوى","सामग्री","เนื้อหา"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddComponent("CodeEditor", {
Position = UDim2.fromScale(0, .1),
AnchorPoint = Vector2.new(0, 0),
Size = UDim2.fromScale(1, .7),
Text = src,
Focused = framework.protected:GCProtect(function()
utils:EditorMode(true, .175)
--framework.utils.inputs.editors:Get("Main_Editor"):ToggleHighlighter(false)
end),
FocusLost = framework.protected:GCProtect(function()
utils:EditorMode(false)
--local editor = framework.utils.inputs.editors:Get("Main_Editor")
--local tabs = framework.dependencies.editortabs
--local tab = tabs:GetSelection()
--if not tab then return end
--tab:SetSource(editor:GetText())
--editor:ToggleHighlighter(true)
end)
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.075, 0)
})), ui:AddInstance("ImageLabel", { -- EXECUTE BUTTON
BackgroundColor3 = Color3.fromHex("#000"),
Position = UDim2.fromScale(1.06, 1.1075),
Image = "rbxassetid://111537386489097",
Size = UDim2.fromScale(.35, .35),
AnchorPoint = Vector2.new(1,1),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.1170212766
}), ui:AddInstance("ImageButton", {
Image = "rbxassetid://100628992603432",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.3, .3),
BackgroundTransparency = 1,
MouseButton1Click = function() framework.execution:Execute(src) end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- COPY BUTTON
BackgroundColor3 = Color3.fromHex("#F00"),
Image = "rbxassetid://96112258106990",
Position = UDim2.fromScale(.885, 1),
Size = UDim2.fromScale(.112, .133),
AnchorPoint = Vector2.new(1,1),
BackgroundTransparency = 1,
ZIndex = 99,
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.125
}), ui:AddInstance("ImageButton", {
Image = "rbxassetid://104350786247520",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.75, .75),
BackgroundTransparency = 1,
MouseButton1Click = function() framework.utils.clipboard:Set(src) end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- OPEN EDITOR BUTTON
BackgroundColor3 = Color3.fromHex("#F00"),
Image = "rbxassetid://96112258106990",
Position = UDim2.fromScale(.78, 1),
Size = UDim2.fromScale(.112, .133),
AnchorPoint = Vector2.new(1,1),
BackgroundTransparency = 1,
ZIndex = 99,
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.125
}), ui:AddInstance("ImageButton", {
Image = "rbxassetid://100582884942929",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.75, .75),
BackgroundTransparency = 1,
MouseButton1Click = function()
local editor = framework.utils.inputs.editors:Get("Main_Editor")
editor:AddTab(file.name, src)
utils:ClosePopup()
for _, page in ipairs(utils.pages) do
if page.Name == "Executor" then
ui.showPage(`Page_{page.Name}`, page.Indicator)
break
end
end
end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- FAVS BUTTON
Image = "rbxassetid://96112258106990",
Position = UDim2.fromScale(.675, 1),
Size = UDim2.fromScale(.112, .133),
AnchorPoint = Vector2.new(1,1),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.125
}), fav), ui:AddInstance("ImageLabel", { -- DELETE SCRIPT BUTTON
Image = "rbxassetid://96112258106990",
Position = UDim2.fromScale(0, 1),
Size = UDim2.fromScale(.112, .133),
AnchorPoint = Vector2.new(0,1),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.125
}), ui:AddInstance("ImageButton", {
Image = "rbxassetid://80286816747552",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.75, .75),
BackgroundTransparency = 1,
MouseButton1Click = function()
utils:ShowToast("ButtonToast", {
AdditionalText = {`Delete {file.name}?`,`Eliminare {file.name}?`,`Xóa {file.name}?`,`Excluir {file.name}?`,`Hapus {file.name}?`,`Удалить {file.name}?`,`{file.name} löschen?`,`¿Eliminar {file.name}?`,`Supprimer {file.name}?`,`删除 {file.name}?`,`{file.name} を削除しますか?`,`هل تريد حذف {file.name}؟`,`{file.name} हटाएँ?`,`ลบ {file.name}?`},
AdditionalTitle = {"Delete file","Eliminare file","Xóa tệp","Excluir arquivo","Hapus file","Удалить файл","Datei löschen","¿Eliminar archivo?","Supprimer le fichier","删除文件","ファイルを削除","حذف الملف","फ़ाइल हटाएँ","ลบไฟล์"},
Style = "confirm",
Callback = function(res: boolean)
if not res then return end
file:Delete()
framework.dependencies.scripthub:Browse(nil, true, "scripthub")
framework.dependencies.editortabs:GetSaved("tabs")
utils:ClosePopup()
end
})
end
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
})))))
function comp:SetFavourite(status: boolean)
fav.instance.Image = status and framework.protected:ProtectAsset("rbxassetid://137934368112423") or "rbxassetid://80350699155696"
if props.component then props.component:SetFavourite(status) end
refreshTabs()
end
updateAutoexec()
return comp
end)))
ui:CreateComponent("CodeEditor").OnCreating:Connect(framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(props: {any})
local sizes = ui:AddInstance("UISizeConstraint", {
MaxSize = Vector2.new(math.huge, math.huge),
MinSize = Vector2.zero
})
local lines = ui:AddInstance("TextLabel", {
FontFace = Font.new("rbxasset://fonts/families/Inconsolata.json", Enum.FontWeight.Regular, Enum.FontStyle.Normal),
TextXAlignment = Enum.TextXAlignment.Right,
TextYAlignment = Enum.TextYAlignment.Top,
AutomaticSize = Enum.AutomaticSize.Y,
Position = UDim2.fromScale(.025, 0),
Size = UDim2.fromScale(.05, 0),
BackgroundTransparency = 1,
TextTransparency = .45,
Text = "",
Tags = {"FontSizes_Editor", "Colors_Text_Primary", "Fonts_Editor"},
Colors_Text_Primary = {"TextColor3"}
}, sizes)
local textbox = ui:AddInstance("TextBox", {
Id = props.Id,
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
AutomaticSize = Enum.AutomaticSize.XY,
Size = UDim2.fromScale(1, 1),
FocusLost = props.FocusLost,
BackgroundTransparency = 1,
ClearTextOnFocus = false,
Focused = props.Focused,
MultiLine = true,
Tags = {"FontSizes_Editor", "Colors_Text_Primary", "Fonts_Editor"},
Colors_Text_Primary = {"TextColor3"}
})
local scrollx = ui:AddInstance("ScrollingFrame", {
ScrollingDirection = Enum.ScrollingDirection.X,
AutomaticCanvasSize = Enum.AutomaticSize.X,
AutomaticSize = Enum.AutomaticSize.Y,
CanvasSize = UDim2.fromScale(0, 0),
Position = UDim2.fromScale(.1, 0),
ScrollBarThickness = padding,
Size = UDim2.fromScale(.9, .7),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Colors_Primary = {"ScrollBarImageColor3"},
Tags = {"Colors_Primary"}
}, textbox, ui:AddInstance("Frame", {
Size = UDim2.fromOffset(padding * 10, padding*10),
Position = UDim2.fromScale(0, 1),
BackgroundTransparency = 1,
Tags = {"UI_WindowState"},
UI_WindowState = {
Size = {false, UDim2.fromOffset(padding * 12.5, padding*12.5), UDim2.fromOffset(padding * 15, padding*15)}
}
}))
local overlay = ui:AddInstance("Frame", {
BackgroundColor3 = Color3.fromRGB(0, 0, 0),
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = .5,
Visible = false,
ZIndex = 2
}, ui:AddInstance("Frame", {
BackgroundColor3 = Color3.fromRGB(138, 138, 138),
Position = UDim2.fromScale(.5, .1),
AnchorPoint = Vector2.new(.5, 0),
Size = UDim2.fromScale(.5, .1)
}, ui:AddInstance("TextLabel", {
Position = UDim2.fromScale(.5, .1),
AnchorPoint = Vector2.new(.5, 0),
Size = UDim2.fromScale(.9, .75),
BackgroundTransparency = 1,
TextScaled = true,
Country_Code = {"Text too long to be edited, read only.","Testo troppo lungo per essere modificato, solo lettura.","Văn bản quá dài để chỉnh sửa, chỉ đọc.","Texto muito longo para ser editado, somente leitura.","Teks terlalu panjang untuk diedit, hanya baca.","Текст слишком длинный для редактирования, только для чтения.","Text zu lang zum Bearbeiten, nur Lesezugriff.","Texto demasiado largo para editar, solo lectura.","Texte trop long pour être modifié, lecture seule.","文本过长无法编辑,仅可读取。","テキストが長すぎて編集できません。読み取り専用です。","النص طويل جدًا ولا يمكن تحريره، للقراءة فقط.","पाठ संपादन के लिए बहुत लंबा है, केवल पढ़ने के लिए।","ข้อความยาวเกินไป ไม่สามารถแก้ไขได้ อ่านอย่างเดียว"},
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Editor"}
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(1, 0)
})))
local editor = framework.utils.inputs.editors.new(props.Id)
local scrolly = ui:AddInstance("ScrollingFrame", {
ScrollingDirection = Enum.ScrollingDirection.Y,
AutomaticCanvasSize = Enum.AutomaticSize.Y,
CanvasSize = UDim2.fromScale(0, 0),
AnchorPoint = props.AnchorPoint,
ScrollBarThickness = padding,
BackgroundTransparency = 1,
Position = props.Position,
BorderSizePixel = 0,
Size = props.Size,
ZIndex = 1,
Colors_Primary = {"ScrollBarImageColor3"},
Tags = {"Colors_Primary"},
OnRemoved = function() editor:Remove() end
}, lines, scrollx, overlay)
local highlightmaxchars = 10000
local constraint = sizes.instance
local updateLines = framework.protected:GCProtect(function()
local y = scrollx.instance.AbsoluteSize.Y
constraint.MinSize = Vector2.zero -- Prevent roblox from being too smart
constraint.MaxSize = Vector2.new(math.huge, math.huge)
constraint.MaxSize = Vector2.new(math.huge, y)
y = framework.utils.maths.clamp(y, constraint.MaxSize.Y, math.huge)
constraint.MinSize = Vector2.new(0, y)
end)
updateLines()
scrollx.instance:GetPropertyChangedSignal("AbsoluteSize"):Connect(updateLines)
textbox.instance:GetPropertyChangedSignal("TextEditable"):Connect(function()
overlay.instance.Visible = not textbox.instance.TextEditable
end)
editor:ConnectHighlighter(textbox, highlightmaxchars)
editor:SetHighlighterColors(ui.highColors)
editor:ConnectLinesCounter(lines)
editor:SetText(props.Text or "")
return scrolly
end)))
ui:CreateComponent("SettingToggle").OnCreating:Connect(framework.protected:GCProtect(function(props: {any})
local state, toggle, knob = false, nil, nil
local function updateColor(color)
if state then
return toggle:Tween(tweens.default, {
BackgroundColor3 = color,
BackgroundTransparency = 0
})
end
toggle:Tween(tweens.default, {
BackgroundColor3 = Color3.fromHex("#555"),
BackgroundTransparency = 0
})
end
local function update(enabled: boolean?)
state = enabled
local goalPos = enabled and UDim2.fromScale(.8, .5) or UDim2.fromScale(.2, .5)
knob:Tween(tweens.default, { Position = goalPos })
local succ, err = pcall(Color3.fromHex, framework.settings:GetSetting("Colors_Primary"))
updateColor(succ and err or Color3.fromHex(framework.settings:GetDefaultSetting("Colors_Primary")))
end
knob = ui:AddInstance("Frame", {
Position = UDim2.fromScale(.8, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.65, .8),
BackgroundTransparency = 1
}, ui:AddInstance("UIAspectRatioConstraint"), ui:AddInstance("Frame", {
BackgroundColor3 = Color3.fromHex("#fff"),
Size = UDim2.fromScale(1, 1)
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(1, 0)
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(1, 0)
}), ui:AddInstance("UIAspectRatioConstraint")))
toggle = ui:AddInstance("ImageButton", {
Position = UDim2.fromScale(.875, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.15, .5),
Tags = {"Colors_Primary"},
Colors_Primary = updateColor,
MouseButton1Click = framework.protected:GCProtect(function()
state = not state
update(state)
props.Callback(state)
end)
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(1, 0)
}), knob)
local comp = ui:AddInstance("Frame", {
Id = props.Id or ("Setting_" .. (props.Title:gsub("%s+", ""))),
BackgroundColor3 = Color3.fromHex("#000"),
ZIndex = -(props.LayoutOrder or 0),
LayoutOrder = props.LayoutOrder,
Size = UDim2.fromScale(.9, .2),
BackgroundTransparency = .7,
Position = props.Position
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(0.25, 0)
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Bottom,
Position = UDim2.fromScale(.025, .1),
TextColor3 = Color3.fromHex("#fff"),
Size = UDim2.fromScale(.6, .4),
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Country_Code", "Fonts_Heading"},
Country_Code = props.Title
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
Position = UDim2.fromScale(.025, .85),
TextColor3 = Color3.fromHex("#fff"),
AnchorPoint = Vector2.new(0, 1),
Size = UDim2.fromScale(.6, .3),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
Tags = {"Country_Code", "Fonts_Description"},
Country_Code = props.Description
}), toggle)
knob.instance:GetPropertyChangedSignal("Position"):Connect(function()
update(state)
end)
task.defer(function()
update(props.Enabled())
end)
return comp
end))
ui:CreateComponent("SettingDropdown").OnCreating:Connect(framework.protected:GCProtect(function(props: {any})
local btn, list, content, listLayout
local lastText = props.Options[1].Name
btn = ui:AddInstance("TextButton", {
Text = utils:Translate(lastText),
Position = UDim2.fromScale(.975, .5),
AnchorPoint = Vector2.new(1, .5),
Size = UDim2.fromScale(.25, .5),
BackgroundTransparency = .85,
TextScaled = true,
Tags = {"Country_Code", "Fonts_Body","Colors_Text_Primary","Colors_Primary"},
Colors_Primary = {"BackgroundColor3"},
Colors_Text_Primary = {"TextColor3"},
On_Country_Code = framework.protected:GCProtect(function()
btn.instance.Text = utils:Translate(lastText)
end),
MouseButton1Click = framework.protected:GCProtect(function()
list.instance.Visible = not list.instance.Visible
end)
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.35, 0)
}), ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(0, padding),
PaddingRight = UDim.new(0, padding),
PaddingLeft = UDim.new(0, padding),
PaddingTop = UDim.new(0, padding)
}))
-- frame scrollabile
list = ui:AddInstance("ScrollingFrame", {
BackgroundColor3 = Color3.fromHex("#000"),
Position = UDim2.fromScale(.975, 1.05),
CanvasSize = UDim2.new(0, 0, 0, 0),
Size = UDim2.fromScale(.25, 2.5), -- altezza massima visibile (2.5 ~ 40% schermo)
AnchorPoint = Vector2.new(1,0),
BackgroundTransparency = .15,
ClipsDescendants = true,
ScrollBarThickness = 4,
BorderSizePixel = 0,
Visible = false,
ZIndex = 10,
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.15, 0)
}), ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(0.05, 0),
PaddingRight = UDim.new(0.05, 0),
PaddingLeft = UDim.new(0.05, 0),
PaddingTop = UDim.new(0.05, 0)
}))
-- contenitore autosize
content = ui:AddInstance("Frame", {
Size = UDim2.fromScale(1, 0),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
Parent = list.instance
}, ui:AddInstance("UIListLayout", {
FillDirection = Enum.FillDirection.Vertical,
Padding = UDim.new(0, 10), -- padding maggiore per touch
SortOrder = Enum.SortOrder.LayoutOrder
}))
listLayout = content.instance:FindFirstChildOfClass("UIListLayout")
-- opzioni
for _, option in ipairs(props.Options) do
ui:AddInstance("TextButton", {
Parent = content.instance,
Size = UDim2.new(1, 0, 0, 30), -- altezza fissa in pixel
BackgroundTransparency = 1,
TextScaled = true,
TextWrapped = true,
Tags = {"Country_Code", "Colors_Text_Primary","Fonts_Body"},
Colors_Text_Primary = {"TextColor3"},
Country_Code = option.Name,
MouseButton1Click = framework.protected:GCProtect(function()
btn.instance.Text = utils:Translate(option.Name)
lastText = option.Name
list.instance.Visible = false
props.Callback(option.Value)
end)
})
end
-- aggiorna canvas size in base al contenitore
listLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
list.instance.CanvasSize = UDim2.new(0, 0, 0, listLayout.AbsoluteContentSize.Y + 50)
end)
if props.SelectedValue then
task.defer(function()
local val = props.SelectedValue()
for _, option in ipairs(props.Options) do
if val == option.Value then
lastText = option.Name
btn.instance.Text = utils:Translate(option.Name)
break
end
end
end)
end
local comp = ui:AddInstance("Frame", {
Id = props.Id or `Setting_{props.Title:gsub("%s+", "")}`,
BackgroundColor3 = Color3.fromHex("#000"),
ZIndex = -(props.LayoutOrder or 0),
LayoutOrder = props.LayoutOrder,
Size = UDim2.fromScale(.9, .2),
BackgroundTransparency = .7,
Position = props.Position
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(0.25, 0)
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Bottom,
Position = UDim2.fromScale(.025, .1),
TextColor3 = Color3.fromHex("#fff"),
Size = UDim2.fromScale(.6, .4),
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Country_Code", "Fonts_Heading"},
Country_Code = props.Title
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
Position = UDim2.fromScale(.025, .85),
TextColor3 = Color3.fromHex("#fff"),
AnchorPoint = Vector2.new(0, 1),
Size = UDim2.fromScale(.6, .3),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
Tags = {"Country_Code", "Fonts_Description"},
Country_Code = props.Description
}), btn, list)
return comp
end))
ui:CreateComponent("SettingNumeric").OnCreating:Connect(framework.protected:GCProtect(function(props: {any})
props.Increment = props.Increment or 1
props.Min = props.Min or -math.huge
props.Max = props.Max or math.huge
props.Value = props.Value or 0
local value = ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Center,
TextYAlignment = Enum.TextYAlignment.Center,
Size = UDim2.fromScale(.35, 1),
Text = tostring(props.Value),
BackgroundTransparency = 1,
TextScaled = true,
LayoutOrder = 2,
Tags = {"Fonts_Body","Colors_Text_Primary"},
Colors_Text_Primary = {"TextColor3"}
})
local function setNum(num: number)
num = framework.utils.maths.clamp(num, props.Min, props.Max)
if props.Value ~= num then
props.Value = num
value.instance.Text = tostring(num)
props.Callback(num)
end
end
local process
local stop = framework.protected:GCProtect(function()
if process then task.cancel(process) end
end)
local down = ui:AddInstance("TextButton", {
Size = UDim2.fromScale(.25, 1),
BackgroundTransparency = .2,
TextScaled = true,
LayoutOrder = 1,
Text = "−",
MouseButton1Up = stop,
MouseButton1Click = framework.protected:GCProtect(function()
setNum(props.Value - props.Increment)
end),
Tags = {"Fonts_Body","Colors_Text_Primary","Colors_Primary"},
Colors_Primary = {"BackgroundColor3"},
Colors_Text_Primary = {"TextColor3"}
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(1, 0)
}))
local up = ui:AddInstance("TextButton", {
Size = UDim2.fromScale(.25, 1),
BackgroundTransparency = .2,
TextScaled = true,
LayoutOrder = 3,
Text = "+",
MouseButton1Up = stop,
MouseButton1Click = framework.protected:GCProtect(function()
setNum(props.Value + props.Increment)
end),
Tags = {"Fonts_Body","Colors_Text_Primary","Colors_Primary"},
Colors_Primary = {"BackgroundColor3"},
Colors_Text_Primary = {"TextColor3"}
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(1, 0)
}))
local comp = ui:AddInstance("Frame", {
Id = props.Id or ("Setting_" .. (props.Title:gsub("%s+", ""))),
BackgroundColor3 = Color3.fromHex("#000"),
ZIndex = -(props.LayoutOrder or 0),
LayoutOrder = props.LayoutOrder,
Size = UDim2.fromScale(.9, .2),
BackgroundTransparency = .7,
Position = props.Position
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(0.25, 0)
}), ui:AddInstance("TextLabel", {
TextYAlignment = Enum.TextYAlignment.Bottom,
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.025, .1),
TextColor3 = Color3.fromHex("#fff"),
Size = UDim2.fromScale(.6, .4),
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Country_Code", "Fonts_Heading"},
Country_Code = props.Title
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
Position = UDim2.fromScale(.025, .85),
TextColor3 = Color3.fromHex("#fff"),
AnchorPoint = Vector2.new(0, 1),
Size = UDim2.fromScale(.6, .3),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
Tags = {"Country_Code", "Fonts_Description"},
Country_Code = props.Description
}), ui:AddInstance("Frame", {
AnchorPoint = Vector2.new(1, .5),
Position = UDim2.fromScale(.975, .5),
Size = UDim2.fromScale(.38, .55),
BackgroundTransparency = 1
}, ui:AddInstance("UIListLayout", {
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Center,
FillDirection = Enum.FillDirection.Horizontal,
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 6)
}), down, value, up))
-- press & hold
local hup = framework.utils.inputs.buttons.holdable(up)
hup.OnShortPress:Connect(framework.protected:GCProtect(function()
setNum(props.Value + props.Increment)
end))
--[[hup.OnLongPress:Connect(framework.protected:GCProtect(function()
local tim = .5
process = task.spawn(function()
while true do
setNum(props.Value + props.Increment)
task.wait(tim)
tim = math.max(.1, tim - .1)
end
end)
end))]]
local hdown = framework.utils.inputs.buttons.holdable(down)
hdown.OnShortPress:Connect(framework.protected:GCProtect(function()
setNum(props.Value - props.Increment)
end))
--[[hdown.OnLongPress:Connect(framework.protected:GCProtect(function()
local tim = .5
process = task.spawn(function()
while true do
setNum(props.Value - props.Increment)
task.wait(tim)
tim = math.max(.1, tim - .1)
end
end)
end))]]
task.defer(function()
setNum(props.StartValue())
end)
return comp
end))
local pages do
local user = framework.protected:GetService("Players").LocalPlayer
local displayName, aiName = user.DisplayName, "Arcy"
pages = {
{ Name = "Home", Icon = "rbxassetid://16548334799",
Content = ui:AddInstance("Frame", {Id = "Home"},
ui:AddInstance("ImageLabel", {
Id = "ProfilePanelBackground",
Position = UDim2.fromScale(.03, .15),
Size = UDim2.fromScale(.375, .2),
BackgroundTransparency = 1,
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.28, 0)
}), ui:AddInstance("ImageLabel", {
Id = "UserPFP",
AnchorPoint = Vector2.new(0, .5),
Position = UDim2.fromScale(.05, .5),
Size = UDim2.fromScale(.3, .725),
BackgroundTransparency = 1,
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.35, 0)
}), ui:AddInstance("ImageLabel", {
Id = "PFPOverlay",
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
Colors_Primary = {"ImageColor3"},
Tags = {"Colors_Primary"}
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.35, 0)
})), ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
})), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.3035, .2),
Size = UDim2.fromScale(.6, .2),
BackgroundTransparency = 1,
TextScaled = true,
Country_Code = {"Welcome","Benvenuto","Chào mừng","Bem-vindo","Selamat datang","Добро пожаловать","Willkommen","Bienvenido","Bienvenue","欢迎","ようこそ","مرحبًا","स्वागत","ยินดีต้อนรับ"},
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Description"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddComponent("MovingText", {
Id = "MagicNicknameContainer",
Position = UDim2.fromScale(.3035, .45),
Size = UDim2.fromScale(.625, .35),
BackgroundTransparency = 1,
ClipsDescendants = true,
Text = displayName
})), ui:AddInstance("ImageButton", {
Id = "HomeTipBackground",
AnchorPoint = Vector2.new(1, 0),
Position = UDim2.fromScale(.58, .15),
Size = UDim2.fromScale(.16, .2),
BackgroundTransparency = 1,
AutoButtonColor = false,
MouseButton1Click = framework.protected:GCProtect(function()
framework.dependencies.plugins:Open("AXS_Hub", ui:Get("ExtensionContent"))
for _, page in ipairs(utils.pages) do
if page.Name == "Extensions" then
ui.showPage(`Page_{page.Name}`, page.Indicator)
break
end
end
end)
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.28, 0)
}), ui:AddInstance("ImageLabel", {
Image = "rbxassetid://125983090347378",
AnchorPoint = Vector2.new(.5, .5),
Position = UDim2.fromScale(.5, .35),
Size = UDim2.fromScale(.75,.75),
ScaleType = Enum.ScaleType.Fit,
BackgroundTransparency = 1
}), ui:AddInstance("TextLabel", {
Text = "Arceus Hub",
BackgroundTransparency = 1,
Position = UDim2.fromScale(.5, .75),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.8, .2),
TextScaled = true,
Tags = {"Fonts_Body", "Colors_Text_Primary"},
Colors_Text_Primary = {"TextColor3"}
})), ui:AddInstance("ImageLabel", {
Id = "BestScriptsPanelBackground",
Position = UDim2.fromScale(.03, .37),
Size = UDim2.fromScale(.55, .36),
BackgroundTransparency = 1,
ClipsDescendants = true,
Colors_Secondary = {"BackgroundColor3"},
Tags = {"Colors_Secondary"}
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.15, 0)
}), ui:AddInstance("TextLabel", {
Position = UDim2.fromScale(.05, .05),
Size = UDim2.fromScale(.9, .1),
BackgroundTransparency = 1,
TextScaled = true,
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Body"},
Country_Code = {"Best Scripts","Migliori Scripts","Các kịch bản tốt nhất","Melhores scripts","Skrip terbaik","Лучшие скрипты","Beste Skripte","Mejores scripts","Meilleurs scripts","最佳脚本","最高のスクリプト","أفضل البرامج النصية","सर्वश्रेष्ठ स्क्रिप्ट","สคริปต์ที่ดีที่สุด"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddComponent("ContentBar", {
Id = "BestScriptsBar",
Position = UDim2.fromScale(.5, .575),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(1, .725)
})), ui:AddInstance("Frame", {
Id = "AIPanelBackground",
Position = UDim2.fromScale(.03, .75),
Size = UDim2.fromScale(.55, .2),
BackgroundTransparency = .5,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
ClipsDescendants = true,
Tags = {"Colors_Secondary"}
}, ui:AddInstance("UIGradient", {
Id = "AIPanelGradient",
Rotation = 10,
Color = ColorSequence.new({
ColorSequenceKeypoint.new(.0, Color3.fromHex("#15A6FE")),
ColorSequenceKeypoint.new(.33, Color3.fromHex("#F473EC")),
ColorSequenceKeypoint.new(.66, Color3.fromHex("#FF3869")),
ColorSequenceKeypoint.new(1.0, Color3.fromHex("#FF3869"))
})
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.3, 0)
}), ui: AddInstance("ImageButton", {
Id = "AIPanelBackgroundOverlay",
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
AutoButtonColor = false,
ZIndex = 30,
MouseButton1Click = framework.protected:GCProtect(function()
for _, page in ipairs(utils.pages) do
if page.Name == "ArceusIntelligence" then
ui.showPage(`Page_{page.Name}`, page.Indicator)
break
end
end
end)
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.3, 0)
}), ui:AddInstance("TextLabel", {
AnchorPoint = Vector2.new(1, 0),
TextXAlignment = Enum.TextXAlignment.Right,
Position = UDim2.fromScale(.95, .1),
Size = UDim2.fromScale(.35, .15),
BackgroundTransparency = 1,
TextScaled = true,
Country_Code = {"Arceus Intelligence"},
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Caption"},
Colors_Text_Primary = {"TextColor3"},
}), ui:AddInstance("TextLabel", {
AnchorPoint = Vector2.new(0, 1),
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.3, .425),
Size = UDim2.fromScale(.2, .15),
BackgroundTransparency = 1,
TextScaled = true,
Country_Code = {"Let's talk","Parliamo","Hãy nói chuyện","Vamos conversar","Mari bicara","Давай поговорим","Lass uns reden","Hablemos","Parlons","让我们谈谈","話しましょう","هيا نتحدث","चलिए बात करते हैं","มาคุยกันเถอะ"},
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Body"},
Colors_Text_Primary = {"TextColor3"},
}), ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Left,
AnchorPoint = Vector2.new(0, .5),
Position = UDim2.fromScale(.3 , .55),
Size = UDim2.fromScale(.8, .275),
BackgroundTransparency = 1,
TextTransparency = .5,
TextScaled = true,
Country_Code = {`Hello! I'm {aiName}!`,`Ciao! Sono {aiName}!`,`Xin chào! Tôi là {aiName}!`,`Olá! Eu sou {aiName}!`,`Halo! Saya {aiName}!`,`Привет! Я {aiName}!`,`Hallo! Ich bin {aiName}!`,`Hola! Soy {aiName}!`,`Bonjour! Je suis {aiName}!`,`你好!我是 {aiName}!`,`こんにちは!私は {aiName} です!`,`مرحبًا! أنا {aiName}!`,`नमस्ते! मैं {aiName} हूँ!`,`สวัสดี! ฉันคือ {aiName}!`},
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Description"},
Colors_Text_Primary = {"TextColor3"},
}), ui: AddInstance("ImageLabel", {
Id = "AIIcon",
Position = UDim2.fromScale(.05 , .5),
Size = UDim2.fromScale(.85, .85),
AnchorPoint = Vector2.new(0, .5),
BackgroundTransparency = 1,
Tags = {"Colors_Text_Primary"}
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui: AddInstance("ImageLabel", {
Image = "rbxassetid://102982068367172",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.4, .4),
ScaleType = Enum.ScaleType.Fit,
BackgroundTransparency = 1,
ImageTransparency = .2,
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}))))), ui:AddInstance("ImageLabel", {
Id = "SlidersContainerBackground",
Position = UDim2.fromScale(.97, .95),
Size = UDim2.fromScale(.36 , .8),
AnchorPoint = Vector2.new(1, 1),
BackgroundTransparency = 1,
Tags = {"Colors_Secondary"},
Colors_Secondary = {"BackgroundColor3"}
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.11, 0)
}), ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(.065, 0),
PaddingTop = UDim.new(.065, 0),
PaddingRight = UDim.new(.1, 0),
PaddingLeft = UDim.new(.1, 0),
}), ui:AddInstance("UIListLayout", {
FillDirection = Enum.FillDirection.Horizontal,
HorizontalFlex = Enum.UIFlexAlignment.Fill,
VerticalFlex = Enum.UIFlexAlignment.Fill,
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(.05, 0)
}), framework.protected:GCProtect(function()
local cache = {}
local getHumanoid = framework.protected:GCProtect(function(char)
local succ, hum: Humanoid = pcall(char.WaitForChild, char, "Humanoid")
if not succ then return end
return hum
end)
local frames, sliders = {}, {
{
Icon = "rbxassetid://15054333892",
Label = {"Gravity","Gravità","Trọng lực","Gravidade","Gravitasi","Гравитация","Schwerkraft","Gravedad","Gravité","重力","重力","الجاذبية","गुरुत्वाकर्षण","แรงโน้มถ่วง"},
Id = "Gravity",
Def = 196.2, Min = .001, Max = 250, Ena = false,
Set = framework.protected:GCProtect(function(value: number)
framework.protected:GetService("Workspace").Gravity = value
end)
},
{
Icon = "rbxassetid://15054332032",
Label = {"Jump","Salto","Nhảy","Pular","Lompat","Прыжок","Sprung","Salto","Saut","跳跃","ジャンプ","قفزة","कूद","กระโดด"},
Id = "Jump",
Def = 7.2, Min = 0, Max = 250, Ena = false,
Set = framework.protected:GCProtect(function(value: number)
cache.jump = cache.jump or {}
local ccon, jcon =
cache.jump.ccon, cache.jump.jcon
if ccon then ccon:Disconnect() end
if jcon then jcon:Disconnect() end
local plr: Player = framework.protected:GetService("Players").LocalPlayer
local char = plr.Character
if char then
local hum = getHumanoid(char)
if hum then
hum.UseJumpPower = false
hum.JumpHeight = value
end
end
cache.jump.ccon = plr.CharacterAdded:Connect(function(char)
local hum = getHumanoid(char)
if not hum then return end
hum.UseJumpPower = false
hum.JumpHeight = value
cache.jump.jcon = hum:GetPropertyChangedSignal("JumpHeight"):Connect(function()
hum.UseJumpPower = false
hum.JumpHeight = value
end)
end)
end)
},
{
Icon = "rbxassetid://15054335513",
Label = {"Speed","Velocità","Tốc độ","Velocidade","Kecepatan","Скорость","Geschwindigkeit","Velocidad","Vitesse","速度","速度","السرعة","गति","ความเร็ว"},
Id = "Speed",
Def = 16, Min = 0, Max = 500, Ena = false,
Set = framework.protected:GCProtect(function(value: number)
cache.speed = cache.speed or {}
local ccon, scon =
cache.speed.ccon, cache.speed.scon
if ccon then ccon:Disconnect() end
if scon then scon:Disconnect() end
local plr: Player = framework.protected:GetService("Players").LocalPlayer
local char = plr.Character
if char then
local hum = getHumanoid(char)
if hum then hum.WalkSpeed = value end
end
cache.speed.ccon = plr.CharacterAdded:Connect(function(char)
local hum = getHumanoid(char)
if not hum then return end
hum.WalkSpeed = value
cache.speed.jcon = hum:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
hum.WalkSpeed = value
end)
end)
end)
}
}
for i, slider in ipairs(sliders) do
local img = ui:AddInstance("ImageLabel", {
Id = `Slider_{slider.Label[1]}`,
Image = "rbxassetid://97199452213620", --"rbxassetid://113076933640634",
ImageColor3 = Color3.fromHex("#F00"),
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
ZIndex = 2,
Colors_Primary = {"ImageColor3"},
Tags = {"Colors_Primary"}
})
local img2 = ui:AddInstance("ImageLabel", {
Image = "rbxassetid://71605317317599",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(4, 4),
BackgroundTransparency = 1
})
local bar = ui:AddInstance("TextButton", {
Id = `Slider_{slider.Label[1]}_Bar`,
BackgroundColor3 = Color3.fromRGB(255, 0, 0),
Position = UDim2.fromScale(.5, 1),
AnchorPoint = Vector2.new(.5, 1),
Size = UDim2.fromScale(1, 1),
--BackgroundTransparency = 1, -- Bar edit
AutoButtonColor = false,
LayoutOrder = 1,
Text = "",
Colors_Primary = {"BackgroundColor3"},
Tags = {"Colors_Primary"}
})
local lbl = ui:AddInstance("TextLabel", {
TextXAlignment = Enum.TextXAlignment.Center,
Position = UDim2.fromScale(.5, .05),
Size = UDim2.fromScale(.75, .085),
AnchorPoint = Vector2.new(.5, 0),
BackgroundTransparency = 1,
TextScaled = true,
Text = "75%",
ZIndex = 5,
Tags = {"Colors_Text_Primary", "Fonts_Title"},
Colors_Text_Primary = {"TextColor3"}
})
local setValue = framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(percent: number)
slider.Set(framework.utils.maths.clamp(slider.Min +percent *(slider.Max -slider.Min), slider.Min, slider.Max))
utils:Vibrate(Enum.HapticEffectType.UIClick)
end))
local btn, sld, status
local updateColor = framework.protected:GCProtect(function(color)
local props = { ImageColor3 = status and
color or Color3.fromRGB(
framework.utils.maths.max(color.R *255*2/5, 0),
framework.utils.maths.max(color.G *255*2/5, 0),
framework.utils.maths.max(color.B *255*2/5, 0)
)
}
--img:Tween(tweens.default, props)
img2:Tween(tweens.default, props)
props.BackgroundColor3 = props.ImageColor3
props.ImageColor3 = nil
bar:Tween(tweens.default, props)
end)
local setEnabled = framework.protected:GCProtect(function(ignore: boolean)
status = slider.Ena
slider.Ena = not slider.Ena
if status then sld:Enable() else sld:Disable() end
if not (ignore == true) then
if status then
setValue(sld.percentage)
else
slider.Set(slider.Def)
end
end
local succ, err = pcall(Color3.fromHex, framework.settings:GetSetting("Colors_Primary"))
local color: Color3 = succ and err or Color3.fromHex(framework.settings:GetDefaultSetting("Colors_Primary"))
updateColor(color)
utils:AnimateCascade(ui:Get(`SliderToggle_{slider.Label[1]}`).instance, {
AnimateSelf = true,
SkipTransparency = true
})
end)
local setLabel = framework.protected:GCProtect(LPH_NO_VIRTUALIZE(function(percent: number)
lbl.instance.Text = `{framework.utils.maths.round(percent*100)}%`
--[[local anim = utils:GetAnimation(`Slider_{slider.Label[1]}`)
if not anim then return end
local total = anim:GetFrameCount()
local idx = framework.utils.maths.ceil(percent * (total -1))
anim:SetFrame(idx)]]
utils:Vibrate(Enum.HapticEffectType.UIHover)
end))
btn = ui:AddInstance("TextButton", {
Id = `SliderToggle_{slider.Label[1]}`,
Size = UDim2.fromScale(.3, .1),
Position = UDim2.fromScale(.3, 1.05),
BackgroundTransparency = 1,
LayoutOrder = 2,
ZIndex = 1,
Text = "",
MouseButton1Click = setEnabled,
Colors_Primary = updateColor,
Tags = {"Colors_Primary"},
}, img2, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(1, 0)
}), ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}))
framework.utils.tables.insert(frames, ui:AddInstance("Frame", {
Size = UDim2.fromScale(.17, .6),
BackgroundTransparency = 1,
ClipsDescendants = true, -- Bar edit
LayoutOrder = i
}, ui:AddInstance("UIListLayout", {
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Center,
VerticalFlex = Enum.UIFlexAlignment.SpaceBetween,
FillDirection = Enum.FillDirection.Vertical,
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(.045, 0)
}), ui:AddInstance("CanvasGroup", {
--Image = "rbxassetid://97199452213620",
Id = slider.Id .. "Container",
Size = UDim2.fromScale(1, .7),
BackgroundTransparency = 1
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.35, 0)
}), ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = .2713
}), img, bar, lbl, ui:AddInstance("ImageLabel", {
Size = UDim2.fromScale(.65, .25),
Position = UDim2.fromScale(.5, .825),
AnchorPoint = Vector2.new(.5, .5),
BackgroundTransparency = 1,
Image = slider.Icon
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}))), btn, ui:AddInstance("TextLabel", {
Size = UDim2.fromScale(1, .065),
BackgroundTransparency = 1,
Text = slider.Label[1],
TextScaled = true,
LayoutOrder = 3,
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Heading"},
Colors_Text_Primary = {"TextColor3"},
Country_Code = slider.Label
})))
local start = framework.utils.maths.clamp((slider.Def -slider.Min)/(slider.Max -slider.Min), 0, 1)
sld = framework.utils.inputs.sliders.vertical({bar}, start, slider.Id)
setEnabled(true)
setLabel(start)
sld.OnPercentageUpdated:Connect(setLabel)
sld.OnPercentageChanged:Connect(setValue)
framework.animator.OnAnimationLoaded:Connect(function(anim: {any})
if framework.utils.strings.sub(anim.id, 1, 7) == "Slider_" then
--setLabel(sld.percentage)
end
end)
end
return frames
end)))
},
{ Name = "Executor", Icon = "rbxassetid://133382010896956",
Content = ui:AddInstance("Frame", {Id = "Executor"},
ui:AddInstance("Frame", {
Id = "Editor",
Position = UDim2.fromScale(.03, .95),
AnchorPoint = Vector2.new(0, 1),
Size = UDim2.fromScale(.65, .8),
BackgroundTransparency = .2,
Tags = {"Colors_Secondary", "UI_WindowState"},
Colors_Secondary = {"BackgroundColor3"}
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.05, 0)
}), ui:AddInstance("Frame", {
Size = UDim2.new(1, -padding, .35, 0),
Position = UDim2.fromScale(0, 1),
AnchorPoint = Vector2.new(0, 1),
BackgroundTransparency = 0,
ZIndex = 95,
Tags = {"Colors_Secondary", "UI_WindowState"},
Colors_Secondary = {"BackgroundColor3"}
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.15, 0)
}), ui:AddInstance("UIGradient", {
Rotation = -90, -- verticale: dall'alto in basso
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(.65, .1),
NumberSequenceKeypoint.new(1, 1)
})
})), ui:AddInstance("Frame", {
Position = UDim2.fromScale(.92, .1),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.112, .112),
BackgroundTransparency = 0,
ZIndex = 95,
Tags = {"Colors_Secondary", "UI_WindowState"},
Colors_Secondary = {"BackgroundColor3"}
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(1, 0)
}), ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
})), ui:AddComponent("CodeEditor", {
Id = "Main_Editor",
Position = UDim2.fromScale(0, .5),
AnchorPoint = Vector2.new(0, .5),
Size = UDim2.fromScale(1, .925),
Focused = framework.protected:GCProtect(function()
utils:EditorMode(true, .175)
framework.utils.inputs.editors:Get("Main_Editor"):ToggleHighlighter(false)
end),
FocusLost = framework.protected:GCProtect(function()
utils:EditorMode(false)
local editor = framework.utils.inputs.editors:Get("Main_Editor")
local tabs = framework.dependencies.editortabs
local tab = tabs:GetSelection()
if not tab then return end
tab:SetSource(editor:GetText())
editor:ToggleHighlighter(true)
end)
}), ui:AddInstance("ImageLabel", { -- EDITOR AI BUTTON
Id = "EditorAIButtonShadow",
BackgroundColor3 = Color3.fromHex("#000"),
Image = "rbxassetid://112235731951114",
Position = UDim2.fromScale(.1, .87),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.8, .8),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("ImageButton", {
Id = "EditorAIButton",
Image = "rbxassetid://91074694855691",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.3, .3),
BackgroundTransparency = 1,
AutoButtonColor = false,
MouseButton1Click = framework.protected:GCProtect(function() -- alura
if utils.axintDebounce then return end
utils.axintDebounce = true
local background = ui:Get("BackgroundGlow")
utils:ShowToast("InputToast", {
PlaceholderText = {"Walkspeed script...","Script per correre...","Kịch bản tốc độ chạy...","Script de velocidade de caminhada...","Skrip kecepatan berjalan...","Скрипт скорости ходьбы...","Gehgeschwindigkeits-Skript...","Script de velocidad de caminata...","Script de vitesse de marche...","行走速度脚本...","歩行速度スクリプト...","سكريبت سرعة المشي...","चलने की गति स्क्रिप्ट...","สคริปต์ความเร็วในการเดิน..."},
AdditionalText = {"Instant code with Arcy","Scripta con Arcy","Mã tức thì với Arcy","Código instantâneo com Arcy","Kode instan dengan Arcy","Мгновенный код с Arcy","Sofortiger Code mit Arcy","Código instantáneo con Arcy","Code instantané avec Arcy","Arcy 的即时代码","Arcy でインスタントコード","كود فوري مع Arcy","Arcy के साथ त्वरित कोड","รหัสทันทีด้วย Arcy"},
Style = "ai",
Callback = function(txt: string)
if framework.utils.strings.gsub(txt, "%s", "") == "" then
utils.axintDebounce = false
return
end
local editor = framework.utils.inputs.editors:Get("Main_Editor")
local tab = editor:AddTab("AI Script", "-- Arcy is reasoning...")
local axint = framework.dependencies.axintelligence
local res = axint:Chat(txt)
local src = ""
if res then
if framework.utils.strings.gsub(res.texts[1], "%s", "") ~= "" then
background:Tween(tweens.default, {
ImageColor3 = Color3.fromHex("#707070")
})
task.delay(3, function()
background:Tween(tweens.slow_default, {
ImageColor3 = Color3.fromHex("#000"),
})
end)
src ..= [=[--[[
]=] ..res.texts[1].. [=[
]]
]=]
end
if #res.codes > 0 then
src ..= [[-- Generated by Arcy, Arceus Intelligence.
]]
src ..= res.codes[1]
else
src ..= "-- Arcy didn't generate any code..."
end
end
tab:SetSource(src)
utils.axintDebounce = false
end
})
end)
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- EDITOR EXECUTE BUTTON
Id = "EditorSSExecuteButtonShadow",
BackgroundColor3 = Color3.fromHex("#000"),
Image = "rbxassetid://111537386489097",
Position = UDim2.fromScale(.9, .725),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.25, .25),
BackgroundTransparency = 1,
Visible = false,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.117
}), ui:AddInstance("ImageButton", {
Id = "EditorSSExecuteButton",
Image = "rbxassetid://123607114821398",
ImageColor3 = Color3.fromHex("#58B2FF"),
Size = UDim2.fromScale(.225, .225),
Position = UDim2.fromScale(.505, .5),
AnchorPoint = Vector2.new(.5, .5),
BackgroundTransparency = 1,
AutoButtonColor = false,
MouseButton1Click = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("EditorSSExecuteButtonShadow").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local tabs = framework.dependencies.editortabs
local tab = tabs:GetSelection()
local src = tab and tab:GetSource()
if not src or src == "" then return end
local name = tab:GetName()
utils:ShowToast("ButtonToast", {
AdditionalText = {`Execute {name} at Server-Side?`,`Esegui {name} sul lato server?`,`Thực thi {name} ở phía máy chủ?`,`Executar {name} no lado do servidor?`,`Eksekusi {name} di sisi server?`,`Выполнить {name} на стороне сервера?`,`{name} auf der Serverseite ausführen?`,`¿Ejecutar {name} en el lado del servidor?`,`Exécuter {name} côté serveur ?`,`在服务器端执行 {name}?`,`サーバー側で {name} を実行しますか?`,`تنفيذ {name} على جانب الخادم؟`,`सर्वर-पक्ष पर {name} निष्पादित करें?`,`ดำเนินการ {name} ที่ฝั่งเซิร์ฟเวอร์หรือไม่?`},
AdditionalTitle = {"Execute","Esegui","Thực thi","Executar","Eksekusi","Выполнить","Ausführen","Ejecutar","Exécuter","执行","実行","تنفيذ","निष्पादित करें","ดำเนินการ"},
Style = "confirm",
Callback = function(res: boolean)
if not res then return end
framework.dependencies.serverside:Execute(src)
end
})
end)
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}))), ui:AddInstance("ImageLabel", { -- EDITOR EXECUTE BUTTON
Id = "EditorExecuteButtonShadow",
BackgroundColor3 = Color3.fromHex("#000"),
Image = "rbxassetid://111537386489097",
Position = UDim2.fromScale(.9, .87),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.35, .35),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.117
}), ui:AddInstance("ImageButton", {
Id = "EditorExecuteButton",
Image = "rbxassetid://100628992603432",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.3, .3),
BackgroundTransparency = 1,
AutoButtonColor = false,
MouseButton1Click = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("EditorExecuteButtonShadow").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local tabs = framework.dependencies.editortabs
local tab = tabs:GetSelection()
local src = tab and tab:GetSource()
if not src or src == "" then
-- POPUP EXECUTE CLIPBOARD
return utils:ShowToast("ButtonToast", {
AdditionalText = {"Execute clipboard?","Eseguire appunto?","Thực thi khay nhớ tạm?","Executar área de transferência?","Jalankan clipboard?","Выполнить буфер обмена?","Zwischenablage ausführen?","¿Ejecutar portapapeles?","Exécuter le presse-papiers?","执行剪贴板?","クリップボードを実行しますか?","تنفيذ الحافظة؟","क्लिपबोर्ड निष्पादित करें?","เรียกใช้คลิปบอร์ด?"},
AdditionalTitle = {"Execute","Esegui","Thực thi","Executar","Eksekusi","Выполнить","Ausführen","Ejecutar","Exécuter","执行","実行","تنفيذ","निष्पादित करें","ดำเนินการ"},
Style = "confirm",
Callback = function(res: boolean)
if not res then return end
framework.execution:Execute(framework.utils.clipboard:Get())
end
})
end
local name = tab:GetName()
utils:ShowToast("ButtonToast", {
AdditionalText = {`Execute {name}?`,`Eseguire {name}?`,`Thực thi {name}?`,`Executar {name}?`,`Jalankan {name}?`,`Выполнить {name}?`,`Ausführen {name}?`,`¿Ejecutar {name}?`,`Exécuter {name}?`,`执行{name}?`,`{name}を実行しますか?`,`تنفيذ {name}؟`,`{name} निष्पादित करें?`,`ดำเนินการ {name}?`},
AdditionalTitle = {"Execute","Esegui","Thực thi","Executar","Eksekusi","Выполнить","Ausführen","Ejecutar","Exécuter","执行","実行","تنفيذ","निष्पादित करें","ดำเนินการ"},
Style = "confirm",
Callback = function(res: boolean)
if not res then return end
framework.execution:Execute(src)
end
})
end)
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- EDITOR PASTE BUTTON
Id = "EditorPasteButtonShadow",
BackgroundColor3 = Color3.fromHex("#F00"),
Position = UDim2.fromScale(.815, .87),
Image = "rbxassetid://96112258106990",
Size = UDim2.fromScale(.112, .112),
AnchorPoint = Vector2.new(1, .5),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.125
}), ui:AddInstance("ImageButton", {
Id = "EditorPasteButton",
Image = "rbxassetid://105828625810947",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.7, .7),
BackgroundTransparency = 1,
AutoButtonColor = false,
MouseButton1Click = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("EditorPasteButtonShadow").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local tabs = framework.dependencies.editortabs
local tab = tabs:GetSelection()
if not tab then return end -- shouldnt happen
tab:SetSource(framework.utils.clipboard:Get())
end)
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- EDITOR COPY BUTTON
Id = "EditorCopyButtonShadow",
BackgroundColor3 = Color3.fromHex("#F00"),
Position = UDim2.fromScale(.7, .87),
Image = "rbxassetid://96112258106990",
Size = UDim2.fromScale(.112, .112),
AnchorPoint = Vector2.new(1, .5),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.125
}), ui:AddInstance("ImageButton", {
Id = "EditorCopyButton",
Image = "rbxassetid://104350786247520",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.7, .7),
BackgroundTransparency = 1,
AutoButtonColor = false,
MouseButton1Click = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("EditorCopyButtonShadow").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local tabs = framework.dependencies.editortabs
local tab = tabs:GetSelection()
if not tab then return end
framework.utils.clipboard:Set(tab:GetSource())
end)
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- EDITOR CLEAR BUTTON
Id = "EditorClearButtonShadow",
BackgroundColor3 = Color3.fromHex("#F00"),
Position = UDim2.fromScale(.585, .87),
Image = "rbxassetid://96112258106990",
Size = UDim2.fromScale(.112, .112),
AnchorPoint = Vector2.new(1, .5),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1.125
}), ui:AddInstance("ImageButton", {
Id = "EditorClearButton",
Image = "rbxassetid://140071393343502",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5, .5),
Size = UDim2.fromScale(.7, .7),
BackgroundTransparency = 1,
AutoButtonColor = false,
MouseButton1Click = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("EditorClearButtonShadow").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local tabs = framework.dependencies.editortabs
local tab = tabs:GetSelection()
if not tab then return end
local name = tab:GetName()
utils:ShowToast("ButtonToast", {
AdditionalText = {`Clear {name}?`,`Cancellare {name}?`,`Xóa {name}?`,`Limpar {name}?`,`Bersihkan {name}?`,`Очистить {name}?`,`{name} löschen?`,`Borrar {name}?`,`Effacer {name}?`,`清除{name}?`,`{name}をクリアしますか?`,`مسح {name}?`,`{name} साफ़ करें?`,`ล้าง {name}?`},
AdditionalTitle = {"Clear editor","Pulire editor","Xóa trình soạn thảo","Limpar editor","Bersihkan editor","Очистить редактор","Editor löschen","Limpiar editor","Effacer l'éditeur","清除编辑器","エディタをクリア","مسح المحرر","संपादक साफ़ करें","ล้างตัวแก้ไข"},
Style = "confirm",
Callback = function(res: boolean)
if not res then return end
tab:SetSource("")
end
})
end)
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0)
}))), ui:AddInstance("ImageLabel", { -- EDITOR SAVE & INFO BUTTON
Id = "EditorSaveButtonShadow",
Image = "rbxassetid://119555396926142",
BackgroundColor3 = Color3.fromHex("#F00"),
Position = UDim2.fromScale(.92, .1),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.25, .25),
BackgroundTransparency = 1,
ZIndex = 99
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("ImageButton", {
Id = "EditorSaveButton",
Image = "rbxassetid://80105268646831",
Position = UDim2.fromScale(.5, .5),
Size = UDim2.fromScale(.275, .275),
AnchorPoint = Vector2.new(.5,.5),
BackgroundTransparency = 1,
AutoButtonColor = false,
MouseButton1Click = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("EditorSaveButtonShadow").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local tabs = framework.dependencies.editortabs
local tab = tabs:GetSelection()
if not tab then return end
if tab:GetData().isFile then
return utils:ShowPopup("LocalScriptInfo", tab:GetFile(), {})
end
tab:ToFile()
tabs:GetSaved("tabs") -- Call to scripthub browse
end)
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(1, 0)
}))), ui:AddInstance("ImageLabel", { -- EDITOR CONSOLE BUTTON
Id = "EditorConsoleButtonShadow",
Image = "rbxassetid://119555396926142",
BackgroundColor3 = Color3.fromHex("#F00"),
Position = UDim2.fromScale(.92, .25),
ImageColor3 = Color3.fromHex("#0F0"),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.25, .25),
BackgroundTransparency = 1,
ZIndex = 99,
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("ImageButton", {
Id = "EditorConsoleButton",
Image = "rbxassetid://116356073714133",
Position = UDim2.fromScale(.5, .5),
Size = UDim2.fromScale(.275, .275),
AnchorPoint = Vector2.new(.5,.5),
BackgroundTransparency = 1,
AutoButtonColor = false,
MouseButton1Click = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("EditorConsoleButtonShadow").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local stgui = framework.protected:GetService("StarterGui")
stgui:SetCore("DevConsoleVisible", not stgui:GetCore("DevConsoleVisible"))
end)
}, ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(1, 0)
})))), ui:AddInstance("Frame", { -- EDITOR SIDEBAR
Id = "EditorSideBar",
Position = UDim2.fromScale(.97, .95),
AnchorPoint = Vector2.new(1, 1),
Size = UDim2.fromScale(.27, .8),
BackgroundTransparency = .3,
Tags = {"Colors_Secondary", "UI_WindowState"},
Colors_Secondary = {"BackgroundColor3"},
}, ui:AddInstance("TextLabel", {
Id = "CategoryTitle",
TextXAlignment = Enum.TextXAlignment.Left,
Position = UDim2.fromScale(.075,.03),
Size = UDim2.fromScale(.85, .08),
BackgroundTransparency = 1,
TextScaled = true,
Country_Code = {"Files","File","Tệp tin","Arquivos","Berkas","Файлы","Dateien","Archivos","Fichiers","文件","ファイル","ملفات","फ़ाइलें","ไฟล์"},
Tags = {"Colors_Text_Primary", "Fonts_Title", "Country_Code"},
Colors_Text_Primary = {"TextColor3"}
}), ui:AddInstance("TextBox", {
Id = "TabsSearchBox",
TextXAlignment = Enum.TextXAlignment.Left,
BackgroundColor3 = Color3.fromHex("FFF"),
Position = UDim2.fromScale(.5, .125),
Size = UDim2.fromScale(.85, .085),
AnchorPoint = Vector2.new(.5, 0),
BackgroundTransparency = .8,
ClearTextOnFocus = false,
TextScaled = true,
Text = "",
Country_Code_Placeholder = {"Search scripts...", "Cerca script...", "Tìm kiếm kịch bản...", "Pesquisar scripts...", "Cari skrip...", "Поиск сценариев...", "Skripte suchen...", "Buscar scripts...", "Rechercher des scripts...", "搜索脚本...", "スクリプトを検索...", "البحث عن السكربتات...", "स्क्रिप्ट खोजें...", "ค้นหาสคริปต์..."},
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Body"},
Colors_Text_Primary = {"TextColor3"},
FocusLost = framework.protected:GCProtect(function()
local tabs = framework.dependencies.editortabs
local query = ui:Get("TabsSearchBox").instance.Text
local valid = framework.utils.strings.gsub(query, "[%s]+", "") ~= ""
for _, tab in ipairs(tabs:GetTabs()) do
local instance = tab:GetData().instance
local name = tab:GetName()
instance.instance.Visible = (not valid) or
(framework.utils.strings.find(name, query) and true or false)
end
if valid then
return tabs:SearchSaved(query, "tabs") -- Call to scriphub search
end
return tabs:GetSaved("tabs") -- Call to scripthub browse
end)
}, ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(.25,0),
PaddingRight = UDim.new(.05, 0),
PaddingLeft = UDim.new(.075, 0),
PaddingTop = UDim.new(.25,0)
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.35, 0)
})), ui:AddInstance("TextButton", {
Id = "NewFileButton",
BackgroundColor3 = Color3.fromHex("FFF"),
Position = UDim2.fromScale(.075, .23),
Size = UDim2.fromScale(.225,.225),
BackgroundTransparency = .9,
Text = "",
MouseButton1Click = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("NewFileButton").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local editor = framework.utils.inputs.editors:Get("Main_Editor")
local cont = nil
if utils.tabsMode ~= "files" then
cont = { [utils.tabsMode] = true }
end
editor:AddTab(nil, "", cont)
end)
}, ui:AddInstance("ImageLabel", {
Image = "rbxassetid://112476312219988",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.6, .6),
BackgroundTransparency = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.25, 0)
}), ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
})), ui:AddInstance("TextButton", {
Id = "FavouriteButton",
BackgroundColor3 = Color3.fromHex("FFF"),
Position = UDim2.fromScale(.5, .23),
Size = UDim2.fromScale(.225, .225),
AnchorPoint = Vector2.new(.5,0),
BackgroundTransparency = .9,
Text = "",
MouseButton1Click = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("FavouriteButton").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local tabs = framework.dependencies.editortabs
local tab = tabs:GetSelection()
if not tab then return end
local status = not (tab:GetProperty("favourite") or false)
tab:SetProperty("favourite", status)
ui:Get("FavouriteButtonImage").instance.Image = status
and framework.protected:ProtectAsset("rbxassetid://137934368112423") or "rbxassetid://80350699155696"
end)
}, ui:AddInstance("ImageLabel", {
Id = "FavouriteButtonImage",
Image = "rbxassetid://80350699155696",
ImageColor3 = Color3.fromHex("#FDC41B"),
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.6, .6),
BackgroundTransparency = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.25, 0)
}), ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
})), ui:AddInstance("TextButton", {
Id = "DeleteFileButton",
BackgroundColor3 = Color3.fromHex("FFF"),
Position = UDim2.fromScale(.925, .23),
Size = UDim2.fromScale(.225, .225),
AnchorPoint = Vector2.new(1, 0),
BackgroundTransparency = .9,
Text = "",
MouseButton1Click = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("DeleteFileButton").instance, {
AnimateSelf = true,
SkipTransparency = true
})
utils:ShowToast("ButtonToast", {
AdditionalText = {"Delete selected tab?","Eliminare scheda selezionata?","Xóa tab được chọn?","Excluir guia selecionada?","Hapus tab terpilih?","Удалить выбранную вкладку?","Ausgewählte Registerkarte löschen?","¿Eliminar pestaña seleccionada?","Supprimer l'onglet sélectionné ?","删除所选选项卡?","選択したタブを削除しますか?","حذف علامة التبويب المحددة؟","चयनित टैब हटाएं?","ลบแท็บที่เลือก?"},
AdditionalTitle = {"Delete","Elimina","Xóa","Excluir","Hapus","Удалить","Löschen","Eliminar","Supprimer","删除","削除","حذف","हटाएं","ลบ"},
Style = "confirm",
Callback = function(res: boolean)
if not res then return end
local tabs = framework.dependencies.editortabs
local tab = tabs:GetSelection()
if tab then tab:Delete(true) end
end
})
end)
}, ui:AddInstance("ImageLabel", {
Image = "rbxassetid://80286816747552",
Position = UDim2.fromScale(.5, .5),
AnchorPoint = Vector2.new(.5,.5),
Size = UDim2.fromScale(.6, .6),
BackgroundTransparency = 1
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.25, 0)
}), ui:AddInstance("UIAspectRatioConstraint", {
AspectRatio = 1
})), ui:AddInstance("ScrollingFrame", {
Id = "TabsList",
ScrollingDirection = Enum.ScrollingDirection.Y,
AutomaticCanvasSize = Enum.AutomaticSize.Y,
BackgroundColor3 = Color3.fromHex("#000"),
Position = UDim2.fromScale(.5, .375),
CanvasSize = UDim2.fromScale(0, 0),
AnchorPoint = Vector2.new(.5, 0),
Size = UDim2.fromScale(.85, .45),
BackgroundTransparency = 1,
ScrollBarThickness = 0
}, ui:AddInstance("UIListLayout", {
Id = "TabsLayout",
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Top,
FillDirection = Enum.FillDirection.Vertical,
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(.025, 0)
}), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.1, 0)
})), ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.1, 0)
}), ui:AddInstance("Frame", {
Id = "CategoryButtons",
Position = UDim2.fromScale(.5, .955),
AnchorPoint = Vector2.new(.5, 1),
Size = UDim2.fromScale(.85, .1),
BackgroundTransparency = 1,
ClipsDescendants = true
}, ui:AddInstance("UIListLayout", {
HorizontalAlignment = Enum.HorizontalAlignment.Center,
HorizontalFlex = Enum.UIFlexAlignment.SpaceBetween,
VerticalAlignment = Enum.VerticalAlignment.Center,
FillDirection = Enum.FillDirection.Horizontal,
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 0)
}), ui:AddComponent("CategoryButton", {
LongTitle = {"Files","Files","Tệp tin","Arquivos","Berkas","Файлы","Dateien","Archivos","Fichiers","文件","ファイル","ملفات","फ़ाइलें","ไฟล์"},
Title = {"Files","Files","Tệp","Arq","Ber","Фай","Dat","Arc","Fic","文","ファ","ملف","फ़ा","ไฟ"},
BackgroundColor3 = Color3.fromHex("#58B2FF"),
Image = "rbxassetid://93716878735644",
Selected = true,
Callback = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("CategoryBtn_Files").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local tabs = framework.dependencies.editortabs
utils.tabsMode = "files"
for _, tab in ipairs(tabs:GetTabs()) do
tab:GetData().instance.instance.Visible = true
end
framework.dependencies.editortabs:GetSaved("tabs")
end)
}), ui:AddComponent("CategoryButton", {
LongTitle = {"Favourites","Preferiti","Yêu thích","Favoritos","Favorit","Избранное","Favoriten","Favoritos","Favoris","收藏夹","お気に入り","المفضلة","पसंदीदा","รายการโปรด"},
Title = {"Favs","Prefs","Yêu","Fav","Fav","Изб","Fav","Fav","Fav","喜好","おき","مفض","पस","โปร"},
BackgroundColor3 = Color3.fromHex("#FDC41B"),
Image = "rbxassetid://80350699155696",
LayoutOrder = 1,
Callback = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("CategoryBtn_Favs").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local tabs = framework.dependencies.editortabs
utils.tabsMode = "favourite"
for _, tab in ipairs(tabs:GetTabs()) do
local state = tab:GetProperty("favourite") and true or false
tab:GetData().instance.instance.Visible = state
end
framework.dependencies.editortabs:GetSavedByProperties({
favourite = {true}
}, "tabs")
end)
}), ui:AddComponent("CategoryButton", {
LongTitle = {"Auto-Execute","Auto-Esecuzione","Tự động thực thi","Auto-executar","Eksekusi Otomatis","Автовыполнение","Automatische Ausführung","Ejecución automática","Exécution automatique","自动执行","自動実行","التنفيذ التلقائي","स्वचालित निष्पादन","เรียกใช้โดยอัตโนมัติ"},
Title = {"Auto","Auto","Tự","Aut","Oto","Авт","Auto","Auto","Auto","自","自","تلق","स्व","อัต"},
BackgroundColor3 = Color3.fromHex("#1EC997"),
Image = "rbxassetid://100628992603432",
LayoutOrder = 2,
Callback = framework.protected:GCProtect(function()
utils:AnimateCascade(ui:Get("CategoryBtn_Auto").instance, {
AnimateSelf = true,
SkipTransparency = true
})
local tabs = framework.dependencies.editortabs
utils.tabsMode = "autoexecute"
for _, tab in ipairs(tabs:GetTabs()) do
local state = tab:GetProperty("autoexecute") and true or false
tab:GetData().instance.instance.Visible = state
end
framework.dependencies.editortabs:GetSavedByProperties({
autoexecute = {true}
}, "tabs")
end)
}))))
},
{ Name = "ScriptHub", Icon = "rbxassetid://137348934767807",
Content = ui:AddInstance("Frame", {Id = "ScriptHub"},
ui:AddInstance("Frame", {
Id = "ScriptsSwitch",
Position = UDim2.fromScale(.08, .065),
Size = UDim2.fromScale(.22, .085),
AnchorPoint = Vector2.new(0, .5),
BackgroundTransparency = .85
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.5, 0),
}), ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(.05, 0),
PaddingRight = UDim.new(.1, 0),
PaddingLeft = UDim.new(.1, 0),
PaddingTop = UDim.new(.05, 0)
}),
ui:AddInstance("TextButton", {
Id = "ScriptsSwitchButton",
Size = UDim2.fromScale(1,1),
BackgroundTransparency = 1,
TextScaled = true,
Country_Code = {"CloudScripts ☁️","ScriptsCloud ☁️","Kịch bản đám mây ☁️","ScriptsNaNuvem ☁️","Skrip Awan ☁️","Облачные скрипты ☁️","Cloud-Skripte ☁️","ScriptsEnLaNube ☁️","ScriptsCloud ☁️","云端脚本 ☁️","クラウドスクリプト ☁️","السكربتات السحابية ☁️","क्लाउड स्क्रिप्ट्स ☁️","สคริปต์คลาวด์ ☁️"},
Tags = {"Country_Code", "Colors_Text_Primary", "Fonts_Body"},
Colors_Text_Primary = {"TextColor3"},
MouseButton1Click = framework.protected:GCProtect(function()
local searchbox = ui:Get("CloudSearchBox")
if searchbox.loading then return end
local dropdown = ui:Get("ScriptsSwitchDropdown")
dropdown.instance.Visible = not dropdown.instance.Visible
end)
}, ui:AddInstance("UICorner", { CornerRadius = UDim.new(.5,0) })),
ui:AddInstance("Frame", {
Id = "ScriptsSwitchDropdown",
BackgroundColor3 = Color3.fromHex("#000"),
Position = UDim2.fromScale(0,1),
BackgroundTransparency = 0.2,
Size = UDim2.fromScale(1,3),
Visible = false
}, ui:AddInstance("UICorner", {
CornerRadius = UDim.new(.15,0)
}), ui:AddInstance("UIPadding", {
PaddingBottom = UDim.new(.05,0),
PaddingRight = UDim.new(.05,0),
PaddingLeft = UDim.new(.05,0),
PaddingTop = UDim.new(.05,0)
}), ui:AddInstance("UIListLayout", {
FillDirection = Enum.FillDirection.Vertical,
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0,4)
}),
-- CloudScripts ☁️
ui:AddInstance("TextButton", {
Id = "OptionCloudScripts",
Size = UDim2.fromScale(1, .33),
BackgroundTransparency = 1,
TextScaled = true,
LayoutOrder = 1,
ZIndex = 11,
Tags = {"Country_Code", "Colors_Text_Primary","Fonts_Body"},
Country_Code = {"CloudScripts ☁️","ScriptsCloud ☁️","Kịch bản đám mây ☁️","ScriptsNaNuvem ☁️","Skrip Awan ☁️","Облачные скрипты ☁️","Cloud-Skripte ☁️","ScriptsEnLaNube ☁️","ScriptsCloud ☁️","云端脚本 ☁️","クラウドスクリプト ☁️","السكربتات السحابية ☁️","क्लाउड स्क्रिप्ट्स ☁️","สคริปต์คลาวด์ ☁️"},
Colors_Text_Primary = {"TextColor3"},
MouseButton1Click = framework.protected:GCProtect(function()
local searchbox = ui:Get("CloudSearchBox")
if searchbox.loading then return end
ui:Get("ScriptsSwitchButton").instance.Text = utils:Translate({"CloudScripts ☁️","ScriptsCloud ☁️","Kịch bản đám mây ☁️","ScriptsNaNuvem ☁️","Skrip Awan ☁️","Облачные скрипты ☁️","Cloud-Skripte ☁️","ScriptsEnLaNube ☁️","ScriptsCloud ☁️","云端脚本 ☁️","クラウドスクリプト ☁️","السكربتات السحابية ☁️","क्लाउड स्क्रिप्ट्स ☁️","สคริปต์คลาวด์ ☁️"})
ui:Get("ScriptsSwitchDropdown").instance.Visible = false
local headerTexObfuscated. The code is scrambled, so you can't read what it does. Common for key systems, but take care.
Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com, scriptblox.com, spdmteam.com, tr.rbxcdn.com, t1.rbxcdn.com, setup.rbxcdn.com.
SPDM team get owned and recked

Universal