2026-05-23 09:23:12 -05:00

1 line
21 KiB
JSON

[{"data":1,"prerenderedAt":1011},["ShallowReactive",2],{"navigation_docs":3,"-server-modules-actor":145,"-server-modules-actor-surround":1006},[4,27,41,93],{"title":5,"path":6,"stem":7,"children":8,"icon":26},"Getting Started","\u002Fgetting-started","1.getting-started\u002F0.index",[9,10,14,18,22],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Framework Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F1.architecture",{"title":15,"path":16,"stem":17},"Module Reference","\u002Fgetting-started\u002Fmodule-reference","1.getting-started\u002F2.module-reference",{"title":19,"path":20,"stem":21},"Development Guide","\u002Fgetting-started\u002Fdevelopment","1.getting-started\u002F3.development",{"title":23,"path":24,"stem":25},"SurrealDB Setup","\u002Fgetting-started\u002Fsurrealdb-setup","1.getting-started\u002F4.surrealdb-setup","i-lucide-rocket",{"title":28,"path":29,"stem":30,"children":31},"Forge Server Extension","\u002Fserver-extension","2.server-extension\u002F0.index",[32,33,37],{"title":28,"path":29,"stem":30},{"title":34,"path":35,"stem":36},"Forge Server API Reference","\u002Fserver-extension\u002Fapi-reference","2.server-extension\u002F1.api-reference",{"title":38,"path":39,"stem":40},"Forge Server Usage Examples","\u002Fserver-extension\u002Fusage-examples","2.server-extension\u002F2.usage-examples",{"title":42,"path":43,"stem":44,"children":45,"icon":92},"Server Modules","\u002Fserver-modules","3.server-modules\u002F0.index",[46,48,52,56,60,64,68,72,76,80,84,88],{"title":47,"path":43,"stem":44},"Server Module Guides",{"title":49,"path":50,"stem":51},"Actor Usage Guide","\u002Fserver-modules\u002Factor","3.server-modules\u002F1.actor",{"title":53,"path":54,"stem":55},"Store Usage Guide","\u002Fserver-modules\u002Fstore","3.server-modules\u002F10.store",{"title":57,"path":58,"stem":59},"Task Usage Guide","\u002Fserver-modules\u002Ftask","3.server-modules\u002F11.task",{"title":61,"path":62,"stem":63},"Bank Usage Guide","\u002Fserver-modules\u002Fbank","3.server-modules\u002F2.bank",{"title":65,"path":66,"stem":67},"CAD Usage Guide","\u002Fserver-modules\u002Fcad","3.server-modules\u002F3.cad",{"title":69,"path":70,"stem":71},"Economy Usage Guide","\u002Fserver-modules\u002Feconomy","3.server-modules\u002F4.economy",{"title":73,"path":74,"stem":75},"Garage Usage Guide","\u002Fserver-modules\u002Fgarage","3.server-modules\u002F5.garage",{"title":77,"path":78,"stem":79},"Locker Usage Guide","\u002Fserver-modules\u002Flocker","3.server-modules\u002F6.locker",{"title":81,"path":82,"stem":83},"Organization Usage Guide","\u002Fserver-modules\u002Forganization","3.server-modules\u002F7.organization",{"title":85,"path":86,"stem":87},"Owned Storage Usage Guide","\u002Fserver-modules\u002Fowned-storage","3.server-modules\u002F8.owned-storage",{"title":89,"path":90,"stem":91},"Phone Usage Guide","\u002Fserver-modules\u002Fphone","3.server-modules\u002F9.phone","i-lucide-layers-3",{"title":94,"path":95,"stem":96,"children":97,"icon":144},"Client Addons","\u002Fclient-addons","4.client-addons\u002F0.index",[98,100,104,108,112,116,120,124,128,132,136,140],{"title":99,"path":95,"stem":96},"Client Usage Guide",{"title":101,"path":102,"stem":103},"Client Main Usage Guide","\u002Fclient-addons\u002Fmain","4.client-addons\u002F1.main",{"title":105,"path":106,"stem":107},"Client Phone Usage Guide","\u002Fclient-addons\u002Fphone","4.client-addons\u002F10.phone",{"title":109,"path":110,"stem":111},"Client Store Usage Guide","\u002Fclient-addons\u002Fstore","4.client-addons\u002F11.store",{"title":113,"path":114,"stem":115},"Client Common Usage Guide","\u002Fclient-addons\u002Fcommon","4.client-addons\u002F2.common",{"title":117,"path":118,"stem":119},"Client Actor Usage Guide","\u002Fclient-addons\u002Factor","4.client-addons\u002F3.actor",{"title":121,"path":122,"stem":123},"Client Bank Usage Guide","\u002Fclient-addons\u002Fbank","4.client-addons\u002F4.bank",{"title":125,"path":126,"stem":127},"Client CAD Usage Guide","\u002Fclient-addons\u002Fcad","4.client-addons\u002F5.cad",{"title":129,"path":130,"stem":131},"Client Garage Usage Guide","\u002Fclient-addons\u002Fgarage","4.client-addons\u002F6.garage",{"title":133,"path":134,"stem":135},"Client Locker Usage Guide","\u002Fclient-addons\u002Flocker","4.client-addons\u002F7.locker",{"title":137,"path":138,"stem":139},"Client Notifications Usage Guide","\u002Fclient-addons\u002Fnotifications","4.client-addons\u002F8.notifications",{"title":141,"path":142,"stem":143},"Client Organization Usage Guide","\u002Fclient-addons\u002Forganization","4.client-addons\u002F9.organization","i-lucide-monitor-smartphone",{"id":146,"title":49,"body":147,"description":157,"extension":1001,"links":1002,"meta":1003,"navigation":709,"path":50,"seo":1004,"stem":51,"__hash__":1005},"docs\u002F3.server-modules\u002F1.actor.md",{"type":148,"value":149,"toc":993},"minimark",[150,154,158,163,166,439,442,504,508,515,623,627,633,735,739,744,797,827,831,841,939,942,946,989],[151,152,49],"h1",{"id":153},"actor-usage-guide",[155,156,157],"p",{},"The actor module stores persistent player character data: identity, loadout,\nposition, direction, stance, contact fields, state, holster status, rank, and\norganization.",[159,160,162],"h2",{"id":161},"storage-model","Storage Model",[155,164,165],{},"Actor data is persisted through SurrealDB by the server extension.",[167,168,173],"pre",{"className":169,"code":170,"language":171,"meta":172,"style":172},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n \"uid\": \"76561198000000000\",\n \"name\": \"Player Name\",\n \"loadout\": {},\n \"position\": [1234.5, 6789.0, 0.0],\n \"direction\": 90.0,\n \"stance\": \"STAND\",\n \"email\": \"0160000000@spearnet.mil\",\n \"phone_number\": \"0160000000\",\n \"state\": \"HEALTHY\",\n \"holster\": true,\n \"rank\": null,\n \"organization\": \"default\"\n}\n","json","",[174,175,176,185,213,234,249,282,299,320,341,362,383,398,413,433],"code",{"__ignoreMap":172},[177,178,181],"span",{"class":179,"line":180},"line",1,[177,182,184],{"class":183},"sMK4o","{\n",[177,186,188,191,195,198,201,204,208,210],{"class":179,"line":187},2,[177,189,190],{"class":183}," \"",[177,192,194],{"class":193},"spNyl","uid",[177,196,197],{"class":183},"\"",[177,199,200],{"class":183},":",[177,202,203],{"class":183}," \"",[177,205,207],{"class":206},"sfazB","76561198000000000",[177,209,197],{"class":183},[177,211,212],{"class":183},",\n",[177,214,216,218,221,223,225,227,230,232],{"class":179,"line":215},3,[177,217,190],{"class":183},[177,219,220],{"class":193},"name",[177,222,197],{"class":183},[177,224,200],{"class":183},[177,226,203],{"class":183},[177,228,229],{"class":206},"Player Name",[177,231,197],{"class":183},[177,233,212],{"class":183},[177,235,237,239,242,244,246],{"class":179,"line":236},4,[177,238,190],{"class":183},[177,240,241],{"class":193},"loadout",[177,243,197],{"class":183},[177,245,200],{"class":183},[177,247,248],{"class":183}," {},\n",[177,250,252,254,257,259,261,264,268,271,274,276,279],{"class":179,"line":251},5,[177,253,190],{"class":183},[177,255,256],{"class":193},"position",[177,258,197],{"class":183},[177,260,200],{"class":183},[177,262,263],{"class":183}," [",[177,265,267],{"class":266},"sbssI","1234.5",[177,269,270],{"class":183},",",[177,272,273],{"class":266}," 6789.0",[177,275,270],{"class":183},[177,277,278],{"class":266}," 0.0",[177,280,281],{"class":183},"],\n",[177,283,285,287,290,292,294,297],{"class":179,"line":284},6,[177,286,190],{"class":183},[177,288,289],{"class":193},"direction",[177,291,197],{"class":183},[177,293,200],{"class":183},[177,295,296],{"class":266}," 90.0",[177,298,212],{"class":183},[177,300,302,304,307,309,311,313,316,318],{"class":179,"line":301},7,[177,303,190],{"class":183},[177,305,306],{"class":193},"stance",[177,308,197],{"class":183},[177,310,200],{"class":183},[177,312,203],{"class":183},[177,314,315],{"class":206},"STAND",[177,317,197],{"class":183},[177,319,212],{"class":183},[177,321,323,325,328,330,332,334,337,339],{"class":179,"line":322},8,[177,324,190],{"class":183},[177,326,327],{"class":193},"email",[177,329,197],{"class":183},[177,331,200],{"class":183},[177,333,203],{"class":183},[177,335,336],{"class":206},"0160000000@spearnet.mil",[177,338,197],{"class":183},[177,340,212],{"class":183},[177,342,344,346,349,351,353,355,358,360],{"class":179,"line":343},9,[177,345,190],{"class":183},[177,347,348],{"class":193},"phone_number",[177,350,197],{"class":183},[177,352,200],{"class":183},[177,354,203],{"class":183},[177,356,357],{"class":206},"0160000000",[177,359,197],{"class":183},[177,361,212],{"class":183},[177,363,365,367,370,372,374,376,379,381],{"class":179,"line":364},10,[177,366,190],{"class":183},[177,368,369],{"class":193},"state",[177,371,197],{"class":183},[177,373,200],{"class":183},[177,375,203],{"class":183},[177,377,378],{"class":206},"HEALTHY",[177,380,197],{"class":183},[177,382,212],{"class":183},[177,384,386,388,391,393,395],{"class":179,"line":385},11,[177,387,190],{"class":183},[177,389,390],{"class":193},"holster",[177,392,197],{"class":183},[177,394,200],{"class":183},[177,396,397],{"class":183}," true,\n",[177,399,401,403,406,408,410],{"class":179,"line":400},12,[177,402,190],{"class":183},[177,404,405],{"class":193},"rank",[177,407,197],{"class":183},[177,409,200],{"class":183},[177,411,412],{"class":183}," null,\n",[177,414,416,418,421,423,425,427,430],{"class":179,"line":415},13,[177,417,190],{"class":183},[177,419,420],{"class":193},"organization",[177,422,197],{"class":183},[177,424,200],{"class":183},[177,426,203],{"class":183},[177,428,429],{"class":206},"default",[177,431,432],{"class":183},"\"\n",[177,434,436],{"class":179,"line":435},14,[177,437,438],{"class":183},"}\n",[155,440,441],{},"Rules validated by the Rust service:",[443,444,445,451,456,461,470,483,492],"ul",{},[446,447,448,450],"li",{},[174,449,194],{}," is authoritative from the command argument and must be a 17-digit Steam\nUID.",[446,452,453,455],{},[174,454,220],{}," is optional, but cannot be empty when set and cannot exceed 50\ncharacters.",[446,457,458,460],{},[174,459,256],{}," must be three finite numbers when set.",[446,462,463,465,466,469],{},[174,464,289],{}," must be in the ",[174,467,468],{},"0.0 \u003C= direction \u003C 360.0"," range.",[446,471,472,474,475,478,479,482],{},[174,473,327],{}," must contain ",[174,476,477],{},"@"," and end with ",[174,480,481],{},".mil"," when set.",[446,484,485,487,488,491],{},[174,486,348],{}," must start with ",[174,489,490],{},"0160"," and be 10 digits when set.",[446,493,494,495,497,498,500,501,503],{},"Empty ",[174,496,348],{},", ",[174,499,327],{},", or ",[174,502,420],{}," fields are filled on create.",[159,505,507],{"id":506},"commands","Commands",[155,509,510,511,514],{},"All commands are called on the ",[174,512,513],{},"actor"," group.",[516,517,518,534],"table",{},[519,520,521],"thead",{},[522,523,524,528,531],"tr",{},[525,526,527],"th",{},"Command",[525,529,530],{},"Arguments",[525,532,533],{},"Returns",[535,536,537,552,569,586,607],"tbody",{},[522,538,539,545,549],{},[540,541,542],"td",{},[174,543,544],{},"actor:get",[540,546,547],{},[174,548,194],{},[540,550,551],{},"Actor JSON. If no actor exists, returns a default actor but does not persist it.",[522,553,554,559,566],{},[540,555,556],{},[174,557,558],{},"actor:create",[540,560,561,497,563],{},[174,562,194],{},[174,564,565],{},"actor_json",[540,567,568],{},"Persisted actor JSON.",[522,570,571,576,583],{},[540,572,573],{},[174,574,575],{},"actor:update",[540,577,578,497,580],{},[174,579,194],{},[174,581,582],{},"patch_json",[540,584,585],{},"Updated actor JSON.",[522,587,588,593,597],{},[540,589,590],{},[174,591,592],{},"actor:exists",[540,594,595],{},[174,596,194],{},[540,598,599,602,603,606],{},[174,600,601],{},"true"," or ",[174,604,605],{},"false",".",[522,608,609,614,618],{},[540,610,611],{},[174,612,613],{},"actor:delete",[540,615,616],{},[174,617,194],{},[540,619,620,606],{},[174,621,622],{},"OK",[159,624,626],{"id":625},"create-an-actor","Create an Actor",[155,628,629,630,632],{},"The ",[174,631,194],{}," field in the JSON is overwritten with the command UID.",[167,634,638],{"className":635,"code":636,"language":637,"meta":172,"style":172},"language-sqf shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","private _actor = createHashMapFromArray [\n [\"uid\", getPlayerUID player],\n [\"name\", name player],\n [\"loadout\", getUnitLoadout player],\n [\"position\", getPosATL player],\n [\"direction\", getDir player],\n [\"stance\", stance player],\n [\"email\", \"\"],\n [\"phone_number\", \"\"],\n [\"state\", \"HEALTHY\"],\n [\"holster\", true],\n [\"organization\", \"default\"]\n];\n\nprivate _result = \"forge_server\" callExtension [\"actor:create\", [\n getPlayerUID player,\n toJSON _actor\n]];\n","sqf",[174,639,640,645,650,655,660,665,670,675,680,685,690,695,700,705,711,717,723,729],{"__ignoreMap":172},[177,641,642],{"class":179,"line":180},[177,643,644],{},"private _actor = createHashMapFromArray [\n",[177,646,647],{"class":179,"line":187},[177,648,649],{}," [\"uid\", getPlayerUID player],\n",[177,651,652],{"class":179,"line":215},[177,653,654],{}," [\"name\", name player],\n",[177,656,657],{"class":179,"line":236},[177,658,659],{}," [\"loadout\", getUnitLoadout player],\n",[177,661,662],{"class":179,"line":251},[177,663,664],{}," [\"position\", getPosATL player],\n",[177,666,667],{"class":179,"line":284},[177,668,669],{}," [\"direction\", getDir player],\n",[177,671,672],{"class":179,"line":301},[177,673,674],{}," [\"stance\", stance player],\n",[177,676,677],{"class":179,"line":322},[177,678,679],{}," [\"email\", \"\"],\n",[177,681,682],{"class":179,"line":343},[177,683,684],{}," [\"phone_number\", \"\"],\n",[177,686,687],{"class":179,"line":364},[177,688,689],{}," [\"state\", \"HEALTHY\"],\n",[177,691,692],{"class":179,"line":385},[177,693,694],{}," [\"holster\", true],\n",[177,696,697],{"class":179,"line":400},[177,698,699],{}," [\"organization\", \"default\"]\n",[177,701,702],{"class":179,"line":415},[177,703,704],{},"];\n",[177,706,707],{"class":179,"line":435},[177,708,710],{"emptyLinePlaceholder":709},true,"\n",[177,712,714],{"class":179,"line":713},15,[177,715,716],{},"private _result = \"forge_server\" callExtension [\"actor:create\", [\n",[177,718,720],{"class":179,"line":719},16,[177,721,722],{}," getPlayerUID player,\n",[177,724,726],{"class":179,"line":725},17,[177,727,728],{}," toJSON _actor\n",[177,730,732],{"class":179,"line":731},18,[177,733,734],{},"]];\n",[159,736,738],{"id":737},"update-an-actor","Update an Actor",[155,740,741,743],{},[174,742,575],{}," accepts a JSON object containing only fields to change.",[167,745,747],{"className":635,"code":746,"language":637,"meta":172,"style":172},"private _patch = createHashMapFromArray [\n [\"position\", getPosATL player],\n [\"direction\", getDir player],\n [\"stance\", stance player],\n [\"loadout\", getUnitLoadout player]\n];\n\nprivate _result = \"forge_server\" callExtension [\"actor:update\", [\n getPlayerUID player,\n toJSON _patch\n]];\n",[174,748,749,754,758,762,766,771,775,779,784,788,793],{"__ignoreMap":172},[177,750,751],{"class":179,"line":180},[177,752,753],{},"private _patch = createHashMapFromArray [\n",[177,755,756],{"class":179,"line":187},[177,757,664],{},[177,759,760],{"class":179,"line":215},[177,761,669],{},[177,763,764],{"class":179,"line":236},[177,765,674],{},[177,767,768],{"class":179,"line":251},[177,769,770],{}," [\"loadout\", getUnitLoadout player]\n",[177,772,773],{"class":179,"line":284},[177,774,704],{},[177,776,777],{"class":179,"line":301},[177,778,710],{"emptyLinePlaceholder":709},[177,780,781],{"class":179,"line":322},[177,782,783],{},"private _result = \"forge_server\" callExtension [\"actor:update\", [\n",[177,785,786],{"class":179,"line":343},[177,787,722],{},[177,789,790],{"class":179,"line":364},[177,791,792],{}," toJSON _patch\n",[177,794,795],{"class":179,"line":385},[177,796,734],{},[155,798,799,800,497,802,497,804,497,806,497,808,212,810,497,812,497,814,497,816,497,818,820,821,823,824,826],{},"Supported patch fields are ",[174,801,220],{},[174,803,256],{},[174,805,289],{},[174,807,306],{},[174,809,327],{},[174,811,348],{},[174,813,369],{},[174,815,390],{},[174,817,405],{},[174,819,420],{},", and ",[174,822,241],{},".\n",[174,825,194],{}," is ignored.",[159,828,830],{"id":829},"hot-state","Hot State",[155,832,629,833,836,837,840],{},[174,834,835],{},"actor:hot:*"," commands keep a runtime copy of actor data and write it back\nonly when ",[174,838,839],{},"actor:hot:save"," runs.",[516,842,843,853],{},[519,844,845],{},[522,846,847,849,851],{},[525,848,527],{},[525,850,530],{},[525,852,533],{},[535,854,855,869,883,896,911,924],{},[522,856,857,862,866],{},[540,858,859],{},[174,860,861],{},"actor:hot:init",[540,863,864],{},[174,865,194],{},[540,867,868],{},"Actor JSON from durable storage.",[522,870,871,876,880],{},[540,872,873],{},[174,874,875],{},"actor:hot:get",[540,877,878],{},[174,879,194],{},[540,881,882],{},"Actor JSON.",[522,884,885,890,893],{},[540,886,887],{},[174,888,889],{},"actor:hot:keys",[540,891,892],{},"none",[540,894,895],{},"JSON array of hot actor UIDs.",[522,897,898,903,909],{},[540,899,900],{},[174,901,902],{},"actor:hot:override",[540,904,905,497,907],{},[174,906,194],{},[174,908,565],{},[540,910,882],{},[522,912,913,917,921],{},[540,914,915],{},[174,916,839],{},[540,918,919],{},[174,920,194],{},[540,922,923],{},"Current hot actor JSON and async durable save.",[522,925,926,931,935],{},[540,927,928],{},[174,929,930],{},"actor:hot:remove",[540,932,933],{},[174,934,194],{},[540,936,937,606],{},[174,938,622],{},[155,940,941],{},"Use hot state for frequently updated session data such as position and loadout.\nUse durable commands for account creation and administrative changes.",[159,943,945],{"id":944},"error-handling","Error Handling",[167,947,949],{"className":635,"code":948,"language":637,"meta":172,"style":172},"private _result = \"forge_server\" callExtension [\"actor:get\", [getPlayerUID player]];\nprivate _payload = _result select 0;\n\nif (_payload find \"Error:\" == 0) exitWith {\n systemChat format [\"Actor error: %1\", _payload];\n};\n\nprivate _actor = fromJSON _payload;\n",[174,950,951,956,961,965,970,975,980,984],{"__ignoreMap":172},[177,952,953],{"class":179,"line":180},[177,954,955],{},"private _result = \"forge_server\" callExtension [\"actor:get\", [getPlayerUID player]];\n",[177,957,958],{"class":179,"line":187},[177,959,960],{},"private _payload = _result select 0;\n",[177,962,963],{"class":179,"line":215},[177,964,710],{"emptyLinePlaceholder":709},[177,966,967],{"class":179,"line":236},[177,968,969],{},"if (_payload find \"Error:\" == 0) exitWith {\n",[177,971,972],{"class":179,"line":251},[177,973,974],{}," systemChat format [\"Actor error: %1\", _payload];\n",[177,976,977],{"class":179,"line":284},[177,978,979],{},"};\n",[177,981,982],{"class":179,"line":301},[177,983,710],{"emptyLinePlaceholder":709},[177,985,986],{"class":179,"line":322},[177,987,988],{},"private _actor = fromJSON _payload;\n",[990,991,992],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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":172,"searchDepth":187,"depth":187,"links":994},[995,996,997,998,999,1000],{"id":161,"depth":187,"text":162},{"id":506,"depth":187,"text":507},{"id":625,"depth":187,"text":626},{"id":737,"depth":187,"text":738},{"id":829,"depth":187,"text":830},{"id":944,"depth":187,"text":945},"md",null,{},{"title":49,"description":157},"lOr0hGaOrJo611Lgdf6VCoSehV0NudH7u2_V75BKoZ0",[1007,1009],{"title":47,"path":43,"stem":44,"description":1008,"children":-1},"These pages document the authoritative server-side workflows in Forge.",{"title":53,"path":54,"stem":55,"description":1010,"children":-1},"The store module processes checkout requests. It charges a payment source and\ngrants purchased items to the player locker, virtual arsenal locker, and\nvirtual garage unlocks.",1776806627742]