-- ModuleScript Loadout (via bytefall decompiler) -- Decompiled using ByteFall -- discord.gg/pHTnqmmWzk local userInputService: UserInputService = game:GetService("UserInputService") local runService: RunService = game:GetService("RunService") local textService: TextService = game:GetService("TextService") local textChatService: TextChatService = game:GetService("TextChatService") local starterGui: StarterGui = game:GetService("StarterGui") local u6 = nil local function hideChat() if u6 then return end local t3: {[any]: any} = {} pcall(function() if textChatService.ChatVersion == Enum.ChatVersion.TextChatService then local chatWindowConfiguration: Instance = textChatService:FindFirstChildOfClass("ChatWindowConfiguration") local chatInputBarConfiguration: Instance = textChatService:FindFirstChildOfClass("ChatInputBarConfiguration") if chatWindowConfiguration then t3.window = chatWindowConfiguration.Enabled chatWindowConfiguration.Enabled = false end if chatInputBarConfiguration then t3.bar = chatInputBarConfiguration.Enabled chatInputBarConfiguration.Enabled = false return end else t3.core = starterGui:GetCoreGuiEnabled(Enum.CoreGuiType.Chat) starterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, false) end end) u6 = t3 end local function restoreChat() local v20 = u6 if not v20 then return end u6 = nil pcall(function() local chatWindowConfiguration: Instance = textChatService:FindFirstChildOfClass("ChatWindowConfiguration") local chatInputBarConfiguration: Instance = textChatService:FindFirstChildOfClass("ChatInputBarConfiguration") if chatWindowConfiguration and v20.window ~= nil then chatWindowConfiguration.Enabled = v20.window end if chatInputBarConfiguration and v20.bar ~= nil then chatInputBarConfiguration.Enabled = v20.bar end if v20.core ~= nil then starterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, v20.core) end end) end local color3FromRGB = Color3.fromRGB local color3 = color3FromRGB(56, 189, 248) local v11 = color3FromRGB(251, 146, 60) local v12 = color3FromRGB(248, 113, 113) local v13 = color3FromRGB(167, 139, 250) local v14 = color3FromRGB(250, 204, 21) local v15 = color3FromRGB(74, 222, 128) local v16 = color3FromRGB(148, 197, 255) local t1: {[any]: any} = { bow = color3, gun = v11, melee = v12, throwable = v13, utility = v14, healing = v15, armor = v16 } local module: {[any]: any} = {} function module.Init(p1) local ui = p1.UI local theme = p1.Theme local state = p1.State local weaponInfo = p1.WeaponInfo local weaponIcon = p1.WeaponIcon local themeColors = theme.Colors local themeFonts = theme.Fonts local economy = p1.Economy local function catOf(p2) local v195 = weaponInfo.Get(p2) return v195 and t1[v195.category] or themeColors.Accent end local function tintGradient(parent, p4, p5) local uiGradient = ui.Gradient local v200 = p4:Lerp(themeColors.Panel, 1 - p5) local v201 = themeColors.PanelHi:Lerp(themeColors.Panel, 0.6) local v202 = uiGradient(v200, v201, 115) v202.Parent = parent return v202 end local function iconOpts(p6, p7) local v205 = weaponInfo.Get(p6) local t14: {[any]: any} = { outline = false, glow = false, outlineScale = 1.035, outlineTransparency = 0.5, outlineColor = (v205 and t1[v205.category] or themeColors.Accent):Lerp(Color3.new(1, 1, 1), 0.55) } if p7 then for iterFirst, iterSecond in p7 do t14[iterFirst] = iterSecond end end return t14 end local v33 = ui.Window local v34 = UDim2.fromOffset(1280, 720) local v35 = v33({ Name = "Loadout", Title = "LOADOUT", Subtitle = "Pick any gear up to 12 points.", HeaderHeight = 80, OpenSound = "Armory_Open", Size = v34, Parent = p1.Canvas.Menus, OnCloseRequested = function() p1.MenuManager.Close("Loadout") end }) v34 = v35.Content local u36 = nil local u37 = nil local s1 = "all" local u39: boolean = false local n1: number = 0 local n2 = 1 local n3 = 1 local u43 = nil local t4: {[any]: any} = {} local u45 = nil local u46 = nil local u47 = nil local function budget() return weaponInfo.Budget() end local t5 = { armor = false, items = {}, ammo = {} } local function cost() return weaponInfo.Cost(t5) end local function has(p8) local u210: boolean = true if table.find(t5.items, p8) == nil then u210 = p8 == t5.armor end return u210 end local function copyDraft(p9) local v212 = weaponInfo.Normalize(p9) local v213 = table.clone(v212.items) local armor = v212.armor local v215 = table.clone(v212.ammo) return { items = v213, armor = armor, ammo = v215 } end local function canAdd(p10) local u217 = true if table.find(t5.items, p10) == nil then u217 = p10 == t5.armor end if u217 then return false, "in", 0 end if economy.IsLocked(p10) then return false, "locked", 0 end u217 = weaponInfo.Points(p10) local v218 = weaponInfo.Cost(t5) if weaponInfo.IsArmor(p10) and t5.armor then local v219 = weaponInfo.Points(t5.armor) v218 -= v219 elseif not weaponInfo.IsArmor(p10) and #t5.items >= weaponInfo.MaxItems() then return false, "full", 0 end local v220 = weaponInfo.Budget() local n1 = v218 + u217 - v220 if n1 > 0 then return false, "points", n1 end return true, nil, 0 end v33 = ui.new local v54 = UDim2.fromOffset(300, 12) local v55 = ui.List(Enum.FillDirection.Horizontal, 6, Enum.HorizontalAlignment.Left, Enum.VerticalAlignment.Center) local parent = v33("Frame", { Name = "Slots", Position = v54, Size = UDim2.new(0, 700, 0, 56), v55, Parent = v35.Header }) local t6: {[any]: any} = {} local u58 = nil local u59 = nil for i = 1, 5 do local v61 = ui.new local v62 = UDim2.fromOffset(140, 56) local v63 = themeColors.Raised local v64 = ui.Corner(12) local v65 = v61("TextButton", { Name = "Slot" .. i, Size = v62, BackgroundColor3 = v63, BackgroundTransparency = 0.35, LayoutOrder = i, v64, Parent = parent }) v64 = ui.Stroke(themeColors.Stroke, 1, 0.9) v64.Parent = v65 v63 = ui.new v62 = UDim2.fromOffset(6, 6) v61 = UDim2.fromOffset(44, 44) local v66 = ui.Corner(9) local v67 = v63("Frame", { Name = "Tile", Position = v62, Size = v61, BackgroundColor3 = Color3.new(1, 1, 1), v66, Parent = v65 }) v66 = ui.Gradient v61 = themeColors.Accent:Lerp(themeColors.Panel, 0.7) v62 = themeColors.PanelHi:Lerp(themeColors.Panel, 0.6) v63 = v66(v61, v62, 115) v63.Parent = v67 v62 = ui.new v61 = UDim2.fromScale(0.5, 0.5) v66 = UDim2.fromScale(0.95, 0.95) local v68 = v62("Frame", { Name = "Icon", AnchorPoint = Vector2.new(0.5, 0.5), Position = v61, Size = v66, Parent = v67 }) v66 = ui.new v61 = UDim2.fromOffset(58, 8) local v69 = v66("TextLabel", { Name = "SlotName", Text = "", TextSize = 15, Position = v61, Size = UDim2.new(1, -86, 0, 20), FontFace = themeFonts.Bold, TextColor3 = themeColors.Text, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, Parent = v65 }) v61 = ui.new v66 = UDim2.fromOffset(58, 30) v62 = v61("TextLabel", { Name = "Sub", Text = "", TextSize = 12, Position = v66, Size = UDim2.new(1, -62, 0, 16), FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, Parent = v65 }) v66 = ui.new v61 = UDim2.fromOffset(26, 26) local v70 = themeColors.Void local v71 = ui.Corner(theme.Radius.Pill) local v72 = v66("TextButton", { Name = "Rename", AnchorPoint = Vector2.new(1, 1), Position = UDim2.new(1, -4, 1, -4), Size = v61, BackgroundColor3 = v70, BackgroundTransparency = 0.6, Visible = false, ZIndex = 3, v71, Parent = v65 }) v71 = ui.Icon v70 = themeColors.Text v61 = UDim2.fromScale(0.5, 0.5) v71("pencil", 16, v70, { ZIndex = 3, AnchorPoint = Vector2.new(0.5, 0.5), Position = v61, Parent = v72 }) v61 = ui.new v70 = UDim2.fromOffset(54, 5) v71 = themeColors.TextMuted v66 = themeFonts.Bold local themeColorsText = themeColors.Text local v74 = Enum.TextXAlignment.Left local v75 = themeColors.Inset local v76 = ui.Corner(6) local v77 = ui.Padding(0, 6, 0, 6) local v78 = v61("TextBox", { Name = "NameBox", Position = v70, Size = UDim2.new(1, -58, 0, 26), Text = "", PlaceholderText = "LOADOUT " .. i, PlaceholderColor3 = v71, ClearTextOnFocus = false, FontFace = v66, TextSize = 15, TextColor3 = themeColorsText, TextXAlignment = v74, BackgroundColor3 = v75, BackgroundTransparency = 0.05, Visible = false, ZIndex = 4, v76, v77, Parent = v65 }) v68.Visible = false v77 = ui.new v76 = UDim2.fromScale(1, 1) v75 = tostring(i) v74 = v77("TextLabel", { Name = "Num", TextSize = 22, ZIndex = 2, Size = v76, Text = v75, FontFace = themeFonts.Display, TextColor3 = themeColors.TextDim, Parent = v67 }) t6[i] = { shownIcon = nil, btn = v65, stroke = v64, tile = v67, tileGrad = v63, icon = v68, name = v69, sub = v62, pencil = v72, box = v78, numL = v74 } v65.MouseEnter:Connect(function() if i ~= n2 and not ui.Touch then v65.BackgroundTransparency = 0.15 p1.Sounds.Play("Hover") end end) v65.MouseLeave:Connect(function() u45() end) v65.Activated:Connect(function() if u58 == i then return end if i == n2 then ui.Bump(v65, 0.04) return end u46(i) end) v72.Activated:Connect(function() if u58 then return end u58 = i v78.Text = t4[i] or state.LoadoutCustomName(i) v78.Visible = true v69.Visible = false v72.Visible = false v78:CaptureFocus() p1.Sounds.Play("Click") end) v78:GetPropertyChangedSignal("Text"):Connect(function() if utf8.len(v78.Text) and utf8.len(v78.Text) > 16 then local text = v78.Text local v223 = utf8.offset(v78.Text, 17) v78.Text = string.sub(text, 1, (v223 or 17) - 1) end end) v78.FocusLost:Connect(function() u59(i) end) end u59 = function(p11) if p11 ~= u58 then return end u58 = nil local v225 = t6[p11] v225.box.Visible = false v225.name.Visible = true local stringGsub = string.gsub local v227 = string.gsub(v225.box.Text, "^%s+", "") local v228 = stringGsub(v227, "%s+$", "") v225 = t4[p11] if not v225 then v225 = state.LoadoutCustomName(p11) end if v228 == v225 then u45() return end t4[p11] = v228 u45() task.spawn(function() local v830, v831, v832 = p1.ProfileAction("RenameLoadout", p11, v228) if v830 then local v833 = if type(v832) == "string" then v832 else v228 t4[p11] = v833 local loadoutNames = state.Profile.loadoutNames if type(loadoutNames) == "table" then loadoutNames[p11] = v833 end if v833 ~= v228 then p1.Toast("Name changed by the chat filter", "info") end p1.Sounds.Play("Select") else t4[p11] = nil end u45() end) end local function layoutSlots() local v229 = state.LoadoutSlotCount() local offset = v35.Holder.Size.X.Offset local n1: number = if ui.Compact then 250 else 290 local n7: number = if ui.Compact then 66 else 56 local n3: number = if ui.Compact then 7 else 12 local closeButton = v35.CloseButton if closeButton then closeButton.Size = UDim2.fromOffset(n7, n7) closeButton.Position = UDim2.new(1, -14, 0, n3) end local n4 = offset - n1 - (n7 + 26 + 16) local n5: number = if v229 > 1 then 34 else 0 local floored = math.floor((n4 - n5 - 6 * (v229 - 1)) / v229) local v238 = math.clamp(floored, 92, 260) parent.Position = UDim2.fromOffset(n1, n3) parent.Size = UDim2.fromOffset(n4, n7) for key, value in t6 do value.btn.Visible = v229 >= key value.btn.Size = UDim2.fromOffset(if key == n2 then v238 + n5 else v238, n7) local n6: number = n7 - 20 value.tile.Size = UDim2.fromOffset(n6, n6) value.tile.Position = UDim2.fromOffset(8, 10) value.name.Position = UDim2.fromOffset(n6 + 16, n7 / 2 - 20) value.sub.Position = UDim2.fromOffset(n6 + 16, n7 / 2 + 2) value.box.Position = UDim2.fromOffset(n6 + 12, n7 / 2 - 23) end v35.Subtitle.Visible = not ui.Compact end ui.TouchChanged:Connect(function() task.defer(layoutSlots) end) u45 = function() layoutSlots() local v242 = state.LoadoutSlotCount() local v243 = state.HasLoadoutSlots() local v244 = weaponInfo.Budget() local v245 = math.max(v244, 1) for key, value in t6 do if not (v242 < key) then local u248: boolean = key == n2 local v249 = if u248 then t5 else state.LoadoutSlot(key) value.tileGrad.Color = if u248 then ColorSequence.new(themeColors.AccentDark, themeColors.AccentDark) else ColorSequence.new(themeColors.Panel, themeColors.Panel) value.numL.TextColor3 = if u248 then themeColors.Text else themeColors.TextDim if key ~= u58 then local v250 = t4[key] value.name.Text = if v250 and v250 ~= "" then v250 else if v250 == "" then "LOADOUT " .. key else state.LoadoutName(key) end local v251 = weaponInfo.Cost(v249) value.btn.BackgroundColor3 = if u248 then themeColors.Accent else themeColors.Raised value.btn.BackgroundTransparency = if u248 then 0 else 0.35 value.stroke.Color = if u248 then theme.Lighten(themeColors.Accent, 0.35) else themeColors.Stroke value.stroke.Transparency = if u248 then 0.2 else 0.9 value.name.TextColor3 = if u248 then themeColors.Text else themeColors.TextDim value.sub.Text = if u248 then "✓ EQUIPPED" else string.format("%d / %d PTS", v251, v245) value.sub.TextColor3 = if u248 then themeColors.Text else themeColors.TextMuted value.pencil.Visible = u248 and v243 and key ~= u58 v251 = value.tile.Size.X.Offset + 18 value.name.Size = UDim2.new(1, -v251, 0, 20) value.sub.Size = UDim2.new(1, if u248 and v243 then -(v251 + 30) else -v251, 0, 16) end end u47.Text = if ui.Gamepad then "YOUR ITEMS · HOTBAR ORDER" else "YOUR ITEMS · HOTBAR KEYS 1–6" end local v80 = ui.new("Frame", { Name = "Left", Size = UDim2.new(0, 400, 1, 0), Parent = v34 }) u47 = ui.new("TextLabel", { Name = "Heading", Text = "YOUR ITEMS · HOTBAR KEYS 1–6", TextSize = 14, Size = UDim2.new(1, -120, 0, 18), FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, Parent = v80 }) v55 = ui.new v54 = UDim2.fromOffset(120, 18) local v81 = v55("TextLabel", { Name = "Save", Text = "", TextSize = 13, AnchorPoint = Vector2.new(1, 0), Position = UDim2.new(1, 0, 0, 0), Size = v54, FontFace = themeFonts.Bold, TextColor3 = themeColors.TextMuted, TextXAlignment = Enum.TextXAlignment.Right, Parent = v80 }) v54 = ui.new v55 = UDim2.fromOffset(0, 22) local v82 = v54("Frame", { Name = "Points", Position = v55, Size = UDim2.new(1, 0, 0, 58), Parent = v80 }) v55 = ui.new v54 = ui.List(Enum.FillDirection.Horizontal, 8, Enum.HorizontalAlignment.Left, Enum.VerticalAlignment.Bottom) local v83 = v55("Frame", { Name = "Line", Size = UDim2.new(1, -110, 0, 36), v54, Parent = v82 }) v54 = ui.new v55 = UDim2.fromOffset(112, 36) local v84 = v54("TextLabel", { Name = "Number", Text = "", TextSize = 34, LayoutOrder = 1, Size = v55, TextXAlignment = Enum.TextXAlignment.Left, FontFace = themeFonts.Display, Parent = v83 }) local n4: number = 0 v84:GetPropertyChangedSignal("Text"):Connect(function() n4 += 1 local v252: number = n4 local text = v84.Text local textSize = v84.TextSize task.spawn(function() local getTextBoundsParams: GetTextBoundsParams = Instance.new("GetTextBoundsParams") getTextBoundsParams.Text = text getTextBoundsParams.Font = themeFonts.Display getTextBoundsParams.Size = textSize getTextBoundsParams.Width = 1000 local ok, result = pcall(function() return textService:GetTextBoundsAsync(getTextBoundsParams) end) if ok and v252 == n4 and result.X > 4 then local uDim2FromOffset = UDim2.fromOffset local roundedUp = math.ceil(result.X) v84.Size = uDim2FromOffset(roundedUp + 2, v84.Size.Y.Offset) end end) end) v55 = ui.new v54 = UDim2.fromOffset(0, 30) local v86 = v55("TextLabel", { Name = "Word", Text = "POINTS", TextSize = 15, LayoutOrder = 2, Size = v54, AutomaticSize = Enum.AutomaticSize.X, FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextDim, Parent = v83 }) v54 = ui.new v55 = UDim2.fromOffset(110, 22) local v87 = v54("TextLabel", { Name = "Left", Text = "", TextSize = 15, AnchorPoint = Vector2.new(1, 0), Position = UDim2.new(1, 0, 0, 12), Size = v55, FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextDim, TextXAlignment = Enum.TextXAlignment.Right, Parent = v82 }) v55 = ui.new v54 = UDim2.fromOffset(0, 60) local v88 = v55("TextLabel", { Name = "Helper", Text = "", TextSize = 14, Position = v54, Size = UDim2.new(1, 0, 0, 18), FontFace = themeFonts.SemiBold, TextColor3 = themeColors.TextDim, TextXAlignment = Enum.TextXAlignment.Left, Parent = v82 }) v54 = ui.new v55 = UDim2.fromOffset(0, 44) v33 = themeColors.Inset local v89 = ui.Corner(theme.Radius.Pill) local v90 = ui.Stroke(themeColors.Stroke, 1, 0.92) local v91 = v54("Frame", { Name = "Bar", Position = v55, Size = UDim2.new(1, 0, 0, 10), BackgroundColor3 = v33, ClipsDescendants = true, v89, v90, Parent = v82 }) v90 = ui.new v89 = UDim2.fromScale(0, 1) v33 = themeColors.Accent v55 = ui.Corner(theme.Radius.Pill) local v92 = v90("Frame", { Name = "Ghost", Size = v89, BackgroundColor3 = v33, BackgroundTransparency = 0.6, v55, Parent = v91 }) v55 = ui.new v33 = UDim2.fromScale(0, 1) v89 = ui.Corner(theme.Radius.Pill) local v93 = v55("Frame", { Name = "Fill", Size = v33, BackgroundColor3 = Color3.new(1, 1, 1), v89, Parent = v91 }) v89 = ui.Gradient v33 = theme.Lighten(themeColors.Accent, 0.15) local v94 = v89(v33, themeColors.Accent, 0) v94.Parent = v93 v33 = ui.new v89 = UDim2.fromScale(1, 1) local v95 = v33("Frame", { Name = "Ticks", ZIndex = 3, Size = v89, Parent = v91 }) local n5 = 0 local function buildTicks(p12) if p12 == n5 then return end n5 = p12 v95:ClearAllChildren() for i = 1, p12 - 1 do local uiNew = ui.new local v258 = UDim2.fromScale(i / p12, 0) uiNew("Frame", { BackgroundTransparency = 0.35, ZIndex = 3, AnchorPoint = Vector2.new(0.5, 0), Position = v258, Size = UDim2.new(0, 2, 1, 0), BackgroundColor3 = themeColors.Void, Parent = v95 }) end end v89 = ui.new v33 = UDim2.fromOffset(0, 88) local v98 = v89("Frame", { Name = "Rows", Position = v33, Size = UDim2.new(1, 0, 1, -88), Parent = v80 }) local n6 = 48 local n7: number = 6 local u101 = nil v33 = function(p13) local u260: boolean = p13 == "armor" local parent = ui.new("Frame", { Name = if u260 then "Armor" else "Row" .. p13, Size = UDim2.new(1, 0, 0, n6), BackgroundColor3 = themeColors.Raised, BackgroundTransparency = 0.5, ui.Corner(12), Parent = v98 }) local v262 = ui.Stroke(themeColors.Stroke, 1, 0.93) v262.Parent = parent local uiNew = ui.new local v264 = UDim2.fromOffset(n6 - 8, n6 - 8) local v265 = ui.Corner(9) v262 = uiNew("Frame", { Name = "Tile", AnchorPoint = Vector2.new(0, 0.5), Position = UDim2.new(0, 4, 0.5, 0), Size = v264, BackgroundColor3 = Color3.new(1, 1, 1), BackgroundTransparency = 0, v265, Parent = parent }) local uiGradient = ui.Gradient v264 = themeColors.Accent:Lerp(themeColors.Panel, 0.7) local v267 = themeColors.PanelHi:Lerp(themeColors.Panel, 0.6) local v268 = uiGradient(v264, v267, 115) v268.Parent = v262 local v269 = ui.Stroke(themeColors.Stroke, 1, 0.88) v269.Parent = v262 local v270 = ui.new local v271 = UDim2.fromScale(0.5, 0.5) local v272 = UDim2.fromScale(0.92, 0.92) v265 = v270("Frame", { Name = "Icon", ZIndex = 2, AnchorPoint = Vector2.new(0.5, 0.5), Position = v271, Size = v272, Parent = v262 }) v264 = nil v267 = nil v272 = nil if u260 then local uiImage = ui.Image local shield = ui.Assets.Icons.Shield local v275 = UDim2.fromScale(0.5, 0.5) local v276 = UDim2.fromScale(0.45, 0.45) v272 = uiImage(shield, { Name = "Shield", ImageTransparency = 0.3, AnchorPoint = Vector2.new(0.5, 0.5), Position = v275, Size = v276, ImageColor3 = themeColors.TextMuted, Parent = v262 }) else local v277 = ui.new local v278 = UDim2.fromOffset(4, 2) local v279 = UDim2.fromOffset(14, 14) local text: string = tostring(p13) v264 = v277("TextLabel", { Name = "Num", TextSize = 12, ZIndex = 3, Position = v278, Size = v279, Text = text, FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextDim, TextXAlignment = Enum.TextXAlignment.Left, Parent = v262 }) local v281 = ui.TextStroke(themeColors.Void, 1, 0.4) v281.Parent = v264 local uiIcon = ui.Icon local themeColorsTextMuted = themeColors.TextMuted local v284 = UDim2.fromScale(0.5, 0.5) v267 = uiIcon("plus", 16, themeColorsTextMuted, { AnchorPoint = Vector2.new(0.5, 0.5), Position = v284, Parent = v262 }) end local v285 = ui.new local v286 = UDim2.fromOffset(n6 + 8, 0) local uDim2 = UDim2.new(1, -(n6 + 130), 1, 0) local v288 = v285("TextLabel", { Name = "ItemName", Text = "", TextSize = 17, Position = v286, Size = uDim2, FontFace = themeFonts.Bold, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, Parent = parent }) local v289 = ui.new local v290 = UDim2.fromOffset(52, 24) local themeColorsVoid = themeColors.Void v286 = ui.Corner(theme.Radius.Pill) local v292 = v289("Frame", { Name = "Cost", AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -52, 0.5, 0), Size = v290, BackgroundColor3 = themeColorsVoid, BackgroundTransparency = 0.45, v286, Parent = parent }) local v293 = ui.new v290 = UDim2.fromScale(1, 1) local v294 = v293("TextLabel", { Text = "", TextSize = 13, Size = v290, FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextDim, Parent = v292 }) local uiIconButton = ui.IconButton v290 = UDim2.fromOffset(36, 32) local v296 = uiIconButton({ Name = "RemoveButton", IconName = "cross", IconScale = 0.4, Transparency = 0.5, Sound = "Close", AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -6, 0.5, 0), Size = v290, Color = themeColors.Raised, HoverColor = themeColors.Danger, Parent = parent }) v286 = { id = nil, frame = parent, tile = v262, tileGrad = v268, tileStroke = v269, num = v264, plus = v267, shield = v272, icon = v265, name = v288, costPill = v292, costLabel = v294, remove = v296 } v296.Activated:Connect(function() if v286.id then u101(v286.id) end end) return v286 end v89 = v33(1) v55 = v33(2) v90 = v33(3) v54 = v33(4) local v102 = v33(5) local v103 = v33(6) local t7: {[any]: any} = { v89, v55, v90, v54, v102, v103 } local u105 = v33("armor") local v106 = ui.new("Frame", { Name = "Ammo", Size = UDim2.new(1, 0, 0, 0), Parent = v98 }) local v107 = ui.new("TextLabel", { Name = "Head", Text = "AMMO · 1 POINT PER BUNDLE", TextSize = 13, Size = UDim2.new(1, 0, 0, 18), FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, Parent = v106 }) local t8: {[any]: any} = {} local u109 = nil local function ammoRow(name) local v298 = t8[name] if v298 then return v298 end local v299 = weaponInfo.AmmoDef(name) local v300 = if name == "arrows" then t1.bow else t1.gun local uiNew = ui.new local uDim2 = UDim2.new(1, 0, 0, n6) local themeColorsRaised = themeColors.Raised local v304 = ui.Corner(12) local parent = uiNew("Frame", { Name = name, Size = uDim2, BackgroundColor3 = themeColorsRaised, BackgroundTransparency = 0.35, v304, Parent = v106 }) local v306 = ui.Stroke(themeColors.Stroke, 1, 0.93) v306.Parent = parent local v307 = ui.new local v308 = UDim2.fromOffset(n6 - 8, n6 - 8) local v309 = ui.Corner(9) v306 = v307("Frame", { Name = "Tile", AnchorPoint = Vector2.new(0, 0.5), Position = UDim2.new(0, 4, 0.5, 0), Size = v308, BackgroundColor3 = Color3.new(1, 1, 1), v309, Parent = parent }) local uiGradient = ui.Gradient v304 = v300:Lerp(themeColors.Panel, 0.7) v309 = themeColors.PanelHi:Lerp(themeColors.Panel, 0.6) local v311 = uiGradient(v304, v309, 115) v311.Parent = v306 local v312 = ui.new v308 = UDim2.fromScale(0.5, 0.5) local v313 = UDim2.fromScale(0.86, 0.86) v311 = v312("Frame", { Name = "Icon", AnchorPoint = Vector2.new(0.5, 0.5), Position = v308, Size = v313, Parent = v306 }) local weaponIconSet = weaponIcon.Set local v315 = v300:Lerp(Color3.new(1, 1, 1), 0.55) weaponIconSet(v311, "ammo_" .. name, { outline = true, glow = false, outlineScale = 1.04, outlineTransparency = 0.5, outlineColor = v315 }) if not v311:FindFirstChild("WeaponIcon") or v311:FindFirstChildOfClass("ImageLabel") then for iterFirst, iterSecond in v311:GetChildren() do iterSecond:Destroy() end local uiImage = ui.Image local v319 = if name == "arrows" then ui.Assets.Icons.CrossedArrows else ui.Assets.Icons.Headshot local v320 = UDim2.fromScale(0.5, 0.5) local v321 = UDim2.fromScale(0.62, 0.62) local v322 = v300:Lerp(Color3.new(1, 1, 1), 0.35) uiImage(v319, { AnchorPoint = Vector2.new(0.5, 0.5), Position = v320, Size = v321, ImageColor3 = v322, Parent = v311 }) end local v323 = ui.new v315 = UDim2.fromOffset(n6 + 8, 4) local uDim22 = UDim2.new(1, -(n6 + 150), 0.55, -4) local v325 = ui.List(Enum.FillDirection.Horizontal, 6, Enum.HorizontalAlignment.Left, Enum.VerticalAlignment.Bottom) v304 = v323("Frame", { Name = "NameRow", Position = v315, Size = uDim22, v325, Parent = parent }) local v326 = ui.new v315 = UDim2.fromScale(0, 1) v309 = v326("TextLabel", { TextSize = 17, LayoutOrder = 1, Size = v315, AutomaticSize = Enum.AutomaticSize.X, Text = v299 and v299.name or name, FontFace = themeFonts.Bold, Parent = v304 }) local v327 = ui.new local v328 = UDim2.fromScale(0, 1) v313 = v327("TextLabel", { Text = "", TextSize = 16, LayoutOrder = 2, Size = v328, AutomaticSize = Enum.AutomaticSize.X, FontFace = themeFonts.Heavy, TextColor3 = v300, Parent = v304 }) local v329 = ui.new local uDim23 = UDim2.new(0, n6 + 8, 0.55, 1) local uDim24 = UDim2.new(1, -(n6 + 150), 0.45, -4) v308 = v329("TextLabel", { Text = "", TextSize = 12, Position = uDim23, Size = uDim24, FontFace = themeFonts.SemiBold, TextColor3 = themeColors.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top, TextTruncate = Enum.TextTruncate.AtEnd, Parent = parent }) v300 = function(name, p16) local uiIconButton = ui.IconButton local v843 = UDim2.fromOffset(38, 34) return uiIconButton({ IconScale = 0.42, Transparency = 0.1, Name = name, IconName = p16, AnchorPoint = Vector2.new(1, 0.5), Size = v843, Color = themeColors.Raised, Parent = parent }) end local v332 = v300("Plus", "plus") local v333 = ui.new local v334 = UDim2.fromOffset(34, 30) v325 = v333("TextLabel", { Name = "Count", Text = "0", TextSize = 22, AnchorPoint = Vector2.new(1, 0.5), Size = v334, FontFace = themeFonts.Display, Parent = parent }) v315 = v300("Minus", "minus") v298 = { frame = parent, tile = v306, icon = v311, name = v309, amount = v313, sub = v308, count = v325, minus = v315, plus = v332, t = name } t8[name] = v298 v315.Activated:Connect(function() u109(name, -1) end) v332.Activated:Connect(function() u109(name, 1) end) return v298 end v103 = ui.new v102 = UDim2.fromOffset(418, 0) local v111 = v103("Frame", { Name = "Right", Position = v102, Size = UDim2.new(1, -418, 1, 0), Parent = v34 }) v102 = ui.new v103 = ui.List(Enum.FillDirection.Horizontal, 6, Enum.HorizontalAlignment.Left, Enum.VerticalAlignment.Center) v34 = v102("Frame", { Name = "Tabs", Size = UDim2.new(1, 0, 0, 40), ZIndex = 2, v103, Parent = v111 }) local t9: {[any]: any} = {} v103 = ui.new v102 = UDim2.fromOffset(0, 50) local v113 = v103("ScrollingFrame", { Name = "Grid", ScrollBarThickness = 5, ScrollBarImageTransparency = 0.4, Position = v102, Size = UDim2.new(1, 0, 1, -210), AutomaticCanvasSize = Enum.AutomaticSize.None, ScrollBarImageColor3 = themeColors.TextMuted, Parent = v111 }) local function rightW() return v35.Holder.Size.X.Offset - 44 - 400 - 18 end local function screenPerDesign() local x = v113.AbsoluteSize.X local v336 = math.max(v35.Holder.Size.X.Offset - 44 - 400 - 18, 1) return (math.max(x / v336, 0.01)) end local function cardH() if ui.Compact then return 128 end return 164 end local function detailH() if ui.Compact then return 104 end return 156 end local v118 = ui.new("Frame", { Name = "LockedHeader", Visible = false, Size = UDim2.new(1, -8, 0, 44), Parent = v113 }) ui.new("Frame", { Name = "Line", BackgroundTransparency = 0.88, BorderSizePixel = 0, AnchorPoint = Vector2.new(0, 0.5), Position = UDim2.new(0, 4, 0.5, 0), Size = UDim2.new(1, -8, 0, 1), BackgroundColor3 = themeColors.Text, Parent = v118 }) v102 = ui.new v103 = UDim2.fromOffset(0, 26) v102("TextLabel", { Name = "Label", Text = " LOCKED · find shards in drops ", TextSize = 13, BackgroundTransparency = 0, ZIndex = 2, AnchorPoint = Vector2.new(0, 0.5), Position = UDim2.new(0, 4, 0.5, 0), Size = v103, AutomaticSize = Enum.AutomaticSize.X, FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextMuted, BackgroundColor3 = themeColors.Panel, Parent = v118 }) v103 = ui.Button v102 = UDim2.fromOffset(150, 34) v103({ Name = "OpenCollection", Text = "COLLECTION", TextSize = 14, Style = "Dark", ZIndex = 2, AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -4, 0.5, 0), Size = v102, Parent = v118, OnClick = function() if module._openCollection then module._openCollection(nil) end end }) local t10: {[any]: any} = {} local t11: {[any]: any} = {} local u121 = nil local function makeCard(p17) local v338 = t1[p17.category] or themeColors.Accent local parent = ui.new("TextButton", { Name = p17.id, Size = UDim2.fromOffset(160, if ui.Compact then 128 else 164), Parent = v113 }) local v340 = ui.GetScaleObj(parent, "HoverScale") local uiNew = ui.new local v342 = UDim2.fromScale(1, 1) local v343 = ui.Corner(14) local v344 = uiNew("Frame", { Name = "Inner", Size = v342, BackgroundColor3 = Color3.new(1, 1, 1), BackgroundTransparency = 0.08, ClipsDescendants = true, v343, Parent = parent }) local uiGradient = ui.Gradient local v346 = v338:Lerp(themeColors.Panel, 0.8) v343 = themeColors.PanelHi:Lerp(themeColors.Panel, 0.6) local v347 = uiGradient(v346, v343, 115) v347.Parent = v344 v346 = ui.Stroke(themeColors.Stroke, 1, 0.9) v346.Parent = v344 local uiImage = ui.Image local glow = ui.Assets.Icons.Glow local v350 = UDim2.fromOffset(170, 150) v343 = uiImage(glow, { Name = "Glow", ImageTransparency = 0.72, AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.new(0.5, 0, 0, 58), Size = v350, ImageColor3 = v338, Parent = v344 }) v342 = ui.new("Frame", { Name = "Icon", ZIndex = 2, AnchorPoint = Vector2.new(0.5, 0), Position = UDim2.new(0.5, 0, 0, 10), Size = UDim2.new(1, -22, 1, -62), Parent = v344 }) local v351 = ui.new("TextLabel", { Name = "ItemName", TextSize = 17, ZIndex = 3, Position = UDim2.new(0, 12, 1, -48), Size = UDim2.new(1, -24, 0, 22), Text = p17.name, FontFace = themeFonts.Bold, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, Parent = v344 }) local v352 = ui.new("TextLabel", { Name = "Status", Text = "", TextSize = 12, ZIndex = 3, Position = UDim2.new(0, 12, 1, -26), Size = UDim2.new(1, -24, 0, 16), FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, Parent = v344 }) local v353 = ui.new local v354 = UDim2.fromOffset(30, 30) local themeColorsVoid = themeColors.Void local v356 = ui.Corner(theme.Radius.Pill) v350 = v353("Frame", { Name = "Cost", AnchorPoint = Vector2.new(1, 0), Position = UDim2.new(1, -8, 0, 8), Size = v354, BackgroundColor3 = themeColorsVoid, BackgroundTransparency = 0.3, ZIndex = 4, v356, Parent = v344 }) local v357 = ui.new v354 = UDim2.fromScale(1, 1) local text: string = tostring(p17.points) local v359 = v357("TextLabel", { TextSize = 17, ZIndex = 4, Size = v354, Text = text, FontFace = themeFonts.Display, Parent = v350 }) local v360 = ui.new local v361 = UDim2.fromOffset(8, 8) local v362 = UDim2.fromOffset(26, 26) local themeColorsAccent = themeColors.Accent local v364 = ui.Corner(theme.Radius.Pill) local v365 = v360("Frame", { Name = "Check", Position = v361, Size = v362, BackgroundColor3 = themeColorsAccent, Visible = false, ZIndex = 4, v364, Parent = v344 }) local uiIcon = ui.Icon v362 = themeColors.Text local v367 = UDim2.fromScale(0.5, 0.5) uiIcon("check", 18, v362, { ZIndex = 4, AnchorPoint = Vector2.new(0.5, 0.5), Position = v367, Parent = v365 }) local v368 = ui.new local v369 = UDim2.fromOffset(8, 8) local v370 = UDim2.fromOffset(28, 28) local void = themeColors.Void v362 = ui.Corner(theme.Radius.Pill) v356 = v368("Frame", { Name = "Lock", Position = v369, Size = v370, BackgroundColor3 = void, BackgroundTransparency = 0.25, Visible = false, ZIndex = 4, v362, Parent = v344 }) local image = ui.Image local lock = ui.Assets.Icons.Lock v370 = UDim2.fromScale(0.5, 0.5) v369 = UDim2.fromOffset(15, 15) image(lock, { ZIndex = 4, AnchorPoint = Vector2.new(0.5, 0.5), Position = v370, Size = v369, ImageColor3 = themeColors.TextDim, Parent = v356 }) local v374 = ui.new local themeColorsInset = themeColors.Inset v370 = ui.Corner(theme.Radius.Pill) v354 = v374("Frame", { Name = "ShardBar", AnchorPoint = Vector2.new(0, 1), Position = UDim2.new(0, 12, 1, -8), Size = UDim2.new(1, -24, 0, 4), BackgroundColor3 = themeColorsInset, BackgroundTransparency = 0.1, Visible = false, ZIndex = 5, v370, Parent = v344 }) local v376 = ui.new local v377 = UDim2.fromScale(0, 1) local accent = themeColors.Accent v367 = ui.Corner(theme.Radius.Pill) v364 = v376("Frame", { Name = "Fill", Size = v377, BackgroundColor3 = accent, ZIndex = 5, v367, Parent = v354 }) local v379 = ui.new local v380 = UDim2.fromOffset(8, 8) local x = Enum.AutomaticSize.X local v382 = UDim2.fromOffset(0, 24) local v383 = themeColors.Void v377 = ui.Corner(theme.Radius.Pill) local v384 = ui.Padding(0, 8, 0, 8) local v385 = ui.List(Enum.FillDirection.Horizontal, 3, Enum.HorizontalAlignment.Left, Enum.VerticalAlignment.Center) v362 = v379("Frame", { Name = "Level", Position = v380, AutomaticSize = x, Size = v382, BackgroundColor3 = v383, BackgroundTransparency = 0.3, Visible = false, ZIndex = 4, v377, v384, v385, Parent = v344 }) v370 = ui.Icon("chevUp", 11, themeColors.Text, { Name = "Ready", LayoutOrder = 0, ZIndex = 4, Parent = v362 }) v370.Visible = false local v386 = ui.new local v387 = Enum.AutomaticSize.X v385 = UDim2.fromScale(0, 1) v367 = v386("TextLabel", { Name = "Text", Text = "LV 1", RichText = true, TextSize = 14, LayoutOrder = 1, ZIndex = 4, AutomaticSize = v387, Size = v385, FontFace = themeFonts.Display, Parent = v362 }) local v388 = ui.new local v389 = UDim2.fromScale(1, 1) v382 = ui.Corner(14) v377 = v388("Frame", { Name = "Flash", Size = v389, BackgroundColor3 = Color3.new(1, 1, 1), BackgroundTransparency = 1, ZIndex = 6, v382, Parent = v344 }) v384 = { rendered = false, visible = true, hover = false, y = 0, id = p17.id, holder = parent, scale = v340, inner = v344, grad = v347, stroke = v346, glow = v343, icon = v342, costBadge = v350, costText = v359, check = v365, lock = v356, lv = v362, lvText = v367, readyDot = v370, cbar = v354, cfill = v364, nameL = v351, status = v352, flash = v377 } parent.MouseEnter:Connect(function() if ui.Touch then return end v384.hover = true u37 = p17.id u36 = p17.id p1.Sounds.Play("Hover") ui.Tween(v340, theme.Tween.PopSmall, { Scale = 1.035 }) module._paintCard(v384) module._paintDetail() module._paintPoints() end) parent.MouseLeave:Connect(function() v384.hover = false if u37 == p17.id then u37 = nil end ui.Tween(v340, theme.Tween.Fast, { Scale = 1 }) module._paintCard(v384) module._paintPoints() end) parent.MouseButton1Down:Connect(function() ui.Tween(v340, theme.Tween.Instant, { Scale = 0.97 }) end) parent.MouseButton1Up:Connect(function() ui.Tween(v340, theme.Tween.PopSmall, { Scale = if v384.hover then 1.035 else 1 }) end) parent.SelectionGained:Connect(function() v384.hover = true u37 = p17.id u36 = p17.id module._paintCard(v384) module._paintDetail() module._paintPoints() end) parent.SelectionLost:Connect(function() v384.hover = false if u37 == p17.id then u37 = nil end module._paintCard(v384) module._paintPoints() end) parent.Activated:Connect(function() u36 = p17.id u121(p17.id, v384) end) return v384 end v102 = ui.Panel v103 = UDim2.fromScale(0, 1) local v123 = v102({ Name = "Detail", BackgroundTransparency = 0.2, AnchorPoint = Vector2.new(0, 1), Position = v103, Size = UDim2.new(1, 0, 0, 156), Radius = UDim.new(0, 14), Parent = v111 }) v103 = ui.new v102 = UDim2.fromOffset(140, 140) v54 = ui.Corner(12) local v124 = v103("Frame", { Name = "Preview", AnchorPoint = Vector2.new(0, 0.5), Position = UDim2.new(0, 8, 0.5, 0), Size = v102, BackgroundColor3 = Color3.new(1, 1, 1), ClipsDescendants = true, v54, Parent = v123 }) v54 = ui.Gradient v102 = themeColors.Accent:Lerp(themeColors.Panel, 0.75) v103 = themeColors.PanelHi:Lerp(themeColors.Panel, 0.6) local v125 = v54(v102, v103, 115) v125.Parent = v124 v103 = ui.Image v102 = ui.Assets.Icons.Glow v54 = UDim2.fromScale(0.5, 0.5) v90 = UDim2.fromScale(1.3, 1.3) local v126 = v103(v102, { Name = "Glow", ImageTransparency = 0.6, AnchorPoint = Vector2.new(0.5, 0.5), Position = v54, Size = v90, ImageColor3 = themeColors.Accent, Parent = v124 }) v90 = ui.new v54 = UDim2.fromScale(0.5, 0.5) v102 = UDim2.fromScale(0.92, 0.92) local v127 = v90("Frame", { Name = "Icon", ZIndex = 2, AnchorPoint = Vector2.new(0.5, 0.5), Position = v54, Size = v102, Parent = v124 }) v102 = ui.new v54 = UDim2.fromOffset(160, 12) local v128 = v102("Frame", { Name = "Text", Position = v54, Size = UDim2.new(1, -600, 1, -24), Parent = v123 }) local v129 = ui.new("TextLabel", { Name = "ItemName", Text = "", TextSize = 24, Size = UDim2.new(1, 0, 0, 28), FontFace = themeFonts.Display, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, Parent = v128 }) v54 = ui.new v102 = UDim2.fromOffset(0, 30) local v130 = v54("TextLabel", { Name = "Sub", Text = "", TextSize = 12, Position = v102, Size = UDim2.new(1, 0, 0, 16), FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, Parent = v128 }) v102 = ui.new v54 = UDim2.fromOffset(0, 54) local v131 = v102("TextLabel", { Name = "Desc", Text = "", TextSize = 14, TextWrapped = true, Position = v54, Size = UDim2.new(1, 0, 1, -54), FontFace = themeFonts.Medium, TextColor3 = themeColors.TextDim, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top, Parent = v128 }) v54 = ui.new v102 = UDim2.fromOffset(262, 84) v90 = ui.List(Enum.FillDirection.Vertical, 8, Enum.HorizontalAlignment.Left, Enum.VerticalAlignment.Center) local v132 = v54("Frame", { Name = "Stats", AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -168, 0.5, 0), Size = v102, v90, Parent = v123 }) local t12: {[any]: any} = {} for i = 1, 3 do local v135 = ui.new("Frame", { Name = "Stat" .. i, Size = UDim2.new(1, 0, 0, 20), LayoutOrder = i, Parent = v132 }) local v136 = ui.new local v137 = UDim2.fromOffset(70, 20) local v138 = v136("TextLabel", { Text = "", TextSize = 12, Size = v137, FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, Parent = v135 }) v137 = ui.Bar v136 = UDim2.fromOffset(72, 7) local v139 = UDim2.fromOffset(92, 7) local v140 = v137({ Stroke = false, Position = v136, Size = v139, Color = themeColors.Accent, Parent = v135 }) v139 = ui.new v136 = UDim2.fromOffset(92, 20) v137 = v139("TextLabel", { Text = "", TextSize = 12, AnchorPoint = Vector2.new(1, 0), Position = UDim2.new(1, 0, 0, 0), Size = v136, FontFace = themeFonts.Bold, TextColor3 = themeColors.TextDim, TextXAlignment = Enum.TextXAlignment.Right, TextTruncate = Enum.TextTruncate.AtEnd, Parent = v135 }) t12[i] = { frame = v135, label = v138, bar = v140, value = v137 } end v90 = ui.Button v102 = UDim2.fromOffset(144, 56) local v141 = v90({ Name = "Action", Text = "ADD", TextSize = 20, Style = "Primary", AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -12, 0.5, 0), Size = v102, Parent = v123 }) local function layoutWindow() local v390 = ui.CanvasSize() if ui.Compact then local v391 = math.clamp(v390.X - 24, 340, 1280) local floored = math.floor(v391) local y = v390.Y local v394 = ui.TopInset() local v395 = math.clamp(y - v394 - 12, 300, 720) local floored2 = math.floor(v395) v35.Holder.Size = UDim2.fromOffset(floored, floored2) else local v397 = ui.TopInset() local v398 = math.clamp(v390.X - 96, 1280, 1500) local floored = math.floor(v398) local v400 = math.clamp(v390.Y - v397 - 22, 720, 980) local floored3 = math.floor(v400) v35.Holder.Size = UDim2.fromOffset(floored, floored3) end layoutSlots() local uiCompact = ui.Compact u47.Visible = not uiCompact v82.Position = UDim2.fromOffset(0, if uiCompact then 0 else 22) if uiCompact then v81.Parent = v111 v81.Position = UDim2.new(1, -4, 0, 11) else v81.Parent = v80 v81.Position = UDim2.new(1, 0, 0, 0) end v84.TextSize = if uiCompact then 28 else 34 v84.Size = UDim2.fromOffset(v84.Size.X.Offset, if uiCompact then 30 else 36) v83.Size = UDim2.new(1, -110, 0, if uiCompact then 30 else 36) v86.TextSize = if uiCompact then 14 else 15 v87.Position = UDim2.new(1, 0, 0, if uiCompact then 8 else 12) v91.Position = UDim2.fromOffset(0, if uiCompact then 36 else 44) v88.Position = UDim2.fromOffset(0, if uiCompact then 50 else 60) v88.TextSize = if uiCompact then 13 else 14 local n1: number = if uiCompact then 70 else 108 v98.Position = UDim2.fromOffset(0, n1) v98.Size = UDim2.new(1, 0, 1, -n1) n4 += 1 local v404: number = n4 local text = v84.Text local textSize = v84.TextSize task.spawn(function() local getTextBoundsParams: GetTextBoundsParams = Instance.new("GetTextBoundsParams") getTextBoundsParams.Text = text getTextBoundsParams.Font = themeFonts.Display getTextBoundsParams.Size = textSize getTextBoundsParams.Width = 1000 local ok, result = pcall(function() return textService:GetTextBoundsAsync(getTextBoundsParams) end) if ok and v404 == n4 and result.X > 4 then local uDim2FromOffset = UDim2.fromOffset local roundedUp = math.ceil(result.X) v84.Size = uDim2FromOffset(roundedUp + 2, v84.Size.Y.Offset) end end) n1 = if ui.Compact then 104 else 156 v123.Size = UDim2.new(1, 0, 0, n1) v124.Size = UDim2.fromOffset(n1 - 16, n1 - 16) v128.Position = UDim2.fromOffset(n1 + 4, if uiCompact then 8 else 12) v128.Size = UDim2.new(1, -(n1 + 4 + 262 + 168 + 12), 1, if uiCompact then -16 else -24) v131.TextSize = if uiCompact then 13 else 14 v113.Size = UDim2.new(1, 0, 1, -(n1 + 50 + 12)) end local function layoutRows() local y = v98.AbsoluteSize.Y local v408 = math.max(v98.AbsoluteSize.X / 400, 0.01) local n1 = y / v408 local v410 = weaponInfo.AmmoNeeded(t5) v408 = 0 for iterFirst, iterSecond in weaponInfo.AmmoTypes() do if v410[iterSecond.id] or (t5.ammo[iterSecond.id] or 0) > 0 then v408 += 1 end end local n2 = v408 + 7 local n3: number = if v408 > 0 and not ui.Compact then 22 else 0 n7 = if n1 < 400 then 4 else 6 local floored = math.floor((n1 - n3 - (n2 - 1) * n7) / n2) n6 = math.clamp(floored, 30, 66) n2 = if ui.Touch then n6 + 10 else 36 local n4 if ui.Touch then n4 = n6 - 2 else n4 = math.min(32, n6 - 8) end local n5 = n6 - 8 local function fitRow(p18, p19) p18.frame.Position = UDim2.fromOffset(0, p19) p18.frame.Size = UDim2.new(1, 0, 0, n6) p18.tile.Size = UDim2.fromOffset(n5, n5) p18.name.Position = UDim2.fromOffset(n5 + 16, 0) p18.remove.Size = UDim2.fromOffset(n2, n4) p18.remove.Position = UDim2.new(1, if ui.Touch then -1 else -6, 0.5, 0) p18.costPill.Position = UDim2.new(1, -(n2 + (if ui.Touch then 8 else 12)), 0.5, 0) p18.name.Size = UDim2.new(1, -(n5 + 16 + n2 + 12 + 60), 1, 0) p18.name.TextSize = if n6 < 40 then 15 else 17 if p18.num then p18.num.Visible = n5 >= 34 end end local n8 = 0 for key, value in t7 do fitRow(value, n8) n8 += n6 + n7 end fitRow(u105, n8) v106.Position = UDim2.fromOffset(0, n8 + (n6 + n7)) v106.Visible = v408 > 0 v107.Visible = v408 > 0 and not ui.Compact n8 = n3 for iterFirst2, iterSecond2 in weaponInfo.AmmoTypes() do local v424 = v410[iterSecond2.id] or (t5.ammo[iterSecond2.id] or 0) > 0 local v425 = if not v424 and not t8[iterSecond2.id] then nil else ammoRow(iterSecond2.id) if v425 then v425.frame.Visible = v424 if v424 then v425.frame.Position = UDim2.fromOffset(0, n8) v425.frame.Size = UDim2.new(1, 0, 0, n6) v425.tile.Size = UDim2.fromOffset(n5, n5) local v426 if ui.Touch then v426 = math.max(38, n6 - 2) else v426 = 38 end local plus = v425.plus local uDim2FromOffset = UDim2.fromOffset local v429 = math.min(34, n6 - 6) plus.Size = uDim2FromOffset(v426, v429) v425.plus.Position = UDim2.new(1, -5, 0.5, 0) v425.count.Position = UDim2.new(1, -(v426 + 7), 0.5, 0) v425.minus.Size = v425.plus.Size v425.minus.Position = UDim2.new(1, -(v426 + 45), 0.5, 0) n8 += n6 + n7 end end end v106.Size = UDim2.new(1, 0, 0, n8) end local function layoutGrid(p20) local n1 = v35.Holder.Size.X.Offset - 44 - 400 - 18 local n2: number = if ui.Compact then 128 else 164 local floored = math.floor((n1 - 8 + 12) / 170) local v434 = math.clamp(floored, 2, 5) local floored4 = math.floor((n1 - 8 - (v434 - 1) * 12) / v434) n1 = nil for iterFirst, iterSecond in weaponInfo.FILTERS, nil, nil do if iterSecond.id == s1 then n1 = iterSecond end end local t15: {[any]: any} = {} local t16: {[any]: any} = {} for key, value in t10 do local v442 = weaponInfo.Get(value.id) local u443: boolean = false if v442 ~= nil then u443 = true if n1 ~= nil then u443 = true if n1.cats ~= nil then u443 = n1.cats[v442.category] == true end end end value.holder.Visible = u443 value.visible = u443 if u443 then local v444 = economy.IsLocked(value.id) table.insert(if v444 then t16 else t15, value) end end local n3 = 0 n1 = function(p21) for iterFirst, iterSecond in p21 do iterSecond.y = n3 + (iterFirst - 1) // v434 * (n2 + 12) iterSecond.holder.Position = UDim2.fromOffset((iterFirst - 1) % v434 * (floored4 + 12) + 4, iterSecond.y + 4) iterSecond.holder.Size = UDim2.fromOffset(floored4, n2) iterSecond.glow.Size = UDim2.fromOffset(floored4 * 1.05, n2 * 0.95) iterSecond.glow.Position = UDim2.new(0.5, 0, 0, (n2 - 60) / 2 + 6) end local v854: number = n3 local roundedUp = math.ceil(#p21 / v434) n3 = v854 + roundedUp * (n2 + 12) end n1(t15) v118.Visible = #t16 > 0 if #t16 > 0 then v118.Position = UDim2.fromOffset(4, n3 + (if #t15 > 0 then 6 else 0)) n3 += (if #t15 > 0 then 14 else 8) + 44 n1(t16) end v113.CanvasSize = UDim2.fromOffset(0, n3 + 8) if not p20 then v113.CanvasPosition = Vector2.zero end end local function staggerCards() local n1: number = 0 for key, value in t10 do if value.visible then local v449 = math.min(n1 * 0.018, 0.22) value.inner.Position = UDim2.fromOffset(0, 14) value.scale.Scale = 0.94 local uiTween = ui.Tween local inner = value.inner local tweenInfo = TweenInfo.new(0.32, Enum.EasingStyle.Quint, Enum.EasingDirection.Out, 0, false, v449) uiTween(inner, tweenInfo, { Position = UDim2.new() }) local tween = ui.Tween local scale = value.scale local tweenInfo2 = TweenInfo.new(0.32, Enum.EasingStyle.Back, Enum.EasingDirection.Out, 0, false, v449) tween(scale, tweenInfo2, { Scale = 1 }) n1 += 1 end end end local t13: {[any]: any} = {} local function queueVisible() local x = v113.AbsoluteSize.X local v457 = math.max(v35.Holder.Size.X.Offset - 44 - 400 - 18, 1) local v458 = math.max(x / v457, 0.01) local n1: number = if ui.Compact then 128 else 164 local n2 = v113.CanvasPosition.Y / v458 v457 = n2 + v113.AbsoluteWindowSize.Y / v458 for key, value in t10 do if value.visible and not value.rendered and value.y + n1 >= n2 - n1 and value.y <= v457 + n1 then value.rendered = true table.insert(t13, value) elseif value.rendered and (not value.visible or value.y + n1 < n2 - n1 * 2 or value.y > v457 + n1 * 2) then value.rendered = false local v463 = table.find(t13, value) if v463 then table.remove(t13, v463) end weaponIcon.Set(value.icon, nil) end end end runService.Heartbeat:Connect(function() if #t13 == 0 or not v35.IsOpen then return end for _ = 1, if ui.Touch then 2 else 4 do local v465 = table.remove(t13, 1) if not v465 then break end local weaponIconSet = weaponIcon.Set local icon = v465.icon local id = v465.id local v469 = weaponInfo.Get(v465.id) local v470 = (v469 and t1[v469.category] or themeColors.Accent):Lerp(Color3.new(1, 1, 1), 0.55) weaponIconSet(icon, id, { outline = false, glow = false, outlineScale = 1.035, outlineTransparency = 0.5, outlineColor = v470 }) module._paintCard(v465) end end) v113:GetPropertyChangedSignal("CanvasPosition"):Connect(queueVisible) local n8 = -1 local tweenInfo = TweenInfo.new(0.35, Enum.EasingStyle.Quint, Enum.EasingDirection.Out) function module._paintPoints() local v471 = weaponInfo.Cost(t5) local v472 = weaponInfo.Budget() local v473 = math.max(v472, 1) buildTicks(v473) v84.Text = string.format("%d / %d", v471, v473) if v471 ~= n8 then if n8 >= 0 then ui.Bump(v84, 0.08) end n8 = v471 end v472 = v471 >= v473 local uiTween = ui.Tween local uDim2FromScale = UDim2.fromScale local v476 = math.clamp(v471 / v473, 0, 1) local uDim2 = uDim2FromScale(v476, 1) uiTween(v93, tweenInfo, { Size = uDim2 }) local v478 = if v472 then themeColors.Success else themeColors.Accent local colorSequenceNew = ColorSequence.new local v480 = theme.Lighten(v478, 0.18) v94.Color = colorSequenceNew(v480, v478) v87.Text = "" v88.Text = if v472 then string.format("All %d points used", v473) else if v471 == 0 then string.format("0 of %d points used · pick items on the right", v473) else string.format("%d of %d points used · %d left", v471, v473, v473 - v471) v88.TextColor3 = if v472 then themeColors.Success else themeColors.TextDim v478 = v471 v472 = false local v481 = u37 if v481 then local u482: boolean = true if table.find(t5.items, v481) == nil then u482 = v481 == t5.armor end if not u482 then local v483, v484, v485 = canAdd(v481) if v483 then local v486 = weaponInfo.Points(v481) local v487 = if weaponInfo.IsArmor(v481) and t5.armor then weaponInfo.Points(t5.armor) else 0 v478 = v471 + v486 - v487 elseif v484 == "points" then v478 = v473 v472 = true local stringFormat = string.format local v489 = weaponInfo.Name(v481) v88.Text = stringFormat("%s needs %d more point%s: remove something first", v489, v485, if v485 == 1 then "" else "s") v88.TextColor3 = themeColors.Danger end end end local tween = ui.Tween local fast = theme.Tween.Fast local v492 = UDim2.fromScale local v493 = math.clamp(v478 / v473, 0, 1) local v494 = v492(v493, 1) tween(v92, fast, { Size = v494 }) v92.BackgroundColor3 = if v472 then themeColors.Danger else themeColors.Accent v92.BackgroundTransparency = if v472 then 0.35 else 0.6 end local function paintRow(p22, p23) p22.id = p23 local v497 = weaponInfo.Get(p23) p22.remove.Visible = v497 ~= nil p22.costPill.Visible = v497 ~= nil p22.frame.BackgroundTransparency = if v497 then 0.3 else 0.72 p22.tileGrad.Color = if v497 then ColorSequence.new((if v497 then t1[v497.category] or themeColors.Accent else themeColors.Raised):Lerp(themeColors.Panel, 0.62), themeColors.PanelHi:Lerp(themeColors.Panel, 0.6)) else ColorSequence.new(themeColors.Panel, themeColors.Panel) p22.tile.BackgroundTransparency = if v497 then 0 else 0.6 p22.tileStroke.Transparency = if v497 then 0.88 else 0.75 if p22.plus then p22.plus.Visible = v497 == nil end if p22.shield then p22.shield.Visible = v497 == nil end if v497 then p22.name.Text = v497.name p22.name.TextColor3 = themeColors.Text p22.costLabel.Text = v497.points .. (if v497.points == 1 then " PT" else " PTS") local weaponIconSet = weaponIcon.Set local icon = p22.icon local v500 = weaponInfo.Get(p23) local v501 = (v500 and t1[v500.category] or themeColors.Accent):Lerp(Color3.new(1, 1, 1), 0.55) weaponIconSet(icon, p23, { outline = false, glow = false, outlineScale = 1.035, outlineTransparency = 0.5, outlineColor = v501 }) else local u502: boolean = p22 ~= u105 and p22 == t7[#t5.items + 1] p22.name.Text = if p22 == u105 then "Armor (optional)" else if u502 then "Pick an item on the right" else "Empty" p22.name.TextColor3 = if u502 then themeColors.TextDim else themeColors.TextMuted weaponIcon.Set(p22.icon, nil) end if p22.num then p22.num.TextColor3 = if v497 then themeColors.TextDim else themeColors.TextMuted p22.num.TextTransparency = if v497 then 0.1 else 0.3 end end local function paintAmmo() local v503 = weaponInfo.AmmoNeeded(t5) for iterFirst, iterSecond in weaponInfo.AmmoTypes() do local v506 = t8[iterSecond.id] if v506 and v506.frame.Visible then local v507 = t5.ammo[iterSecond.id] or 0 v506.count.Text = tostring(v507) v506.amount.Text = "×" .. v507 * iterSecond.perBundle if v507 == 0 and v503[iterSecond.id] and not iterSecond.optional then v506.sub.Text = "No " .. string.lower(iterSecond.name) .. ": you can't shoot!" v506.sub.TextColor3 = themeColors.Danger v506.amount.TextColor3 = themeColors.Danger else v506.sub.Text = string.format("%d %s per bundle", iterSecond.perBundle, string.lower(iterSecond.name)) v506.sub.TextColor3 = themeColors.TextMuted v506.amount.TextColor3 = if iterSecond.id == "arrows" or iterSecond.as == "arrows" then t1.bow else t1.gun end local u508: boolean = false local v509 = weaponInfo.MaxAmmoBundles() if v507 < v509 then local n1 = weaponInfo.Cost(t5) + iterSecond.points local v511 = weaponInfo.Budget() u508 = n1 <= v511 end v506.plus.BackgroundTransparency = if u508 then 0.1 else 0.6 v506.minus.BackgroundTransparency = if v507 > 0 then 0.1 else 0.6 end end end function module._paintCard(p24) local v513, v514, v515 = canAdd(p24.id) local id = p24.id local u517: boolean = true if table.find(t5.items, id) == nil then u517 = id == t5.armor end local v518 = weaponInfo.Get(p24.id) local v519 = v518 and t1[v518.category] or themeColors.Accent v518 = v514 == "locked" local u520: boolean = not u517 and not v513 local v521, v522 = economy.Progress(p24.id) local v523 = economy.Level(p24.id) p24.check.Visible = false p24.lock.Visible = v518 p24.costBadge.Visible = not v518 p24.lv.Visible = not v518 and v523 >= 1 local u524 = not v518 and economy.CanUpgrade(p24.id) p24.readyDot.Visible = u524 if v523 >= economy.MAX_LEVEL then p24.lvText.Text = "MAX" p24.lvText.TextColor3 = themeColors.TextDark p24.lv.BackgroundColor3 = themeColors.Gold p24.lv.BackgroundTransparency = 0 else p24.lvText.Text = string.format("LV %d", v523) p24.lvText.TextColor3 = themeColors.Text p24.lv.BackgroundColor3 = if u524 then themeColors.SuccessDark else themeColors.Void p24.lv.BackgroundTransparency = if u524 then 0 else 0.3 end p24.cbar.Visible = v518 p24.cfill.Visible = v521 > 0 local cfill = p24.cfill local uDim2FromScale = UDim2.fromScale local v527 = math.max(v522, 1) local v528 = math.clamp(v521 / v527, 0, 1) cfill.Size = uDim2FromScale(v528, 1) p24.cfill.BackgroundColor3 = themeColors.Accent p24.stroke.Color = if u517 then themeColors.Accent else if p24.hover then if v518 then themeColors.Stroke else v519 else themeColors.Stroke p24.stroke.Thickness = if u517 then 2 else 1 p24.stroke.Transparency = if u517 then 0 else if p24.hover then if v518 then 0.7 else 0.4 else 0.9 p24.grad.Color = if v518 then ColorSequence.new(themeColors.Panel, themeColors.Panel) else ColorSequence.new(v519:Lerp(themeColors.Panel, if p24.hover then 0.8 else 0.9), themeColors.PanelHi:Lerp(themeColors.Panel, 0.6)) p24.inner.BackgroundTransparency = if v518 then 0.35 else 0.08 p24.glow.ImageTransparency = if not v518 and not u520 then if not p24.hover and not u517 then 0.85 else 0.7 else 1 p24.costBadge.BackgroundColor3 = themeColors.Void p24.costBadge.BackgroundTransparency = 0.3 if p24.rendered then weaponIcon.SetDim(p24.icon, u520) end p24.nameL.TextColor3 = if v518 then themeColors.TextMuted else if u520 then themeColors.TextDim else themeColors.Text if u517 then p24.status.Text = "✓ IN LOADOUT" p24.status.TextColor3 = themeColors.Accent return end if v518 then p24.status.Text = string.format("%d / %d SHARDS", v521, v522) p24.status.TextColor3 = if v521 > 0 then themeColors.TextDim else themeColors.TextMuted return end if v514 == "points" then p24.status.Text = string.format("NEEDS %d MORE PT%s", v515, if v515 == 1 then "" else "S") p24.status.TextColor3 = if p24.hover then themeColors.Danger else themeColors.TextMuted return end if v514 == "full" then p24.status.Text = "6 ITEMS MAX" p24.status.TextColor3 = themeColors.TextMuted return end p24.status.Text = "" end local function statValue(p25, p26, p27) if type(p25.details) == "table" then for iterFirst, iterSecond in p25.details, nil, nil do if type(iterSecond) == "table" and type(iterSecond[1]) == "string" and p26 == string.upper(iterSecond[1]) then return (tostring(iterSecond[2])) end end end local v534 local floored if p25.category == "armor" then local v536, v537 = weaponInfo.ArmorStats(p25) if p26 == "ARMOR" then return "+" .. v536 end if p26 == "SPEED" then local stringFormat = string.format local floored = math.floor((1 - v537) * 100 + 0.5) return stringFormat("−%d%%", floored) end v534 = string.format floored = math.floor(p27 * 10 + 0.5) return v534("%d / 10", floored) end v534 = string.format floored = math.floor(p27 * 10 + 0.5) return v534("%d / 10", floored) end local u153 = nil function module._paintDetail() local v540 = weaponInfo.Get(u36) v123.Visible = v540 ~= nil if not v540 then return end local imageColor3 = t1[v540.category] or themeColors.Accent if u153 ~= v540.id then u153 = v540.id local weaponIconSet = weaponIcon.Set local id = v540.id local v544 = iconOpts(v540.id, { spin = true, outline = true }) weaponIconSet(v127, id, v544) local colorSequenceNew = ColorSequence.new local v546 = imageColor3:Lerp(themeColors.Panel, 0.62) v125.Color = colorSequenceNew(v546, themeColors.PanelHi:Lerp(themeColors.Panel, 0.6)) v126.ImageColor3 = imageColor3 ui.Pop(v127, 0.9, theme.Tween.PopSmall) end v129.Text = v540.name local v547 = weaponInfo.CATEGORY_SINGULAR[v540.category] or "" local v548 = weaponInfo.AmmoOf(v540.id) local v549 = v548 and weaponInfo.AmmoDef(v548) v548 = economy.Level(v540.id) local v550 if v548 >= 1 then local stringFormat = string.format local s1 if v548 > 1 then s1 = " " .. string.upper(economy.BonusText(v540.id, v548)) else s1 = "" end v550 = stringFormat("LV %d%s · ", v548, s1) else v550 = "" end local v553 = string.format local points = v540.points local s2: string = if v540.points == 1 then "" else "S" local s3: string = if v549 then " · USES " .. string.upper(v549.name) else "" v130.Text = v553("%s%s · %d POINT%s%s", v550, v547, points, s2, s3) v130.TextColor3 = imageColor3:Lerp(themeColors.TextDim, 0.35) local v557 = v540.description if v540.category == "armor" then local v558, v559 = weaponInfo.ArmorStats(v540) local v560 = string.format local floored = math.floor((1 - v559) * 100 + 0.5) v557 = v560("+%d armor, %d%% slower. %s", v558, floored, v557) end v131.Text = v557 local v562 = weaponInfo.Bars(v540) for key, value in t12 do local v565 = v562[key] value.frame.Visible = v565 ~= nil if v565 then value.label.Text = v565.label value.bar.Set(v565.frac) value.bar.SetColor(imageColor3) value.value.Text = statValue(v540, v565.label, v565.frac) end end local v566, v567, v568 = canAdd(v540.id) v132.Visible = true if v567 == "locked" then local v569, v570 = economy.Progress(v540.id) if economy.RankAllows(v540.id) then v130.Text = string.format("LOCKED · %d / %d SHARDS · FIND SHARDS IN DROPS", v569, v570) else local replicatedStorage: ReplicatedStorage = game:GetService("ReplicatedStorage") local v572 = string.format local stringUpper = string.upper local v574 = require(replicatedStorage.Shared.Ranks).Get(economy.ItemRank(v540.id)) v130.Text = v572("LOCKED · JOINS YOUR DROPS AT %s", stringUpper(v574.name)) end v130.TextColor3 = themeColors.TextMuted v141.Instance.AnchorPoint = Vector2.new(1, 0.5) v141.Instance.Position = UDim2.new(1, -12, 0.5, 0) v141.Instance.Size = UDim2.fromOffset(144, 56) v141.Label.TextSize = 17 v141:SetStyle("Dark") v141:SetEnabled(true) v141:SetText("COLLECTION") return end v141.Instance.AnchorPoint = Vector2.new(1, 0.5) v141.Instance.Position = UDim2.new(1, -12, 0.5, 0) v141.Instance.Size = UDim2.fromOffset(144, 56) v141.Label.TextSize = 20 local v575 = v540.id local u576: boolean = true if table.find(t5.items, v575) == nil then u576 = v575 == t5.armor end if u576 then v141:SetStyle("Dark") v141:SetEnabled(true) v141:SetText("REMOVE") return end if v566 then v141:SetStyle("Primary") v141:SetEnabled(true) local v577 = weaponInfo.IsArmor(v540.id) v141:SetText(if v577 and t5.armor then "SWAP" else "ADD") return end v141:SetStyle("Dark") v141:SetEnabled(false) v141:SetText(if v567 == "points" then "NEED " .. v568 .. " PTS" else "6 ITEMS MAX") end local function paintAll() for key, value in t7 do paintRow(value, t5.items[key]) end paintRow(u105, if t5.armor then t5.armor else nil) layoutRows() paintAmmo() module._paintPoints() for key2, value2 in t10 do module._paintCard(value2) end module._paintDetail() u45() local subtitle = v35.Subtitle local stringFormat = string.format local v584 = weaponInfo.MaxItems() subtitle.Text = stringFormat("Pick up to %d items worth %d points.", v584, budget()) end local function save(p28: {[any]: any}, p29: number) n1 += 1 if not p28 then if not u39 then return end p28 = t5 p29 = n3 end u39 = false if #p28.items == 0 then v81.Text = "Add an item to save" v81.TextColor3 = themeColors.TextMuted return end v81.Text = "Saving…" v81.TextColor3 = themeColors.TextMuted local v587, v588, v589 = weaponInfo.Validate(p28) local v590, v591 = p1.ProfileAction("SetLoadout", v589, p29) if v590 then v81.Text = "✓ Saved" v81.TextColor3 = themeColors.Success local t17: {[any]: any} = { items = table.clone(v589.items), armor = v589.armor, ammo = table.clone(v589.ammo or {}) } local loadouts = state.Profile.loadouts if type(loadouts) == "table" and p29 and loadouts[p29] ~= nil then loadouts[p29] = t17 end if not state.HasLoadoutSlots() or p29 == state.ActiveLoadout() then state.Profile.loadout = t17 end u45() return end v81.Text = "Not saved" v81.TextColor3 = themeColors.Danger end local function markDirty() u39 = true n3 = n2 n1 += 1 local v594: number = n1 v81.Text = "" task.delay(1.2, function() if v594 == n1 then save() end end) end local function flushSave() if not u39 then return end local v595 = copyDraft(t5) u39 = false n1 += 1 task.spawn(save, v595, n3) end local u158: boolean = false p1.MenuManager.Changed:Connect(function(p31) if p31 == nil and u158 then u158 = false task.defer(function() if not p1.MenuManager.IsOpen() and not state.InMatch() then p1.MenuManager.Open("Loadout") end end) elseif p31 ~= nil and p31 ~= "Collection" then u158 = false end end) function module._openCollection(p30) u158 = true p1.MenuManager.Open("Collection", if p30 then { focus = p30 } else nil) end u46 = function(p32) if p32 ~= n2 and state.HasLoadoutSlots() and not (p32 > state.LoadoutSlotCount()) then if u39 then local v599 = copyDraft(t5) u39 = false n1 += 1 task.spawn(save, v599, n3) end n2 = p32 u43 = p32 local v600, v601, v602 = weaponInfo.Validate(state.LoadoutSlot(p32)) t5 = copyDraft(v602) u39 = false u36 = t5.items[1] or u36 u37 = nil p1.Sounds.Play("Equip") paintAll() ui.Pop(t6[p32].tile, 1.2) for key, value in t7 do if t5.items[key] then task.delay(key * 0.03, function() ui.Pop(value.tile, 1.12) end) end end task.spawn(function() local v856 = p1.ProfileAction("SelectLoadout", p32) if v856 then state.Profile.activeLoadout = p32 state.Profile.loadout = state.Profile.loadouts and state.Profile.loadouts[p32] or state.Profile.loadout end if u43 == p32 then u43 = nil end if v856 then state.ProfileChanged:Fire(state.Profile) end end) return end end local function dropUnusedAmmo() local v605 = weaponInfo.AmmoNeeded(t5) for iterValue in t5.ammo, nil, nil do if not v605[iterValue] then t5.ammo[iterValue] = nil end end end u101 = function(p33) local v608 = table.find(t5.items, p33) if v608 then table.remove(t5.items, v608) local v609 = weaponInfo.AmmoNeeded(t5) for iterValue in t5.ammo, nil, nil do if not v609[iterValue] then t5.ammo[iterValue] = nil end end else if p33 ~= t5.armor then return end t5.armor = false end p1.Sounds.Play("Close") u39 = true n3 = n2 n1 += 1 v608 = n1 v81.Text = "" task.delay(1.2, function() if v608 == n1 then save() end end) paintAll() end u109 = function(p34, p35) local v613 = weaponInfo.AmmoDef(p34) if not v613 then return end local v614 = t5.ammo[p34] or 0 if p35 > 0 then local v615 = weaponInfo.MaxAmmoBundles() if v614 >= v615 then p1.Sounds.Play("Error") return end v615 = weaponInfo.Cost(t5) + v613.points local v616 = weaponInfo.Budget() if v615 > v616 then p1.Sounds.Play("Error") ui.Shake(v82, 5) local toast = p1.Toast local lowerText = string.lower(v613.name) toast("Not enough points for more " .. lowerText, "warning") return end elseif v614 <= 0 then return end t5.ammo[p34] = math.max(0, v614 + p35) if t5.ammo[p34] == 0 then t5.ammo[p34] = nil end p1.Sounds.Play("Tick", { pitch = if p35 > 0 then 1.2 else 0.9 }) u39 = true n3 = n2 n1 += 1 v614 = n1 v81.Text = "" task.delay(1.2, function() if v614 == n1 then save() end end) paintAll() v613 = t8[p34] if v613 then ui.Bump(v613.count, 0.15) ui.Pop(v613.icon, 0.85, theme.Tween.PopSmall) end end local function denied(p36, p37, p38) p1.Sounds.Play("Error") if p36 then ui.Shake(p36.holder, 6) end ui.Shake(v82, 4) if p37 == "points" then local toast = p1.Toast local formattedText = string.format("Needs %d more point%s: remove something first", p38, if p38 == 1 then "" else "s") toast(formattedText, "warning") elseif p37 == "full" then p1.Toast("6 items max: remove one first", "warning") end end local function flashCard(p39) if not p39 then return end p39.flash.BackgroundTransparency = 0.7 local uiTween = ui.Tween local flash = p39.flash local tweenInfo3 = TweenInfo.new(0.35, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) uiTween(flash, tweenInfo3, { BackgroundTransparency = 1 }) ui.Pop(p39.icon, 0.85, theme.Tween.PopSmall) end u121 = function(p40, p41) local u630 = true if table.find(t5.items, p40) == nil then u630 = p40 == t5.armor end if u630 then u101(p40) return end local v631, v632, v633 = canAdd(p40) if not v631 and v632 == "locked" then u36 = p40 p1.Sounds.Play("Select") u158 = true p1.MenuManager.Open("Collection", if p40 then { focus = p40 } else nil) return end if not v631 then denied(p41, v632, v633) module._paintDetail() return end local v634 if weaponInfo.IsArmor(p40) then t5.armor = p40 v634 = u105 else table.insert(t5.items, p40) v634 = t7[#t5.items] local v635 = weaponInfo.AmmoOf(p40) local v636 = v635 if v636 then v636 = weaponInfo.AmmoDef(v635) end if v636 and (t5.ammo[v636.id] or 0) == 0 and weaponInfo.Cost(t5) + v636.points <= weaponInfo.Budget() then t5.ammo[v636.id] = 1 end end p1.Sounds.Play("Equip") u39 = true n3 = n2 n1 += 1 u630 = n1 v81.Text = "" task.delay(1.2, function() if u630 == n1 then save() end end) paintAll() flashCard(p41 or t11[p40]) ui.Pop(v634.tile, 1.18) end v141.Activated:Connect(function() local v637 = u36 if not v637 then return end if economy.IsLocked(v637) then u158 = true p1.MenuManager.Open("Collection", if v637 then { focus = v637 } else nil) return end u121(v637, t11[v637]) end) v102 = ui.new v90 = UDim2.fromOffset(60, 36) v54 = themeColors.Accent v103 = ui.Corner(theme.Radius.Pill) local v162 = v102("Frame", { Name = "Highlight", Size = v90, BackgroundColor3 = v54, ZIndex = 1, v103, Parent = v111 }) local function paintTabs(p42) for key, value in t9 do local u641: boolean = key == s1 value.btn.BackgroundTransparency = if u641 then 1 else 0.4 value.label.TextColor3 = if u641 then themeColors.Text else themeColors.TextDim if u641 then task.defer(function() local n1 = value.btn.AbsolutePosition - v111.AbsolutePosition local x = v111.AbsoluteSize.X local v859 = math.max(v35.Holder.Size.X.Offset - 44 - 400 - 18, 1) local v860 = math.max(x / v859, 0.01) local v861 = UDim2.fromOffset(n1.X / v860, n1.Y / v860) local v862 = UDim2.fromOffset(value.btn.AbsoluteSize.X / v860, value.btn.AbsoluteSize.Y / v860) local t27: {[any]: any} = { Position = v861, Size = v862 } if p42 then ui.Tween(v162, theme.Tween.Smooth, t27) return end v162.Position = t27.Position v162.Size = t27.Size end) end end end for iterFirst, iterSecond in weaponInfo.FILTERS, nil, nil do local uiNew = ui.new local id = iterSecond.id local v168 = UDim2.fromOffset(0, 36) local x = Enum.AutomaticSize.X local v170 = themeColors.Raised local v171 = ui.Corner(theme.Radius.Pill) local v172 = ui.Padding(0, 16, 0, 16) local v173 = uiNew("TextButton", { Name = id, Size = v168, AutomaticSize = x, BackgroundColor3 = v170, BackgroundTransparency = 0.4, LayoutOrder = iterFirst, ZIndex = 2, v171, v172, Parent = v34 }) v172 = ui.new v171 = UDim2.fromScale(0, 1) v170 = v172("TextLabel", { TextSize = 15, ZIndex = 2, Size = v171, AutomaticSize = Enum.AutomaticSize.X, Text = iterSecond.name, FontFace = themeFonts.Heavy, TextColor3 = themeColors.TextDim, Parent = v173 }) t9[iterSecond.id] = { btn = v173, label = v170 } v173.MouseEnter:Connect(function() if s1 ~= iterSecond.id then v173.BackgroundTransparency = 0.2 end end) v173.MouseLeave:Connect(function() v173.BackgroundTransparency = if s1 == iterSecond.id then 1 else 0.4 end) v173.Activated:Connect(function() if s1 ~= iterSecond.id then s1 = iterSecond.id p1.Sounds.Play("Tab") paintTabs(true) layoutGrid() staggerCards() task.defer(queueVisible) end end) end paintTabs() local u174: boolean = false local u175 = nil local u176 = nil v103 = ui.new v54 = themeColors.Accent v90 = ui.Corner(2) local v177 = v103("Frame", { Name = "InsertMarker", Size = UDim2.new(1, 0, 0, 3), BackgroundColor3 = v54, Visible = false, ZIndex = 8, v90, Parent = v98 }) local function rowIndexAt(p43) local n1 = p43.Y - v98.AbsolutePosition.Y local v644 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored = math.floor(n1 / v644 / (n6 + n7)) local v646 = math.max(#t5.items, 1) return (math.clamp(floored + 1, 1, v646)) end local function sweepGhosts() if u176 then u176:Destroy() u176 = nil end for iterFirst, iterSecond in p1.Canvas.Top:GetChildren() do if iterSecond.Name == "DragGhost" then iterSecond:Destroy() end end v177.Visible = false end local function pointOf(input) if input.UserInputType == Enum.UserInputType.Touch then return Vector2.new(input.Position.X, input.Position.Y) end return ui.PointerAbs() end local u181 = nil local function endPress(p45) local v651 = u175 u175 = nil local u652 = false if v651 ~= nil then u652 = v651.dragging end sweepGhosts() if not v651 then return end local t18: {[any]: any} = { commit = p45, dragging = u652, from = v651.index } local input = v651.input local n4 = (if input.UserInputType == Enum.UserInputType.Touch then Vector2.new(input.Position.X, input.Position.Y) else ui.PointerAbs()).Y - v98.AbsolutePosition.Y local v656 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored = math.floor(n4 / v656 / (n6 + n7)) local v658 = math.max(#t5.items, 1) t18.to = math.clamp(floored + 1, 1, v658) u181 = t18 if u652 then local v659 = v651.input local n5 = (if v659.UserInputType == Enum.UserInputType.Touch then Vector2.new(v659.Position.X, v659.Position.Y) else ui.PointerAbs()).Y - v98.AbsolutePosition.Y local v661 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored5 = math.floor(n5 / v661 / (n6 + n7)) local v663 = math.max(#t5.items, 1) local v664 = math.clamp(floored5 + 1, 1, v663) if p45 and v664 ~= v651.index and t5.items[v651.index] then local v665 = table.remove(t5.items, v651.index) table.insert(t5.items, v664, v665) p1.Sounds.Play("Equip") u39 = true n3 = n2 n1 += 1 v665 = n1 v81.Text = "" task.delay(1.2, function() if v665 == n1 then save() end end) paintAll() ui.Pop(t7[v664].tile, 1.18) return end paintAll() elseif p45 and not v651.armed then local v666 = t5.items[v651.index] if v666 then u36 = v666 module._paintDetail() return end else paintAll() end end local function insideGui(p46, p47) local absolutePosition = p46.AbsolutePosition local absoluteSize = p46.AbsoluteSize return p47.X >= absolutePosition.X and p47.X <= absolutePosition.X + absoluteSize.X and p47.Y >= absolutePosition.Y and p47.Y <= absolutePosition.Y + absoluteSize.Y end local function liftGhost(p48) sweepGhosts() p48.dragging = true local v672 = t5.items[p48.index] local uiNew = ui.new local v674 = UDim2.fromOffset(320, n6) local themeColorsRaised = themeColors.Raised local v676 = ui.Corner(12) local v677 = ui.Stroke(themeColors.Accent, 2, 0) local parent = uiNew("Frame", { Name = "DragGhost", AnchorPoint = Vector2.new(0, 0.5), Size = v674, BackgroundColor3 = themeColorsRaised, BackgroundTransparency = 0.05, ZIndex = 50, v676, v677, Parent = p1.Canvas.Top }) local v679 = ui.new v674 = UDim2.fromOffset(n6 - 8, n6 - 8) v676 = { AnchorPoint = Vector2.new(0, 0.5), Position = UDim2.new(0, 4, 0.5, 0), Size = v674 } local v680 = weaponInfo.Get(v672) v676.BackgroundColor3 = (v680 and t1[v680.category] or themeColors.Accent):Lerp(themeColors.Panel, 0.6) v676.ZIndex = 51 v676[1] = ui.Corner(9) v676.Parent = parent local v681 = v679("Frame", v676) local v682 = ui.new v674 = UDim2.fromScale(1, 1) local v683 = v682("Frame", { ZIndex = 52, Size = v674, Parent = v681 }) weaponIcon.Set(v683, v672, { outline = false, glow = false }) local v684 = ui.new v680 = UDim2.fromOffset(n6 + 8, 0) local uDim2 = UDim2.new(1, -(n6 + 16), 1, 0) local v686 = weaponInfo.Name(v672) v684("TextLabel", { TextSize = 17, ZIndex = 51, Position = v680, Size = uDim2, Text = v686, FontFace = themeFonts.Bold, TextXAlignment = Enum.TextXAlignment.Left, Parent = parent }) u176 = parent t7[p48.index].frame.BackgroundTransparency = 0.85 end local function moveGhost(p49, p50) local v689 = u176 if not v689 then return end local top = p1.Canvas.Top local v691 = math.max(ui.Scale, 0.01) local n1 = (p50 - top.AbsolutePosition) / v691 v689.Position = UDim2.fromOffset(n1.X - 40, n1.Y) local n2 = p50.Y - v98.AbsolutePosition.Y local v694 = math.max(v98.AbsoluteSize.X / 400, 0.01) v694 = math.floor(n2 / v694 / (n6 + n7)) local v695 = math.max(#t5.items, 1) n1 = math.clamp(v694 + 1, 1, v695) v177.Visible = n1 ~= p49.index v177.Position = UDim2.fromOffset(0, if n1 < p49.index then (n1 - 1) * (n6 + n7) - 4 else n1 * (n6 + n7) - 4) end for key, value in t7 do value.frame.InputBegan:Connect(function(input) local userInputType = input.UserInputType if userInputType == Enum.UserInputType.MouseButton1 or userInputType == Enum.UserInputType.Touch then if input.UserInputState ~= Enum.UserInputState.Begin or u175 and input == u175.input then return end if not t5.items[key] or not v35.IsOpen then return end local v698 = if input.UserInputType == Enum.UserInputType.Touch then Vector2.new(input.Position.X, input.Position.Y) else ui.PointerAbs() if value.remove.Visible then local remove = value.remove local removeAbsolutePosition = remove.AbsolutePosition local removeAbsoluteSize = remove.AbsoluteSize if v698.X >= removeAbsolutePosition.X and v698.X <= removeAbsolutePosition.X + removeAbsoluteSize.X and v698.Y >= removeAbsolutePosition.Y and v698.Y <= removeAbsolutePosition.Y + removeAbsoluteSize.Y then return end end if u175 then local v702 = u175 u175 = nil local u703 = false if v702 ~= nil then u703 = v702.dragging end sweepGhosts() if v702 then local t19: {[any]: any} = { commit = false, dragging = u703, from = v702.index } local input = v702.input local n1 = (if input.UserInputType == Enum.UserInputType.Touch then Vector2.new(input.Position.X, input.Position.Y) else ui.PointerAbs()).Y - v98.AbsolutePosition.Y local v707 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored = math.floor(n1 / v707 / (n6 + n7)) local v709 = math.max(#t5.items, 1) t19.to = math.clamp(floored + 1, 1, v709) u181 = t19 if u703 then local v710 = v702.input local vector2 if v710.UserInputType == Enum.UserInputType.Touch then vector2 = Vector2.new(v710.Position.X, v710.Position.Y) else vector2 = ui.PointerAbs() end local n2 = vector2.Y - v98.AbsolutePosition.Y local v713 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored6 = math.floor(n2 / v713 / (n6 + n7)) local v715 = math.max(#t5.items, 1) math.clamp(floored6 + 1, 1, v715) end paintAll() end end local v716 = os.clock() local t20: {[any]: any} = { armed = false, dragging = false, index = key, input = input, start = v698, at = v716 } v716 = true if userInputType ~= Enum.UserInputType.Touch then v716 = ui.Touch or u174 end t20.hold = v716 u175 = t20 return end end) end userInputService.InputChanged:Connect(function(input: InputObject) local v719 = u175 if not v719 then return end local u720: boolean = v719.input.UserInputType == Enum.UserInputType.Touch if not u720 then if input.UserInputType ~= Enum.UserInputType.MouseMovement then return end elseif input ~= v719.input then return end local v721 = if u720 then v719.input else input local v722 = if v721.UserInputType == Enum.UserInputType.Touch then Vector2.new(v721.Position.X, v721.Position.Y) else ui.PointerAbs() local magnitude = (v722 - v719.start).Magnitude if not v719.dragging then if v719.hold then if not v719.armed then if magnitude > 12 then local v724 = u175 u175 = nil local u725 = false if v724 ~= nil then u725 = v724.dragging end sweepGhosts() if not v724 then return end local t21: {[any]: any} = { commit = false, dragging = u725, from = v724.index } local input = v724.input local n1 = (if input.UserInputType == Enum.UserInputType.Touch then Vector2.new(input.Position.X, input.Position.Y) else ui.PointerAbs()).Y - v98.AbsolutePosition.Y local v729 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored = math.floor(n1 / v729 / (n6 + n7)) local v731 = math.max(#t5.items, 1) t21.to = math.clamp(floored + 1, 1, v731) u181 = t21 if u725 then local v732 = v724.input local vector2 if v732.UserInputType == Enum.UserInputType.Touch then vector2 = Vector2.new(v732.Position.X, v732.Position.Y) else vector2 = ui.PointerAbs() end local n2 = vector2.Y - v98.AbsolutePosition.Y local v735 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored7 = math.floor(n2 / v735 / (n6 + n7)) local v737 = math.max(#t5.items, 1) math.clamp(floored7 + 1, 1, v737) paintAll() return end paintAll() return end return end if magnitude > 6 then liftGhost(v719) end elseif magnitude > 12 then liftGhost(v719) end end if v719.dragging then moveGhost(v719, v722) end end) v90 = function(input) local v739 = u175 if not v739 then return end if v739.input.UserInputType ~= Enum.UserInputType.Touch then if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end elseif input ~= v739.input then return end endPress(true) end userInputService.InputEnded:Connect(v90) userInputService.TouchEnded:Connect(v90) userInputService.WindowFocusReleased:Connect(function() local v740 = u175 u175 = nil local u741 = false if v740 ~= nil then u741 = v740.dragging end sweepGhosts() if not v740 then return end local t22: {[any]: any} = { commit = false, dragging = u741, from = v740.index } local input = v740.input local n1 = (if input.UserInputType == Enum.UserInputType.Touch then Vector2.new(input.Position.X, input.Position.Y) else ui.PointerAbs()).Y - v98.AbsolutePosition.Y local v745 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored = math.floor(n1 / v745 / (n6 + n7)) local v747 = math.max(#t5.items, 1) t22.to = math.clamp(floored + 1, 1, v747) u181 = t22 if u741 then local v748 = v740.input local vector2 if v748.UserInputType == Enum.UserInputType.Touch then vector2 = Vector2.new(v748.Position.X, v748.Position.Y) else vector2 = ui.PointerAbs() end local n2 = vector2.Y - v98.AbsolutePosition.Y local v751 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored8 = math.floor(n2 / v751 / (n6 + n7)) local v753 = math.max(#t5.items, 1) math.clamp(floored8 + 1, 1, v753) paintAll() return end paintAll() end) ui.Every(v98, 0.1, function() local v754 = u175 if not v754 then if u176 or v177.Visible then sweepGhosts() paintAll() end return end local userInputState = v754.input.UserInputState if v35.IsOpen and userInputState ~= Enum.UserInputState.Cancel then if userInputState == Enum.UserInputState.End or v754.input.UserInputType == Enum.UserInputType.MouseButton1 and not userInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then endPress(true) elseif v754.hold and not v754.armed and os.clock() - v754.at >= 0.28 then v754.armed = true t7[v754.index].frame.BackgroundTransparency = 0.12 ui.Bump(t7[v754.index].tile, 0.08) p1.Sounds.Play("Select") end return end local v756 = u175 u175 = nil local u757 = false if v756 ~= nil then u757 = v756.dragging end sweepGhosts() if not v756 then return end local t23: {[any]: any} = { commit = false, dragging = u757, from = v756.index } local input = v756.input local n1 = (if input.UserInputType == Enum.UserInputType.Touch then Vector2.new(input.Position.X, input.Position.Y) else ui.PointerAbs()).Y - v98.AbsolutePosition.Y local v761 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored = math.floor(n1 / v761 / (n6 + n7)) local v763 = math.max(#t5.items, 1) t23.to = math.clamp(floored + 1, 1, v763) u181 = t23 if u757 then local v764 = v756.input local vector2 if v764.UserInputType == Enum.UserInputType.Touch then vector2 = Vector2.new(v764.Position.X, v764.Position.Y) else vector2 = ui.PointerAbs() end local n2 = vector2.Y - v98.AbsolutePosition.Y local v767 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored9 = math.floor(n2 / v767 / (n6 + n7)) local v769 = math.max(#t5.items, 1) math.clamp(floored9 + 1, 1, v769) paintAll() return end paintAll() end) function p1.Debug.drag(p54, p55) if p54 == "hold" then u174 = p55 == true end local n1: number = 0 for iterFirst, iterSecond in p1.Canvas.Top:GetChildren() do if iterSecond.Name == "DragGhost" then n1 += 1 end end local t24: {[any]: any} = { press = if u175 == nil then false else true } local u776 = false if u175 ~= nil then u776 = u175.dragging end t24.dragging = u776 u776 = false if u175 ~= nil then u776 = u175.armed end t24.armed = u776 t24.ghosts = n1 t24.lastEnd = u181 return t24 end function p1.Debug.gear(p56, p57, p58) if p56 == "toggle" then u36 = p57 u121(p57, t11[p57]) elseif p56 == "set" and type(p57) == "table" then local v780, v781, v782 = weaponInfo.Validate(p57) t5 = copyDraft(v782) u36 = t5.items[1] or u36 u39 = true n3 = n2 n1 += 1 local v783: number = n1 v81.Text = "" task.delay(1.2, function() if v783 == n1 then save() end end) paintAll() elseif p56 == "ammo" then u109(p57, p58) elseif p56 == "filter" then s1 = p57 paintTabs(true) layoutGrid() staggerCards() task.defer(queueVisible) elseif p56 == "hover" then u37 = p57 u36 = p57 or u36 paintAll() elseif p56 == "slot" then u46(p57) end local items = t5.items local armor = t5.armor local ammo = t5.ammo local v787 = weaponInfo.Cost(t5) local text = v81.Text local v789 = n2 local v790 = state.ActiveLoadout() local v791 = state.LoadoutSlotCount() return { items = items, armor = armor, ammo = ammo, cost = v787, saved = text, slot = v789, active = v790, slots = v791 } end local u188: boolean = false state.ProfileChanged:Connect(function() if not v35.IsOpen then return end for key, value in t4 do local v794 = state.LoadoutCustomName(key) if value == v794 then t4[key] = nil end end if u39 then u45() return end n2 = u43 or state.ActiveLoadout() t5 = copyDraft(state.LoadoutSlot(n2)) paintAll() end) p1.MenuManager.Register("Loadout", { open = function(p59) layoutWindow() if not u188 then u188 = true for iterFirst, iterSecond in weaponInfo.AllItems() do if iterSecond.category ~= "ammo" then local v798 = makeCard(iterSecond) table.insert(t10, v798) t11[iterSecond.id] = v798 end end end n2 = state.ActiveLoadout() u43 = nil local v799, v800, v801 = weaponInfo.Validate(state.LoadoutSlot(n2)) t5 = copyDraft(v801) u39 = false local v802 = t5.items[1] if not v802 then v802 = weaponInfo.DefaultLoadout().items[1] end u36 = v802 local v803 = type(p59) == "table" and type(p59.focus) == "string" and weaponInfo.Get(p59.focus) and p59.focus or nil if v803 then u36 = v803 end if v803 and s1 ~= "all" then s1 = "all" end u37 = nil u153 = nil v81.Text = "" if not u6 then local t25: {[any]: any} = {} pcall(function() if textChatService.ChatVersion == Enum.ChatVersion.TextChatService then local chatWindowConfiguration: Instance = textChatService:FindFirstChildOfClass("ChatWindowConfiguration") local chatInputBarConfiguration: Instance = textChatService:FindFirstChildOfClass("ChatInputBarConfiguration") if chatWindowConfiguration then t25.window = chatWindowConfiguration.Enabled chatWindowConfiguration.Enabled = false end if chatInputBarConfiguration then t25.bar = chatInputBarConfiguration.Enabled chatInputBarConfiguration.Enabled = false return end else t25.core = starterGui:GetCoreGuiEnabled(Enum.CoreGuiType.Chat) starterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, false) end end) u6 = t25 end v35:Open() task.defer(function() layoutGrid() paintAll() paintTabs() staggerCards() queueVisible() local v866 = v803 and t11[v803] if v866 then local x = v113.AbsoluteSize.X local v868 = math.max(v35.Holder.Size.X.Offset - 44 - 400 - 18, 1) local v869 = math.max(x / v868, 0.01) local v870 = math.max(0, v866.y - 8) local v871 = math.max(0, v113.AbsoluteCanvasSize.Y - v113.AbsoluteWindowSize.Y) local vector2New = Vector2.new local v873 = math.min(v870 * v869, v871) v113.CanvasPosition = vector2New(0, v873) queueVisible() task.delay(0.3, function() flashCard(v866) end) end end) end, close = function(p60) local v806 = u6 if v806 then u6 = nil pcall(function() local chatWindowConfiguration: Instance = textChatService:FindFirstChildOfClass("ChatWindowConfiguration") local chatInputBarConfiguration: Instance = textChatService:FindFirstChildOfClass("ChatInputBarConfiguration") if chatWindowConfiguration and v806.window ~= nil then chatWindowConfiguration.Enabled = v806.window end if chatInputBarConfiguration and v806.bar ~= nil then chatInputBarConfiguration.Enabled = v806.bar end if v806.core ~= nil then starterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, v806.core) end end) end if u39 then local v807 = copyDraft(t5) u39 = false n1 += 1 task.spawn(save, v807, n3) end if #t5.items == 0 then p1.Toast("A loadout needs at least one item. Your last one was kept.", "info") end v806 = u175 u175 = nil local u808 = false if v806 ~= nil then u808 = v806.dragging end sweepGhosts() if v806 then local t26: {[any]: any} = { commit = false, dragging = u808, from = v806.index } local input = v806.input local n4 = (if input.UserInputType == Enum.UserInputType.Touch then Vector2.new(input.Position.X, input.Position.Y) else ui.PointerAbs()).Y - v98.AbsolutePosition.Y local v812 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored = math.floor(n4 / v812 / (n6 + n7)) local v814 = math.max(#t5.items, 1) t26.to = math.clamp(floored + 1, 1, v814) u181 = t26 if u808 then local v815 = v806.input local vector2 if v815.UserInputType == Enum.UserInputType.Touch then vector2 = Vector2.new(v815.Position.X, v815.Position.Y) else vector2 = ui.PointerAbs() end local n2 = vector2.Y - v98.AbsolutePosition.Y local v818 = math.max(v98.AbsoluteSize.X / 400, 0.01) local floored10 = math.floor(n2 / v818 / (n6 + n7)) local v820 = math.max(#t5.items, 1) math.clamp(floored10 + 1, 1, v820) end paintAll() end v35:Close(p60) end, select = function() local v821 = u36 and t11[u36] if v821 and v821.holder.Visible then return v821.holder end for key, value in t10 do if value.holder.Visible then return value.holder end end return nil end }) state.PlayerStateChanged:Connect(function(p61) if p61 == "Match" and p1.MenuManager.IsOpen("Loadout") then p1.MenuManager.Close("Loadout", true) end end) v35.Closed:Connect(restoreChat) economy.Changed:Connect(function() if v35.IsOpen and u188 then layoutGrid(true) queueVisible() for key, value in t10 do module._paintCard(value) end module._paintDetail() end end) economy.Event:Connect(function(p62, _) if p62 == "Unlocked" and v35.IsOpen then task.delay(0.2, function() paintAll() end) end end) local u189: boolean = false economy.CelebrationChanged:Connect(function(p64) if p64 and v35.IsOpen and not u189 then u189 = true v35.Holder.Visible = false elseif not p64 and u189 then u189 = false v35.Holder.Visible = true if v35.IsOpen then paintAll() flashCard(u36 and t11[u36] or nil) end end end) v90 = function() if v35.IsOpen then layoutWindow() v35.Refit() task.defer(function() layoutGrid() paintAll() paintTabs() queueVisible() end) end end ui.LayoutChanged:Connect(v90) ui.OnResize(v90) end return module