Make sure your Elden Ring in Linux has Proton Experimental Forced. Pq sino no va a subir
administrators
Posts
-
Reforge 2 Mod de Elden Ring Instalacion Linux -
Reforge 2 Mod de Elden Ring Instalacion LinuxAquí tienes el post listo, con formato claro y pasos numerados para que la gente de la comunidad lo siga sin bolas:
Cómo hacer funcionar Reforge 2 Mod de Elden Ring
¿Quieres jugar Elden Ring con el mod Reforge 2? Aquí te explico paso a paso cómo dejarlo funcionando correctamente en Linux.

Paso 1: Prepara la carpeta del modVe a la siguiente carpeta:
ER-Reforge/ERRv2.2.9.6/dll/offline/
Paso 2: Copia los archivos de Seamless Co-opDesde la carpeta de Seamless Co-op, copia y pega dentro de la carpeta anterior:
- La carpeta
locale - El archivo
ersc.dll
Paso 3: Regresa a la carpeta principal del modAhora ve a:
ER-Reforge/ERRv2.2.9.6/
Paso 4: Dale permisos de ejecución al launcherBusca el archivo:
4 - Launch ELDEN RING Reforged - Offline or Seamless (Linux).sh- Haz click derecho sobre el archivo
- Entra a Permissions (Permisos)
- Activa la opción Allow Executing File As Program (Permitir ejecutar el archivo como programa)
️ Paso 5: Ejecuta el modFinalmente, haz click derecho otra vez sobre el mismo archivo y selecciona:
Run in Konsole¡Y listo! Con esto ya deberías tener Reforge 2 corriendo, ya sea en modo offline o con Seamless Co-op.

