Salta ai contenuti

Installazione

Preferisci un video? Guarda il tutorial di installazione su YouTube.

Non hai ancora un server? Leggi prima Hosting. Per qualcosa di economico che lo fa girare bene, consigliamo 24Racks.

Questa è l’installazione pulita: mondo nuovo, nessun vecchio database. Se stai spostando un server esistente su un altro PC, vedi Aggiornamento e database per gli strumenti di backup e importazione.

La tua cartella server-data finisce così:

BeyondSurvival/
├── server.cfg # from server.cfg.example
├── server.private.cfg # from server.private.cfg.example, NEVER share this
├── resources/
│ ├── [beyond]/ # the framework, all bs_* resources
│ ├── [map]/ [compat]/ [prototypes]/ [third-party]/
│ ├── [map]/[the_apocalypse_project]/ # the map, separate download
│ ├── oxmysql/
│ └── vMenu/ ... # optional
└── tools/ # PowerShell helpers (Windows)

Gli artifact (FXServer.exe) stanno altrove, ad esempio C:\FXServer. Non metterli dentro la cartella server-data.

Se hai il pacchetto di release è già fatto così. Per costruirne uno tu da una copia di sviluppo:

Terminal window
powershell -ExecutionPolicy Bypass -File .\tools\Prepare-PortableRelease.ps1 -Destination D:\BeyondSurvival-Release

Lascia fuori di proposito server.private.cfg, cache/, db/, backup e log.

Installa MariaDB, poi crea un database vuoto e un utente per esso. Su Windows l’helper fa entrambe le cose:

Terminal window
tools\setup-database.bat

Oppure a mano:

CREATE DATABASE beyondsurvival CHARACTER SET utf8mb4;
CREATE USER 'beyond'@'localhost' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON beyondsurvival.* TO 'beyond'@'localhost';
FLUSH PRIVILEGES;

Non importare nessun file .sql. bs_core esegue le sue migrazioni al primo avvio (da bs_core/sql/001_core_schema.sql a 030_user_language.sql, vedi Migrazioni del database) e registra ognuna nella tabella bs_migrations, quindi non girano mai due volte. database/full_schema.sql c’è solo se vuoi guardare lo schema fuori dal server.

Copia server.private.cfg.example in server.private.cfg e compilalo:

sv_licenseKey "your keymaster key"
set mysql_connection_string "mysql://beyond:[email protected]:3306/beyondsurvival?charset=utf8mb4"
set steam_webApiKey ""

server.cfg lo carica alla prima riga con exec server.private.cfg. Tienilo fuori da git e da qualsiasi zip che mandi ad altri.

Copia server.cfg.example in server.cfg. Cambia hostname, tag, sv_maxclients e i principal dello staff in fondo (vedi Admin e permessi).

L’ordine di ensure conta per alcuni. Prima oxmysql, bs_core prima di ogni altro bs_*, e la parte degli zombie dopo ciò che legge. Questo è l’ordine con cui gira il server live:

ensure oxmysql
ensure bs_loading
ensure bs_core # must stay first of the bs_*
ensure bs_multichar
ensure bs_admin
ensure bs_config
ensure bs_assets
ensure bs_ui
ensure bs_chat # replaces the stock chat, don't ensure both
ensure bs_radial
ensure bs_bodily
ensure bs_interactions
ensure bs_inventory
ensure bs_skills
ensure bs_parkour
ensure bs_fighting
ensure bs_fpdebug # fighting and parkour test tools, admin only
ensure bs_economy
ensure bs_medical
ensure bs_emotes
ensure bs_scenes
ensure bs_weapons
ensure bs_vehicles
ensure bs_menu
ensure bs_vip
ensure bs_building
ensure bs_crafting
ensure bs_recycler
ensure bs_mining
ensure bs_stash
ensure bs_extraction
ensure bs_factions
ensure bs_faction_bases
ensure bs_scoreboard
ensure bs_world
ensure nutria_crawl_anims # before bs_zombies, crawlers need the anim dict
ensure bs_zombiepeds
ensure bs_zombies
ensure bs_zombiesfx
# voice and radio: bs_voice replaces pma-voice
stop pma-voice
setr voice_useNativeAudio true
setr voice_useSendingRangeOnly true
ensure bs_voice
ensure bs_radio
ensure bs_missions
ensure bs_atlas # after bs_zombies, it calls its callbacks
ensure bs_traders # reads bs_zombies safe zones
ensure bs_jobs
ensure nodes # sector map web panel
ensure bs_boosters
ensure bs_gadgets
ensure bs_drugs
ensure bs_events
ensure bs_operations
ensure bs_darkzone # off until switched on in F1 > Dark Zone
ensure bs_guard
ensure bs_pause
ensure bs_bodycam
ensure bs_tutorial
ensure bs_pass
ensure bs_survivor
ensure bs_survivor_link
## ensure bs_cinecam # optional, remove ## to enable
## ensure bs_esx_bridge # ESX bridge, partial, remove ## to try it
## ensure qbx_core # Qbox bridge, partial, remove ## to try it
## ensure [the_apocalypse_project] # separate download, see bs19.org/map
ensure chadada_apocalypse_cars

Non fare ensure chat mentre bs_chat è attivo, avresti due caselle di chat e ogni messaggio doppio. E non fare ensure di mapmanager/spawnmanager/sessionmanager a meno che tu non abbia davvero installato cfx-server-data, bs_core e bs_multichar gestiscono da soli lo spawn.

Terminal window
powershell -ExecutionPolicy Bypass -File .\tools\Test-Deployment.ps1

Non avviare finché tutti i controlli non passano.

Con txAdmin: esegui FXServer.exe, scegli Existing Server Data e punta alla tua cartella. Attiva OneSync nelle impostazioni di txAdmin.

Senza txAdmin:

Terminal window
C:\FXServer\FXServer.exe +exec "D:\BeyondSurvival-Release\server.cfg"

Guarda la console. Vuoi vedere oxmysql, bs_core (stampa le migrazioni applicate al primo avvio), bs_factions, bs_menu e la mappa partire senza errori rossi. Poi entra, crea un personaggio, apri l’inventario (I), apri il menu delle fazioni, premi F1 e F10 come staff per controllare che i permessi funzionino.

La resource nodes stampa in console un URL con una chiave di accesso al primo avvio. È il pannello web della mappa dei settori, copialo e salvalo tra i preferiti.

BS19 funziona bene anche sulla mappa normale. Se vuoi il mondo post-apocalittico, installa The Apocalypse Project, la mappa compagna gratuita.

  1. Scarica lo zip da bs19.org/map (ultima release, o i file più recenti del branch principale finché non c’è una release).

  2. Estrailo in resources/[map]/, così ottieni resources/[map]/[the_apocalypse_project]/.

  3. Aggiungi la riga ensure nel server.cfg (o togli il # se c’è già commentata):

    ensure [the_apocalypse_project]
  4. Riavvia il server.

Passaggi completi, ordine di caricamento e IPL: Installazione e ordine di caricamento.