Run it
Copy the script and paste it into your executor.
TweenService = :()
Players = :()
RunService = :()
SoundService = :()
Config = {
HubName = ,
Subtitle = ,
LogoLetter = ,
ImageLogo = ,
LoadTime = ,
ScriptToLoad = ,
Messages = {
,
,
,
,
,
},
Tips = {
,
,
},
Sounds = {
Open = ,
Update = ,
Success = ,
Failure = ,
TipPing =
},
IntroAnimationTime = ,
OutroAnimationTime = ,
Theme = {
Primary = .(, , ),
Background = .(, , ),
BackgroundGradient = .(, , ),
Text = .(, , ),
MutedText = .(, , ),
ProgressBackground = .(, , ),
Failure = .(, , ),
SuccessFlash = .(, , )
},
Fonts = {
Main = .Font.GothamBold,
Secondary = .Font.Gotham,
Code = .Font.Code
}
}
SoundPlayer = {}
name, id (Config.Sounds)
id id ~=
sound = .()
sound.SoundId = id
sound.Parent = SoundService
SoundPlayer[name] = sound
(name)
SoundPlayer[name]
SoundPlayer[name]:()
player = Players.LocalPlayer
playerGui = player:()
blur = .(, :())
blur.Size =
blur.Enabled =
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
screenGui.DisplayOrder =
container = .()
container.Name =
container.AnchorPoint = .(, )
container.Size = .(, , , )
container.Position = .(, , , )
container.BackgroundColor3 = Config.Theme.Background
container.BorderSizePixel =
container.Parent = screenGui
.(, container).CornerRadius = .(, )
containerGradient = .(, container)
containerGradient.Color = ColorSequence.{
ColorSequenceKeypoint.(, Config.Theme.Background),
ColorSequenceKeypoint.(, Config.Theme.BackgroundGradient)
}
containerGradient.Rotation =
borderStroke = .(, container)
borderStroke.Color = Config.Theme.Primary
borderStroke.Thickness =
borderStroke.Transparency =
borderStroke.ApplyStrokeMode = .ApplyStrokeMode.Border
logoCircle = .(, container)
logoCircle.Name =
logoCircle.AnchorPoint = .(, )
logoCircle.Size = .(, , , )
logoCircle.Position = .(, , , )
logoCircle.BackgroundColor3 = Config.Theme.Primary
logoCircle.BorderSizePixel =
logoCircle.ClipsDescendants =
.(, logoCircle).CornerRadius = .(, )
logoInner = .(, logoCircle)
logoInner.AnchorPoint = .(, )
logoInner.Size = .(, , , )
logoInner.Position = .(, , , )
logoInner.BackgroundColor3 = Config.Theme.Background
logoInner.BorderSizePixel =
.(, logoInner).CornerRadius = .(, )
Config.ImageLogo Config.ImageLogo ~=
logoImage = .(, logoInner)
logoImage.Size = .(, , , )
logoImage.BackgroundTransparency =
logoImage.Image = Config.ImageLogo
logoText = .(, logoInner)
logoText.Size = .(, , , )
logoText.BackgroundTransparency =
logoText.Text = Config.LogoLetter
logoText.TextColor3 = Config.Theme.Primary
logoText.TextSize =
logoText.Font = Config.Fonts.Main
title = .(, container)
title.Size = .(, -, , )
title.Position = .(, , , )
title.BackgroundTransparency =
title.Text = Config.HubName
title.TextColor3 = Config.Theme.Text
title.TextSize =
title.Font = Config.Fonts.Main
title.TextXAlignment = .TextXAlignment.Center
versionText = .(, container)
versionText.Size = .(, -, , )
versionText.Position = .(, , , )
versionText.BackgroundTransparency =
versionText.Text = Config.Subtitle
versionText.TextColor3 = Config.Theme.MutedText
versionText.TextSize =
versionText.Font = Config.Fonts.Secondary
versionText.TextXAlignment = .TextXAlignment.Center
progressBg = .(, container)
progressBg.Name =
progressBg.Size = .(, -, , )
progressBg.Position = .(, , , )
progressBg.BackgroundColor3 = Config.Theme.ProgressBackground
progressBg.BorderSizePixel =
.(, progressBg).CornerRadius = .(, )
successGlowStroke = .(, progressBg)
successGlowStroke.Color = Config.Theme.SuccessFlash
successGlowStroke.Thickness =
successGlowStroke.Transparency =
progressFill = .(, progressBg)
progressFill.Name =
progressFill.Size = .(, , , )
progressFill.BackgroundColor3 = Config.Theme.Primary
progressFill.BorderSizePixel =
progressFill.ClipsDescendants =
.(, progressFill).CornerRadius = .(, )
.(, progressFill).Color = ColorSequence.{
ColorSequenceKeypoint.(, Config.Theme.Primary),
ColorSequenceKeypoint.(, .(
.(, Config.Theme.Primary.R * ),
.(, Config.Theme.Primary.G * ),
.(, Config.Theme.Primary.B * )
))
}
progressShine = .(, progressFill)
progressShine.Name =
progressShine.Size = .(, , , )
progressShine.Position = .(-, , , )
progressShine.BackgroundColor3 = .(, , )
progressShine.BackgroundTransparency =
progressShine.BorderSizePixel =
.(, progressShine).CornerRadius = .(, )
.(, progressShine).Transparency = NumberSequence.{
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, )
}
progressShimmer = .(, progressFill)
progressShimmer.Rotation =
progressShimmer.Offset = .(, -)
progressShimmer.Transparency = NumberSequence.{
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, )
}
percentText = .(, container)
percentText.Size = .(, , , )
percentText.Position = .(, -, , )
percentText.BackgroundTransparency =
percentText.Text =
percentText.TextColor3 = Config.Theme.Primary
percentText.TextSize =
percentText.Font = Config.Fonts.Main
statusText = .(, container)
statusText.Size = .(, -, , )
statusText.Position = .(, , , )
statusText.BackgroundTransparency =
statusText.Text =
statusText.TextColor3 = Config.Theme.MutedText
statusText.TextSize =
statusText.Font = Config.Fonts.Code
statusText.TextXAlignment = .TextXAlignment.Center
screenGui.Parent = playerGui
currentPercent =
(target, duration)
startPercent = currentPercent
tweenInfo = TweenInfo.(duration, .EasingStyle.Cubic, .EasingDirection.Out)
fillTween = TweenService:(progressFill, tweenInfo, {Size = .(target / , , , )})
fillTween:()
tempNumber = .()
tempNumber.Value = startPercent
textTween = TweenService:(tempNumber, tweenInfo, {Value = target})
textTween:()
connection
connection = tempNumber.Changed:(()
newPercent = .(tempNumber.Value, , )
percentText.Text = .(newPercent) ..
currentPercent = newPercent
newPercent >= target
tempNumber:()
connection:()
)
tipDebounce =
(text, instant)
instant statusText.Text = text;
tipDebounce #Config.Tips > .() <
tipDebounce =
textToRestore = text
.(()
.()
()
originalPosition = statusText.Position
slideDownOffset = .(originalPosition.X.Scale, originalPosition.X.Offset, originalPosition.Y.Scale, originalPosition.Y.Offset + )
slideUpOffset = .(originalPosition.X.Scale, originalPosition.X.Offset, originalPosition.Y.Scale, originalPosition.Y.Offset - )
outTween = TweenService:(statusText, TweenInfo.(), {TextTransparency = })
outTween:()
outTween.Completed:()
statusText.Text = Config.Tips[.(, #Config.Tips)]
statusText.Position = slideDownOffset
inTween = TweenService:(statusText, TweenInfo.(, .EasingStyle.Sine, .EasingDirection.Out), {
TextTransparency = ,
Position = originalPosition
})
inTween:()
inTween.Completed:()
.()
outTween2 = TweenService:(statusText, TweenInfo.(, .EasingStyle.Sine, .EasingDirection.In), {
TextTransparency = ,
Position = slideUpOffset
})
outTween2:()
outTween2.Completed:()
statusText.Text = textToRestore
statusText.Position = originalPosition
inTween2 = TweenService:(statusText, TweenInfo.(), {TextTransparency = })
inTween2:()
.()
tipDebounce =
)
()
outTween = TweenService:(statusText, TweenInfo.(), {TextTransparency = })
outTween:()
outTween.Completed:()
statusText.Text = text
inTween = TweenService:(statusText, TweenInfo.(), {TextTransparency = })
inTween:()
(errorMessage)
(errorMessage, )
()
TweenService:(borderStroke, TweenInfo.(), {Color = Config.Theme.Failure}):()
TweenService:(progressFill, TweenInfo.(), {BackgroundColor3 = Config.Theme.Failure}):()
grad = progressFill:()
grad
TweenService:(grad, TweenInfo.(), {Color = ColorSequence.(Config.Theme.Failure)}):()
percentText.TextColor3 = Config.Theme.Failure
_, child (container:())
child:()
child.TextTransparency =
child:()
child.ImageTransparency =
child:()
child.BackgroundTransparency =
child:()
child.Transparency =
logoCircle.MouseEnter:(()
TweenService:(logoCircle, TweenInfo.(), {Size = .(, , , )}):()
)
logoCircle.MouseLeave:(()
TweenService:(logoCircle, TweenInfo.(), {Size = .(, , , )}):()
)
()
TweenService:(blur, TweenInfo.(Config.IntroAnimationTime), {Size = }):()
introTween = TweenService:(container, TweenInfo.(Config.IntroAnimationTime, .EasingStyle.Back, .EasingDirection.Out), {
Size = .(, , , )
})
introTween:()
introTween.Completed:()
_, child (container:())
child:()
TweenService:(child, TweenInfo.(), {TextTransparency = }):()
child:()
TweenService:(child, TweenInfo.(), {ImageTransparency = }):()
child:()
targetTransparency = (child.Name == )
TweenService:(child, TweenInfo.(), {BackgroundTransparency = targetTransparency}):()
child:()
targetTransparency = (child == successGlowStroke)
TweenService:(child, TweenInfo.(), {Transparency = targetTransparency}):()
.()
Config.ScriptToLoad == Config.ScriptToLoad ==
()
loadingFinished =
.(()
container.Parent loadingFinished
progressShine.Position = .(-, , , )
TweenService:(progressShine, TweenInfo.(, .EasingStyle.Linear), {Position = .(, , , )}):()
.()
)
.(()
container.Parent loadingFinished
progressShimmer.Offset = .(, -)
TweenService:(progressShimmer, TweenInfo.(, .EasingStyle.Linear), {Offset = .(, )}):()
.()
)
.(()
stepDuration = Config.LoadTime / #Config.Messages
i, msg (Config.Messages)
(msg, )
((i / #Config.Messages) * , stepDuration * )
.(stepDuration)
loadingFinished =
logoCircle.Active =
TweenService:(progressShine, TweenInfo.(), {BackgroundTransparency = }):()
(, )
success, result = (()
(:(Config.ScriptToLoad))()
)
success
()
(, )
flashIn = TweenService:(successGlowStroke, TweenInfo.(, .EasingStyle.Sine, .EasingDirection.Out), {Transparency = })
flashOut = TweenService:(successGlowStroke, TweenInfo.(, .EasingStyle.Sine, .EasingDirection.Out), {Transparency = })
bounceUp = TweenService:(logoCircle, TweenInfo.(, .EasingStyle.Elastic, .EasingDirection.Out), {Size = .(, , , )})
bounceDown = TweenService:(logoCircle, TweenInfo.(, .EasingStyle.Linear), {Size = .(, , , )})
flashIn:()
bounceUp:()
flashIn.Completed:(()
.()
flashOut:()
)
bounceUp.Completed:(()
bounceDown:()
)
flashOut.Completed:(()
TweenService:(statusText, TweenInfo.(), {TextTransparency = }):()
.()
TweenService:(blur, TweenInfo.(Config.OutroAnimationTime), {Size = }):()
outroTween = TweenService:(container, TweenInfo.(Config.OutroAnimationTime, .EasingStyle.Back, .EasingDirection.In), {
Size = .(, , , )
})
outroTween:()
_, child (container:())
child ~= statusText
child:()
TweenService:(child, TweenInfo.(Config.OutroAnimationTime * ), {TextTransparency = }):()
child:()
TweenService:(child, TweenInfo.(Config.OutroAnimationTime * ), {ImageTransparency = }):()
child:()
TweenService:(child, TweenInfo.(Config.OutroAnimationTime * ), {BackgroundTransparency = }):()
child:()
TweenService:(child, TweenInfo.(Config.OutroAnimationTime * ), {Transparency = }):()
outroTween.Completed:()
screenGui:()
blur:()
)
()
(, result)
)Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted.
Introducing the SoujaHub Loader v1.4 This is more than just a simple script loader; it's a complete, professional-grade loading experience designed to give any project a high-quality first impression. It comes packed with cinematic animations, deep customization, and robust functional features that make it both beautiful and reliable. Deep Customization & Rebranding Everything you see and hear is easily changeable right from the Config table at the top of the script, so you never have to dig through the code. You have full identity control, allowing you to instantly rebrand the loader by changing the Hub Name, Subtitle, and Logo Letter, or even by using a custom decal ID for the logo. The custom theme engine lets you tailor the entire visual aesthetic, from the primary purple accent and background gradient to the text and error states. You can also control the entire pace of the experience by setting the Load Time, as well as the intro and outro animation speeds. To add another layer of polish, the integrated sound system lets you add custom sound effects for key moments like the UI opening or successful loading. A Visually Stunning & Cinematic Experience The loader is built fr