¿Quieres que te lo deje también con una intro más de "bienvenida" para la comunidad, o prefieres que quede así de directo tipo tutorial?
- La carpeta
-
Palworld No DockerSin Docker, en Bazzite el reto es que es un sistema inmutable (rpm-ostree) — no puedes hacer
dnf install steamcmddirecto en el sistema base. La forma limpia es usar Distrobox (que ya viste mencionado en el banner de bienvenida), que te da un contenedor Ubuntu completo donde SteamCMD funciona sin fricciones, pero el servidor corre igual de "nativo" que si estuviera instalado directo.1. Crear el distrobox
distrobox create --name palworld --image ubuntu:24.04 distrobox enter palworldTodo lo que sigue es dentro del distrobox (verás el prompt cambiar).
2. Instalar SteamCMD
sudo dpkg --add-architecture i386 sudo apt update sudo apt install software-properties-common -y sudo add-apt-repository multiverse -y sudo apt update sudo apt install steamcmd -yTe va a pedir aceptar la licencia de Steam — acepta.
3. Descargar el servidor de Palworld
mkdir -p ~/Palworld-Server ~/.steam/steamcmd/steamcmd.sh +force_install_dir ~/Palworld-Server +login anonymous +app_update 2394010 validate +quitEsto descarga varios GB, tarda un rato.
4. Primer arranque (genera los archivos de configuración)
cd ~/Palworld-Server ./PalServer.shDéjalo correr unos 30-60 segundos, luego páralo con
Ctrl+C. Esto generaPal/Saved/Config/LinuxServer/PalWorldSettings.ini.5. Configurar el servidor
nano Pal/Saved/Config/LinuxServer/PalWorldSettings.iniBusca la línea larga
OptionSettings=(...)y ajusta lo que te interese, por ejemplo:ServerName="Los Del Ring Palworld" ServerDescription="" AdminPassword="cambia_esto" ServerPassword="" ServerPlayerMaxNum=8 PublicIP="" PublicPort=8211 RCONEnabled=True6. Arrancar el servidor real
./PalServer.sh port=8211 players=8 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDSEsos flags (
-useperfthreads, etc.) son los recomendados oficialmente para mejor rendimiento multi-hilo.7. Salir del distrobox sin matar el servidor
Si quieres que siga corriendo aunque cierres la terminal, usa
screenotmuxdentro del distrobox antes de arrancar:screen -S palworld ./PalServer.sh port=8211 players=8 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDSCtrl+AluegoDpara desconectarte de la sesión sin cerrar el servidor. Para volver a verla:distrobox enter palworld screen -r palworld8. Firewall y port forwarding
Igual que antes — en el host (no dentro del distrobox, las reglas de firewalld son del sistema):
sudo firewall-cmd --add-port=8211/udp --permanent sudo firewall-cmd --reloadEl port forwarding del MikroTik que ya tienes de antes (
Palworld GameUDP 8211) sirve igual, sin cambios.
-
Palworld Docker¡Palworld es bastante más sencillo que los otros dos — corre nativo en Linux (no necesita Wine), y hay una imagen Docker muy popular y bien mantenida específicamente para esto. Te armo la guía con Podman, aplicando lo que ya aprendimos con Windrose (permisos,
--userns=keep-id, etc).Requisitos a tener en cuenta
Palworld llegó a la versión 1.0 el 10 de julio de 2026. Es pesado en RAM: para el máximo de 32 jugadores necesitas ~16 GB dedicados solo al servidor. Si tu laptop no tiene tanto libre, se puede bajar el límite de jugadores sin problema.
1. Preparar carpeta
mkdir -p ~/Palworld-Server/Saved cd ~/Palworld-Server2. Lanzar el contenedor
Uso la imagen
thijsvanloef/palworld-server-docker, la más usada y mantenida para esto — maneja SteamCMD, actualizaciones y backups automáticamente vía variables de entorno:podman run -d --name palworld-server \ --user 1000:1000 --userns=keep-id \ -p 8211:8211/udp \ -p 27015:27015/udp \ -v /home/joseam/Palworld-Server/Saved:/palworld/Pal/Saved:Z \ -e PLAYERS=8 \ -e MULTITHREADING=true \ -e RCON_ENABLED=true \ -e SERVER_NAME="Los Del Ring Palworld" \ -e SERVER_PASSWORD="" \ -e ADMIN_PASSWORD="cambia_esto" \ -e COMMUNITY=false \ -e SERVER_PLAYER_MAX_NUM=8 \ docker.io/thijsvanloef/palworld-server-docker:latestNotas sobre las variables:
PLAYERS/SERVER_PLAYER_MAX_NUM— súbelo a 32 si tienes RAM para ello, o déjalo bajo (4-8) para que sea livianoADMIN_PASSWORD— cámbiala, es la que usarás para RCON (administración remota)SERVER_PASSWORD— déjala vacía si no quieres contraseña, o ponle unaCOMMUNITY—truepublica tu servidor en el navegador público de Palworld dentro del juego (como el sitio de Windrose, pero integrado).false= solo por IP directa
️ Basado en lo que aprendimos con Windrose: el primer arranque tarda varios minutos porque descarga el servidor completo vía SteamCMD dentro del contenedor. No te preocupes si el log no muestra nada por un rato.3. Ver el progreso / logs
podman logs -f palworld-serverEspera a ver algo como:
[LOG] Server has successfully started!4. Firewall del host (Bazzite/firewalld)
sudo firewall-cmd --add-port=8211/udp --permanent sudo firewall-cmd --add-port=27015/udp --permanent sudo firewall-cmd --reload5. Port forwarding en el MikroTik
Vi que ya tenías reglas viejas para Palworld en tu router (de un intento anterior), apuntando correctamente a
192.168.88.254:41 ;;; Palworld Game chain=dstnat action=dst-nat to-addresses=192.168.88.254 to-ports=8211 protocol=udp in-interface=ether1 dst-port=8211 42 ;;; Palworld Query chain=dstnat action=dst-nat to-addresses=192.168.88.254 to-ports=27015 protocol=udp in-interface=ether1 dst-port=27015Solo verifica que no estén deshabilitadas (
X
/ip firewall nat printY necesitas también las reglas de filter (igual que con Windrose):
/ip firewall filter add chain=forward protocol=udp dst-port=8211 dst-address=192.168.88.254 action=accept place-before=0 comment="Allow Palworld UDP" /ip firewall filter add chain=forward protocol=udp dst-port=27015 dst-address=192.168.88.254 action=accept place-before=0 comment="Allow Palworld Query UDP"6. Cómo se conectan tus amigos
En el juego: Multijugador → Unirse vía Steam/IP →
TU_IP:8211(local:192.168.88.254:8211, remota: tu IP pública65.23.208.23:8211) -
Hytale Server Creation¡Buenas noticias — Hytale es mucho más simple que Windrose. Ya salió en Early Access (enero 2026), tiene servidor dedicado oficial en Java nativo (no necesita Wine ni Docker con trucos raros), y corre nativo en Linux sin problemas. Además vi que ya tenías una regla vieja para "Hytale Server" puerto 5520 UDP en tu MikroTik — coincide justo con el puerto que usa oficialmente.
Diferencias clave vs Windrose
- Es Java 25, no un binario Windows envuelto en contenedor.
- Usa QUIC sobre UDP exclusivamente — nada de TCP, así que el firewall es más simple.
- Puerto por defecto: 5520/UDP.
- Requiere autenticación de tu cuenta Hytale (device code, como Netflix/YouTube en un TV).
1. Instalar Java 25
En Bazzite lo más limpio es via
brew(viene incluido):brew install openjdk@25Verifica:
java --versionDebería mostrar algo como
openjdk 25.0.1 ... LTS.2. Crear carpeta y descargar el servidor
La forma recomendada para producción es el Hytale Downloader CLI:
mkdir -p ~/Hytale-Server cd ~/Hytale-Server curl -LO https://downloader.hytale.com/hytale-downloader.zip unzip hytale-downloader.zip chmod +x hytale-downloader ./hytale-downloaderEsto te deja los archivos del servidor ya listos (jar, assets, scripts de arranque).
3. Autenticar el servidor
Arranca el servidor y sigue el flujo de autenticación por dispositivo:
./start.shDentro de la consola del servidor:
/auth login deviceTe va a mostrar algo así:
Visit: https://accounts.hytale.com/device Enter code: ABCD-1234Entras desde tu navegador (o celular), pones el código, y listo — el servidor queda autenticado permanentemente (guarda las credenciales en
auth.enc/auth.key).
️ Límite: 500 servidores por licencia del juego — para un servidor privado normal no es problema.4. Firewall (host Bazzite, no el router todavía)
Bazzite usa firewalld:
sudo firewall-cmd --add-port=5520/udp --permanent sudo firewall-cmd --reload5. Port forwarding en el MikroTik
Ya viste que tenías esta regla armada de antes (probablemente de un intento previo):
;;; Hytale Server chain=dstnat action=dst-nat to-addresses=192.168.88.254 to-ports=5520 protocol=udp dst-port=5520Solo verifica que esté habilitada (sin bandera
X) y que tengain-interface=ether1. Si no lo tiene, corrígela:/ip firewall nat printY necesitas la regla de filter para permitir el forward (igual que hicimos con Windrose):
/ip firewall filter add chain=forward protocol=udp dst-port=5520 dst-address=192.168.88.254 action=accept place-before=0 comment="Allow Hytale UDP"Nota importante: Hytale usa QUIC, que maneja NAT traversal bastante bien — pero si tienes NAT simétrico (poco común en routers domésticos normales), podrías tener problemas. No debería ser tu caso con MikroTik.
6. Ajustar memoria/rendimiento (opcional)
Crea
jvm.optionsen la carpeta raíz (junto astart.sh
cat > jvm.options << 'EOF' -Xms2G -Xmx4G -XX:+UseG1GC EOF7. Arranque automático (systemd)
A diferencia de Windrose, aquí no necesitas Podman ni
--userns=keep-id— es Java corriendo directo. Podemos armarte un servicio systemd normal (usuario, sin root) cuando quieras. -
Cómo montar un servidor dedicado de Windrose en Linux (Bazzite + Podman)Cómo montar un servidor dedicado de Windrose en Linux (Bazzite + Podman)
Guía paso a paso para levantar un servidor privado de Windrose usando la imagen Docker oficial (
windroseserver/windroseserver) en un sistema Linux tipo Bazzite/Fedora Atomic con Podman rootless. Documentado a partir de una instalación real, incluyendo los errores que salieron y cómo se resolvieron.
0. Requisitos previos
- Linux con Podman (o Docker) instalado.
- Al menos ~6 GB libres (la imagen pesa varios GB por el payload del juego).
- Puerto
7777TCP/UDP disponible. - Acceso al router (para exponer el servidor a internet, opcional).
Verifica qué tienes disponible:
which podman dockerEn Bazzite, Podman viene de fábrica con un alias
docker='podman', así que ambos comandos funcionan igual.
1. Preparar la carpeta del servidor
mkdir -p ~/Windrose-Server/Saved cd ~/Windrose-Server
2. Primer arranque SIN configuración propia (para generar IDs válidos)
Importante: no crear el
ServerDescription.jsona mano desde cero con campos vacíos (PersistentServerId,WorldIslandId, etc. en""). Eso provoca un crash tipo:Fatal error: [R5DataKeeperForServerCoop.cpp:154] InitializeBLServer - Cannot init Coop NetServer Condition: 'ServerDescription.WorldIslandId.IsValid()'En su lugar, deja que el propio servidor genere el archivo la primera vez:
podman run --user ue_user --name WindroseServer \ -p 7777:7777/tcp -p 7777:7777/udp \ -d \ -v ~/Windrose-Server/Saved:/home/ue_user/app/R5/Saved:Z \ docker.io/windroseserver/windroseserver:latest sleep 20 podman stop WindroseServerCopia el archivo generado a tu carpeta local:
podman cp WindroseServer:/home/ue_user/app/R5/ServerDescription.json ~/Windrose-Server/ServerDescription.jsonEste archivo ya trae
PersistentServerIdreal y otros valores válidos generados por el motor — no los toques.
3. Editar solo los campos que quieres personalizar
# Nombre del servidor sed -i 's/"ServerName": *"[^"]*"/"ServerName": "TU_NOMBRE_AQUI"/' ServerDescription.json # Habilitar conexión directa por IP (necesario para Docker/Podman) sed -i 's/"UseDirectConnection": false/"UseDirectConnection": true/' ServerDescription.json sed -i 's/"DirectConnectionServerPort": -1/"DirectConnectionServerPort": 7777/' ServerDescription.jsonCampos relevantes en
ServerDescription_Persistent:Campo Qué hace ServerNameNombre visible del servidor MaxPlayerCountJugadores máximos IsPasswordProtected/PasswordContraseña de acceso UseDirectConnectiontrue= conexión por IP directa.false= conexión por código de invitación (relay P2P vía Epic Online Services)DirectConnectionServerPortPuerto a usar (7777 por defecto) InviteCodeCódigo de invitación — solo funciona si UseDirectConnectionestá enfalse
️ UseDirectConnectiony el código de invitación son mutuamente excluyentes. No puedes usar ambos al mismo tiempo. Contrue, el invite code queda inútil aunque tenga un valor válido. Para hosting dedicado con IP fija,true(Direct IP) es lo recomendado: menos latencia, no depende del relay de Epic/AWS.
4. Borrar el contenedor de prueba y lanzar el definitivo
Clave: usar
--userns=keep-iden Podman rootless. Sin esto, el UIDue_user(1000) dentro del contenedor no mapea al UID real del host, y el servidor no puede reescribirServerDescription.jsoncuando genera el mundo — causa el mismo crash del paso 2 pero después de crear el mundo:open('.../ServerDescription.json', ...) failed: errno=13 (Permission denied) Cannot save ServerDescription file.Comando final:
podman rm -f WindroseServer podman run --user ue_user --userns=keep-id --name WindroseServer \ -p 7777:7777/tcp -p 7777:7777/udp \ -d \ -v ~/Windrose-Server/Saved:/home/ue_user/app/R5/Saved:Z \ -v ~/Windrose-Server/ServerDescription.json:/home/ue_user/app/R5/ServerDescription.json:Z \ docker.io/windroseserver/windroseserver:latestEl flag
:Zen los volúmenes es necesario en sistemas con SELinux (Fedora/Bazzite) para evitar errores de permisos.
5. Verificar que está corriendo bien
podman logs -f WindroseServerBusca estas líneas como señal de éxito:
IpNetDriver listening on port 7777 Bringing World .../GenlandiaMulty up for play Server. Change state LoadedIslandData => WaitingForFirstAccountPara ver logs sin quedarte pegado en tiempo real:
podman logs --tail 100 WindroseServerGuardar log completo a archivo:
podman logs WindroseServer > ~/Windrose-Server/server.log
6. Ver nombre, contraseña e invite code guardados
grep -E '"ServerName"|"Password"|"IsPasswordProtected"|"InviteCode"' ~/Windrose-Server/ServerDescription.json
7. Cómo conectan tus amigos
En la misma red local:
IP_LOCAL_DEL_HOST:7777(consíguela con
ip addr show | grep 'inet ' | grep -v 127.0.0.1)Remotos (por internet): necesitan la IP pública del host, más el port forwarding hecho en el router (ver sección 8).
curl ifconfig.meEn el juego: Play → Connect to Server → Direct IP tab → pegan
IP:7777.
8. Port forwarding en router MikroTik (RouterOS)
Reemplaza
ether1por tu interfaz WAN y192.168.88.254por la IP local del host (idealmente fijada por DHCP lease estático).Fijar la IP del host (opcional pero recomendado):
/ip dhcp-server lease print /ip dhcp-server lease make-static <número_de_la_entrada>Reglas NAT (port forward), TCP y UDP:
/ip firewall nat add chain=dstnat protocol=tcp dst-port=7777 in-interface=ether1 action=dst-nat to-addresses=192.168.88.254 to-ports=7777 comment="Windrose TCP" /ip firewall nat add chain=dstnat protocol=udp dst-port=7777 in-interface=ether1 action=dst-nat to-addresses=192.168.88.254 to-ports=7777 comment="Windrose UDP"Reglas de firewall filter (deben quedar antes de cualquier drop general en la cadena forward):
/ip firewall filter add chain=forward protocol=tcp dst-port=7777 dst-address=192.168.88.254 action=accept place-before=0 comment="Allow Windrose TCP" /ip firewall filter add chain=forward protocol=udp dst-port=7777 dst-address=192.168.88.254 action=accept place-before=0 comment="Allow Windrose UDP"Verificar:
/ip firewall nat print /ip firewall filter printRevisar CGNAT (paso crítico): compara la IP de tu interfaz WAN...
/ip address print...contra la que te da
curl ifconfig.medesde el host, o whatismyip.com. Si son diferentes, hay CGNAT/doble NAT de por medio y el forwarding no funcionará desde afuera sin pasos extra (pedir IP pública al ISP, o usar una alternativa tipo VPN/túnel).
Resumen de comandos útiles
# Ver contenedores corriendo podman ps # Ver logs en vivo podman logs -f WindroseServer # Reiniciar el servidor (tras editar ServerDescription.json) podman rm -f WindroseServer podman run --user ue_user --userns=keep-id --name WindroseServer \ -p 7777:7777/tcp -p 7777:7777/udp -d \ -v ~/Windrose-Server/Saved:/home/ue_user/app/R5/Saved:Z \ -v ~/Windrose-Server/ServerDescription.json:/home/ue_user/app/R5/ServerDescription.json:Z \ docker.io/windroseserver/windroseserver:latest # Parar / iniciar sin borrar podman stop WindroseServer podman start WindroseServer
Notas finales
- La imagen oficial (
windroseserver/windroseserver) corre el binario nativo Linux del motor (no requiere Wine). - Actualizar el servidor:
podman pull docker.io/windroseserver/windroseserver:latesty volver a lanzar el contenedor (los datos del mundo persisten enSaved/porque está montado como volumen). - Pendiente para el futuro: configurar arranque automático con Quadlet (systemd nativo de Fedora Atomic/Bazzite) para que el servidor levante solo al encender la máquina.
-
Nightreign Download Tools and ModsHerramientas y Mods para Elden Ring Nightreign (Seamless Co-op)
Recopilación de herramientas y mods útiles para jugar con Cheat Engine y Seamless Co-op. Todos los enlaces son de MEGA.
️ HerramientasProgramas base necesarios para modificar memoria y lanzar el juego con soporte para mods.
Herramienta Descripción Enlace Cheat Engine Editor de memoria en tiempo real, usado para inspeccionar y modificar valores del juego mientras corre. Descargar ProtonHax Utilidad que facilita lanzar herramientas externas (como Cheat Engine) dentro del mismo prefix de Proton que usa el juego. Descargar Mod Engine 3 Manager Herramienta que gestiona y carga los mods (como Seamless Co-op y el mod de mapas/armas/jefes) sin modificar los archivos originales del juego. Descargar Tablas de Cheat Engine
Estas tablas (
.CT) contienen los scripts y punteros ya configurados para cargar directo en Cheat Engine, sin tener que buscar las direcciones de memoria manualmente.Tabla Descripción Enlace Relics Table Tabla enfocada en reliquias/relics del juego. Descargar Hexington Table Tabla de Hexington con opciones adicionales. Descargar
ModsMod Descripción Enlace Maps Variations, Weapons and Bosses Mod que agrega variaciones de mapas, armas y jefes al juego. Descargar Seamless Co-op Mod que permite jugar en cooperativo sin las limitaciones del multijugador vanilla (sin invasiones, sin límites de progreso entre jugadores, etc). Descargar Cómo se usan juntos
Si vienen del post anterior sobre cómo correr Cheat Engine junto al juego en Bazzite:
- Instalen Cheat Engine (vía Wine/Flatpak, como se explicó en el post de instalación).
- Instalen Mod Engine 3 Manager — es el que se encarga de cargar los mods sin tocar los archivos originales del juego.
- Instalen Seamless Co-op y el mod de Maps/Weapons/Bosses, y cárguenlos como perfiles dentro de Mod Engine 3 Manager (
.me3). - Carguen la tabla
.CT(Relics o Hexington) desde Cheat Engine una vez que esté enganchado al proceso del juego. - Usen ProtonHax (o el método manual con Proton directo que vimos en el post anterior) para lanzar Cheat Engine dentro del mismo prefix que el juego.
️ Nota de responsabilidadEstas herramientas modifican la memoria del juego en tiempo real. Úsenlas bajo su propio criterio:
- No se recomienda usarlas en partidas con anti-cheat activo o en modos competitivos.
- Al usar mods como Seamless Co-op, verifiquen que todos los jugadores del grupo usen la misma versión del mod para evitar desincronización.
- Descarguen siempre desde fuentes que consideren confiables y escaneen los archivos antes de ejecutarlos.
-
Guía: Instalar y usar ProtonHax en Manjaro (con Cheat Engine + Mod Engine 3)cheatengine.sh
#!/bin/bash STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.local/share/Steam" \ STEAM_COMPAT_DATA_PATH="$HOME/.local/share/Steam/steamapps/compatdata/2622380" \ "$HOME/.local/share/Steam/steamapps/common/Proton - Experimental/proton" run \ "/home/joseam/.var/app/org.winehq.Wine/data/wine/drive_c/Program Files/Cheat Engine/cheatengine-x86_64.exe"Para crear un sh y no tener que copiar y pegar en terminal.
-
Guía: Instalar y usar ProtonHax en Manjaro (con Cheat Engine + Mod Engine 3)Bazzite starter.sh
#!/bin/bash export SteamAppId=2622380 export SteamGameId=2622380 export SteamOverlayGameId=2622380 export STEAM_COMPAT_DATA_PATH="$HOME/.local/share/Steam/steamapps/compatdata/2622380" protonhax init me3 launch -p "/home/joseam/.config/me3/profiles/Seamless/Seamless.me3" -
Guía: Instalar y usar ProtonHax en Manjaro (con Cheat Engine + Mod Engine 3)# Bazzite:
STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.local/share/Steam" \ STEAM_COMPAT_DATA_PATH="$HOME/.local/share/Steam/steamapps/compatdata/2622380" \ "$HOME/.local/share/Steam/steamapps/common/Proton - Experimental/proton" run \ "/home/joseam/.var/app/org.winehq.Wine/data/wine/drive_c/Program Files/Cheat Engine/cheatengine-x86_64.exe"