# Fika Headless Client Setup — Dedicated Raid Host for SPT-Tarkov (/docs/escape-from-tarkov/headless-client)







import { Step, Steps } from 'fumadocs-ui/components/steps';

By default in Fika, one of the players **hosts** each raid. That player carries all the AI and networking load, everyone else gets host-advantage lag, and when the host leaves, the raid ends.

The **headless client** fixes that: a dedicated, player-less Tarkov instance that hosts raids on its own. Combined with an always-on XGamingServer SPT-Fika backend, it's the closest SPT-Fika gets to a true dedicated Tarkov server.

The one thing everyone gets wrong [#the-one-thing-everyone-gets-wrong]

<Callout type="warn">
  **The headless client is not a server component. It is a full copy of Escape from Tarkov.**

  It needs the complete game files (\~50 GB), a real CPU and a lot of RAM — it just runs with graphics disabled. It **cannot** run inside your SPT-Fika server, and there is no button in the panel that turns one on. It always runs on a second machine.
</Callout>

So a working headless setup is always two pieces:

| Piece               | What it does                                        | Where it runs                           |
| ------------------- | --------------------------------------------------- | --------------------------------------- |
| **SPT-Fika server** | Backend: profiles, progression, the Fika server mod | Your XGamingServer server, 24/7         |
| **Headless client** | Loads the map and hosts the raid                    | Your own PC, or a second server with us |

Requirements for the headless machine [#requirements-for-the-headless-machine]

These are [Fika's own recommendations](https://wiki.project-fika.com/advanced-features/headless-client), not ours:

* A modern CPU with at least **4 cores @ 4 GHz+**
* **32 GB RAM** (16 GB may work, with reduced performance on big maps like Streets and Lighthouse)
* Around **120 GB free SSD/NVMe** space to start with. **HDD is not supported**
* A GPU is **not** required

**A Windows PC is required either way** — that's where the headless client gets built (Part 2). Once it's built you can either keep running it there, or upload it to a hosted headless server (Part 3).

<Callout type="warn">
  Fika explicitly warns that **most VPS products will not work** — they don't sustain the clock speeds the headless client needs, and Fika does not support Linux hosts. Our headless servers run on bare-metal Ryzen 9 nodes rather than shared VPS hardware, but it's a configuration Fika themselves won't support, so treat the hosted option as ours to support, not theirs.
</Callout>

<Callout type="info">
  Set the headless client up **before** you add client mods. Most mods break it, and untangling that afterwards is much harder than starting clean. See [Mods on the headless client](#mods-on-the-headless-client) below.
</Callout>

***

Part 1 — Generate a headless profile on your server [#part-1--generate-a-headless-profile-on-your-server]

The headless client needs a dedicated profile on your SPT-Fika server. Your XGamingServer panel creates that for you.

<Steps>
  <Step>
    Set "Fika Headless Profiles" [#set-fika-headless-profiles]

    In the [panel](https://panel.xgamingserver.com), open your SPT-Fika server, go to the **Startup** tab and set **Fika Headless Profiles** to the number of headless hosts you want (usually `1`; you can go up to `5`).

        <img alt="SPT-Fika server Startup tab in the XGamingServer panel, showing the Fika version, Fika mode and headless profile options" src={__img0} placeholder="blur" />

    Each profile can host **one raid at a time**. Two profiles means two simultaneous headless-hosted raids — and two headless client machines to run them.
  </Step>

  <Step>
    Restart the server [#restart-the-server]

    Restart from the **Console** tab. On boot the server writes the value into `fika.jsonc` and generates the profiles.
  </Step>

  <Step>
    Collect your profile ID and backend URL [#collect-your-profile-id-and-backend-url]

    In the **Files** tab, open the `SPT` folder and browse to:

    ```
    SPT/user/mods/fika-server/assets/scripts/<profileId>/HeadlessConfig.json
    ```

        <img alt="The XGamingServer file manager on an SPT-Fika server, showing the SPT folder in the container root" src={__img1} placeholder="blur" />

    There's one folder per profile. Inside you'll find something like:

    ```json
    {
      "ProfileId": "6a68bfedefa3f60010f5f901",
      "BackendUrl": "https://127.0.0.1:2489",
      "StartMinimized": false
    }
    ```

    Keep this file open — you'll need both values shortly.
  </Step>

  <Step>
    Fix the backend URL [#fix-the-backend-url]

    `BackendUrl` is generated from the `headless.scripts.forceIp` setting, which defaults to **`127.0.0.1`** — the server pointing at itself. Since your headless client runs on a different machine, that address is wrong for it.

    In **Files**, open:

    ```
    SPT/user/mods/fika-server/assets/configs/fika.jsonc
    ```

    Find `headless` → `scripts` → `forceIp` and set it to your server's own address and port, exactly as your group connects:

    ```json
    "scripts": {
      "generate": true,
      "forceIp": "https://123.45.67.89:2489"
    }
    ```

    Save and restart. The regenerated `HeadlessConfig.json` will now carry the correct URL.
  </Step>
</Steps>

<Callout type="warn">
  **Don't hand-edit these three sections of `fika.jsonc`:** `http`, `natPunchServer`, and `headless.profiles.amount`. The panel rewrites them from your **Startup** tab fields on every boot, so manual changes are silently reverted at the next restart. Everything else in the file — including `forceIp` — is yours to edit and is preserved.
</Callout>

***

Part 2 — Build the headless client on a Windows PC [#part-2--build-the-headless-client-on-a-windows-pc]

This step is required whichever way you end up running it. A headless client is a normal Windows SPT + Fika install with the headless add-on layered on top — it has to be assembled on Windows, by the official installer, against your own copy of the game.

<Callout type="info">
  **How this differs from Fika's official guide.** [Fika's walkthrough](https://wiki.project-fika.com/advanced-features/headless-client) puts the SPT server *and* the headless client on the same machine, so the installer can create the headless profile locally. With a hosted backend they're split: your server generates the profile, and you paste it into the headless client (step 5 below). Everything else is identical.
</Callout>

<Steps>
  <Step>
    Install Escape from Tarkov with the BSG launcher [#install-escape-from-tarkov-with-the-bsg-launcher]

    On the headless machine, install the retail game through the official BSG launcher. This is how Fika confirms you own the game — **skip it and nothing will work.**
  </Step>

  <Step>
    Install SPT [#install-spt]

    Use the [SPT Installer](https://hub.sp-tarkov.com/files/file/672-spt-installer/) into a **separate folder**. Never install SPT inside your official Escape from Tarkov folder.

    Match the SPT version your server runs — you can read it from the **SPT Version** field on the panel's Startup tab.
  </Step>

  <Step>
    Run Fika-Installer [#run-fika-installer]

    Download [Fika-Installer](https://github.com/project-fika/Fika-Installer/releases/latest) and copy `Fika-Installer.exe` to the **root** of that SPT folder (not inside the `SPT` subfolder).

    Run it and choose **Install Fika**. It asks for admin rights so it can add firewall rules — that's expected.
  </Step>

  <Step>
    Install the headless add-on [#install-the-headless-add-on]

    Run `Fika-Installer.exe` again, choose **Advanced options** → **Install Fika Headless**, then **Create a new headless profile**, and let it finish.

    The profile it creates points at the SPT install on *that* machine, not at your hosted server — you'll replace it in the next step. Let it run anyway: it's what generates the `HeadlessConfig.json` you're about to edit.
  </Step>

  <Step>
    Point the headless client at your server [#point-the-headless-client-at-your-server]

    In the **root folder of the headless install** you'll find a `HeadlessConfig.json`. Replace its contents with the values from your server's copy (Part 1, steps 3–4):

    ```json
    {
      "ProfileId": "6a68bfedefa3f60010f5f901",
      "BackendUrl": "https://123.45.67.89:2489",
      "StartMinimized": false
    }
    ```

    `ProfileId` must be one your **server** generated, and `BackendUrl` must be the address your group uses to reach the server. This is the step that connects the two halves — get it wrong and the headless client either won't start or won't appear in game.
  </Step>

  <Step>
    Launch it once [#launch-it-once]

    Run `FikaHeadlessManager.exe` from the headless install folder. Two console windows open — the manager and the headless client itself. **Leave both open.** The client is ready when console activity stops.

    Do **not** run `SPT.Launcher.exe` on the headless machine. It's a host, not a player.
  </Step>
</Steps>

***

Part 3 — Decide where it runs [#part-3--decide-where-it-runs]

You now have a working headless client. It can stay on that PC, or move onto a server here.

Option A — leave it on your own PC [#option-a--leave-it-on-your-own-pc]

Nothing more to do. Start `FikaHeadlessManager.exe` whenever you want a headless host available. This is Fika's officially supported configuration and the one they recommend.

The trade-off is uptime: that PC has to be on and awake for anyone to use the headless host.

Option B — put it on a hosted headless server [#option-b--put-it-on-a-hosted-headless-server]

Order a second server on our **EFT SPT Headless Client** type, then upload the headless install you just built.

<Callout type="warn">
  **Upload the folder you prepared above — not a fresh copy of the game.** The container runs the client, it doesn't build it. A retail Tarkov copy without `BepInEx` and the Fika plugins will not start.
</Callout>

<Steps>
  <Step>
    Upload over SFTP [#upload-over-sftp]

    Connect with the SFTP details in the panel and upload your prepared headless folder into `/tarkov`. It's roughly 50 GB, so expect this to take a while — use a real SFTP client (WinSCP, FileZilla), not the web file manager.

    When it's done, `/tarkov` must contain at least:

    ```
    /tarkov/EscapeFromTarkov.exe
    /tarkov/BepInEx/plugins/Fika.Core.dll
    /tarkov/BepInEx/plugins/Fika.Headless.dll
    ```
  </Step>

  <Step>
    Set the connection details [#set-the-connection-details]

    On the **Startup** tab:

    | Field        | Value                                                    |
    | ------------ | -------------------------------------------------------- |
    | `PROFILE_ID` | the `ProfileId` from your server's `HeadlessConfig.json` |
    | `SERVER_URL` | your SPT-Fika server's IP or hostname (no `http://`)     |
    | `PORT`       | your SPT-Fika server's port, e.g. `2489`                 |
    | `HTTPS`      | `true` for SPT 3.11 and newer (including 4.x)            |
  </Step>

  <Step>
    Start it [#start-it]

    The console shows `Connecting to server ...`, then the client loads. It's ready when you see:

    ```
    [Info   :Fika.HeadlessWebSocket] Connected to HeadlessWebSocket
    ```

    Set `AUTO_RESTART_ON_RAID_END` to `true` if you want it to recycle itself after every raid.
  </Step>
</Steps>

<Callout type="info">
  **Sizing.** Fika recommends 16 GB RAM as a floor, and a Linux host needs meaningfully more than a Windows one for the same raid. Big maps (Streets, Lighthouse) are the ones that will find your limit. Talk to us before ordering so we put you on the right plan.
</Callout>

***

Part 4 — Host a raid on the headless client [#part-4--host-a-raid-on-the-headless-client]

<Steps>
  <Step>
    Start your own game normally [#start-your-own-game-normally]

    On your gaming PC, launch `SPT.Launcher`, log in to your XGamingServer server and start the game as usual.
  </Step>

  <Step>
    Host with the headless host [#host-with-the-headless-host]

    Go to **Raids** → **Host Raid**, tick **Use Headless Host**, and press **Start**. The headless client loads the map.
  </Step>

  <Step>
    Everyone joins, then start [#everyone-joins-then-start]

    Your friends join once the lobby appears. When everyone's in, press **Start Raid**. Nobody in the group is the host — the headless client is.
  </Step>
</Steps>

Mods on the headless client [#mods-on-the-headless-client]

The headless client is heavily modified and very sensitive to plugins. **Do not simply copy your normal Fika mod folder onto it.**

**✅ Generally safe**

* AI mods (SAIN)
* Spawn mods (MOAR, DONUTS)
* Mods that explicitly state headless support (That's Lit, UIFixes)
* Mods that change in-raid behaviour — custom quest zones, inventory (VCQL, Pack'n'Strap)

**❌ Do not install**

* RAM/VRAM cleaner mods
* Performance mods (DeClutter and similar)
* Anything not in the list above

Troubleshooting [#troubleshooting]

**"Use Headless Host" is greyed out**
The headless client isn't reachable. Check `BepInEx/LogOutput.log` on the headless machine for incompatible-mod warnings, confirm `BackendUrl` in `HeadlessConfig.json` points at your server's real address, and remember each profile can only host **one raid at a time** — if it's already in a raid, the box greys out.

**The headless client won't load**
Press `G` during `FikaHeadlessManager.exe` startup to launch it in graphics mode and watch what fails. If that's not possible, read the timestamped `errors.log` in the SPT log folder. This is usually a broken plugin, or a client plugin missing that a server mod requires.

**Crashes or errors when joining a headless raid**
Version drift. Re-run Fika-Installer on *both* installs — **Update Fika** on your normal folder, **Advanced** → **Update Fika Headless** on the headless one — and make sure everyone in the group is on the same Fika and SPT versions. See [matching versions](/docs/escape-from-tarkov/match-versions).

**No `HeadlessConfig.json` on the server**
`Fika Headless Profiles` is still `0`, or the server hasn't been restarted since you changed it. Set it to `1` or more and restart.

**Hosted headless server exits immediately with "EFT Binary not found"**
`/tarkov` doesn't contain `EscapeFromTarkov.exe`, or the files landed one folder too deep — check for `/tarkov/<yourfolder>/EscapeFromTarkov.exe` and move them up a level.

**Hosted headless server starts but never reaches "Connected to HeadlessWebSocket"**
Usually `SERVER_URL`, `PORT` or `HTTPS` on the Startup tab. `SERVER_URL` takes a bare IP or hostname with no `http://`, `PORT` is your **SPT server's** port (not the headless server's own), and `HTTPS` must be `true` on SPT 3.11+.

Related [#related]

* [How to set up Fika co-op](/docs/escape-from-tarkov/fika-co-op-setup)
* [Fika config reference (fika.jsonc)](/docs/escape-from-tarkov/fika-config-reference)
* [Server vs client mods](/docs/escape-from-tarkov/server-vs-client-mods)
* [Match your SPT and Fika versions](/docs/escape-from-tarkov/match-versions)
* [Troubleshooting Fika](/docs/escape-from-tarkov/troubleshooting)
