Jump to content

Create Vintage Story server on VPS with Linux || Crear servidor de Vintage Story en VPS con linux


Jefferzoonn

Recommended Posts

Español:

Spoiler

Muy buenas a todo el mundo!

Soy Jefferzoonn, Jeff Story o JefferZ, como queráis llamarme, a estas alturas tengo mas nombres que Belcebú ...

Hoy vengo a explicarles donde he adquirido una VPS por 5€ al mes y como he conseguido montar un servidor online de este nuestro amado juego.

Antes que nada quiero aclarar que esto no es una guía de como adquirir una VPS ni de como usarla, si no de como crear un servidor publico de Vintage Story utilizando una VPS la cual en esta guía se dará por sentado que ya tienes.

Para esta guía usaremos una VPS de Contabo.com (Tiene unos precios bastante competitivos, recomiendo echarle un ojo)

Habrá que empezar no? Pero vamos por partes como dijo el descuartizador

(Esta guía esta basada en Ubuntu)

 

Paso nº1 - Entrar a la VPS e ir a la carpeta raíz

Spoiler

En caso de que nuestra VPS la tengamos en Contabo.com, para entrar usaremos PuTTY con el usuario root y la contraseña que hallamos elegido antes de realizar la instalación.

Una vez hallamos accedido recomiendo usar el comando "cd .." hasta llegar a la carpeta raíz, también podemos usar el comando "ls" para que nos muestre una lista de carpetas y a si asegurarnos de estar en la raíz.

Paso nº2 - Instalar pcregrep , screen y wget

Spoiler

A partir de aquí voy a etiquetar los comandos de una manera especifica la cual será NumeroDePaso.numeroDeComando

Comandos:

2.1

sudo apt install pcregrep

2.2

sudo apt install screen

2.3

sudo apt install wget

 

Paso nº3 - Descargar e instalar NET 7

Spoiler

Aquí ya entramos en un terreno en el que se nos pueden dar distintos problemas ya que hay varios linux con distintas versiones y diferencias, para no hacerlo más complicado te recomiendo buscar en tu navegador "instalar NET 7 en aqui_pones_tu_sistema_operativo" de todos modos te voy a decir los comandos que me han funcionado a mi:

3.1

wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh

3.2

chmod +x ./dotnet-install.sh

3.3

./dotnet-install.sh --channel 7.0

 

Si al iniciar posteriormente el servidor nos sale un error que dice “Fatal! I require dotnet but it’s not installed.”

Hay que hacer lo siguiente:

3.4

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb 
sudo dpkg -i packages-microsoft-prod.deb 
rm packages-microsoft-prod.deb

3.5

sudo apt-get update

3.6

sudo apt-get install -y dotnet-sdk-7.0

 

Una vez hecho esto volvemos al punto donde nos habíamos quedado anteriormente del error

Paso nº4 - Crear un nuevo usuario llamado vintagestory

Spoiler

Por motivos de seguridad no se debe ejecutar el servidor desde root por lo que hacemos otro usuario:

4.1

adduser vintagestory

Paso nº5 - Crear carpeta en directorio home/vintagestory

Spoiler

Si has seguido la guía igual que lo he hecho yo, seguirás en la carpeta raíz, si no estas en ella, vuelve a la carpeta raíz usando el comando "cd .."

Ahora desde la carpeta raíz empezamos con los comandos:

5.1

cd home

5.2

cd vintagestory

5.3

mkdir server && cd server

 

Paso nº6 - Descargar y extraer los archivos necesarios para el servidor

Spoiler

Estando en el directorio "/home/vintagestory/server" debemos usar los siguientes comandos:

6.1

wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.19.8.tar.gz

6.2

tar xzf vs_server_linux-x64_*.*.*.tar.gz

6.3

chmod +x server.sh

 

Paso nº7 - Abrir puertos en caso de ser necesario

Spoiler

7.1

firewall-cmd --permanent --zone=public --add-port=42420/tcp

7.2

firewall-cmd --reload

7.3

iptables -A INPUT -p tcp -m tcp --dport 42420 -j ACCEPT

Paso nº8 - Iniciar nuestro servidor

Spoiler

Es importante tener en cuenta que para iniciar por primera vez el servidor es necesario hacerlo desde el usuario root, en caso de no estarlo nos cambiamos con el comando "su root"

 

8.1

./server.sh start

 

Lo dejamos cargar y posteriormente hacemos el siguiente comando:

8.2

./server.sh command "stop"

 

Ahora que ha creado los directorios necesarios nos cambiamos a nuestro usuario llamado vintagestory con el comando:

8.3

su vintagestory

 

Una vez que ya estemos en nuestro usuario dedicado al funcionamiento del servidor (usuario: vintagestory) debemos volver a iniciar nuestro servidor y ya estaría listo para usar

Comando para iniciar el servidor:

8.4

./server.sh start

 

Paso nº9 - Darte /op

Spoiler

Para darte op debes hacerlo con el servidor encendido obviamente

Comando para darte op:

9.1

./server.sh command "/op NombreDeUsuario"

Donde pone NombreDeUsuario lo cambiamos por nuestro nombre, por ejemplo:

./server.sh command "/op JefferZ"

 

 

 

Paso nº 10 - Apagar servidor y acceder desde cliente FTP

Spoiler

Para apagar el servidor de Vintage Story introduciremos el siguiente comando en la consola de nuestra VPS:

10.1

./server.sh command "stop"

 

Paso nº 11 - Abrir nuestro cliente Vintage Story y crear un nuevo mundo

Spoiler

Abrimos nuestro juego Vintage Story para crear un mundo y después copiar la configuración al servidor ya que a si es mucho más fácil

Para este caso le voy a poner una semilla y unos ajustes específicos que posteriormente nos servirán para el funcionamiento de un mod que usaremos más adelante en la sección de Instalar Mods

Generación del mundo:

Seed: 1234567890 || Semilla: 1234567890

Landcover: 50% || Cubierta terrestre: 50%

Landcover scale: 400% || Escala de cubierta terrestre: 400%

Importante que el mundo que queremos usar como base quede el primero en nuestra lista de mundos

Ahora en nuestro PC vamos al directorio:

AppData\Roaming\VintagestoryData

Ahí tenemos un archivo llamado “serverconfig.json” el cual debemos abrir para configurar nuestro servidor

Ejemplo de serverconfig.json de un mundo para un solo jugador:

