Repository navigation
Releases
0.97.43
Español
Arregla los textos traducidos en UTF-8, pasa las contraseñas a bcrypt y suma controles del server, datos por mapa, avisos de invasión, emotes y soporte de MinGW. Cambian el server, el panel, el cliente y los eggs.
- Textos traducidos (Unicode). Los
.bmddeData/Local(Text, ítems, skills, quests, diálogos y filtros) se convertían siempre desde Windows-1252, así que una traducción en UTF-8 (por ejemplo, en chino) salía con caracteres rotos y cortada. Ahora el UTF-8 se respeta; los textos en español, portugués e inglés que trae el cliente se ven igual que antes (#48). - Contraseñas con bcrypt. Las cuentas nuevas y las que cambian de contraseña se guardan con bcrypt. Las viejas (texto o MD5) siguen entrando y se convierten solas en el próximo login, desde el juego o desde el panel.
GlobalPasswordvenía con un valor público que entraba a cualquier cuenta: ahora viene vacía, y vacía queda apagada. - Más controles del server.
- Las ventanas de NPC (comprar, vender, baúl, chaos) se rechazan si el NPC quedó a más de 8 tiles o en otro mapa.
- Reparar al precio del NPC exige tener abierta la tienda de un herrero y estar cerca.
- Tirar un item solo vale dentro del rango de visión del mapa.
- Confirmar un trade vuelve a chequear que los dos estén cerca.
- El camino que manda el cliente se valida contra la posición del server, sin atravesar paredes, y el ataque normal tiene un intervalo mínimo según la velocidad de ataque. Estos dos están en modo observar: por defecto solo se registran en la traza (
mu-trace), no se rechazan.
- Spawns por mapa (opcional). Los spawns se pueden tener en
Data/Maps/NN-Nombre/Spawns.toml, con las invasiones enData/Events/Invasions/Spawns.toml, y se editan desde el panel. Si no hay ningún TOML, el server sigue usandoMonsterSetBase.txt. Si existe aunque sea uno, deja de leer el.txty usa solo los TOML: conviene generarlos todos conmu-data import-spawns. - Invasiones.
- Cada monstruo de una invasión que muere se avisa en el chat con la cuenta de su clase, por ejemplo "'Jugador' derrotó a 'Golden Titan' (1/5)". Los jefes siguen con su aviso. Se apaga con
InvasionKillNoticeenGameServerInfo - Event.dat. - En el panel de eventos (H), al pasar el mouse por una invasión en curso se ven los monstruos vivos por mapa. Hace falta el cliente 0.97.43; los anteriores ignoran el paquete nuevo.
- Las bolsas de los dorados (Box of Kundun,
EventItemBag023-031) estaban mal configuradas; arregladas.
- Cada monstruo de una invasión que muere se avisa en el chat con la cuenta de su clase, por ejemplo "'Jugador' derrotó a 'Golden Titan' (1/5)". Los jefes siguen con su aviso. Se apaga con
- Emotes. Los gestos de la 5.2 y el comando
/fortnite, con sonido. mu-trace. Herramienta para ver los paquetes y las decisiones del GameServer (solo Linux).- MinGW. El server (x64 y x86) y el cliente (x64) también compilan con MinGW-w64. El cliente de MinGW tiene WebGPU solo sobre Vulkan (sin DirectX 11/12) y necesita MinGW-w64 12 o más nuevo para ese preset (#23).
- Server: avisos de GCC corregidos (zen de quests, reparto en party, escrituras fuera de rango).
Compatibilidad: el protocolo no cambia (ClientVersion sigue en 0.97.40), así que los clientes anteriores entran a este server. El tooltip de vivos por mapa, los emotes y el arreglo de los textos UTF-8 necesitan el cliente 0.97.43.
Si actualizás un server existente:
- Los archivos que viven en un volumen (
Data/y los.ini, por ejemplo en Pterodactyl) no se actualizan solos. EnJoinServer.ini, borráGlobalPassword=XwefDastoDsi la tenés. - La columna
memb__pwdpasa de 16 a 60 bytes. El panel la agranda al arrancar; sin panel, corréMigrate-password-hash.sql. Mientras siga en 16, el JoinServer lo avisa y no migra ninguna contraseña.
Docker: emapupi/mu-linux-97k:0.97.43 y emapupi/mu-linux-97k-web:0.97.43 (también latest), para amd64 y arm64.
Pterodactyl: elegí 0.97.43 en MU_RELEASE_TAG y reinstalá.
Cliente: esta Release no trae binarios del cliente. Se compila desde el código del tag:
- Windows:
cmake --preset windows-sdl3-x64-releaseycmake --build --preset windows-sdl3-x64-release. - Linux:
cmake --preset linux-x64-releaseycmake --build --preset linux-x64-release. - MinGW (desde Linux):
cmake --preset mingw-x64-webgpu-releaseycmake --build --preset mingw-x64-webgpu-release --target mu97k.
English
Fixes UTF-8 translated texts, moves account passwords to bcrypt, and adds server checks, per-map data, invasion notices, emotes and MinGW support. The server, the panel, the client and the eggs change.
- Translated texts (Unicode). The
.bmdfiles inData/Local(Text, items, skills, quests, dialogs and filters) were always converted from Windows-1252, so a UTF-8 translation (Chinese, for example) came out garbled and cut. UTF-8 is now kept as is; the Spanish, Portuguese and English texts shipped with the client look the same as before (#48). - bcrypt passwords. New accounts and changed passwords are stored with bcrypt. Old ones (plain text or MD5) still log in and are converted on the next login, from the game or from the panel.
GlobalPasswordshipped with a public value that opened any account: it now defaults to empty, and empty means off. - More server checks.
- NPC windows (buy, sell, vault, chaos) are rejected if the NPC is more than 8 tiles away or on another map.
- Repairing at the NPC price requires a blacksmith's shop to be open and the player to be close.
- Dropping an item only works within the map's view range.
- Confirming a trade checks again that both players are close.
- The path sent by the client is checked against the server position, with no walking through walls, and normal attacks have a minimum interval based on attack speed. These two run in observe mode: by default they are only recorded in the trace (
mu-trace), not rejected.
- Per-map spawns (optional). Spawns can live in
Data/Maps/NN-Name/Spawns.toml, with invasions inData/Events/Invasions/Spawns.toml, and are edited from the panel. With no TOML at all, the server keeps usingMonsterSetBase.txt. If even one exists, it stops reading the.txtand uses only the TOML files, so generate them all withmu-data import-spawns. - Invasions.
- Every invasion monster that dies is announced in chat with the count for its class, e.g. "'Player' defeated 'Golden Titan' (1/5)". Bosses keep their own notice. Turn it off with
InvasionKillNoticeinGameServerInfo - Event.dat. - In the events panel (H), hovering an ongoing invasion shows the monsters alive per map. This needs the 0.97.43 client; older ones ignore the new packet.
- The golden monsters' bags (Box of Kundun,
EventItemBag023-031) were misconfigured; fixed.
- Every invasion monster that dies is announced in chat with the count for its class, e.g. "'Player' defeated 'Golden Titan' (1/5)". Bosses keep their own notice. Turn it off with
- Emotes. The 5.2 gestures and the
/fortnitecommand, with sound. mu-trace. A tool to inspect the GameServer's packets and decisions (Linux only).- MinGW. The server (x64 and x86) and the client (x64) also build with MinGW-w64. The MinGW client has WebGPU on Vulkan only (no DirectX 11/12), and that preset needs MinGW-w64 12 or newer (#23).
- Server: GCC warnings fixed (quest zen, party share, out-of-range writes).
Compatibility: the protocol doesn't change (ClientVersion stays at 0.97.40), so older clients can join this server. The per-map tooltip, the emotes and the UTF-8 text fix need the 0.97.43 client.
If you update an existing server:
- Files that live in a volume (
Data/and the.inifiles, for example on Pterodactyl) are not updated automatically. InJoinServer.ini, deleteGlobalPassword=XwefDastoDif you have it. - The
memb__pwdcolumn grows from 16 to 60 bytes. The panel widens it on startup; without the panel, runMigrate-password-hash.sql. While it stays at 16, the JoinServer warns about it and migrates no passwords.
Docker: emapupi/mu-linux-97k:0.97.43 and emapupi/mu-linux-97k-web:0.97.43 (also latest), for amd64 and arm64.
Pterodactyl: pick 0.97.43 in MU_RELEASE_TAG and reinstall.
Client: this Release has no client binaries. Build it from the tag's source:
- Windows:
cmake --preset windows-sdl3-x64-releaseandcmake --build --preset windows-sdl3-x64-release. - Linux:
cmake --preset linux-x64-releaseandcmake --build --preset linux-x64-release. - MinGW (from Linux):
cmake --preset mingw-x64-webgpu-releaseandcmake --build --preset mingw-x64-webgpu-release --target mu97k.
Português
Corrige os textos traduzidos em UTF-8, passa as senhas para bcrypt e acrescenta verificações do servidor, dados por mapa, avisos de invasão, emotes e suporte a MinGW. Mudam o servidor, o painel, o cliente e os eggs.
- Textos traduzidos (Unicode). Os
.bmddeData/Local(Text, itens, skills, quests, diálogos e filtros) eram sempre convertidos de Windows-1252, então uma tradução em UTF-8 (em chinês, por exemplo) saía com caracteres quebrados e cortada. Agora o UTF-8 é mantido; os textos em espanhol, português e inglês do cliente aparecem como antes (#48). - Senhas com bcrypt. Contas novas e senhas alteradas são salvas com bcrypt. As antigas (texto ou MD5) continuam entrando e são convertidas no próximo login, pelo jogo ou pelo painel.
GlobalPasswordvinha com um valor público que entrava em qualquer conta: agora vem vazia, e vazia fica desligada. - Mais verificações do servidor.
- As janelas de NPC (comprar, vender, baú, chaos) são recusadas se o NPC ficou a mais de 8 tiles ou em outro mapa.
- Reparar pelo preço do NPC exige a loja de um ferreiro aberta e estar perto.
- Soltar um item só vale dentro do alcance de visão do mapa.
- Confirmar um trade volta a verificar que os dois estão perto.
- O caminho enviado pelo cliente é validado contra a posição do servidor, sem atravessar paredes, e o ataque normal tem um intervalo mínimo conforme a velocidade de ataque. Estes dois estão em modo observar: por padrão só ficam registrados no trace (
mu-trace), sem recusar.
- Spawns por mapa (opcional). Os spawns podem ficar em `Data/Maps/NN-Nome/Spawns.t...
0.97.42
Español
Corrige exploits del server y hace que los skills de área le peguen a todo lo que alcanzan. Cambian el server, el cliente y los eggs.
- Exploits del server.
- Trade: ya no se puede duplicar zen en el trade.
- Chaos Machine: solo se puede usar con su NPC abierto y ya no acepta el flag 5. Además, no se puede caminar con items cargados en la máquina (lo bloquean el server y el cliente).
- Guild: ya no se puede expulsar a miembros de otro guild.
- Skills de área sin tope de blancos. Evil Spirit, Triple Shot, Twisting Slash, Rageful Blow, Death Stab, Power Slash y Fire Slash les pegaban como mucho a 10 blancos (Fire Slash a 20), y además a los primeros de la lista, no a los más cercanos. Ahora le pegan a todo lo que esté dentro de su radio.
- Skills cuyos blancos manda el cliente: el server acepta todos los blancos que trae cada paquete, no solo 5, y descarta los repetidos. El cliente nuevo manda hasta 80.
- Ataque de área de los monstruos: sigue limitado a 5 jugadores.
- Mobs de
/makemob: al morir quedaban 30 minutos ocupando la lista de blancos de los jugadores cercanos. Cuando esa lista se llenaba, los skills de área no les pegaban a los mobs nuevos. Ahora se borran al terminar su tiempo de muerte. - Cliente: los pools de efectos pasan de 200 a 1000 efectos, de 500 a 2000 joints, de 3000 a 6000 partículas y de 1002 a 3000 sprites. Con muchos monstruos en pantalla, antes se dejaban de ver los ataques.
- Panel y editor: correcciones de code scanning. Los eggs de Pterodactyl apuntan al monorepo.
Compatibilidad: el protocolo no cambia, así que los clientes 0.97.40 y 0.97.41 entran a este server. Para que Twisting Slash, Evil Spirit y el resto le peguen a más de 5 blancos por paquete hace falta el cliente 0.97.42.
Docker: emapupi/mu-linux-97k:0.97.42 (también latest), para amd64 y arm64. La imagen del panel sigue en 0.97.41.
Pterodactyl: elegí 0.97.42 en MU_RELEASE_TAG y reinstalá.
Cliente: esta Release no trae binarios del cliente. Se compila desde el código del tag:
- Windows:
cmake --preset windows-sdl3-x64-releaseycmake --build --preset windows-sdl3-x64-release. - Linux:
cmake --preset linux-x64-releaseycmake --build --preset linux-x64-release.
English
Fixes server exploits and makes area skills hit everything they reach. The server, the client and the eggs change.
- Server exploits.
- Trade: zen can no longer be duplicated.
- Chaos Machine: it only works with its NPC open and no longer accepts flag 5. You also can't walk with items loaded in the machine (both the server and the client block it).
- Guild: members of another guild can no longer be expelled.
- Area skills with no target cap. Evil Spirit, Triple Shot, Twisting Slash, Rageful Blow, Death Stab, Power Slash and Fire Slash hit at most 10 targets (Fire Slash 20), and the first ones in the list rather than the closest. They now hit everything within their radius.
- Skills whose targets the client sends: the server accepts every target in each packet instead of only 5, and drops duplicates. The new client sends up to 80.
- Monster area attack: still limited to 5 players.
/makemobmonsters: after dying they stayed for 30 minutes in the target list of nearby players. Once that list was full, area skills didn't hit new monsters. They are now deleted when their death time ends.- Client: the effect pools grow from 200 to 1000 effects, 500 to 2000 joints, 3000 to 6000 particles and 1002 to 3000 sprites. With many monsters on screen, attacks used to disappear.
- Panel and editor: code scanning fixes. The Pterodactyl eggs point to the monorepo.
Compatibility: the protocol doesn't change, so 0.97.40 and 0.97.41 clients can join this server. Twisting Slash, Evil Spirit and the rest need the 0.97.42 client to hit more than 5 targets per packet.
Docker: emapupi/mu-linux-97k:0.97.42 (also latest), for amd64 and arm64. The panel image stays at 0.97.41.
Pterodactyl: select 0.97.42 in MU_RELEASE_TAG and reinstall.
Client: this Release has no client binaries. Build it from the tag's source:
- Windows:
cmake --preset windows-sdl3-x64-releaseandcmake --build --preset windows-sdl3-x64-release. - Linux:
cmake --preset linux-x64-releaseandcmake --build --preset linux-x64-release.
Português
Corrige exploits do servidor e faz os skills de área acertarem tudo o que alcançam. Mudam o servidor, o cliente e os eggs.
- Exploits do servidor.
- Trade: não é mais possível duplicar zen.
- Chaos Machine: só funciona com o NPC aberto e não aceita mais o flag 5. Também não é possível andar com itens carregados na máquina (o servidor e o cliente bloqueiam).
- Guild: não é mais possível expulsar membros de outra guild.
- Skills de área sem limite de alvos. Evil Spirit, Triple Shot, Twisting Slash, Rageful Blow, Death Stab, Power Slash e Fire Slash acertavam no máximo 10 alvos (Fire Slash 20), e os primeiros da lista em vez dos mais próximos. Agora acertam tudo dentro do raio.
- Skills cujos alvos o cliente envia: o servidor aceita todos os alvos de cada pacote, não só 5, e descarta os repetidos. O cliente novo envia até 80.
- Ataque de área dos monstros: continua limitado a 5 jogadores.
- Monstros de
/makemob: ao morrer ficavam 30 minutos na lista de alvos dos jogadores próximos. Quando essa lista enchia, os skills de área não acertavam os monstros novos. Agora são apagados ao fim do tempo de morte. - Cliente: os pools de efeitos passam de 200 para 1000 efeitos, de 500 para 2000 joints, de 3000 para 6000 partículas e de 1002 para 3000 sprites. Com muitos monstros na tela, os ataques deixavam de aparecer.
- Painel e editor: correções de code scanning. Os eggs do Pterodactyl apontam para o monorepo.
Compatibilidade: o protocolo não muda, então os clientes 0.97.40 e 0.97.41 entram neste servidor. Twisting Slash, Evil Spirit e os demais precisam do cliente 0.97.42 para acertar mais de 5 alvos por pacote.
Docker: emapupi/mu-linux-97k:0.97.42 (também latest), para amd64 e arm64. A imagem do painel continua em 0.97.41.
Pterodactyl: selecione 0.97.42 em MU_RELEASE_TAG e reinstale.
Cliente: esta Release não traz binários do cliente. Compile a partir do código do tag:
- Windows:
cmake --preset windows-sdl3-x64-releaseecmake --build --preset windows-sdl3-x64-release. - Linux:
cmake --preset linux-x64-releaseecmake --build --preset linux-x64-release.
0.97.41
Las releases anteriores (hasta la 0.97.40) son solo del server. Las del cliente, de la 0.97.00 a la 0.97.40, están en Mu-97k-Client-Source (repositorio archivado).
Earlier releases (up to 0.97.40) are server only. The client releases, 0.97.00 to 0.97.40, are in Mu-97k-Client-Source (archived repository).
As releases anteriores (até a 0.97.40) são somente do server. As do cliente, da 0.97.00 à 0.97.40, estão em Mu-97k-Client-Source (repositório arquivado).
Español
Primera Release del monorepo: cliente y server salen del mismo repositorio. Esta versión trae cambios del cliente, del panel web y del compose; el server sigue siendo el 0.97.40.
- WebGPU, el doble de FPS con muchos personajes. Con 100 personajes lanzando skills, el cliente pasa de 40 a unos 80 FPS, y en zona segura llega a ~100.
- El brillo de los items (pasadas chrome) se calcula en la GPU, en lugar de armar cada malla vértice por vértice.
- Los datos de cada dibujo van en tablas indexadas, así cambian menos estados por cuadro.
- Las subidas de cada cuadro pasan por un buffer de staging propio que se reusa.
- En Release, Dawn ya no valida cada comando.
- Diagnóstico de errores gráficos. Los errores de WebGPU quedan en
debug.logcon un código fijo:[WGPU-E1]validación,[WGPU-E2]sin memoria,[WGPU-E3]interno,[WGPU-E9]otro,[WGPU-L1]dispositivo perdido,[WGPU-L2]no se pudo crear el dispositivo. Para reportar un error de dibujo, ponéGraphicsValidation=1en la sección[Window]deConfig.ini, reproducilo y mandá eldebug.log. - Panel web sin vulnerabilidades conocidas. Se actualizan
sanitize-html,body-parser,mysql2eip-address, lo que cierra 15 alertas de seguridad (XSS en el saneado de HTML, denegación de servicio y filtración de credenciales de MySQL). El panel pasa a Node 24: Node 18 y 20 ya no tienen soporte. - Compose: los scripts que inicializan la base se montaban desde la ruta anterior al monorepo. En una instalación nueva, la base quedaba sin tablas.
Compatibilidad: usar con el server 0.97.40. El protocolo no cambia: el cliente 0.97.41 le sigue informando la versión 0.97.40 al server. La imagen del panel pasa a emapupi/mu-linux-97k-web:0.97.41 (también latest), para amd64 y arm64; el resto de las imágenes sigue en 0.97.40. Pterodactyl: en el servidor del panel, elegí 0.97.41 en MU_RELEASE_TAG, cambiá la imagen a Node.js 24 y reinstalá; el servidor del juego sigue en 0.97.40.
Linux: el paquete adjunto trae main, Data, licencias, README y launch.sh, junto con su SHA256 y el inventario de bibliotecas. Para WebGPU hace falta el loader de Vulkan (libvulkan1 en Debian/Ubuntu, vulkan-icd-loader en Arch). Windows: se compila con cmake --preset windows-sdl3-x64-release y cmake --build --preset windows-sdl3-x64-release. El pack HD de ejemplo es el de la 0.97.40 del cliente.
English
First Release from the monorepo: client and server now ship from the same repository. This version brings client, web panel and compose changes; the server is still 0.97.40.
- WebGPU, twice the FPS with many characters. With 100 characters casting skills, the client goes from 40 to about 80 FPS, and reaches ~100 in a safe zone.
- Item shine (chrome passes) is computed on the GPU instead of building each mesh vertex by vertex.
- Per-draw data goes in indexed tables, so less state changes per frame.
- Each frame's uploads go through a reused staging buffer of our own.
- In Release, Dawn no longer validates every command.
- Graphics error diagnostics. WebGPU errors go to
debug.logwith a fixed code:[WGPU-E1]validation,[WGPU-E2]out of memory,[WGPU-E3]internal,[WGPU-E9]other,[WGPU-L1]device lost,[WGPU-L2]device could not be created. To report a rendering error, setGraphicsValidation=1in the[Window]section ofConfig.ini, reproduce it and send thedebug.log. - Web panel with no known vulnerabilities.
sanitize-html,body-parser,mysql2andip-addressare updated, closing 15 security alerts (XSS in HTML sanitizing, denial of service and MySQL credential leaks). The panel moves to Node 24: Node 18 and 20 are no longer supported. - Compose: the scripts that initialize the database were mounted from the pre-monorepo path. On a fresh install, the database ended up without tables.
Compatibility: use with server 0.97.40. The protocol is unchanged: the 0.97.41 client still reports version 0.97.40 to the server. The panel image moves to emapupi/mu-linux-97k-web:0.97.41 (also latest), for amd64 and arm64; the other images stay at 0.97.40. Pterodactyl: on the panel server, select 0.97.41 in MU_RELEASE_TAG, switch the image to Node.js 24 and reinstall; the game server stays at 0.97.40.
Linux: the attached package contains main, Data, licenses, README and launch.sh, along with its SHA256 and the library inventory. WebGPU needs the Vulkan loader (libvulkan1 on Debian/Ubuntu, vulkan-icd-loader on Arch). Windows: build with cmake --preset windows-sdl3-x64-release and cmake --build --preset windows-sdl3-x64-release. The example HD pack is the one from client 0.97.40.
Português
Primeira Release do monorepo: cliente e servidor saem do mesmo repositório. Esta versão traz mudanças do cliente, do painel web e do compose; o servidor continua sendo o 0.97.40.
- WebGPU, o dobro de FPS com muitos personagens. Com 100 personagens lançando skills, o cliente passa de 40 para cerca de 80 FPS, e chega a ~100 na zona segura.
- O brilho dos itens (passadas chrome) é calculado na GPU, em vez de montar cada malha vértice por vértice.
- Os dados de cada desenho vão em tabelas indexadas, então menos estados mudam por quadro.
- Os envios de cada quadro passam por um buffer de staging próprio que é reutilizado.
- Em Release, o Dawn não valida mais cada comando.
- Diagnóstico de erros gráficos. Os erros de WebGPU ficam no
debug.logcom um código fixo:[WGPU-E1]validação,[WGPU-E2]sem memória,[WGPU-E3]interno,[WGPU-E9]outro,[WGPU-L1]dispositivo perdido,[WGPU-L2]não foi possível criar o dispositivo. Para reportar um erro de desenho, coloqueGraphicsValidation=1na seção[Window]doConfig.ini, reproduza e envie odebug.log. - Painel web sem vulnerabilidades conhecidas. São atualizados
sanitize-html,body-parser,mysql2eip-address, o que fecha 15 alertas de segurança (XSS na sanitização de HTML, negação de serviço e vazamento de credenciais do MySQL). O painel passa para o Node 24: Node 18 e 20 não têm mais suporte. - Compose: os scripts que inicializam o banco eram montados a partir do caminho anterior ao monorepo. Numa instalação nova, o banco ficava sem tabelas.
Compatibilidade: usar com o servidor 0.97.40. O protocolo não muda: o cliente 0.97.41 continua informando a versão 0.97.40 ao servidor. A imagem do painel passa para emapupi/mu-linux-97k-web:0.97.41 (também latest), para amd64 e arm64; as demais imagens continuam em 0.97.40. Pterodactyl: no servidor do painel, selecione 0.97.41 em MU_RELEASE_TAG, troque a imagem para Node.js 24 e reinstale; o servidor do jogo continua em 0.97.40.
Linux: o pacote anexo traz main, Data, licenças, README e launch.sh, junto com o SHA256 e o inventário de bibliotecas. Para WebGPU é preciso o loader do Vulkan (libvulkan1 no Debian/Ubuntu, vulkan-icd-loader no Arch). Windows: compile com cmake --preset windows-sdl3-x64-release e cmake --build --preset windows-sdl3-x64-release. O pacote HD de exemplo é o do cliente 0.97.40.
Server 0.97.40 — Fase 4
Solo server. Esta versión es anterior al monorepo: el código del cliente 0.97.40 y sus notas están en Mu-97k-Client-Source 0.97.40 (repositorio archivado, de solo lectura).
Server only. This version predates the monorepo: the 0.97.40 client source and notes are in Mu-97k-Client-Source 0.97.40 (archived, read-only repository).
Somente server. Esta versão é anterior ao monorepo: o código do cliente 0.97.40 e as notas estão em Mu-97k-Client-Source 0.97.40 (repositório arquivado, somente leitura).
Server 0.97.40 — cierre de la Fase 4
Compatible con el cliente 0.97.40. Cambia el protocolo: actualizá cliente y server juntos. Un cliente anterior no entra a un server 0.97.40, y al revés.
- Texto en UTF-8 de punta a punta. El server ya no convierte a Windows-1252: lo que escribe el jugador es lo que se guarda y lo que ven los demás. Los nombres de personaje y de guild aceptan cualquier escritura (10 y 8 caracteres, validados y normalizados a NFC). La base pasa a
utf8mb4. - Protocolo 0.97.40: nombres de personaje de 40 bytes y de guild de 32, y chat, susurros, avisos de guild y
/postde hasta 200 bytes. Los paquetes que con esos largos pasan de 255 bytes van con header C2. - Traducciones por idioma (F3:F0). Cada cliente recibe en su idioma los nombres de items, monstruos y skills, las líneas de tooltip de los items custom y los textos propios del cliente, desde
Data/Text/<idioma>/(Eng,SpnyPor). - Panel web: editor de traducciones y editor de items custom (efectos, pose, tooltip y pets), los dos con la misma validación que el server. Suma cambio de contraseña, Turnstile y orden de cuentas en el panel de administración.
- Barra de buffs (F3:F1) con el tiempo restante de cada efecto, sus valores y quién lo lanzó, y niebla por mapa (F3:E9) con distancias de inicio y fin.
- MySQL por la API en C:
libmysqlclienten Linux y MariaDB Connector/C compilado estático en Windows. Ya no hace falta ninguna DLL de MySQL. - Correcciones: el puntaje del ranking de Blood Castle llegaba corrido dos bytes; el paquete de recall (C3:B0) tenía el layout equivocado con GCC; Rena y Stone se apilan.
- En Windows, la compilación recomendada pasa a x64. x86 queda como base histórica y el CI la sigue compilando.
Docker, todas en 0.97.40 y latest, para amd64 y arm64: emapupi/mu-linux-97k, emapupi/mu-linux-97k-web, emapupi/mu-linux-97k-mu-editor, emapupi/mu-linux-97k-mysql y emapupi/mu-linux-97k-pterodactyl.
Actualización desde 0.97.30: cambia la base de datos. Antes de empezar, hacé un backup.
- Detené
mu-serverymu-web. CorréMigrate-utf8mb4.sql,Migrate-0.97.40.sqlyProcedures.sql, siguiendo la guía de migración a utf8mb4. - Hacé el pull de las imágenes nuevas.
- Un volumen persistente no se actualiza con el pull, así que hay que integrar a mano lo siguiente:
- Obligatorio:
ServerVersion=0.97.40enGameServer/Data/GameServerInfo - StartUp.dat. Sin este cambio el cliente nuevo no entra. - La carpeta
Data/Text/. - Los
Message_*.txt, que ahora están en UTF-8. - La fila de Rena y Stone en
ItemStack.txt.
- Obligatorio:
Ver la guía completa.
Pterodactyl:
- Importá los eggs de
Pterodactyl-eggs-0.97.40.zip. El del server usa la imagen de runtime 0.97.40, que traelibmysqlclient21. El de la web ahora acepta el tag sinv. - Seleccioná
0.97.40enMU_RELEASE_TAG. - En instalaciones existentes, con el servidor detenido, extraé el archivo de tu arquitectura en una carpeta temporal, reemplazá los cuatro binarios y
start.sh, e integrá los archivos de Data de arriba conservando tus INI.
English — Server 0.97.40, end of Phase 4
Compatible with client 0.97.40. The protocol changes: update client and server together. An older client does not get into a 0.97.40 server, and vice versa.
- UTF-8 text end to end. The server no longer converts to Windows-1252: what the player types is what gets stored and what everyone else sees. Character and guild names accept any script (10 and 8 characters, validated and normalized to NFC). The database moves to
utf8mb4. - Protocol 0.97.40: 40-byte character names, 32-byte guild names, and chat, whispers, guild notices and
/postup to 200 bytes. Packets that exceed 255 bytes with these lengths use a C2 header. - Per-language translations (F3:F0). Each client receives item, monster and skill names, custom item tooltip lines and the client's own texts in its language, from
Data/Text/<language>/(Eng,SpnandPor). - Web panel: translation editor and custom item editor (effects, pose, tooltip and pets), both with the same validation as the server. Also adds password change, Turnstile and account sorting in the admin panel.
- Buff bar (F3:F1) with each effect's time left, its values and who cast it, and per-map fog (F3:E9) with start and end distances.
- MySQL through the C API:
libmysqlclienton Linux and a statically built MariaDB Connector/C on Windows. No MySQL DLL is needed anymore. - Fixes: the Blood Castle ranking score arrived two bytes off; the recall packet (C3:B0) had the wrong layout with GCC; Rena and Stone stack.
- On Windows, the recommended build is now x64. x86 stays as the historical base and CI still builds it.
Docker, all as 0.97.40 and latest, for amd64 and arm64: emapupi/mu-linux-97k, emapupi/mu-linux-97k-web, emapupi/mu-linux-97k-mu-editor, emapupi/mu-linux-97k-mysql and emapupi/mu-linux-97k-pterodactyl.
Upgrading from 0.97.30: the database changes. Back it up before you start.
- Stop
mu-serverandmu-web. RunMigrate-utf8mb4.sql,Migrate-0.97.40.sqlandProcedures.sql, following the utf8mb4 migration guide. - Pull the new images.
- Pulling does not update a persistent volume, so you have to integrate the following by hand:
- Required:
ServerVersion=0.97.40inGameServer/Data/GameServerInfo - StartUp.dat. Without this change the new client cannot log in. - The
Data/Text/folder. - The
Message_*.txtfiles, which are now UTF-8. - The Rena and Stone row in
ItemStack.txt.
- Required:
See the full guide.
Pterodactyl:
- Import the eggs from
Pterodactyl-eggs-0.97.40.zip. The server egg uses the 0.97.40 runtime image, which shipslibmysqlclient21. The web egg now accepts the tag without av. - Select
0.97.40inMU_RELEASE_TAG. - For existing installations, with the server stopped, extract the archive for your architecture into a temporary folder, replace the four binaries and
start.sh, and integrate the Data files above while keeping your INI files.
Português — Server 0.97.40, encerramento da Fase 4
Compatível com o cliente 0.97.40. O protocolo muda: atualize cliente e servidor juntos. Um cliente anterior não entra num servidor 0.97.40, e vice-versa.
- Texto em UTF-8 de ponta a ponta. O servidor não converte mais para Windows-1252: o que o jogador digita é o que fica salvo e o que os outros veem. Os nomes de personagem e de guild aceitam qualquer escrita (10 e 8 caracteres, validados e normalizados em NFC). A base passa para
utf8mb4. - Protocolo 0.97.40: nomes de personagem de 40 bytes e de guild de 32, e chat, sussurros, avisos de guild e
/postde até 200 bytes. Os pacotes que com esses tamanhos passam de 255 bytes usam header C2. - Traduções por idioma (F3:F0). Cada cliente recebe no seu idioma os nomes de itens, monstros e skills, as linhas de tooltip dos itens custom e os textos próprios do cliente, a partir de
Data/Text/<idioma>/(Eng,SpnePor). - Painel web: editor de traduções e editor de itens custom (efeitos, pose, tooltip e pets), os dois com a mesma validação do servidor. Também traz troca de senha, Turnstile e ordenação de contas no painel de administração.
- Barra de buffs (F3:F1) com o tempo restante de cada efeito, seus valores e quem o lançou, e névoa por mapa (F3:E9) com distâncias de início e fim.
- MySQL pela API em C:
libmysqlclientno Linux e MariaDB Connector/C compilado estático no Windows. Nenhuma DLL do MySQL é mais necessária. - Correções: a pontuação do ranking do Blood Castle chegava deslocada em dois bytes; o pacote de recall (C3:B0) tinha o layout errado com GCC; Rena e Stone se empilham.
- No Windows, a compilação recomendada passa a ser x64. O x86 fica como base histórica e o CI continua compilando.
Docker, todas em 0.97.40 e latest, para amd64 e arm64: emapupi/mu-linux-97k, emapupi/mu-linux-97k-web, emapupi/mu-linux-97k-mu-editor, emapupi/mu-linux-97k-mysql e emapupi/mu-linux-97k-pterodactyl.
Atualização a partir da 0.97.30: a base de dados muda. Faça um backup antes de começar.
- Pare o
mu-servere omu-web. RodeMigrate-utf8mb4.sql,Migrate-0.97.40.sqleProcedures.sql, seguindo o guia de migração para utf8mb4. - Faça o pull das novas imagens.
- O pull não atualiza um volume persistente, então é preciso integrar à mão o seguinte:
- Obrigatório:
ServerVersion=0.97.40em `GameServer/Data/GameServerIn...
- Obrigatório:
Server 0.97.30 — Fase 3
Solo server. Esta versión es anterior al monorepo: el código del cliente 0.97.30 y sus notas están en Mu-97k-Client-Source 0.97.30 (repositorio archivado, de solo lectura).
Server only. This version predates the monorepo: the 0.97.30 client source and notes are in Mu-97k-Client-Source 0.97.30 (archived, read-only repository).
Somente server. Esta versão é anterior ao monorepo: o código do cliente 0.97.30 e as notas estão em Mu-97k-Client-Source 0.97.30 (repositório arquivado, somente leitura).
Server 0.97.30 — cierre de la Fase 3
Compatible con el cliente 0.97.30. No cambia el protocolo respecto de 0.97.20.
- Compilación con CMake en Windows x86 y x64, además de Linux x64 y ARM64. El CI compila las cuatro combinaciones en Debug y Release.
- MySQL Connector/C++ 8.0.33 se descarga en el configure con versión y hash SHA256 fijos; sus binarios ya no están en el repo.
- Windows x64: correcciones del ancho de puntero en los callbacks de sockets, IOCP y timers.
- Catálogo de login: cola de envío de 256 KiB, para que los catálogos grandes no corten la conexión. El límite por paquete sigue en 8 KiB.
- Comandos GM para adelantar eventos sin reiniciar el server ni los eventos activos:
/bcstart,/dsstart,/bingostarte/invasionstart <índice>.
Docker: emapupi/mu-linux-97k:0.97.30 y latest, para amd64 y arm64. Web, editor y MySQL no cambian: sus imágenes siguen en 0.97.20.
Actualización desde 0.97.20: un volumen persistente no se actualiza al descargar la imagen. Agregá en tu Data/Command.txt las cuatro filas nuevas (bcstart, dsstart, bingostart, invasionstart) después de /tamastart y antes de end, en ese orden. Ver la guía completa.
Pterodactyl: seleccioná 0.97.30 en MU_RELEASE_TAG. En instalaciones existentes, con el servidor detenido, extraé el archivo de tu arquitectura adjunto a este Release en una carpeta temporal, reemplazá los cuatro binarios y start.sh, y agregá las filas de Command.txt, conservando tus INI y Data.
English — Server 0.97.30, Phase 3
Compatible with client 0.97.30. The protocol is unchanged from 0.97.20.
- CMake builds on Windows x86 and x64, as well as Linux x64 and ARM64. CI builds all four in Debug and Release.
- MySQL Connector/C++ 8.0.33 is downloaded at configure time with a pinned version and SHA256 hash; its binaries are no longer in the repo.
- Windows x64: pointer-width fixes in socket, IOCP and timer callbacks.
- Login catalog: 256 KiB send queue, so large catalogs no longer drop the connection. The per-packet limit stays at 8 KiB.
- GM commands to bring events forward without restarting the server or active events:
/bcstart,/dsstart,/bingostartand/invasionstart <index>.
Docker: emapupi/mu-linux-97k:0.97.30 and latest, for amd64 and arm64. Website, editor and MySQL do not change: their images stay on 0.97.20.
Upgrading from 0.97.20: pulling the image does not update a persistent volume. Add the four new rows (bcstart, dsstart, bingostart, invasionstart) to your Data/Command.txt after /tamastart and before end, in that order. See the full guide.
Pterodactyl: select 0.97.30 in MU_RELEASE_TAG. For existing installations, with the server stopped, extract the archive for your architecture attached to this release into a temporary folder, replace the four binaries and start.sh, and add the Command.txt rows, keeping your INI and Data files.
Português — Server 0.97.30, encerramento da Fase 3
Compatível com o cliente 0.97.30. O protocolo não muda em relação à 0.97.20.
- Compilação com CMake no Windows x86 e x64, além de Linux x64 e ARM64. O CI compila as quatro combinações em Debug e Release.
- MySQL Connector/C++ 8.0.33 é baixado no configure com versão e hash SHA256 fixos; seus binários não estão mais no repositório.
- Windows x64: correções da largura de ponteiro nos callbacks de sockets, IOCP e timers.
- Catálogo de login: fila de envio de 256 KiB, para que catálogos grandes não derrubem a conexão. O limite por pacote continua em 8 KiB.
- Comandos GM para antecipar eventos sem reiniciar o servidor nem os eventos ativos:
/bcstart,/dsstart,/bingostarte/invasionstart <índice>.
Docker: emapupi/mu-linux-97k:0.97.30 e latest, para amd64 e arm64. Site, editor e MySQL não mudam: suas imagens continuam na 0.97.20.
Atualização a partir da 0.97.20: baixar a imagem não atualiza um volume persistente. Adicione ao seu Data/Command.txt as quatro novas linhas (bcstart, dsstart, bingostart, invasionstart) depois de /tamastart e antes de end, nessa ordem. Veja o guia completo.
Pterodactyl: selecione 0.97.30 em MU_RELEASE_TAG. Em instalações existentes, com o servidor parado, extraia o arquivo da sua arquitetura anexado a este Release em uma pasta temporária, substitua os quatro binários e o start.sh, e adicione as linhas do Command.txt, mantendo seus INI e Data.
Server 0.97.21 — Hotfix de compilación en Windows
Solo server. Esta versión es anterior al monorepo: el código del cliente 0.97.21 y sus notas están en Mu-97k-Client-Source 0.97.21 (repositorio archivado, de solo lectura).
Server only. This version predates the monorepo: the 0.97.21 client source and notes are in Mu-97k-Client-Source 0.97.21 (archived, read-only repository).
Somente server. Esta versão é anterior ao monorepo: o código do cliente 0.97.21 e as notas estão em Mu-97k-Client-Source 0.97.21 (repositório arquivado, somente leitura).
Server 0.97.21 — hotfix de compilación en Windows
Compatible con el cliente 0.97.21.
- Compilación en Windows (Win32):
RandomManagertenía dos versiones deGetRandomElement, una parainty otra paraintptr_t. En Win32 son el mismo tipo, así que el GameServer no compilaba. Ahora es una sola, que sirve para los dos. En Linux el comportamiento es idéntico: se verificaron 408 resultados iguales contra el código anterior.
Docker: no hay imágenes nuevas. Este cambio no afecta al build de Linux, así que emapupi/mu-linux-97k:0.97.20 sigue siendo la imagen vigente. Tampoco cambian el esquema MySQL, la web ni el editor.
Server 0.97.20 — Fase 2
Solo server. Esta versión es anterior al monorepo: el código del cliente 0.97.20 y sus notas están en Mu-97k-Client-Source 0.97.20 (repositorio archivado, de solo lectura).
Server only. This version predates the monorepo: the 0.97.20 client source and notes are in Mu-97k-Client-Source 0.97.20 (archived, read-only repository).
Somente server. Esta versão é anterior ao monorepo: o código do cliente 0.97.20 e as notas estão em Mu-97k-Client-Source 0.97.20 (repositório arquivado, somente leitura).
Server 0.97.20 — cierre de la Fase 2
Compatible con el cliente 0.97.20. Actualizar ambos juntos: cambia el formato de items a 7 bytes y se incorporan los índices 32..511 por sección.
- Retirados de los repos del server el cliente con DLL, sus fuentes y el Encoder ejecutable, completamente deprecados. Las tablas de
Data/Custom/Encodersiguen vigentes para el catálogo. - El servidor publica al iniciar sesión el catálogo de items, monstruos, efectos, pets y tooltips.
- Los items custom definen comportamiento, modelo, brillo, efectos, pose de inventario y tooltip.
- El equipo custom se muestra en otros jugadores y en la selección de personajes.
- CustomPet por JSON y Pet Rudolph (13,400) como ejemplo de recogida de zen.
- Tablas del Encoder del DLL conservadas como entrada del catálogo.
- Corregida la lectura de ItemOption.txt en GCC que impedía Triple Shot.
- Imagen del server identificada por versión y cliente compatible. Egg de Pterodactyl adaptado al tag sin prefijo v.
Docker: emapupi/mu-linux-97k:0.97.20 y latest, para amd64 y arm64.
Actualización desde 0.97.00: un volumen persistente no se actualiza al descargar la imagen. Integrar Custom/Items, Custom/Pets, Custom/Encoder y la fila 400 de la sección 13 de Item/Item.txt, preservando personalizaciones. No hay cambios de esquema MySQL, web ni editor. Ver la guía completa.
Pterodactyl: usar el egg actualizado y los archivos de servidor de la arquitectura correspondiente adjuntos a este Release. En instalaciones existentes, conservar INI y Data personalizados; no reinstalar sin revisar su contenido.
English — Server 0.97.20, Phase 2
Compatible with client 0.97.20. Update both together: items now use a 7-byte format and support indices 32–511 per section.
- The deprecated DLL client, its source and the Encoder executable have been removed from the server repositories.
Data/Custom/Encodertables remain supported catalog inputs. - At login, the server sends the catalog of items, monsters, effects, pets and tooltips.
- Custom items can define behavior, model, glow, effects, inventory pose and tooltip.
- Custom equipment is visible on other players and on the character selection screen.
- JSON custom pets, with Pet Rudolph (13,400) as a Zen collection example.
- Fixed GCC parsing of ItemOption.txt that prevented Triple Shot from appearing.
- Server image labels identify the version and compatible client. The Pterodactyl egg accepts release tags without a
vprefix.
Docker: emapupi/mu-linux-97k:0.97.20 and latest, for amd64 and arm64.
Upgrading from 0.97.00: pulling the image does not update persistent volumes. Merge Custom/Items, Custom/Pets, Custom/Encoder and row 400 in section 13 of Item/Item.txt, preserving your customizations. There are no MySQL schema, website or editor changes. See the full guide.
Pterodactyl: use the updated egg and the server archive for your architecture attached to this release. For existing installations, preserve customized INI and Data files; review their contents before reinstalling.
Português — Server 0.97.20, encerramento da Fase 2
Compatível com o cliente 0.97.20. Atualize ambos juntos: os itens passam a usar o formato de 7 bytes e aceitam os índices 32–511 por seção.
- O cliente com DLL, suas fontes e o executável Encoder, completamente descontinuados, foram removidos dos repositórios do servidor. As tabelas de
Data/Custom/Encodercontinuam sendo entradas válidas do catálogo. - Ao entrar na conta, o servidor envia o catálogo de itens, monstros, efeitos, pets e tooltips.
- Itens customizados podem definir comportamento, modelo, brilho, efeitos, pose no inventário e tooltip.
- Equipamentos customizados aparecem nos outros jogadores e na seleção de personagens.
- Pets customizados por JSON, com Pet Rudolph (13,400) como exemplo de coleta de Zen.
- Corrigida a leitura de ItemOption.txt no GCC que impedia o Triple Shot de aparecer.
- A imagem do servidor informa a versão e o cliente compatível. O egg do Pterodactyl aceita tags sem o prefixo
v.
Docker: emapupi/mu-linux-97k:0.97.20 e latest, para amd64 e arm64.
Atualização a partir da 0.97.00: baixar a imagem não atualiza os volumes persistentes. Integre Custom/Items, Custom/Pets, Custom/Encoder e a linha 400 da seção 13 de Item/Item.txt, preservando as personalizações. Não há alterações no esquema do MySQL, no site ou no editor. Veja o guia completo.
Pterodactyl: use o egg atualizado e o pacote do servidor correspondente à sua arquitetura, anexados a este Release. Em instalações existentes, preserve os arquivos INI e Data personalizados; revise o conteúdo antes de reinstalar.
Web y editor 0.97.20 — actualización
Configurador inicial, temas clásico/Elf/DK/DW, idioma predeterminado ES/EN/PT, banderas por visitante y estado del editor. Después del primer inicio: /admin/settings. La configuración persiste en MySQL. Las noticias y los datos del juego no se traducen automáticamente.
Docker: emapupi/mu-linux-97k-web:0.97.20 y emapupi/mu-linux-97k-mu-editor:0.97.20 (también latest), amd64/arm64.
El tag Git se adelantó de 59e1c59 a db33ad5 para incluir esta actualización. La imagen y los binarios del servidor no cambiaron. Se reemplazaron solamente el paquete de la web y sus checksums.
Website and editor 0.97.20 — update
Initial setup, classic/Elf/DK/DW themes, ES/EN/PT default language, visitor language flags and editor connection status. Later changes: /admin/settings. Settings persist in MySQL. News and game data are not automatically translated.
Docker: emapupi/mu-linux-97k-web:0.97.20 and emapupi/mu-linux-97k-mu-editor:0.97.20 (also latest), amd64/arm64.
The Git tag moved from 59e1c59 to db33ad5 to include this update. The server image and binaries are unchanged. Only the website archive and its checksums were replaced.
Site e editor 0.97.20 — atualização
Configuração inicial, temas clássico/Elf/DK/DW, idioma padrão ES/EN/PT, bandeiras por visitante e estado da conexão do editor. Alterações posteriores: /admin/settings. Configurações persistem no MySQL. Notícias e dados do jogo não são traduzidos automaticamente.
Docker: emapupi/mu-linux-97k-web:0.97.20 e emapupi/mu-linux-97k-mu-editor:0.97.20 (também latest), amd64/arm64.
A tag Git avançou de 59e1c59 para db33ad5. A imagem e os binários do servidor não mudaram. Apenas o pacote web e seus checksums foram substituídos.
v0.2.0 — ARM64, MySQL 8.4 LTS & Pterodactyl Eggs
Solo server. Esta versión es anterior a las releases del cliente reconstruido, que empiezan en la 0.97.00 en Mu-97k-Client-Source (repositorio archivado).
Server only. This version predates the rebuilt client releases, which start at 0.97.00 in Mu-97k-Client-Source (archived repository).
Somente server. Esta versão é anterior às releases do cliente reconstruído, que começam na 0.97.00 em Mu-97k-Client-Source (repositório arquivado).
MU Linux 0.97k Eggs v0.2.0
This release adds native-ready ARM64 support, upgrades the database to MySQL 8.4 LTS, improves container build reliability, and introduces redesigned Pterodactyl eggs.
Highlights
- ARM64 Docker images for the MU server and MySQL.
- MySQL upgraded to 8.4 LTS.
- Server build limited to
-j1to avoid out-of-memory failures on small VPS instances. - Fixed missing MonsterSetBase spawn points and NPC entries.
- Updated multilingual documentation: Spanish, English and Portuguese.
- Added MIT License.
- New Pterodactyl eggs with:
- Versioned installation assets.
- Automatic AMD64 / ARM64 server package selection.
- Minimal runtime image:
emapupi/mu-linux-97k-pterodactyl:0.2.0. - Clean shutdown handling for ConnectServer, JoinServer, DataServer and GameServer.
- SHA256 checksums for release assets.
Docker images
emapupi/mu-linux-97k:0.1.4emapupi/mu-linux-97k-mysql:0.1.2emapupi/mu-linux-97k-pterodactyl:0.2.0
All three support linux/amd64 and linux/arm64.
Links
- Website: https://mu-linux.com/es/
- Documentation and source: https://github.com/EmanuelCatania/Mu-Linux-0.97k
v0.1.0 – Pterodactyl Eggs + Docker Images
Solo server. Esta versión es anterior a las releases del cliente reconstruido, que empiezan en la 0.97.00 en Mu-97k-Client-Source (repositorio archivado).
Server only. This version predates the rebuilt client releases, which start at 0.97.00 in Mu-97k-Client-Source (archived repository).
Somente server. Esta versão é anterior às releases do cliente reconstruído, que começam na 0.97.00 em Mu-97k-Client-Source (repositório arquivado).
Primera release pública.
Incluye:
- Eggs de Pterodactyl (Server + Web)
- Instrucciones de uso en el README
- Imágenes Docker:
- emapupi/mu-linux-97k:latest
- emapupi/mu-linux-97k-web:latest
Adjuntos:
- Pterodactyl eggs.zip