
Key RequiredUniversal

local source="-- Snowy Hub single-stage FlowAuth loader
-- Generated route tables are injected by LuxScript.py.
if not game:IsLoaded() then
game.Loaded:Wait()
end
local LOADERS_BY_PLACE = {
[142823291] = { name = "MM2", url = "https://flowauth.net/v1/loaders/1284f976d74f93742a020980dcf30a3d.lua" },
[155615604] = { name = "Prison Life", url = "https://flowauth.net/v1/loaders/58f3b88f1eea47469254f99daea49f0c.lua" },
[185655149] = { name = "Welcome to Bloxburg", url = "https://flowauth.net/v1/loaders/939d801274463eeed485aa9b5d4e3a4b.lua" },
[286090429] = { name = "Arsenal", url = "https://flowauth.net/v1/loaders/ac819bd7abdb54e1bebd8a56e110bf05.lua" },
[606849621] = { name = "Jailbreak", url = "https://flowauth.net/v1/loaders/1442a85fca92ad5b0157254469b5ba2b.lua" },
[621129760] = { name = "KAT", url = "https://flowauth.net/v1/loaders/8676b598ac456d00f4414f07ab1d8fde.lua" },
[893973440] = { name = "Flee the Facility", url = "https://flowauth.net/v1/loaders/af2c2bd2b428446db06240cb60a1601f.lua" },
[920587237] = { name = "Adopt Me", url = "https://flowauth.net/v1/loaders/39fa2dffc0a7b60187c98fae28663ad9.lua" },
[1537690962] = { name = "Bee Swarm", url = "https://flowauth.net/v1/loaders/47620b8302d0709b15549efe91b5939a.lua" },
[1962086868] = { name = "Tower of hell", url = "https://flowauth.net/v1/loaders/8ddb7211a557a2352676c3d63bcc908e.lua" },
[2753915549] = { name = "Blox Fruits", url = "https://flowauth.net/v1/loaders/4c3812be08ffc82fb95c890293455090.lua" },
[2788229376] = { name = "Da Hood", url = "https://flowauth.net/v1/loaders/b760f931bfe638ac0ffd7c1653d6f2e3.lua" },
[3351674303] = { name = "Driving Empire", url = "https://flowauth.net/v1/loaders/f1c2727550f69fdd06bf5750c85f4f06.lua" },
[4924922222] = { name = "Brookhaven", url = "https://flowauth.net/v1/loaders/6d226f26e32a48643a1a51dadc16c97c.lua" },
[6872265039] = { name = "BedWars", url = "https://flowauth.net/v1/loaders/e7d10d6d9e8843b617ef435ca99bdde7.lua" },
[7305309231] = { name = "Taxi Boss", url = "https://flowauth.net/v1/loaders/9ef84f597617dbf0f38431595817e26f.lua" },
[8737899170] = { name = "Pet Sim 99", url = "https://flowauth.net/v1/loaders/c2ab5abb3f1139fab96cc0a648cd05ee.lua" },
[9391468976] = { name = "Jujutsu Shenanigans", url = "https://flowauth.net/v1/loaders/8771ec959e4c42728262153cf31f4f4a.lua" },
[9872472334] = { name = "Evade", url = "https://flowauth.net/v1/loaders/92e5ad94cecd5d7d5b2bce2d9dbdb8f7.lua" },
[10449761463] = { name = "Strongest Battlegrounds", url = "https://flowauth.net/v1/loaders/1b0433dd4b5714f323b42ae9ee478eab.lua" },
[11815767793] = { name = "Ultimate Battlegrounds", url = "https://flowauth.net/v1/loaders/2b6f324ee1b0add0794da32ae071060c.lua" },
[13076380114] = { name = "Heroes Battlegrounds", url = "https://flowauth.net/v1/loaders/66112bf3e0ccbdef51ce9ff7bc2459fb.lua" },
[13772394625] = { name = "Blade Ball", url = "https://flowauth.net/v1/loaders/9897c02bdf08e908990f0150a94a81f3.lua" },
[15002061926] = { name = "Death Ball", url = "https://flowauth.net/v1/loaders/7b5ad16a51bb20bccb2c7cb968575b8b.lua" },
[15101393044] = { name = "Dress To Impress", url = "https://flowauth.net/v1/loaders/bf4696346359a0b2ea2726cc1cd178f6.lua" },
[15269951959] = { name = "Legend Battlegrounds", url = "https://flowauth.net/v1/loaders/59fd109ad7ac235cc96311ba51585e65.lua" },
[16116270224] = { name = "Dandy's World", url = "https://flowauth.net/v1/loaders/cbf09d8e0bc48f6cfbfe5edd702a1bbb.lua" },
[17625359962] = { name = "Rivals", url = "https://flowauth.net/v1/loaders/7354e54de8e430e4bd0fea56d3ff4e4b.lua" },
[18199615050] = { name = "Demonology", url = "https://flowauth.net/v1/loaders/aaa2f960a14b82caaed038ef84c97860.lua" },
[77747658251236] = { name = "Sailor Piece", url = "https://flowauth.net/v1/loaders/29f157fbfbc9e9cd5727deb45135f5b1.lua" },
[79268393072444] = { name = "Sell Lemons", url = "https://flowauth.net/v1/loaders/b63d6ebd11d922d55cd57917417b9a48.lua" },
[79546208627805] = { name = "99 Nights", url = "https://flowauth.net/v1/loaders/db496150f726594675e694c45e9611d9.lua" },
[82806856224736] = { name = "Grab Ores!", url = "https://flowauth.net/v1/loaders/1967e4e9e6da503e0f8676e26f2b6a11.lua" },
[83038462357724] = { name = "Dig & Clean", url = "https://flowauth.net/v1/loaders/f44a7c040c226b7212df46930b1a7597.lua" },
[84515722934860] = { name = "Anime Expeditions", url = "https://flowauth.net/v1/loaders/9e885a58aaa87d6d9b47e508f8a44fda.lua" },
[85395484560711] = { name = "Volleyball Legends", url = "https://flowauth.net/v1/loaders/7d03db1bb5ab5f87dc18149bc79ce52f.lua" },
[89469502395769] = { name = "Kick a Lucky Block", url = "https://flowauth.net/v1/loaders/9113d2bc8d2bec276f9346af2eec4df6.lua" },
[90568084448279] = { name = "One Tap", url = "https://flowauth.net/v1/loaders/610da5400906453cb8a38498e0804e6d.lua" },
[92637789841354] = { name = "Clean all the leaves!", url = "https://flowauth.net/v1/loaders/fded6af43e55026a4d5f8441d0f0d2f8.lua" },
[93978595733734] = { name = "Violence District", url = "https://flowauth.net/v1/loaders/228245a7a4ce7fa815d9cadbdfdf7d4c.lua" },
[94640181989498] = { name = "Grow a Chicken Fighter", url = "https://flowauth.net/v1/loaders/f479f0a5b6da340d4b7952325c457351.lua" },
[95082159892680] = { name = "Speed Keyboard Escape", url = "https://flowauth.net/v1/loaders/5b0eaca649815de80f9d4531cf0732ed.lua" },
[97598239454123] = { name = "Grow a Garden 2", url = "https://flowauth.net/v1/loaders/b4db1831f1daeb0d00f2b632e90c8c84.lua" },
[100068273119174] = { name = "Clean all the leaves!", url = "https://flowauth.net/v1/loaders/fded6af43e55026a4d5f8441d0f0d2f8.lua" },
[107778070777162] = { name = "Steal an Egg", url = "https://flowauth.net/v1/loaders/6792c0b96c889e4d9d88a77120371fa1.lua" },
[109397169461300] = { name = "Sniper Duels", url = "https://flowauth.net/v1/loaders/95931032f9e260d8edbd197e99e9e75e.lua" },
[109983668079237] = { name = "SAB", url = "https://flowauth.net/v1/loaders/c0e32e80327bf489e68ce85e214aabb7.lua" },
[114234929420007] = { name = "BloxStrike", url = "https://flowauth.net/v1/loaders/9346f94649261116235cd37c98961c1a.lua" },
[114640202062357] = { name = "Swing Obby", url = "https://flowauth.net/v1/loaders/f77a952b826a58264797d07fa907618e.lua" },
[114697347887839] = { name = "Speed Monkey Escape", url = "https://flowauth.net/v1/loaders/5fb1ce42b4ff9fc189f7b49b2532dd38.lua" },
[121192350097093] = { name = "+1 Jump Brainrot", url = "https://flowauth.net/v1/loaders/91c34ef4cdfea8c1718537b58ac45c38.lua" },
[121864768012064] = { name = "Fish It", url = "https://flowauth.net/v1/loaders/c56b12fceac3d4fb131e472ac22ae389.lua" },
[125927821145949] = { name = "Mine A Mountain", url = "https://flowauth.net/v1/loaders/4b355353238a9ce8c0c399c21bd5a876.lua" },
[127794225497302] = { name = "Abyss", url = "https://flowauth.net/v1/loaders/bff030cf88d19e03e0ebee9e3a8e3e26.lua" },
[128736949265057] = { name = "Gakuran", url = "https://flowauth.net/v1/loaders/da0be740960229c973901fff7813da38.lua" },
[135648408848758] = { name = "One Scope", url = "https://flowauth.net/v1/loaders/01b50ec75bb1a0aa6893005e72b53041.lua" },
[135856908115931] = { name = "Murderers VS Sheriffs", url = "https://flowauth.net/v1/loaders/0ba8b3eb41317869584846b2eb3e2843.lua" },
[138381251771774] = { name = "Drain the Lake", url = "https://flowauth.net/v1/loaders/efa605e2433ce4cf44a3e829c0b963be.lua" },
[139299356663913] = { name = "Jump for Brainrots", url = "https://flowauth.net/v1/loaders/34692ef767507cdd54c63830e858054b.lua" },
[139566161526375] = { name = "Bridge Duel", url = "https://flowauth.net/v1/loaders/bf32a63abbec5a85ad5aae872618de4a.lua" },
}
local LOADERS_BY_GAME = {
[66654135] = { name = "MM2", url = "https://flowauth.net/v1/loaders/1284f976d74f93742a020980dcf30a3d.lua" },
[73885730] = { name = "Prison Life", url = "https://flowauth.net/v1/loaders/58f3b88f1eea47469254f99daea49f0c.lua" },
[88070565] = { name = "Welcome to Bloxburg", url = "https://flowauth.net/v1/loaders/939d801274463eeed485aa9b5d4e3a4b.lua" },
[111958650] = { name = "Arsenal", url = "https://flowauth.net/v1/loaders/ac819bd7abdb54e1bebd8a56e110bf05.lua" },
[245662005] = { name = "Jailbreak", url = "https://flowauth.net/v1/loaders/1442a85fca92ad5b0157254469b5ba2b.lua" },
[254394801] = { name = "KAT", url = "https://flowauth.net/v1/loaders/8676b598ac456d00f4414f07ab1d8fde.lua" },
[372226183] = { name = "Flee the Facility", url = "https://flowauth.net/v1/loaders/af2c2bd2b428446db06240cb60a1601f.lua" },
[383310974] = { name = "Adopt Me", url = "https://flowauth.net/v1/loaders/39fa2dffc0a7b60187c98fae28663ad9.lua" },
[601130232] = { name = "Bee Swarm", url = "https://flowauth.net/v1/loaders/47620b8302d0709b15549efe91b5939a.lua" },
[703124385] = { name = "Tower of hell", url = "https://flowauth.net/v1/loaders/8ddb7211a557a2352676c3d63bcc908e.lua" },
[994732206] = { name = "Blox Fruits", url = "https://flowauth.net/v1/loaders/4c3812be08ffc82fb95c890293455090.lua" },
[1008451066] = { name = "Da Hood", url = "https://flowauth.net/v1/loaders/b760f931bfe638ac0ffd7c1653d6f2e3.lua" },
[1202096104] = { name = "Driving Empire", url = "https://flowauth.net/v1/loaders/f1c2727550f69fdd06bf5750c85f4f06.lua" },
[1686885941] = { name = "Brookhaven", url = "https://flowauth.net/v1/loaders/6d226f26e32a48643a1a51dadc16c97c.lua" },
[2619619496] = { name = "BedWars", url = "https://flowauth.net/v1/loaders/e7d10d6d9e8843b617ef435ca99bdde7.lua" },
[2851381018] = { name = "Taxi Boss", url = "https://flowauth.net/v1/loaders/9ef84f597617dbf0f38431595817e26f.lua" },
[3317771874] = { name = "Pet Sim 99", url = "https://flowauth.net/v1/loaders/c2ab5abb3f1139fab96cc0a648cd05ee.lua" },
[3508322461] = { name = "Jujutsu Shenanigans", url = "https://flowauth.net/v1/loaders/8771ec959e4c42728262153cf31f4f4a.lua" },
[3647333358] = { name = "Evade", url = "https://flowauth.net/v1/loaders/92e5ad94cecd5d7d5b2bce2d9dbdb8f7.lua" },
[3808081382] = { name = "Strongest Battlegrounds", url = "https://flowauth.net/v1/loaders/1b0433dd4b5714f323b42ae9ee478eab.lua" },
[4181957649] = { name = "Ultimate Battlegrounds", url = "https://flowauth.net/v1/loaders/2b6f324ee1b0add0794da32ae071060c.lua" },
[4568630521] = { name = "Heroes Battlegrounds", url = "https://flowauth.net/v1/loaders/66112bf3e0ccbdef51ce9ff7bc2459fb.lua" },
[4777817887] = { name = "Blade Ball", url = "https://flowauth.net/v1/loaders/9897c02bdf08e908990f0150a94a81f3.lua" },
[5166944221] = { name = "Death Ball", url = "https://flowauth.net/v1/loaders/7b5ad16a51bb20bccb2c7cb968575b8b.lua" },
[5203828273] = { name = "Dress To Impress", url = "https://flowauth.net/v1/loaders/bf4696346359a0b2ea2726cc1cd178f6.lua" },
[5265857965] = { name = "Legend Battlegrounds", url = "https://flowauth.net/v1/loaders/59fd109ad7ac235cc96311ba51585e65.lua" },
[5569032992] = { name = "Dandy's World", url = "https://flowauth.net/v1/loaders/cbf09d8e0bc48f6cfbfe5edd702a1bbb.lua" },
[6035872082] = { name = "Rivals", url = "https://flowauth.net/v1/loaders/7354e54de8e430e4bd0fea56d3ff4e4b.lua" },
[6170143659] = { name = "Demonology", url = "https://flowauth.net/v1/loaders/aaa2f960a14b82caaed038ef84c97860.lua" },
[6701277882] = { name = "Fish It", url = "https://flowauth.net/v1/loaders/c56b12fceac3d4fb131e472ac22ae389.lua" },
[6739698191] = { name = "Violence District", url = "https://flowauth.net/v1/loaders/228245a7a4ce7fa815d9cadbdfdf7d4c.lua" },
[6931042565] = { name = "Volleyball Legends", url = "https://flowauth.net/v1/loaders/7d03db1bb5ab5f87dc18149bc79ce52f.lua" },
[7219654364] = { name = "Murderers VS Sheriffs", url = "https://flowauth.net/v1/loaders/0ba8b3eb41317869584846b2eb3e2843.lua" },
[7264587281] = { name = "Sniper Duels", url = "https://flowauth.net/v1/loaders/95931032f9e260d8edbd197e99e9e75e.lua" },
[7326934954] = { name = "99 Nights", url = "https://flowauth.net/v1/loaders/db496150f726594675e694c45e9611d9.lua" },
[7395930870] = { name = "Sell Lemons", url = "https://flowauth.net/v1/loaders/b63d6ebd11d922d55cd57917417b9a48.lua" },
[7613921865] = { name = "Anime Expeditions", url = "https://flowauth.net/v1/loaders/9e885a58aaa87d6d9b47e508f8a44fda.lua" },
[7633926880] = { name = "BloxStrike", url = "https://flowauth.net/v1/loaders/9346f94649261116235cd37c98961c1a.lua" },
[7709344486] = { name = "SAB", url = "https://flowauth.net/v1/loaders/c0e32e80327bf489e68ce85e214aabb7.lua" },
[8144728961] = { name = "Abyss", url = "https://flowauth.net/v1/loaders/bff030cf88d19e03e0ebee9e3a8e3e26.lua" },
[9137416017] = { name = "Bridge Duel", url = "https://flowauth.net/v1/loaders/bf32a63abbec5a85ad5aae872618de4a.lua" },
[9186719164] = { name = "Sailor Piece", url = "https://flowauth.net/v1/loaders/29f157fbfbc9e9cd5727deb45135f5b1.lua" },
[9199655655] = { name = "Gakuran", url = "https://flowauth.net/v1/loaders/da0be740960229c973901fff7813da38.lua" },
[9294074907] = { name = "One Tap", url = "https://flowauth.net/v1/loaders/610da5400906453cb8a38498e0804e6d.lua" },
[9570888371] = { name = "Jump for Brainrots", url = "https://flowauth.net/v1/loaders/34692ef767507cdd54c63830e858054b.lua" },
[9584852943] = { name = "Speed Keyboard Escape", url = "https://flowauth.net/v1/loaders/5b0eaca649815de80f9d4531cf0732ed.lua" },
[9670086989] = { name = "One Scope", url = "https://flowauth.net/v1/loaders/01b50ec75bb1a0aa6893005e72b53041.lua" },
[9753814298] = { name = "Swing Obby", url = "https://flowauth.net/v1/loaders/f77a952b826a58264797d07fa907618e.lua" },
[9911844243] = { name = "+1 Jump Brainrot", url = "https://flowauth.net/v1/loaders/91c34ef4cdfea8c1718537b58ac45c38.lua" },
[9949843097] = { name = "Grab Ores!", url = "https://flowauth.net/v1/loaders/1967e4e9e6da503e0f8676e26f2b6a11.lua" },
[10004244222] = { name = "Kick a Lucky Block", url = "https://flowauth.net/v1/loaders/9113d2bc8d2bec276f9346af2eec4df6.lua" },
[10144280947] = { name = "Speed Monkey Escape", url = "https://flowauth.net/v1/loaders/5fb1ce42b4ff9fc189f7b49b2532dd38.lua" },
[10187294555] = { name = "Mine A Mountain", url = "https://flowauth.net/v1/loaders/4b355353238a9ce8c0c399c21bd5a876.lua" },
[10200395747] = { name = "Grow a Garden 2", url = "https://flowauth.net/v1/loaders/b4db1831f1daeb0d00f2b632e90c8c84.lua" },
[10267363348] = { name = "Drain the Lake", url = "https://flowauth.net/v1/loaders/efa605e2433ce4cf44a3e829c0b963be.lua" },
[10338952197] = { name = "Grow a Chicken Fighter", url = "https://flowauth.net/v1/loaders/f479f0a5b6da340d4b7952325c457351.lua" },
[10475794799] = { name = "Dig & Clean", url = "https://flowauth.net/v1/loaders/f44a7c040c226b7212df46930b1a7597.lua" },
[10539411000] = { name = "Clean all the leaves!", url = "https://flowauth.net/v1/loaders/fded6af43e55026a4d5f8441d0f0d2f8.lua" },
[10563114921] = { name = "Steal an Egg", url = "https://flowauth.net/v1/loaders/6792c0b96c889e4d9d88a77120371fa1.lua" },
}
local DISCORD_URL = "https://discord.gg/getsnowy"
local PRICING_URL = "https://getsnowy.xyz/pricing"
local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Stats = game:GetService("Stats")
local player = Players.LocalPlayer
local COLORS = {
backdrop = Color3.fromRGB(2, 6, 12),
shell = Color3.fromRGB(6, 11, 20),
glass = Color3.fromRGB(13, 23, 39),
glassDeep = Color3.fromRGB(8, 16, 29),
glassRaised = Color3.fromRGB(20, 33, 54),
userPanel = Color3.fromRGB(7, 25, 34),
surface = Color3.fromRGB(16, 27, 45),
surfaceRaised = Color3.fromRGB(23, 36, 59),
surfaceHover = Color3.fromRGB(31, 48, 75),
surfacePressed = Color3.fromRGB(14, 24, 42),
input = Color3.fromRGB(7, 15, 28),
inputFocus = Color3.fromRGB(11, 24, 41),
divider = Color3.fromRGB(87, 119, 154),
primary = Color3.fromRGB(26, 164, 235),
primaryHover = Color3.fromRGB(49, 183, 246),
primaryPressed = Color3.fromRGB(17, 132, 199),
secondary = Color3.fromRGB(27, 45, 72),
secondaryHover = Color3.fromRGB(38, 61, 95),
secondaryPressed = Color3.fromRGB(19, 34, 57),
text = Color3.fromRGB(239, 245, 255),
textMuted = Color3.fromRGB(162, 181, 209),
textFaint = Color3.fromRGB(108, 132, 163),
cyan = Color3.fromRGB(67, 207, 255),
success = Color3.fromRGB(47, 224, 151),
warning = Color3.fromRGB(255, 190, 91),
danger = Color3.fromRGB(255, 97, 120),
premium = Color3.fromRGB(246, 192, 79),
premiumSurface = Color3.fromRGB(25, 22, 36),
premiumAction = Color3.fromRGB(126, 87, 232),
premiumHover = Color3.fromRGB(150, 111, 247),
premiumPressed = Color3.fromRGB(99, 67, 193),
disabled = Color3.fromRGB(35, 45, 62),
}
local MOTION = {
quick = 0.12,
normal = 0.22,
slow = 0.34,
}
-- The atlas entries are reused from Snowy's embedded Lucide export. Direct
-- entries fill the few semantic gaps without pulling in a remote UI library.
local LUCIDE = {
user = {
image = "rbxassetid://16898613869",
size = Vector2.new(48, 48),
offset = Vector2.new(661, 869),
},
settings = {
image = "rbxassetid://16898613777",
size = Vector2.new(48, 48),
offset = Vector2.new(771, 257),
},
shield = {
image = "rbxassetid://16898613777",
size = Vector2.new(48, 48),
offset = Vector2.new(869, 0),
},
globe = {
image = "rbxassetid://16898613509",
size = Vector2.new(48, 48),
offset = Vector2.new(771, 563),
},
save = {
image = "rbxassetid://16898613699",
size = Vector2.new(48, 48),
offset = Vector2.new(918, 453),
},
minus = { image = "rbxassetid://7734000129" },
x = { image = "rbxassetid://7743878857" },
key = { image = "rbxassetid://7733965118" },
["shield-check"] = { image = "rbxassetid://7734056411" },
["message-circle"] = { image = "rbxassetid://7733993311" },
copy = { image = "rbxassetid://7733764083" },
monitor = { image = "rbxassetid://7734002839" },
smartphone = { image = "rbxassetid://7734058979" },
gamepad = { image = "rbxassetid://7733799901" },
clock = { image = "rbxassetid://7733734848" },
wifi = { image = "rbxassetid://7743878148" },
["external-link"] = { image = "rbxassetid://7743866903" },
["alert-circle"] = { image = "rbxassetid://7733658271" },
["check-circle"] = { image = "rbxassetid://7733919427" },
info = { image = "rbxassetid://7733964719" },
server = { image = "rbxassetid://7734053426" },
}
local DESKTOP_WIDTH = 930
local COMPACT_WIDTH = 644
local SHELL_HEIGHT = 620
local SNOW_ASSET_ID = 68072539
local SNOW_TEXTURE = "rbxthumb://type=Asset&id=68072539&w=150&h=150"
local DESKTOP_SNOWFLAKES = 18
local COMPACT_SNOWFLAKES = 10
local activeTweens = setmetatable({}, { __mode = "k" })
local function resolveLoader()
local placeId = tonumber(game.PlaceId) or 0
local gameId = tonumber(game.GameId) or 0
return LOADERS_BY_PLACE[placeId] or LOADERS_BY_GAME[gameId]
end
local function normalizeKey(value)
local key = tostring(value or "")
key = key:gsub("^%s+", ""):gsub("%s+$", "")
local first = key:sub(1, 1)
local last = key:sub(-1)
if #key >= 2 and ((first == "\"" and last == "\"") or (first == "'" and last == "'")) then
key = key:sub(2, -2):gsub("^%s+", ""):gsub("%s+$", "")
end
return key
end
local function copyText(value)
local copier = setclipboard or toclipboard
if type(copier) ~= "function" then
return false
end
return pcall(copier, tostring(value))
end
local function executorName()
if type(identifyexecutor) == "function" then
local ok, name = pcall(identifyexecutor)
if ok and name then return tostring(name) end
end
return "Unknown"
end
local function deviceName()
if UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled then
return "Mobile"
end
return "PC"
end
local function readableHwid()
local providers = { gethwid, get_hwid }
if syn and type(syn.gethwid) == "function" then
table.insert(providers, syn.gethwid)
end
for _, provider in ipairs(providers) do
if type(provider) == "function" then
local ok, value = pcall(provider)
if ok and value and tostring(value) ~= "" then
return tostring(value)
end
end
end
return nil
end
local parent = CoreGui
pcall(function()
if type(gethui) == "function" then parent = gethui() end
end)
pcall(function()
local previous = parent:FindFirstChild("SnowyFlowAuthLoader")
if previous then previous:Destroy() end
end)
local gui = Instance.new("ScreenGui")
gui.Name = "SnowyFlowAuthLoader"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = parent
local clickSound = Instance.new("Sound")
clickSound.Name = "SnowyClick"
clickSound.SoundId = "rbxassetid://6895079853"
clickSound.Volume = 0.42
clickSound.PlaybackSpeed = 1
clickSound.Looped = false
clickSound.Parent = gui
local function playClickSound()
pcall(function()
clickSound.TimePosition = 0
clickSound:Play()
end)
end
local function create(className, properties, targetParent)
local object = Instance.new(className)
for key, value in pairs(properties or {}) do
object[key] = value
end
object.Parent = targetParent
return object
end
local function round(object, radius)
return create("UICorner", { CornerRadius = UDim.new(0, radius or 12) }, object)
end
local function glassSurface(object, topColor, bottomColor, transparency, radius)
object.BackgroundColor3 = topColor or COLORS.glass
object.BackgroundTransparency = transparency or 0.3
object.BorderSizePixel = 0
object.ClipsDescendants = true
round(object, radius or 14)
create("UIGradient", {
Color = ColorSequence.new(
topColor or COLORS.glassRaised,
bottomColor or COLORS.glassDeep
),
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.02),
NumberSequenceKeypoint.new(1, 0.10),
}),
Rotation = 105,
}, object)
return object
end
local function applyLucideData(icon, iconName)
local data = LUCIDE[iconName] or LUCIDE.info
icon.Image = data.image
if data.offset and data.size then
icon.ImageRectOffset = data.offset
icon.ImageRectSize = data.size
else
icon.ImageRectOffset = Vector2.new(0, 0)
icon.ImageRectSize = Vector2.new(0, 0)
end
end
local function lucideIcon(parentObject, iconName, position, size, color, zIndex)
local icon = create("ImageLabel", {
Name = "LucideIcon",
BackgroundTransparency = 1,
Position = position,
Size = size,
ImageColor3 = color or COLORS.textMuted,
ScaleType = Enum.ScaleType.Fit,
ZIndex = zIndex or 4,
}, parentObject)
applyLucideData(icon, iconName)
return icon
end
local function playTween(object, duration, properties, easingStyle, easingDirection, channel)
local bucket = activeTweens[object]
if not bucket then
bucket = {}
activeTweens[object] = bucket
end
local key = channel or "default"
local previous = bucket[key]
if previous then
previous:Cancel()
end
local tween = TweenService:Create(
object,
TweenInfo.new(
duration,
easingStyle or Enum.EasingStyle.Quint,
easingDirection or Enum.EasingDirection.Out
),
properties
)
bucket[key] = tween
tween.Completed:Connect(function()
if bucket[key] == tween then
bucket[key] = nil
end
end)
tween:Play()
return tween
end
local function textLabel(parentObject, text, position, size, font, textSize, color, alignment)
return create("TextLabel", {
BackgroundTransparency = 1,
Position = position,
Size = size,
Font = font or Enum.Font.Gotham,
Text = text,
TextColor3 = color or COLORS.text,
TextSize = textSize or 13,
TextXAlignment = alignment or Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Center,
TextTruncate = Enum.TextTruncate.AtEnd,
}, parentObject)
end
local function bindButtonMotion(button, baseColor, hoverColor, pressedColor)
local scale = button:FindFirstChildOfClass("UIScale")
local function animate(color, value)
if button:GetAttribute("MotionDisabled") then return end
playTween(button, MOTION.quick, { BackgroundColor3 = color })
if scale then
playTween(scale, MOTION.quick, { Scale = value })
end
end
button.MouseEnter:Connect(function()
animate(hoverColor, 1.015)
end)
button.MouseLeave:Connect(function()
animate(baseColor, 1)
end)
button.MouseButton1Down:Connect(function()
animate(pressedColor, 0.975)
end)
button.MouseButton1Up:Connect(function()
animate(hoverColor, 1.01)
end)
end
local function makeButton(parentObject, name, text, position, size, baseColor, hoverColor, pressedColor, iconName)
local button = create("TextButton", {
Name = name,
Position = position,
Size = size,
BackgroundColor3 = baseColor,
BorderSizePixel = 0,
AutoButtonColor = false,
Active = true,
Text = "",
TextColor3 = COLORS.text,
}, parentObject)
round(button, 11)
create("UIScale", { Scale = 1 }, button)
local content = create("Frame", {
Name = "ButtonContent",
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(0, 18),
AutomaticSize = Enum.AutomaticSize.X,
BackgroundTransparency = 1,
ZIndex = 5,
}, button)
create("UIListLayout", {
FillDirection = Enum.FillDirection.Horizontal,
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Center,
Padding = UDim.new(0, iconName and 8 or 0),
SortOrder = Enum.SortOrder.LayoutOrder,
}, content)
if iconName then
local icon = lucideIcon(
content,
iconName,
UDim2.new(),
UDim2.fromOffset(16, 16),
COLORS.text,
5
)
icon.LayoutOrder = 1
icon.ImageTransparency = 0.08
end
local label = textLabel(
content,
text,
UDim2.new(),
UDim2.fromOffset(0, 18),
Enum.Font.GothamBold,
13,
COLORS.text,
Enum.TextXAlignment.Center
)
label.Name = "ButtonLabel"
label.AutomaticSize = Enum.AutomaticSize.X
label.LayoutOrder = 2
label.TextTruncate = Enum.TextTruncate.None
label.ZIndex = 5
bindButtonMotion(
button,
baseColor,
hoverColor or COLORS.surfaceHover,
pressedColor or COLORS.surfacePressed
)
button.Activated:Connect(function()
if button.Active and not button:GetAttribute("MotionDisabled") then
playClickSound()
end
end)
return button
end
local function setButtonText(button, value)
local label = button:FindFirstChild("ButtonLabel", true)
if label then
label.Text = tostring(value or "")
end
end
local function setButtonTextSize(button, value)
local label = button:FindFirstChild("ButtonLabel", true)
if label then
label.TextSize = value
end
end
local function makeIconButton(parentObject, name, iconName, position, baseColor, hoverColor, pressedColor)
local button = create("ImageButton", {
Name = name,
Position = position,
Size = UDim2.fromOffset(32, 32),
BackgroundColor3 = baseColor,
BackgroundTransparency = 0.18,
BorderSizePixel = 0,
AutoButtonColor = false,
Active = true,
Image = "",
}, parentObject)
round(button, 10)
create("UIScale", { Scale = 1 }, button)
lucideIcon(button, iconName, UDim2.fromOffset(8, 8), UDim2.fromOffset(16, 16), COLORS.textMuted, 5)
bindButtonMotion(button, baseColor, hoverColor, pressedColor)
button.Activated:Connect(function()
if button.Active and not button:GetAttribute("MotionDisabled") then
playClickSound()
end
end)
return button
end
local function setButtonEnabled(button, enabled)
button.Active = enabled
button:SetAttribute("MotionDisabled", not enabled)
playTween(button, MOTION.quick, {
BackgroundColor3 = enabled and COLORS.secondary or COLORS.disabled,
})
local label = button:FindFirstChild("ButtonLabel", true)
if label then
playTween(label, MOTION.quick, { TextTransparency = enabled and 0 or 0.28 })
end
local icon = button:FindFirstChild("LucideIcon", true)
if icon then
playTween(icon, MOTION.quick, { ImageTransparency = enabled and 0.08 or 0.45 })
end
end
local backdrop = create("Frame", {
Name = "Backdrop",
Size = UDim2.fromScale(1, 1),
BackgroundColor3 = COLORS.backdrop,
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, gui)
create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(3, 15, 25)),
ColorSequenceKeypoint.new(0.55, Color3.fromRGB(5, 9, 17)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(13, 8, 22)),
}),
Rotation = 18,
}, backdrop)
local shell = create("CanvasGroup", {
Name = "Shell",
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(DESKTOP_WIDTH, SHELL_HEIGHT),
BackgroundTransparency = 1,
GroupTransparency = 1,
}, backdrop)
local shellScale = create("UIScale", { Scale = 0.96 }, shell)
local shellChrome = create("Frame", {
Name = "Chrome",
Size = UDim2.fromScale(1, 1),
BorderSizePixel = 0,
ZIndex = 2,
}, shell)
glassSurface(shellChrome, Color3.fromRGB(12, 23, 39), COLORS.shell, 0.12, 22)
local snowLayer = create("Frame", {
Name = "SnowLayer",
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
BorderSizePixel = 0,
ClipsDescendants = true,
Active = false,
ZIndex = 2,
}, shellChrome)
local snowRandom = Random.new()
local snowflakes = {}
local snowTweens = {}
local function runSnowflake(carrier, flake, index)
task.delay((index - 1) * 0.55, function()
while gui.Parent and carrier.Parent do
local shellWidth = math.max(180, shell.Size.X.Offset)
local depthBand = (index - 1) % 3
local minimumSize = depthBand == 0 and 6 or (depthBand == 1 and 9 or 12)
local maximumSize = depthBand == 0 and 10 or (depthBand == 1 and 14 or 18)
local minimumTransparency = depthBand == 0 and 0.68 or (depthBand == 1 and 0.54 or 0.46)
local maximumTransparency = depthBand == 0 and 0.82 or (depthBand == 1 and 0.70 or 0.62)
local size = snowRandom:NextInteger(minimumSize, maximumSize)
local startX = snowRandom:NextInteger(10, math.max(10, shellWidth - size - 10))
local drift = snowRandom:NextInteger(-34, 34)
local duration = snowRandom:NextNumber(7.5, 12.5)
carrier.Position = UDim2.fromOffset(startX, -size - 10)
flake.Position = UDim2.fromOffset(0, 0)
flake.Size = UDim2.fromOffset(size, size)
flake.ImageTransparency = snowRandom:NextNumber(minimumTransparency, maximumTransparency)
flake.Rotation = snowRandom:NextInteger(-35, 35)
local fallTween = TweenService:Create(
carrier,
TweenInfo.new(duration, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut),
{ Position = UDim2.fromOffset(startX, SHELL_HEIGHT + size + 12) }
)
local driftTween = TweenService:Create(
flake,
TweenInfo.new(duration, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut),
{
Position = UDim2.fromOffset(drift, 0),
Rotation = flake.Rotation + snowRandom:NextInteger(-90, 90),
}
)
snowTweens[carrier] = { fallTween, driftTween }
fallTween:Play()
driftTween:Play()
fallTween.Completed:Wait()
driftTween:Cancel()
snowTweens[carrier] = nil
task.wait(snowRandom:NextNumber(0.2, 1.2))
end
end)
end
for index = 1, DESKTOP_SNOWFLAKES do
local carrier = create("Frame", {
Name = "SnowCarrier" .. tostring(index),
Size = UDim2.fromOffset(1, 1),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Active = false,
ZIndex = 2,
}, snowLayer)
local flake = create("ImageLabel", {
Name = "Snowflake" .. tostring(index),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Image = SNOW_TEXTURE,
ScaleType = Enum.ScaleType.Fit,
Active = false,
ZIndex = 2,
}, carrier)
snowflakes[index] = carrier
runSnowflake(carrier, flake, index)
end
local function setSnowflakeCount(count)
for index, carrier in ipairs(snowflakes) do
carrier.Visible = index <= count
end
end
gui.Destroying:Connect(function()
for _, tweens in pairs(snowTweens) do
for _, tween in ipairs(tweens) do
tween:Cancel()
end
end
end)
local userPanel = create("Frame", {
Name = "UserInfo",
Position = UDim2.fromOffset(8, 8),
Size = UDim2.fromOffset(278, 604),
BackgroundTransparency = 1,
BorderSizePixel = 0,
ZIndex = 3,
}, shellChrome)
local mainPanel = create("Frame", {
Name = "Main",
Position = UDim2.fromOffset(294, 8),
Size = UDim2.fromOffset(628, 604),
BackgroundTransparency = 1,
BorderSizePixel = 0,
ZIndex = 3,
}, shellChrome)
local columnDivider = create("Frame", {
Name = "ColumnDivider",
Position = UDim2.fromOffset(286, 20),
Size = UDim2.new(0, 1, 1, -40),
BackgroundColor3 = COLORS.divider,
BackgroundTransparency = 0.84,
BorderSizePixel = 0,
ZIndex = 3,
}, shellChrome)
lucideIcon(userPanel, "user", UDim2.fromOffset(20, 19), UDim2.fromOffset(15, 15), COLORS.cyan, 5)
textLabel(userPanel, "User Info", UDim2.fromOffset(43, 14), UDim2.new(1, -62, 0, 26), Enum.Font.GothamBold, 11, COLORS.cyan)
create("Frame", {
Position = UDim2.fromOffset(18, 48),
Size = UDim2.new(1, -36, 0, 1),
BackgroundColor3 = COLORS.divider,
BackgroundTransparency = 0.72,
BorderSizePixel = 0,
}, userPanel)
local avatarHalo = create("Frame", {
Name = "AvatarHalo",
Position = UDim2.new(0.5, -50, 0, 58),
Size = UDim2.fromOffset(100, 100),
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, userPanel)
round(avatarHalo, 50)
local avatarRing = create("Frame", {
Name = "AvatarGradientRing",
Position = UDim2.fromOffset(4, 4),
Size = UDim2.fromOffset(92, 92),
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, avatarHalo)
round(avatarRing, 46)
local avatarRingStroke = create("UIStroke", {
Name = "AvatarRingStroke",
Color = COLORS.cyan,
Thickness = 3,
Transparency = 0,
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
}, avatarRing)
create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 224, 255)),
ColorSequenceKeypoint.new(0.52, COLORS.primary),
ColorSequenceKeypoint.new(1, Color3.fromRGB(102, 102, 255)),
}),
Rotation = 35,
}, avatarRingStroke)
local avatarSeparator = create("Frame", {
Name = "AvatarSeparator",
Position = UDim2.fromOffset(2, 2),
Size = UDim2.fromOffset(88, 88),
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, avatarRing)
round(avatarSeparator, 44)
local avatar = create("ImageLabel", {
Position = UDim2.fromOffset(2, 2),
Size = UDim2.fromOffset(84, 84),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Image = "rbxassetid://0",
ScaleType = Enum.ScaleType.Crop,
}, avatarSeparator)
round(avatar, 42)
local onlineDot = create("Frame", {
Name = "OnlineDotBacking",
Position = UDim2.new(1, -26, 1, -26),
Size = UDim2.fromOffset(22, 22),
BackgroundColor3 = Color3.fromRGB(4, 12, 23),
BorderSizePixel = 0,
}, avatarHalo)
round(onlineDot, 11)
local onlineCore = create("Frame", {
Position = UDim2.fromOffset(5, 5),
Size = UDim2.fromOffset(12, 12),
BackgroundColor3 = COLORS.success,
BorderSizePixel = 0,
}, onlineDot)
round(onlineCore, 6)
local onlinePulseUp = TweenService:Create(
onlineCore,
TweenInfo.new(1.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true),
{ BackgroundColor3 = Color3.fromRGB(90, 255, 186) }
)
onlinePulseUp:Play()
gui.Destroying:Connect(function()
onlinePulseUp:Cancel()
end)
pcall(function()
avatar.Image = Players:GetUserThumbnailAsync(
player.UserId,
Enum.ThumbnailType.HeadShot,
Enum.ThumbnailSize.Size420x420
)
end)
local displayName = player and (player.DisplayName or player.Name) or "Snowy User"
local userName = player and player.Name or "unknown"
textLabel(userPanel, displayName, UDim2.fromOffset(18, 164), UDim2.new(1, -36, 0, 22), Enum.Font.GothamBold, 14, COLORS.text, Enum.TextXAlignment.Center)
textLabel(userPanel, "@" .. userName, UDim2.fromOffset(18, 185), UDim2.new(1, -36, 0, 18), Enum.Font.Gotham, 10, COLORS.textFaint, Enum.TextXAlignment.Center)
local selected = resolveLoader()
local gameTone = selected and COLORS.success or COLORS.danger
local infoGroup = create("Frame", {
Name = "ProfileDetails",
Position = UDim2.fromOffset(18, 214),
Size = UDim2.new(1, -36, 0, 166),
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, userPanel)
local stats = {
{ "Executor", executorName(), "monitor", COLORS.textMuted },
{ "Device", deviceName(), deviceName() == "Mobile" and "smartphone" or "monitor", COLORS.textMuted },
{ "HWID", readableHwid() and "Available" or "FlowAuth managed", "shield", COLORS.textMuted },
{ "Game", selected and selected.name or "Unsupported", "gamepad", gameTone },
}
for index, item in ipairs(stats) do
local y = (index - 1) * 41
lucideIcon(infoGroup, item[3], UDim2.fromOffset(14, y + 12), UDim2.fromOffset(16, 16), item[4], 5)
textLabel(infoGroup, item[1], UDim2.fromOffset(42, y + 4), UDim2.fromOffset(78, 15), Enum.Font.GothamMedium, 9, COLORS.textFaint)
textLabel(infoGroup, item[2], UDim2.fromOffset(42, y + 18), UDim2.new(1, -56, 0, 18), Enum.Font.GothamMedium, 10, item[4])
if index < #stats then
create("Frame", {
Position = UDim2.fromOffset(42, y + 40),
Size = UDim2.new(1, -56, 0, 1),
BackgroundColor3 = COLORS.divider,
BackgroundTransparency = 0.84,
BorderSizePixel = 0,
}, infoGroup)
end
end
local metricsStrip = create("Frame", {
Name = "Metrics",
Position = UDim2.fromOffset(18, 392),
Size = UDim2.new(1, -36, 0, 66),
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, userPanel)
create("Frame", {
Position = UDim2.new(0.5, 0, 0, 12),
Size = UDim2.new(0, 1, 1, -24),
BackgroundColor3 = COLORS.divider,
BackgroundTransparency = 0.78,
BorderSizePixel = 0,
}, metricsStrip)
local sessionCard = create("Frame", {
Size = UDim2.new(0.5, 0, 1, 0),
BackgroundTransparency = 1,
}, metricsStrip)
lucideIcon(sessionCard, "clock", UDim2.fromOffset(14, 16), UDim2.fromOffset(16, 16), COLORS.cyan, 5)
textLabel(sessionCard, "Session", UDim2.fromOffset(38, 9), UDim2.new(1, -48, 0, 18), Enum.Font.GothamMedium, 9, COLORS.textFaint)
local sessionText = textLabel(sessionCard, "00:00", UDim2.fromOffset(38, 27), UDim2.new(1, -48, 0, 22), Enum.Font.GothamBold, 12, COLORS.cyan)
local pingCard = create("Frame", {
Position = UDim2.fromScale(0.5, 0),
Size = UDim2.new(0.5, 0, 1, 0),
BackgroundTransparency = 1,
}, metricsStrip)
lucideIcon(pingCard, "wifi", UDim2.fromOffset(14, 16), UDim2.fromOffset(16, 16), COLORS.success, 5)
textLabel(pingCard, "Ping", UDim2.fromOffset(38, 9), UDim2.new(1, -48, 0, 18), Enum.Font.GothamMedium, 9, COLORS.textFaint)
local pingText = textLabel(pingCard, "-- ms", UDim2.fromOffset(38, 27), UDim2.new(1, -48, 0, 22), Enum.Font.GothamBold, 12, COLORS.success)
local connectionCard = create("Frame", {
Position = UDim2.fromOffset(18, 502),
Size = UDim2.new(1, -36, 0, 68),
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, userPanel)
lucideIcon(connectionCard, "check-circle", UDim2.fromOffset(14, 24), UDim2.fromOffset(20, 20), COLORS.success, 5)
textLabel(connectionCard, "Connected to Snowy Hub", UDim2.fromOffset(44, 11), UDim2.new(1, -56, 0, 24), Enum.Font.GothamBold, 12, COLORS.success)
textLabel(connectionCard, "Snowy Hub is ready", UDim2.fromOffset(44, 35), UDim2.new(1, -56, 0, 18), Enum.Font.Gotham, 9, COLORS.textMuted)
local header = create("Frame", {
Name = "Header",
Size = UDim2.new(1, 0, 0, 62),
BackgroundTransparency = 1,
Active = true,
}, mainPanel)
textLabel(header, "Snowy Hub", UDim2.fromOffset(22, 8), UDim2.fromOffset(160, 30), Enum.Font.GothamBold, 22, COLORS.text)
textLabel(header, "Secure FlowAuth loader", UDim2.fromOffset(23, 35), UDim2.fromOffset(190, 16), Enum.Font.Gotham, 9, COLORS.textFaint)
local minimize = makeIconButton(
header,
"Minimize",
"minus",
UDim2.new(1, -82, 0, 14),
COLORS.surfaceRaised,
COLORS.surfaceHover,
COLORS.surfacePressed
)
local close = makeIconButton(
header,
"Close",
"x",
UDim2.new(1, -44, 0, 14),
COLORS.surfaceRaised,
Color3.fromRGB(74, 38, 53),
Color3.fromRGB(54, 27, 40)
)
create("Frame", {
Position = UDim2.fromOffset(20, 61),
Size = UDim2.new(1, -40, 0, 1),
BackgroundColor3 = COLORS.divider,
BackgroundTransparency = 0.74,
BorderSizePixel = 0,
}, header)
local serviceCard = create("Frame", {
Name = "ServiceCard",
Position = UDim2.fromOffset(20, 74),
Size = UDim2.new(1, -40, 0, 88),
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, mainPanel)
local serviceLogoSlot = create("Frame", {
Name = "ServiceLogoSlot",
Position = UDim2.fromOffset(0, 2),
Size = UDim2.fromOffset(116, 82),
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, serviceCard)
local logo = create("ImageLabel", {
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(132, 88),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Image = "rbxassetid://123802801726537",
ScaleType = Enum.ScaleType.Fit,
}, serviceLogoSlot)
textLabel(serviceCard, "ACTIVE SERVICE", UDim2.fromOffset(128, 11), UDim2.new(1, -318, 0, 17), Enum.Font.GothamBold, 9, COLORS.success)
textLabel(serviceCard, "Snowy Studios", UDim2.fromOffset(128, 29), UDim2.new(1, -318, 0, 24), Enum.Font.GothamBold, 15, COLORS.text)
textLabel(serviceCard, "Verified client delivery", UDim2.fromOffset(128, 54), UDim2.new(1, -318, 0, 18), Enum.Font.Gotham, 10, COLORS.textFaint)
local secureBadge = create("Frame", {
Position = UDim2.new(1, -172, 0.5, -17),
Size = UDim2.fromOffset(154, 34),
BackgroundColor3 = Color3.fromRGB(10, 53, 44),
BackgroundTransparency = 0.18,
BorderSizePixel = 0,
}, serviceCard)
round(secureBadge, 9)
lucideIcon(secureBadge, "shield-check", UDim2.fromOffset(12, 9), UDim2.fromOffset(16, 16), COLORS.success, 5)
textLabel(secureBadge, "FLOWAUTH VERIFIED", UDim2.fromOffset(36, 0), UDim2.new(1, -44, 1, 0), Enum.Font.GothamBold, 9, COLORS.success)
textLabel(mainPanel, "SECURE ACCESS", UDim2.fromOffset(22, 174), UDim2.new(1, -44, 0, 16), Enum.Font.GothamBold, 9, COLORS.cyan)
textLabel(mainPanel, "Enter your FlowAuth key to launch the supported script", UDim2.fromOffset(22, 190), UDim2.new(1, -44, 0, 19), Enum.Font.Gotham, 11, COLORS.textMuted)
local input = create("TextBox", {
Name = "KeyInput",
Position = UDim2.fromOffset(20, 214),
Size = UDim2.new(1, -40, 0, 50),
BackgroundColor3 = COLORS.input,
BackgroundTransparency = 0.24,
BorderSizePixel = 0,
ClearTextOnFocus = false,
Font = Enum.Font.GothamMedium,
PlaceholderText = "Paste your FlowAuth key",
PlaceholderColor3 = COLORS.textMuted,
Text = "",
TextColor3 = COLORS.text,
TextTransparency = 0,
TextSize = 13,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 4,
}, mainPanel)
round(input, 12)
local inputFocused = false
local inputBorder = create("UIStroke", {
Name = "KeyInputBorder",
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
Color = COLORS.cyan,
Thickness = 1.35,
Transparency = 0.18,
}, input)
local inputBorderGradient = create("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(21, 64, 143)),
ColorSequenceKeypoint.new(0.44, Color3.fromRGB(37, 133, 222)),
ColorSequenceKeypoint.new(0.52, Color3.fromRGB(99, 232, 255)),
ColorSequenceKeypoint.new(0.60, Color3.fromRGB(37, 133, 222)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(21, 64, 143)),
}),
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.58),
NumberSequenceKeypoint.new(0.40, 0.38),
NumberSequenceKeypoint.new(0.50, 0),
NumberSequenceKeypoint.new(0.62, 0.38),
NumberSequenceKeypoint.new(1, 0.58),
}),
Rotation = 0,
}, inputBorder)
local inputBorderSpin = TweenService:Create(
inputBorderGradient,
TweenInfo.new(2.65, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1),
{ Rotation = 360 }
)
inputBorderSpin:Play()
gui.Destroying:Connect(function()
inputBorderSpin:Cancel()
end)
local inputKeyIcon = lucideIcon(mainPanel, "key", UDim2.fromOffset(36, 230), UDim2.fromOffset(18, 18), COLORS.textMuted, 5)
create("UIPadding", {
PaddingLeft = UDim.new(0, 46),
PaddingRight = UDim.new(0, 16),
}, input)
local primaryRow = create("Frame", {
Position = UDim2.fromOffset(20, 276),
Size = UDim2.new(1, -40, 0, 46),
BackgroundTransparency = 1,
}, mainPanel)
create("UIListLayout", {
FillDirection = Enum.FillDirection.Horizontal,
Padding = UDim.new(0, 10),
SortOrder = Enum.SortOrder.LayoutOrder,
}, primaryRow)
local getKey = makeButton(primaryRow, "GetKey", "Get Key", UDim2.new(), UDim2.new(0.5, -5, 1, 0), COLORS.primary, COLORS.primaryHover, COLORS.primaryPressed, "key")
getKey.LayoutOrder = 1
local redeem = makeButton(primaryRow, "Redeem", "Redeem", UDim2.new(), UDim2.new(0.5, -5, 1, 0), COLORS.secondary, COLORS.secondaryHover, COLORS.secondaryPressed, "shield-check")
redeem.LayoutOrder = 2
local utilityRow = create("Frame", {
Position = UDim2.fromOffset(20, 334),
Size = UDim2.new(1, -40, 0, 38),
BackgroundTransparency = 1,
}, mainPanel)
create("UIListLayout", {
FillDirection = Enum.FillDirection.Horizontal,
Padding = UDim.new(0, 8),
SortOrder = Enum.SortOrder.LayoutOrder,
}, utilityRow)
local discord = makeButton(utilityRow, "Discord", "Discord", UDim2.new(), UDim2.new(1 / 3, -6, 1, 0), COLORS.surfaceRaised, COLORS.surfaceHover, COLORS.surfacePressed, "message-circle")
discord.LayoutOrder = 1
local copyHwid = makeButton(utilityRow, "CopyHWID", "Copy HWID", UDim2.new(), UDim2.new(1 / 3, -6, 1, 0), COLORS.surfaceRaised, COLORS.surfaceHover, COLORS.surfacePressed, "copy")
copyHwid.LayoutOrder = 2
local settingsButton = makeButton(utilityRow, "Settings", "Settings", UDim2.new(), UDim2.new(1 / 3, -6, 1, 0), COLORS.surfaceRaised, COLORS.surfaceHover, COLORS.surfacePressed, "settings")
settingsButton.LayoutOrder = 3
setButtonTextSize(discord, 11)
setButtonTextSize(copyHwid, 11)
setButtonTextSize(settingsButton, 11)
local statusCard = create("Frame", {
Name = "StatusCard",
Position = UDim2.fromOffset(20, 384),
Size = UDim2.new(1, -40, 0, 46),
BackgroundTransparency = 1,
BorderSizePixel = 0,
ClipsDescendants = true,
}, mainPanel)
local statusAccent = create("Frame", {
Position = UDim2.fromOffset(0, 8),
Size = UDim2.new(0, 3, 1, -16),
BackgroundColor3 = COLORS.cyan,
BorderSizePixel = 0,
}, statusCard)
round(statusAccent, 2)
local statusIcon = lucideIcon(statusCard, "info", UDim2.fromOffset(16, 15), UDim2.fromOffset(16, 16), COLORS.cyan, 5)
local statusSummary = textLabel(statusCard, "", UDim2.fromOffset(42, 13), UDim2.new(1, -58, 0, 20), Enum.Font.GothamBold, 11, COLORS.textMuted)
statusSummary.Name = "StatusSummary"
local statusDetail = textLabel(statusCard, "", UDim2.fromOffset(42, 34), UDim2.new(1, -58, 0, 38), Enum.Font.Gotham, 9, COLORS.textMuted)
statusDetail.Name = "StatusDetail"
statusDetail.TextWrapped = true
statusDetail.TextTruncate = Enum.TextTruncate.None
statusDetail.TextYAlignment = Enum.TextYAlignment.Top
statusDetail.Visible = false
local copyError = makeButton(statusCard, "CopyError", "Copy Error", UDim2.new(1, -108, 0, 8), UDim2.fromOffset(94, 26), COLORS.surfaceRaised, COLORS.surfaceHover, COLORS.surfacePressed, "copy")
setButtonTextSize(copyError, 9)
copyError.Visible = false
local accessCard = create("Frame", {
Name = "PremiumAccess",
Position = UDim2.fromOffset(20, 442),
Size = UDim2.new(1, -40, 0, 146),
BackgroundTransparency = 1,
BorderSizePixel = 0,
ClipsDescendants = true,
}, mainPanel)
create("Frame", {
Name = "PremiumDivider",
Position = UDim2.fromOffset(0, 0),
Size = UDim2.new(1, 0, 0, 1),
BackgroundColor3 = COLORS.divider,
BackgroundTransparency = 0.84,
BorderSizePixel = 0,
}, accessCard)
local premiumBadge = textLabel(accessCard, "SNOWY+", UDim2.fromOffset(18, 14), UDim2.fromOffset(62, 18), Enum.Font.GothamBold, 8, COLORS.premium, Enum.TextXAlignment.Center)
premiumBadge.BackgroundTransparency = 0
premiumBadge.BackgroundColor3 = Color3.fromRGB(67, 50, 27)
round(premiumBadge, 6)
textLabel(accessCard, "Premium Access", UDim2.fromOffset(18, 40), UDim2.new(1, -170, 0, 22), Enum.Font.GothamBold, 15, COLORS.text)
textLabel(accessCard, "Unlock extra perks and priority support", UDim2.fromOffset(18, 64), UDim2.new(1, -170, 0, 19), Enum.Font.GothamMedium, 11, COLORS.textMuted)
textLabel(accessCard, "getsnowy.xyz/pricing", UDim2.fromOffset(18, 87), UDim2.new(1, -170, 0, 18), Enum.Font.GothamMedium, 10, COLORS.premium)
local premiumPerks = textLabel(accessCard, "Priority support | Extra tools | Early access", UDim2.fromOffset(18, 111), UDim2.new(1, -170, 0, 19), Enum.Font.GothamMedium, 10, COLORS.textFaint)
local plansSlot = create("Frame", {
Name = "PlansSlot",
Position = UDim2.new(1, -136, 0.5, -20),
Size = UDim2.fromOffset(118, 40),
BackgroundTransparency = 1,
}, accessCard)
local premiumButton = makeButton(plansSlot, "PremiumPlans", "View Plans", UDim2.fromOffset(0, 0), UDim2.fromScale(1, 1), COLORS.premiumAction, COLORS.premiumHover, COLORS.premiumPressed, "external-link")
setButtonTextSize(premiumButton, 12)
local plansScale = create("UIScale", { Scale = 1 }, plansSlot)
local plansMotionStartedAt = os.clock()
local plansMotionConnection = RunService.RenderStepped:Connect(function()
if not gui.Parent or not premiumButton.Parent then return end
local phase = os.clock() - plansMotionStartedAt
premiumButton.Position = UDim2.fromOffset(
math.cos(phase * 0.90) * 2.0,
math.sin(phase * 1.10) * 3.0
)
premiumButton.Rotation = math.sin(phase * 0.74 + 0.55) * 0.65
plansScale.Scale = 1 + math.sin(phase * 0.62 + 1.20) * 0.012
end)
gui.Destroying:Connect(function()
if plansMotionConnection then
plansMotionConnection:Disconnect()
end
end)
local lastErrorDetail = ""
local function replacePlain(value, needle, replacement)
if needle == "" then return value end
local pieces = {}
local cursor = 1
while true do
local first, last = value:find(needle, cursor, true)
if not first then
table.insert(pieces, value:sub(cursor))
break
end
table.insert(pieces, value:sub(cursor, first - 1))
table.insert(pieces, replacement)
cursor = last + 1
end
return table.concat(pieces)
end
local function sanitizeDiagnostic(value)
local detail = tostring(value or "")
local rawKey = tostring(input.Text or "")
local normalizedKey = normalizeKey(rawKey)
if rawKey ~= "" then
detail = replacePlain(detail, rawKey, "[key redacted]")
end
if normalizedKey ~= "" and normalizedKey ~= rawKey then
detail = replacePlain(detail, normalizedKey, "[key redacted]")
end
return detail:gsub("[%c]+", " "):gsub("%s+", " "):gsub("^%s+", ""):gsub("%s+$", "")
end
local function setStatusLayout(hasDetail, tone)
local statusHeight = hasDetail and 82 or 46
local accessY = hasDetail and 478 or 442
local accessHeight = hasDetail and 110 or 146
if hasDetail then
statusDetail.Visible = true
copyError.Visible = true
else
statusDetail.Visible = false
copyError.Visible = false
end
premiumPerks.Visible = not hasDetail
playTween(statusCard, MOTION.normal, {
Size = UDim2.new(1, -40, 0, statusHeight),
})
playTween(accessCard, MOTION.normal, {
Position = UDim2.fromOffset(20, accessY),
Size = UDim2.new(1, -40, 0, accessHeight),
})
playTween(statusSummary, MOTION.quick, {
Position = UDim2.fromOffset(42, hasDetail and 8 or 13),
Size = UDim2.new(1, hasDetail and -160 or -58, 0, 20),
TextColor3 = tone,
})
playTween(statusIcon, MOTION.quick, {
Position = UDim2.fromOffset(16, hasDetail and 10 or 15),
})
statusSummary.TextXAlignment = Enum.TextXAlignment.Left
end
local function setStatus(message, color, detail)
local tone = color or COLORS.textMuted
local safeDetail = sanitizeDiagnostic(detail)
local hasDetail = safeDetail ~= ""
statusSummary.Text = tostring(message or "")
local iconName = "info"
if tone == COLORS.success then
iconName = "check-circle"
elseif tone == COLORS.warning or tone == COLORS.danger then
iconName = "alert-circle"
end
applyLucideData(statusIcon, iconName)
playTween(statusIcon, MOTION.quick, { ImageColor3 = tone })
playTween(statusAccent, MOTION.quick, { BackgroundColor3 = tone })
setStatusLayout(hasDetail, tone)
lastErrorDetail = safeDetail
if hasDetail then
statusDetail.Text = #safeDetail > 190 and (safeDetail:sub(1, 187) .. "...") or safeDetail
warn("[SnowyHub] " .. tostring(message or "Error") .. " " .. safeDetail)
else
statusDetail.Text = ""
end
end
if selected then
setStatus("Ready for " .. selected.name .. ".", COLORS.cyan)
else
setStatus("Unsupported PlaceId " .. tostring(game.PlaceId) .. " / GameId " .. tostring(game.GameId), COLORS.danger)
end
local busy = false
local function redeemKey()
if busy then return end
local entry = resolveLoader()
if not entry then
setStatus("This experience is not supported.", COLORS.danger)
return
end
local key = normalizeKey(input.Text)
if key == "" then
setStatus("Enter your FlowAuth key first.", COLORS.warning)
return
end
busy = true
setButtonEnabled(redeem, false)
setButtonText(redeem, "Loading...")
setStatus("Loading " .. entry.name .. " through FlowAuth...", COLORS.cyan)
script_key = key
_G.script_key = key
if type(getgenv) == "function" then
getgenv().script_key = key
end
input.Text = ""
gui:Destroy()
return loadstring(game:HttpGet(entry.url))()
end
copyError.Activated:Connect(function()
if lastErrorDetail ~= "" and copyText(lastErrorDetail) then
setButtonText(copyError, "Copied")
task.delay(1.2, function()
if copyError.Parent then setButtonText(copyError, "Copy Error") end
end)
else
warn("[SnowyHub] Clipboard API unavailable; read the full error above in the executor console.")
end
end)
getKey.Activated:Connect(function()
if copyText(DISCORD_URL) then
setStatus("Discord link copied.", COLORS.success)
else
setStatus(DISCORD_URL, COLORS.warning)
end
end)
discord.Activated:Connect(function()
if copyText(DISCORD_URL) then
setStatus("Discord invite copied.", COLORS.success)
else
setStatus(DISCORD_URL, COLORS.warning)
end
end)
copyHwid.Activated:Connect(function()
local hwid = readableHwid()
if hwid and copyText(hwid) then
setStatus("HWID copied.", COLORS.success)
else
setStatus("FlowAuth will bind your HWID automatically.", COLORS.warning)
end
end)
premiumButton.Activated:Connect(function()
if copyText(PRICING_URL) then
setStatus("Pricing link copied.", COLORS.success)
else
setStatus(PRICING_URL, COLORS.warning)
end
end)
input.Focused:Connect(function()
inputFocused = true
if input.Text == "" then
input.PlaceholderText = "Paste your FlowAuth key"
end
playTween(input, MOTION.quick, { BackgroundColor3 = COLORS.inputFocus })
playTween(inputBorder, MOTION.quick, { Transparency = 0.06 })
playTween(inputKeyIcon, MOTION.quick, { ImageColor3 = COLORS.cyan })
end)
input.FocusLost:Connect(function()
inputFocused = false
playTween(input, MOTION.quick, { BackgroundColor3 = COLORS.input })
playTween(inputBorder, MOTION.quick, { Transparency = 0.18 })
playTween(inputKeyIcon, MOTION.quick, { ImageColor3 = COLORS.textFaint })
end)
local waitingKeyStates = {
"Waiting for key",
"Waiting for key.",
"Waiting for key..",
"Waiting for key...",
}
task.spawn(function()
local waitingIndex = 1
while gui.Parent do
if input.Text == "" and not inputFocused then
input.PlaceholderText = waitingKeyStates[waitingIndex]
waitingIndex = waitingIndex % #waitingKeyStates + 1
end
task.wait(0.45)
end
end)
local detailsVisible = true
local requestedDetails = true
local viewportCompact = false
local detailsTransitioning = false
local detailsTransitionVersion = 0
local updateResponsiveScale
local function setDetailsVisible(visible, announce)
visible = visible and not viewportCompact
if visible == detailsVisible and not detailsTransitioning then
setSnowflakeCount(visible and DESKTOP_SNOWFLAKES or COMPACT_SNOWFLAKES)
return
end
detailsTransitionVersion = detailsTransitionVersion + 1
local transitionVersion = detailsTransitionVersion
detailsTransitioning = true
detailsVisible = visible
setSnowflakeCount(visible and DESKTOP_SNOWFLAKES or COMPACT_SNOWFLAKES)
columnDivider.Visible = true
if visible then
userPanel.Visible = true
userPanel.Position = UDim2.fromOffset(-286, 8)
columnDivider.BackgroundTransparency = 1
playTween(shell, MOTION.slow, {
Size = UDim2.fromOffset(DESKTOP_WIDTH, SHELL_HEIGHT),
}, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, "layout")
playTween(mainPanel, MOTION.slow, {
Position = UDim2.fromOffset(294, 8),
}, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, "details")
playTween(columnDivider, MOTION.slow, {
BackgroundTransparency = 0.84,
}, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, "details")
local profileTween = playTween(userPanel, MOTION.slow, {
Position = UDim2.fromOffset(8, 8),
}, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, "details")
profileTween.Completed:Connect(function()
if transitionVersion == detailsTransitionVersion then
detailsTransitioning = false
end
end)
else
playTween(shell, MOTION.slow, {
Size = UDim2.fromOffset(COMPACT_WIDTH, SHELL_HEIGHT),
}, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, "layout")
playTween(mainPanel, MOTION.slow, {
Position = UDim2.fromOffset(8, 8),
}, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, "details")
playTween(columnDivider, MOTION.slow, {
BackgroundTransparency = 1,
}, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, "details")
local profileTween = playTween(userPanel, MOTION.slow, {
Position = UDim2.fromOffset(-286, 8),
}, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, "details")
profileTween.Completed:Connect(function()
if gui.Parent and transitionVersion == detailsTransitionVersion and not detailsVisible then
userPanel.Visible = false
columnDivider.Visible = false
detailsTransitioning = false
end
end)
end
if announce then
setStatus(visible and "Profile details shown." or "Compact mode enabled.", COLORS.textMuted)
end
if updateResponsiveScale then
task.defer(updateResponsiveScale)
end
end
settingsButton.Activated:Connect(function()
if detailsTransitioning then return end
if viewportCompact then
setStatus("Profile is hidden on compact screens.", COLORS.warning)
return
end
requestedDetails = not requestedDetails
setDetailsVisible(requestedDetails, true)
end)
minimize.Activated:Connect(function()
if detailsTransitioning then return end
requestedDetails = false
setDetailsVisible(false, true)
end)
local closing = false
local function closeLoader()
if closing then return end
closing = true
playTween(backdrop, MOTION.normal, { BackgroundTransparency = 1 })
playTween(shellScale, MOTION.normal, { Scale = shellScale.Scale * 0.96 })
local tween = playTween(shell, MOTION.normal, { GroupTransparency = 1 }, nil, nil, "visibility")
tween.Completed:Connect(function()
if gui.Parent then gui:Destroy() end
end)
end
close.Activated:Connect(closeLoader)
redeem.Activated:Connect(redeemKey)
input.FocusLost:Connect(function(enterPressed)
if enterPressed then redeemKey() end
end)
local startedAt = os.clock()
task.spawn(function()
while gui.Parent do
local elapsed = math.floor(os.clock() - startedAt)
sessionText.Text = string.format("%02d:%02d", math.floor(elapsed / 60), elapsed % 60)
local ping = "--"
pcall(function()
ping = Stats.Network.ServerStatsItem["Data Ping"]:GetValueString():match("[%d%.]+") or "--"
end)
pingText.Text = tostring(ping) .. " ms"
task.wait(1)
end
end)
local dragging = false
local dragStart
local shellStart
header.InputBegan:Connect(function(inputObject)
if inputObject.UserInputType == Enum.UserInputType.MouseButton1 or inputObject.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = inputObject.Position
shellStart = shell.Position
end
end)
UserInputService.InputEnded:Connect(function(inputObject)
if inputObject.UserInputType == Enum.UserInputType.MouseButton1 or inputObject.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
UserInputService.InputChanged:Connect(function(inputObject)
if dragging and (inputObject.UserInputType == Enum.UserInputType.MouseMovement or inputObject.UserInputType == Enum.UserInputType.Touch) then
local delta = inputObject.Position - dragStart
shell.Position = UDim2.new(
shellStart.X.Scale,
shellStart.X.Offset + delta.X,
shellStart.Y.Scale,
shellStart.Y.Offset + delta.Y
)
end
end)
local entered = false
local responsiveScale = 1
updateResponsiveScale = function()
local camera = workspace.CurrentCamera
local viewport = camera and camera.ViewportSize or Vector2.new(1280, 720)
local baseWidth = detailsVisible and DESKTOP_WIDTH or COMPACT_WIDTH
responsiveScale = math.min(
1,
math.max(0.42, (viewport.X - 24) / baseWidth),
math.max(0.42, (viewport.Y - 24) / SHELL_HEIGHT)
)
if entered then
playTween(shellScale, MOTION.normal, { Scale = responsiveScale })
else
shellScale.Scale = responsiveScale * 0.96
end
end
local function applyResponsiveLayout()
local camera = workspace.CurrentCamera
local viewport = camera and camera.ViewportSize or Vector2.new(1280, 720)
viewportCompact = viewport.X < 860
setDetailsVisible(requestedDetails and not viewportCompact, false)
updateResponsiveScale()
end
applyResponsiveLayout()
pcall(function()
workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(applyResponsiveLayout)
end)
task.defer(function()
if not gui.Parent then return end
entered = true
playTween(backdrop, MOTION.slow, { BackgroundTransparency = 0.78 })
playTween(shell, MOTION.slow, { GroupTransparency = 0 }, nil, nil, "visibility")
playTween(shellScale, MOTION.slow, { Scale = responsiveScale })
end)
"
local chunk,reason=loadstring(source,"=FlowAuthUI")
if not chunk then error("FlowAuth UI compilation failed: "..tostring(reason),0) end
return chunk()



Why’s the UI 480pixels
where is the code bro?
@snowy snowy Please make a script without lags, because when I go into Bedwars and put the key, it lags a lot, please fix it.
@gvozdik300 fixed thank you my bro
g cant even dump :sob: im crying delete your account