Spoiler
{
  "FileEditWarning": "PLEASE NOTE: This file is also loaded when you start a single player world. If you want to run a dedicated server without affecting single player, we recommend you install the game into a different folder and run the server from there.",
  "ConfigVersion": "1.5",
  "ServerName": "Vintage Story Server",
  "ServerUrl": null,
  "ServerDescription": null,
  "WelcomeMessage": "Bienvenido {0}, espero que sobrevivas bien y prosperes",
  "Ip": null,
  "Port": 42420,
  "Upnp": false,
  "CompressPackets": true,
  "AdvertiseServer": true,
  "MaxClients": 16,
  "PassTimeWhenEmpty": false,
  "MasterserverUrl": "http://masterserver.vintagestory.at/api/v1/servers/",
  "ModDbUrl": "https://mods.vintagestory.at/",
  "ClientConnectionTimeout": 150,
  "EntityDebugMode": false,
  "Password": null,
  "MapSizeX": 1024000,
  "MapSizeY": 256,
  "MapSizeZ": 1024000,
  "ServerLanguage": "es-es",
  "MaxChunkRadius": 12,
  "TickTime": 33.333332,
  "SpawnCapPlayerScaling": 0.5,
  "BlockTickChunkRange": 4,
  "MaxMainThreadBlockTicks": 10000,
  "RandomBlockTicksPerChunk": 16,
  "BlockTickInterval": 300,
  "SkipEveryChunkRow": 0,
  "SkipEveryChunkRowWidth": 0,
  "Roles": [
    {
      "Code": "suvisitor",
      "PrivilegeLevel": -1,
      "Name": "Survival Visitor",
      "Description": "Can only visit this world and chat but not use/place/break anything",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "chat"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "Green",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "crvisitor",
      "PrivilegeLevel": -1,
      "Name": "Creative Visitor",
      "Description": "Can only visit this world, chat and fly but not use/place/break anything",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "chat"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "DarkGray",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "limitedsuplayer",
      "PrivilegeLevel": -1,
      "Name": "Limited Survival Player",
      "Description": "Can use/place/break blocks only in permitted areas (priv level -1), create/manage player groups and chat",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "build",
        "useblock",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "White",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "limitedcrplayer",
      "PrivilegeLevel": -1,
      "Name": "Limited Creative Player",
      "Description": "Can use/place/break blocks in only in permitted areas (priv level -1), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed)",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "build",
        "useblock",
        "gamemode",
        "freemove",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "LightGreen",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "suplayer",
      "PrivilegeLevel": 0,
      "Name": "Survival Player",
      "Description": "Can use/place/break blocks in unprotected areas (priv level 0), create/manage player groups and chat. Can claim an area of up to 8 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "White",
      "LandClaimAllowance": 262144,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "crplayer",
      "PrivilegeLevel": 100,
      "Name": "Creative Player",
      "Description": "Can use/place/break blocks in all areas (priv level 100), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "gamemode",
        "freemove",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "LightGreen",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 6,
      "AutoGrant": false
    },
    {
      "Code": "sumod",
      "PrivilegeLevel": 200,
      "Name": "Survival Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 200), create/manage player groups, chat, kick/ban players and do serverwide announcements. Can claim an area of up to 4 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "crmod",
      "PrivilegeLevel": 500,
      "Name": "Creative Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 500), create/manage player groups, chat, kick/ban players, fly and set his own or other players game modes (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "gamemode",
        "freemove",
        "commandplayer",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "admin",
      "PrivilegeLevel": 99999,
      "Name": "Admin",
      "Description": "Has all privileges, including giving other players admin status.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "attackplayers",
        "attackcreatures",
        "freemove",
        "gamemode",
        "pickingrange",
        "chat",
        "kick",
        "ban",
        "whitelist",
        "setwelcome",
        "announce",
        "readlists",
        "give",
        "areamodify",
        "setspawn",
        "controlserver",
        "tp",
        "time",
        "grantrevoke",
        "root",
        "commandplayer",
        "controlplayergroups",
        "manageplayergroups",
        "selfkill",
        "worldedit"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "LightBlue",
      "LandClaimAllowance": 2147483647,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 99999,
      "AutoGrant": true
    }
  ],
  "DefaultRoleCode": "suplayer",
  "ModPaths": [
    "Mods",
    "C:\\Users\\PC\\AppData\\Roaming\\VintagestoryData\\Mods"
  ],
  "AntiAbuse": 0,
  "WorldConfig": {
    "Seed": "1234567890",
    "SaveFileLocation": "C:\\Users\\PC\\AppData\\Roaming\\VintagestoryData\\Saves\\jefferzs village world.vcdbs",
    "WorldName": "JefferZs Village World",
    "AllowCreativeMode": true,
    "PlayStyle": "surviveandbuild",
    "PlayStyleLangCode": "preset-surviveandbuild",
    "WorldType": "standard",
    "WorldConfiguration": {
      "gameMode": "survival",
      "startingClimate": "temperate",
      "spawnRadius": "50",
      "graceTimer": "0",
      "deathPunishment": "drop",
      "droppedItemsTimer": "600",
      "seasons": "enabled",
      "playerlives": "-1",
      "lungCapacity": "40000",
      "daysPerMonth": "9",
      "harshWinters": "true",
      "blockGravity": "sandgravel",
      "caveIns": "off",
      "allowUndergroundFarming": false,
      "bodyTemperatureResistance": "0",
      "creatureHostility": "aggressive",
      "creatureStrength": "1",
      "playerHealthPoints": "15",
      "playerHungerSpeed": "1",
      "playerHealthRegenSpeed": "1",
      "playerMoveSpeed": "1.5",
      "foodSpoilSpeed": "1",
      "saplingGrowthRate": "1",
      "toolDurability": "1",
      "toolMiningSpeed": "1",
      "propickNodeSearchRadius": "6",
      "globalDepositSpawnRate": "1",
      "microblockChiseling": "stonewood",
      "allowCoordinateHud": true,
      "allowMap": true,
      "colorAccurateWorldmap": false,
      "loreContent": true,
      "clutterObtainable": "ifrepaired",
      "temporalStorms": "sometimes",
      "tempstormDurationMul": "1",
      "temporalStability": true,
      "temporalRifts": "visible",
      "temporalGearRespawnUses": "20",
      "temporalStormSleeping": "0",
      "worldClimate": "realistic",
      "landcover": "0.5",
      "oceanscale": "4",
      "upheavelCommonness": "0.3",
      "geologicActivity": "0.05",
      "landformScale": "1.0",
      "worldWidth": "1024000",
      "worldLength": "1024000",
      "worldEdge": "traversable",
      "polarEquatorDistance": "100000",
      "globalTemperature": "1",
      "globalPrecipitation": "1",
      "globalForestation": "0",
      "surfaceCopperDeposits": "0.12",
      "surfaceTinDeposits": "0.007",
      "snowAccum": "true",
      "allowLandClaiming": true,
      "classExclusiveRecipes": true,
      "auctionHouse": true
    },
    "MapSizeY": 256,
    "CreatedByPlayerName": "JefferZ",
    "DisabledMods": [
      "modprueba@1.0.0",
      "plogrosbasicos@1.0.0",
      "bettercrates@1.7.0",
      "livemap@0.0.4"
    ],
    "RepairMode": false
  },
  "NextPlayerGroupUid": 10,
  "GroupChatHistorySize": 20,
  "MaxOwnedGroupChannelsPerUser": 10,
  "OnlyWhitelisted": false,
  "VerifyPlayerAuth": true,
  "DefaultSpawn": null,
  "AllowPvP": true,
  "AllowFireSpread": true,
  "AllowFallingBlocks": true,
  "HostedMode": false,
  "HostedModeAllowMods": false,
  "StartupCommands": null,
  "RepairMode": false,
  "AnalyzeMode": false,
  "CorruptionProtection": true,
  "RegenerateCorruptChunks": false,
  "ChatRateLimitMs": 1000,
  "DieBelowDiskSpaceMb": 400,
  "ModIdBlackList": null,
  "ServerIdentifier": "445f9983-647d-4773-9007-cfdfb7e08333"
}

 

 

