[{"data":1,"prerenderedAt":536},["ShallowReactive",2],{"navigation_docs_en":3,"-en-ecosystem-voicecraft-repository":116,"-en-ecosystem-voicecraft-repository-surround":531},[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":92,"body":118,"description":525,"extension":526,"links":527,"meta":528,"navigation":252,"path":93,"seo":529,"stem":94,"__hash__":530},"docs_en\u002Fen\u002F6.ecosystem\u002F2.voicecraft-repository.md",{"type":119,"value":120,"toc":516},"minimark",[121,125,136,141,168,172,175,192,195,217,221,276,279,306,309,326,330,374,377,381,384,421,425,475,479,497,500,512],[122,123,92],"h1",{"id":124},"voicecraft-repository-and-build",[126,127,128,129],"p",{},"Repository: ",[130,131,135],"a",{"href":132,"rel":133},"https:\u002F\u002Fgithub.com\u002FAvionBlock\u002FVoiceCraft",[134],"nofollow","AvionBlock\u002FVoiceCraft",[137,138,140],"h2",{"id":139},"repository-structure","Repository structure",[142,143,144,152,158],"ul",{},[145,146,147,151],"li",{},[148,149,150],"code",{},"VoiceCraft.Client\u002F*"," — platform clients (Windows\u002FLinux\u002FmacOS\u002FAndroid\u002FiOS\u002FWeb).",[145,153,154,157],{},[148,155,156],{},"VoiceCraft.Server"," — voice transport server and McHttp\u002FMcWss API layer.",[145,159,160,163,164,167],{},[148,161,162],{},"VoiceCraft.Core",", ",[148,165,166],{},"VoiceCraft.Network"," — shared models, protocol, network logic.",[137,169,171],{"id":170},"build-requirements","Build requirements",[126,173,174],{},"From source code:",[142,176,177],{},[145,178,179,180,183,184,187,188,191],{},".NET SDK ",[148,181,182],{},"9.0.312"," (",[148,185,186],{},"global.json",", rollForward ",[148,189,190],{},"latestMinor",").",[126,193,194],{},"Check locally:",[196,197,202],"pre",{"className":198,"code":199,"language":200,"meta":201,"style":201},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dotnet --info\n","bash","",[148,203,204],{"__ignoreMap":201},[205,206,209,213],"span",{"class":207,"line":208},"line",1,[205,210,212],{"class":211},"sBMFI","dotnet",[205,214,216],{"class":215},"sfazB"," --info\n",[137,218,220],{"id":219},"build-and-run","Build and run",[196,222,224],{"className":198,"code":223,"language":200,"meta":201,"style":201},"git clone https:\u002F\u002Fgithub.com\u002FAvionBlock\u002FVoiceCraft.git\ncd VoiceCraft\n\ndotnet restore\ndotnet build -c Release\n",[148,225,226,237,247,254,262],{"__ignoreMap":201},[205,227,228,231,234],{"class":207,"line":208},[205,229,230],{"class":211},"git",[205,232,233],{"class":215}," clone",[205,235,236],{"class":215}," https:\u002F\u002Fgithub.com\u002FAvionBlock\u002FVoiceCraft.git\n",[205,238,240,244],{"class":207,"line":239},2,[205,241,243],{"class":242},"s2Zo4","cd",[205,245,246],{"class":215}," VoiceCraft\n",[205,248,250],{"class":207,"line":249},3,[205,251,253],{"emptyLinePlaceholder":252},true,"\n",[205,255,257,259],{"class":207,"line":256},4,[205,258,212],{"class":211},[205,260,261],{"class":215}," restore\n",[205,263,265,267,270,273],{"class":207,"line":264},5,[205,266,212],{"class":211},[205,268,269],{"class":215}," build",[205,271,272],{"class":215}," -c",[205,274,275],{"class":215}," Release\n",[126,277,278],{},"Run server:",[196,280,282],{"className":198,"code":281,"language":200,"meta":201,"style":201},"dotnet run --project VoiceCraft.Server -- --language en-US\n",[148,283,284],{"__ignoreMap":201},[205,285,286,288,291,294,297,300,303],{"class":207,"line":208},[205,287,212],{"class":211},[205,289,290],{"class":215}," run",[205,292,293],{"class":215}," --project",[205,295,296],{"class":215}," VoiceCraft.Server",[205,298,299],{"class":215}," --",[205,301,302],{"class":215}," --language",[205,304,305],{"class":215}," en-US\n",[126,307,308],{},"Useful server root options:",[142,310,311,317],{},[145,312,313,316],{},[148,314,315],{},"--language \u003Clocale>"," — server log language.",[145,318,319,322,323,325],{},[148,320,321],{},"--exit-on-invalid-properties"," — exit process if ",[148,324,49],{}," is invalid.",[137,327,329],{"id":328},"client-builds-examples","Client builds (examples)",[196,331,333],{"className":198,"code":332,"language":200,"meta":201,"style":201},"dotnet build VoiceCraft.Client\u002FVoiceCraft.Client.Windows -c Release\ndotnet build VoiceCraft.Client\u002FVoiceCraft.Client.Linux -c Release\ndotnet build VoiceCraft.Client\u002FVoiceCraft.Client.MacOS -c Release\n",[148,334,335,348,361],{"__ignoreMap":201},[205,336,337,339,341,344,346],{"class":207,"line":208},[205,338,212],{"class":211},[205,340,269],{"class":215},[205,342,343],{"class":215}," VoiceCraft.Client\u002FVoiceCraft.Client.Windows",[205,345,272],{"class":215},[205,347,275],{"class":215},[205,349,350,352,354,357,359],{"class":207,"line":239},[205,351,212],{"class":211},[205,353,269],{"class":215},[205,355,356],{"class":215}," VoiceCraft.Client\u002FVoiceCraft.Client.Linux",[205,358,272],{"class":215},[205,360,275],{"class":215},[205,362,363,365,367,370,372],{"class":207,"line":249},[205,364,212],{"class":211},[205,366,269],{"class":215},[205,368,369],{"class":215}," VoiceCraft.Client\u002FVoiceCraft.Client.MacOS",[205,371,272],{"class":215},[205,373,275],{"class":215},[126,375,376],{},"Mobile targets typically need their platform SDK toolchains.",[137,378,380],{"id":379},"embedded-locales","Embedded locales",[126,382,383],{},"From current client\u002Fserver embedded resources:",[142,385,386,391,396,401,406,411,416],{},[145,387,388],{},[148,389,390],{},"en-US",[145,392,393],{},[148,394,395],{},"ru-RU",[145,397,398],{},[148,399,400],{},"nl-NL",[145,402,403],{},[148,404,405],{},"de-DE",[145,407,408],{},[148,409,410],{},"pl-PL",[145,412,413],{},[148,414,415],{},"zh-CN",[145,417,418],{},[148,419,420],{},"zh-TW",[137,422,424],{"id":423},"production-setup-checklist","Production setup checklist",[426,427,428,438,452,465,468],"ol",{},[145,429,430,431,433,434,437],{},"Run ",[148,432,156],{}," once to generate ",[148,435,436],{},"config\u002FServerProperties.json",".",[145,439,440,441,444,445,448,449,437],{},"Replace ",[148,442,443],{},"LoginToken"," values in ",[148,446,447],{},"McHttpConfig"," and ",[148,450,451],{},"McWssConfig",[145,453,454,455,163,458,461,462,437],{},"Validate ",[148,456,457],{},"Port",[148,459,460],{},"Hostname",", and ",[148,463,464],{},"MaxClients",[145,466,467],{},"Open only required ports on firewall\u002FNAT.",[145,469,470,471,474],{},"Avoid changing ",[148,472,473],{},"DisabledPacketTypes"," unless you fully understand packet flow.",[137,476,478],{"id":477},"addon-integration","Addon integration",[142,480,481,487],{},[145,482,483,484,437],{},"For BDS: usually ",[148,485,486],{},"McHttpConfig.Enabled = true",[145,488,489,490,493,494,437],{},"For singleplayer worlds: usually ",[148,491,492],{},"McWssConfig.Enabled = true"," with ",[148,495,496],{},"voicecraft:data_tunnel",[126,498,499],{},"See also:",[142,501,502,507],{},[145,503,504],{},[130,505,506],{"href":101},"VoiceCraft.Addon",[145,508,509],{},[130,510,511],{"href":105},"Integration recipes",[513,514,515],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":201,"searchDepth":239,"depth":239,"links":517},[518,519,520,521,522,523,524],{"id":139,"depth":239,"text":140},{"id":170,"depth":239,"text":171},{"id":219,"depth":239,"text":220},{"id":328,"depth":239,"text":329},{"id":379,"depth":239,"text":380},{"id":423,"depth":239,"text":424},{"id":477,"depth":239,"text":478},"Repository: AvionBlock\u002FVoiceCraft","md",null,{},{"title":92,"description":525},"fpTDGxDOYcjQoctqnZIe0Rwez8QBU9ADKUAEkHIvdpI",[532,534],{"title":88,"path":89,"stem":90,"description":533,"children":-1},"This section documents the 3 repositories that are usually deployed together:",{"title":96,"path":97,"stem":98,"description":535,"children":-1},"Repository: AvionBlock\u002FGeyserVoice",1775616496999]