setthreadidentity(2) local xkqw9m3vbn = game.Players.LocalPlayer local jf7tz2rkpq = require(game.ReplicatedFirst.Modules.Data.Player) local bv8nm4wxcs = require(game.ReplicatedFirst.Modules.GameManager.Run) local hy6qp1nzdt = require(game.ReplicatedStorage.ContentModule) local rk3wm9bxfj = require(game.ReplicatedFirst.Modules.Util.Cursor) repeat task.wait() until hy6qp1nzdt.Items and hy6qp1nzdt.Prices local tz9fn2vcxq = jf7tz2rkpq:AwaitData() local gw4mk7rbpn = {} local qz8xv3hmtk local dn5rb9wtfc, pj2kn8mxvz, uc7qb4zwtm, lh3xt6ynfp, nm9wk2vbqr dn5rb9wtfc = hookfunction(bv8nm4wxcs._setUp, newcclosure(function(vf6qx8rnjt, yk4mb3wzpq) if tz9fn2vcxq and tz9fn2vcxq.Inventory then vf6qx8rnjt.SpecInfo.CursorColor = tz9fn2vcxq.Inventory.CursorColors.Equipped or vf6qx8rnjt.SpecInfo.CursorColor vf6qx8rnjt.SpecInfo.BlockMesh = tz9fn2vcxq.Inventory.BlockMeshes.Equipped or vf6qx8rnjt.SpecInfo.BlockMesh vf6qx8rnjt.SpecInfo.BlockColor = tz9fn2vcxq.Inventory.BlockColors.Equipped or vf6qx8rnjt.SpecInfo.BlockColor vf6qx8rnjt.SpecInfo.NoteEffect = tz9fn2vcxq.Inventory.NoteEffects.Equipped or vf6qx8rnjt.SpecInfo.NoteEffect vf6qx8rnjt.SpecInfo.MissSound = tz9fn2vcxq.Inventory.MissSounds.Equipped or vf6qx8rnjt.SpecInfo.MissSound vf6qx8rnjt.SpecInfo.HitSound = tz9fn2vcxq.Inventory.HitSounds.Equipped or vf6qx8rnjt.SpecInfo.HitSound vf6qx8rnjt.SpecInfo.Space = tz9fn2vcxq.Inventory.Spaces.Equipped or vf6qx8rnjt.SpecInfo.Space end return dn5rb9wtfc(vf6qx8rnjt, yk4mb3wzpq) end)) local xr5qb8nvkm = getmetatable(jf7tz2rkpq).__index pj2kn8mxvz = hookfunction(xr5qb8nvkm.GetData, newcclosure(function(wn7qx3tbmf, cz4rb9vkpx) local hq6xt2wnbm = pj2kn8mxvz(wn7qx3tbmf, cz4rb9vkpx) if hq6xt2wnbm then hq6xt2wnbm.Inventory = tz9fn2vcxq.Inventory hq6xt2wnbm.Settings = tz9fn2vcxq.Settings hq6xt2wnbm.MemberExpire = tz9fn2vcxq.MemberExpire end return hq6xt2wnbm end)) uc7qb4zwtm = hookfunction(xr5qb8nvkm.AwaitData, newcclosure(function(wn7qx3tbmf) local hq6xt2wnbm = uc7qb4zwtm(wn7qx3tbmf) if hq6xt2wnbm then hq6xt2wnbm.Inventory = tz9fn2vcxq.Inventory hq6xt2wnbm.Settings = tz9fn2vcxq.Settings hq6xt2wnbm.MemberExpire = tz9fn2vcxq.MemberExpire end return hq6xt2wnbm end)) lh3xt6ynfp = hookfunction(xr5qb8nvkm.HasSSM, newcclosure(function() return true end)) local function bm9wq5txkr(fj4nz8vxqb) if type(fj4nz8vxqb) ~= 'table' then return fj4nz8vxqb end local kp7xt3wnbm = {} for qv2mb9fxzn, ry5kn4wqtx in next, fj4nz8vxqb, nil do kp7xt3wnbm[bm9wq5txkr(qv2mb9fxzn)] = bm9wq5txkr(ry5kn4wqtx) end setmetatable(kp7xt3wnbm, bm9wq5txkr(getmetatable(fj4nz8vxqb))) return kp7xt3wnbm end local function zx3qn7wmbt(nv6rk9xtbq, wf8qm4znkx) if not hy6qp1nzdt.Items[wf8qm4znkx] then return end local yt5nb8vxmq = wf8qm4znkx == "Maps" and nv6rk9xtbq[wf8qm4znkx] or (nv6rk9xtbq[wf8qm4znkx] and nv6rk9xtbq[wf8qm4znkx].Owned) if not yt5nb8vxmq then return end for xb4qm7nzwk in pairs(hy6qp1nzdt.Items[wf8qm4znkx]) do if type(xb4qm7nzwk) == "number" and not table.find(yt5nb8vxmq, xb4qm7nzwk) then table.insert(yt5nb8vxmq, xb4qm7nzwk) end end end local cw6qx9bnmk = {} if tz9fn2vcxq and tz9fn2vcxq.Inventory then gw4mk7rbpn = bm9wq5txkr(tz9fn2vcxq) for _, hj3nq8vxbt in ipairs(tz9fn2vcxq.Inventory.Maps) do cw6qx9bnmk[hj3nq8vxbt] = true end local rp9wn5bxtq = {"BlockColors","CursorColors","BlockMeshes","HitSounds","MissSounds","NoteEffects","Spaces","Nameplates","CursorIcons","Maps"} for _, qk7mb4xznw in ipairs(rp9wn5bxtq) do zx3qn7wmbt(tz9fn2vcxq.Inventory, qk7mb4xznw) end end for _, v in next, getgc(true) do if typeof(v) == 'table' and rawget(v, "MemberExpire") then v.MemberExpire = 9e9 end end for _, v in ipairs(getgc()) do if typeof(v) == 'function' and getinfo(v).name == "OnPlayerDataUpdated" then qz8xv3hmtk = v end end if qz8xv3hmtk and tz9fn2vcxq and gw4mk7rbpn then qz8xv3hmtk(tz9fn2vcxq, nil, gw4mk7rbpn, nil) end for _, v in ipairs(getgc(true)) do if typeof(v) == 'table' and rawget(v, "TryStartGame") then local mv5xq8bnwk = v.TryStartGame v.TryStartGame = function(fq3nb7xwzm, dh9xk2vbtq, ...) if fq3nb7xwzm and fq3nb7xwzm > 0 and not cw6qx9bnmk[fq3nb7xwzm] and hy6qp1nzdt.Items.Maps and hy6qp1nzdt.Items.Maps[fq3nb7xwzm] then local wt6qx4bnmk = hy6qp1nzdt.Items.Maps[fq3nb7xwzm] dh9xk2vbtq = { Data = wt6qx4bnmk.Data, Name = wt6qx4bnmk.Name, Mapper = wt6qx4bnmk.Mapper, Difficulty = wt6qx4bnmk.Difficulty, Rarity = wt6qx4bnmk.Rarity or 0, Paid = false, Icon = wt6qx4bnmk.Icon or "", } fq3nb7xwzm = -1 end return mv5xq8bnwk(fq3nb7xwzm, dh9xk2vbtq, ...) end break end end local function kn4wq7xbmz() if not tz9fn2vcxq or not tz9fn2vcxq.Settings then return end local vb8qx3nwmk = hy6qp1nzdt.Items.CursorIcons and hy6qp1nzdt.Items.CursorIcons[tz9fn2vcxq.Inventory.CursorIcons.Equipped] local xt5mb9nwqk = tz9fn2vcxq.Settings.CursorIcon local qr7nx4bwzm = (xt5mb9nwqk and xt5mb9nwqk ~= 2666475169) and xt5mb9nwqk or (vb8qx3nwmk and vb8qx3nwmk.Icon or 2666475169) for _, jm6qx9bntw in ipairs(xkqw9m3vbn.PlayerGui:GetChildren()) do if jm6qx9bntw:IsA("SurfaceGui") and jm6qx9bntw.Name == "GUI" then local wz4qn8bxmk = jm6qx9bntw:FindFirstChild("ImageLabel") if wz4qn8bxmk then wz4qn8bxmk.Image = "rbxthumb://type=Asset&id=" .. qr7nx4bwzm .. "&w=420&h=420&fmt=png" end end end if tz9fn2vcxq.Settings.CursorTrail then rk3wm9bxfj:Trail("GUI") end end nm9wk2vbqr = hookmetamethod(game, '__namecall', function(self, ...) local fy8qx3nwbm = getnamecallmethod() if fy8qx3nwbm == 'InvokeServer' then if self.Name == 'Equip' then local hk7qb4xnwm = {...} local pt3nx8wbqm = tz9fn2vcxq.Inventory[hk7qb4xnwm[1]] if pt3nx8wbqm then pt3nx8wbqm.Equipped = hk7qb4xnwm[2] or 1 end local zv5qx9nbwm = nm9wk2vbqr(self, ...) task.defer(function() if qz8xv3hmtk then qz8xv3hmtk(tz9fn2vcxq, nil, tz9fn2vcxq, nil) end kn4wq7xbmz() end) return zv5qx9nbwm end if self.Name == 'Setting' then local hk7qb4xnwm = {...} local xb9qn3wmkz, ry6qt4bnwx = hk7qb4xnwm[1], hk7qb4xnwm[2] if tz9fn2vcxq and tz9fn2vcxq.Settings then if ry6qt4bnwx == nil then tz9fn2vcxq.Settings[xb9qn3wmkz] = not tz9fn2vcxq.Settings[xb9qn3wmkz] elseif xb9qn3wmkz == 'CursorIcon' or xb9qn3wmkz == 'AvatarIcon' then tz9fn2vcxq.Settings[xb9qn3wmkz] = tonumber(ry6qt4bnwx) or ry6qt4bnwx else tz9fn2vcxq.Settings[xb9qn3wmkz] = ry6qt4bnwx end end task.defer(function() if qz8xv3hmtk then qz8xv3hmtk(tz9fn2vcxq, nil, tz9fn2vcxq, nil) end kn4wq7xbmz() end) return nm9wk2vbqr(self, xb9qn3wmkz, tz9fn2vcxq.Settings[xb9qn3wmkz]) end end return nm9wk2vbqr(self, ...) end) task.defer(kn4wq7xbmz) setthreadidentity(8)