Paso nº 12 - Configurar servidor en base a mundo creado anteriormente

Spoiler

Volvemos a nuestro FTP y deberíamos seguir en el directorio “/var/vintagestory/data” de la raíz de nuestra VPS a la cual estamos accediendo desde nuestro cliente FTP.

En dicho directorio encontraremos el mismo archivo serverconfig.json que abriremos y dejaremos la ventana en la mitad de la pantalla derecha y a la vez abriremos en el lado izquierdo de nuestra pantalla el archivo serverconfig.json ubicado en el directorio “AppData\Roaming\VintagestoryData” de nuestro PC.

 

Ahora viene lo complicado, aquí hay que estar atentos para configurar todo correctamente.

- Configurando el nombre del servidor -

Spoiler

En uno de los primeros apartados del “serverconfig.json” de tu servidor veras que pone:

  "ServerName": "Vintage Story Server",

Pues donde dice “Vintage Story Server” lo cambiamos por el nombre que queramos para nuestro servidor, por ejemplo:

"ServerName": "JefferZ server",

 

- Configurando la descripción del servidor -

Spoiler

Ahora vamos a “ "ServerDescription": null, ” y lo cambiamos por algo llamativo para nuestro servidor, ejemplo sin modificar y modificado:

"ServerDescription": null,

Modificado:

"ServerDescription": Este es el mejor servidor del mundo”,

Esta descripción se mostrara cuando un usuario pulse en tu servidor desde la lista publica de servidores.

- Configurando el mensaje de bienvenida del servidor -

Spoiler

También es recomendable añadir un mensaje de bienvenida personalizado en:

"WelcomeMessage": "Welcome {0}, may you survive well and prosper",

El parámetro “{0}” será cambiado por el nombre de usuario a la hora de mostrar el mensaje.

Mensaje personalizado:

"WelcomeMessage": "Bienvenido {0}, espero que disfrutes de esta guía",

 

- Configurando los roles -

Spoiler

Vamos con la sección de roles, aquí si lo que queremos es hacer un servidor publico deberíamos hacer unos ajustes en nuestros roles:

Roles por defecto:

Spoiler
"Roles": [
    {
      "Code": "suvisitor",
      "PrivilegeLevel": -1,
      "Name": "Survival Visitor",
      "Description": "Can only visit this world and chat but not use/place/break anything",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "chat"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "Green",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "crvisitor",
      "PrivilegeLevel": -1,
      "Name": "Creative Visitor",
      "Description": "Can only visit this world, chat and fly but not use/place/break anything",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "chat"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "DarkGray",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "limitedsuplayer",
      "PrivilegeLevel": -1,
      "Name": "Limited Survival Player",
      "Description": "Can use/place/break blocks only in permitted areas (priv level -1), create/manage player groups and chat",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "build",
        "useblock",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "White",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "limitedcrplayer",
      "PrivilegeLevel": -1,
      "Name": "Limited Creative Player",
      "Description": "Can use/place/break blocks in only in permitted areas (priv level -1), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed)",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "build",
        "useblock",
        "gamemode",
        "freemove",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "LightGreen",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "suplayer",
      "PrivilegeLevel": 0,
      "Name": "Survival Player",
      "Description": "Can use/place/break blocks in unprotected areas (priv level 0), create/manage player groups and chat. Can claim an area of up to 8 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "White",
      "LandClaimAllowance": 262144,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "crplayer",
      "PrivilegeLevel": 100,
      "Name": "Creative Player",
      "Description": "Can use/place/break blocks in all areas (priv level 100), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "gamemode",
        "freemove",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "LightGreen",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 6,
      "AutoGrant": false
    },
    {
      "Code": "sumod",
      "PrivilegeLevel": 200,
      "Name": "Survival Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 200), create/manage player groups, chat, kick/ban players and do serverwide announcements. Can claim an area of up to 4 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "crmod",
      "PrivilegeLevel": 500,
      "Name": "Creative Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 500), create/manage player groups, chat, kick/ban players, fly and set his own or other players game modes (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "gamemode",
        "freemove",
        "commandplayer",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "admin",
      "PrivilegeLevel": 99999,
      "Name": "Admin",
      "Description": "Has all privileges, including giving other players admin status.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "attackplayers",
        "attackcreatures",
        "freemove",
        "gamemode",
        "pickingrange",
        "chat",
        "kick",
        "ban",
        "whitelist",
        "setwelcome",
        "announce",
        "readlists",
        "give",
        "areamodify",
        "setspawn",
        "controlserver",
        "tp",
        "time",
        "grantrevoke",
        "root",
        "commandplayer",
        "controlplayergroups",
        "manageplayergroups",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "LightBlue",
      "LandClaimAllowance": 2147483647,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 99999,
      "AutoGrant": true
    }
  ],

 

Roles recomendados:

Spoiler
"Roles": [
    {
      "Code": "suplayer",
      "PrivilegeLevel": 0,
      "Name": "Survival Player",
      "Description": "Can use/place/break blocks in unprotected areas (priv level 0), create/manage player groups and chat. Can claim an area of up to 8 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "White",
      "LandClaimAllowance": 262144,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "crplayer",
      "PrivilegeLevel": 100,
      "Name": "Creative Player",
      "Description": "Can use/place/break blocks in all areas (priv level 100), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "gamemode",
        "freemove",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "LightGreen",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 6,
      "AutoGrant": false
    },
    {
      "Code": "sumod",
      "PrivilegeLevel": 200,
      "Name": "Survival Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 200), create/manage player groups, chat, kick/ban players and do serverwide announcements. Can claim an area of up to 4 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "crmod",
      "PrivilegeLevel": 500,
      "Name": "Creative Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 500), create/manage player groups, chat, kick/ban players, fly and set his own or other players game modes (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "gamemode",
        "freemove",
        "commandplayer",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "admin",
      "PrivilegeLevel": 99999,
      "Name": "Admin",
      "Description": "Has all privileges, including giving other players admin status.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "attackplayers",
        "attackcreatures",
        "freemove",
        "gamemode",
        "pickingrange",
        "chat",
        "kick",
        "ban",
        "whitelist",
        "setwelcome",
        "announce",
        "readlists",
        "give",
        "areamodify",
        "setspawn",
        "controlserver",
        "tp",
        "time",
        "grantrevoke",
        "root",
        "commandplayer",
        "controlplayergroups",
        "manageplayergroups",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "LightBlue",
      "LandClaimAllowance": 2147483647,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 99999,
      "AutoGrant": true
    }
  ],

 

 

