[{"data":1,"prerenderedAt":666},["ShallowReactive",2],{"navigation_docs_en":3,"-en-ecosystem-integration-recipes":116,"-en-ecosystem-integration-recipes-surround":661},[4,18,35,56,69,82,107],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Start","\u002Fen\u002Fstart","en\u002F1.start",[9,13],{"title":10,"path":11,"stem":12},"Overview","\u002Fen\u002Fstart\u002Foverview","en\u002F1.start\u002F1.overview",{"title":14,"path":15,"stem":16},"Quick Start","\u002Fen\u002Fstart\u002Fquick-start","en\u002F1.start\u002F2.quick-start",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Client","\u002Fen\u002Fclient","en\u002F2.client",[23,27,31],{"title":24,"path":25,"stem":26},"Client Installation","\u002Fen\u002Fclient\u002Finstallation","en\u002F2.client\u002F1.installation",{"title":28,"path":29,"stem":30},"Client Settings (UI)","\u002Fen\u002Fclient\u002Fsettings","en\u002F2.client\u002F2.settings",{"title":32,"path":33,"stem":34},"Settings.json","\u002Fen\u002Fclient\u002Fsettings-json","en\u002F2.client\u002F3.settings-json",{"title":36,"path":37,"stem":38,"children":39,"page":17},"Server","\u002Fen\u002Fserver","en\u002F3.server",[40,44,48,52],{"title":41,"path":42,"stem":43},"Server Installation","\u002Fen\u002Fserver\u002Finstallation","en\u002F3.server\u002F1.installation",{"title":45,"path":46,"stem":47},"First Server Run","\u002Fen\u002Fserver\u002Ffirst-run","en\u002F3.server\u002F2.first-run",{"title":49,"path":50,"stem":51},"ServerProperties.json","\u002Fen\u002Fserver\u002Fserver-properties","en\u002F3.server\u002F3.server-properties",{"title":53,"path":54,"stem":55},"Server Commands","\u002Fen\u002Fserver\u002Fcommands","en\u002F3.server\u002F4.commands",{"title":57,"path":58,"stem":59,"children":60,"page":17},"Minecraft","\u002Fen\u002Fminecraft","en\u002F4.minecraft",[61,65],{"title":62,"path":63,"stem":64},"McHttp for Bedrock Dedicated Server","\u002Fen\u002Fminecraft\u002Fmchttp-bds","en\u002F4.minecraft\u002F1.mchttp-bds",{"title":66,"path":67,"stem":68},"McWss for Singleplayer Worlds","\u002Fen\u002Fminecraft\u002Fmcwss-singleplayer","en\u002F4.minecraft\u002F2.mcwss-singleplayer",{"title":70,"path":71,"stem":72,"children":73,"page":17},"Operations","\u002Fen\u002Foperations","en\u002F5.operations",[74,78],{"title":75,"path":76,"stem":77},"Update and Backup","\u002Fen\u002Foperations\u002Fupdate-backup","en\u002F5.operations\u002F1.update-backup",{"title":79,"path":80,"stem":81},"Troubleshooting","\u002Fen\u002Foperations\u002Ftroubleshooting","en\u002F5.operations\u002F2.troubleshooting",{"title":83,"path":84,"stem":85,"children":86,"page":17},"Ecosystem","\u002Fen\u002Fecosystem","en\u002F6.ecosystem",[87,91,95,99,103],{"title":88,"path":89,"stem":90},"VoiceCraft Ecosystem","\u002Fen\u002Fecosystem\u002Foverview","en\u002F6.ecosystem\u002F1.overview",{"title":92,"path":93,"stem":94},"VoiceCraft (Repository and Build)","\u002Fen\u002Fecosystem\u002Fvoicecraft-repository","en\u002F6.ecosystem\u002F2.voicecraft-repository",{"title":96,"path":97,"stem":98},"GeyserVoice (Java\u002FGeyser Bridge)","\u002Fen\u002Fecosystem\u002Fgeyservoice","en\u002F6.ecosystem\u002F3.geyservoice",{"title":100,"path":101,"stem":102},"VoiceCraft.Addon (Bedrock Addon)","\u002Fen\u002Fecosystem\u002Fvoicecraft-addon","en\u002F6.ecosystem\u002F4.voicecraft-addon",{"title":104,"path":105,"stem":106},"Integration Recipes","\u002Fen\u002Fecosystem\u002Fintegration-recipes","en\u002F6.ecosystem\u002F5.integration-recipes",{"title":108,"path":109,"stem":110,"children":111,"page":17},"Faq","\u002Fen\u002Ffaq","en\u002F7.faq",[112],{"title":113,"path":114,"stem":115},"FAQ","\u002Fen\u002Ffaq\u002Ffaq","en\u002F7.faq\u002F1.faq",{"id":117,"title":104,"body":118,"description":128,"extension":655,"links":656,"meta":657,"navigation":658,"path":105,"seo":659,"stem":106,"__hash__":660},"docs_en\u002Fen\u002F6.ecosystem\u002F5.integration-recipes.md",{"type":119,"value":120,"toc":647},"minimark",[121,125,129,134,137,155,158,201,205,207,221,223,247,251,253,270,272,297,301,588,592,623,627,643],[122,123,104],"h1",{"id":124},"integration-recipes",[126,127,128],"p",{},"These are practical deployment patterns for different server types.",[130,131,133],"h2",{"id":132},"scenario-a-bedrock-dedicated-server-recommended","Scenario A: Bedrock Dedicated Server (recommended)",[126,135,136],{},"Stack:",[138,139,140,147,152],"ul",{},[141,142,143],"li",{},[144,145,146],"code",{},"VoiceCraft.Server",[141,148,149],{},[144,150,151],{},"VoiceCraft.Addon.Core.McHttp",[141,153,154],{},"VoiceCraft clients for players",[126,156,157],{},"Steps:",[159,160,161,167,176,182,189,195],"ol",{},[141,162,163,164,166],{},"Deploy ",[144,165,146],{},".",[141,168,169,170,173,174,166],{},"Keep ",[144,171,172],{},"McHttpConfig.Enabled = true"," in ",[144,175,49],{},[141,177,178,179,166],{},"Ensure BDS can reach ",[144,180,181],{},"McHttpConfig.Hostname",[141,183,184,185,188],{},"Install ",[144,186,187],{},"Core.McHttp"," packs in BDS.",[141,190,191,192,166],{},"Run ",[144,193,194],{},"voicecraft:vcconnect \u003Chostname> \u003Ctoken>",[141,196,197,198,166],{},"Validate player binding with ",[144,199,200],{},"voicecraft:vcbind \u003Ckey>",[130,202,204],{"id":203},"scenario-b-localsingleplayer-bedrock-world","Scenario B: Local\u002Fsingleplayer Bedrock world",[126,206,136],{},[138,208,209,216],{},[141,210,211,212,215],{},"local ",[144,213,214],{},"VoiceCraft"," client (with McWss)",[141,217,218],{},[144,219,220],{},"VoiceCraft.Addon.Core.McWss",[126,222,157],{},[159,224,225,230,236,242],{},[141,226,227,228,166],{},"Enable McWss in ",[144,229,49],{},[141,231,232,233,166],{},"Ensure ",[144,234,235],{},"DataTunnelCommand = \"voicecraft:data_tunnel\"",[141,237,184,238,241],{},[144,239,240],{},"Core.McWss"," in world.",[141,243,191,244,241],{},[144,245,246],{},"voicecraft:vcconnect \u003Ctoken>",[130,248,250],{"id":249},"scenario-c-java-geyserfloodgate-network","Scenario C: Java + Geyser\u002FFloodgate network",[126,252,136],{},[138,254,255,259,265],{},[141,256,257],{},[144,258,146],{},[141,260,261,264],{},[144,262,263],{},"GeyserVoice"," on Velocity\u002FBungee",[141,266,267,269],{},[144,268,263],{}," on backend Paper\u002FFolia",[126,271,157],{},[159,273,274,281,288,294],{},[141,275,276,277,280],{},"Configure ",[144,278,279],{},"host\u002Fport\u002Fserver-key"," on proxy.",[141,282,283,284,287],{},"Set ",[144,285,286],{},"server-behind-proxy: true"," on backend Paper.",[141,289,290,291,166],{},"Reload plugin with ",[144,292,293],{},"\u002Fvoice reload",[141,295,296],{},"Validate bind flow and position forwarding.",[130,298,300],{"id":299},"minimal-production-config-fragment","Minimal production config fragment",[302,303,308],"pre",{"className":304,"code":305,"language":306,"meta":307,"style":307},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"VoiceCraftConfig\": {\n    \"Port\": 9050,\n    \"MaxClients\": 250,\n    \"PositioningType\": 0\n  },\n  \"McHttpConfig\": {\n    \"Enabled\": true,\n    \"LoginToken\": \"replace-with-strong-token\",\n    \"Hostname\": \"http:\u002F\u002F0.0.0.0:9050\u002F\",\n    \"MaxClients\": 10\n  },\n  \"McWssConfig\": {\n    \"Enabled\": false,\n    \"LoginToken\": \"replace-with-strong-token\",\n    \"Hostname\": \"ws:\u002F\u002F0.0.0.0:9051\u002F\",\n    \"DataTunnelCommand\": \"voicecraft:data_tunnel\"\n  }\n}\n","json","",[144,309,310,319,338,359,376,391,397,411,426,449,470,484,489,503,517,536,556,576,582],{"__ignoreMap":307},[311,312,315],"span",{"class":313,"line":314},"line",1,[311,316,318],{"class":317},"sMK4o","{\n",[311,320,322,325,329,332,335],{"class":313,"line":321},2,[311,323,324],{"class":317},"  \"",[311,326,328],{"class":327},"spNyl","VoiceCraftConfig",[311,330,331],{"class":317},"\"",[311,333,334],{"class":317},":",[311,336,337],{"class":317}," {\n",[311,339,341,344,348,350,352,356],{"class":313,"line":340},3,[311,342,343],{"class":317},"    \"",[311,345,347],{"class":346},"sBMFI","Port",[311,349,331],{"class":317},[311,351,334],{"class":317},[311,353,355],{"class":354},"sbssI"," 9050",[311,357,358],{"class":317},",\n",[311,360,362,364,367,369,371,374],{"class":313,"line":361},4,[311,363,343],{"class":317},[311,365,366],{"class":346},"MaxClients",[311,368,331],{"class":317},[311,370,334],{"class":317},[311,372,373],{"class":354}," 250",[311,375,358],{"class":317},[311,377,379,381,384,386,388],{"class":313,"line":378},5,[311,380,343],{"class":317},[311,382,383],{"class":346},"PositioningType",[311,385,331],{"class":317},[311,387,334],{"class":317},[311,389,390],{"class":354}," 0\n",[311,392,394],{"class":313,"line":393},6,[311,395,396],{"class":317},"  },\n",[311,398,400,402,405,407,409],{"class":313,"line":399},7,[311,401,324],{"class":317},[311,403,404],{"class":327},"McHttpConfig",[311,406,331],{"class":317},[311,408,334],{"class":317},[311,410,337],{"class":317},[311,412,414,416,419,421,423],{"class":313,"line":413},8,[311,415,343],{"class":317},[311,417,418],{"class":346},"Enabled",[311,420,331],{"class":317},[311,422,334],{"class":317},[311,424,425],{"class":317}," true,\n",[311,427,429,431,434,436,438,441,445,447],{"class":313,"line":428},9,[311,430,343],{"class":317},[311,432,433],{"class":346},"LoginToken",[311,435,331],{"class":317},[311,437,334],{"class":317},[311,439,440],{"class":317}," \"",[311,442,444],{"class":443},"sfazB","replace-with-strong-token",[311,446,331],{"class":317},[311,448,358],{"class":317},[311,450,452,454,457,459,461,463,466,468],{"class":313,"line":451},10,[311,453,343],{"class":317},[311,455,456],{"class":346},"Hostname",[311,458,331],{"class":317},[311,460,334],{"class":317},[311,462,440],{"class":317},[311,464,465],{"class":443},"http:\u002F\u002F0.0.0.0:9050\u002F",[311,467,331],{"class":317},[311,469,358],{"class":317},[311,471,473,475,477,479,481],{"class":313,"line":472},11,[311,474,343],{"class":317},[311,476,366],{"class":346},[311,478,331],{"class":317},[311,480,334],{"class":317},[311,482,483],{"class":354}," 10\n",[311,485,487],{"class":313,"line":486},12,[311,488,396],{"class":317},[311,490,492,494,497,499,501],{"class":313,"line":491},13,[311,493,324],{"class":317},[311,495,496],{"class":327},"McWssConfig",[311,498,331],{"class":317},[311,500,334],{"class":317},[311,502,337],{"class":317},[311,504,506,508,510,512,514],{"class":313,"line":505},14,[311,507,343],{"class":317},[311,509,418],{"class":346},[311,511,331],{"class":317},[311,513,334],{"class":317},[311,515,516],{"class":317}," false,\n",[311,518,520,522,524,526,528,530,532,534],{"class":313,"line":519},15,[311,521,343],{"class":317},[311,523,433],{"class":346},[311,525,331],{"class":317},[311,527,334],{"class":317},[311,529,440],{"class":317},[311,531,444],{"class":443},[311,533,331],{"class":317},[311,535,358],{"class":317},[311,537,539,541,543,545,547,549,552,554],{"class":313,"line":538},16,[311,540,343],{"class":317},[311,542,456],{"class":346},[311,544,331],{"class":317},[311,546,334],{"class":317},[311,548,440],{"class":317},[311,550,551],{"class":443},"ws:\u002F\u002F0.0.0.0:9051\u002F",[311,553,331],{"class":317},[311,555,358],{"class":317},[311,557,559,561,564,566,568,570,573],{"class":313,"line":558},17,[311,560,343],{"class":317},[311,562,563],{"class":346},"DataTunnelCommand",[311,565,331],{"class":317},[311,567,334],{"class":317},[311,569,440],{"class":317},[311,571,572],{"class":443},"voicecraft:data_tunnel",[311,574,575],{"class":317},"\"\n",[311,577,579],{"class":313,"line":578},18,[311,580,581],{"class":317},"  }\n",[311,583,585],{"class":313,"line":584},19,[311,586,587],{"class":317},"}\n",[130,589,591],{"id":590},"troubleshooting-flow","Troubleshooting flow",[159,593,594,604,607,613,616],{},[141,595,596,597,599,600,603],{},"Verify ",[144,598,433],{}," values and ",[144,601,602],{},"vcconnect"," command arguments.",[141,605,606],{},"Validate network path and open ports between nodes.",[141,608,609,610,166],{},"For proxy networks, verify backend ",[144,611,612],{},"server-behind-proxy",[141,614,615],{},"For unstable McWss, reduce load and check command\u002Fpayload limits.",[141,617,618,619,622],{},"As a last resort, temporarily disable specific packet types in ",[144,620,621],{},"DisabledPacketTypes"," (carefully).",[130,624,626],{"id":625},"links","Links",[138,628,629,634,638],{},[141,630,631],{},[632,633,214],"a",{"href":93},[141,635,636],{},[632,637,263],{"href":97},[141,639,640],{},[632,641,642],{"href":101},"VoiceCraft.Addon",[644,645,646],"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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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":307,"searchDepth":321,"depth":321,"links":648},[649,650,651,652,653,654],{"id":132,"depth":321,"text":133},{"id":203,"depth":321,"text":204},{"id":249,"depth":321,"text":250},{"id":299,"depth":321,"text":300},{"id":590,"depth":321,"text":591},{"id":625,"depth":321,"text":626},"md",null,{},true,{"title":104,"description":128},"MXFgPz0lXDbXkO9CNb2QfxlJF_KbzzDdUwvAFtmuBnM",[662,664],{"title":100,"path":101,"stem":102,"description":663,"children":-1},"Repository: AvionBlock\u002FVoiceCraft.Addon",{"title":113,"path":114,"stem":115,"description":665,"children":-1},"Commonly asked questions about VoiceCraft.",1775616497060]