[{"data":1,"prerenderedAt":5726},["ShallowReactive",2],{"navigation":3,"\u002Fexamples\u002Fplayer-systems":151,"\u002Fexamples\u002Fplayer-systems-surround":5721},[4,26,48,84,102,129],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11,16,21],{"title":5,"path":6,"stem":7,"icon":10},"i-lucide-rocket",{"title":12,"path":13,"stem":14,"icon":15},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":17,"path":18,"stem":19,"icon":20},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",{"title":22,"path":23,"stem":24,"icon":25},"First Steps","\u002Fgetting-started\u002Ffirst-steps","1.getting-started\u002F4.first-steps","i-lucide-footprints",{"title":27,"path":28,"stem":29,"children":30,"icon":32},"Connection","\u002Fconnection","2.connection\u002F1.index",[31,33,38,43],{"title":27,"path":28,"stem":29,"icon":32},"i-lucide-server",{"title":34,"path":35,"stem":36,"icon":37},"Basic Connection","\u002Fconnection\u002Fbasic","2.connection\u002F2.basic","i-lucide-plug",{"title":39,"path":40,"stem":41,"icon":42},"Connection Options","\u002Fconnection\u002Foptions","2.connection\u002F3.options","i-lucide-settings-2",{"title":44,"path":45,"stem":46,"icon":47},"Database Operations","\u002Fconnection\u002Fdatabase","2.connection\u002F4.database","i-lucide-database",{"title":49,"path":50,"stem":51,"children":52,"icon":47},"CRUD Operations","\u002Fcrud-operations","3.crud-operations\u002F1.index",[53,54,59,64,69,74,79],{"title":49,"path":50,"stem":51,"icon":47},{"title":55,"path":56,"stem":57,"icon":58},"Insert Operations","\u002Fcrud-operations\u002Finsert","3.crud-operations\u002F2.insert","i-lucide-plus-square",{"title":60,"path":61,"stem":62,"icon":63},"Query Operations","\u002Fcrud-operations\u002Fquery","3.crud-operations\u002F3.query","i-lucide-search",{"title":65,"path":66,"stem":67,"icon":68},"Update Operations","\u002Fcrud-operations\u002Fupdate","3.crud-operations\u002F4.update","i-lucide-edit",{"title":70,"path":71,"stem":72,"icon":73},"Delete Operations","\u002Fcrud-operations\u002Fdelete","3.crud-operations\u002F5.delete","i-lucide-trash",{"title":75,"path":76,"stem":77,"icon":78},"Async Operations","\u002Fcrud-operations\u002Fasync","3.crud-operations\u002F6.async","i-lucide-cpu",{"title":80,"path":81,"stem":82,"icon":83},"Query Operators","\u002Fcrud-operations\u002Foperators","3.crud-operations\u002F7.operators","i-lucide-filter",{"title":85,"path":86,"stem":87,"children":88,"icon":90},"Advanced Features","\u002Fadvanced","4.advanced\u002F1.index",[89,91,96],{"title":85,"path":86,"stem":87,"icon":90},"i-lucide-zap",{"title":92,"path":93,"stem":94,"icon":95},"Aggregation Pipelines","\u002Fadvanced\u002Faggregation","4.advanced\u002F2.aggregation","i-lucide-bar-chart-3",{"title":97,"path":98,"stem":99,"children":100,"icon":63},"Manage Indexes","\u002Fadvanced\u002Findexes","4.advanced\u002F3.indexes",[101],{"title":97,"path":98,"stem":99,"icon":63},{"title":103,"path":104,"stem":105,"children":106,"icon":108},"Examples","\u002Fexamples","5.examples\u002F1.index",[107,109,114,119,124],{"title":103,"path":104,"stem":105,"icon":108},"i-lucide-code",{"title":110,"path":111,"stem":112,"icon":113},"Basic Examples","\u002Fexamples\u002Fbasic","5.examples\u002F2.basic","i-lucide-book-open",{"title":115,"path":116,"stem":117,"icon":118},"Player Systems","\u002Fexamples\u002Fplayer-systems","5.examples\u002F3.player-systems","i-lucide-users",{"title":120,"path":121,"stem":122,"icon":123},"Game Systems","\u002Fexamples\u002Fgame-systems","5.examples\u002F4.game-systems","i-lucide-gamepad-2",{"title":125,"path":126,"stem":127,"icon":128},"Server Administration","\u002Fexamples\u002Fadministration","5.examples\u002F5.administration","i-lucide-shield",{"title":130,"path":131,"stem":132,"children":133,"icon":113},"API Reference","\u002Fapi-reference","6.api-reference\u002F1.index",[134,135,139,143,147],{"title":130,"path":131,"stem":132,"icon":113},{"title":136,"path":137,"stem":138},"MongoDB Global","\u002Fapi-reference\u002Fglobal","6.api-reference\u002F2.global",{"title":140,"path":141,"stem":142},"MongoDBClient","\u002Fapi-reference\u002Fclient","6.api-reference\u002F3.client",{"title":144,"path":145,"stem":146},"MongoDBDatabase","\u002Fapi-reference\u002Fdatabase","6.api-reference\u002F4.database",{"title":148,"path":149,"stem":150},"MongoDBCollection","\u002Fapi-reference\u002Fcollection","6.api-reference\u002F5.collection",{"id":152,"title":115,"body":153,"description":5714,"extension":5715,"links":5716,"meta":5717,"navigation":5718,"path":116,"seo":5719,"stem":117,"__hash__":5720},"docs\u002F5.examples\u002F3.player-systems.md",{"type":154,"value":155,"toc":5708},"minimark",[156,163,167,170,175,178,2259,2263,4298,4302,5684,5688,5704],[157,158,159],"warning",{},[160,161,162],"p",{},"These examples are AI-generated and has not been reviewed for accuracy. Use them as a starting point and verify correctness before deploying in production.",[164,165,115],"h1",{"id":166},"player-systems",[160,168,169],{},"Complete examples for managing player data in Garry's Mod.",[171,172,174],"h2",{"id":173},"player-data-system","Player Data System",[160,176,177],{},"A complete player data management system:",[179,180,185],"pre",{"className":181,"code":182,"language":183,"meta":184,"style":184},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","--[[\n    Player Data System\n    Handles player registration, loading, and saving\n]]\n\nlocal PlayerData = {}\nPlayerData.client = nil\nPlayerData.db = nil\n\n-- Initialize the system\nfunction PlayerData.Initialize(connectionString, dbName)\n    PlayerData.client = MongoDB.Client(connectionString)\n    if not PlayerData.client then\n        print(\"[PlayerData] Failed to connect to MongoDB!\")\n        return false\n    end\n\n    PlayerData.db = PlayerData.client:Database(dbName)\n\n    -- Setup indexes\n    local players = PlayerData.db:Collection(\"players\")\n    players:CreateIndex({ steamid = 1 }, true, \"steamid_unique\")\n    players:CreateIndex({ last_login = -1 }, false, \"recent_login\")\n\n    print(\"[PlayerData] System initialized\")\n    return true\nend\n\n-- Get player collection\nfunction PlayerData.GetCollection()\n    return PlayerData.db:Collection(\"players\")\nend\n\n-- Load player data\nfunction PlayerData.Load(steamid, callback)\n    local col = PlayerData.GetCollection()\n\n    col:FindOneAsync({ steamid = steamid }, function(err, data)\n        if err then\n            print(\"[PlayerData] Load error:\", err)\n            callback(nil, err)\n            return\n        end\n\n        if data then\n            -- Update last login\n            col:UpdateOneAsync(\n                { steamid = steamid },\n                { [\"$set\"] = { last_login = os.time() } },\n                function() end\n            )\n            callback(data, nil)\n        else\n            -- Create new player\n            local newPlayer = {\n                steamid = steamid,\n                level = 1,\n                experience = 0,\n                credits = 1000,\n                playtime = 0,\n                created_at = os.time(),\n                last_login = os.time(),\n                stats = {\n                    kills = 0,\n                    deaths = 0,\n                    assists = 0\n                },\n                settings = {\n                    notifications = true,\n                    music = true\n                },\n                inventory = {}\n            }\n\n            col:InsertOneAsync(newPlayer, function(err, id)\n                if err then\n                    callback(nil, err)\n                else\n                    newPlayer._id = id\n                    callback(newPlayer, nil)\n                end\n            end)\n        end\n    end)\nend\n\n-- Save player data\nfunction PlayerData.Save(steamid, data, callback)\n    local col = PlayerData.GetCollection()\n\n    col:UpdateOneAsync(\n        { steamid = steamid },\n        { [\"$set\"] = data },\n        function(err, modified)\n            if callback then\n                callback(err, modified > 0)\n            end\n        end\n    )\nend\n\n-- Update specific fields\nfunction PlayerData.Update(steamid, updates, callback)\n    local col = PlayerData.GetCollection()\n\n    col:UpdateOneAsync(\n        { steamid = steamid },\n        updates,\n        function(err, modified)\n            if callback then\n                callback(err, modified > 0)\n            end\n        end\n    )\nend\n\n-- Add experience and handle level up\nfunction PlayerData.AddExperience(steamid, amount, callback)\n    local col = PlayerData.GetCollection()\n\n    -- Get current data\n    col:FindOneAsync({ steamid = steamid }, function(err, player)\n        if err or not player then\n            if callback then callback(false, 0) end\n            return\n        end\n\n        local newExp = player.experience + amount\n        local newLevel = player.level\n        local expRequired = newLevel * 1000\n\n        -- Level up logic\n        while newExp >= expRequired do\n            newExp = newExp - expRequired\n            newLevel = newLevel + 1\n            expRequired = newLevel * 1000\n        end\n\n        local leveledUp = newLevel > player.level\n\n        col:UpdateOneAsync(\n            { steamid = steamid },\n            {\n                [\"$set\"] = {\n                    experience = newExp,\n                    level = newLevel\n                }\n            },\n            function(err)\n                if callback then\n                    callback(leveledUp, newLevel)\n                end\n            end\n        )\n    end)\nend\n\n-- Get player stats\nfunction PlayerData.GetStats(steamid, callback)\n    local col = PlayerData.GetCollection()\n\n    col:FindOneAsync(\n        { steamid = steamid },\n        function(err, player)\n            if err or not player then\n                callback(nil)\n            else\n                callback(player.stats)\n            end\n        end\n    )\nend\n\n-- Increment stat\nfunction PlayerData.IncrementStat(steamid, stat, amount)\n    local col = PlayerData.GetCollection()\n\n    col:UpdateOneAsync(\n        { steamid = steamid },\n        { [\"$inc\"] = { [\"stats.\" .. stat] = amount or 1 } },\n        function() end\n    )\nend\n\nreturn PlayerData\n","lua","",[186,187,188,197,203,209,215,222,239,255,267,272,278,311,330,347,366,375,381,386,408,413,419,450,488,524,529,546,555,561,566,572,587,610,615,620,626,650,666,671,703,715,733,746,752,758,763,773,779,793,804,833,845,851,863,869,875,889,900,913,926,939,951,964,976,986,998,1010,1021,1027,1037,1050,1060,1065,1075,1081,1086,1112,1122,1134,1140,1154,1165,1171,1179,1184,1192,1197,1202,1208,1234,1249,1254,1265,1275,1294,1311,1322,1338,1344,1349,1355,1360,1365,1371,1398,1413,1418,1429,1438,1444,1459,1468,1481,1486,1491,1496,1501,1506,1512,1539,1554,1559,1565,1593,1610,1636,1641,1646,1651,1674,1689,1707,1712,1718,1734,1750,1766,1780,1785,1790,1808,1813,1825,1835,1841,1859,1870,1881,1887,1893,1905,1914,1922,1927,1932,1938,1945,1950,1955,1961,1983,1998,2003,2014,2023,2038,2053,2064,2070,2083,2088,2093,2098,2103,2108,2114,2141,2156,2161,2172,2181,2226,2235,2240,2245,2250],"code",{"__ignoreMap":184},[189,190,193],"span",{"class":191,"line":192},"line",1,[189,194,196],{"class":195},"sHwdD","--[[\n",[189,198,200],{"class":191,"line":199},2,[189,201,202],{"class":195},"    Player Data System\n",[189,204,206],{"class":191,"line":205},3,[189,207,208],{"class":195},"    Handles player registration, loading, and saving\n",[189,210,212],{"class":191,"line":211},4,[189,213,214],{"class":195},"]]\n",[189,216,218],{"class":191,"line":217},5,[189,219,221],{"emptyLinePlaceholder":220},true,"\n",[189,223,225,229,233,236],{"class":191,"line":224},6,[189,226,228],{"class":227},"sMK4o","local",[189,230,232],{"class":231},"sTEyZ"," PlayerData ",[189,234,235],{"class":227},"=",[189,237,238],{"class":231}," {}\n",[189,240,242,245,249,252],{"class":191,"line":241},7,[189,243,244],{"class":231},"PlayerData.",[189,246,248],{"class":247},"sBMFI","client",[189,250,251],{"class":227}," =",[189,253,254],{"class":227}," nil\n",[189,256,258,260,263,265],{"class":191,"line":257},8,[189,259,244],{"class":231},[189,261,262],{"class":247},"db",[189,264,251],{"class":227},[189,266,254],{"class":227},[189,268,270],{"class":191,"line":269},9,[189,271,221],{"emptyLinePlaceholder":220},[189,273,275],{"class":191,"line":274},10,[189,276,277],{"class":195},"-- Initialize the system\n",[189,279,281,285,289,292,295,298,302,305,308],{"class":191,"line":280},11,[189,282,284],{"class":283},"s7zQu","function",[189,286,288],{"class":287},"s2Zo4"," PlayerData",[189,290,291],{"class":231},".",[189,293,294],{"class":287},"Initialize",[189,296,297],{"class":227},"(",[189,299,301],{"class":300},"sHdIc","connectionString",[189,303,304],{"class":227},",",[189,306,307],{"class":300}," dbName",[189,309,310],{"class":227},")\n",[189,312,314,317,319,321,324,327],{"class":191,"line":313},12,[189,315,316],{"class":231},"    PlayerData.",[189,318,248],{"class":247},[189,320,251],{"class":227},[189,322,323],{"class":231}," MongoDB.",[189,325,326],{"class":287},"Client",[189,328,329],{"class":231},"(connectionString)\n",[189,331,333,336,339,342,344],{"class":191,"line":332},13,[189,334,335],{"class":283},"    if",[189,337,338],{"class":227}," not",[189,340,341],{"class":231}," PlayerData.",[189,343,248],{"class":247},[189,345,346],{"class":283}," then\n",[189,348,350,353,355,358,362,364],{"class":191,"line":349},14,[189,351,352],{"class":287},"        print",[189,354,297],{"class":231},[189,356,357],{"class":227},"\"",[189,359,361],{"class":360},"sfazB","[PlayerData] Failed to connect to MongoDB!",[189,363,357],{"class":227},[189,365,310],{"class":231},[189,367,369,372],{"class":191,"line":368},15,[189,370,371],{"class":283},"        return",[189,373,374],{"class":227}," false\n",[189,376,378],{"class":191,"line":377},16,[189,379,380],{"class":283},"    end\n",[189,382,384],{"class":191,"line":383},17,[189,385,221],{"emptyLinePlaceholder":220},[189,387,389,391,393,395,397,399,402,405],{"class":191,"line":388},18,[189,390,316],{"class":231},[189,392,262],{"class":247},[189,394,251],{"class":227},[189,396,341],{"class":231},[189,398,248],{"class":247},[189,400,401],{"class":231},":",[189,403,404],{"class":287},"Database",[189,406,407],{"class":231},"(dbName)\n",[189,409,411],{"class":191,"line":410},19,[189,412,221],{"emptyLinePlaceholder":220},[189,414,416],{"class":191,"line":415},20,[189,417,418],{"class":195},"    -- Setup indexes\n",[189,420,422,425,428,430,432,434,436,439,441,443,446,448],{"class":191,"line":421},21,[189,423,424],{"class":227},"    local",[189,426,427],{"class":231}," players ",[189,429,235],{"class":227},[189,431,341],{"class":231},[189,433,262],{"class":247},[189,435,401],{"class":231},[189,437,438],{"class":287},"Collection",[189,440,297],{"class":231},[189,442,357],{"class":227},[189,444,445],{"class":360},"players",[189,447,357],{"class":227},[189,449,310],{"class":231},[189,451,453,456,458,461,464,466,470,473,476,479,481,484,486],{"class":191,"line":452},22,[189,454,455],{"class":247},"    players",[189,457,401],{"class":231},[189,459,460],{"class":287},"CreateIndex",[189,462,463],{"class":231},"({ steamid ",[189,465,235],{"class":227},[189,467,469],{"class":468},"sbssI"," 1",[189,471,472],{"class":231}," }, ",[189,474,475],{"class":227},"true",[189,477,478],{"class":231},", ",[189,480,357],{"class":227},[189,482,483],{"class":360},"steamid_unique",[189,485,357],{"class":227},[189,487,310],{"class":231},[189,489,491,493,495,497,500,502,505,508,510,513,515,517,520,522],{"class":191,"line":490},23,[189,492,455],{"class":247},[189,494,401],{"class":231},[189,496,460],{"class":287},[189,498,499],{"class":231},"({ last_login ",[189,501,235],{"class":227},[189,503,504],{"class":227}," -",[189,506,507],{"class":468},"1",[189,509,472],{"class":231},[189,511,512],{"class":227},"false",[189,514,478],{"class":231},[189,516,357],{"class":227},[189,518,519],{"class":360},"recent_login",[189,521,357],{"class":227},[189,523,310],{"class":231},[189,525,527],{"class":191,"line":526},24,[189,528,221],{"emptyLinePlaceholder":220},[189,530,532,535,537,539,542,544],{"class":191,"line":531},25,[189,533,534],{"class":287},"    print",[189,536,297],{"class":231},[189,538,357],{"class":227},[189,540,541],{"class":360},"[PlayerData] System initialized",[189,543,357],{"class":227},[189,545,310],{"class":231},[189,547,549,552],{"class":191,"line":548},26,[189,550,551],{"class":283},"    return",[189,553,554],{"class":227}," true\n",[189,556,558],{"class":191,"line":557},27,[189,559,560],{"class":283},"end\n",[189,562,564],{"class":191,"line":563},28,[189,565,221],{"emptyLinePlaceholder":220},[189,567,569],{"class":191,"line":568},29,[189,570,571],{"class":195},"-- Get player collection\n",[189,573,575,577,579,581,584],{"class":191,"line":574},30,[189,576,284],{"class":283},[189,578,288],{"class":287},[189,580,291],{"class":231},[189,582,583],{"class":287},"GetCollection",[189,585,586],{"class":227},"()\n",[189,588,590,592,594,596,598,600,602,604,606,608],{"class":191,"line":589},31,[189,591,551],{"class":283},[189,593,341],{"class":231},[189,595,262],{"class":247},[189,597,401],{"class":231},[189,599,438],{"class":287},[189,601,297],{"class":231},[189,603,357],{"class":227},[189,605,445],{"class":360},[189,607,357],{"class":227},[189,609,310],{"class":231},[189,611,613],{"class":191,"line":612},32,[189,614,560],{"class":283},[189,616,618],{"class":191,"line":617},33,[189,619,221],{"emptyLinePlaceholder":220},[189,621,623],{"class":191,"line":622},34,[189,624,625],{"class":195},"-- Load player data\n",[189,627,629,631,633,635,638,640,643,645,648],{"class":191,"line":628},35,[189,630,284],{"class":283},[189,632,288],{"class":287},[189,634,291],{"class":231},[189,636,637],{"class":287},"Load",[189,639,297],{"class":227},[189,641,642],{"class":300},"steamid",[189,644,304],{"class":227},[189,646,647],{"class":300}," callback",[189,649,310],{"class":227},[189,651,653,655,658,660,662,664],{"class":191,"line":652},36,[189,654,424],{"class":227},[189,656,657],{"class":231}," col ",[189,659,235],{"class":227},[189,661,341],{"class":231},[189,663,583],{"class":287},[189,665,586],{"class":231},[189,667,669],{"class":191,"line":668},37,[189,670,221],{"emptyLinePlaceholder":220},[189,672,674,677,679,682,684,686,689,691,693,696,698,701],{"class":191,"line":673},38,[189,675,676],{"class":247},"    col",[189,678,401],{"class":231},[189,680,681],{"class":287},"FindOneAsync",[189,683,463],{"class":231},[189,685,235],{"class":227},[189,687,688],{"class":231}," steamid }, ",[189,690,284],{"class":283},[189,692,297],{"class":227},[189,694,695],{"class":300},"err",[189,697,304],{"class":227},[189,699,700],{"class":300}," data",[189,702,310],{"class":227},[189,704,706,709,712],{"class":191,"line":705},39,[189,707,708],{"class":283},"        if",[189,710,711],{"class":231}," err ",[189,713,714],{"class":283},"then\n",[189,716,718,721,723,725,728,730],{"class":191,"line":717},40,[189,719,720],{"class":287},"            print",[189,722,297],{"class":231},[189,724,357],{"class":227},[189,726,727],{"class":360},"[PlayerData] Load error:",[189,729,357],{"class":227},[189,731,732],{"class":231},", err)\n",[189,734,736,739,741,744],{"class":191,"line":735},41,[189,737,738],{"class":287},"            callback",[189,740,297],{"class":231},[189,742,743],{"class":227},"nil",[189,745,732],{"class":231},[189,747,749],{"class":191,"line":748},42,[189,750,751],{"class":283},"            return\n",[189,753,755],{"class":191,"line":754},43,[189,756,757],{"class":283},"        end\n",[189,759,761],{"class":191,"line":760},44,[189,762,221],{"emptyLinePlaceholder":220},[189,764,766,768,771],{"class":191,"line":765},45,[189,767,708],{"class":283},[189,769,770],{"class":231}," data ",[189,772,714],{"class":283},[189,774,776],{"class":191,"line":775},46,[189,777,778],{"class":195},"            -- Update last login\n",[189,780,782,785,787,790],{"class":191,"line":781},47,[189,783,784],{"class":247},"            col",[189,786,401],{"class":231},[189,788,789],{"class":287},"UpdateOneAsync",[189,791,792],{"class":231},"(\n",[189,794,796,799,801],{"class":191,"line":795},48,[189,797,798],{"class":231},"                { steamid ",[189,800,235],{"class":227},[189,802,803],{"class":231}," steamid },\n",[189,805,807,810,812,815,817,820,822,825,827,830],{"class":191,"line":806},49,[189,808,809],{"class":231},"                { [",[189,811,357],{"class":227},[189,813,814],{"class":360},"$set",[189,816,357],{"class":227},[189,818,819],{"class":231},"] ",[189,821,235],{"class":227},[189,823,824],{"class":231}," { last_login ",[189,826,235],{"class":227},[189,828,829],{"class":287}," os.time",[189,831,832],{"class":231},"() } },\n",[189,834,836,839,842],{"class":191,"line":835},50,[189,837,838],{"class":283},"                function",[189,840,841],{"class":227},"()",[189,843,844],{"class":283}," end\n",[189,846,848],{"class":191,"line":847},51,[189,849,850],{"class":231},"            )\n",[189,852,854,856,859,861],{"class":191,"line":853},52,[189,855,738],{"class":287},[189,857,858],{"class":231},"(data, ",[189,860,743],{"class":227},[189,862,310],{"class":231},[189,864,866],{"class":191,"line":865},53,[189,867,868],{"class":283},"        else\n",[189,870,872],{"class":191,"line":871},54,[189,873,874],{"class":195},"            -- Create new player\n",[189,876,878,881,884,886],{"class":191,"line":877},55,[189,879,880],{"class":227},"            local",[189,882,883],{"class":231}," newPlayer ",[189,885,235],{"class":227},[189,887,888],{"class":231}," {\n",[189,890,892,895,897],{"class":191,"line":891},56,[189,893,894],{"class":231},"                steamid ",[189,896,235],{"class":227},[189,898,899],{"class":231}," steamid,\n",[189,901,903,906,908,910],{"class":191,"line":902},57,[189,904,905],{"class":231},"                level ",[189,907,235],{"class":227},[189,909,469],{"class":468},[189,911,912],{"class":231},",\n",[189,914,916,919,921,924],{"class":191,"line":915},58,[189,917,918],{"class":231},"                experience ",[189,920,235],{"class":227},[189,922,923],{"class":468}," 0",[189,925,912],{"class":231},[189,927,929,932,934,937],{"class":191,"line":928},59,[189,930,931],{"class":231},"                credits ",[189,933,235],{"class":227},[189,935,936],{"class":468}," 1000",[189,938,912],{"class":231},[189,940,942,945,947,949],{"class":191,"line":941},60,[189,943,944],{"class":231},"                playtime ",[189,946,235],{"class":227},[189,948,923],{"class":468},[189,950,912],{"class":231},[189,952,954,957,959,961],{"class":191,"line":953},61,[189,955,956],{"class":231},"                created_at ",[189,958,235],{"class":227},[189,960,829],{"class":287},[189,962,963],{"class":231},"(),\n",[189,965,967,970,972,974],{"class":191,"line":966},62,[189,968,969],{"class":231},"                last_login ",[189,971,235],{"class":227},[189,973,829],{"class":287},[189,975,963],{"class":231},[189,977,979,982,984],{"class":191,"line":978},63,[189,980,981],{"class":231},"                stats ",[189,983,235],{"class":227},[189,985,888],{"class":231},[189,987,989,992,994,996],{"class":191,"line":988},64,[189,990,991],{"class":231},"                    kills ",[189,993,235],{"class":227},[189,995,923],{"class":468},[189,997,912],{"class":231},[189,999,1001,1004,1006,1008],{"class":191,"line":1000},65,[189,1002,1003],{"class":231},"                    deaths ",[189,1005,235],{"class":227},[189,1007,923],{"class":468},[189,1009,912],{"class":231},[189,1011,1013,1016,1018],{"class":191,"line":1012},66,[189,1014,1015],{"class":231},"                    assists ",[189,1017,235],{"class":227},[189,1019,1020],{"class":468}," 0\n",[189,1022,1024],{"class":191,"line":1023},67,[189,1025,1026],{"class":231},"                },\n",[189,1028,1030,1033,1035],{"class":191,"line":1029},68,[189,1031,1032],{"class":231},"                settings ",[189,1034,235],{"class":227},[189,1036,888],{"class":231},[189,1038,1040,1043,1045,1048],{"class":191,"line":1039},69,[189,1041,1042],{"class":231},"                    notifications ",[189,1044,235],{"class":227},[189,1046,1047],{"class":227}," true",[189,1049,912],{"class":231},[189,1051,1053,1056,1058],{"class":191,"line":1052},70,[189,1054,1055],{"class":231},"                    music ",[189,1057,235],{"class":227},[189,1059,554],{"class":227},[189,1061,1063],{"class":191,"line":1062},71,[189,1064,1026],{"class":231},[189,1066,1068,1071,1073],{"class":191,"line":1067},72,[189,1069,1070],{"class":231},"                inventory ",[189,1072,235],{"class":227},[189,1074,238],{"class":231},[189,1076,1078],{"class":191,"line":1077},73,[189,1079,1080],{"class":231},"            }\n",[189,1082,1084],{"class":191,"line":1083},74,[189,1085,221],{"emptyLinePlaceholder":220},[189,1087,1089,1091,1093,1096,1099,1101,1103,1105,1107,1110],{"class":191,"line":1088},75,[189,1090,784],{"class":247},[189,1092,401],{"class":231},[189,1094,1095],{"class":287},"InsertOneAsync",[189,1097,1098],{"class":231},"(newPlayer, ",[189,1100,284],{"class":283},[189,1102,297],{"class":227},[189,1104,695],{"class":300},[189,1106,304],{"class":227},[189,1108,1109],{"class":300}," id",[189,1111,310],{"class":227},[189,1113,1115,1118,1120],{"class":191,"line":1114},76,[189,1116,1117],{"class":283},"                if",[189,1119,711],{"class":231},[189,1121,714],{"class":283},[189,1123,1125,1128,1130,1132],{"class":191,"line":1124},77,[189,1126,1127],{"class":287},"                    callback",[189,1129,297],{"class":231},[189,1131,743],{"class":227},[189,1133,732],{"class":231},[189,1135,1137],{"class":191,"line":1136},78,[189,1138,1139],{"class":283},"                else\n",[189,1141,1143,1146,1149,1151],{"class":191,"line":1142},79,[189,1144,1145],{"class":231},"                    newPlayer.",[189,1147,1148],{"class":247},"_id",[189,1150,251],{"class":227},[189,1152,1153],{"class":231}," id\n",[189,1155,1157,1159,1161,1163],{"class":191,"line":1156},80,[189,1158,1127],{"class":287},[189,1160,1098],{"class":231},[189,1162,743],{"class":227},[189,1164,310],{"class":231},[189,1166,1168],{"class":191,"line":1167},81,[189,1169,1170],{"class":283},"                end\n",[189,1172,1174,1177],{"class":191,"line":1173},82,[189,1175,1176],{"class":283},"            end",[189,1178,310],{"class":231},[189,1180,1182],{"class":191,"line":1181},83,[189,1183,757],{"class":283},[189,1185,1187,1190],{"class":191,"line":1186},84,[189,1188,1189],{"class":283},"    end",[189,1191,310],{"class":231},[189,1193,1195],{"class":191,"line":1194},85,[189,1196,560],{"class":283},[189,1198,1200],{"class":191,"line":1199},86,[189,1201,221],{"emptyLinePlaceholder":220},[189,1203,1205],{"class":191,"line":1204},87,[189,1206,1207],{"class":195},"-- Save player data\n",[189,1209,1211,1213,1215,1217,1220,1222,1224,1226,1228,1230,1232],{"class":191,"line":1210},88,[189,1212,284],{"class":283},[189,1214,288],{"class":287},[189,1216,291],{"class":231},[189,1218,1219],{"class":287},"Save",[189,1221,297],{"class":227},[189,1223,642],{"class":300},[189,1225,304],{"class":227},[189,1227,700],{"class":300},[189,1229,304],{"class":227},[189,1231,647],{"class":300},[189,1233,310],{"class":227},[189,1235,1237,1239,1241,1243,1245,1247],{"class":191,"line":1236},89,[189,1238,424],{"class":227},[189,1240,657],{"class":231},[189,1242,235],{"class":227},[189,1244,341],{"class":231},[189,1246,583],{"class":287},[189,1248,586],{"class":231},[189,1250,1252],{"class":191,"line":1251},90,[189,1253,221],{"emptyLinePlaceholder":220},[189,1255,1257,1259,1261,1263],{"class":191,"line":1256},91,[189,1258,676],{"class":247},[189,1260,401],{"class":231},[189,1262,789],{"class":287},[189,1264,792],{"class":231},[189,1266,1268,1271,1273],{"class":191,"line":1267},92,[189,1269,1270],{"class":231},"        { steamid ",[189,1272,235],{"class":227},[189,1274,803],{"class":231},[189,1276,1278,1281,1283,1285,1287,1289,1291],{"class":191,"line":1277},93,[189,1279,1280],{"class":231},"        { [",[189,1282,357],{"class":227},[189,1284,814],{"class":360},[189,1286,357],{"class":227},[189,1288,819],{"class":231},[189,1290,235],{"class":227},[189,1292,1293],{"class":231}," data },\n",[189,1295,1297,1300,1302,1304,1306,1309],{"class":191,"line":1296},94,[189,1298,1299],{"class":283},"        function",[189,1301,297],{"class":227},[189,1303,695],{"class":300},[189,1305,304],{"class":227},[189,1307,1308],{"class":300}," modified",[189,1310,310],{"class":227},[189,1312,1314,1317,1320],{"class":191,"line":1313},95,[189,1315,1316],{"class":283},"            if",[189,1318,1319],{"class":231}," callback ",[189,1321,714],{"class":283},[189,1323,1325,1328,1331,1334,1336],{"class":191,"line":1324},96,[189,1326,1327],{"class":287},"                callback",[189,1329,1330],{"class":231},"(err, modified ",[189,1332,1333],{"class":227},">",[189,1335,923],{"class":468},[189,1337,310],{"class":231},[189,1339,1341],{"class":191,"line":1340},97,[189,1342,1343],{"class":283},"            end\n",[189,1345,1347],{"class":191,"line":1346},98,[189,1348,757],{"class":283},[189,1350,1352],{"class":191,"line":1351},99,[189,1353,1354],{"class":231},"    )\n",[189,1356,1358],{"class":191,"line":1357},100,[189,1359,560],{"class":283},[189,1361,1363],{"class":191,"line":1362},101,[189,1364,221],{"emptyLinePlaceholder":220},[189,1366,1368],{"class":191,"line":1367},102,[189,1369,1370],{"class":195},"-- Update specific fields\n",[189,1372,1374,1376,1378,1380,1383,1385,1387,1389,1392,1394,1396],{"class":191,"line":1373},103,[189,1375,284],{"class":283},[189,1377,288],{"class":287},[189,1379,291],{"class":231},[189,1381,1382],{"class":287},"Update",[189,1384,297],{"class":227},[189,1386,642],{"class":300},[189,1388,304],{"class":227},[189,1390,1391],{"class":300}," updates",[189,1393,304],{"class":227},[189,1395,647],{"class":300},[189,1397,310],{"class":227},[189,1399,1401,1403,1405,1407,1409,1411],{"class":191,"line":1400},104,[189,1402,424],{"class":227},[189,1404,657],{"class":231},[189,1406,235],{"class":227},[189,1408,341],{"class":231},[189,1410,583],{"class":287},[189,1412,586],{"class":231},[189,1414,1416],{"class":191,"line":1415},105,[189,1417,221],{"emptyLinePlaceholder":220},[189,1419,1421,1423,1425,1427],{"class":191,"line":1420},106,[189,1422,676],{"class":247},[189,1424,401],{"class":231},[189,1426,789],{"class":287},[189,1428,792],{"class":231},[189,1430,1432,1434,1436],{"class":191,"line":1431},107,[189,1433,1270],{"class":231},[189,1435,235],{"class":227},[189,1437,803],{"class":231},[189,1439,1441],{"class":191,"line":1440},108,[189,1442,1443],{"class":231},"        updates,\n",[189,1445,1447,1449,1451,1453,1455,1457],{"class":191,"line":1446},109,[189,1448,1299],{"class":283},[189,1450,297],{"class":227},[189,1452,695],{"class":300},[189,1454,304],{"class":227},[189,1456,1308],{"class":300},[189,1458,310],{"class":227},[189,1460,1462,1464,1466],{"class":191,"line":1461},110,[189,1463,1316],{"class":283},[189,1465,1319],{"class":231},[189,1467,714],{"class":283},[189,1469,1471,1473,1475,1477,1479],{"class":191,"line":1470},111,[189,1472,1327],{"class":287},[189,1474,1330],{"class":231},[189,1476,1333],{"class":227},[189,1478,923],{"class":468},[189,1480,310],{"class":231},[189,1482,1484],{"class":191,"line":1483},112,[189,1485,1343],{"class":283},[189,1487,1489],{"class":191,"line":1488},113,[189,1490,757],{"class":283},[189,1492,1494],{"class":191,"line":1493},114,[189,1495,1354],{"class":231},[189,1497,1499],{"class":191,"line":1498},115,[189,1500,560],{"class":283},[189,1502,1504],{"class":191,"line":1503},116,[189,1505,221],{"emptyLinePlaceholder":220},[189,1507,1509],{"class":191,"line":1508},117,[189,1510,1511],{"class":195},"-- Add experience and handle level up\n",[189,1513,1515,1517,1519,1521,1524,1526,1528,1530,1533,1535,1537],{"class":191,"line":1514},118,[189,1516,284],{"class":283},[189,1518,288],{"class":287},[189,1520,291],{"class":231},[189,1522,1523],{"class":287},"AddExperience",[189,1525,297],{"class":227},[189,1527,642],{"class":300},[189,1529,304],{"class":227},[189,1531,1532],{"class":300}," amount",[189,1534,304],{"class":227},[189,1536,647],{"class":300},[189,1538,310],{"class":227},[189,1540,1542,1544,1546,1548,1550,1552],{"class":191,"line":1541},119,[189,1543,424],{"class":227},[189,1545,657],{"class":231},[189,1547,235],{"class":227},[189,1549,341],{"class":231},[189,1551,583],{"class":287},[189,1553,586],{"class":231},[189,1555,1557],{"class":191,"line":1556},120,[189,1558,221],{"emptyLinePlaceholder":220},[189,1560,1562],{"class":191,"line":1561},121,[189,1563,1564],{"class":195},"    -- Get current data\n",[189,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1591],{"class":191,"line":1567},122,[189,1569,676],{"class":247},[189,1571,401],{"class":231},[189,1573,681],{"class":287},[189,1575,463],{"class":231},[189,1577,235],{"class":227},[189,1579,688],{"class":231},[189,1581,284],{"class":283},[189,1583,297],{"class":227},[189,1585,695],{"class":300},[189,1587,304],{"class":227},[189,1589,1590],{"class":300}," player",[189,1592,310],{"class":227},[189,1594,1596,1598,1600,1603,1605,1608],{"class":191,"line":1595},123,[189,1597,708],{"class":283},[189,1599,711],{"class":231},[189,1601,1602],{"class":227},"or",[189,1604,338],{"class":227},[189,1606,1607],{"class":231}," player ",[189,1609,714],{"class":283},[189,1611,1613,1615,1617,1620,1622,1624,1626,1628,1631,1634],{"class":191,"line":1612},124,[189,1614,1316],{"class":283},[189,1616,1319],{"class":231},[189,1618,1619],{"class":283},"then",[189,1621,647],{"class":287},[189,1623,297],{"class":231},[189,1625,512],{"class":227},[189,1627,478],{"class":231},[189,1629,1630],{"class":468},"0",[189,1632,1633],{"class":231},") ",[189,1635,560],{"class":283},[189,1637,1639],{"class":191,"line":1638},125,[189,1640,751],{"class":283},[189,1642,1644],{"class":191,"line":1643},126,[189,1645,757],{"class":283},[189,1647,1649],{"class":191,"line":1648},127,[189,1650,221],{"emptyLinePlaceholder":220},[189,1652,1654,1657,1660,1662,1665,1668,1671],{"class":191,"line":1653},128,[189,1655,1656],{"class":227},"        local",[189,1658,1659],{"class":231}," newExp ",[189,1661,235],{"class":227},[189,1663,1664],{"class":231}," player.",[189,1666,1667],{"class":247},"experience",[189,1669,1670],{"class":227}," +",[189,1672,1673],{"class":231}," amount\n",[189,1675,1677,1679,1682,1684,1686],{"class":191,"line":1676},129,[189,1678,1656],{"class":227},[189,1680,1681],{"class":231}," newLevel ",[189,1683,235],{"class":227},[189,1685,1664],{"class":231},[189,1687,1688],{"class":247},"level\n",[189,1690,1692,1694,1697,1699,1701,1704],{"class":191,"line":1691},130,[189,1693,1656],{"class":227},[189,1695,1696],{"class":231}," expRequired ",[189,1698,235],{"class":227},[189,1700,1681],{"class":231},[189,1702,1703],{"class":227},"*",[189,1705,1706],{"class":468}," 1000\n",[189,1708,1710],{"class":191,"line":1709},131,[189,1711,221],{"emptyLinePlaceholder":220},[189,1713,1715],{"class":191,"line":1714},132,[189,1716,1717],{"class":195},"        -- Level up logic\n",[189,1719,1721,1724,1726,1729,1731],{"class":191,"line":1720},133,[189,1722,1723],{"class":283},"        while",[189,1725,1659],{"class":231},[189,1727,1728],{"class":227},">=",[189,1730,1696],{"class":231},[189,1732,1733],{"class":283},"do\n",[189,1735,1737,1740,1742,1744,1747],{"class":191,"line":1736},134,[189,1738,1739],{"class":231},"            newExp ",[189,1741,235],{"class":227},[189,1743,1659],{"class":231},[189,1745,1746],{"class":227},"-",[189,1748,1749],{"class":231}," expRequired\n",[189,1751,1753,1756,1758,1760,1763],{"class":191,"line":1752},135,[189,1754,1755],{"class":231},"            newLevel ",[189,1757,235],{"class":227},[189,1759,1681],{"class":231},[189,1761,1762],{"class":227},"+",[189,1764,1765],{"class":468}," 1\n",[189,1767,1769,1772,1774,1776,1778],{"class":191,"line":1768},136,[189,1770,1771],{"class":231},"            expRequired ",[189,1773,235],{"class":227},[189,1775,1681],{"class":231},[189,1777,1703],{"class":227},[189,1779,1706],{"class":468},[189,1781,1783],{"class":191,"line":1782},137,[189,1784,757],{"class":283},[189,1786,1788],{"class":191,"line":1787},138,[189,1789,221],{"emptyLinePlaceholder":220},[189,1791,1793,1795,1798,1800,1802,1804,1806],{"class":191,"line":1792},139,[189,1794,1656],{"class":227},[189,1796,1797],{"class":231}," leveledUp ",[189,1799,235],{"class":227},[189,1801,1681],{"class":231},[189,1803,1333],{"class":227},[189,1805,1664],{"class":231},[189,1807,1688],{"class":247},[189,1809,1811],{"class":191,"line":1810},140,[189,1812,221],{"emptyLinePlaceholder":220},[189,1814,1816,1819,1821,1823],{"class":191,"line":1815},141,[189,1817,1818],{"class":247},"        col",[189,1820,401],{"class":231},[189,1822,789],{"class":287},[189,1824,792],{"class":231},[189,1826,1828,1831,1833],{"class":191,"line":1827},142,[189,1829,1830],{"class":231},"            { steamid ",[189,1832,235],{"class":227},[189,1834,803],{"class":231},[189,1836,1838],{"class":191,"line":1837},143,[189,1839,1840],{"class":231},"            {\n",[189,1842,1844,1847,1849,1851,1853,1855,1857],{"class":191,"line":1843},144,[189,1845,1846],{"class":231},"                [",[189,1848,357],{"class":227},[189,1850,814],{"class":360},[189,1852,357],{"class":227},[189,1854,819],{"class":231},[189,1856,235],{"class":227},[189,1858,888],{"class":231},[189,1860,1862,1865,1867],{"class":191,"line":1861},145,[189,1863,1864],{"class":231},"                    experience ",[189,1866,235],{"class":227},[189,1868,1869],{"class":231}," newExp,\n",[189,1871,1873,1876,1878],{"class":191,"line":1872},146,[189,1874,1875],{"class":231},"                    level ",[189,1877,235],{"class":227},[189,1879,1880],{"class":231}," newLevel\n",[189,1882,1884],{"class":191,"line":1883},147,[189,1885,1886],{"class":231},"                }\n",[189,1888,1890],{"class":191,"line":1889},148,[189,1891,1892],{"class":231},"            },\n",[189,1894,1896,1899,1901,1903],{"class":191,"line":1895},149,[189,1897,1898],{"class":283},"            function",[189,1900,297],{"class":227},[189,1902,695],{"class":300},[189,1904,310],{"class":227},[189,1906,1908,1910,1912],{"class":191,"line":1907},150,[189,1909,1117],{"class":283},[189,1911,1319],{"class":231},[189,1913,714],{"class":283},[189,1915,1917,1919],{"class":191,"line":1916},151,[189,1918,1127],{"class":287},[189,1920,1921],{"class":231},"(leveledUp, newLevel)\n",[189,1923,1925],{"class":191,"line":1924},152,[189,1926,1170],{"class":283},[189,1928,1930],{"class":191,"line":1929},153,[189,1931,1343],{"class":283},[189,1933,1935],{"class":191,"line":1934},154,[189,1936,1937],{"class":231},"        )\n",[189,1939,1941,1943],{"class":191,"line":1940},155,[189,1942,1189],{"class":283},[189,1944,310],{"class":231},[189,1946,1948],{"class":191,"line":1947},156,[189,1949,560],{"class":283},[189,1951,1953],{"class":191,"line":1952},157,[189,1954,221],{"emptyLinePlaceholder":220},[189,1956,1958],{"class":191,"line":1957},158,[189,1959,1960],{"class":195},"-- Get player stats\n",[189,1962,1964,1966,1968,1970,1973,1975,1977,1979,1981],{"class":191,"line":1963},159,[189,1965,284],{"class":283},[189,1967,288],{"class":287},[189,1969,291],{"class":231},[189,1971,1972],{"class":287},"GetStats",[189,1974,297],{"class":227},[189,1976,642],{"class":300},[189,1978,304],{"class":227},[189,1980,647],{"class":300},[189,1982,310],{"class":227},[189,1984,1986,1988,1990,1992,1994,1996],{"class":191,"line":1985},160,[189,1987,424],{"class":227},[189,1989,657],{"class":231},[189,1991,235],{"class":227},[189,1993,341],{"class":231},[189,1995,583],{"class":287},[189,1997,586],{"class":231},[189,1999,2001],{"class":191,"line":2000},161,[189,2002,221],{"emptyLinePlaceholder":220},[189,2004,2006,2008,2010,2012],{"class":191,"line":2005},162,[189,2007,676],{"class":247},[189,2009,401],{"class":231},[189,2011,681],{"class":287},[189,2013,792],{"class":231},[189,2015,2017,2019,2021],{"class":191,"line":2016},163,[189,2018,1270],{"class":231},[189,2020,235],{"class":227},[189,2022,803],{"class":231},[189,2024,2026,2028,2030,2032,2034,2036],{"class":191,"line":2025},164,[189,2027,1299],{"class":283},[189,2029,297],{"class":227},[189,2031,695],{"class":300},[189,2033,304],{"class":227},[189,2035,1590],{"class":300},[189,2037,310],{"class":227},[189,2039,2041,2043,2045,2047,2049,2051],{"class":191,"line":2040},165,[189,2042,1316],{"class":283},[189,2044,711],{"class":231},[189,2046,1602],{"class":227},[189,2048,338],{"class":227},[189,2050,1607],{"class":231},[189,2052,714],{"class":283},[189,2054,2056,2058,2060,2062],{"class":191,"line":2055},166,[189,2057,1327],{"class":287},[189,2059,297],{"class":231},[189,2061,743],{"class":227},[189,2063,310],{"class":231},[189,2065,2067],{"class":191,"line":2066},167,[189,2068,2069],{"class":283},"            else\n",[189,2071,2073,2075,2078,2081],{"class":191,"line":2072},168,[189,2074,1327],{"class":287},[189,2076,2077],{"class":231},"(player.",[189,2079,2080],{"class":247},"stats",[189,2082,310],{"class":231},[189,2084,2086],{"class":191,"line":2085},169,[189,2087,1343],{"class":283},[189,2089,2091],{"class":191,"line":2090},170,[189,2092,757],{"class":283},[189,2094,2096],{"class":191,"line":2095},171,[189,2097,1354],{"class":231},[189,2099,2101],{"class":191,"line":2100},172,[189,2102,560],{"class":283},[189,2104,2106],{"class":191,"line":2105},173,[189,2107,221],{"emptyLinePlaceholder":220},[189,2109,2111],{"class":191,"line":2110},174,[189,2112,2113],{"class":195},"-- Increment stat\n",[189,2115,2117,2119,2121,2123,2126,2128,2130,2132,2135,2137,2139],{"class":191,"line":2116},175,[189,2118,284],{"class":283},[189,2120,288],{"class":287},[189,2122,291],{"class":231},[189,2124,2125],{"class":287},"IncrementStat",[189,2127,297],{"class":227},[189,2129,642],{"class":300},[189,2131,304],{"class":227},[189,2133,2134],{"class":300}," stat",[189,2136,304],{"class":227},[189,2138,1532],{"class":300},[189,2140,310],{"class":227},[189,2142,2144,2146,2148,2150,2152,2154],{"class":191,"line":2143},176,[189,2145,424],{"class":227},[189,2147,657],{"class":231},[189,2149,235],{"class":227},[189,2151,341],{"class":231},[189,2153,583],{"class":287},[189,2155,586],{"class":231},[189,2157,2159],{"class":191,"line":2158},177,[189,2160,221],{"emptyLinePlaceholder":220},[189,2162,2164,2166,2168,2170],{"class":191,"line":2163},178,[189,2165,676],{"class":247},[189,2167,401],{"class":231},[189,2169,789],{"class":287},[189,2171,792],{"class":231},[189,2173,2175,2177,2179],{"class":191,"line":2174},179,[189,2176,1270],{"class":231},[189,2178,235],{"class":227},[189,2180,803],{"class":231},[189,2182,2184,2186,2188,2191,2193,2195,2197,2200,2202,2205,2208,2211,2214,2216,2219,2221,2223],{"class":191,"line":2183},180,[189,2185,1280],{"class":231},[189,2187,357],{"class":227},[189,2189,2190],{"class":360},"$inc",[189,2192,357],{"class":227},[189,2194,819],{"class":231},[189,2196,235],{"class":227},[189,2198,2199],{"class":231}," { [",[189,2201,357],{"class":227},[189,2203,2204],{"class":360},"stats.",[189,2206,2207],{"class":227},"\" ",[189,2209,2210],{"class":227},"..",[189,2212,2213],{"class":231}," stat] ",[189,2215,235],{"class":227},[189,2217,2218],{"class":231}," amount ",[189,2220,1602],{"class":227},[189,2222,469],{"class":468},[189,2224,2225],{"class":231}," } },\n",[189,2227,2229,2231,2233],{"class":191,"line":2228},181,[189,2230,1299],{"class":283},[189,2232,841],{"class":227},[189,2234,844],{"class":283},[189,2236,2238],{"class":191,"line":2237},182,[189,2239,1354],{"class":231},[189,2241,2243],{"class":191,"line":2242},183,[189,2244,560],{"class":283},[189,2246,2248],{"class":191,"line":2247},184,[189,2249,221],{"emptyLinePlaceholder":220},[189,2251,2253,2256],{"class":191,"line":2252},185,[189,2254,2255],{"class":283},"return",[189,2257,2258],{"class":231}," PlayerData\n",[171,2260,2262],{"id":2261},"inventory-system","Inventory System",[179,2264,2266],{"className":181,"code":2265,"language":183,"meta":184,"style":184},"--[[\n    Player Inventory System\n    Manages player items with stacking and limits\n]]\n\nlocal Inventory = {}\nInventory.MAX_SLOTS = 50\nInventory.MAX_STACK = 999\n\nfunction Inventory.Initialize(db)\n    Inventory.db = db\n    Inventory.players = db:Collection(\"players\")\nend\n\n-- Get player inventory\nfunction Inventory.Get(steamid, callback)\n    Inventory.players:FindOneAsync(\n        { steamid = steamid },\n        function(err, player)\n            if err or not player then\n                callback({})\n            else\n                callback(player.inventory or {})\n            end\n        end\n    )\nend\n\n-- Add item to inventory\nfunction Inventory.AddItem(steamid, itemId, itemName, quantity, callback)\n    quantity = quantity or 1\n\n    Inventory.players:FindOneAsync({ steamid = steamid }, function(err, player)\n        if err or not player then\n            if callback then callback(false, \"Player not found\") end\n            return\n        end\n\n        local inventory = player.inventory or {}\n        local added = false\n\n        -- Try to stack with existing item\n        for _, item in ipairs(inventory) do\n            if item.item_id == itemId then\n                local newQty = math.min(item.quantity + quantity, Inventory.MAX_STACK)\n                local actualAdded = newQty - item.quantity\n                item.quantity = newQty\n                added = true\n                quantity = quantity - actualAdded\n                break\n            end\n        end\n\n        -- Add as new item if not stacked (and we have remaining)\n        if not added and quantity > 0 then\n            if #inventory >= Inventory.MAX_SLOTS then\n                if callback then callback(false, \"Inventory full\") end\n                return\n            end\n\n            table.insert(inventory, {\n                item_id = itemId,\n                item_name = itemName,\n                quantity = math.min(quantity, Inventory.MAX_STACK),\n                added_at = os.time()\n            })\n        end\n\n        -- Save inventory\n        Inventory.players:UpdateOneAsync(\n            { steamid = steamid },\n            { [\"$set\"] = { inventory = inventory } },\n            function(err)\n                if callback then\n                    callback(not err, err and \"Save failed\" or nil)\n                end\n            end\n        )\n    end)\nend\n\n-- Remove item from inventory\nfunction Inventory.RemoveItem(steamid, itemId, quantity, callback)\n    quantity = quantity or 1\n\n    Inventory.players:FindOneAsync({ steamid = steamid }, function(err, player)\n        if err or not player then\n            if callback then callback(false, \"Player not found\") end\n            return\n        end\n\n        local inventory = player.inventory or {}\n        local removed = false\n\n        for i, item in ipairs(inventory) do\n            if item.item_id == itemId then\n                if item.quantity \u003C= quantity then\n                    table.remove(inventory, i)\n                else\n                    item.quantity = item.quantity - quantity\n                end\n                removed = true\n                break\n            end\n        end\n\n        if not removed then\n            if callback then callback(false, \"Item not found\") end\n            return\n        end\n\n        Inventory.players:UpdateOneAsync(\n            { steamid = steamid },\n            { [\"$set\"] = { inventory = inventory } },\n            function(err)\n                if callback then\n                    callback(not err, err and \"Save failed\" or nil)\n                end\n            end\n        )\n    end)\nend\n\n-- Check if player has item\nfunction Inventory.HasItem(steamid, itemId, quantity, callback)\n    quantity = quantity or 1\n\n    Inventory.Get(steamid, function(inventory)\n        for _, item in ipairs(inventory) do\n            if item.item_id == itemId and item.quantity >= quantity then\n                callback(true, item.quantity)\n                return\n            end\n        end\n        callback(false, 0)\n    end)\nend\n\n-- Transfer item between players\nfunction Inventory.Transfer(fromSteamid, toSteamid, itemId, quantity, callback)\n    quantity = quantity or 1\n\n    Inventory.HasItem(fromSteamid, itemId, quantity, function(has, currentQty)\n        if not has then\n            callback(false, \"Insufficient items\")\n            return\n        end\n\n        -- Get item name\n        Inventory.Get(fromSteamid, function(inv)\n            local itemName = \"\"\n            for _, item in ipairs(inv) do\n                if item.item_id == itemId then\n                    itemName = item.item_name\n                    break\n                end\n            end\n\n            -- Remove from source\n            Inventory.RemoveItem(fromSteamid, itemId, quantity, function(success)\n                if not success then\n                    callback(false, \"Failed to remove item\")\n                    return\n                end\n\n                -- Add to destination\n                Inventory.AddItem(toSteamid, itemId, itemName, quantity, function(success, err)\n                    if not success then\n                        -- Rollback\n                        Inventory.AddItem(fromSteamid, itemId, itemName, quantity)\n                        callback(false, \"Failed to add item: \" .. (err or \"\"))\n                    else\n                        callback(true)\n                    end\n                end)\n            end)\n        end)\n    end)\nend\n\n-- Get inventory statistics\nfunction Inventory.GetStats(steamid, callback)\n    Inventory.Get(steamid, function(inventory)\n        local stats = {\n            total_items = 0,\n            unique_items = #inventory,\n            slots_used = #inventory,\n            slots_free = Inventory.MAX_SLOTS - #inventory\n        }\n\n        for _, item in ipairs(inventory) do\n            stats.total_items = stats.total_items + item.quantity\n        end\n\n        callback(stats)\n    end)\nend\n\nreturn Inventory\n",[186,2267,2268,2272,2277,2282,2286,2290,2301,2314,2326,2330,2347,2359,2384,2388,2392,2397,2418,2430,2438,2452,2466,2473,2477,2492,2496,2500,2504,2508,2512,2517,2553,2567,2571,2599,2613,2640,2644,2648,2652,2669,2680,2684,2689,2708,2726,2754,2772,2784,2793,2807,2812,2816,2820,2824,2829,2848,2867,2894,2899,2903,2907,2915,2925,2935,2951,2962,2967,2971,2975,2980,2993,3001,3024,3034,3042,3071,3075,3079,3083,3089,3093,3097,3102,3131,3143,3147,3175,3189,3215,3219,3223,3227,3243,3254,3258,3273,3287,3302,3310,3314,3332,3336,3345,3349,3353,3357,3361,3371,3398,3402,3406,3410,3422,3430,3450,3460,3468,3492,3496,3500,3504,3510,3514,3518,3523,3552,3564,3568,3585,3599,3624,3639,3643,3647,3651,3666,3672,3676,3680,3685,3720,3732,3736,3759,3770,3789,3793,3797,3801,3806,3824,3836,3852,3866,3878,3883,3887,3891,3895,3900,3918,3929,3948,3953,3957,3961,3966,3989,4000,4005,4015,4046,4051,4061,4066,4073,4079,4086,4092,4096,4100,4105,4125,4141,4152,4163,4176,4188,4207,4213,4218,4233,4255,4260,4265,4273,4280,4285,4290],{"__ignoreMap":184},[189,2269,2270],{"class":191,"line":192},[189,2271,196],{"class":195},[189,2273,2274],{"class":191,"line":199},[189,2275,2276],{"class":195},"    Player Inventory System\n",[189,2278,2279],{"class":191,"line":205},[189,2280,2281],{"class":195},"    Manages player items with stacking and limits\n",[189,2283,2284],{"class":191,"line":211},[189,2285,214],{"class":195},[189,2287,2288],{"class":191,"line":217},[189,2289,221],{"emptyLinePlaceholder":220},[189,2291,2292,2294,2297,2299],{"class":191,"line":224},[189,2293,228],{"class":227},[189,2295,2296],{"class":231}," Inventory ",[189,2298,235],{"class":227},[189,2300,238],{"class":231},[189,2302,2303,2306,2309,2311],{"class":191,"line":241},[189,2304,2305],{"class":231},"Inventory.",[189,2307,2308],{"class":247},"MAX_SLOTS",[189,2310,251],{"class":227},[189,2312,2313],{"class":468}," 50\n",[189,2315,2316,2318,2321,2323],{"class":191,"line":257},[189,2317,2305],{"class":231},[189,2319,2320],{"class":247},"MAX_STACK",[189,2322,251],{"class":227},[189,2324,2325],{"class":468}," 999\n",[189,2327,2328],{"class":191,"line":269},[189,2329,221],{"emptyLinePlaceholder":220},[189,2331,2332,2334,2337,2339,2341,2343,2345],{"class":191,"line":274},[189,2333,284],{"class":283},[189,2335,2336],{"class":287}," Inventory",[189,2338,291],{"class":231},[189,2340,294],{"class":287},[189,2342,297],{"class":227},[189,2344,262],{"class":300},[189,2346,310],{"class":227},[189,2348,2349,2352,2354,2356],{"class":191,"line":280},[189,2350,2351],{"class":231},"    Inventory.",[189,2353,262],{"class":247},[189,2355,251],{"class":227},[189,2357,2358],{"class":231}," db\n",[189,2360,2361,2363,2365,2367,2370,2372,2374,2376,2378,2380,2382],{"class":191,"line":313},[189,2362,2351],{"class":231},[189,2364,445],{"class":247},[189,2366,251],{"class":227},[189,2368,2369],{"class":247}," db",[189,2371,401],{"class":231},[189,2373,438],{"class":287},[189,2375,297],{"class":231},[189,2377,357],{"class":227},[189,2379,445],{"class":360},[189,2381,357],{"class":227},[189,2383,310],{"class":231},[189,2385,2386],{"class":191,"line":332},[189,2387,560],{"class":283},[189,2389,2390],{"class":191,"line":349},[189,2391,221],{"emptyLinePlaceholder":220},[189,2393,2394],{"class":191,"line":368},[189,2395,2396],{"class":195},"-- Get player inventory\n",[189,2398,2399,2401,2403,2405,2408,2410,2412,2414,2416],{"class":191,"line":377},[189,2400,284],{"class":283},[189,2402,2336],{"class":287},[189,2404,291],{"class":231},[189,2406,2407],{"class":287},"Get",[189,2409,297],{"class":227},[189,2411,642],{"class":300},[189,2413,304],{"class":227},[189,2415,647],{"class":300},[189,2417,310],{"class":227},[189,2419,2420,2422,2424,2426,2428],{"class":191,"line":383},[189,2421,2351],{"class":231},[189,2423,445],{"class":247},[189,2425,401],{"class":231},[189,2427,681],{"class":287},[189,2429,792],{"class":231},[189,2431,2432,2434,2436],{"class":191,"line":388},[189,2433,1270],{"class":231},[189,2435,235],{"class":227},[189,2437,803],{"class":231},[189,2439,2440,2442,2444,2446,2448,2450],{"class":191,"line":410},[189,2441,1299],{"class":283},[189,2443,297],{"class":227},[189,2445,695],{"class":300},[189,2447,304],{"class":227},[189,2449,1590],{"class":300},[189,2451,310],{"class":227},[189,2453,2454,2456,2458,2460,2462,2464],{"class":191,"line":415},[189,2455,1316],{"class":283},[189,2457,711],{"class":231},[189,2459,1602],{"class":227},[189,2461,338],{"class":227},[189,2463,1607],{"class":231},[189,2465,714],{"class":283},[189,2467,2468,2470],{"class":191,"line":421},[189,2469,1327],{"class":287},[189,2471,2472],{"class":231},"({})\n",[189,2474,2475],{"class":191,"line":452},[189,2476,2069],{"class":283},[189,2478,2479,2481,2483,2486,2489],{"class":191,"line":490},[189,2480,1327],{"class":287},[189,2482,2077],{"class":231},[189,2484,2485],{"class":247},"inventory",[189,2487,2488],{"class":227}," or",[189,2490,2491],{"class":231}," {})\n",[189,2493,2494],{"class":191,"line":526},[189,2495,1343],{"class":283},[189,2497,2498],{"class":191,"line":531},[189,2499,757],{"class":283},[189,2501,2502],{"class":191,"line":548},[189,2503,1354],{"class":231},[189,2505,2506],{"class":191,"line":557},[189,2507,560],{"class":283},[189,2509,2510],{"class":191,"line":563},[189,2511,221],{"emptyLinePlaceholder":220},[189,2513,2514],{"class":191,"line":568},[189,2515,2516],{"class":195},"-- Add item to inventory\n",[189,2518,2519,2521,2523,2525,2528,2530,2532,2534,2537,2539,2542,2544,2547,2549,2551],{"class":191,"line":574},[189,2520,284],{"class":283},[189,2522,2336],{"class":287},[189,2524,291],{"class":231},[189,2526,2527],{"class":287},"AddItem",[189,2529,297],{"class":227},[189,2531,642],{"class":300},[189,2533,304],{"class":227},[189,2535,2536],{"class":300}," itemId",[189,2538,304],{"class":227},[189,2540,2541],{"class":300}," itemName",[189,2543,304],{"class":227},[189,2545,2546],{"class":300}," quantity",[189,2548,304],{"class":227},[189,2550,647],{"class":300},[189,2552,310],{"class":227},[189,2554,2555,2558,2560,2563,2565],{"class":191,"line":589},[189,2556,2557],{"class":231},"    quantity ",[189,2559,235],{"class":227},[189,2561,2562],{"class":231}," quantity ",[189,2564,1602],{"class":227},[189,2566,1765],{"class":468},[189,2568,2569],{"class":191,"line":612},[189,2570,221],{"emptyLinePlaceholder":220},[189,2572,2573,2575,2577,2579,2581,2583,2585,2587,2589,2591,2593,2595,2597],{"class":191,"line":617},[189,2574,2351],{"class":231},[189,2576,445],{"class":247},[189,2578,401],{"class":231},[189,2580,681],{"class":287},[189,2582,463],{"class":231},[189,2584,235],{"class":227},[189,2586,688],{"class":231},[189,2588,284],{"class":283},[189,2590,297],{"class":227},[189,2592,695],{"class":300},[189,2594,304],{"class":227},[189,2596,1590],{"class":300},[189,2598,310],{"class":227},[189,2600,2601,2603,2605,2607,2609,2611],{"class":191,"line":622},[189,2602,708],{"class":283},[189,2604,711],{"class":231},[189,2606,1602],{"class":227},[189,2608,338],{"class":227},[189,2610,1607],{"class":231},[189,2612,714],{"class":283},[189,2614,2615,2617,2619,2621,2623,2625,2627,2629,2631,2634,2636,2638],{"class":191,"line":628},[189,2616,1316],{"class":283},[189,2618,1319],{"class":231},[189,2620,1619],{"class":283},[189,2622,647],{"class":287},[189,2624,297],{"class":231},[189,2626,512],{"class":227},[189,2628,478],{"class":231},[189,2630,357],{"class":227},[189,2632,2633],{"class":360},"Player not found",[189,2635,357],{"class":227},[189,2637,1633],{"class":231},[189,2639,560],{"class":283},[189,2641,2642],{"class":191,"line":652},[189,2643,751],{"class":283},[189,2645,2646],{"class":191,"line":668},[189,2647,757],{"class":283},[189,2649,2650],{"class":191,"line":673},[189,2651,221],{"emptyLinePlaceholder":220},[189,2653,2654,2656,2659,2661,2663,2665,2667],{"class":191,"line":705},[189,2655,1656],{"class":227},[189,2657,2658],{"class":231}," inventory ",[189,2660,235],{"class":227},[189,2662,1664],{"class":231},[189,2664,2485],{"class":247},[189,2666,2488],{"class":227},[189,2668,238],{"class":231},[189,2670,2671,2673,2676,2678],{"class":191,"line":717},[189,2672,1656],{"class":227},[189,2674,2675],{"class":231}," added ",[189,2677,235],{"class":227},[189,2679,374],{"class":227},[189,2681,2682],{"class":191,"line":735},[189,2683,221],{"emptyLinePlaceholder":220},[189,2685,2686],{"class":191,"line":748},[189,2687,2688],{"class":195},"        -- Try to stack with existing item\n",[189,2690,2691,2694,2697,2700,2703,2706],{"class":191,"line":754},[189,2692,2693],{"class":283},"        for",[189,2695,2696],{"class":231}," _, item ",[189,2698,2699],{"class":283},"in",[189,2701,2702],{"class":287}," ipairs",[189,2704,2705],{"class":231},"(inventory) ",[189,2707,1733],{"class":283},[189,2709,2710,2712,2715,2718,2721,2724],{"class":191,"line":760},[189,2711,1316],{"class":283},[189,2713,2714],{"class":231}," item.",[189,2716,2717],{"class":247},"item_id",[189,2719,2720],{"class":227}," ==",[189,2722,2723],{"class":231}," itemId ",[189,2725,714],{"class":283},[189,2727,2728,2731,2734,2736,2739,2742,2745,2747,2750,2752],{"class":191,"line":765},[189,2729,2730],{"class":227},"                local",[189,2732,2733],{"class":231}," newQty ",[189,2735,235],{"class":227},[189,2737,2738],{"class":287}," math.min",[189,2740,2741],{"class":231},"(item.",[189,2743,2744],{"class":247},"quantity",[189,2746,1670],{"class":227},[189,2748,2749],{"class":231}," quantity, Inventory.",[189,2751,2320],{"class":247},[189,2753,310],{"class":231},[189,2755,2756,2758,2761,2763,2765,2767,2769],{"class":191,"line":775},[189,2757,2730],{"class":227},[189,2759,2760],{"class":231}," actualAdded ",[189,2762,235],{"class":227},[189,2764,2733],{"class":231},[189,2766,1746],{"class":227},[189,2768,2714],{"class":231},[189,2770,2771],{"class":247},"quantity\n",[189,2773,2774,2777,2779,2781],{"class":191,"line":781},[189,2775,2776],{"class":231},"                item.",[189,2778,2744],{"class":247},[189,2780,251],{"class":227},[189,2782,2783],{"class":231}," newQty\n",[189,2785,2786,2789,2791],{"class":191,"line":795},[189,2787,2788],{"class":231},"                added ",[189,2790,235],{"class":227},[189,2792,554],{"class":227},[189,2794,2795,2798,2800,2802,2804],{"class":191,"line":806},[189,2796,2797],{"class":231},"                quantity ",[189,2799,235],{"class":227},[189,2801,2562],{"class":231},[189,2803,1746],{"class":227},[189,2805,2806],{"class":231}," actualAdded\n",[189,2808,2809],{"class":191,"line":835},[189,2810,2811],{"class":283},"                break\n",[189,2813,2814],{"class":191,"line":847},[189,2815,1343],{"class":283},[189,2817,2818],{"class":191,"line":853},[189,2819,757],{"class":283},[189,2821,2822],{"class":191,"line":865},[189,2823,221],{"emptyLinePlaceholder":220},[189,2825,2826],{"class":191,"line":871},[189,2827,2828],{"class":195},"        -- Add as new item if not stacked (and we have remaining)\n",[189,2830,2831,2833,2835,2837,2840,2842,2844,2846],{"class":191,"line":877},[189,2832,708],{"class":283},[189,2834,338],{"class":227},[189,2836,2675],{"class":231},[189,2838,2839],{"class":227},"and",[189,2841,2562],{"class":231},[189,2843,1333],{"class":227},[189,2845,923],{"class":468},[189,2847,346],{"class":283},[189,2849,2850,2852,2855,2858,2860,2863,2865],{"class":191,"line":891},[189,2851,1316],{"class":283},[189,2853,2854],{"class":227}," #",[189,2856,2857],{"class":231},"inventory ",[189,2859,1728],{"class":227},[189,2861,2862],{"class":231}," Inventory.",[189,2864,2308],{"class":247},[189,2866,346],{"class":283},[189,2868,2869,2871,2873,2875,2877,2879,2881,2883,2885,2888,2890,2892],{"class":191,"line":902},[189,2870,1117],{"class":283},[189,2872,1319],{"class":231},[189,2874,1619],{"class":283},[189,2876,647],{"class":287},[189,2878,297],{"class":231},[189,2880,512],{"class":227},[189,2882,478],{"class":231},[189,2884,357],{"class":227},[189,2886,2887],{"class":360},"Inventory full",[189,2889,357],{"class":227},[189,2891,1633],{"class":231},[189,2893,560],{"class":283},[189,2895,2896],{"class":191,"line":915},[189,2897,2898],{"class":283},"                return\n",[189,2900,2901],{"class":191,"line":928},[189,2902,1343],{"class":283},[189,2904,2905],{"class":191,"line":941},[189,2906,221],{"emptyLinePlaceholder":220},[189,2908,2909,2912],{"class":191,"line":953},[189,2910,2911],{"class":287},"            table.insert",[189,2913,2914],{"class":231},"(inventory, {\n",[189,2916,2917,2920,2922],{"class":191,"line":966},[189,2918,2919],{"class":231},"                item_id ",[189,2921,235],{"class":227},[189,2923,2924],{"class":231}," itemId,\n",[189,2926,2927,2930,2932],{"class":191,"line":978},[189,2928,2929],{"class":231},"                item_name ",[189,2931,235],{"class":227},[189,2933,2934],{"class":231}," itemName,\n",[189,2936,2937,2939,2941,2943,2946,2948],{"class":191,"line":988},[189,2938,2797],{"class":231},[189,2940,235],{"class":227},[189,2942,2738],{"class":287},[189,2944,2945],{"class":231},"(quantity, Inventory.",[189,2947,2320],{"class":247},[189,2949,2950],{"class":231},"),\n",[189,2952,2953,2956,2958,2960],{"class":191,"line":1000},[189,2954,2955],{"class":231},"                added_at ",[189,2957,235],{"class":227},[189,2959,829],{"class":287},[189,2961,586],{"class":231},[189,2963,2964],{"class":191,"line":1012},[189,2965,2966],{"class":231},"            })\n",[189,2968,2969],{"class":191,"line":1023},[189,2970,757],{"class":283},[189,2972,2973],{"class":191,"line":1029},[189,2974,221],{"emptyLinePlaceholder":220},[189,2976,2977],{"class":191,"line":1039},[189,2978,2979],{"class":195},"        -- Save inventory\n",[189,2981,2982,2985,2987,2989,2991],{"class":191,"line":1052},[189,2983,2984],{"class":231},"        Inventory.",[189,2986,445],{"class":247},[189,2988,401],{"class":231},[189,2990,789],{"class":287},[189,2992,792],{"class":231},[189,2994,2995,2997,2999],{"class":191,"line":1062},[189,2996,1830],{"class":231},[189,2998,235],{"class":227},[189,3000,803],{"class":231},[189,3002,3003,3006,3008,3010,3012,3014,3016,3019,3021],{"class":191,"line":1067},[189,3004,3005],{"class":231},"            { [",[189,3007,357],{"class":227},[189,3009,814],{"class":360},[189,3011,357],{"class":227},[189,3013,819],{"class":231},[189,3015,235],{"class":227},[189,3017,3018],{"class":231}," { inventory ",[189,3020,235],{"class":227},[189,3022,3023],{"class":231}," inventory } },\n",[189,3025,3026,3028,3030,3032],{"class":191,"line":1077},[189,3027,1898],{"class":283},[189,3029,297],{"class":227},[189,3031,695],{"class":300},[189,3033,310],{"class":227},[189,3035,3036,3038,3040],{"class":191,"line":1083},[189,3037,1117],{"class":283},[189,3039,1319],{"class":231},[189,3041,714],{"class":283},[189,3043,3044,3046,3048,3051,3054,3056,3059,3062,3064,3066,3069],{"class":191,"line":1088},[189,3045,1127],{"class":287},[189,3047,297],{"class":231},[189,3049,3050],{"class":227},"not",[189,3052,3053],{"class":231}," err, err ",[189,3055,2839],{"class":227},[189,3057,3058],{"class":227}," \"",[189,3060,3061],{"class":360},"Save failed",[189,3063,2207],{"class":227},[189,3065,1602],{"class":227},[189,3067,3068],{"class":227}," nil",[189,3070,310],{"class":231},[189,3072,3073],{"class":191,"line":1114},[189,3074,1170],{"class":283},[189,3076,3077],{"class":191,"line":1124},[189,3078,1343],{"class":283},[189,3080,3081],{"class":191,"line":1136},[189,3082,1937],{"class":231},[189,3084,3085,3087],{"class":191,"line":1142},[189,3086,1189],{"class":283},[189,3088,310],{"class":231},[189,3090,3091],{"class":191,"line":1156},[189,3092,560],{"class":283},[189,3094,3095],{"class":191,"line":1167},[189,3096,221],{"emptyLinePlaceholder":220},[189,3098,3099],{"class":191,"line":1173},[189,3100,3101],{"class":195},"-- Remove item from inventory\n",[189,3103,3104,3106,3108,3110,3113,3115,3117,3119,3121,3123,3125,3127,3129],{"class":191,"line":1181},[189,3105,284],{"class":283},[189,3107,2336],{"class":287},[189,3109,291],{"class":231},[189,3111,3112],{"class":287},"RemoveItem",[189,3114,297],{"class":227},[189,3116,642],{"class":300},[189,3118,304],{"class":227},[189,3120,2536],{"class":300},[189,3122,304],{"class":227},[189,3124,2546],{"class":300},[189,3126,304],{"class":227},[189,3128,647],{"class":300},[189,3130,310],{"class":227},[189,3132,3133,3135,3137,3139,3141],{"class":191,"line":1186},[189,3134,2557],{"class":231},[189,3136,235],{"class":227},[189,3138,2562],{"class":231},[189,3140,1602],{"class":227},[189,3142,1765],{"class":468},[189,3144,3145],{"class":191,"line":1194},[189,3146,221],{"emptyLinePlaceholder":220},[189,3148,3149,3151,3153,3155,3157,3159,3161,3163,3165,3167,3169,3171,3173],{"class":191,"line":1199},[189,3150,2351],{"class":231},[189,3152,445],{"class":247},[189,3154,401],{"class":231},[189,3156,681],{"class":287},[189,3158,463],{"class":231},[189,3160,235],{"class":227},[189,3162,688],{"class":231},[189,3164,284],{"class":283},[189,3166,297],{"class":227},[189,3168,695],{"class":300},[189,3170,304],{"class":227},[189,3172,1590],{"class":300},[189,3174,310],{"class":227},[189,3176,3177,3179,3181,3183,3185,3187],{"class":191,"line":1204},[189,3178,708],{"class":283},[189,3180,711],{"class":231},[189,3182,1602],{"class":227},[189,3184,338],{"class":227},[189,3186,1607],{"class":231},[189,3188,714],{"class":283},[189,3190,3191,3193,3195,3197,3199,3201,3203,3205,3207,3209,3211,3213],{"class":191,"line":1210},[189,3192,1316],{"class":283},[189,3194,1319],{"class":231},[189,3196,1619],{"class":283},[189,3198,647],{"class":287},[189,3200,297],{"class":231},[189,3202,512],{"class":227},[189,3204,478],{"class":231},[189,3206,357],{"class":227},[189,3208,2633],{"class":360},[189,3210,357],{"class":227},[189,3212,1633],{"class":231},[189,3214,560],{"class":283},[189,3216,3217],{"class":191,"line":1236},[189,3218,751],{"class":283},[189,3220,3221],{"class":191,"line":1251},[189,3222,757],{"class":283},[189,3224,3225],{"class":191,"line":1256},[189,3226,221],{"emptyLinePlaceholder":220},[189,3228,3229,3231,3233,3235,3237,3239,3241],{"class":191,"line":1267},[189,3230,1656],{"class":227},[189,3232,2658],{"class":231},[189,3234,235],{"class":227},[189,3236,1664],{"class":231},[189,3238,2485],{"class":247},[189,3240,2488],{"class":227},[189,3242,238],{"class":231},[189,3244,3245,3247,3250,3252],{"class":191,"line":1277},[189,3246,1656],{"class":227},[189,3248,3249],{"class":231}," removed ",[189,3251,235],{"class":227},[189,3253,374],{"class":227},[189,3255,3256],{"class":191,"line":1296},[189,3257,221],{"emptyLinePlaceholder":220},[189,3259,3260,3262,3265,3267,3269,3271],{"class":191,"line":1313},[189,3261,2693],{"class":283},[189,3263,3264],{"class":231}," i, item ",[189,3266,2699],{"class":283},[189,3268,2702],{"class":287},[189,3270,2705],{"class":231},[189,3272,1733],{"class":283},[189,3274,3275,3277,3279,3281,3283,3285],{"class":191,"line":1324},[189,3276,1316],{"class":283},[189,3278,2714],{"class":231},[189,3280,2717],{"class":247},[189,3282,2720],{"class":227},[189,3284,2723],{"class":231},[189,3286,714],{"class":283},[189,3288,3289,3291,3293,3295,3298,3300],{"class":191,"line":1340},[189,3290,1117],{"class":283},[189,3292,2714],{"class":231},[189,3294,2744],{"class":247},[189,3296,3297],{"class":227}," \u003C=",[189,3299,2562],{"class":231},[189,3301,714],{"class":283},[189,3303,3304,3307],{"class":191,"line":1346},[189,3305,3306],{"class":287},"                    table.remove",[189,3308,3309],{"class":231},"(inventory, i)\n",[189,3311,3312],{"class":191,"line":1351},[189,3313,1139],{"class":283},[189,3315,3316,3319,3321,3323,3325,3327,3329],{"class":191,"line":1357},[189,3317,3318],{"class":231},"                    item.",[189,3320,2744],{"class":247},[189,3322,251],{"class":227},[189,3324,2714],{"class":231},[189,3326,2744],{"class":247},[189,3328,504],{"class":227},[189,3330,3331],{"class":231}," quantity\n",[189,3333,3334],{"class":191,"line":1362},[189,3335,1170],{"class":283},[189,3337,3338,3341,3343],{"class":191,"line":1367},[189,3339,3340],{"class":231},"                removed ",[189,3342,235],{"class":227},[189,3344,554],{"class":227},[189,3346,3347],{"class":191,"line":1373},[189,3348,2811],{"class":283},[189,3350,3351],{"class":191,"line":1400},[189,3352,1343],{"class":283},[189,3354,3355],{"class":191,"line":1415},[189,3356,757],{"class":283},[189,3358,3359],{"class":191,"line":1420},[189,3360,221],{"emptyLinePlaceholder":220},[189,3362,3363,3365,3367,3369],{"class":191,"line":1431},[189,3364,708],{"class":283},[189,3366,338],{"class":227},[189,3368,3249],{"class":231},[189,3370,714],{"class":283},[189,3372,3373,3375,3377,3379,3381,3383,3385,3387,3389,3392,3394,3396],{"class":191,"line":1440},[189,3374,1316],{"class":283},[189,3376,1319],{"class":231},[189,3378,1619],{"class":283},[189,3380,647],{"class":287},[189,3382,297],{"class":231},[189,3384,512],{"class":227},[189,3386,478],{"class":231},[189,3388,357],{"class":227},[189,3390,3391],{"class":360},"Item not found",[189,3393,357],{"class":227},[189,3395,1633],{"class":231},[189,3397,560],{"class":283},[189,3399,3400],{"class":191,"line":1446},[189,3401,751],{"class":283},[189,3403,3404],{"class":191,"line":1461},[189,3405,757],{"class":283},[189,3407,3408],{"class":191,"line":1470},[189,3409,221],{"emptyLinePlaceholder":220},[189,3411,3412,3414,3416,3418,3420],{"class":191,"line":1483},[189,3413,2984],{"class":231},[189,3415,445],{"class":247},[189,3417,401],{"class":231},[189,3419,789],{"class":287},[189,3421,792],{"class":231},[189,3423,3424,3426,3428],{"class":191,"line":1488},[189,3425,1830],{"class":231},[189,3427,235],{"class":227},[189,3429,803],{"class":231},[189,3431,3432,3434,3436,3438,3440,3442,3444,3446,3448],{"class":191,"line":1493},[189,3433,3005],{"class":231},[189,3435,357],{"class":227},[189,3437,814],{"class":360},[189,3439,357],{"class":227},[189,3441,819],{"class":231},[189,3443,235],{"class":227},[189,3445,3018],{"class":231},[189,3447,235],{"class":227},[189,3449,3023],{"class":231},[189,3451,3452,3454,3456,3458],{"class":191,"line":1498},[189,3453,1898],{"class":283},[189,3455,297],{"class":227},[189,3457,695],{"class":300},[189,3459,310],{"class":227},[189,3461,3462,3464,3466],{"class":191,"line":1503},[189,3463,1117],{"class":283},[189,3465,1319],{"class":231},[189,3467,714],{"class":283},[189,3469,3470,3472,3474,3476,3478,3480,3482,3484,3486,3488,3490],{"class":191,"line":1508},[189,3471,1127],{"class":287},[189,3473,297],{"class":231},[189,3475,3050],{"class":227},[189,3477,3053],{"class":231},[189,3479,2839],{"class":227},[189,3481,3058],{"class":227},[189,3483,3061],{"class":360},[189,3485,2207],{"class":227},[189,3487,1602],{"class":227},[189,3489,3068],{"class":227},[189,3491,310],{"class":231},[189,3493,3494],{"class":191,"line":1514},[189,3495,1170],{"class":283},[189,3497,3498],{"class":191,"line":1541},[189,3499,1343],{"class":283},[189,3501,3502],{"class":191,"line":1556},[189,3503,1937],{"class":231},[189,3505,3506,3508],{"class":191,"line":1561},[189,3507,1189],{"class":283},[189,3509,310],{"class":231},[189,3511,3512],{"class":191,"line":1567},[189,3513,560],{"class":283},[189,3515,3516],{"class":191,"line":1595},[189,3517,221],{"emptyLinePlaceholder":220},[189,3519,3520],{"class":191,"line":1612},[189,3521,3522],{"class":195},"-- Check if player has item\n",[189,3524,3525,3527,3529,3531,3534,3536,3538,3540,3542,3544,3546,3548,3550],{"class":191,"line":1638},[189,3526,284],{"class":283},[189,3528,2336],{"class":287},[189,3530,291],{"class":231},[189,3532,3533],{"class":287},"HasItem",[189,3535,297],{"class":227},[189,3537,642],{"class":300},[189,3539,304],{"class":227},[189,3541,2536],{"class":300},[189,3543,304],{"class":227},[189,3545,2546],{"class":300},[189,3547,304],{"class":227},[189,3549,647],{"class":300},[189,3551,310],{"class":227},[189,3553,3554,3556,3558,3560,3562],{"class":191,"line":1643},[189,3555,2557],{"class":231},[189,3557,235],{"class":227},[189,3559,2562],{"class":231},[189,3561,1602],{"class":227},[189,3563,1765],{"class":468},[189,3565,3566],{"class":191,"line":1648},[189,3567,221],{"emptyLinePlaceholder":220},[189,3569,3570,3572,3574,3577,3579,3581,3583],{"class":191,"line":1653},[189,3571,2351],{"class":231},[189,3573,2407],{"class":287},[189,3575,3576],{"class":231},"(steamid, ",[189,3578,284],{"class":283},[189,3580,297],{"class":227},[189,3582,2485],{"class":300},[189,3584,310],{"class":227},[189,3586,3587,3589,3591,3593,3595,3597],{"class":191,"line":1676},[189,3588,2693],{"class":283},[189,3590,2696],{"class":231},[189,3592,2699],{"class":283},[189,3594,2702],{"class":287},[189,3596,2705],{"class":231},[189,3598,1733],{"class":283},[189,3600,3601,3603,3605,3607,3609,3611,3613,3615,3617,3620,3622],{"class":191,"line":1691},[189,3602,1316],{"class":283},[189,3604,2714],{"class":231},[189,3606,2717],{"class":247},[189,3608,2720],{"class":227},[189,3610,2723],{"class":231},[189,3612,2839],{"class":227},[189,3614,2714],{"class":231},[189,3616,2744],{"class":247},[189,3618,3619],{"class":227}," >=",[189,3621,2562],{"class":231},[189,3623,714],{"class":283},[189,3625,3626,3628,3630,3632,3635,3637],{"class":191,"line":1709},[189,3627,1327],{"class":287},[189,3629,297],{"class":231},[189,3631,475],{"class":227},[189,3633,3634],{"class":231},", item.",[189,3636,2744],{"class":247},[189,3638,310],{"class":231},[189,3640,3641],{"class":191,"line":1714},[189,3642,2898],{"class":283},[189,3644,3645],{"class":191,"line":1720},[189,3646,1343],{"class":283},[189,3648,3649],{"class":191,"line":1736},[189,3650,757],{"class":283},[189,3652,3653,3656,3658,3660,3662,3664],{"class":191,"line":1752},[189,3654,3655],{"class":287},"        callback",[189,3657,297],{"class":231},[189,3659,512],{"class":227},[189,3661,478],{"class":231},[189,3663,1630],{"class":468},[189,3665,310],{"class":231},[189,3667,3668,3670],{"class":191,"line":1768},[189,3669,1189],{"class":283},[189,3671,310],{"class":231},[189,3673,3674],{"class":191,"line":1782},[189,3675,560],{"class":283},[189,3677,3678],{"class":191,"line":1787},[189,3679,221],{"emptyLinePlaceholder":220},[189,3681,3682],{"class":191,"line":1792},[189,3683,3684],{"class":195},"-- Transfer item between players\n",[189,3686,3687,3689,3691,3693,3696,3698,3701,3703,3706,3708,3710,3712,3714,3716,3718],{"class":191,"line":1810},[189,3688,284],{"class":283},[189,3690,2336],{"class":287},[189,3692,291],{"class":231},[189,3694,3695],{"class":287},"Transfer",[189,3697,297],{"class":227},[189,3699,3700],{"class":300},"fromSteamid",[189,3702,304],{"class":227},[189,3704,3705],{"class":300}," toSteamid",[189,3707,304],{"class":227},[189,3709,2536],{"class":300},[189,3711,304],{"class":227},[189,3713,2546],{"class":300},[189,3715,304],{"class":227},[189,3717,647],{"class":300},[189,3719,310],{"class":227},[189,3721,3722,3724,3726,3728,3730],{"class":191,"line":1815},[189,3723,2557],{"class":231},[189,3725,235],{"class":227},[189,3727,2562],{"class":231},[189,3729,1602],{"class":227},[189,3731,1765],{"class":468},[189,3733,3734],{"class":191,"line":1827},[189,3735,221],{"emptyLinePlaceholder":220},[189,3737,3738,3740,3742,3745,3747,3749,3752,3754,3757],{"class":191,"line":1837},[189,3739,2351],{"class":231},[189,3741,3533],{"class":287},[189,3743,3744],{"class":231},"(fromSteamid, itemId, quantity, ",[189,3746,284],{"class":283},[189,3748,297],{"class":227},[189,3750,3751],{"class":300},"has",[189,3753,304],{"class":227},[189,3755,3756],{"class":300}," currentQty",[189,3758,310],{"class":227},[189,3760,3761,3763,3765,3768],{"class":191,"line":1843},[189,3762,708],{"class":283},[189,3764,338],{"class":227},[189,3766,3767],{"class":231}," has ",[189,3769,714],{"class":283},[189,3771,3772,3774,3776,3778,3780,3782,3785,3787],{"class":191,"line":1861},[189,3773,738],{"class":287},[189,3775,297],{"class":231},[189,3777,512],{"class":227},[189,3779,478],{"class":231},[189,3781,357],{"class":227},[189,3783,3784],{"class":360},"Insufficient items",[189,3786,357],{"class":227},[189,3788,310],{"class":231},[189,3790,3791],{"class":191,"line":1872},[189,3792,751],{"class":283},[189,3794,3795],{"class":191,"line":1883},[189,3796,757],{"class":283},[189,3798,3799],{"class":191,"line":1889},[189,3800,221],{"emptyLinePlaceholder":220},[189,3802,3803],{"class":191,"line":1895},[189,3804,3805],{"class":195},"        -- Get item name\n",[189,3807,3808,3810,3812,3815,3817,3819,3822],{"class":191,"line":1907},[189,3809,2984],{"class":231},[189,3811,2407],{"class":287},[189,3813,3814],{"class":231},"(fromSteamid, ",[189,3816,284],{"class":283},[189,3818,297],{"class":227},[189,3820,3821],{"class":300},"inv",[189,3823,310],{"class":227},[189,3825,3826,3828,3831,3833],{"class":191,"line":1916},[189,3827,880],{"class":227},[189,3829,3830],{"class":231}," itemName ",[189,3832,235],{"class":227},[189,3834,3835],{"class":227}," \"\"\n",[189,3837,3838,3841,3843,3845,3847,3850],{"class":191,"line":1924},[189,3839,3840],{"class":283},"            for",[189,3842,2696],{"class":231},[189,3844,2699],{"class":283},[189,3846,2702],{"class":287},[189,3848,3849],{"class":231},"(inv) ",[189,3851,1733],{"class":283},[189,3853,3854,3856,3858,3860,3862,3864],{"class":191,"line":1929},[189,3855,1117],{"class":283},[189,3857,2714],{"class":231},[189,3859,2717],{"class":247},[189,3861,2720],{"class":227},[189,3863,2723],{"class":231},[189,3865,714],{"class":283},[189,3867,3868,3871,3873,3875],{"class":191,"line":1934},[189,3869,3870],{"class":231},"                    itemName ",[189,3872,235],{"class":227},[189,3874,2714],{"class":231},[189,3876,3877],{"class":247},"item_name\n",[189,3879,3880],{"class":191,"line":1940},[189,3881,3882],{"class":283},"                    break\n",[189,3884,3885],{"class":191,"line":1947},[189,3886,1170],{"class":283},[189,3888,3889],{"class":191,"line":1952},[189,3890,1343],{"class":283},[189,3892,3893],{"class":191,"line":1957},[189,3894,221],{"emptyLinePlaceholder":220},[189,3896,3897],{"class":191,"line":1963},[189,3898,3899],{"class":195},"            -- Remove from source\n",[189,3901,3902,3905,3907,3909,3911,3913,3916],{"class":191,"line":1985},[189,3903,3904],{"class":231},"            Inventory.",[189,3906,3112],{"class":287},[189,3908,3744],{"class":231},[189,3910,284],{"class":283},[189,3912,297],{"class":227},[189,3914,3915],{"class":300},"success",[189,3917,310],{"class":227},[189,3919,3920,3922,3924,3927],{"class":191,"line":2000},[189,3921,1117],{"class":283},[189,3923,338],{"class":227},[189,3925,3926],{"class":231}," success ",[189,3928,714],{"class":283},[189,3930,3931,3933,3935,3937,3939,3941,3944,3946],{"class":191,"line":2005},[189,3932,1127],{"class":287},[189,3934,297],{"class":231},[189,3936,512],{"class":227},[189,3938,478],{"class":231},[189,3940,357],{"class":227},[189,3942,3943],{"class":360},"Failed to remove item",[189,3945,357],{"class":227},[189,3947,310],{"class":231},[189,3949,3950],{"class":191,"line":2016},[189,3951,3952],{"class":283},"                    return\n",[189,3954,3955],{"class":191,"line":2025},[189,3956,1170],{"class":283},[189,3958,3959],{"class":191,"line":2040},[189,3960,221],{"emptyLinePlaceholder":220},[189,3962,3963],{"class":191,"line":2055},[189,3964,3965],{"class":195},"                -- Add to destination\n",[189,3967,3968,3971,3973,3976,3978,3980,3982,3984,3987],{"class":191,"line":2066},[189,3969,3970],{"class":231},"                Inventory.",[189,3972,2527],{"class":287},[189,3974,3975],{"class":231},"(toSteamid, itemId, itemName, quantity, ",[189,3977,284],{"class":283},[189,3979,297],{"class":227},[189,3981,3915],{"class":300},[189,3983,304],{"class":227},[189,3985,3986],{"class":300}," err",[189,3988,310],{"class":227},[189,3990,3991,3994,3996,3998],{"class":191,"line":2072},[189,3992,3993],{"class":283},"                    if",[189,3995,338],{"class":227},[189,3997,3926],{"class":231},[189,3999,714],{"class":283},[189,4001,4002],{"class":191,"line":2085},[189,4003,4004],{"class":195},"                        -- Rollback\n",[189,4006,4007,4010,4012],{"class":191,"line":2090},[189,4008,4009],{"class":231},"                        Inventory.",[189,4011,2527],{"class":287},[189,4013,4014],{"class":231},"(fromSteamid, itemId, itemName, quantity)\n",[189,4016,4017,4020,4022,4024,4026,4028,4031,4033,4035,4038,4040,4043],{"class":191,"line":2095},[189,4018,4019],{"class":287},"                        callback",[189,4021,297],{"class":231},[189,4023,512],{"class":227},[189,4025,478],{"class":231},[189,4027,357],{"class":227},[189,4029,4030],{"class":360},"Failed to add item: ",[189,4032,2207],{"class":227},[189,4034,2210],{"class":227},[189,4036,4037],{"class":231}," (err ",[189,4039,1602],{"class":227},[189,4041,4042],{"class":227}," \"\"",[189,4044,4045],{"class":231},"))\n",[189,4047,4048],{"class":191,"line":2100},[189,4049,4050],{"class":283},"                    else\n",[189,4052,4053,4055,4057,4059],{"class":191,"line":2105},[189,4054,4019],{"class":287},[189,4056,297],{"class":231},[189,4058,475],{"class":227},[189,4060,310],{"class":231},[189,4062,4063],{"class":191,"line":2110},[189,4064,4065],{"class":283},"                    end\n",[189,4067,4068,4071],{"class":191,"line":2116},[189,4069,4070],{"class":283},"                end",[189,4072,310],{"class":231},[189,4074,4075,4077],{"class":191,"line":2143},[189,4076,1176],{"class":283},[189,4078,310],{"class":231},[189,4080,4081,4084],{"class":191,"line":2158},[189,4082,4083],{"class":283},"        end",[189,4085,310],{"class":231},[189,4087,4088,4090],{"class":191,"line":2163},[189,4089,1189],{"class":283},[189,4091,310],{"class":231},[189,4093,4094],{"class":191,"line":2174},[189,4095,560],{"class":283},[189,4097,4098],{"class":191,"line":2183},[189,4099,221],{"emptyLinePlaceholder":220},[189,4101,4102],{"class":191,"line":2228},[189,4103,4104],{"class":195},"-- Get inventory statistics\n",[189,4106,4107,4109,4111,4113,4115,4117,4119,4121,4123],{"class":191,"line":2237},[189,4108,284],{"class":283},[189,4110,2336],{"class":287},[189,4112,291],{"class":231},[189,4114,1972],{"class":287},[189,4116,297],{"class":227},[189,4118,642],{"class":300},[189,4120,304],{"class":227},[189,4122,647],{"class":300},[189,4124,310],{"class":227},[189,4126,4127,4129,4131,4133,4135,4137,4139],{"class":191,"line":2242},[189,4128,2351],{"class":231},[189,4130,2407],{"class":287},[189,4132,3576],{"class":231},[189,4134,284],{"class":283},[189,4136,297],{"class":227},[189,4138,2485],{"class":300},[189,4140,310],{"class":227},[189,4142,4143,4145,4148,4150],{"class":191,"line":2247},[189,4144,1656],{"class":227},[189,4146,4147],{"class":231}," stats ",[189,4149,235],{"class":227},[189,4151,888],{"class":231},[189,4153,4154,4157,4159,4161],{"class":191,"line":2252},[189,4155,4156],{"class":231},"            total_items ",[189,4158,235],{"class":227},[189,4160,923],{"class":468},[189,4162,912],{"class":231},[189,4164,4166,4169,4171,4173],{"class":191,"line":4165},186,[189,4167,4168],{"class":231},"            unique_items ",[189,4170,235],{"class":227},[189,4172,2854],{"class":227},[189,4174,4175],{"class":231},"inventory,\n",[189,4177,4179,4182,4184,4186],{"class":191,"line":4178},187,[189,4180,4181],{"class":231},"            slots_used ",[189,4183,235],{"class":227},[189,4185,2854],{"class":227},[189,4187,4175],{"class":231},[189,4189,4191,4194,4196,4198,4200,4202,4204],{"class":191,"line":4190},188,[189,4192,4193],{"class":231},"            slots_free ",[189,4195,235],{"class":227},[189,4197,2862],{"class":231},[189,4199,2308],{"class":247},[189,4201,504],{"class":227},[189,4203,2854],{"class":227},[189,4205,4206],{"class":231},"inventory\n",[189,4208,4210],{"class":191,"line":4209},189,[189,4211,4212],{"class":231},"        }\n",[189,4214,4216],{"class":191,"line":4215},190,[189,4217,221],{"emptyLinePlaceholder":220},[189,4219,4221,4223,4225,4227,4229,4231],{"class":191,"line":4220},191,[189,4222,2693],{"class":283},[189,4224,2696],{"class":231},[189,4226,2699],{"class":283},[189,4228,2702],{"class":287},[189,4230,2705],{"class":231},[189,4232,1733],{"class":283},[189,4234,4236,4239,4242,4244,4247,4249,4251,4253],{"class":191,"line":4235},192,[189,4237,4238],{"class":231},"            stats.",[189,4240,4241],{"class":247},"total_items",[189,4243,251],{"class":227},[189,4245,4246],{"class":231}," stats.",[189,4248,4241],{"class":247},[189,4250,1670],{"class":227},[189,4252,2714],{"class":231},[189,4254,2771],{"class":247},[189,4256,4258],{"class":191,"line":4257},193,[189,4259,757],{"class":283},[189,4261,4263],{"class":191,"line":4262},194,[189,4264,221],{"emptyLinePlaceholder":220},[189,4266,4268,4270],{"class":191,"line":4267},195,[189,4269,3655],{"class":287},[189,4271,4272],{"class":231},"(stats)\n",[189,4274,4276,4278],{"class":191,"line":4275},196,[189,4277,1189],{"class":283},[189,4279,310],{"class":231},[189,4281,4283],{"class":191,"line":4282},197,[189,4284,560],{"class":283},[189,4286,4288],{"class":191,"line":4287},198,[189,4289,221],{"emptyLinePlaceholder":220},[189,4291,4293,4295],{"class":191,"line":4292},199,[189,4294,2255],{"class":283},[189,4296,4297],{"class":231}," Inventory\n",[171,4299,4301],{"id":4300},"gmod-integration","GMod Integration",[179,4303,4305],{"className":181,"code":4304,"language":183,"meta":184,"style":184},"--[[\n    Garry's Mod Integration\n    Hooks and commands for player data system\n]]\n\nrequire(\"mongo\")\n\n-- Initialize on server start\nhook.Add(\"Initialize\", \"InitPlayerData\", function()\n    local success = PlayerData.Initialize(\n        \"mongodb:\u002F\u002Flocalhost:27017\",\n        \"gmod_server\"\n    )\n\n    if success then\n        print(\"[Server] Player data system ready\")\n    else\n        print(\"[Server] WARNING: Player data system failed!\")\n    end\nend)\n\n-- Load player data on join\nhook.Add(\"PlayerInitialSpawn\", \"LoadPlayerData\", function(ply)\n    local steamid = ply:SteamID()\n\n    PlayerData.Load(steamid, function(data, err)\n        if err then\n            print(\"[Server] Failed to load data for\", ply:Nick())\n            return\n        end\n\n        -- Store data on player\n        ply.dbData = data\n\n        -- Set networked variables\n        ply:SetNWInt(\"Level\", data.level)\n        ply:SetNWInt(\"Credits\", data.credits)\n\n        -- Initialize inventory system\n        Inventory.Initialize(PlayerData.db)\n\n        print(\"[Server] Loaded data for\", ply:Nick(), \"Level:\", data.level)\n    end)\nend)\n\n-- Auto-save every 5 minutes\ntimer.Create(\"AutoSavePlayerData\", 300, 0, function()\n    for _, ply in ipairs(player.GetAll()) do\n        if ply.dbData then\n            local data = {\n                credits = ply.dbData.credits,\n                level = ply.dbData.level,\n                experience = ply.dbData.experience,\n                playtime = ply.dbData.playtime + 300,\n                stats = ply.dbData.stats\n            }\n\n            PlayerData.Save(ply:SteamID(), data)\n        end\n    end\n    print(\"[Server] Auto-save complete\")\nend)\n\n-- Save on disconnect\nhook.Add(\"PlayerDisconnected\", \"SavePlayerData\", function(ply)\n    if ply.dbData then\n        PlayerData.Save(ply:SteamID(), {\n            credits = ply.dbData.credits,\n            level = ply.dbData.level,\n            experience = ply.dbData.experience,\n            stats = ply.dbData.stats,\n            last_logout = os.time()\n        })\n        print(\"[Server] Saved data for disconnecting\", ply:Nick())\n    end\nend)\n\n-- Track kills\nhook.Add(\"PlayerDeath\", \"TrackKillStats\", function(victim, inflictor, attacker)\n    if IsValid(victim) and victim:IsPlayer() then\n        PlayerData.IncrementStat(victim:SteamID(), \"deaths\", 1)\n    end\n\n    if IsValid(attacker) and attacker:IsPlayer() and attacker ~= victim then\n        PlayerData.IncrementStat(attacker:SteamID(), \"kills\", 1)\n\n        -- Award experience\n        PlayerData.AddExperience(attacker:SteamID(), 100, function(leveledUp, newLevel)\n            if leveledUp then\n                attacker:ChatPrint(\"Congratulations! You reached level \" .. newLevel .. \"!\")\n                attacker:SetNWInt(\"Level\", newLevel)\n            end\n        end)\n    end\nend)\n\n-- Console command to check stats\nconcommand.Add(\"stats\", function(ply)\n    if not IsValid(ply) then return end\n\n    PlayerData.GetStats(ply:SteamID(), function(stats)\n        if stats then\n            ply:ChatPrint(\"--- Your Stats ---\")\n            ply:ChatPrint(\"Kills: \" .. stats.kills)\n            ply:ChatPrint(\"Deaths: \" .. stats.deaths)\n            ply:ChatPrint(\"Assists: \" .. stats.assists)\n        end\n    end)\nend)\n",[186,4306,4307,4311,4316,4321,4325,4329,4345,4349,4354,4385,4399,4411,4421,4425,4429,4437,4452,4457,4472,4476,4483,4487,4492,4527,4546,4550,4571,4579,4604,4608,4612,4616,4621,4634,4638,4643,4670,4694,4698,4703,4716,4720,4757,4763,4769,4773,4778,4810,4832,4843,4853,4869,4885,4901,4923,4938,4942,4946,4964,4968,4972,4987,4993,4997,5002,5036,5046,5064,5081,5098,5115,5132,5143,5148,5171,5175,5181,5185,5190,5235,5260,5289,5293,5297,5329,5359,5363,5368,5403,5411,5445,5464,5468,5474,5478,5484,5488,5493,5518,5536,5540,5564,5572,5592,5617,5642,5668,5672,5678],{"__ignoreMap":184},[189,4308,4309],{"class":191,"line":192},[189,4310,196],{"class":195},[189,4312,4313],{"class":191,"line":199},[189,4314,4315],{"class":195},"    Garry's Mod Integration\n",[189,4317,4318],{"class":191,"line":205},[189,4319,4320],{"class":195},"    Hooks and commands for player data system\n",[189,4322,4323],{"class":191,"line":211},[189,4324,214],{"class":195},[189,4326,4327],{"class":191,"line":217},[189,4328,221],{"emptyLinePlaceholder":220},[189,4330,4331,4334,4336,4338,4341,4343],{"class":191,"line":224},[189,4332,4333],{"class":287},"require",[189,4335,297],{"class":231},[189,4337,357],{"class":227},[189,4339,4340],{"class":360},"mongo",[189,4342,357],{"class":227},[189,4344,310],{"class":231},[189,4346,4347],{"class":191,"line":241},[189,4348,221],{"emptyLinePlaceholder":220},[189,4350,4351],{"class":191,"line":257},[189,4352,4353],{"class":195},"-- Initialize on server start\n",[189,4355,4356,4359,4362,4364,4366,4368,4370,4372,4374,4377,4379,4381,4383],{"class":191,"line":269},[189,4357,4358],{"class":231},"hook.",[189,4360,4361],{"class":287},"Add",[189,4363,297],{"class":231},[189,4365,357],{"class":227},[189,4367,294],{"class":360},[189,4369,357],{"class":227},[189,4371,478],{"class":231},[189,4373,357],{"class":227},[189,4375,4376],{"class":360},"InitPlayerData",[189,4378,357],{"class":227},[189,4380,478],{"class":231},[189,4382,284],{"class":283},[189,4384,586],{"class":227},[189,4386,4387,4389,4391,4393,4395,4397],{"class":191,"line":274},[189,4388,424],{"class":227},[189,4390,3926],{"class":231},[189,4392,235],{"class":227},[189,4394,341],{"class":231},[189,4396,294],{"class":287},[189,4398,792],{"class":231},[189,4400,4401,4404,4407,4409],{"class":191,"line":280},[189,4402,4403],{"class":227},"        \"",[189,4405,4406],{"class":360},"mongodb:\u002F\u002Flocalhost:27017",[189,4408,357],{"class":227},[189,4410,912],{"class":231},[189,4412,4413,4415,4418],{"class":191,"line":313},[189,4414,4403],{"class":227},[189,4416,4417],{"class":360},"gmod_server",[189,4419,4420],{"class":227},"\"\n",[189,4422,4423],{"class":191,"line":332},[189,4424,1354],{"class":231},[189,4426,4427],{"class":191,"line":349},[189,4428,221],{"emptyLinePlaceholder":220},[189,4430,4431,4433,4435],{"class":191,"line":368},[189,4432,335],{"class":283},[189,4434,3926],{"class":231},[189,4436,714],{"class":283},[189,4438,4439,4441,4443,4445,4448,4450],{"class":191,"line":377},[189,4440,352],{"class":287},[189,4442,297],{"class":231},[189,4444,357],{"class":227},[189,4446,4447],{"class":360},"[Server] Player data system ready",[189,4449,357],{"class":227},[189,4451,310],{"class":231},[189,4453,4454],{"class":191,"line":383},[189,4455,4456],{"class":283},"    else\n",[189,4458,4459,4461,4463,4465,4468,4470],{"class":191,"line":388},[189,4460,352],{"class":287},[189,4462,297],{"class":231},[189,4464,357],{"class":227},[189,4466,4467],{"class":360},"[Server] WARNING: Player data system failed!",[189,4469,357],{"class":227},[189,4471,310],{"class":231},[189,4473,4474],{"class":191,"line":410},[189,4475,380],{"class":283},[189,4477,4478,4481],{"class":191,"line":415},[189,4479,4480],{"class":283},"end",[189,4482,310],{"class":231},[189,4484,4485],{"class":191,"line":421},[189,4486,221],{"emptyLinePlaceholder":220},[189,4488,4489],{"class":191,"line":452},[189,4490,4491],{"class":195},"-- Load player data on join\n",[189,4493,4494,4496,4498,4500,4502,4505,4507,4509,4511,4514,4516,4518,4520,4522,4525],{"class":191,"line":490},[189,4495,4358],{"class":231},[189,4497,4361],{"class":287},[189,4499,297],{"class":231},[189,4501,357],{"class":227},[189,4503,4504],{"class":360},"PlayerInitialSpawn",[189,4506,357],{"class":227},[189,4508,478],{"class":231},[189,4510,357],{"class":227},[189,4512,4513],{"class":360},"LoadPlayerData",[189,4515,357],{"class":227},[189,4517,478],{"class":231},[189,4519,284],{"class":283},[189,4521,297],{"class":227},[189,4523,4524],{"class":300},"ply",[189,4526,310],{"class":227},[189,4528,4529,4531,4534,4536,4539,4541,4544],{"class":191,"line":526},[189,4530,424],{"class":227},[189,4532,4533],{"class":231}," steamid ",[189,4535,235],{"class":227},[189,4537,4538],{"class":247}," ply",[189,4540,401],{"class":231},[189,4542,4543],{"class":287},"SteamID",[189,4545,586],{"class":231},[189,4547,4548],{"class":191,"line":531},[189,4549,221],{"emptyLinePlaceholder":220},[189,4551,4552,4554,4556,4558,4560,4562,4565,4567,4569],{"class":191,"line":548},[189,4553,316],{"class":231},[189,4555,637],{"class":287},[189,4557,3576],{"class":231},[189,4559,284],{"class":283},[189,4561,297],{"class":227},[189,4563,4564],{"class":300},"data",[189,4566,304],{"class":227},[189,4568,3986],{"class":300},[189,4570,310],{"class":227},[189,4572,4573,4575,4577],{"class":191,"line":557},[189,4574,708],{"class":283},[189,4576,711],{"class":231},[189,4578,714],{"class":283},[189,4580,4581,4583,4585,4587,4590,4592,4594,4596,4598,4601],{"class":191,"line":563},[189,4582,720],{"class":287},[189,4584,297],{"class":231},[189,4586,357],{"class":227},[189,4588,4589],{"class":360},"[Server] Failed to load data for",[189,4591,357],{"class":227},[189,4593,478],{"class":231},[189,4595,4524],{"class":247},[189,4597,401],{"class":231},[189,4599,4600],{"class":287},"Nick",[189,4602,4603],{"class":231},"())\n",[189,4605,4606],{"class":191,"line":568},[189,4607,751],{"class":283},[189,4609,4610],{"class":191,"line":574},[189,4611,757],{"class":283},[189,4613,4614],{"class":191,"line":589},[189,4615,221],{"emptyLinePlaceholder":220},[189,4617,4618],{"class":191,"line":612},[189,4619,4620],{"class":195},"        -- Store data on player\n",[189,4622,4623,4626,4629,4631],{"class":191,"line":617},[189,4624,4625],{"class":231},"        ply.",[189,4627,4628],{"class":247},"dbData",[189,4630,251],{"class":227},[189,4632,4633],{"class":231}," data\n",[189,4635,4636],{"class":191,"line":622},[189,4637,221],{"emptyLinePlaceholder":220},[189,4639,4640],{"class":191,"line":628},[189,4641,4642],{"class":195},"        -- Set networked variables\n",[189,4644,4645,4648,4650,4653,4655,4657,4660,4662,4665,4668],{"class":191,"line":652},[189,4646,4647],{"class":247},"        ply",[189,4649,401],{"class":231},[189,4651,4652],{"class":287},"SetNWInt",[189,4654,297],{"class":231},[189,4656,357],{"class":227},[189,4658,4659],{"class":360},"Level",[189,4661,357],{"class":227},[189,4663,4664],{"class":231},", data.",[189,4666,4667],{"class":247},"level",[189,4669,310],{"class":231},[189,4671,4672,4674,4676,4678,4680,4682,4685,4687,4689,4692],{"class":191,"line":668},[189,4673,4647],{"class":247},[189,4675,401],{"class":231},[189,4677,4652],{"class":287},[189,4679,297],{"class":231},[189,4681,357],{"class":227},[189,4683,4684],{"class":360},"Credits",[189,4686,357],{"class":227},[189,4688,4664],{"class":231},[189,4690,4691],{"class":247},"credits",[189,4693,310],{"class":231},[189,4695,4696],{"class":191,"line":673},[189,4697,221],{"emptyLinePlaceholder":220},[189,4699,4700],{"class":191,"line":705},[189,4701,4702],{"class":195},"        -- Initialize inventory system\n",[189,4704,4705,4707,4709,4712,4714],{"class":191,"line":717},[189,4706,2984],{"class":231},[189,4708,294],{"class":287},[189,4710,4711],{"class":231},"(PlayerData.",[189,4713,262],{"class":247},[189,4715,310],{"class":231},[189,4717,4718],{"class":191,"line":735},[189,4719,221],{"emptyLinePlaceholder":220},[189,4721,4722,4724,4726,4728,4731,4733,4735,4737,4739,4741,4744,4746,4749,4751,4753,4755],{"class":191,"line":748},[189,4723,352],{"class":287},[189,4725,297],{"class":231},[189,4727,357],{"class":227},[189,4729,4730],{"class":360},"[Server] Loaded data for",[189,4732,357],{"class":227},[189,4734,478],{"class":231},[189,4736,4524],{"class":247},[189,4738,401],{"class":231},[189,4740,4600],{"class":287},[189,4742,4743],{"class":231},"(), ",[189,4745,357],{"class":227},[189,4747,4748],{"class":360},"Level:",[189,4750,357],{"class":227},[189,4752,4664],{"class":231},[189,4754,4667],{"class":247},[189,4756,310],{"class":231},[189,4758,4759,4761],{"class":191,"line":754},[189,4760,1189],{"class":283},[189,4762,310],{"class":231},[189,4764,4765,4767],{"class":191,"line":760},[189,4766,4480],{"class":283},[189,4768,310],{"class":231},[189,4770,4771],{"class":191,"line":765},[189,4772,221],{"emptyLinePlaceholder":220},[189,4774,4775],{"class":191,"line":775},[189,4776,4777],{"class":195},"-- Auto-save every 5 minutes\n",[189,4779,4780,4783,4786,4788,4790,4793,4795,4797,4800,4802,4804,4806,4808],{"class":191,"line":781},[189,4781,4782],{"class":231},"timer.",[189,4784,4785],{"class":287},"Create",[189,4787,297],{"class":231},[189,4789,357],{"class":227},[189,4791,4792],{"class":360},"AutoSavePlayerData",[189,4794,357],{"class":227},[189,4796,478],{"class":231},[189,4798,4799],{"class":468},"300",[189,4801,478],{"class":231},[189,4803,1630],{"class":468},[189,4805,478],{"class":231},[189,4807,284],{"class":283},[189,4809,586],{"class":227},[189,4811,4812,4815,4818,4820,4822,4824,4827,4830],{"class":191,"line":795},[189,4813,4814],{"class":283},"    for",[189,4816,4817],{"class":231}," _, ply ",[189,4819,2699],{"class":283},[189,4821,2702],{"class":287},[189,4823,2077],{"class":231},[189,4825,4826],{"class":287},"GetAll",[189,4828,4829],{"class":231},"()) ",[189,4831,1733],{"class":283},[189,4833,4834,4836,4839,4841],{"class":191,"line":806},[189,4835,708],{"class":283},[189,4837,4838],{"class":231}," ply.",[189,4840,4628],{"class":247},[189,4842,346],{"class":283},[189,4844,4845,4847,4849,4851],{"class":191,"line":835},[189,4846,880],{"class":227},[189,4848,770],{"class":231},[189,4850,235],{"class":227},[189,4852,888],{"class":231},[189,4854,4855,4857,4859,4861,4863,4865,4867],{"class":191,"line":847},[189,4856,931],{"class":231},[189,4858,235],{"class":227},[189,4860,4838],{"class":231},[189,4862,4628],{"class":247},[189,4864,291],{"class":231},[189,4866,4691],{"class":247},[189,4868,912],{"class":231},[189,4870,4871,4873,4875,4877,4879,4881,4883],{"class":191,"line":853},[189,4872,905],{"class":231},[189,4874,235],{"class":227},[189,4876,4838],{"class":231},[189,4878,4628],{"class":247},[189,4880,291],{"class":231},[189,4882,4667],{"class":247},[189,4884,912],{"class":231},[189,4886,4887,4889,4891,4893,4895,4897,4899],{"class":191,"line":865},[189,4888,918],{"class":231},[189,4890,235],{"class":227},[189,4892,4838],{"class":231},[189,4894,4628],{"class":247},[189,4896,291],{"class":231},[189,4898,1667],{"class":247},[189,4900,912],{"class":231},[189,4902,4903,4905,4907,4909,4911,4913,4916,4918,4921],{"class":191,"line":871},[189,4904,944],{"class":231},[189,4906,235],{"class":227},[189,4908,4838],{"class":231},[189,4910,4628],{"class":247},[189,4912,291],{"class":231},[189,4914,4915],{"class":247},"playtime",[189,4917,1670],{"class":227},[189,4919,4920],{"class":468}," 300",[189,4922,912],{"class":231},[189,4924,4925,4927,4929,4931,4933,4935],{"class":191,"line":877},[189,4926,981],{"class":231},[189,4928,235],{"class":227},[189,4930,4838],{"class":231},[189,4932,4628],{"class":247},[189,4934,291],{"class":231},[189,4936,4937],{"class":247},"stats\n",[189,4939,4940],{"class":191,"line":891},[189,4941,1080],{"class":231},[189,4943,4944],{"class":191,"line":902},[189,4945,221],{"emptyLinePlaceholder":220},[189,4947,4948,4951,4953,4955,4957,4959,4961],{"class":191,"line":915},[189,4949,4950],{"class":231},"            PlayerData.",[189,4952,1219],{"class":287},[189,4954,297],{"class":231},[189,4956,4524],{"class":247},[189,4958,401],{"class":231},[189,4960,4543],{"class":287},[189,4962,4963],{"class":231},"(), data)\n",[189,4965,4966],{"class":191,"line":928},[189,4967,757],{"class":283},[189,4969,4970],{"class":191,"line":941},[189,4971,380],{"class":283},[189,4973,4974,4976,4978,4980,4983,4985],{"class":191,"line":953},[189,4975,534],{"class":287},[189,4977,297],{"class":231},[189,4979,357],{"class":227},[189,4981,4982],{"class":360},"[Server] Auto-save complete",[189,4984,357],{"class":227},[189,4986,310],{"class":231},[189,4988,4989,4991],{"class":191,"line":966},[189,4990,4480],{"class":283},[189,4992,310],{"class":231},[189,4994,4995],{"class":191,"line":978},[189,4996,221],{"emptyLinePlaceholder":220},[189,4998,4999],{"class":191,"line":988},[189,5000,5001],{"class":195},"-- Save on disconnect\n",[189,5003,5004,5006,5008,5010,5012,5015,5017,5019,5021,5024,5026,5028,5030,5032,5034],{"class":191,"line":1000},[189,5005,4358],{"class":231},[189,5007,4361],{"class":287},[189,5009,297],{"class":231},[189,5011,357],{"class":227},[189,5013,5014],{"class":360},"PlayerDisconnected",[189,5016,357],{"class":227},[189,5018,478],{"class":231},[189,5020,357],{"class":227},[189,5022,5023],{"class":360},"SavePlayerData",[189,5025,357],{"class":227},[189,5027,478],{"class":231},[189,5029,284],{"class":283},[189,5031,297],{"class":227},[189,5033,4524],{"class":300},[189,5035,310],{"class":227},[189,5037,5038,5040,5042,5044],{"class":191,"line":1012},[189,5039,335],{"class":283},[189,5041,4838],{"class":231},[189,5043,4628],{"class":247},[189,5045,346],{"class":283},[189,5047,5048,5051,5053,5055,5057,5059,5061],{"class":191,"line":1023},[189,5049,5050],{"class":231},"        PlayerData.",[189,5052,1219],{"class":287},[189,5054,297],{"class":231},[189,5056,4524],{"class":247},[189,5058,401],{"class":231},[189,5060,4543],{"class":287},[189,5062,5063],{"class":231},"(), {\n",[189,5065,5066,5069,5071,5073,5075,5077,5079],{"class":191,"line":1029},[189,5067,5068],{"class":231},"            credits ",[189,5070,235],{"class":227},[189,5072,4838],{"class":231},[189,5074,4628],{"class":247},[189,5076,291],{"class":231},[189,5078,4691],{"class":247},[189,5080,912],{"class":231},[189,5082,5083,5086,5088,5090,5092,5094,5096],{"class":191,"line":1039},[189,5084,5085],{"class":231},"            level ",[189,5087,235],{"class":227},[189,5089,4838],{"class":231},[189,5091,4628],{"class":247},[189,5093,291],{"class":231},[189,5095,4667],{"class":247},[189,5097,912],{"class":231},[189,5099,5100,5103,5105,5107,5109,5111,5113],{"class":191,"line":1052},[189,5101,5102],{"class":231},"            experience ",[189,5104,235],{"class":227},[189,5106,4838],{"class":231},[189,5108,4628],{"class":247},[189,5110,291],{"class":231},[189,5112,1667],{"class":247},[189,5114,912],{"class":231},[189,5116,5117,5120,5122,5124,5126,5128,5130],{"class":191,"line":1062},[189,5118,5119],{"class":231},"            stats ",[189,5121,235],{"class":227},[189,5123,4838],{"class":231},[189,5125,4628],{"class":247},[189,5127,291],{"class":231},[189,5129,2080],{"class":247},[189,5131,912],{"class":231},[189,5133,5134,5137,5139,5141],{"class":191,"line":1067},[189,5135,5136],{"class":231},"            last_logout ",[189,5138,235],{"class":227},[189,5140,829],{"class":287},[189,5142,586],{"class":231},[189,5144,5145],{"class":191,"line":1077},[189,5146,5147],{"class":231},"        })\n",[189,5149,5150,5152,5154,5156,5159,5161,5163,5165,5167,5169],{"class":191,"line":1083},[189,5151,352],{"class":287},[189,5153,297],{"class":231},[189,5155,357],{"class":227},[189,5157,5158],{"class":360},"[Server] Saved data for disconnecting",[189,5160,357],{"class":227},[189,5162,478],{"class":231},[189,5164,4524],{"class":247},[189,5166,401],{"class":231},[189,5168,4600],{"class":287},[189,5170,4603],{"class":231},[189,5172,5173],{"class":191,"line":1088},[189,5174,380],{"class":283},[189,5176,5177,5179],{"class":191,"line":1114},[189,5178,4480],{"class":283},[189,5180,310],{"class":231},[189,5182,5183],{"class":191,"line":1124},[189,5184,221],{"emptyLinePlaceholder":220},[189,5186,5187],{"class":191,"line":1136},[189,5188,5189],{"class":195},"-- Track kills\n",[189,5191,5192,5194,5196,5198,5200,5203,5205,5207,5209,5212,5214,5216,5218,5220,5223,5225,5228,5230,5233],{"class":191,"line":1142},[189,5193,4358],{"class":231},[189,5195,4361],{"class":287},[189,5197,297],{"class":231},[189,5199,357],{"class":227},[189,5201,5202],{"class":360},"PlayerDeath",[189,5204,357],{"class":227},[189,5206,478],{"class":231},[189,5208,357],{"class":227},[189,5210,5211],{"class":360},"TrackKillStats",[189,5213,357],{"class":227},[189,5215,478],{"class":231},[189,5217,284],{"class":283},[189,5219,297],{"class":227},[189,5221,5222],{"class":300},"victim",[189,5224,304],{"class":227},[189,5226,5227],{"class":300}," inflictor",[189,5229,304],{"class":227},[189,5231,5232],{"class":300}," attacker",[189,5234,310],{"class":227},[189,5236,5237,5239,5242,5245,5247,5250,5252,5255,5258],{"class":191,"line":1156},[189,5238,335],{"class":283},[189,5240,5241],{"class":287}," IsValid",[189,5243,5244],{"class":231},"(victim) ",[189,5246,2839],{"class":227},[189,5248,5249],{"class":247}," victim",[189,5251,401],{"class":231},[189,5253,5254],{"class":287},"IsPlayer",[189,5256,5257],{"class":231},"() ",[189,5259,714],{"class":283},[189,5261,5262,5264,5266,5268,5270,5272,5274,5276,5278,5281,5283,5285,5287],{"class":191,"line":1167},[189,5263,5050],{"class":231},[189,5265,2125],{"class":287},[189,5267,297],{"class":231},[189,5269,5222],{"class":247},[189,5271,401],{"class":231},[189,5273,4543],{"class":287},[189,5275,4743],{"class":231},[189,5277,357],{"class":227},[189,5279,5280],{"class":360},"deaths",[189,5282,357],{"class":227},[189,5284,478],{"class":231},[189,5286,507],{"class":468},[189,5288,310],{"class":231},[189,5290,5291],{"class":191,"line":1173},[189,5292,380],{"class":283},[189,5294,5295],{"class":191,"line":1181},[189,5296,221],{"emptyLinePlaceholder":220},[189,5298,5299,5301,5303,5306,5308,5310,5312,5314,5316,5318,5321,5324,5327],{"class":191,"line":1186},[189,5300,335],{"class":283},[189,5302,5241],{"class":287},[189,5304,5305],{"class":231},"(attacker) ",[189,5307,2839],{"class":227},[189,5309,5232],{"class":247},[189,5311,401],{"class":231},[189,5313,5254],{"class":287},[189,5315,5257],{"class":231},[189,5317,2839],{"class":227},[189,5319,5320],{"class":231}," attacker ",[189,5322,5323],{"class":227},"~=",[189,5325,5326],{"class":231}," victim ",[189,5328,714],{"class":283},[189,5330,5331,5333,5335,5337,5340,5342,5344,5346,5348,5351,5353,5355,5357],{"class":191,"line":1194},[189,5332,5050],{"class":231},[189,5334,2125],{"class":287},[189,5336,297],{"class":231},[189,5338,5339],{"class":247},"attacker",[189,5341,401],{"class":231},[189,5343,4543],{"class":287},[189,5345,4743],{"class":231},[189,5347,357],{"class":227},[189,5349,5350],{"class":360},"kills",[189,5352,357],{"class":227},[189,5354,478],{"class":231},[189,5356,507],{"class":468},[189,5358,310],{"class":231},[189,5360,5361],{"class":191,"line":1199},[189,5362,221],{"emptyLinePlaceholder":220},[189,5364,5365],{"class":191,"line":1204},[189,5366,5367],{"class":195},"        -- Award experience\n",[189,5369,5370,5372,5374,5376,5378,5380,5382,5384,5387,5389,5391,5393,5396,5398,5401],{"class":191,"line":1210},[189,5371,5050],{"class":231},[189,5373,1523],{"class":287},[189,5375,297],{"class":231},[189,5377,5339],{"class":247},[189,5379,401],{"class":231},[189,5381,4543],{"class":287},[189,5383,4743],{"class":231},[189,5385,5386],{"class":468},"100",[189,5388,478],{"class":231},[189,5390,284],{"class":283},[189,5392,297],{"class":227},[189,5394,5395],{"class":300},"leveledUp",[189,5397,304],{"class":227},[189,5399,5400],{"class":300}," newLevel",[189,5402,310],{"class":227},[189,5404,5405,5407,5409],{"class":191,"line":1236},[189,5406,1316],{"class":283},[189,5408,1797],{"class":231},[189,5410,714],{"class":283},[189,5412,5413,5416,5418,5421,5423,5425,5428,5430,5432,5434,5436,5438,5441,5443],{"class":191,"line":1251},[189,5414,5415],{"class":247},"                attacker",[189,5417,401],{"class":231},[189,5419,5420],{"class":287},"ChatPrint",[189,5422,297],{"class":231},[189,5424,357],{"class":227},[189,5426,5427],{"class":360},"Congratulations! You reached level ",[189,5429,2207],{"class":227},[189,5431,2210],{"class":227},[189,5433,1681],{"class":231},[189,5435,2210],{"class":227},[189,5437,3058],{"class":227},[189,5439,5440],{"class":360},"!",[189,5442,357],{"class":227},[189,5444,310],{"class":231},[189,5446,5447,5449,5451,5453,5455,5457,5459,5461],{"class":191,"line":1256},[189,5448,5415],{"class":247},[189,5450,401],{"class":231},[189,5452,4652],{"class":287},[189,5454,297],{"class":231},[189,5456,357],{"class":227},[189,5458,4659],{"class":360},[189,5460,357],{"class":227},[189,5462,5463],{"class":231},", newLevel)\n",[189,5465,5466],{"class":191,"line":1267},[189,5467,1343],{"class":283},[189,5469,5470,5472],{"class":191,"line":1277},[189,5471,4083],{"class":283},[189,5473,310],{"class":231},[189,5475,5476],{"class":191,"line":1296},[189,5477,380],{"class":283},[189,5479,5480,5482],{"class":191,"line":1313},[189,5481,4480],{"class":283},[189,5483,310],{"class":231},[189,5485,5486],{"class":191,"line":1324},[189,5487,221],{"emptyLinePlaceholder":220},[189,5489,5490],{"class":191,"line":1340},[189,5491,5492],{"class":195},"-- Console command to check stats\n",[189,5494,5495,5498,5500,5502,5504,5506,5508,5510,5512,5514,5516],{"class":191,"line":1346},[189,5496,5497],{"class":231},"concommand.",[189,5499,4361],{"class":287},[189,5501,297],{"class":231},[189,5503,357],{"class":227},[189,5505,2080],{"class":360},[189,5507,357],{"class":227},[189,5509,478],{"class":231},[189,5511,284],{"class":283},[189,5513,297],{"class":227},[189,5515,4524],{"class":300},[189,5517,310],{"class":227},[189,5519,5520,5522,5524,5526,5529,5531,5534],{"class":191,"line":1351},[189,5521,335],{"class":283},[189,5523,338],{"class":227},[189,5525,5241],{"class":287},[189,5527,5528],{"class":231},"(ply) ",[189,5530,1619],{"class":283},[189,5532,5533],{"class":283}," return",[189,5535,844],{"class":283},[189,5537,5538],{"class":191,"line":1357},[189,5539,221],{"emptyLinePlaceholder":220},[189,5541,5542,5544,5546,5548,5550,5552,5554,5556,5558,5560,5562],{"class":191,"line":1362},[189,5543,316],{"class":231},[189,5545,1972],{"class":287},[189,5547,297],{"class":231},[189,5549,4524],{"class":247},[189,5551,401],{"class":231},[189,5553,4543],{"class":287},[189,5555,4743],{"class":231},[189,5557,284],{"class":283},[189,5559,297],{"class":227},[189,5561,2080],{"class":300},[189,5563,310],{"class":227},[189,5565,5566,5568,5570],{"class":191,"line":1367},[189,5567,708],{"class":283},[189,5569,4147],{"class":231},[189,5571,714],{"class":283},[189,5573,5574,5577,5579,5581,5583,5585,5588,5590],{"class":191,"line":1373},[189,5575,5576],{"class":247},"            ply",[189,5578,401],{"class":231},[189,5580,5420],{"class":287},[189,5582,297],{"class":231},[189,5584,357],{"class":227},[189,5586,5587],{"class":360},"--- Your Stats ---",[189,5589,357],{"class":227},[189,5591,310],{"class":231},[189,5593,5594,5596,5598,5600,5602,5604,5607,5609,5611,5613,5615],{"class":191,"line":1400},[189,5595,5576],{"class":247},[189,5597,401],{"class":231},[189,5599,5420],{"class":287},[189,5601,297],{"class":231},[189,5603,357],{"class":227},[189,5605,5606],{"class":360},"Kills: ",[189,5608,2207],{"class":227},[189,5610,2210],{"class":227},[189,5612,4246],{"class":231},[189,5614,5350],{"class":247},[189,5616,310],{"class":231},[189,5618,5619,5621,5623,5625,5627,5629,5632,5634,5636,5638,5640],{"class":191,"line":1415},[189,5620,5576],{"class":247},[189,5622,401],{"class":231},[189,5624,5420],{"class":287},[189,5626,297],{"class":231},[189,5628,357],{"class":227},[189,5630,5631],{"class":360},"Deaths: ",[189,5633,2207],{"class":227},[189,5635,2210],{"class":227},[189,5637,4246],{"class":231},[189,5639,5280],{"class":247},[189,5641,310],{"class":231},[189,5643,5644,5646,5648,5650,5652,5654,5657,5659,5661,5663,5666],{"class":191,"line":1420},[189,5645,5576],{"class":247},[189,5647,401],{"class":231},[189,5649,5420],{"class":287},[189,5651,297],{"class":231},[189,5653,357],{"class":227},[189,5655,5656],{"class":360},"Assists: ",[189,5658,2207],{"class":227},[189,5660,2210],{"class":227},[189,5662,4246],{"class":231},[189,5664,5665],{"class":247},"assists",[189,5667,310],{"class":231},[189,5669,5670],{"class":191,"line":1431},[189,5671,757],{"class":283},[189,5673,5674,5676],{"class":191,"line":1440},[189,5675,1189],{"class":283},[189,5677,310],{"class":231},[189,5679,5680,5682],{"class":191,"line":1446},[189,5681,4480],{"class":283},[189,5683,310],{"class":231},[171,5685,5687],{"id":5686},"next-steps","Next Steps",[5689,5690,5691,5698],"ul",{},[5692,5693,5694,5697],"li",{},[5695,5696,120],"a",{"href":121}," - Leaderboards and achievements",[5692,5699,5700,5703],{},[5695,5701,5702],{"href":126},"Administration"," - Bans and logging",[5705,5706,5707],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":184,"searchDepth":192,"depth":199,"links":5709},[5710,5711,5712,5713],{"id":173,"depth":199,"text":174},{"id":2261,"depth":199,"text":2262},{"id":4300,"depth":199,"text":4301},{"id":5686,"depth":199,"text":5687},"Player data management, inventories, and progression systems","md",null,{},{"icon":118},{"title":115,"description":5714},"szRleu5KWiJ5X7eJ_Pn41ekd4IkmZ2zDgkRLxQNEqrg",[5722,5724],{"title":110,"path":111,"stem":112,"description":5723,"icon":113,"children":-1},"Connection and simple CRUD operation examples",{"title":120,"path":121,"stem":122,"description":5725,"icon":123,"children":-1},"Leaderboards, achievements, and matchmaking examples",1774271025076]