1 line
9.4 KiB
JSON

[{"data":1,"prerenderedAt":305},["ShallowReactive",2],{"navigation_docs":3,"-server-extension":145,"-server-extension-surround":300},[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":28,"body":147,"description":157,"extension":294,"links":295,"meta":296,"navigation":297,"path":29,"seo":298,"stem":30,"__hash__":299},"docs\u002F2.server-extension\u002F0.index.md",{"type":148,"value":149,"toc":289},"minimark",[150,154,158,163,179,189,193,204,255,262,266,285],[151,152,28],"h1",{"id":153},"forge-server-extension",[155,156,157],"p",{},"Forge Server is an arma-rs extension for Arma 3 server-side persistence and\ndomain services. It exposes game-facing commands and stores durable state in\nSurrealDB.",[159,160,162],"h2",{"id":161},"architecture","Architecture",[155,164,165,166,170,171,174,175,178],{},"SQF modules call ",[167,168,169],"code",{},"forge_server"," through ",[167,172,173],{},"fnc_extCall",". Small requests use the\ndirect ",[167,176,177],{},"callExtension"," path, while large payloads are staged through the\ntransport layer.",[180,181,187],"pre",{"className":182,"code":184,"language":185,"meta":186},[183],"language-text","SQF module\n -> extension bridge\n -> domain command\n -> service layer\n -> repository\n -> SurrealDB\n","text","",[167,188,184],{"__ignoreMap":186},[159,190,192],{"id":191},"configuration","Configuration",[155,194,195,196,199,200,203],{},"Copy ",[167,197,198],{},"config.example.toml"," to ",[167,201,202],{},"config.toml"," next to the extension DLL.",[180,205,209],{"className":206,"code":207,"language":208,"meta":186,"style":186},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[surreal]\nendpoint = \"127.0.0.1:8000\"\nnamespace = \"forge\"\ndatabase = \"main\"\nusername = \"root\"\npassword = \"root\"\nconnect_timeout_ms = 5000\n","toml",[167,210,211,219,225,231,237,243,249],{"__ignoreMap":186},[212,213,216],"span",{"class":214,"line":215},"line",1,[212,217,218],{},"[surreal]\n",[212,220,222],{"class":214,"line":221},2,[212,223,224],{},"endpoint = \"127.0.0.1:8000\"\n",[212,226,228],{"class":214,"line":227},3,[212,229,230],{},"namespace = \"forge\"\n",[212,232,234],{"class":214,"line":233},4,[212,235,236],{},"database = \"main\"\n",[212,238,240],{"class":214,"line":239},5,[212,241,242],{},"username = \"root\"\n",[212,244,246],{"class":214,"line":245},6,[212,247,248],{},"password = \"root\"\n",[212,250,252],{"class":214,"line":251},7,[212,253,254],{},"connect_timeout_ms = 5000\n",[155,256,257,258,261],{},"For install links and Forge-specific setup steps, see\n",[259,260,23],"a",{"href":24},".",[159,263,265],{"id":264},"references","References",[267,268,269,275,280],"ul",{},[270,271,272],"li",{},[259,273,274],{"href":35},"API Reference",[270,276,277],{},[259,278,279],{"href":39},"Usage Examples",[270,281,282],{},[259,283,284],{"href":6},"Framework Module Guides",[286,287,288],"style",{},"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":186,"searchDepth":221,"depth":221,"links":290},[291,292,293],{"id":161,"depth":221,"text":162},{"id":191,"depth":221,"text":192},{"id":264,"depth":221,"text":265},"md",null,{},true,{"title":28,"description":157},"SU6vHrINTwEWo9oGCzI4XL2aIeAMs6_cQbRNoeKCsys",[301,303],{"title":23,"path":24,"stem":25,"description":302,"children":-1},"Forge uses SurrealDB for durable storage. The Rust server extension connects to\nSurrealDB on startup and applies Forge schema modules automatically, so setup\ncomes down to running a reachable database and matching the Forge config.",{"title":34,"path":35,"stem":36,"description":304,"children":-1},"The Forge server extension exposes domain-oriented commands through\ncallExtension. Persistent data is stored through the configured SurrealDB\nconnection and schema modules.",1776806627034]