- Copiando la generación de mundo de nuestra partida creada anteriormente -

Spoiler

Ahora empieza lo bueno, vamos a la configuración del mundo dentro de la sección:

"WorldConfig": {
"Seed": null,
"SaveFileLocation": "/var/vintagestory/data/Saves/default.vcdbs",
"WorldName": "A new world",
"AllowCreativeMode": true,
"PlayStyle": "surviveandbuild",
"PlayStyleLangCode": "surviveandbuild-bands",
"WorldType": "standard",
"WorldConfiguration": null,
"MapSizeY": null,
"CreatedByPlayerName": null,
"DisabledMods": null,
"RepairMode": false
},

Le añadimos nuestra semilla, si queremos le cambiamos el nombre al archivo de nuestro mundo y le asignamos un nombre a nuestro mundo además de una altura máxima de construcción que puede ser desde 256 hasta 320:

"WorldConfig": {
"Seed": "1234567890",
"SaveFileLocation": "/var/vintagestory/data/Saves/guideWorld.vcdbs",
"WorldName": "El mundo de las guias",
"AllowCreativeMode": true,
"PlayStyle": "surviveandbuild",
"PlayStyleLangCode": "surviveandbuild-bands",
"WorldType": "standard",
"WorldConfiguration": null,
"MapSizeY": 256,
"CreatedByPlayerName": null,
"DisabledMods": null,
"RepairMode": false
},

Y finalmente añadimos nuestra “WorldConfiguration”, donde pone:

"WorldConfiguration": null,

Lo sustituimos por la misma sección de nuestro serverconfig.json local, que deberíamos tener en el directorio “AppData\Roaming\VintagestoryData” de nuestro PC y debería quedar así:

Ejemplo de sección “WorldConfig”:

Spoiler
"WorldConfig": {
    "Seed": "1234567890",
    "SaveFileLocation": "/var/vintagestory/data/Saves/guideWorld.vcdbs",
    "WorldName": "El mundo de las guias",
    "AllowCreativeMode": true,
    "PlayStyle": "surviveandbuild",
    "PlayStyleLangCode": "surviveandbuild-bands",
    "WorldType": "standard",
    "WorldConfiguration": {
      "gameMode": "survival",
      "startingClimate": "temperate",
      "spawnRadius": "50",
      "graceTimer": "0",
      "deathPunishment": "drop",
      "droppedItemsTimer": "600",
      "seasons": "enabled",
      "playerlives": "-1",
      "lungCapacity": "40000",
      "daysPerMonth": "9",
      "harshWinters": "true",
      "blockGravity": "sandgravel",
      "caveIns": "off",
      "allowUndergroundFarming": false,
      "bodyTemperatureResistance": "0",
      "creatureHostility": "aggressive",
      "creatureStrength": "1",
      "playerHealthPoints": "15",
      "playerHungerSpeed": "1",
      "playerHealthRegenSpeed": "1",
      "playerMoveSpeed": "1.5",
      "foodSpoilSpeed": "1",
      "saplingGrowthRate": "1",
      "toolDurability": "1",
      "toolMiningSpeed": "1",
      "propickNodeSearchRadius": "6",
      "globalDepositSpawnRate": "1",
      "microblockChiseling": "stonewood",
      "allowCoordinateHud": true,
      "allowMap": true,
      "colorAccurateWorldmap": false,
      "loreContent": true,
      "clutterObtainable": "ifrepaired",
      "temporalStorms": "sometimes",
      "tempstormDurationMul": "1",
      "temporalStability": true,
      "temporalRifts": "visible",
      "temporalGearRespawnUses": "20",
      "temporalStormSleeping": "0",
      "worldClimate": "realistic",
      "landcover": "0.5",
      "oceanscale": "4",
      "upheavelCommonness": "0.3",
      "geologicActivity": "0.05",
      "landformScale": "1.0",
      "worldWidth": "1024000",
      "worldLength": "1024000",
      "worldEdge": "traversable",
      "polarEquatorDistance": "100000",
      "globalTemperature": "1",
      "globalPrecipitation": "1",
      "globalForestation": "0",
      "surfaceCopperDeposits": "0.12",
      "surfaceTinDeposits": "0.007",
      "snowAccum": "true",
      "allowLandClaiming": true,
      "classExclusiveRecipes": true,
      "auctionHouse": true
    },
    "MapSizeY": 256,
    "CreatedByPlayerName": null,
    "DisabledMods": null,
    "RepairMode": false
  },

 

 

 

Paso nº 13 - Eliminar mundo actual del servidor

Spoiler

Al iniciar nuestro servidor por primera vez automáticamente se crea un mundo por defecto el cual ahora vamos a borrar.

El archivo lo encontraremos en el directorio “/var/vintagestory/data/Saves” de nuestra VPS, el archivo aparecerá con el nombre “default.vcdbs”, una vez lo encontremos solo tenemos que seleccionarlo y borrarlo.

Una vez lo hayamos borrado deberemos volver a iniciar nuestro servidor desde el usuario “vintagestory”, automáticamente se generara un mundo con la nueva configuración y ya podremos disfrutar de Vintage Story como más nos gusta.

 

Y con esto ya tendríamos nuestro servidor operativo y listo para usarlo.

Todavía voy a seguir ampliando la guía para añadir una sección de como configurarlo todo a nuestro gusto, además de otra sección de como instalar mods.

Próximamente añadiré imágenes para cada paso, de manera que se haga todo un poco más intuitivo y no sea puro texto plano

 

¡IMPORTANTE!

No soy ningún experto en VPS, Linux, o servidores de Vintage Story, solamente quería compartir lo que a mi me ha funcionado, puede que esto a ti no te sirva, o puede que seas un profesional y pienses que soy idiota y no tengo ni idea y estarías en lo correcto, solo comparto mi escaso conocimiento.

Dicho esto espero que les sirva y aquí me despido.

English:

Spoiler

Very good to everyone!

I'm Jefferzoonn, Jeff Story or JefferZ, whatever you want to call me, at this point I have more names than Beelzebub...

