Cliente en el navegador
Este documento explica la versión web de IGK Emulator: el mismo juego de PC corriendo en el navegador, sin instalar nada. Primero lo que tiene que montar el dueño (página, WebPacker, WebBridge, certificado, Cloudflare), después lo que tiene que saber el jugador, y al final los problemas comunes.
Qué es el cliente web
- Es el mismo cliente de PC, de la misma versión, corriendo dentro del navegador con WebGPU (los gráficos de la tarjeta de video desde el navegador).
- Se juega en el mismo servidor y con los mismos personajes que PC y Android.
- En una PC se ve la interfaz de PC (mouse y teclado). En un celular (pantalla táctil sin mouse) la página usa sola la versión para celular, con la interfaz táctil de la app de Android.
- La primera vez descarga unos 125-130 MB (en el celular, unos 93 MB). Después todo queda guardado en el navegador y entra casi sin descargar.
Qué necesita el dueño
Son tres piezas:
| Pieza | Qué es | Dónde va |
|---|---|---|
La página (carpeta site) | La página del juego: index.html, el juego (Main.js, Main.wasm, Main-mobile.js, Main-mobile.wasm), los datos (data\) y el .htaccess | Un servidor web con HTTPS: el mismo VPS (Apache/XAMPP) o un hosting aparte (cPanel/LiteSpeed u otro) |
WebBridge (MuServer\WebBridge\WebBridge.exe) | El "puente": el navegador no puede abrir conexiones TCP, así que se conecta por WebSocket al puente, y el puente se conecta al ConnectServer y a los GameServer | El VPS de los servidores, junto al ConnectServer y los GameServer |
| Los servidores | ConnectServer, GameServer, GameServerCS de la misma versión que el WebBridge | El VPS |
Además, lo recomendado:
- Un dominio (por ejemplo en Cloudflare) con HTTPS para la página.
- Para la página en un hosting aparte: un subdominio para el puente (por ejemplo
juego.tudominio.com) con certificado Let's Encrypt (gratis, con win-acme): la "conexión directa"wss://.
La web toma del cliente de PC lo mismo que el PC: versión, serial y el puerto del ConnectServer del MainInfo (IpAddressPort). La IP del MainInfo no la usa: el puente siempre se conecta a los servidores de su propia máquina.
Opción A: la página en el mismo VPS (Apache / XAMPP)
- En
C:\xampp\apache\conf\httpd.conf, quitar el#de delante de estas líneas y reiniciar Apache:LoadModule headers_module modules/mod_headers.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.soLa carpeta de la página tiene que tener
AllowOverride All(XAMPP ya lo trae parahtdocs). - Abrir
MuServer\WebBridge\WebBridge.exe. En suWebBridge.ini:AllowedOrigins = https://tudominio.com. - En
Web\WebPacker.ini:BridgeIP = 127.0.0.1(el puente está en la misma máquina). EjecutarWebPacker.exe. - Copiar
sitea una carpeta propia dentro dehtdocs, por ejemploC:\xampp\htdocs\jugar(la página queda enhttps://tudominio.com/jugar/):robocopy <carpeta Web>\site C:\xampp\htdocs\jugar /MIR/MIRborra los paquetes viejos que ya no se usan. Cuidado: borra en el destino todo lo que no está ensite. Nunca usarlo sobrehtdocsentero si ahí está la web del servidor (registro, ranking). - Cloudflare: el dominio apuntando al VPS con la nube naranja. SSL/TLS: "Flexible" si Apache no tiene certificado, "Full" si lo tiene.
- Firewall del VPS: abierto el 80 (y el 443 con "Full"). El puerto del puente (44480) no hace falta abrirlo: la página llega al puente por Apache.
Opción B: la página en un hosting (cPanel / LiteSpeed) con conexión directa (recomendada)
Con la página en un hosting compartido, lo recomendado es que el navegador se conecte directo al puente del VPS por wss://, sin pasar por el hosting. Así un reinicio del servidor del hosting (LiteSpeed lo hace seguido) o de Cloudflare no desconecta a todos los jugadores a la vez.
- Configurar la puerta segura del WebBridge (ver "Puerta segura wss:// con Let's Encrypt").
- En
Web\WebPacker.ini:BridgeURL = wss://juego.tudominio.com/(con:8443al final del dominio si el puerto no es 443). - Ejecutar
WebPacker.exe. - Subir el contenido de
siteal hosting (por FTP o el administrador de archivos), en una carpeta propia. AllowedOriginsdelWebBridge.ini= la dirección de la página (https://tudominio.com).
Con conexión directa el hosting solo tiene que permitir las cabeceras del .htaccess (mod_headers); no necesita el proxy de WebSockets.
Opción C: la página en un hosting, por el proxy del hosting (sin wss directo)
Funciona, pero un reinicio del hosting corta a todos los jugadores web. Solo si el hosting permite en el .htaccess mod_headers y el proxy de WebSockets (mod_proxy, mod_proxy_http, mod_proxy_wstunnel, la regla [P]). Muchos hostings compartidos no lo permiten: preguntarlo antes de contratar.
- En
WebPacker.ini:BridgeIP= la IP del VPS yBridgePort= el puerto del puente (44480). EjecutarWebPacker.exe(escribe la regla ensite\.htaccess) y subirsiteal hosting. - En el VPS: abrir el puerto del puente (44480) en el firewall.
- Abrir la página una vez. La consola del puente muestra la IP del hosting entre corchetes. Ponerla en
TrustedProxiesdelWebBridge.iniy reiniciar el puente. AllowedOrigins= la dirección de la página (https://tudominio.com), no la IP del hosting.
WebPacker (Web\WebPacker.exe)
WebPacker arma los datos de la página (site\data) desde el cliente de PC. Después de cualquier cambio en el cliente (textos, ítems, mapas, MainInfo), la web queda igual que el PC.
Archivos de la carpeta Web
| Archivo | Qué es |
|---|---|
site\ | La página: es lo que se sube al servidor web |
WebPacker.exe | Arma site\data desde el cliente de PC. Doble clic; al terminar, la ventana espera Enter |
WebPacker.ini | Configuración de WebPacker (tabla abajo) |
boot_files.txt | Los archivos que el juego lee al arrancar (ver "Arranque") |
LEEME.txt | Instrucciones |
WebPacker.ini: opciones
Ruta: Web\WebPacker.ini, sección [WebPacker]. Las carpetas pueden ser relativas a WebPacker.exe o completas (C:\...).
| Clave | Qué hace | Valor típico |
|---|---|---|
Client | La carpeta del cliente de PC (su Data es lo que va a la web) | ..\Client |
Site | La carpeta de la página, donde se escriben data\manifest.json y los paquetes | site |
Title | Nombre del servidor en la pestaña del navegador y en la página. Vacío = el WindowName del MainInfo (MainInfo\MainConnect.ini al lado del cliente) | MiServidor MU |
BridgeIP | Dónde está el WebBridge, visto desde el servidor web de la página (se escribe en site\.htaccess). 127.0.0.1 = la página en el mismo VPS que el puente. La IP del VPS = la página en un hosting aparte (opción C) | 127.0.0.1 |
BridgePort | El puerto del WebBridge (Port de WebBridge.ini) | 44480 |
BridgeURL | La dirección wss:// del puente para la conexión directa (opción B). Vacío = por bridge/ de la página (usa BridgeIP/BridgePort) | wss://juego.tudominio.com/ |
HD | 1 = las texturas HD del cliente (Data\HD) también van a la web; cada jugador las enciende con el botón HD. 0 = sin HD (unos 560 MB menos en el hosting) | 1 |
Mobile | El paquete de celular de IgkGamers HD Tools. Vacío = el celular usa los datos de PC | ..\HDTools\Mobile |
El ícono de la pestaña es site\favicon.ico: se puede reemplazar por otro .ico.
Línea de comandos de WebPacker
En vez del .ini se puede usar:
WebPacker.exe <carpeta del cliente> <carpeta de la página> [--boot lista] [--title nombre] [--hd 0|1] [--mobile carpeta]
Cuándo ejecutar WebPacker
| Caso | Qué hacer |
|---|---|
| Cambiaste algo del cliente (textos, ítems, mapas, MainInfo) | 1) Cambiar el cliente de PC (y correr Encoder.exe si fue el MainInfo). 2) WebPacker.exe. 3) Subir site |
| Recibiste una versión nueva del juego | Reemplazar en site los archivos nuevos (Main.js, Main.wasm, Main-mobile.js, Main-mobile.wasm, index.html, data_loader.js), ejecutar WebPacker.exe y subir site. La web y el PC tienen que ser de la misma versión |
Cambiaste WebPacker.ini | Ejecutar WebPacker.exe y subir site (al menos index.html y .htaccess) |
- Solo vuelve a empaquetar lo que cambió (unos segundos) y los jugadores solo bajan eso; el navegador borra solo lo viejo.
- WebPacker pone en el
index.htmlel nombre del servidor y la versión de cada archivo del juego. Así ni el navegador ni Cloudflare siguen usando el juego anterior y nadie tiene que borrar la caché. Sin ejecutar WebPacker, eso no pasa.
La carpeta site: qué se sube
| Contenido | Qué es |
|---|---|
index.html | La página (pantalla de inicio con el botón Jugar) |
Main.js, Main.wasm | El juego para PC |
Main-mobile.js, Main-mobile.wasm | El juego para celular |
data_loader.js | Descarga y guarda los datos en el navegador |
data\manifest.json, data\packs\ | Los datos del juego en paquetes .bin (comprimidos) |
data\packs\hd\ | Las texturas HD (solo con HD = 1) |
data\mobile\ | Las texturas de celular (solo con Mobile) |
.htaccess | Cabeceras COOP/COEP, caché y la regla del puente |
favicon.ico, icon.png, manifest.webmanifest | Ícono de la pestaña y de la "app" en el celular |
En el hosting ocupa aproximadamente: PC ~1 GB, HD ~560 MB más, celular ~180 MB más.
Arranque (boot_files.txt, opcional)
Antes de que empiece el juego, la página baja los archivos de boot_files.txt (lo que el juego lee hasta la ventana de cuenta). Lo demás lo baja cuando el juego lo abre. Si agregaste cosas que se cargan al arrancar (ítems, alas, personajes), el juego funciona igual, pero el arranque tarda más. Para medir la lista de tu cliente:
- Abrir
https://tudominio.com/jugar/?logfilesy esperar a la ventana de cuenta. - Clic en "Guardar boot_files.txt" (arriba a la derecha): se descarga.
- Ponerlo en lugar del
boot_files.txtde la carpetaWeb, ejecutarWebPacker.exey subirsite.
WebBridge (MuServer\WebBridge)
El puente entre el navegador y los servidores. Va en la misma máquina que el ConnectServer y los GameServer: escucha en todas las direcciones de la máquina y se conecta a los servidores en 127.0.0.1. Es una consola; su registro queda en LOG\WebBridge_AAAA-MM-DD.txt.
WebBridge.ini: opciones
Ruta: MuServer\WebBridge\WebBridge.ini, sección [Bridge]. Después de cambiarlo, reiniciar el puente.
| Clave | Qué hace | En los archivos que vienen con IGK |
|---|---|---|
Port | Puerto del puente (el que usa la página por bridge/) | 44480 |
ServerPorts | Puertos del ConnectServer y de los GameServer (los de ServerList.dat), separados por coma; inicio-fin para varios seguidos. El puente no se conecta a ningún otro puerto | 44405, 55901-55919 |
AllowedOrigins | Las páginas que pueden usar el puente (https://tudominio.com), separadas por coma. Vacío = cualquier página | vacío |
MaxConnectionsPerIp | Conexiones a la vez de un mismo jugador (cada uno usa una o dos) | 10 |
TrustedProxies | Solo con la página en un hosting por proxy (opción C): la IP del hosting | vacío |
TlsPort | Puerto de la puerta segura wss:// (443, u 8443 si el 443 está ocupado). 0 = sin ella | 0 |
CertificateName | El dominio del puente (juego.tudominio.com): su certificado se busca en el almacén de certificados de Windows del equipo | vacío |
CertificateFile / CertificatePassword | En vez de CertificateName: un archivo .pfx al lado del puente y su clave | vacío |
Lo único que casi siempre hay que revisar: ServerPorts (que estén todos tus puertos) y AllowedOrigins (tu dominio exacto, con https:// y sin / al final).
Puerta segura wss:// con Let's Encrypt (win-acme)
Desde la versión del 23-10-2026 el puente tiene su propia puerta segura. El navegador se conecta directo al VPS y el puente ve la IP real de cada jugador sin TrustedProxies.
- DNS en Cloudflare: un registro A, por ejemplo
juego, con la IP del VPS y el proxy apagado (nube gris, "DNS only"). Con la nube naranja no funciona. - Certificado con win-acme (https://www.win-acme.com, el
.zip"x64 pluggable"): descomprimirlo en el VPS, abrirwacs.execomo administrador y elegir:M(Create certificate, full options) >2(Manual input) > escribirjuego.tudominio.com.- Validación "Serve verification files from memory" (necesita el puerto 80 del VPS abierto y libre). Si Apache/XAMPP usa el 80, elegir "Save verification files on (network) path" con la carpeta
htdocs. - Clave RSA > almacén "Windows Certificate Store (Local Computer)" > sin pasos de instalación.
- win-acme deja una tarea que renueva el certificado cada ~2 meses. El puente toma el nuevo solo (lo busca cada 6 horas), sin reiniciarlo.
- WebBridge.ini:
TlsPort = 443(u8443si el 443 está ocupado) yCertificateName = juego.tudominio.com. Abrir ese puerto en el firewall del VPS. - Abrir
WebBridge.execomo administrador (la clave del certificado solo la leen los administradores). La consola diceTLS: certificate ...yListening on port 443 ... (wss://, straight from the browsers). Si algo falta, dice qué. AllowedOrigins= la dirección de la página.- En
WebPacker.ini:BridgeURL = wss://juego.tudominio.com/, ejecutarWebPacker.exey subir elindex.htmlnuevo.
Para probar antes de cambiar a todos: abrir la página con ?bridge=wss://juego.tudominio.com/ al final de la dirección.
La puerta de siempre (Port, ws://) sigue funcionando para la página por bridge/ (si BridgeURL queda vacío).
La IP real de cada jugador web
- Los servidores ven a cada jugador web con su IP real, como a los de PC y Android:
MaxIpConnection, la lista negra, el antiflood, los logs y los bans por IP funcionan por jugador. - El puente le pasa la IP del jugador al ConnectServer y al GameServer. Los servidores solo aceptan ese dato de
127.0.0.1(el puente de la misma máquina): nadie de afuera puede inventarse una IP. - En los logs: el ConnectServer muestra
Player <IP> through the proxy 127.0.0.1y el GameServer lo mismo. - Con la página en un hosting por proxy (opción C), hace falta
TrustedProxies= IP del hosting. Sin eso, todos los jugadores web llegan con la IP del hosting y los límites por IP los tratan como uno solo. - Un cliente de PC abierto en el propio VPS tiene que conectarse a la IP pública del VPS, no a
127.0.0.1(127.0.0.1está reservado para el puente). - Si pones un proxy o anti-DDoS delante de los servidores para PC y Android, tiene que mandar el PROXY protocol (v1) y hay que agregar
ProxyAddress = 127.0.0.1, <IP del proxy>enConnectServer.ini([ConnectServerInfo]) y enGameServerInfo - Common.dat.
Cabeceras COOP/COEP y caché (.htaccess)
El juego necesita que el servidor web mande dos cabeceras (Cross-Origin-Opener-Policy y Cross-Origin-Embedder-Policy); sin ellas el navegador no deja correr el juego. Las pone el .htaccess que viene en site:
- Requiere
mod_headersy que el servidor lea el.htaccess(AllowOverride Allen Apache; LiteSpeed lo lee). - Los paquetes
.binse guardan un año en el navegador y en Cloudflare (cada versión nueva tiene otro nombre). La página, el juego y la lista de datos se revisan en cada visita. - Sin las cabeceras, la página dice: "La página necesita las cabeceras COOP/COEP."
Cloudflare
| Qué | Cómo |
|---|---|
| Dominio de la página | Nube naranja (proxy) sirve. WebSockets viene activado |
Subdominio del puente (wss:// directo) | Nube gris ("DNS only"). Con la nube naranja no funciona |
| Caché | No hace falta ninguna regla: Cloudflare guarda los .bin solo. Los .js los guarda 4 horas en el navegador del jugador: por eso hay que ejecutar WebPacker después de cada versión nueva (pone la versión en la dirección de cada archivo) |
| SSL/TLS (página en el VPS) | "Flexible" si Apache no tiene certificado, "Full" si lo tiene |
Texturas HD (botón HD)
Si el cliente de PC tiene Data\HD (IgkGamers HD Tools) y HD = 1 en WebPacker.ini, la web también las trae, apagadas por defecto: la primera visita baja solo lo normal.
- Encenderlas: botón "HD" al lado de la "M" de la barra de arriba a la izquierda (o Opciones > Gráficos > "Texturas HD"). El juego avisa que hay que recargar la página (F5 o el botón "Recargar ahora").
- Con HD baja unos 125 MB más al empezar y el resto mientras se juega. Usa ~1 GB más de memoria de video.
- Apagarlas: el mismo botón y recargar. Recomendado en PC con gráfica integrada o poca memoria.
- Con
HD = 0el botón no aparece. - Lo que elige cada jugador queda guardado en su navegador.
- No hay HD en la versión para celular.
Versión para celulares
La página trae dos versiones del juego y elige sola:
- En una PC: la de siempre (
Main.js/Main.wasm). - En un celular (pantalla táctil sin mouse): la de celular (
Main-mobile.js/Main-mobile.wasm), con la interfaz táctil de la app de Android: joystick, espada, 5 skills, menú, teclado del celular. - Para forzar una u otra:
?mobile=1o?mobile=0al final de la dirección.
Datos de celular (recomendado):
- En
HDTools,IgkGamersHDTools.exe> "Paquete celular" (queda enHDTools\Mobile). - En
WebPacker.ini:Mobile = ..\HDTools\Mobile. - Ejecutar
WebPacker.exey subirsite.
- Lo que es igual en PC y celular se comparte; solo las texturas de celular (ETC2) van aparte, en
site\data\mobile(~180 MB más en el hosting). - El celular baja ~93 MB la primera vez (contra ~125 de PC) y usa mucha menos memoria de video.
- La primera vez que se pone
Mobile, cada jugador web vuelve a bajar sus datos una vez. - Si el cliente cambió después de armar el paquete, WebPacker avisa "el paquete de celular esta desactualizado": volver a hacer "Paquete celular" y ejecutar WebPacker otra vez. Mientras tanto, el celular usa los archivos de PC.
- Sin
Mobile, el celular usa los datos de PC (funciona, pero gasta más memoria).
En el celular:
- Android: al tocar "Jugar" la página pasa a pantalla completa y en horizontal.
- Con el celular vertical aparece "Gira el teléfono: el juego va en horizontal".
- iPhone: una página no puede ponerse en pantalla completa ni girar sola. La página aconseja Compartir > "Agregar a inicio": así se abre como una app, en pantalla completa, y Safari no borra los datos.
Navegadores compatibles
El juego necesita WebGPU.
| Navegador | ¿Funciona? |
|---|---|
| Chrome (PC) | Sí |
| Edge (PC) | Sí |
| Firefox (PC) | Sí |
| Safari (Mac) | Por confirmar (Safari 26 tiene WebGPU) |
| Chrome de Android | Sí, Android 12 o más nuevo con una gráfica que tenga WebGPU (la mayoría de los celulares con Qualcomm/Adreno o Mali) |
| Safari de iPhone / iPad | Sí desde iOS 26 (todavía en pruebas). Con iOS más viejo no |
| Firefox de Android | No, todavía no tiene WebGPU. Usar Chrome |
| Otros basados en Chrome (Opera, Brave, Samsung Internet) | Probable, por confirmar |
| Navegadores dentro de otras apps (WhatsApp, Instagram, Facebook) | No recomendado: abrir el enlace en Chrome o Safari |
Si el navegador no sirve, la página lo dice antes de descargar nada: "Este navegador no puede ejecutar el juego (no tiene WebGPU)".
Pestaña en segundo plano, reconexión y salida
- Pestaña en segundo plano o navegador minimizado (PC): el juego sigue corriendo en segundo plano (más lento) para no desconectarse.
- Celular: si el navegador pasa mucho tiempo en segundo plano, el sistema puede cerrar la pestaña o el juego puede perder la gráfica ("Se perdió la gráfica (WebGPU). Recarga la página."): recargar.
- Reconexión: si se corta la conexión, la web vuelve a intentar a los 3 segundos y vuelve a entrar con la cuenta.
- Salir: "Salir del juego" vuelve a la pantalla de "Jugar" de la página.
- Al cerrar o recargar la pestaña dentro del juego, el navegador pregunta antes.
Lo que se guarda en el navegador
- Los datos del juego (para no volver a bajarlos).
- Las opciones del jugador, las cuentas guardadas y el identificador de equipo (HWID).
- Otro navegador u otra PC tienen otro HWID. Borrar los datos del sitio en el navegador borra todo eso y vuelve a descargar.
- Safari borra los datos de un sitio tras 7 días sin entrar, salvo que esté agregado a inicio.
Diagnóstico (Ctrl+Shift+D)
En la página, Ctrl+Shift+D (o el botón "Guardar diagnóstico" de la pantalla de inicio, que sale después de una sesión: sirve en el celular) guarda un archivo de texto con la consola, el Log/MuError.log del juego (en la web va legible: la consola del navegador ya muestra cada línea) y los datos de la descarga. Es lo que hay que pedirle al jugador cuando reporta un error en la web.
Para el jugador
Cómo entrar
- Abrir la dirección del juego que da el servidor en Chrome, Edge o Firefox actualizados (en el celular: Chrome de Android o Safari de iPhone).
- Tocar "Jugar".
- La primera vez descarga los datos (la pantalla dice cuántos MB y cuánto falta). Las siguientes veces entra casi sin descargar.
- Elegir el servidor, entrar con la cuenta y jugar igual que en PC.
La primera carga
- La pantalla de inicio dice cuántos MB se descargan la primera vez.
- Después de entrar, la página sigue bajando el resto de los datos en segundo plano para que no haya tirones al cambiar de mapa (no lo hace con el modo de ahorro de datos del navegador). Los primeros minutos puede haber pequeños tirones al ver monstruos o mapas nuevos.
- Si entre la selección de personaje y el juego faltan datos, sale "Descargando datos del juego... N%" con una barra.
- El sonido y la música empiezan después del primer clic o toque (regla de los navegadores).
- El idioma de la página sigue el del navegador (español o inglés). El idioma del juego se elige en Opciones > Juego > Idioma (la primera vez, inglés).
Botón HD
El botón "HD" al lado de la "M" (arriba a la izquierda) enciende o apaga las texturas HD. Pide recargar la página. Solo en PC y si el servidor publicó las HD.
Controles en el celular
Los mismos de la app de Android (ver 09_ANDROID.md, "La interfaz táctil"): joystick a la izquierda, botón de ataque con 5 skills alrededor e interruptor de la espada, pociones Q W E R, botones Menú, Personaje, Inventario, Mover, Chat y Tienda. El teclado del celular aparece al tocar un cuadro de texto. El botón "Atrás" del celular es el "Atrás" del juego.
Problemas comunes
| Síntoma | Causa | Solución |
|---|---|---|
| "La página necesita las cabeceras COOP/COEP" | Falta mod_headers o el servidor no lee el .htaccess | Activar mod_headers y AllowOverride All; comprobar que el .htaccess se subió (es un archivo oculto: algunos programas de FTP no lo suben) |
| "Este navegador no puede ejecutar el juego (no tiene WebGPU)" | Navegador viejo o sin WebGPU (Firefox de Android, iOS anterior a 26, navegador dentro de una app) | Usar Chrome, Edge o Firefox actualizados en PC; Chrome en Android 12+; Safari en iOS 26+ |
| "No se encontró una tarjeta de video que el navegador pueda usar" | Drivers viejos o la aceleración por hardware del navegador apagada | Actualizar el navegador y los drivers; en Chrome/Edge, Configuración > Sistema > activar "Usar aceleración de gráficos" |
| Pantalla negra en el juego | Se perdió la gráfica, o archivos de la página de versiones distintas | Recargar. Dueño: subir todos los archivos de la versión nueva y ejecutar WebPacker. Ctrl+Shift+D para el diagnóstico |
| Se queda en "Iniciando..." (o "Starting...") | En iPhone/Safari: versión de la página anterior al 26-10-2026. También archivos de versiones mezcladas, o poca memoria del celular | Dueño: subir la versión nueva completa y ejecutar WebPacker. Jugador: cerrar otras pestañas y recargar |
| Llega a la lista de servidores pero no conecta | El puente está cerrado; AllowedOrigins no es el dominio exacto; el puerto no está en ServerPorts; faltan los módulos proxy de Apache; el hosting no permite el proxy | Revisar la consola del puente: refused (page not allowed: ...) = copiar esa dirección en AllowedOrigins; server not allowed = agregar el puerto en ServerPorts. Con hosting compartido, usar la conexión directa wss:// |
No conecta con BridgeURL (wss directo) | Nube naranja en el subdominio del puente, firewall sin el TlsPort, puente sin permisos de administrador, certificado no encontrado | Nube gris; abrir el puerto; abrir WebBridge.exe como administrador; leer lo que dice la consola al arrancar |
| Todos los jugadores web se desconectan a la vez | La página en un hosting con LiteSpeed (cPanel) que se reinicia y corta todas las conexiones que pasan por él | Usar la conexión directa wss:// al VPS (nube gris en Cloudflare, BridgeURL). La web vuelve a entrar sola a los 3 segundos |
| Todos los jugadores web tienen la misma IP en el servidor / el límite por IP los bloquea | Página en un hosting por proxy sin TrustedProxies | Poner la IP del hosting en TrustedProxies, o usar la conexión directa wss:// |
| Los jugadores siguen viendo la versión vieja | No se ejecutó WebPacker después de copiar los archivos nuevos | Ejecutar WebPacker.exe y subir site (al menos index.html) |
| En el celular, la lista de servidores no responde | El ConnectServer cierra a quien pasa más de 5 minutos en la lista; las versiones anteriores al 26-10-2026 no reconectaban | Actualizar la página a la versión nueva; mientras tanto, recargar |
| WebPacker dice que no está la carpeta Data del cliente | Client mal en WebPacker.ini | Corregir la carpeta del cliente |
| WebPacker avisa "el paquete de celular esta desactualizado" | El cliente cambió después de armar el paquete de celular | HD Tools > "Paquete celular" y WebPacker otra vez |
| Tirones al caminar los primeros minutos | La página todavía está bajando datos de monstruos y mapas | Esperar a que termine la descarga en segundo plano; la segunda visita ya no pasa |
Preguntas frecuentes
P: ¿Qué necesito para tener la versión web?
R: Un servidor web con HTTPS para la página (el mismo VPS con Apache/XAMPP o un hosting), el WebBridge.exe abierto en el VPS de los servidores y, si la página está en un hosting, un subdominio con certificado para la conexión directa wss://.
P: ¿Sirve un hosting cPanel compartido?
R: Sí, para la página. Con la conexión directa wss:// al puente del VPS el hosting solo tiene que permitir las cabeceras del .htaccess. Sin conexión directa necesita el proxy de WebSockets, que muchos hostings no permiten.
P: Cambié ítems o textos en el cliente. ¿Qué hago con la web?
R: Ejecuta WebPacker.exe y sube la carpeta site. Solo se rehace lo que cambió y los jugadores solo bajan eso.
P: ¿Tengo que configurar la IP del servidor en la web?
R: No. El puente se conecta a los servidores de su propia máquina. La web usa del MainInfo solo la versión, el serial y el puerto del ConnectServer, que tiene que estar en ServerPorts del WebBridge.ini.
P: ¿Qué pongo en AllowedOrigins?
R: La dirección de tu página tal como sale en el navegador: https://tudominio.com (con https://, sin / al final). No pongas una IP. Si no coincide, la consola del puente muestra la dirección que llegó: cópiala.
P: ¿Por qué se desconectan todos los jugadores web al mismo tiempo?
R: Casi siempre es el servidor del hosting (LiteSpeed) que se reinicia y corta todas las conexiones. Usa la conexión directa wss:// al VPS (subdominio con nube gris en Cloudflare y BridgeURL en WebPacker).
P: ¿El servidor ve la IP real de los jugadores web?
R: Sí. Los límites por IP, bans y logs funcionan igual que con PC y Android. Con la página en un hosting por proxy hace falta poner la IP del hosting en TrustedProxies.
P: ¿Cuánto descarga un jugador la primera vez? R: Unos 125-130 MB en PC y unos 93 MB en el celular (la página lo dice antes de "Jugar"). Con HD encendido, unos 125 MB más.
P: ¿Funciona en iPhone? R: Sí, en Safari con iOS 26 o más nuevo (todavía en pruebas). Conviene "Compartir > Agregar a inicio" para pantalla completa y para que Safari no borre los datos.
P: ¿Se desconecta si el jugador cambia de pestaña? R: En PC no: el juego sigue corriendo en segundo plano. En el celular, si el navegador pasa mucho tiempo en segundo plano, puede cerrar la pestaña.
P: ¿Cómo enciendo las texturas HD en la web?
R: Con el botón "HD" al lado de la "M" arriba a la izquierda, y recargar la página. Solo aparece si el dueño publicó las HD (HD = 1).
P: ¿El certificado de Let's Encrypt hay que renovarlo a mano? R: No. win-acme lo renueva solo cada ~2 meses y el puente toma el nuevo sin reiniciarlo.
P: Un jugador reporta un error en la web. ¿Qué le pido?
R: Que presione Ctrl+Shift+D en la página: descarga un archivo de diagnóstico con la consola y el MuError.log. Y qué navegador y equipo usa.
P: ¿Puedo cambiar el nombre y el ícono de la pestaña?
R: El nombre en Title de WebPacker.ini (vacío = el WindowName del MainInfo). El ícono es site\favicon.ico. Después, ejecutar WebPacker y subir.