¿Como crear un servidor de Minecraft con Geyser?
Características de este proyecto
Sistema operativo y herramientas
- Ubuntu 24.04.1 LTS
Sobre la versión de Minecraft
- Minecraft Server 1.21.1 para Java (con Fabric)
Sobre los mods
- Fabric API
- Geyser
- Floodgate
Buenas prácticas al usar Linux
Usualmente lo primero que debemos hacer al usar una máquina con Linux es actualizar el software.
Cuando venimos de Windows estamos acostumbrados a que la computadora realice las actualizaciones automáticamente. Cuando usamos Linux debemos hacerlo manualmente o crear flujo de automatización nosotros mismos.
Este comando actualiza la lista de los paquetes disponibles:
sudo apt update
Este comando actualiza los paquetes:
sudo apt upgrade
Una vez que hacemos esto, podemos comenzar el proceso real de la creación de nuestro servidor.
Instalando Java
Para instalarlo podemos correr el siguiente comando:
sudo apt install openjdk-21-jdk-headless
Esto instalará una versión de Java compatible con la versión 1.21.1 de Minecraft.
Ver detalle
Usualmente el comando:
sudo apt install default-jre-headless
Nos da la versión de Java necesaria, pero en este caso necesitamos una versión más reciente que sea compatible con la versión de Minecraft más actual.
Y revisar la versión que fue instalada:
java -version
Creando una nueva carpeta
Ahora vamos a crear una nueva carpeta para guardar todos los archivos necesarios en un sólo lugar:
mkdir NOMBRE_DE_CARPETA
En nuestro caso:
mkdir fabric-server
Y podemos entrar en ella utilizando:
cd NOMBRE_DE_CARPETA
cd fabric-server
Consiguiendo Minecraft
Ahora debemos conseguir la versión de Minecraft para servidor, en este caso estaremos usando la versión de Fabric para poder agregar los mods que vamos a usar.
Podemos dirigirnos a su sitio FabricMC, seleccionar la configuración que queremos. En este caso dejamos al configuración por defecto.
Dar clic derecho en el botón de descarga y seleccionar Copiar dirección del enlace
.
Ahora podemos correr el comando:
wget -O server.jar LINK
Donde LINK
es el enlace que copiamos:
wget -O server.jar https://meta.fabricmc.net/v2/versions/loader/1.21.1/0.16.5/1.0.1/server/jar
La parte -O server.jar
hace que el archivo se guarde con el nombre server.jar
.
Corriendo el servidor
Ahora debemos decirle a Java que ejecute el archivo que acabamos de descargar:
java -Xms2g -Xmx4g -jar server.jar nogui
Expliquemos parte por parte:
java
: Es el software que bajamos en uno de los primeros pasos.-Xms2g
: Le indica la memoria mínima con la que debe comenzar el servidor. En este caso 2gb.-Xmx4g
: Le indica la memoria máxima que puede ocupar el servidor. En este caso 4gb.-jar
: Le indica el tipo de de archivo a correr.server.jar
: La dirección del archivo que descargamosnogui
: Le indica que ejecute sin interfaz gráfica. Es decir, sin mandar nada a la pantalla.
Nos saldrá un mensaje como este:
You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
Quiere decir que debemos aceptar los términos y condiciones del juego para poder correrlo.
Para eso debemos modificar el archivo de texto que fue creado después de correr este comando.
Para modificarlo podemos hacer lo siguiente:
sudo nano eula.txt
Debemos modificar la parte que dice false
y escribir true
.
Para sobreescribir el archivo debemos presionar ctrl+O
y luego Enter
.
Para salir del editor de texto podemos presionar ctrl+X
.
Ahora podemos correr el juego.
Creando un script para levantar el servidor
Si no queremos escribir el mismo comando cada que levantamos el servidor, podemos crear un script.
sudo nano start.sh
Se abrirá el editor de texto, podemos pegar aquí el comando para levantar el server.
Guardarlo con ctrl+O
y Enter
y cerrar el editor con ctrl+X
.
Para correr el script debemos darle permisos para ser ejecutado. Podemos ejecutar:
sudo chmod +x DIRECCION
En este caso DIRECCION
es start.sh
:
sudo chmod +x start.sh
Ahora podemos correrlo ejecutando:
./start.sh
Si queremos parar el servidor podemos escribir stop
en la consola de Java.
Instalando los mods para crossplay
Hasta ahora sólo hemos creado el servidor y creando un mundo sin mods.
Para agregar el mod que nos permite aceptar jugadores de la edición Bedrock dentro de la edición Java necesitamos el mod Geyser. En esta página podemos encontrar la documentación para instalarlo.
Debemos ir a la página de descarga, buscar la versión de nuestro Launcher, en este caso es Fabric. Y conseguir el enlace de descarga.
Ahora podemos bajarlo y guardarlo en ./mods/fabric.jar
:
wget -O ./mods/fabric.jar https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/fabric
Para correr este mod correctamente también debemos bajar FabricAPI.
Debemos dar clic en Download
, seleccionamos la versión de Minecraft que tenemos y clic derecho en el botón de descarga para conseguir el enlace.
wget -O ./mods/fabric-api.jar https://cdn.modrinth.com/data/P7dR8mSH/versions/gQS3JbZO/fabric-api-0.103.0%2B1.21.1.jar
Y para asegurarnos de que los usuarios de Bedrock no necesiten una cuenta de la versión Java podemos agregar Floodgate.
Seleccionamos la versión, copiamos el enlace y lo descargamos en la carpeta de mods:
wget -O ./mods/floodgate.jar https://cdn.modrinth.com/data/bWrNNfkb/versions/iWEfqepR/Floodgate-Fabric-2.2.3-SNAPSHOT%2Bbuild.31.jar
Ahora debemos acceder al archivo de configuración de Geyser:
sudo nano ./config/Geyser-Fabric/config.yml
Y cambiar la sección que dice auth-type
de online
a floodgate
.
Cómo abrir los puertos para que más gente se una
Ahora para hacer que la gente pueda unirse, debemos abrir el puerto por defecto que utiliza Minecraft para las conexiones.
Este comando habilita el protocolo TCP:
sudo ufw allow 25565/tcp
Este comando habilita el protocolo UDP:
sudo ufw allow 25565/udp
Cómo levantar el server en segundo plano
Para poder seguir usando la consola del sistema operativo sin problemas debemos levantar el servidor con una herramienta llamada screen
:
screen
Esto abrirá una “nueva consola” donde podemos repetir los pasos para levantar el servidor que ya instalamos.
Para entrar en la carpeta del server:
cd fabric-server
Y correr el script del server
./script.sh
Para salir de la consola actual, que esta ejecutando Java, sin que se termine el proceso, podemos presionar ctrl+A
seguido de ctrl+D
. Esto cerrará la consola que creamos con screen
sin detener lo que sucedía en ella.
Ahora podemos usar nuestra consola del sistema operativo sin que esté ocupada por la ejecución de otro programa.