Today I come to explain to you where I purchased a VPS for €5 per month and how I managed to set up an online server for this our beloved game.

First of all, I want to clarify that this is not a guide on how to acquire a VPS or how to use it, but rather how to create a public Vintage Story server using a VPS, which in this guide it will be assumed that you already have.

For this guide we will use a Contabo.com VPS (It has quite competitive prices, I recommend taking a look)

We'll have to start, right? But we go in parts as the cutter said

(This guide is based on Ubuntu)

 

Step #1 - Enter the VPS and go to the root folder

Spoiler

If we have our VPS at Contabo.com, to enter we will use PuTTY with the root user and the password that we chose before installing.

Once we have accessed it, I recommend using the "cd .." command until we reach the root folder. We can also use the "ls" command to show us a list of folders and to make sure we are at the root.

Step #2 - Install pcregrep, screen and wget

Spoiler

From here I am going to label the commands in a specific way which will be StepNumber.CommandNumber

Commands:

 2.1

sudo apt install pcregrep

2.2

sudo apt install screen

2.3

sudo apt install wget

 

Step #3 - Download and install NET 7

Spoiler

Here we are already entering a terrain in which we can have different problems since there are several Linux with different versions and differences. In order not to make it more complicated, I recommend searching in your browser for "install NET 7 in your_Os" anyway, I'm going to tell you say the commands that have worked for me:

 3.1

wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh

3.2

chmod +x ./dotnet-install.sh

3.3

./dotnet-install.sh --channel 7.0

 

If when you start the server later we get an error that says “Fatal! I require dotnet but it’s not installed.”

You have to do the following:

 3.4

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb 
sudo dpkg -i packages-microsoft-prod.deb 
rm packages-microsoft-prod.deb

3.5

sudo apt-get update

3.6

sudo apt-get install -y dotnet-sdk-7.0

Once this is done we return to the point where we had left before the error.

Step #4 - Create a new user called vintagestory

Spoiler

For security reasons, the server should not be run from root, so we create another user:

4.1

adduser vintagestory

 

Step #5 - Create folder in home/vintagestory directory

Spoiler

If you followed the guide the same as I did, you will still be in the root folder, if you are not in it, go back to the root folder using the command "cd .."

Now from the root folder we start with the commands:

 5.1

cd home

5.2

cd vintagestory

5.3

mkdir server && cd server

 

Step #6 - Download and extract the necessary files for the server

Spoiler

Being in the directory "/home/vintagestory/server" we must use the following commands:

 6.1

wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.19.8.tar.gz

6.2

tar xzf vs_server_linux-x64_*.*.*.tar.gz

6.3

chmod +x server.sh

 

Step #7 - Open ports if necessary

Spoiler

7.1

firewall-cmd --permanent --zone=public --add-port=42420/tcp

7.2

firewall-cmd --reload

7.3

iptables -A INPUT -p tcp -m tcp --dport 42420 -j ACCEPT

 

Step #8 - Start our server

Spoiler

It is important to keep in mind that to start the server for the first time it is necessary to do it from the root user, if not, we change it with the "su root" command.

 

 8.1

./server.sh start

 

We let it load and then do the following command:

8.2

./server.sh command "stop"

 

Now that we have created the necessary directories we switch to our user named vintagestory with the command:

8.3

su vintagestory

 

Once we are in our user dedicated to the operation of the server (user: vintagestory) we must restart our server and it would be ready to use

Command to start the server:

8.4

./server.sh start

 

Step #9 - Give yourself /op

Spoiler

To give yourself op you must do it with the server on obviously

Command to give you op:

9.1

./server.sh command "/op UserName"

Where it says UserName we change it to our name, for example:

./server.sh command "/op JefferZ"

 

Step #10 - Shut down server and access from FTP client

Spoiler

To turn off the Vintage Story server we will enter the following command in the console of our VPS:

10.1

./server.sh command "stop"

 

Step #11 - Open our Vintage Story client and create a new world

Spoiler

We open our Vintage Story game to create a world and then copy the configuration to the server since it is much easier

In this case I am going to put a seed and some specific settings that will later help us to operate a mod that we will use later in the Install Mods section.

World Generation:

Seed: 1234567890 || Semilla: 1234567890

Landcover: 50% || Cubierta terrestre: 50%

Landcover scale: 400% || Escala de cubierta terrestre: 400%

It is important that the world we want to use as a base is the first in our list of worlds

Now on our PC we go to the directory:

AppData\Roaming\VintagestoryData

There we have a file called “serverconfig.json” which we must open to configure our server

Example serverconfig.json from a single player world:

