[{"data":1,"prerenderedAt":1316},["ShallowReactive",2],{"/docs/scripts/treasurehunt/reference/exports":3,"/docs/scripts/treasurehunt/reference/exports-surround":1304,"/docs/scripts/treasurehunt/reference/exports-implemented-suggestions":1315},{"id":4,"title":5,"body":6,"description":1295,"extension":1296,"head":1297,"implementedSuggestions":1297,"meta":1298,"navigation":270,"path":1299,"schemaOrg":1297,"seo":1300,"sitemap":1301,"stem":1302,"__hash__":1303},"docs/1.docs/scripts/6.treasurehunt/4.reference/3.exports.md","Exports",{"type":7,"value":8,"toc":1279},"minimark",[9,31,36,43,154,161,205,337,351,444,447,450,458,464,473,502,508,511,584,661,668,674,683,694,722,728,751,812,816,823,909,915,921,999,1002,1008,1013,1041,1047,1053,1056,1165,1192,1198,1207,1234,1240,1243,1272,1275],[10,11,12,13,17,18,21,22,26,27,30],"p",{},"Call server exports from a ",[14,15,16],"strong",{},"server script"," and client exports from a ",[14,19,20],{},"client script",". Keep the resource folder named ",[23,24,25],"code",{},"sky_treasurehunt"," and add ",[23,28,29],{},"dependency \"sky_treasurehunt\""," to the integrating resource's manifest. Install the resource version containing these exports before using them.",[32,33,35],"h2",{"id":34},"server-exports","Server Exports",[10,37,38,39,42],{},"Use server locks when a minijob, mission or another activity must prevent Treasure Hunt bin searching. The server rejects new searches and collection attempts while blocked and synchronizes the restriction to the player's HUD, search key and target interaction. Locks affect ",[14,40,41],{},"searching bins","; metal detecting, magnet fishing and diving keep their existing behavior.",[44,45,46,62],"table",{},[47,48,49],"thead",{},[50,51,52,56,59],"tr",{},[53,54,55],"th",{},"Export",[53,57,58],{},"Arguments",[53,60,61],{},"Returns",[63,64,65,85,101,117,133],"tbody",{},[50,66,67,73,78],{},[68,69,70],"td",{},[23,71,72],{},"SetTrashSearchBlocked",[68,74,75],{},[23,76,77],{},"playerId, blocked, reason?",[68,79,80,81,84],{},"Effective blocked state (",[23,82,83],{},"boolean",")",[50,86,87,92,97],{},[68,88,89],{},[23,90,91],{},"IsTrashSearchBlocked",[68,93,94],{},[23,95,96],{},"playerId",[68,98,80,99,84],{},[23,100,83],{},[50,102,103,108,112],{},[68,104,105],{},[23,106,107],{},"GetTrashSearchState",[68,109,110],{},[23,111,96],{},[68,113,114,115,84],{},"Search status (",[23,116,44],{},[50,118,119,124,128],{},[68,120,121],{},[23,122,123],{},"CancelTrashSearch",[68,125,126],{},[23,127,96],{},[68,129,130,131,84],{},"Whether an established search was cancelled (",[23,132,83],{},[50,134,135,140,144],{},[68,136,137],{},[23,138,139],{},"GetActiveMethod",[68,141,142],{},[23,143,96],{},[68,145,146,147,150,151],{},"Active method (",[23,148,149],{},"string",") or ",[23,152,153],{},"nil",[155,156,158],"h3",{"id":157},"settrashsearchblockedplayerid-blocked-reason",[23,159,160],{},"SetTrashSearchBlocked(playerId, blocked, reason?)",[162,163,164,171,197],"ul",{},[165,166,167,170],"li",{},[14,168,169],{},"Purpose",": Prevents bin searches and cancels any current bin search, including inventory-full retries. Setting a block also invalidates requests waiting for progression or bin storage.",[165,172,173,175,176,178,179,184,185,188,189,192,193,196],{},[14,174,58],{},": ",[23,177,96],{}," is a loaded online player's numeric server ID. Pass ",[14,180,181],{},[23,182,183],{},"-1"," to block searching server-wide, including players who join later. ",[23,186,187],{},"blocked"," must be a boolean. ",[23,190,191],{},"reason"," is an optional string of 1–96 bytes; its default is ",[23,194,195],{},"\"default\"",".",[165,198,199,201,202,204],{},[14,200,61],{},": The effective blocked state after the change. For ",[23,203,183],{},", the result describes the global restriction only. Invalid setter arguments raise an error.",[206,207,213],"pre",{"className":208,"code":209,"filename":210,"language":211,"meta":212,"style":212},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","-- Run after your server has accepted the player's job start.\nexports[\"sky_treasurehunt\"]:SetTrashSearchBlocked(player_source, true, \"garbage_route\")\n\n-- Run on completion, cancellation and any other job exit path.\nlocal still_blocked = exports[\"sky_treasurehunt\"]:SetTrashSearchBlocked(\n    player_source,\n    false,\n    \"garbage_route\"\n)\n","minijob-server.lua","lua","",[23,214,215,224,265,272,278,306,312,321,332],{"__ignoreMap":212},[216,217,220],"span",{"class":218,"line":219},"line",1,[216,221,223],{"class":222},"sHwdD","-- Run after your server has accepted the player's job start.\n",[216,225,227,231,235,238,240,243,246,249,252,255,257,260,262],{"class":218,"line":226},2,[216,228,230],{"class":229},"sTEyZ","exports[",[216,232,234],{"class":233},"sMK4o","\"",[216,236,25],{"class":237},"sfazB",[216,239,234],{"class":233},[216,241,242],{"class":229},"]:",[216,244,72],{"class":245},"s2Zo4",[216,247,248],{"class":229},"(player_source, ",[216,250,251],{"class":233},"true",[216,253,254],{"class":229},", ",[216,256,234],{"class":233},[216,258,259],{"class":237},"garbage_route",[216,261,234],{"class":233},[216,263,264],{"class":229},")\n",[216,266,268],{"class":218,"line":267},3,[216,269,271],{"emptyLinePlaceholder":270},true,"\n",[216,273,275],{"class":218,"line":274},4,[216,276,277],{"class":222},"-- Run on completion, cancellation and any other job exit path.\n",[216,279,281,284,287,290,293,295,297,299,301,303],{"class":218,"line":280},5,[216,282,283],{"class":233},"local",[216,285,286],{"class":229}," still_blocked ",[216,288,289],{"class":233},"=",[216,291,292],{"class":229}," exports[",[216,294,234],{"class":233},[216,296,25],{"class":237},[216,298,234],{"class":233},[216,300,242],{"class":229},[216,302,72],{"class":245},[216,304,305],{"class":229},"(\n",[216,307,309],{"class":218,"line":308},6,[216,310,311],{"class":229},"    player_source,\n",[216,313,315,318],{"class":218,"line":314},7,[216,316,317],{"class":233},"    false",[216,319,320],{"class":229},",\n",[216,322,324,327,329],{"class":218,"line":323},8,[216,325,326],{"class":233},"    \"",[216,328,259],{"class":237},[216,330,331],{"class":233},"\"\n",[216,333,335],{"class":218,"line":334},9,[216,336,264],{"class":229},[10,338,339,340,343,344,346,347,350],{},"Each lock belongs to the ",[14,341,342],{},"actual calling resource and reason",". Repeating ",[23,345,251],{}," for the same resource, player and reason is idempotent. Passing ",[23,348,349],{},"false"," releases only that caller's matching reason; other reasons, other resources, a global lock or disabled configuration can keep the player blocked. Use the same reason when releasing a lock.",[206,352,355],{"className":208,"code":353,"filename":354,"language":211,"meta":212,"style":212},"-- Reserve all bins for another activity:\nexports[\"sky_treasurehunt\"]:SetTrashSearchBlocked(-1, true, \"city_cleanup\")\n\n-- Release this resource's global restriction:\nexports[\"sky_treasurehunt\"]:SetTrashSearchBlocked(-1, false, \"city_cleanup\")\n","server.lua",[23,356,357,362,401,405,410],{"__ignoreMap":212},[216,358,359],{"class":218,"line":219},[216,360,361],{"class":222},"-- Reserve all bins for another activity:\n",[216,363,364,366,368,370,372,374,376,379,382,386,388,390,392,394,397,399],{"class":218,"line":226},[216,365,230],{"class":229},[216,367,234],{"class":233},[216,369,25],{"class":237},[216,371,234],{"class":233},[216,373,242],{"class":229},[216,375,72],{"class":245},[216,377,378],{"class":229},"(",[216,380,381],{"class":233},"-",[216,383,385],{"class":384},"sbssI","1",[216,387,254],{"class":229},[216,389,251],{"class":233},[216,391,254],{"class":229},[216,393,234],{"class":233},[216,395,396],{"class":237},"city_cleanup",[216,398,234],{"class":233},[216,400,264],{"class":229},[216,402,403],{"class":218,"line":267},[216,404,271],{"emptyLinePlaceholder":270},[216,406,407],{"class":218,"line":274},[216,408,409],{"class":222},"-- Release this resource's global restriction:\n",[216,411,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442],{"class":218,"line":280},[216,413,230],{"class":229},[216,415,234],{"class":233},[216,417,25],{"class":237},[216,419,234],{"class":233},[216,421,242],{"class":229},[216,423,72],{"class":245},[216,425,378],{"class":229},[216,427,381],{"class":233},[216,429,385],{"class":384},[216,431,254],{"class":229},[216,433,349],{"class":233},[216,435,254],{"class":229},[216,437,234],{"class":233},[216,439,396],{"class":237},[216,441,234],{"class":233},[216,443,264],{"class":229},[10,445,446],{},"Blocking immediately releases the active bin reservation. It does not reroll the bin, reset its refill timer, clear progression or remove rewards already delivered. If a completed claim has already consumed the bin before cancellation, that bin stays depleted. Releasing a block allows a fresh search; it never resumes the cancelled claim.",[10,448,449],{},"Player locks are removed on disconnect; stopping an integrating resource removes that resource's locks. Locks are temporary and are cleared when Treasure Hunt restarts. Reapply them for ongoing jobs after a restart and release them when a character leaves a job or switches characters on the same connection. Global locks remain effective across player disconnects until released or their owning resource stops.",[451,452,455],"callout",{"color":453,"icon":454},"success","i-lucide-shield-check",[10,456,457],{},"Authorize job starts on the server before setting a lock. Do not expose these exports through an unrestricted network event. A client export cannot release a server lock.",[155,459,461],{"id":460},"istrashsearchblockedplayerid",[23,462,463],{},"IsTrashSearchBlocked(playerId)",[10,465,466,467,469,470,472],{},"Returns ",[23,468,251],{}," when bin searching is disabled by configuration, a global lock or a lock for this player. Pass ",[23,471,183],{}," to query only the global/configuration restriction. This query does not evaluate distance, health, inventory capacity or whether another method is equipped.",[206,474,476],{"className":208,"code":475,"filename":354,"language":211,"meta":212,"style":212},"local blocked = exports[\"sky_treasurehunt\"]:IsTrashSearchBlocked(player_source)\n",[23,477,478],{"__ignoreMap":212},[216,479,480,482,485,487,489,491,493,495,497,499],{"class":218,"line":219},[216,481,283],{"class":233},[216,483,484],{"class":229}," blocked ",[216,486,289],{"class":233},[216,488,292],{"class":229},[216,490,234],{"class":233},[216,492,25],{"class":237},[216,494,234],{"class":233},[216,496,242],{"class":229},[216,498,91],{"class":245},[216,500,501],{"class":229},"(player_source)\n",[155,503,505],{"id":504},"gettrashsearchstateplayerid",[23,506,507],{},"GetTrashSearchState(playerId)",[10,509,510],{},"Returns a fresh status table for one player's established bin search. It contains no claim token, selected loot or mutable internal state.",[44,512,513,526],{},[47,514,515],{},[50,516,517,520,523],{},[53,518,519],{},"Field",[53,521,522],{},"Type",[53,524,525],{},"Meaning",[63,527,528,542,555,569],{},[50,529,530,535,539],{},[68,531,532],{},[23,533,534],{},"enabled",[68,536,537],{},[23,538,83],{},[68,540,541],{},"Bin storage is initialized and the resource/bin-search configuration is enabled",[50,543,544,548,552],{},[68,545,546],{},[23,547,187],{},[68,549,550],{},[23,551,83],{},[68,553,554],{},"Effective configuration/global/player restriction",[50,556,557,562,566],{},[68,558,559],{},[23,560,561],{},"active",[68,563,564],{},[23,565,83],{},[68,567,568],{},"A valid, unexpired bin-search session exists for the current character",[50,570,571,576,581],{},[68,572,573],{},[23,574,575],{},"remainingMs",[68,577,578],{},[23,579,580],{},"number",[68,582,583],{},"Remaining search time in milliseconds; zero when inactive or ready to collect",[206,585,587],{"className":208,"code":586,"filename":354,"language":211,"meta":212,"style":212},"local state = exports[\"sky_treasurehunt\"]:GetTrashSearchState(player_source)\nif state.active then\n    print((\"Bin search has %d ms remaining\"):format(state.remainingMs))\nend\n",[23,588,589,612,627,656],{"__ignoreMap":212},[216,590,591,593,596,598,600,602,604,606,608,610],{"class":218,"line":219},[216,592,283],{"class":233},[216,594,595],{"class":229}," state ",[216,597,289],{"class":233},[216,599,292],{"class":229},[216,601,234],{"class":233},[216,603,25],{"class":237},[216,605,234],{"class":233},[216,607,242],{"class":229},[216,609,107],{"class":245},[216,611,501],{"class":229},[216,613,614,618,621,624],{"class":218,"line":226},[216,615,617],{"class":616},"s7zQu","if",[216,619,620],{"class":229}," state.",[216,622,561],{"class":623},"sBMFI",[216,625,626],{"class":616}," then\n",[216,628,629,632,635,637,640,642,645,648,651,653],{"class":218,"line":267},[216,630,631],{"class":245},"    print",[216,633,634],{"class":229},"((",[216,636,234],{"class":233},[216,638,639],{"class":237},"Bin search has %d ms remaining",[216,641,234],{"class":233},[216,643,644],{"class":229},"):",[216,646,647],{"class":245},"format",[216,649,650],{"class":229},"(state.",[216,652,575],{"class":623},[216,654,655],{"class":229},"))\n",[216,657,658],{"class":218,"line":274},[216,659,660],{"class":616},"end\n",[10,662,663,664,667],{},"Inventory-full claims can remain active with ",[23,665,666],{},"remainingMs = 0",". Requests still loading progression before establishing a session are not reported as active.",[155,669,671],{"id":670},"canceltrashsearchplayerid",[23,672,673],{},"CancelTrashSearch(playerId)",[10,675,676,677,679,680,682],{},"Cancels this player's current bin search and releases its reservation without setting a persistent block. It also invalidates a pending begin request and tells the client to clear its search/animation/HUD. ",[23,678,96],{}," must be a positive integer server ID; ",[23,681,183],{}," is not supported.",[10,684,466,685,687,688,690,691,693],{},[23,686,251],{}," when an established server session existed, otherwise ",[23,689,349],{},". A pending begin request can be cancelled while the return value is ",[23,692,349],{},". Cancelling does not remove existing locks, reset a depleted bin or undo completed rewards.",[206,695,697],{"className":208,"code":696,"filename":354,"language":211,"meta":212,"style":212},"local cancelled = exports[\"sky_treasurehunt\"]:CancelTrashSearch(player_source)\n",[23,698,699],{"__ignoreMap":212},[216,700,701,703,706,708,710,712,714,716,718,720],{"class":218,"line":219},[216,702,283],{"class":233},[216,704,705],{"class":229}," cancelled ",[216,707,289],{"class":233},[216,709,292],{"class":229},[216,711,234],{"class":233},[216,713,25],{"class":237},[216,715,234],{"class":233},[216,717,242],{"class":229},[216,719,123],{"class":245},[216,721,501],{"class":229},[155,723,725],{"id":724},"getactivemethodplayerid",[23,726,727],{},"GetActiveMethod(playerId)",[10,729,730,731,254,734,254,737,740,741,744,745,747,748,750],{},"Returns the method currently reserved by the player's character: ",[23,732,733],{},"\"detector\"",[23,735,736],{},"\"magnet\"",[23,738,739],{},"\"diving\""," or ",[23,742,743],{},"\"trash\"","; otherwise ",[23,746,153],{},". Detector and shovel equipment share the ",[23,749,733],{}," method. Equipped magnet/diving sessions can reserve a method between individual actions, so this is not a progress-bar check.",[206,752,754],{"className":208,"code":753,"filename":354,"language":211,"meta":212,"style":212},"local method = exports[\"sky_treasurehunt\"]:GetActiveMethod(player_source)\nif method then\n    print((\"Player has active Treasure Hunt equipment/activity: %s\"):format(method))\nend\n",[23,755,756,779,788,808],{"__ignoreMap":212},[216,757,758,760,763,765,767,769,771,773,775,777],{"class":218,"line":219},[216,759,283],{"class":233},[216,761,762],{"class":229}," method ",[216,764,289],{"class":233},[216,766,292],{"class":229},[216,768,234],{"class":233},[216,770,25],{"class":237},[216,772,234],{"class":233},[216,774,242],{"class":229},[216,776,139],{"class":245},[216,778,501],{"class":229},[216,780,781,783,785],{"class":218,"line":226},[216,782,617],{"class":616},[216,784,762],{"class":229},[216,786,787],{"class":616},"then\n",[216,789,790,792,794,796,799,801,803,805],{"class":218,"line":267},[216,791,631],{"class":245},[216,793,634],{"class":229},[216,795,234],{"class":233},[216,797,798],{"class":237},"Player has active Treasure Hunt equipment/activity: %s",[216,800,234],{"class":233},[216,802,644],{"class":229},[216,804,647],{"class":245},[216,806,807],{"class":229},"(method))\n",[216,809,810],{"class":218,"line":274},[216,811,660],{"class":616},[32,813,815],{"id":814},"client-exports","Client Exports",[10,817,818,819,822],{},"Client exports apply to the ",[14,820,821],{},"local player",". Client locks hide and cancel Treasure Hunt's bin interaction locally. Use the server setter above when the restriction must also prevent reward requests on the server. Server locks synchronize automatically; calling both setters for the same job is optional and creates two independently managed locks.",[44,824,825,835],{},[47,826,827],{},[50,828,829,831,833],{},[53,830,55],{},[53,832,58],{},[53,834,61],{},[63,836,837,853,866,879,892],{},[50,838,839,843,848],{},[68,840,841],{},[23,842,72],{},[68,844,845],{},[23,846,847],{},"blocked, reason?",[68,849,850,851,84],{},"Effective local blocked state (",[23,852,83],{},[50,854,855,859,862],{},[68,856,857],{},[23,858,91],{},[68,860,861],{},"None",[68,863,850,864,84],{},[23,865,83],{},[50,867,868,872,874],{},[68,869,870],{},[23,871,107],{},[68,873,861],{},[68,875,876,877,84],{},"Local search status (",[23,878,44],{},[50,880,881,885,887],{},[68,882,883],{},[23,884,123],{},[68,886,861],{},[68,888,889,890,84],{},"Whether a search or request was cancelled (",[23,891,83],{},[50,893,894,899,904],{},[68,895,896],{},[23,897,898],{},"CanSearchTrash",[68,900,901],{},[23,902,903],{},"entity?",[68,905,906,907,84],{},"Whether a fresh local search can start (",[23,908,83],{},[155,910,912],{"id":911},"settrashsearchblockedblocked-reason",[23,913,914],{},"SetTrashSearchBlocked(blocked, reason?)",[10,916,917,918,920],{},"Sets or releases this client resource's reason, using the same boolean and 1–96-byte reason rules as the server setter. Setting ",[23,919,251],{}," immediately clears the local search animation/HUD, hides the E prompt and prevents the Treasure Hunt target option from being selected. Pending responses cannot restore a cancelled search.",[206,922,925],{"className":208,"code":923,"filename":924,"language":211,"meta":212,"style":212},"exports[\"sky_treasurehunt\"]:SetTrashSearchBlocked(true, \"local_activity\")\n\n-- Release only this client resource's matching reason:\nlocal still_blocked = exports[\"sky_treasurehunt\"]:SetTrashSearchBlocked(false, \"local_activity\")\n","client.lua",[23,926,927,956,960,965],{"__ignoreMap":212},[216,928,929,931,933,935,937,939,941,943,945,947,949,952,954],{"class":218,"line":219},[216,930,230],{"class":229},[216,932,234],{"class":233},[216,934,25],{"class":237},[216,936,234],{"class":233},[216,938,242],{"class":229},[216,940,72],{"class":245},[216,942,378],{"class":229},[216,944,251],{"class":233},[216,946,254],{"class":229},[216,948,234],{"class":233},[216,950,951],{"class":237},"local_activity",[216,953,234],{"class":233},[216,955,264],{"class":229},[216,957,958],{"class":218,"line":226},[216,959,271],{"emptyLinePlaceholder":270},[216,961,962],{"class":218,"line":267},[216,963,964],{"class":222},"-- Release only this client resource's matching reason:\n",[216,966,967,969,971,973,975,977,979,981,983,985,987,989,991,993,995,997],{"class":218,"line":274},[216,968,283],{"class":233},[216,970,286],{"class":229},[216,972,289],{"class":233},[216,974,292],{"class":229},[216,976,234],{"class":233},[216,978,25],{"class":237},[216,980,234],{"class":233},[216,982,242],{"class":229},[216,984,72],{"class":245},[216,986,378],{"class":229},[216,988,349],{"class":233},[216,990,254],{"class":229},[216,992,234],{"class":233},[216,994,951],{"class":237},[216,996,234],{"class":233},[216,998,264],{"class":229},[10,1000,1001],{},"Returns the effective local blocked state, including server restrictions and disabled configuration. Locks from other client resources/reasons remain active. Stopping the caller removes its local locks.",[155,1003,1005],{"id":1004},"istrashsearchblocked",[23,1006,1007],{},"IsTrashSearchBlocked()",[10,1009,466,1010,1012],{},[23,1011,251],{}," for a local lock, a synchronized server restriction, disabled configuration or a stopped resource. The client also starts blocked until its initial server access response arrives. If that sync fails, searching stays blocked until another server access update or a resource restart.",[206,1014,1016],{"className":208,"code":1015,"filename":924,"language":211,"meta":212,"style":212},"local blocked = exports[\"sky_treasurehunt\"]:IsTrashSearchBlocked()\n",[23,1017,1018],{"__ignoreMap":212},[216,1019,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038],{"class":218,"line":219},[216,1021,283],{"class":233},[216,1023,484],{"class":229},[216,1025,289],{"class":233},[216,1027,292],{"class":229},[216,1029,234],{"class":233},[216,1031,25],{"class":237},[216,1033,234],{"class":233},[216,1035,242],{"class":229},[216,1037,91],{"class":245},[216,1039,1040],{"class":229},"()\n",[10,1042,1043,1044,1046],{},"This checks restrictions; use ",[23,1045,898],{}," to include the local gameplay conditions.",[155,1048,1050],{"id":1049},"gettrashsearchstate",[23,1051,1052],{},"GetTrashSearchState()",[10,1054,1055],{},"Returns a fresh local status table:",[44,1057,1058,1068],{},[47,1059,1060],{},[50,1061,1062,1064,1066],{},[53,1063,519],{},[53,1065,522],{},[53,1067,525],{},[63,1069,1070,1083,1096,1109,1123,1137,1152],{},[50,1071,1072,1076,1080],{},[68,1073,1074],{},[23,1075,534],{},[68,1077,1078],{},[23,1079,83],{},[68,1081,1082],{},"The client resource and bin-search configuration are enabled",[50,1084,1085,1089,1093],{},[68,1086,1087],{},[23,1088,187],{},[68,1090,1091],{},[23,1092,83],{},[68,1094,1095],{},"Effective local/server/configuration restriction",[50,1097,1098,1102,1106],{},[68,1099,1100],{},[23,1101,561],{},[68,1103,1104],{},[23,1105,83],{},[68,1107,1108],{},"A local bin search or inventory-full retry exists",[50,1110,1111,1116,1120],{},[68,1112,1113],{},[23,1114,1115],{},"pending",[68,1117,1118],{},[23,1119,83],{},[68,1121,1122],{},"A begin or collection operation is in progress",[50,1124,1125,1130,1134],{},[68,1126,1127],{},[23,1128,1129],{},"retry",[68,1131,1132],{},[23,1133,83],{},[68,1135,1136],{},"The completed search is waiting for inventory capacity",[50,1138,1139,1144,1149],{},[68,1140,1141],{},[23,1142,1143],{},"entity",[68,1145,1146,1148],{},[23,1147,580],{}," or absent",[68,1150,1151],{},"Local bin entity handle while active; not a network ID",[50,1153,1154,1158,1162],{},[68,1155,1156],{},[23,1157,575],{},[68,1159,1160],{},[23,1161,580],{},[68,1163,1164],{},"Remaining search duration in milliseconds, otherwise zero",[206,1166,1168],{"className":208,"code":1167,"filename":924,"language":211,"meta":212,"style":212},"local state = exports[\"sky_treasurehunt\"]:GetTrashSearchState()\n",[23,1169,1170],{"__ignoreMap":212},[216,1171,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190],{"class":218,"line":219},[216,1173,283],{"class":233},[216,1175,595],{"class":229},[216,1177,289],{"class":233},[216,1179,292],{"class":229},[216,1181,234],{"class":233},[216,1183,25],{"class":237},[216,1185,234],{"class":233},[216,1187,242],{"class":229},[216,1189,107],{"class":245},[216,1191,1040],{"class":229},[155,1193,1195],{"id":1194},"canceltrashsearch",[23,1196,1197],{},"CancelTrashSearch()",[10,1199,1200,1201,1203,1204,1206],{},"Immediately cancels the local animation, HUD and pending request; an established claim is also closed on the server. Returns ",[23,1202,251],{}," if a local search or request existed, otherwise ",[23,1205,349],{},". It does not release locks. Use the server cancellation export when server-side job logic must cancel a request before a client claim is established.",[206,1208,1210],{"className":208,"code":1209,"filename":924,"language":211,"meta":212,"style":212},"local cancelled = exports[\"sky_treasurehunt\"]:CancelTrashSearch()\n",[23,1211,1212],{"__ignoreMap":212},[216,1213,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232],{"class":218,"line":219},[216,1215,283],{"class":233},[216,1217,705],{"class":229},[216,1219,289],{"class":233},[216,1221,292],{"class":229},[216,1223,234],{"class":233},[216,1225,25],{"class":237},[216,1227,234],{"class":233},[216,1229,242],{"class":229},[216,1231,123],{"class":245},[216,1233,1040],{"class":229},[155,1235,1237],{"id":1236},"cansearchtrashentity",[23,1238,1239],{},"CanSearchTrash(entity?)",[10,1241,1242],{},"Returns whether a fresh local bin search can start now: no active/pending search or block, suitable player state, no conflicting NUI focus, a supported non-depleted bin within range and clear line of sight. Pass a local entity handle; omitting it uses Treasure Hunt's last detected nearby bin. With E discovery disabled, pass the entity explicitly.",[206,1244,1246],{"className":208,"code":1245,"filename":924,"language":211,"meta":212,"style":212},"local can_search = exports[\"sky_treasurehunt\"]:CanSearchTrash(bin_entity)\n",[23,1247,1248],{"__ignoreMap":212},[216,1249,1250,1252,1255,1257,1259,1261,1263,1265,1267,1269],{"class":218,"line":219},[216,1251,283],{"class":233},[216,1253,1254],{"class":229}," can_search ",[216,1256,289],{"class":233},[216,1258,292],{"class":229},[216,1260,234],{"class":233},[216,1262,25],{"class":237},[216,1264,234],{"class":233},[216,1266,242],{"class":229},[216,1268,898],{"class":245},[216,1270,1271],{"class":229},"(bin_entity)\n",[10,1273,1274],{},"The query starts no animation or reward request. It is a local availability hint; the server still validates the actual search. Other minijob interactions on that bin remain owned by their own resources.",[1276,1277,1278],"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 .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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":212,"searchDepth":219,"depth":226,"links":1280},[1281,1288],{"id":34,"depth":226,"text":35,"children":1282},[1283,1284,1285,1286,1287],{"id":157,"depth":267,"text":160},{"id":460,"depth":267,"text":463},{"id":504,"depth":267,"text":507},{"id":670,"depth":267,"text":673},{"id":724,"depth":267,"text":727},{"id":814,"depth":226,"text":815,"children":1289},[1290,1291,1292,1293,1294],{"id":911,"depth":267,"text":914},{"id":1004,"depth":267,"text":1007},{"id":1049,"depth":267,"text":1052},{"id":1194,"depth":267,"text":1197},{"id":1236,"depth":267,"text":1239},"Client and server exports for bin-search locks, minijob integration, cancellation and activity status in Sky Treasure Hunt.","md",null,{},"/docs/scripts/treasurehunt/reference/exports",{"title":5,"description":1295},{"loc":1299},"1.docs/scripts/6.treasurehunt/4.reference/3.exports","JJSQ6ntmF1zulFRJgmYxNgigByiZwwoHKsHwnSkdfkw",[1305,1310],{"title":1306,"path":1307,"stem":1308,"description":1309,"children":-1},"Commands and controls","/docs/scripts/treasurehunt/reference/commands","1.docs/scripts/6.treasurehunt/4.reference/2.commands","Default player bindings, administrator access and the exact scope of Treasure Hunt's progression commands.",{"title":1311,"path":1312,"stem":1313,"description":1314,"children":-1},"Database and updates","/docs/scripts/treasurehunt/reference/database-and-updates","1.docs/scripts/6.treasurehunt/4.reference/4.database-and-updates","Know which Treasure Hunt data to back up and what the included migrations change for existing characters.",[],1792159287440]