[{"data":1,"prerenderedAt":1037},["ShallowReactive",2],{"/docs/scripts/coinsystem/test-drive-events":3,"/docs/scripts/coinsystem/test-drive-events-surround":1027,"/docs/scripts/coinsystem/test-drive-events-implemented-suggestions":1036},{"id":4,"title":5,"body":6,"description":1018,"extension":1019,"head":1020,"implementedSuggestions":1020,"meta":1021,"navigation":432,"path":1022,"schemaOrg":1020,"seo":1023,"sitemap":1024,"stem":1025,"__hash__":1026},"docs/1.docs/scripts/1.coinsystem/6.test-drive-events.md","Test Drive Events & Blockers",{"type":7,"value":8,"toc":1001},"minimark",[9,14,18,21,25,33,38,41,151,203,207,210,284,341,347,357,359,363,367,370,450,490,493,528,535,539,542,600,639,641,645,648,651,709,748,751,754,816,866,868,872,964,972,974,978,997],[10,11,13],"h2",{"id":12},"overview","Overview",[15,16,17],"p",{},"Coinsystem emits local client- and server-side events when a confirmed test drive starts or ends.\nUse these events to integrate fuel, HUD, logging, telemetry, vehicle handling, or other resources without modifying the test drive logic.",[19,20],"hr",{},[10,22,24],{"id":23},"server-blockers","Server Blockers",[15,26,27,28,32],{},"Blockers are local, cancelable server events. Call ",[29,30,31],"code",{},"CancelEvent()"," synchronously inside a listener\nto reject the operation. Coinsystem shows the player a localized generic notification when a\nblocker rejects the request.",[34,35,37],"h3",{"id":36},"block-test-drive-start","Block Test Drive Start",[15,39,40],{},"Fires after Coinsystem validates the requested model and confirms that the player has no existing\nsession and that a test drive slot is available, but before it assigns a routing bucket or enables\ngodmode.",[42,43,49],"pre",{"className":44,"code":45,"filename":46,"language":47,"meta":48,"style":48},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","AddEventHandler(\"sky_coinsystem:server:beforeTestDriveStart\", function(player_id, model)\n    -- Replace this with your own server-side condition.\n    if Player(player_id).state.in_jail then\n        CancelEvent()\n    end\nend)\n","server.lua","lua","",[29,50,51,96,103,128,137,143],{"__ignoreMap":48},[52,53,56,60,64,68,72,74,77,81,83,87,90,93],"span",{"class":54,"line":55},"line",1,[52,57,59],{"class":58},"s2Zo4","AddEventHandler",[52,61,63],{"class":62},"sTEyZ","(",[52,65,67],{"class":66},"sMK4o","\"",[52,69,71],{"class":70},"sfazB","sky_coinsystem:server:beforeTestDriveStart",[52,73,67],{"class":66},[52,75,76],{"class":62},", ",[52,78,80],{"class":79},"s7zQu","function",[52,82,63],{"class":66},[52,84,86],{"class":85},"sHdIc","player_id",[52,88,89],{"class":66},",",[52,91,92],{"class":85}," model",[52,94,95],{"class":66},")\n",[52,97,99],{"class":54,"line":98},2,[52,100,102],{"class":101},"sHwdD","    -- Replace this with your own server-side condition.\n",[52,104,106,109,112,115,119,122,125],{"class":54,"line":105},3,[52,107,108],{"class":79},"    if",[52,110,111],{"class":58}," Player",[52,113,114],{"class":62},"(player_id).",[52,116,118],{"class":117},"sBMFI","state",[52,120,121],{"class":62},".",[52,123,124],{"class":117},"in_jail",[52,126,127],{"class":79}," then\n",[52,129,131,134],{"class":54,"line":130},4,[52,132,133],{"class":58},"        CancelEvent",[52,135,136],{"class":62},"()\n",[52,138,140],{"class":54,"line":139},5,[52,141,142],{"class":79},"    end\n",[52,144,146,149],{"class":54,"line":145},6,[52,147,148],{"class":79},"end",[52,150,95],{"class":62},[152,153,154,170],"table",{},[155,156,157],"thead",{},[158,159,160,164,167],"tr",{},[161,162,163],"th",{},"Parameter",[161,165,166],{},"Type",[161,168,169],{},"Description",[171,172,173,188],"tbody",{},[158,174,175,180,185],{},[176,177,178],"td",{},[29,179,86],{},[176,181,182],{},[29,183,184],{},"number",[176,186,187],{},"Server ID of the player requesting the test drive.",[158,189,190,195,200],{},[176,191,192],{},[29,193,194],{},"model",[176,196,197],{},[29,198,199],{},"string",[176,201,202],{},"Validated and normalized vehicle spawn name.",[34,204,206],{"id":205},"block-manual-test-drive-end","Block Manual Test Drive End",[15,208,209],{},"Fires before Coinsystem authorizes a manual test drive end. The authorization is bound to the\nplayer's active server session and expires after five seconds.",[42,211,213],{"className":44,"code":212,"filename":46,"language":47,"meta":48,"style":48},"AddEventHandler(\"sky_coinsystem:server:beforeTestDriveEnd\", function(player_id, model, reason)\n    -- Replace this with your own server-side condition.\n    if Player(player_id).state.test_drive_exit_locked then\n        CancelEvent()\n    end\nend)\n",[29,214,215,247,251,268,274,278],{"__ignoreMap":48},[52,216,217,219,221,223,226,228,230,232,234,236,238,240,242,245],{"class":54,"line":55},[52,218,59],{"class":58},[52,220,63],{"class":62},[52,222,67],{"class":66},[52,224,225],{"class":70},"sky_coinsystem:server:beforeTestDriveEnd",[52,227,67],{"class":66},[52,229,76],{"class":62},[52,231,80],{"class":79},[52,233,63],{"class":66},[52,235,86],{"class":85},[52,237,89],{"class":66},[52,239,92],{"class":85},[52,241,89],{"class":66},[52,243,244],{"class":85}," reason",[52,246,95],{"class":66},[52,248,249],{"class":54,"line":98},[52,250,102],{"class":101},[52,252,253,255,257,259,261,263,266],{"class":54,"line":105},[52,254,108],{"class":79},[52,256,111],{"class":58},[52,258,114],{"class":62},[52,260,118],{"class":117},[52,262,121],{"class":62},[52,264,265],{"class":117},"test_drive_exit_locked",[52,267,127],{"class":79},[52,269,270,272],{"class":54,"line":130},[52,271,133],{"class":58},[52,273,136],{"class":62},[52,275,276],{"class":54,"line":139},[52,277,142],{"class":79},[52,279,280,282],{"class":54,"line":145},[52,281,148],{"class":79},[52,283,95],{"class":62},[152,285,286,296],{},[155,287,288],{},[158,289,290,292,294],{},[161,291,163],{},[161,293,166],{},[161,295,169],{},[171,297,298,311,323],{},[158,299,300,304,308],{},[176,301,302],{},[29,303,86],{},[176,305,306],{},[29,307,184],{},[176,309,310],{},"Server ID of the active test driver.",[158,312,313,317,321],{},[176,314,315],{},[29,316,194],{},[176,318,319],{},[29,320,199],{},[176,322,202],{},[158,324,325,330,334],{},[176,326,327],{},[29,328,329],{},"reason",[176,331,332],{},[29,333,199],{},[176,335,336,337,340],{},"Always ",[29,338,339],{},"manual"," for this blocker.",[342,343,344],"warning",{},[15,345,346],{},"Only a manual end can be blocked. Safety cleanup caused by leaving the vehicle, leaving the test\narea, death, a missing vehicle, disconnecting, or a resource stop always ends the session so the\nplayer cannot remain stuck in a routing bucket or protected state.",[15,348,349,350,353,354,356],{},"Do not call ",[29,351,352],{},"Wait()"," or perform asynchronous work before ",[29,355,31],{},". Event cancellation only\napplies to the current local event invocation, and canceling does not prevent other registered\nlisteners from running.",[19,358],{},[10,360,362],{"id":361},"client-events","Client Events",[34,364,366],{"id":365},"test-drive-started","Test Drive Started",[15,368,369],{},"Fires after the test vehicle has spawned and the player has been placed inside it.",[42,371,374],{"className":44,"code":372,"filename":373,"language":47,"meta":48,"style":48},"AddEventHandler(\"sky_coinsystem:client:testDriveStarted\", function(vehicle, model)\n    print((\"Test drive started: %s, entity %s\"):format(model, vehicle))\n\n    -- Example integration:\n    -- exports[\"your_fuel_resource\"]:SetFuel(vehicle, 100.0)\nend)\n","client.lua",[29,375,376,404,428,434,439,444],{"__ignoreMap":48},[52,377,378,380,382,384,387,389,391,393,395,398,400,402],{"class":54,"line":55},[52,379,59],{"class":58},[52,381,63],{"class":62},[52,383,67],{"class":66},[52,385,386],{"class":70},"sky_coinsystem:client:testDriveStarted",[52,388,67],{"class":66},[52,390,76],{"class":62},[52,392,80],{"class":79},[52,394,63],{"class":66},[52,396,397],{"class":85},"vehicle",[52,399,89],{"class":66},[52,401,92],{"class":85},[52,403,95],{"class":66},[52,405,406,409,412,414,417,419,422,425],{"class":54,"line":98},[52,407,408],{"class":58},"    print",[52,410,411],{"class":62},"((",[52,413,67],{"class":66},[52,415,416],{"class":70},"Test drive started: %s, entity %s",[52,418,67],{"class":66},[52,420,421],{"class":62},"):",[52,423,424],{"class":58},"format",[52,426,427],{"class":62},"(model, vehicle))\n",[52,429,430],{"class":54,"line":105},[52,431,433],{"emptyLinePlaceholder":432},true,"\n",[52,435,436],{"class":54,"line":130},[52,437,438],{"class":101},"    -- Example integration:\n",[52,440,441],{"class":54,"line":139},[52,442,443],{"class":101},"    -- exports[\"your_fuel_resource\"]:SetFuel(vehicle, 100.0)\n",[52,445,446,448],{"class":54,"line":145},[52,447,148],{"class":79},[52,449,95],{"class":62},[152,451,452,462],{},[155,453,454],{},[158,455,456,458,460],{},[161,457,163],{},[161,459,166],{},[161,461,169],{},[171,463,464,477],{},[158,465,466,470,474],{},[176,467,468],{},[29,469,397],{},[176,471,472],{},[29,473,184],{},[176,475,476],{},"Local entity handle of the spawned test vehicle.",[158,478,479,483,487],{},[176,480,481],{},[29,482,194],{},[176,484,485],{},[29,486,199],{},[176,488,489],{},"Normalized vehicle spawn name.",[15,491,492],{},"The vehicle also exposes a replicated state bag value for integrations that process vehicles\nindependently of the lifecycle event:",[42,494,496],{"className":44,"code":495,"filename":373,"language":47,"meta":48,"style":48},"if Entity(vehicle).state.sky_coinsystem_test_drive then\n    return\nend\n",[29,497,498,518,523],{"__ignoreMap":48},[52,499,500,503,506,509,511,513,516],{"class":54,"line":55},[52,501,502],{"class":79},"if",[52,504,505],{"class":58}," Entity",[52,507,508],{"class":62},"(vehicle).",[52,510,118],{"class":117},[52,512,121],{"class":62},[52,514,515],{"class":117},"sky_coinsystem_test_drive",[52,517,127],{"class":79},[52,519,520],{"class":54,"line":98},[52,521,522],{"class":79},"    return\n",[52,524,525],{"class":54,"line":105},[52,526,527],{"class":79},"end\n",[15,529,530,531,534],{},"Use this marker to exclude temporary test vehicles from wear, damage, mileage, fuel consumption, or\npersistence. ",[29,532,533],{},"sky_mechanicjob"," detects it automatically and disables its wear, oil leak, and wheel\ndamage systems for the test vehicle.",[34,536,538],{"id":537},"test-drive-ended","Test Drive Ended",[15,540,541],{},"Fires after the client has cleaned up the test vehicle and restored the player.",[42,543,545],{"className":44,"code":544,"filename":373,"language":47,"meta":48,"style":48},"AddEventHandler(\"sky_coinsystem:client:testDriveEnded\", function(model, reason)\n    print((\"Test drive ended: %s (%s)\"):format(model, reason))\nend)\n",[29,546,547,574,594],{"__ignoreMap":48},[52,548,549,551,553,555,558,560,562,564,566,568,570,572],{"class":54,"line":55},[52,550,59],{"class":58},[52,552,63],{"class":62},[52,554,67],{"class":66},[52,556,557],{"class":70},"sky_coinsystem:client:testDriveEnded",[52,559,67],{"class":66},[52,561,76],{"class":62},[52,563,80],{"class":79},[52,565,63],{"class":66},[52,567,194],{"class":85},[52,569,89],{"class":66},[52,571,244],{"class":85},[52,573,95],{"class":66},[52,575,576,578,580,582,585,587,589,591],{"class":54,"line":98},[52,577,408],{"class":58},[52,579,411],{"class":62},[52,581,67],{"class":66},[52,583,584],{"class":70},"Test drive ended: %s (%s)",[52,586,67],{"class":66},[52,588,421],{"class":62},[52,590,424],{"class":58},[52,592,593],{"class":62},"(model, reason))\n",[52,595,596,598],{"class":54,"line":105},[52,597,148],{"class":79},[52,599,95],{"class":62},[152,601,602,612],{},[155,603,604],{},[158,605,606,608,610],{},[161,607,163],{},[161,609,166],{},[161,611,169],{},[171,613,614,626],{},[158,615,616,620,624],{},[176,617,618],{},[29,619,194],{},[176,621,622],{},[29,623,199],{},[176,625,489],{},[158,627,628,632,636],{},[176,629,630],{},[29,631,329],{},[176,633,634],{},[29,635,199],{},[176,637,638],{},"Reason why the test drive ended.",[19,640],{},[10,642,644],{"id":643},"server-events","Server Events",[34,646,366],{"id":647},"test-drive-started-1",[15,649,650],{},"Fires only after the server-authorized session has been confirmed by the client following a successful vehicle spawn.",[42,652,654],{"className":44,"code":653,"filename":46,"language":47,"meta":48,"style":48},"AddEventHandler(\"sky_coinsystem:server:testDriveStarted\", function(player_id, model)\n    print((\"Player %s started a test drive with %s\"):format(player_id, model))\nend)\n",[29,655,656,683,703],{"__ignoreMap":48},[52,657,658,660,662,664,667,669,671,673,675,677,679,681],{"class":54,"line":55},[52,659,59],{"class":58},[52,661,63],{"class":62},[52,663,67],{"class":66},[52,665,666],{"class":70},"sky_coinsystem:server:testDriveStarted",[52,668,67],{"class":66},[52,670,76],{"class":62},[52,672,80],{"class":79},[52,674,63],{"class":66},[52,676,86],{"class":85},[52,678,89],{"class":66},[52,680,92],{"class":85},[52,682,95],{"class":66},[52,684,685,687,689,691,694,696,698,700],{"class":54,"line":98},[52,686,408],{"class":58},[52,688,411],{"class":62},[52,690,67],{"class":66},[52,692,693],{"class":70},"Player %s started a test drive with %s",[52,695,67],{"class":66},[52,697,421],{"class":62},[52,699,424],{"class":58},[52,701,702],{"class":62},"(player_id, model))\n",[52,704,705,707],{"class":54,"line":105},[52,706,148],{"class":79},[52,708,95],{"class":62},[152,710,711,721],{},[155,712,713],{},[158,714,715,717,719],{},[161,716,163],{},[161,718,166],{},[161,720,169],{},[171,722,723,736],{},[158,724,725,729,733],{},[176,726,727],{},[29,728,86],{},[176,730,731],{},[29,732,184],{},[176,734,735],{},"Server ID of the test driver.",[158,737,738,742,746],{},[176,739,740],{},[29,741,194],{},[176,743,744],{},[29,745,199],{},[176,747,489],{},[34,749,538],{"id":750},"test-drive-ended-1",[15,752,753],{},"Fires only for a previously confirmed test drive session.",[42,755,757],{"className":44,"code":756,"filename":46,"language":47,"meta":48,"style":48},"AddEventHandler(\"sky_coinsystem:server:testDriveEnded\", function(player_id, model, reason)\n    print((\"Player %s ended the %s test drive (%s)\"):format(player_id, model, reason))\nend)\n",[29,758,759,790,810],{"__ignoreMap":48},[52,760,761,763,765,767,770,772,774,776,778,780,782,784,786,788],{"class":54,"line":55},[52,762,59],{"class":58},[52,764,63],{"class":62},[52,766,67],{"class":66},[52,768,769],{"class":70},"sky_coinsystem:server:testDriveEnded",[52,771,67],{"class":66},[52,773,76],{"class":62},[52,775,80],{"class":79},[52,777,63],{"class":66},[52,779,86],{"class":85},[52,781,89],{"class":66},[52,783,92],{"class":85},[52,785,89],{"class":66},[52,787,244],{"class":85},[52,789,95],{"class":66},[52,791,792,794,796,798,801,803,805,807],{"class":54,"line":98},[52,793,408],{"class":58},[52,795,411],{"class":62},[52,797,67],{"class":66},[52,799,800],{"class":70},"Player %s ended the %s test drive (%s)",[52,802,67],{"class":66},[52,804,421],{"class":62},[52,806,424],{"class":58},[52,808,809],{"class":62},"(player_id, model, reason))\n",[52,811,812,814],{"class":54,"line":105},[52,813,148],{"class":79},[52,815,95],{"class":62},[152,817,818,828],{},[155,819,820],{},[158,821,822,824,826],{},[161,823,163],{},[161,825,166],{},[161,827,169],{},[171,829,830,842,854],{},[158,831,832,836,840],{},[176,833,834],{},[29,835,86],{},[176,837,838],{},[29,839,184],{},[176,841,735],{},[158,843,844,848,852],{},[176,845,846],{},[29,847,194],{},[176,849,850],{},[29,851,199],{},[176,853,489],{},[158,855,856,860,864],{},[176,857,858],{},[29,859,329],{},[176,861,862],{},[29,863,199],{},[176,865,638],{},[19,867],{},[10,869,871],{"id":870},"end-reasons","End Reasons",[152,873,874,883],{},[155,875,876],{},[158,877,878,881],{},[161,879,880],{},"Reason",[161,882,169],{},[171,884,885,894,904,914,924,934,944,954],{},[158,886,887,891],{},[176,888,889],{},[29,890,339],{},[176,892,893],{},"The player ended the test drive using the configured interaction key.",[158,895,896,901],{},[176,897,898],{},[29,899,900],{},"left_vehicle",[176,902,903],{},"The player is no longer inside the assigned test vehicle.",[158,905,906,911],{},[176,907,908],{},[29,909,910],{},"out_of_bounds",[176,912,913],{},"The player left the configured test drive radius.",[158,915,916,921],{},[176,917,918],{},[29,919,920],{},"vehicle_missing",[176,922,923],{},"The test vehicle no longer exists.",[158,925,926,931],{},[176,927,928],{},[29,929,930],{},"dead",[176,932,933],{},"The player was detected as dead.",[158,935,936,941],{},[176,937,938],{},[29,939,940],{},"player_dropped",[176,942,943],{},"The player disconnected during a confirmed test drive. Server event only.",[158,945,946,951],{},[176,947,948],{},[29,949,950],{},"resource_stop",[176,952,953],{},"Coinsystem stopped while the test drive was active.",[158,955,956,961],{},[176,957,958],{},[29,959,960],{},"unknown",[176,962,963],{},"No recognized end reason was available.",[342,965,966],{},[15,967,968,969,971],{},"Treat ",[29,970,329],{}," as informational on the server. Coinsystem verifies the active session, but normal in-game end reasons originate from the player's client and should not be the sole authority for rewards, payments, or other security-sensitive actions.",[19,973],{},[10,975,977],{"id":976},"notes","Notes",[979,980,981,988,991,994],"ul",{},[982,983,984,985,987],"li",{},"These are local resource events. Listen with ",[29,986,59],{},"; do not register them as network events.",[982,989,990],{},"Failed vehicle spawns and unconfirmed sessions do not emit lifecycle events.",[982,992,993],{},"The client end event does not include the vehicle entity because the test vehicle has already been removed.",[982,995,996],{},"Test vehicles are invincible, cannot receive visible damage, and cannot burst tyres during the session.",[998,999,1000],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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":48,"searchDepth":55,"depth":98,"links":1002},[1003,1004,1008,1012,1016,1017],{"id":12,"depth":98,"text":13},{"id":23,"depth":98,"text":24,"children":1005},[1006,1007],{"id":36,"depth":105,"text":37},{"id":205,"depth":105,"text":206},{"id":361,"depth":98,"text":362,"children":1009},[1010,1011],{"id":365,"depth":105,"text":366},{"id":537,"depth":105,"text":538},{"id":643,"depth":98,"text":644,"children":1013},[1014,1015],{"id":647,"depth":105,"text":366},{"id":750,"depth":105,"text":538},{"id":870,"depth":98,"text":871},{"id":976,"depth":98,"text":977},"Control and integrate with the Coinsystem test drive lifecycle.","md",null,{},"/docs/scripts/coinsystem/test-drive-events",{"title":5,"description":1018},{"loc":1022},"1.docs/scripts/1.coinsystem/6.test-drive-events","OxH6hUsfDpLnF4CjkaJ8TUQHJrV30gdL_kxDHEuFhXs",[1028,1032],{"title":1029,"path":1030,"stem":1031,"description":48,"children":-1},"Custom Rewards","/docs/scripts/coinsystem/custom-rewards","1.docs/scripts/1.coinsystem/5.custom-rewards",{"title":1033,"path":1034,"stem":1035,"description":48,"children":-1},"Battle Pass V3","/docs/scripts/battlepass/battlepass","1.docs/scripts/2.battlepass/1.battlepass",[],1785425078922]