Spoiler
{
  "FileEditWarning": "PLEASE NOTE: This file is also loaded when you start a single player world. If you want to run a dedicated server without affecting single player, we recommend you install the game into a different folder and run the server from there.",
  "ConfigVersion": "1.5",
  "ServerName": "Vintage Story Server",
  "ServerUrl": null,
  "ServerDescription": null,
  "WelcomeMessage": "Bienvenido {0}, espero que sobrevivas bien y prosperes",
  "Ip": null,
  "Port": 42420,
  "Upnp": false,
  "CompressPackets": true,
  "AdvertiseServer": true,
  "MaxClients": 16,
  "PassTimeWhenEmpty": false,
  "MasterserverUrl": "http://masterserver.vintagestory.at/api/v1/servers/",
  "ModDbUrl": "https://mods.vintagestory.at/",
  "ClientConnectionTimeout": 150,
  "EntityDebugMode": false,
  "Password": null,
  "MapSizeX": 1024000,
  "MapSizeY": 256,
  "MapSizeZ": 1024000,
  "ServerLanguage": "es-es",
  "MaxChunkRadius": 12,
  "TickTime": 33.333332,
  "SpawnCapPlayerScaling": 0.5,
  "BlockTickChunkRange": 4,
  "MaxMainThreadBlockTicks": 10000,
  "RandomBlockTicksPerChunk": 16,
  "BlockTickInterval": 300,
  "SkipEveryChunkRow": 0,
  "SkipEveryChunkRowWidth": 0,
  "Roles": [
    {
      "Code": "suvisitor",
      "PrivilegeLevel": -1,
      "Name": "Survival Visitor",
      "Description": "Can only visit this world and chat but not use/place/break anything",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "chat"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "Green",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "crvisitor",
      "PrivilegeLevel": -1,
      "Name": "Creative Visitor",
      "Description": "Can only visit this world, chat and fly but not use/place/break anything",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "chat"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "DarkGray",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "limitedsuplayer",
      "PrivilegeLevel": -1,
      "Name": "Limited Survival Player",
      "Description": "Can use/place/break blocks only in permitted areas (priv level -1), create/manage player groups and chat",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "build",
        "useblock",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "White",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "limitedcrplayer",
      "PrivilegeLevel": -1,
      "Name": "Limited Creative Player",
      "Description": "Can use/place/break blocks in only in permitted areas (priv level -1), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed)",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "build",
        "useblock",
        "gamemode",
        "freemove",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "LightGreen",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "suplayer",
      "PrivilegeLevel": 0,
      "Name": "Survival Player",
      "Description": "Can use/place/break blocks in unprotected areas (priv level 0), create/manage player groups and chat. Can claim an area of up to 8 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "White",
      "LandClaimAllowance": 262144,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "crplayer",
      "PrivilegeLevel": 100,
      "Name": "Creative Player",
      "Description": "Can use/place/break blocks in all areas (priv level 100), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "gamemode",
        "freemove",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "LightGreen",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 6,
      "AutoGrant": false
    },
    {
      "Code": "sumod",
      "PrivilegeLevel": 200,
      "Name": "Survival Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 200), create/manage player groups, chat, kick/ban players and do serverwide announcements. Can claim an area of up to 4 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "crmod",
      "PrivilegeLevel": 500,
      "Name": "Creative Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 500), create/manage player groups, chat, kick/ban players, fly and set his own or other players game modes (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "gamemode",
        "freemove",
        "commandplayer",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "admin",
      "PrivilegeLevel": 99999,
      "Name": "Admin",
      "Description": "Has all privileges, including giving other players admin status.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "attackplayers",
        "attackcreatures",
        "freemove",
        "gamemode",
        "pickingrange",
        "chat",
        "kick",
        "ban",
        "whitelist",
        "setwelcome",
        "announce",
        "readlists",
        "give",
        "areamodify",
        "setspawn",
        "controlserver",
        "tp",
        "time",
        "grantrevoke",
        "root",
        "commandplayer",
        "controlplayergroups",
        "manageplayergroups",
        "selfkill",
        "worldedit"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "LightBlue",
      "LandClaimAllowance": 2147483647,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 99999,
      "AutoGrant": true
    }
  ],
  "DefaultRoleCode": "suplayer",
  "ModPaths": [
    "Mods",
    "C:\\Users\\PC\\AppData\\Roaming\\VintagestoryData\\Mods"
  ],
  "AntiAbuse": 0,
  "WorldConfig": {
    "Seed": "1234567890",
    "SaveFileLocation": "C:\\Users\\PC\\AppData\\Roaming\\VintagestoryData\\Saves\\jefferzs village world.vcdbs",
    "WorldName": "JefferZs Village World",
    "AllowCreativeMode": true,
    "PlayStyle": "surviveandbuild",
    "PlayStyleLangCode": "preset-surviveandbuild",
    "WorldType": "standard",
    "WorldConfiguration": {
      "gameMode": "survival",
      "startingClimate": "temperate",
      "spawnRadius": "50",
      "graceTimer": "0",
      "deathPunishment": "drop",
      "droppedItemsTimer": "600",
      "seasons": "enabled",
      "playerlives": "-1",
      "lungCapacity": "40000",
      "daysPerMonth": "9",
      "harshWinters": "true",
      "blockGravity": "sandgravel",
      "caveIns": "off",
      "allowUndergroundFarming": false,
      "bodyTemperatureResistance": "0",
      "creatureHostility": "aggressive",
      "creatureStrength": "1",
      "playerHealthPoints": "15",
      "playerHungerSpeed": "1",
      "playerHealthRegenSpeed": "1",
      "playerMoveSpeed": "1.5",
      "foodSpoilSpeed": "1",
      "saplingGrowthRate": "1",
      "toolDurability": "1",
      "toolMiningSpeed": "1",
      "propickNodeSearchRadius": "6",
      "globalDepositSpawnRate": "1",
      "microblockChiseling": "stonewood",
      "allowCoordinateHud": true,
      "allowMap": true,
      "colorAccurateWorldmap": false,
      "loreContent": true,
      "clutterObtainable": "ifrepaired",
      "temporalStorms": "sometimes",
      "tempstormDurationMul": "1",
      "temporalStability": true,
      "temporalRifts": "visible",
      "temporalGearRespawnUses": "20",
      "temporalStormSleeping": "0",
      "worldClimate": "realistic",
      "landcover": "0.5",
      "oceanscale": "4",
      "upheavelCommonness": "0.3",
      "geologicActivity": "0.05",
      "landformScale": "1.0",
      "worldWidth": "1024000",
      "worldLength": "1024000",
      "worldEdge": "traversable",
      "polarEquatorDistance": "100000",
      "globalTemperature": "1",
      "globalPrecipitation": "1",
      "globalForestation": "0",
      "surfaceCopperDeposits": "0.12",
      "surfaceTinDeposits": "0.007",
      "snowAccum": "true",
      "allowLandClaiming": true,
      "classExclusiveRecipes": true,
      "auctionHouse": true
    },
    "MapSizeY": 256,
    "CreatedByPlayerName": "JefferZ",
    "DisabledMods": [
      "modprueba@1.0.0",
      "plogrosbasicos@1.0.0",
      "bettercrates@1.7.0",
      "livemap@0.0.4"
    ],
    "RepairMode": false
  },
  "NextPlayerGroupUid": 10,
  "GroupChatHistorySize": 20,
  "MaxOwnedGroupChannelsPerUser": 10,
  "OnlyWhitelisted": false,
  "VerifyPlayerAuth": true,
  "DefaultSpawn": null,
  "AllowPvP": true,
  "AllowFireSpread": true,
  "AllowFallingBlocks": true,
  "HostedMode": false,
  "HostedModeAllowMods": false,
  "StartupCommands": null,
  "RepairMode": false,
  "AnalyzeMode": false,
  "CorruptionProtection": true,
  "RegenerateCorruptChunks": false,
  "ChatRateLimitMs": 1000,
  "DieBelowDiskSpaceMb": 400,
  "ModIdBlackList": null,
  "ServerIdentifier": "445f9983-647d-4773-9007-cfdfb7e08333"
}

 

 

Step #12 - Configure server based on previously created world

Spoiler

We return to our FTP and we should continue in the “/var/vintagestory/data” directory of the root of our VPS which we are accessing from our FTP client.

In this directory we will find the same serverconfig.json file that we will open and leave the window in the middle of the right screen and at the same time we will open the serverconfig.json file located in the “AppData\Roaming\VintagestoryData” directory on the left side of our screen. of our PC.

 

Now comes the complicated part, here you have to be careful to configure everything correctly.

- Setting the server name -

Spoiler

In one of the first sections of the “serverconfig.json” of your server you will see that it says:

"ServerName": "Vintage Story Server",

Well, where it says “Vintage Story Server” we change it to the name we want for our server, for example:

"ServerName": "JefferZ server",

 

