Install a vanilla FXServer
A vanilla setup runs the server directly from its data directory. It does not require a roleplay framework or a database. Use txAdmin quick start instead when you want managed configuration and recipe deployment.
Register a server key in the Cfx Portal . Choose a recommended artifact for your operating system and Legacy or Enhanced from the official server download page . Do not hardcode an old artifact URL as “latest.” The upstream installation source distinguishes binary and server-data folders; preserve that separation during updates.
Windows
Install Git to clone the base resources and an archive utility capable of the downloaded format. Enhanced also requires the Visual C++ redistributable linked by the official onboarding guide. The Legacy archive is named server.7z; the Enhanced download uses the cfx-server_win_x64 package naming. Inspect the actual downloaded extension before extracting it.
Create C:\FXServer\server for binaries and extract the selected artifact there. In a command prompt:
cd /d C:\FXServer
git clone https://github.com/citizenfx/cfx-server-data.git server-data
cd /d C:\FXServer\server-dataCreate server.cfg in server-data, not in the binary directory. For Legacy, launch from that data directory:
C:\FXServer\server\FXServer.exe +exec server.cfgEnhanced names the executable cfx-server.exe instead. Use that filename for the corresponding extracted artifact; do not mix Legacy executables and Enhanced resources. cd /d also changes drives, unlike plain cd in cmd.exe.
Linux
The upstream guide describes Linux as a courtesy port with distribution/diagnostic limitations. Choose it with that support boundary understood. Install Git and an xz-capable extractor (xz-utils on Debian-family systems), then download the chosen artifact from the official page.
mkdir -p "$HOME/FXServer/server"
git clone https://github.com/citizenfx/cfx-server-data.git "$HOME/FXServer/server-data"Extract the downloaded archive into server. For a Legacy fx.tar.xz, after placing it there:
cd "$HOME/FXServer/server"
tar xf fx.tar.xz
cd "$HOME/FXServer/server-data"
bash "$HOME/FXServer/server/run.sh" +exec server.cfgEnhanced downloads use cfx-server-linux_x64 naming. Use the launch files and format in that actual package, not a renamed Legacy archive. Run as a dedicated non-root account with access to its own directories; do not grant global write permissions to solve a path error.
Minimal server.cfg
This intentionally starts the stock basic mode rather than a framework. Replace the private key placeholder and public descriptions. Do not commit the real key.
endpoint_add_udp "0.0.0.0:30120"
endpoint_add_tcp "0.0.0.0:30120"
sv_licenseKey "REPLACE_WITH_PRIVATE_SERVER_KEY"
sv_hostname "Local development server"
sets sv_projectName "Documentation Lab"
sets sv_projectDesc "A private test of the stock server resources."
sets locale "en-US"
sv_maxclients 8
set onesync on
sv_scriptHookAllowed false
sv_endpointPrivacy true
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap
ensure rconlogConfirm each resource exists in the downloaded stock-resource revision. A custom framework may own spawning/session behavior and require a different start list. Do not run two spawn controllers together merely because both examples use ensure.
A RedM installation uses the appropriate RedM-compatible resources and set gamename rdr3; changing only that variable does not convert GTA models or GTA-only scripts. For Enhanced voice and asset changes, follow voice setup and migration requirements.
First connection and failure diagnosis
On a local test client, use F8 connect 127.0.0.1:30120. Verify a clean server startup, listed resources, successful connection and an actual spawn. Only then test from another network through deliberately configured TCP/UDP access. Keep administration ports private.
| Symptom | First check |
|---|---|
| No resources found / failed to start resources | Process working directory is server-data, and resources are not nested under an extra ZIP directory. |
| Nothing starts and connection times out | +exec server.cfg is present and resolves to the intended file. |
| No license key specified | Correct config path and execution first, then the private key entry. |
| Bind failure | Another process already owns the address/port or the chosen address is not local. |
| Local join works but remote join fails | TCP/UDP, NAT, provider firewall and proxies, not an unrelated framework change. |
| Very slow Windows startup | Follow platform support diagnostics rather than permanently disabling security software. |
For updates, stop the process, back up data/configuration, replace only binaries and test staging before cutover. See artifact support policy and backup planning. This page describes a reproducible installation; it does not claim an FXServer process was launched during a website build.