[{"data":1,"prerenderedAt":1320},["ShallowReactive",2],{"navigation_docs_es":3,"-es-developers-build-from-source":259,"-es-developers-build-from-source-surround":1315},[4,38,110,190,232],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":-1},"Primeros pasos","i-lucide-rocket","\u002Fes\u002Fgetting-started","es\u002F1.getting-started\u002Findex",[10,13,18,23,28,33],{"title":11,"path":7,"stem":8,"icon":12},"Resumen","i-lucide-layout-grid",{"title":14,"path":15,"stem":16,"icon":17},"Instalación","\u002Fes\u002Fgetting-started\u002Finstallation","es\u002F1.getting-started\u002F01.installation","i-lucide-download",{"title":19,"path":20,"stem":21,"icon":22},"Iniciar sesión","\u002Fes\u002Fgetting-started\u002Fsign-in","es\u002F1.getting-started\u002F02.sign-in","i-lucide-log-in",{"title":24,"path":25,"stem":26,"icon":27},"Tu primera instancia","\u002Fes\u002Fgetting-started\u002Ffirst-instance","es\u002F1.getting-started\u002F03.first-instance","i-lucide-play",{"title":29,"path":30,"stem":31,"icon":32},"Android: instalar el APK","\u002Fes\u002Fgetting-started\u002Fandroid","es\u002F1.getting-started\u002F04.android","i-lucide-smartphone",{"title":34,"path":35,"stem":36,"icon":37},"iPhone\u002FiPad: instalar con AltStore\u002FSideStore","\u002Fes\u002Fgetting-started\u002Fiphone-ipad","es\u002F1.getting-started\u002F05.iphone-ipad","i-lucide-tablet-smartphone",{"title":39,"icon":40,"path":41,"stem":42,"children":43,"page":-1},"Launcher","i-lucide-app-window","\u002Fes\u002Flauncher","es\u002F2.launcher\u002Findex",[44,45,50,55,60,65,70,75,80,85,90,95,100,105],{"title":11,"path":41,"stem":42,"icon":12},{"title":46,"path":47,"stem":48,"icon":49},"Instancias","\u002Fes\u002Flauncher\u002Finstances","es\u002F2.launcher\u002F01.instances","i-lucide-boxes",{"title":51,"path":52,"stem":53,"icon":54},"Cargadores de mods","\u002Fes\u002Flauncher\u002Fmod-loaders","es\u002F2.launcher\u002F02.mod-loaders","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Mods","\u002Fes\u002Flauncher\u002Fmods","es\u002F2.launcher\u002F03.mods","i-lucide-puzzle",{"title":61,"path":62,"stem":63,"icon":64},"Modpacks","\u002Fes\u002Flauncher\u002Fmodpacks","es\u002F2.launcher\u002F04.modpacks","i-lucide-package",{"title":66,"path":67,"stem":68,"icon":69},"Compartir modpacks","\u002Fes\u002Flauncher\u002Fshare-modpacks","es\u002F2.launcher\u002F05.share-modpacks","i-lucide-share-2",{"title":71,"path":72,"stem":73,"icon":74},"Importar desde otros launchers","\u002Fes\u002Flauncher\u002Fimport","es\u002F2.launcher\u002F06.import","i-lucide-folder-input",{"title":76,"path":77,"stem":78,"icon":79},"Clips y capturas","\u002Fes\u002Flauncher\u002Fclips","es\u002F2.launcher\u002F07.clips","i-lucide-clapperboard",{"title":81,"path":82,"stem":83,"icon":84},"Amigos y chat","\u002Fes\u002Flauncher\u002Fsocial","es\u002F2.launcher\u002F08.social","i-lucide-messages-square",{"title":86,"path":87,"stem":88,"icon":89},"Logros","\u002Fes\u002Flauncher\u002Fachievements","es\u002F2.launcher\u002F09.achievements","i-lucide-trophy",{"title":91,"path":92,"stem":93,"icon":94},"Skins y capas","\u002Fes\u002Flauncher\u002Fwardrobe","es\u002F2.launcher\u002F10.wardrobe","i-lucide-shirt",{"title":96,"path":97,"stem":98,"icon":99},"Ajustes","\u002Fes\u002Flauncher\u002Fsettings","es\u002F2.launcher\u002F11.settings","i-lucide-settings",{"title":101,"path":102,"stem":103,"icon":104},"Actualizaciones","\u002Fes\u002Flauncher\u002Fupdates","es\u002F2.launcher\u002F12.updates","i-lucide-refresh-cw",{"title":106,"path":107,"stem":108,"icon":109},"Servidores","\u002Fes\u002Flauncher\u002Fservers","es\u002F2.launcher\u002F13.servers","i-lucide-server",{"title":111,"icon":112,"path":113,"stem":114,"children":115,"page":-1},"TRS Client","i-lucide-blocks","\u002Fes\u002Fclient","es\u002F3.client\u002Findex",[116,117,121,126,131,136,141,146,151,156,160,165,170,175,180,185],{"title":11,"path":113,"stem":114,"icon":12},{"title":118,"path":119,"stem":120,"icon":112},"¿Qué es TRS Client?","\u002Fes\u002Fclient\u002Foverview","es\u002F3.client\u002F01.overview",{"title":122,"path":123,"stem":124,"icon":125},"Menú TRS y editor HUD","\u002Fes\u002Fclient\u002Fmenu-and-hud-editor","es\u002F3.client\u002F02.menu-and-hud-editor","i-lucide-layout-dashboard",{"title":127,"path":128,"stem":129,"icon":130},"Rendimiento y FPS","\u002Fes\u002Fclient\u002Fperformance","es\u002F3.client\u002F03.performance","i-lucide-gauge",{"title":132,"path":133,"stem":134,"icon":135},"Módulos de PvP","\u002Fes\u002Fclient\u002Fpvp","es\u002F3.client\u002F04.pvp","i-lucide-swords",{"title":137,"path":138,"stem":139,"icon":140},"Zoom, vista libre y correr fijo","\u002Fes\u002Fclient\u002Fzoom-and-freelook","es\u002F3.client\u002F05.zoom-and-freelook","i-lucide-zoom-in",{"title":142,"path":143,"stem":144,"icon":145},"Minimapa, puntos de ruta y mapa del mundo","\u002Fes\u002Fclient\u002Fminimap-and-world-map","es\u002F3.client\u002F06.minimap-and-world-map","i-lucide-map",{"title":147,"path":148,"stem":149,"icon":150},"Herramientas de redstone","\u002Fes\u002Fclient\u002Fredstone-tools","es\u002F3.client\u002F07.redstone-tools","i-lucide-zap",{"title":152,"path":153,"stem":154,"icon":155},"Biblioteca de circuitos","\u002Fes\u002Fclient\u002Fcircuit-library","es\u002F3.client\u002F08.circuit-library","i-lucide-cpu",{"title":157,"path":158,"stem":159,"icon":94},"Emotes, capas, vestuario y cuentas","\u002Fes\u002Fclient\u002Femotes-and-capes","es\u002F3.client\u002F09.emotes-and-capes",{"title":161,"path":162,"stem":163,"icon":164},"Capturas, clips y panorámicas","\u002Fes\u002Fclient\u002Fscreenshots-and-clips","es\u002F3.client\u002F10.screenshots-and-clips","i-lucide-camera",{"title":166,"path":167,"stem":168,"icon":169},"Notas del mundo","\u002Fes\u002Fclient\u002Fnotes","es\u002F3.client\u002F11.notes","i-lucide-notebook-pen",{"title":171,"path":172,"stem":173,"icon":174},"Chat y comodidad","\u002Fes\u002Fclient\u002Fchat-and-comfort","es\u002F3.client\u002F12.chat-and-comfort","i-lucide-message-square",{"title":176,"path":177,"stem":178,"icon":179},"Social en el juego","\u002Fes\u002Fclient\u002Fsocial-in-game","es\u002F3.client\u002F13.social-in-game","i-lucide-users",{"title":181,"path":182,"stem":183,"icon":184},"Teclas predeterminadas","\u002Fes\u002Fclient\u002Fkeybinds","es\u002F3.client\u002F14.keybinds","i-lucide-keyboard",{"title":186,"path":187,"stem":188,"icon":189},"Hospedar un mundo para amigos","\u002Fes\u002Fclient\u002Fworld-hosting","es\u002F3.client\u002F15.world-hosting","i-lucide-globe",{"title":191,"icon":192,"path":193,"stem":194,"children":195,"page":-1},"Ayuda","i-lucide-life-buoy","\u002Fes\u002Fhelp","es\u002F4.help\u002Findex",[196,197,202,207,212,217,222,227],{"title":11,"path":193,"stem":194,"icon":12},{"title":198,"path":199,"stem":200,"icon":201},"Asistente de errores","\u002Fes\u002Fhelp\u002Fcrash-helper","es\u002F4.help\u002F01.crash-helper","i-lucide-heart-pulse",{"title":203,"path":204,"stem":205,"icon":206},"Problemas frecuentes","\u002Fes\u002Fhelp\u002Fcommon-problems","es\u002F4.help\u002F02.common-problems","i-lucide-circle-help",{"title":208,"path":209,"stem":210,"icon":211},"Java y memoria","\u002Fes\u002Fhelp\u002Fjava","es\u002F4.help\u002F03.java","i-lucide-coffee",{"title":213,"path":214,"stem":215,"icon":216},"Linux","\u002Fes\u002Fhelp\u002Flinux","es\u002F4.help\u002F04.linux","i-lucide-terminal",{"title":218,"path":219,"stem":220,"icon":221},"Registros","\u002Fes\u002Fhelp\u002Flogs","es\u002F4.help\u002F05.logs","i-lucide-scroll-text",{"title":223,"path":224,"stem":225,"icon":226},"Reportar un error","\u002Fes\u002Fhelp\u002Freport-a-bug","es\u002F4.help\u002F06.report-a-bug","i-lucide-bug",{"title":228,"path":229,"stem":230,"icon":231},"Privacidad","\u002Fes\u002Fhelp\u002Fprivacy","es\u002F4.help\u002F07.privacy","i-lucide-shield-check",{"title":233,"icon":234,"path":235,"stem":236,"children":237,"page":-1},"Desarrolladores","i-lucide-code-xml","\u002Fes\u002Fdevelopers","es\u002F5.developers\u002Findex",[238,239,244,249,254],{"title":11,"path":235,"stem":236,"icon":12},{"title":240,"path":241,"stem":242,"icon":243},"Compilar desde el código","\u002Fes\u002Fdevelopers\u002Fbuild-from-source","es\u002F5.developers\u002F01.build-from-source","i-lucide-hammer",{"title":245,"path":246,"stem":247,"icon":248},"Contribuir","\u002Fes\u002Fdevelopers\u002Fcontributing","es\u002F5.developers\u002F02.contributing","i-lucide-git-pull-request",{"title":250,"path":251,"stem":252,"icon":253},"Traducir","\u002Fes\u002Fdevelopers\u002Ftranslating","es\u002F5.developers\u002F03.translating","i-lucide-languages",{"title":255,"path":256,"stem":257,"icon":258},"API pública","\u002Fes\u002Fdevelopers\u002Fpublic-api","es\u002F5.developers\u002F04.public-api","i-lucide-braces",{"id":260,"title":240,"body":261,"description":1308,"extension":1309,"links":1310,"meta":1311,"navigation":1312,"path":241,"seo":1313,"stem":242,"__hash__":1314},"docs_es\u002Fes\u002F5.developers\u002F01.build-from-source.md",{"type":262,"value":263,"toc":1295},"minimark",[264,276,281,375,394,398,606,610,691,699,707,711,714,794,797,874,885,929,933,983,990,1008,1012,1017,1027,1030,1151,1157,1202,1219,1223,1236,1286,1291],[265,266,267,268,275],"p",{},"El TRS Launcher es una app de ",[269,270,274],"a",{"href":271,"rel":272},"https:\u002F\u002Ftauri.app",[273],"nofollow","Tauri 2",": un núcleo en Rust hace el trabajo y una aplicación de una\nsola página con Nuxt 4 es la interfaz. El TRS Client del juego es un proyecto de Gradle aparte en el mismo repositorio.",[277,278,280],"h2",{"id":279},"qué-hay-en-cada-sitio","Qué hay en cada sitio",[282,283,284,297],"table",{},[285,286,287],"thead",{},[288,289,290,294],"tr",{},[291,292,293],"th",{},"Carpeta",[291,295,296],{},"Qué es",[298,299,300,312,322,335,345,355,365],"tbody",{},[288,301,302,309],{},[303,304,305],"td",{},[306,307,308],"code",{},"app\u002F",[303,310,311],{},"Frontend en Nuxt 4 (SPA, sin SSR)",[288,313,314,319],{},[303,315,316],{},[306,317,318],{},"src-tauri\u002Fsrc\u002F",[303,320,321],{},"App de Tauri: comandos, registro de tareas, traducción de errores, plugins",[288,323,324,329],{},[303,325,326],{},[306,327,328],{},"src-tauri\u002Fcrates\u002Fcore\u002F",[303,330,331,334],{},[306,332,333],{},"trs-core",": el núcleo del launcher, independiente de la interfaz",[288,336,337,342],{},[303,338,339],{},[306,340,341],{},"src-tauri\u002Fresources\u002Fclient-mod\u002F",[303,343,344],{},"Jars del TRS Client ya compilados que incluye el launcher",[288,346,347,352],{},[303,348,349],{},[306,350,351],{},"client-mod\u002F",[303,353,354],{},"TRS Client: núcleo común y builds para Fabric, Forge y NeoForge",[288,356,357,362],{},[303,358,359],{},[306,360,361],{},"packaging\u002F",[303,363,364],{},"Recetas para AUR y Flatpak, archivos de escritorio de Linux",[288,366,367,372],{},[303,368,369],{},[306,370,371],{},"tests\u002F",[303,373,374],{},"Pruebas del frontend (Vitest)",[265,376,377,378,381,382,388,389,393],{},"La web y la API de TRS están en ",[306,379,380],{},"api\u002F"," en la rama ",[383,384,385],"strong",{},[306,386,387],{},"website"," (mira ",[269,390,392],{"href":391},"#web-y-api","más abajo",").",[277,395,397],{"id":396},"requisitos","Requisitos",[399,400,401,450],"tabs",{},[402,403,405],"tabs-item",{"label":404},"Windows",[406,407,408,427,438,444],"ul",{},[409,410,411,414,415,418,419,422,423,426],"li",{},[383,412,413],{},"Node.js 22"," o más nuevo y ",[383,416,417],{},"pnpm"," (la versión está fijada en ",[306,420,421],{},"package.json","; ",[306,424,425],{},"corepack enable"," la prepara)",[409,428,429,432,433],{},[383,430,431],{},"Rust"," (stable, toolchain MSVC) con ",[269,434,437],{"href":435,"rel":436},"https:\u002F\u002Frustup.rs",[273],"rustup",[409,439,440,443],{},[383,441,442],{},"Visual Studio Build Tools"," con «Desarrollo para el escritorio con C++»",[409,445,446,449],{},[383,447,448],{},"WebView2"," (preinstalado en Windows 10 y 11)",[402,451,452,471],{"label":213},[406,453,454,460,468],{},[409,455,456,414,458],{},[383,457,413],{},[383,459,417],{},[409,461,462,464,465],{},[383,463,431],{}," (stable) con ",[269,466,437],{"href":435,"rel":467},[273],[409,469,470],{},"los paquetes de desarrollo de WebKitGTK y GTK:",[472,473,474,530,570],"code-group",{},[475,476,482],"pre",{"className":477,"code":478,"filename":479,"language":480,"meta":481,"style":481},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sudo apt install build-essential curl file pkg-config libssl-dev libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libxdo-dev\n","Debian\u002FUbuntu","bash","",[306,483,484],{"__ignoreMap":481},[485,486,489,493,497,500,503,506,509,512,515,518,521,524,527],"span",{"class":487,"line":488},"line",1,[485,490,492],{"class":491},"sBMFI","sudo",[485,494,496],{"class":495},"sfazB"," apt",[485,498,499],{"class":495}," install",[485,501,502],{"class":495}," build-essential",[485,504,505],{"class":495}," curl",[485,507,508],{"class":495}," file",[485,510,511],{"class":495}," pkg-config",[485,513,514],{"class":495}," libssl-dev",[485,516,517],{"class":495}," libwebkit2gtk-4.1-dev",[485,519,520],{"class":495}," libgtk-3-dev",[485,522,523],{"class":495}," libayatana-appindicator3-dev",[485,525,526],{"class":495}," librsvg2-dev",[485,528,529],{"class":495}," libxdo-dev\n",[475,531,534],{"className":477,"code":532,"filename":533,"language":480,"meta":481,"style":481},"sudo pacman -S --needed base-devel webkit2gtk-4.1 gtk3 libayatana-appindicator librsvg openssl xdotool\n","Arch",[306,535,536],{"__ignoreMap":481},[485,537,538,540,543,546,549,552,555,558,561,564,567],{"class":487,"line":488},[485,539,492],{"class":491},[485,541,542],{"class":495}," pacman",[485,544,545],{"class":495}," -S",[485,547,548],{"class":495}," --needed",[485,550,551],{"class":495}," base-devel",[485,553,554],{"class":495}," webkit2gtk-4.1",[485,556,557],{"class":495}," gtk3",[485,559,560],{"class":495}," libayatana-appindicator",[485,562,563],{"class":495}," librsvg",[485,565,566],{"class":495}," openssl",[485,568,569],{"class":495}," xdotool\n",[475,571,574],{"className":477,"code":572,"filename":573,"language":480,"meta":481,"style":481},"sudo dnf install gcc-c++ openssl-devel webkit2gtk4.1-devel gtk3-devel libappindicator-gtk3-devel librsvg2-devel libxdo-devel\n","Fedora",[306,575,576],{"__ignoreMap":481},[485,577,578,580,583,585,588,591,594,597,600,603],{"class":487,"line":488},[485,579,492],{"class":491},[485,581,582],{"class":495}," dnf",[485,584,499],{"class":495},[485,586,587],{"class":495}," gcc-c++",[485,589,590],{"class":495}," openssl-devel",[485,592,593],{"class":495}," webkit2gtk4.1-devel",[485,595,596],{"class":495}," gtk3-devel",[485,598,599],{"class":495}," libappindicator-gtk3-devel",[485,601,602],{"class":495}," librsvg2-devel",[485,604,605],{"class":495}," libxdo-devel\n",[277,607,609],{"id":608},"iniciar-el-launcher-en-modo-desarrollo","Iniciar el launcher en modo desarrollo",[611,612,614,619,645,649,661,668,672,684],"steps",{"level":613},"3",[615,616,618],"h3",{"id":617},"descarga-el-código","Descarga el código",[475,620,622],{"className":477,"code":621,"language":480,"meta":481,"style":481},"git clone https:\u002F\u002Fgithub.com\u002Ftheredstonee\u002FTRS-Launcher.git\ncd TRS-Launcher\n",[306,623,624,635],{"__ignoreMap":481},[485,625,626,629,632],{"class":487,"line":488},[485,627,628],{"class":491},"git",[485,630,631],{"class":495}," clone",[485,633,634],{"class":495}," https:\u002F\u002Fgithub.com\u002Ftheredstonee\u002FTRS-Launcher.git\n",[485,636,638,642],{"class":487,"line":637},2,[485,639,641],{"class":640},"s2Zo4","cd",[485,643,644],{"class":495}," TRS-Launcher\n",[615,646,648],{"id":647},"instala-las-dependencias","Instala las dependencias",[475,650,652],{"className":477,"code":651,"language":480,"meta":481,"style":481},"pnpm install\n",[306,653,654],{"__ignoreMap":481},[485,655,656,658],{"class":487,"line":488},[485,657,417],{"class":491},[485,659,660],{"class":495}," install\n",[265,662,663,664,667],{},"Esto también ejecuta ",[306,665,666],{},"nuxt prepare",".",[615,669,671],{"id":670},"inícialo","Inícialo",[475,673,675],{"className":477,"code":674,"language":480,"meta":481,"style":481},"pnpm app:dev\n",[306,676,677],{"__ignoreMap":481},[485,678,679,681],{"class":487,"line":488},[485,680,417],{"class":491},[485,682,683],{"class":495}," app:dev\n",[265,685,686,687,690],{},"Esto inicia el servidor de desarrollo de Nuxt en ",[306,688,689],{},"http:\u002F\u002Flocalhost:3000"," y abre la ventana de Tauri con recarga en\ncaliente. La primera vez compila la parte de Rust y tarda un rato.",[692,693,694,695,698],"tip",{},"Pon ",[306,696,697],{},"TRS_LAUNCHER_HOME"," en una carpeta aparte para que tus datos de prueba no se mezclen con tus datos reales del\nlauncher.",[700,701,702,703,706],"note",{},"Los builds de desarrollo sin una cuenta con sesión iniciada arrancan el juego en el ",[383,704,705],{},"modo demo"," oficial de Minecraft.\nLos builds publicados siempre necesitan una cuenta que tenga el juego.",[277,708,710],{"id":709},"ejecutar-las-comprobaciones","Ejecutar las comprobaciones",[265,712,713],{},"Son las mismas comprobaciones que ejecuta la CI en cada push y pull request.",[472,715,716,736],{},[475,717,720],{"className":477,"code":718,"filename":719,"language":480,"meta":481,"style":481},"pnpm typecheck\npnpm test\n","Frontend",[306,721,722,729],{"__ignoreMap":481},[485,723,724,726],{"class":487,"line":488},[485,725,417],{"class":491},[485,727,728],{"class":495}," typecheck\n",[485,730,731,733],{"class":487,"line":637},[485,732,417],{"class":491},[485,734,735],{"class":495}," test\n",[475,737,739],{"className":477,"code":738,"filename":431,"language":480,"meta":481,"style":481},"pnpm generate            # el crate de Tauri necesita un frontend compilado\ncd src-tauri\ncargo clippy --workspace --all-targets -- -D warnings\ncargo test --workspace\n",[306,740,741,752,759,783],{"__ignoreMap":481},[485,742,743,745,748],{"class":487,"line":488},[485,744,417],{"class":491},[485,746,747],{"class":495}," generate",[485,749,751],{"class":750},"sHwdD","            # el crate de Tauri necesita un frontend compilado\n",[485,753,754,756],{"class":487,"line":637},[485,755,641],{"class":640},[485,757,758],{"class":495}," src-tauri\n",[485,760,762,765,768,771,774,777,780],{"class":487,"line":761},3,[485,763,764],{"class":491},"cargo",[485,766,767],{"class":495}," clippy",[485,769,770],{"class":495}," --workspace",[485,772,773],{"class":495}," --all-targets",[485,775,776],{"class":495}," --",[485,778,779],{"class":495}," -D",[485,781,782],{"class":495}," warnings\n",[485,784,786,788,791],{"class":487,"line":785},4,[485,787,764],{"class":491},[485,789,790],{"class":495}," test",[485,792,793],{"class":495}," --workspace\n",[265,795,796],{},"La cadena de inicio se puede probar sin interfaz. Descarga e inicia la versión indicada en su propia carpeta de datos:",[475,798,800],{"className":477,"code":799,"language":480,"meta":481,"style":481},"cd src-tauri\ncargo run -p trs-core --example launch -- \u003Ccarpeta-de-datos> 1.21.1 [vanilla|fabric|quilt|forge|neoforge] [segundos]\n",[306,801,802,808],{"__ignoreMap":481},[485,803,804,806],{"class":487,"line":488},[485,805,641],{"class":640},[485,807,758],{"class":495},[485,809,810,812,815,818,821,824,827,829,833,836,840,843,847,850,853,856,858,861,863,866,868,871],{"class":487,"line":637},[485,811,764],{"class":491},[485,813,814],{"class":495}," run",[485,816,817],{"class":495}," -p",[485,819,820],{"class":495}," trs-core",[485,822,823],{"class":495}," --example",[485,825,826],{"class":495}," launch",[485,828,776],{"class":495},[485,830,832],{"class":831},"sMK4o"," \u003C",[485,834,835],{"class":495},"carpeta-de-dato",[485,837,839],{"class":838},"sTEyZ","s",[485,841,842],{"class":831},">",[485,844,846],{"class":845},"sbssI"," 1.21.1",[485,848,849],{"class":838}," [vanilla",[485,851,852],{"class":831},"|",[485,854,855],{"class":491},"fabric",[485,857,852],{"class":831},[485,859,860],{"class":491},"quilt",[485,862,852],{"class":831},[485,864,865],{"class":491},"forge",[485,867,852],{"class":831},[485,869,870],{"class":491},"neoforge]",[485,872,873],{"class":838}," [segundos]\n",[265,875,876,877,880,881,884],{},"Para probar las reglas del ",[269,878,879],{"href":199},"asistente de errores"," con un registro o un informe de fallos (también\nen ",[306,882,883],{},"src-tauri","):",[475,886,888],{"className":477,"code":887,"language":480,"meta":481,"style":481},"cargo run -p trs-core --example crash_scan -- \u003Cregistro-o-informe> [--memory MB --system MB]\n",[306,889,890],{"__ignoreMap":481},[485,891,892,894,896,898,900,902,905,907,909,912,915,917,920,923,926],{"class":487,"line":488},[485,893,764],{"class":491},[485,895,814],{"class":495},[485,897,817],{"class":495},[485,899,820],{"class":495},[485,901,823],{"class":495},[485,903,904],{"class":495}," crash_scan",[485,906,776],{"class":495},[485,908,832],{"class":831},[485,910,911],{"class":495},"registro-o-inform",[485,913,914],{"class":838},"e",[485,916,842],{"class":831},[485,918,919],{"class":838}," [--memory ",[485,921,922],{"class":495},"MB",[485,924,925],{"class":495}," --system",[485,927,928],{"class":495}," MB]\n",[277,930,932],{"id":931},"crear-instaladores","Crear instaladores",[399,934,935,955],{},[402,936,937,949],{"label":404},[475,938,940],{"className":477,"code":939,"language":480,"meta":481,"style":481},"pnpm app:build\n",[306,941,942],{"__ignoreMap":481},[485,943,944,946],{"class":487,"line":488},[485,945,417],{"class":491},[485,947,948],{"class":495}," app:build\n",[265,950,951,952,667],{},"El instalador NSIS queda en ",[306,953,954],{},"src-tauri\u002Ftarget\u002Frelease\u002Fbundle",[402,956,957,978],{"label":213},[475,958,960],{"className":477,"code":959,"language":480,"meta":481,"style":481},"pnpm tauri build --bundles appimage,deb,rpm\n",[306,961,962],{"__ignoreMap":481},[485,963,964,966,969,972,975],{"class":487,"line":488},[485,965,417],{"class":491},[485,967,968],{"class":495}," tauri",[485,970,971],{"class":495}," build",[485,973,974],{"class":495}," --bundles",[485,976,977],{"class":495}," appimage,deb,rpm\n",[265,979,980,981,667],{},"Las recetas de AUR y Flatpak están en ",[306,982,361],{},[700,984,985,986,989],{},"Las versiones oficiales firman los archivos de actualización con la clave privada del proyecto. Sin esa clave, el build\npuede terminar con un error por falta de clave privada después de crear los instaladores. Desactiva los archivos de\nactualización en tus propios builds:\n",[306,987,988],{},"pnpm tauri build --config '{\"bundle\":{\"createUpdaterArtifacts\":false}}'"," (en lugar del texto JSON también vale la ruta\nde un archivo JSON con el mismo contenido).",[265,991,992,995,996,999,1000,1003,1004,1007],{},[383,993,994],{},"CurseForge"," necesita una clave de API al compilar: la variable de entorno ",[306,997,998],{},"CURSEFORGE_API_KEY"," o el archivo\n",[306,1001,1002],{},"~\u002F.tauri\u002Fcurseforge-api-key"," (",[306,1005,1006],{},"%USERPROFILE%\\.tauri\\curseforge-api-key"," en Windows). Sin clave, el build funciona igual\ny simplemente oculta CurseForge.",[277,1009,1011],{"id":1010},"compilar-el-trs-client","Compilar el TRS Client",[265,1013,1014,1015,667],{},"No necesitas compilar el mod para compilar el launcher: los jars ya compilados están en\n",[306,1016,341],{},[265,1018,1019,1022,1023,1026],{},[383,1020,1021],{},"Requisito:"," un ",[383,1024,1025],{},"JDK 21"," o más nuevo para ejecutar Gradle. Las toolchains de Gradle descargan JDK 17, 21 o 25 para\ncompilar si faltan.",[265,1028,1029],{},"Cada familia de cargadores es un build de Gradle propio con su propio wrapper:",[282,1031,1032,1044],{},[285,1033,1034],{},[288,1035,1036,1038,1041],{},[291,1037,293],{},[291,1039,1040],{},"Cargador y versiones",[291,1042,1043],{},"Compilar",[298,1045,1046,1065,1079,1094,1108,1123,1137],{},[288,1047,1048,1057,1060],{},[303,1049,1050,1052,1053,1056],{},[306,1051,351],{}," (raíz, ",[306,1054,1055],{},"fabric\u002F",")",[303,1058,1059],{},"Fabric 1.14.4–26.3",[303,1061,1062],{},[306,1063,1064],{},".\u002Fgradlew collectLauncherJars",[288,1066,1067,1072,1075],{},[303,1068,1069],{},[306,1070,1071],{},"client-mod\u002Fneoforge\u002F",[303,1073,1074],{},"NeoForge 1.20.2–26.3",[303,1076,1077],{},[306,1078,1064],{},[288,1080,1081,1086,1089],{},[303,1082,1083],{},[306,1084,1085],{},"client-mod\u002Fforge\u002F",[303,1087,1088],{},"Forge 1.20–26.3",[303,1090,1091],{},[306,1092,1093],{},".\u002Fgradlew :collectLauncherJars",[288,1095,1096,1101,1104],{},[303,1097,1098],{},[306,1099,1100],{},"client-mod\u002Fforge-mojmap-legacy\u002F",[303,1102,1103],{},"Forge 1.14.4, 1.15.2, 1.16.x, 1.17.1, 1.18.x, 1.19.x",[303,1105,1106],{},[306,1107,1064],{},[288,1109,1110,1115,1118],{},[303,1111,1112],{},[306,1113,1114],{},"client-mod\u002Fforge-1.13.2\u002F",[303,1116,1117],{},"Forge 1.13.2",[303,1119,1120],{},[306,1121,1122],{},".\u002Fgradlew build",[288,1124,1125,1130,1133],{},[303,1126,1127],{},[306,1128,1129],{},"client-mod\u002Flegacy\u002F",[303,1131,1132],{},"Forge 1.8.9–1.12.2",[303,1134,1135],{},[306,1136,1064],{},[288,1138,1139,1144,1147],{},[303,1140,1141],{},[306,1142,1143],{},"client-mod\u002Flegacy-1.7.10\u002F",[303,1145,1146],{},"Forge 1.7.10",[303,1148,1149],{},[306,1150,1122],{},[265,1152,1153,1154,1156],{},"Para el build de Fabric en ",[306,1155,351],{},":",[475,1158,1160],{"className":477,"code":1159,"language":480,"meta":481,"style":481},".\u002Fgradlew build                      # todas las versiones + las pruebas unitarias de common\u002F\n.\u002Fgradlew :fabric:1.21.1:build       # una sola versión\n.\u002Fgradlew :fabric:1.21.1:runClient   # iniciar esa versión de Minecraft con el mod (carpeta de juego: client-mod\u002Frun)\n.\u002Fgradlew collectLauncherJars        # escribir dist\u002F*.jar y dist\u002Fbuilds.json para el launcher\n",[306,1161,1162,1172,1182,1192],{"__ignoreMap":481},[485,1163,1164,1167,1169],{"class":487,"line":488},[485,1165,1166],{"class":491},".\u002Fgradlew",[485,1168,971],{"class":495},[485,1170,1171],{"class":750},"                      # todas las versiones + las pruebas unitarias de common\u002F\n",[485,1173,1174,1176,1179],{"class":487,"line":637},[485,1175,1166],{"class":491},[485,1177,1178],{"class":495}," :fabric:1.21.1:build",[485,1180,1181],{"class":750},"       # una sola versión\n",[485,1183,1184,1186,1189],{"class":487,"line":761},[485,1185,1166],{"class":491},[485,1187,1188],{"class":495}," :fabric:1.21.1:runClient",[485,1190,1191],{"class":750},"   # iniciar esa versión de Minecraft con el mod (carpeta de juego: client-mod\u002Frun)\n",[485,1193,1194,1196,1199],{"class":487,"line":785},[485,1195,1166],{"class":491},[485,1197,1198],{"class":495}," collectLauncherJars",[485,1200,1201],{"class":750},"        # escribir dist\u002F*.jar y dist\u002Fbuilds.json para el launcher\n",[692,1203,1204,1205,1208,1209,1212,1213,1215,1216,667],{},"En Windows, usa ",[306,1206,1207],{},".\\gradlew"," o ",[306,1210,1211],{},"gradlew.bat"," en lugar de ",[306,1214,1166],{},". Compila los proyectos uno tras otro: todos\nescriben en el mismo ",[306,1217,1218],{},"client-mod\u002Fdist\u002F",[277,1220,1222],{"id":1221},"web-y-api","Web y API",[265,1224,1225,1226,1228,1229,1231,1232,1235],{},"La web y la API de TRS son un proyecto aparte de Nuxt 4\u002FNitro en la rama ",[306,1227,387],{},". Tiene su propio ",[306,1230,421],{}," y\nlockfile y necesita ",[383,1233,1234],{},"Node.js 24.11"," o más nuevo.",[475,1237,1239],{"className":477,"code":1238,"language":480,"meta":481,"style":481},"git checkout website\ncd api\npnpm install\npnpm typecheck && pnpm lint && pnpm test\n",[306,1240,1241,1251,1258,1264],{"__ignoreMap":481},[485,1242,1243,1245,1248],{"class":487,"line":488},[485,1244,628],{"class":491},[485,1246,1247],{"class":495}," checkout",[485,1249,1250],{"class":495}," website\n",[485,1252,1253,1255],{"class":487,"line":637},[485,1254,641],{"class":640},[485,1256,1257],{"class":495}," api\n",[485,1259,1260,1262],{"class":487,"line":761},[485,1261,417],{"class":491},[485,1263,660],{"class":495},[485,1265,1266,1268,1271,1274,1277,1280,1282,1284],{"class":487,"line":785},[485,1267,417],{"class":491},[485,1269,1270],{"class":495}," typecheck",[485,1272,1273],{"class":831}," &&",[485,1275,1276],{"class":491}," pnpm",[485,1278,1279],{"class":495}," lint",[485,1281,1273],{"class":831},[485,1283,1276],{"class":491},[485,1285,735],{"class":495},[265,1287,1288,1289,667],{},"Los endpoints públicos de la API se describen en ",[269,1290,255],{"href":256},[1292,1293,1294],"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}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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":481,"searchDepth":637,"depth":637,"links":1296},[1297,1298,1299,1304,1305,1306,1307],{"id":279,"depth":637,"text":280},{"id":396,"depth":637,"text":397},{"id":608,"depth":637,"text":609,"children":1300},[1301,1302,1303],{"id":617,"depth":761,"text":618},{"id":647,"depth":761,"text":648},{"id":670,"depth":761,"text":671},{"id":709,"depth":637,"text":710},{"id":931,"depth":637,"text":932},{"id":1010,"depth":637,"text":1011},{"id":1221,"depth":637,"text":1222},"Prepara Node, pnpm y Rust, inicia el launcher en modo desarrollo, ejecuta las comprobaciones, crea instaladores y compila el mod TRS Client.","md",null,{},{"icon":243},{"title":240,"description":1308},"p-CbX7DzJq0p10aWNWeGuGAvb4HCd6plbJnFsDngYZ8",[1316,1318],{"title":11,"path":235,"stem":236,"description":1317,"icon":12,"children":-1},"Código fuente, compilar TRS Launcher, la API de TRS y cómo colaborar.",{"title":245,"path":246,"stem":247,"description":1319,"icon":248,"children":-1},"Ramas y pull requests, reglas del código, pruebas, el changelog en inglés y alemán y la licencia GPL-3.0.",1791894786717]