- Setting the server description -

Spoiler

Now we go to “ "ServerDescription": null, ” and change it to something attractive for our server, unmodified and modified example:

"ServerDescription": null,

Modified:

"ServerDescription": This is the best server in the world”,

This description will be displayed when a user clicks on your server from the public server list.

- Configuring the server welcome message -

Spoiler

It is also advisable to add a personalized welcome message in:

"WelcomeMessage": "Welcome {0}, may you survive well and prosper",

The parameter “{0}” will be changed to the username when displaying the message.

Personalized message:

"WelcomeMessage": "Welcome {0}, I hope you enjoy this guide",

- Configuring the roles -

Spoiler

Let's move on to the roles section, here if what we want is to make a public server we should make some adjustments to our roles:

Default roles:

Spoiler
"Roles": [
    {
      "Code": "suvisitor",
      "PrivilegeLevel": -1,
      "Name": "Survival Visitor",
      "Description": "Can only visit this world and chat but not use/place/break anything",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "chat"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "Green",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "crvisitor",
      "PrivilegeLevel": -1,
      "Name": "Creative Visitor",
      "Description": "Can only visit this world, chat and fly but not use/place/break anything",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "chat"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "DarkGray",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "limitedsuplayer",
      "PrivilegeLevel": -1,
      "Name": "Limited Survival Player",
      "Description": "Can use/place/break blocks only in permitted areas (priv level -1), create/manage player groups and chat",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "build",
        "useblock",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "White",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "limitedcrplayer",
      "PrivilegeLevel": -1,
      "Name": "Limited Creative Player",
      "Description": "Can use/place/break blocks in only in permitted areas (priv level -1), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed)",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "build",
        "useblock",
        "gamemode",
        "freemove",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "LightGreen",
      "LandClaimAllowance": 0,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "suplayer",
      "PrivilegeLevel": 0,
      "Name": "Survival Player",
      "Description": "Can use/place/break blocks in unprotected areas (priv level 0), create/manage player groups and chat. Can claim an area of up to 8 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "White",
      "LandClaimAllowance": 262144,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "crplayer",
      "PrivilegeLevel": 100,
      "Name": "Creative Player",
      "Description": "Can use/place/break blocks in all areas (priv level 100), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "gamemode",
        "freemove",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "LightGreen",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 6,
      "AutoGrant": false
    },
    {
      "Code": "sumod",
      "PrivilegeLevel": 200,
      "Name": "Survival Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 200), create/manage player groups, chat, kick/ban players and do serverwide announcements. Can claim an area of up to 4 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "crmod",
      "PrivilegeLevel": 500,
      "Name": "Creative Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 500), create/manage player groups, chat, kick/ban players, fly and set his own or other players game modes (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "gamemode",
        "freemove",
        "commandplayer",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "admin",
      "PrivilegeLevel": 99999,
      "Name": "Admin",
      "Description": "Has all privileges, including giving other players admin status.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "attackplayers",
        "attackcreatures",
        "freemove",
        "gamemode",
        "pickingrange",
        "chat",
        "kick",
        "ban",
        "whitelist",
        "setwelcome",
        "announce",
        "readlists",
        "give",
        "areamodify",
        "setspawn",
        "controlserver",
        "tp",
        "time",
        "grantrevoke",
        "root",
        "commandplayer",
        "controlplayergroups",
        "manageplayergroups",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "LightBlue",
      "LandClaimAllowance": 2147483647,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 99999,
      "AutoGrant": true
    }
  ],

 

Recommended roles:

Spoiler
"Roles": [
    {
      "Code": "suplayer",
      "PrivilegeLevel": 0,
      "Name": "Survival Player",
      "Description": "Can use/place/break blocks in unprotected areas (priv level 0), create/manage player groups and chat. Can claim an area of up to 8 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "White",
      "LandClaimAllowance": 262144,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 3,
      "AutoGrant": false
    },
    {
      "Code": "crplayer",
      "PrivilegeLevel": 100,
      "Name": "Creative Player",
      "Description": "Can use/place/break blocks in all areas (priv level 100), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "gamemode",
        "freemove",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "LightGreen",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 6,
      "AutoGrant": false
    },
    {
      "Code": "sumod",
      "PrivilegeLevel": 200,
      "Name": "Survival Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 200), create/manage player groups, chat, kick/ban players and do serverwide announcements. Can claim an area of up to 4 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "crmod",
      "PrivilegeLevel": 500,
      "Name": "Creative Moderator",
      "Description": "Can use/place/break blocks everywhere (priv level 500), create/manage player groups, chat, kick/ban players, fly and set his own or other players game modes (= allows fly and change of move speed). Can claim an area of up to 40 chunks.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "controlplayergroups",
        "manageplayergroups",
        "chat",
        "areamodify",
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "kick",
        "ban",
        "gamemode",
        "freemove",
        "commandplayer",
        "announce",
        "readlists",
        "attackcreatures",
        "attackplayers",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 2,
      "Color": "Cyan",
      "LandClaimAllowance": 1310720,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 60,
      "AutoGrant": false
    },
    {
      "Code": "admin",
      "PrivilegeLevel": 99999,
      "Name": "Admin",
      "Description": "Has all privileges, including giving other players admin status.",
      "DefaultSpawn": null,
      "ForcedSpawn": null,
      "Privileges": [
        "build",
        "useblock",
        "buildblockseverywhere",
        "useblockseverywhere",
        "attackplayers",
        "attackcreatures",
        "freemove",
        "gamemode",
        "pickingrange",
        "chat",
        "kick",
        "ban",
        "whitelist",
        "setwelcome",
        "announce",
        "readlists",
        "give",
        "areamodify",
        "setspawn",
        "controlserver",
        "tp",
        "time",
        "grantrevoke",
        "root",
        "commandplayer",
        "controlplayergroups",
        "manageplayergroups",
        "selfkill"
      ],
      "RuntimePrivileges": [],
      "DefaultGameMode": 1,
      "Color": "LightBlue",
      "LandClaimAllowance": 2147483647,
      "LandClaimMinSize": {
        "X": 5,
        "Y": 5,
        "Z": 5
      },
      "LandClaimMaxAreas": 99999,
      "AutoGrant": true
    }
  ],

 

 

- Copying the world generation of our previously created game -

Spoiler

Now the good part begins, let's go to the world configuration within the section:

"WorldConfig": {
"Seed": null,
"SaveFileLocation": "/var/vintagestory/data/Saves/default.vcdbs",
"WorldName": "A new world",
"AllowCreativeMode": true,
"PlayStyle": "surviveandbuild",
"PlayStyleLangCode": "surviveandbuild-bands",
"WorldType": "standard",
"WorldConfiguration": null,
"MapSizeY": null,
"CreatedByPlayerName": null,
"DisabledMods": null,
"RepairMode": false
},

