Launching Alpine Faction Bots: Difference between revisions
(Created page with "{{RF1Tutorial|Goober}} This step-by-step guide will walk you through setting up '''headless bots''' on a '''Red Faction 1''' https://alpinefaction.com Alpine Faction v1.3 dedicated server. Headless bots are Alpine Faction clients running with no rendering or sound, controlled remotely by the dedicated server. Because they connect like real players, the server gets bots that move, fight, and use the network exactly as a human would - without the dedicated server havin...") |
No edit summary |
||
| Line 1: | Line 1: | ||
{{RF1Tutorial|Goober}} | {{RF1Tutorial|Goober}} | ||
This step-by-step guide will walk you through setting up '''headless bots''' on a '''Red Faction 1''' | This step-by-step guide will walk you through setting up '''headless bots''' on a '''Red Faction 1''' [https://alpinefaction.com Alpine Faction] v1.3 dedicated server. Headless bots are Alpine Faction clients running with no rendering or sound, controlled remotely by the dedicated server. Because they connect like real players, the server gets bots that move, fight, and use the network exactly as a human would - without the dedicated server having to simulate them locally. | ||
'''NOTE:''' This guide assumes you have already set up an Alpine Faction dedicated server. If you have not, please see: | '''NOTE:''' This guide assumes you have already set up an Alpine Faction dedicated server. If you have not, please see: | ||
Latest revision as of 19:44, 28 April 2026
| Tutorial: Launching Alpine Faction Bots Prepared by Goober. |
This step-by-step guide will walk you through setting up headless bots on a Red Faction 1 Alpine Faction v1.3 dedicated server. Headless bots are Alpine Faction clients running with no rendering or sound, controlled remotely by the dedicated server. Because they connect like real players, the server gets bots that move, fight, and use the network exactly as a human would - without the dedicated server having to simulate them locally.
NOTE: This guide assumes you have already set up an Alpine Faction dedicated server. If you have not, please see:
Overview
- The dedicated server does not run the bots locally. Instead, each bot is a separate Alpine Faction process running on a computer that can reach the server.
- Each bot client connects to the server using the normal multiplayer connection flow, but is identified as a bot via a shared secret it sends in its join request.
- The dedicated server controls each bot by sending it a profile (personality, skill, name, character) and steering its behaviour over the network.
- By default, headless bots run with no rendering and no sound, so resource usage per bot is low.
To run any number of headless bots, you need:
- A dedicated server configured with a bot shared secret (and optionally one or more bot profiles).
- One Alpine Faction client process per bot, launched with the matching secret and the server's address.
Step 1: Configure the dedicated server
Open your dedicated server's ADS config file (the one you pass to AlpineFactionLauncher.exe with -ads).
Add a bot_shared_secret to the top-level (root) section. This is any 32-bit unsigned integer; treat it like a password - clients that don't send the matching secret will be rejected as bot clients.
bot_shared_secret = 1234567890
IMPORTANT: The shared secret value must be greater than 0. A value of 0 disables bot authentication entirely.
IMPORTANT: The number of bots that will be filled in is capped by your server's ideal_player_count. If you want N bots, make sure ideal_player_count is at least N. Bots beyond that count will be rejected on join.
Step 2: (Optional) Create bot profiles
You can leave the rest of the config alone - bots that connect with no profiles configured will use sensible defaults (the balanced personality and the average skill preset, with a randomized name and character).
For more variety, you can define one or more bot profile ADS files and reference them from your server config. Each connecting bot is assigned a profile slot in round-robin fashion.
Step 2a: Write a profile file
Create a new file, e.g. bots/aggressive_alice.toml, next to your dedicated server config:
# Identity (both optional - leave empty to randomize from the default identity pool) player_name = "Alice" mp_character = "miner1" # Behavioural preset (see "Available presets" below) personality_preset = "aggressive" skill_preset = "hard" # Optional: tweak individual personality fields [personality_overrides] # Many fields are available. This guide will be expanded later to contain them. # Optional: tweak individual skill fields [skill_overrides] # Many fields are available. This guide will be expanded later to contain them. # Optional: enable specific quirks [quirks] # Many fields are available. This guide will be expanded later to contain them.
Step 2b: Reference profiles from the server config
In your main ADS server config, add a bot_profiles array listing the relative paths to each profile file:
bot_profiles = [
"bots/aggressive_alice.toml",
"bots/sniper_bob.toml",
"bots/balanced_charlie.toml",
]
Paths are resolved relative to the directory containing your server's ADS config.
Available presets
Personality presets: balanced, aggressive, defensive, tactician, berserker, objective, sniper, guerrilla, collector, brawler, destroyer
Skill presets: beginner, easy, average, hard, expert, nightmare
If a profile omits personality_preset it defaults to balanced. If it omits skill_preset it defaults to average.
Step 3: Start the dedicated server
Launch your dedicated server normally:
AlpineFactionLauncher.exe -ads my_server.toml -port PORT
Watch the server console output. You should see lines like:
Bot shared secret: 1234567890 Loading bot profile: .../bots/aggressive_alice.toml Bot player name: Alice Bot personality preset: aggressive Bot skill preset: hard
If you don't see your bot configuration applied, double-check your ADS file for syntax errors and confirm the file paths in bot_profiles resolve correctly.
Step 4: Launch a headless bot client
For each bot you want, start a separate AlpineFactionLauncher.exe process with these arguments:
AlpineFactionLauncher.exe -url rf://IP:PORT -bot 1234567890
The arguments are:
- -url rf://IP:PORT - The address of your server. Use rf://127.0.0.1:7755 if the bot is running on the same machine as the server (replace 7755 with whatever port your server uses).
- -bot <secret> - Enables headless bot mode. The number must match the bot_shared_secret from your server config exactly.
- -noquit (optional) - Prevents the bot process from quitting automatically when it disconnects.
When the bot is accepted, you'll see it appear in the server's player list (with the name from its assigned profile, or a randomized default name if no profiles are configured).
Running multiple bots
To run more than one bot, simply launch AlpineFactionLauncher.exe multiple times with the same -bot arguments. Each invocation creates a separate process.
Each bot will be assigned the next available profile slot (round-robin), and bots beyond your server's ideal_player_count will be rejected.
Additional information
Debug rendering
If you want to see what a bot is doing - for development, debugging, or just curiosity - replace -bot with -debugbot:
AlpineFactionLauncher.exe -url rf://127.0.0.1:7755 -debugbot 1234567890
This launches a normal rendered Alpine Faction window controlled by the server, with bot debug overlays enabled. Use it sparingly - it's much heavier than a headless bot.
If you don't set bot_shared_secret on your server, -bot/-debugbot clients will not be accepted as bots.
Bot count limit
The server will reject incoming bots once the connected bot count reaches ideal_player_count. Bot slots also free up automatically when bots disconnect. To run a server with more bots, raise ideal_player_count in your server rules.
Still need help?
- If you run into issues setting up headless bots, it's best to join the Red Faction Community Discord for some assistance.