We add our seed, if we want we change the name of our world file and assign a name to our world in addition to a maximum construction height that can be from 256 to 320:

"WorldConfig": {
"Seed": "1234567890",
"SaveFileLocation": "/var/vintagestory/data/Saves/guideWorld.vcdbs",
"WorldName": "El mundo de las guias",
"AllowCreativeMode": true,
"PlayStyle": "surviveandbuild",
"PlayStyleLangCode": "surviveandbuild-bands",
"WorldType": "standard",
"WorldConfiguration": null,
"MapSizeY": 256,
"CreatedByPlayerName": null,
"DisabledMods": null,
"RepairMode": false
},

And finally we add our “WorldConfiguration”, where it says:

"WorldConfiguration": null,

We replace it with the same section of our local serverconfig.json, which we should have in the “AppData\Roaming\VintagestoryData” directory on our PC and it should look like this:

Example of “WorldConfig” section:

Spoiler
"WorldConfig": {
    "Seed": "1234567890",
    "SaveFileLocation": "/var/vintagestory/data/Saves/guideWorld.vcdbs",
    "WorldName": "El mundo de las guias",
    "AllowCreativeMode": true,
    "PlayStyle": "surviveandbuild",
    "PlayStyleLangCode": "surviveandbuild-bands",
    "WorldType": "standard",
    "WorldConfiguration": {
      "gameMode": "survival",
      "startingClimate": "temperate",
      "spawnRadius": "50",
      "graceTimer": "0",
      "deathPunishment": "drop",
      "droppedItemsTimer": "600",
      "seasons": "enabled",
      "playerlives": "-1",
      "lungCapacity": "40000",
      "daysPerMonth": "9",
      "harshWinters": "true",
      "blockGravity": "sandgravel",
      "caveIns": "off",
      "allowUndergroundFarming": false,
      "bodyTemperatureResistance": "0",
      "creatureHostility": "aggressive",
      "creatureStrength": "1",
      "playerHealthPoints": "15",
      "playerHungerSpeed": "1",
      "playerHealthRegenSpeed": "1",
      "playerMoveSpeed": "1.5",
      "foodSpoilSpeed": "1",
      "saplingGrowthRate": "1",
      "toolDurability": "1",
      "toolMiningSpeed": "1",
      "propickNodeSearchRadius": "6",
      "globalDepositSpawnRate": "1",
      "microblockChiseling": "stonewood",
      "allowCoordinateHud": true,
      "allowMap": true,
      "colorAccurateWorldmap": false,
      "loreContent": true,
      "clutterObtainable": "ifrepaired",
      "temporalStorms": "sometimes",
      "tempstormDurationMul": "1",
      "temporalStability": true,
      "temporalRifts": "visible",
      "temporalGearRespawnUses": "20",
      "temporalStormSleeping": "0",
      "worldClimate": "realistic",
      "landcover": "0.5",
      "oceanscale": "4",
      "upheavelCommonness": "0.3",
      "geologicActivity": "0.05",
      "landformScale": "1.0",
      "worldWidth": "1024000",
      "worldLength": "1024000",
      "worldEdge": "traversable",
      "polarEquatorDistance": "100000",
      "globalTemperature": "1",
      "globalPrecipitation": "1",
      "globalForestation": "0",
      "surfaceCopperDeposits": "0.12",
      "surfaceTinDeposits": "0.007",
      "snowAccum": "true",
      "allowLandClaiming": true,
      "classExclusiveRecipes": true,
      "auctionHouse": true
    },
    "MapSizeY": 256,
    "CreatedByPlayerName": null,
    "DisabledMods": null,
    "RepairMode": false
  },

 

 

 

Step #13 - Delete current world from server

Spoiler

When we start our server for the first time, a default world is automatically created, which we are now going to delete.

We will find the file in the “/var/vintagestory/data/Saves” directory of our VPS, the file will appear with the name “default.vcdbs”, once we find it we just have to select it and delete it.

Once we have deleted it, we will have to restart our server from the user “vintagestory”, a world will automatically be generated with the new configuration and we will be able to enjoy Vintage Story as we like.

 

And with this we would have our server operational and ready to use.

I am still going to continue expanding the guide to add a section on how to configure everything to our liking, as well as another section on how to install mods.

Soon I will add images for each step, so that everything becomes a little more intuitive and is not pure plain text.

 

¡IMPORTANT!

No soy ningún experto en VPS, Linux, o servidores de Vintage Story, solamente quería compartir lo que a mi me ha funcionado, puede que esto a ti no te sirva, o puede que seas un profesional y pienses que soy idiota y no tengo ni idea y estarías en lo correcto, I'm just sharing my limited knowledge.

Having said that, I hope it helps you and here I say goodbye.

Edited by Jefferzoonn
Fix command
  • Thanks 1
Link to comment
Share on other sites

  • 4 weeks later...

Hola!! esto también lo comente en tu video de Youtube pero lo compartiré acá para mas retroalimentación


Al momento de iniciar el servidor tuve problemas ya que simplemente no inicia. Primero seguí todos los pasos al pie de la letra, después trate de buscar alternativas buscando mi camino principalmente con los permisos de los archivos y todo eso pero nada me da un resultado satisfactorio y todos los intentos resultan en el mismo error que adjunto 

Edit: la carpeta mencionada ahi si aparece pero por alguna razón esta completamente vacía

Uso una VPS gratuita proporcionada por Oracle (eh hecho servidores de minecraft en esta plataforma anteriormente)

asdasd.PNG

Edited by Jack Play
  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
On 6/25/2024 at 5:19 PM, Jack Play said:

Hola!! esto también lo comente en tu video de Youtube pero lo compartiré acá para mas retroalimentación


Al momento de iniciar el servidor tuve problemas ya que simplemente no inicia. Primero seguí todos los pasos al pie de la letra, después trate de buscar alternativas buscando mi camino principalmente con los permisos de los archivos y todo eso pero nada me da un resultado satisfactorio y todos los intentos resultan en el mismo error que adjunto 

Edit: la carpeta mencionada ahi si aparece pero por alguna razón esta completamente vacía

Uso una VPS gratuita proporcionada por Oracle (eh hecho servidores de minecraft en esta plataforma anteriormente)

asdasd.PNG

Hola compañero! Este error sucede por que la primera vez que ejecutas el archivo server.sh debe ser desde el usuario root de tu VPS, ya que al ejecutarse por primera vez crea unas carpetas para las cuales necesita permisos de administrador, aunque si mal no recuerdo ya comentaste en YouTube que habías encontrado la solución, cierto? De ser a si te agradecería si pudieras dejar aquí un poco de información de como lo solucionaste.

Un saludo y muchísimas gracias por tu comentario!

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.