> For the complete documentation index, see [llms.txt](https://wiki.halosdev.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.halosdev.com/halos-player-spoofer/setup-guide/velocity-bungeecord-setup.md).

# Velocity/Bungeecord Setup

### Step 1 - Enable the plugin on proxy.

First you will need to place the HalosPlayerSpoofer plugin on the Velocity or Bungeecord server. Configure the Redis or Mysql DB in the config.yml

#### MySql Example

```yaml
 database:
   # Possible values: SQL, REDIS or NONE
  type: SQL
  sql:
    url: jdbc:mysql://localhost:3306/spoofer
    username: root
    password: password
```

#### Redis Example

```yaml
 database:
  # Possible values: SQL, REDIS or NONE
  type: REDIS
  redis:
    url: redis://loca1host:6379
    password: password
```

After you input your Database information, restart the Velocity/Bungeecord server. Ensure there are no errors. Then move onto Step 2.

### Step 2 - Connect Spigot Server

In the configuration of the spigot server, toggle on the proxy mode setting to **true.**

```yaml
  # If you wish to run Spoof within a proxy,
  # enable this and specify controller settings below.
  proxy-mode: true
```

Next, you must also specify your **server-id.** This **server-id** is **case sensitive.** You must type **exactly** what is in your **velocity.toml/config.yml(bungeecord)** proxy server files. To what is specified for the spigot server you are configuring the spoofer on. If you do not set the correct id or typed incorrectly the sync will **not** work.

```yaml
  # This is your unique server identifier, this MUST be
  # set if using a proxy - e.g. BungeeCord.
  server-id: Test
```

Finally, similar to the setting up the proxy configuration, you will need to connect the MySQL or Redis DB.

#### MySql Example

```yaml
 database:
    # Possible values: SQL, REDIS or NONE
    type: SQL
    sql:
      url: jdbc:mysql://localhost:3306/spoofer
      username: root
      password: password
```

#### Redis Example

```yaml
database:
  # Possible values: SQL, REDIS or NONE
  type: REDIS
  redis:
    url: redis://loca1host:6379
    password: password
```

Once you configure all the settings. You must restart your spigot server, and ensure there are no errors.

### Step 3 - Repeat

Once you have configured both Proxy and Spigot server. You will be able to see Fake player counts reflect in the proxy player counts. If you have multiple spigot servers you would like to have fake players on, repeat [Step 2](#step-2-connect-spigot-server) on all your additional servers. Ensure that the **server-id is not the same** for multiple spigot servers or else the sync **will not work.**&#x20;

### Step 4 - Configure Command

Commands will now be processed from the proxy instance. You should configure a custom command name. Found in **halosplayerspoofer/config.yml**

```yml
# Disguise the plugin how ever you wish.
# You can Change all the following fields below.
plugin-disguise:
  # When running a network, it is recommended to set this to the same value on each server AND proxy.
  spoof-command: spoof

```

### Step 5 - Configure Server Fallbacks

When one of your spigot servers shut down, configure the fall back server to where fakes will go to once the spigot server they are on shuts down.

```yml
 fallback-server-ordering:
  - spoof
  - spoof2

```

### Step 6 - Configure Spigot Server Fluctuation

Due to HalosPlayerSpoofer 3.0 update, all fluctuation is now configured and controlled on the proxy instance.&#x20;

If you navigate to **halosplayerspoofer/servers** you will find a config file for each spigot server on your network.

<figure><img src="/files/nwGyIH91UZulvmI220oV" alt=""><figcaption></figcaption></figure>

HalosPlayerSpoofer must be installed on the spigot server in order to work with the server you configure.&#x20;

If you choose to not spoof on a spigot server then you **don't need to add** the plugin to that spigot server and you can **disable** the server in the proxy fluctuation configuration by setting both these options to false.

```yml
# Whether or not this is a primary server, e.g. a fake player joining the network may join this server first (set true for lobby servers)
primary-server: false

# The default fluctuation options, if no day/time specific config is active.
options:
  # If the fluctuation module should be active during this time.
  active: false

```

Once you specify all the proper configurations run **/spoof reload** to reload the configurations and apply your new settings with out having to restart the proxy instance.

### Step 7 - Configuring Lobby funnel to Gamemode. *(If you don't want this look at Step 8.)*

This is if you would like Fake players to join through the lobby server then join the Gamemode.&#x20;

*HPS may detect a Lobby server and automatically configure the default lobby server configurations.*

#### Set your lobby server as the primary server.

Make sure other Gamemode fluctuation files are not set to primary or else fakes will bypass the lobby.

```yaml
# Whether or not this is a primary server, e.g. a fake player joining the network may join this server first (set true for lobby servers)
primary-server: true
```

### Life Span

In your Lobby fluctuation file set the lifespan to a short time. This will be how long fake players will be on your lobby server before going to the Gamemode.

```yaml
 # The minimum time a fake player stays online.
  min-lifespan: 1m

  # The maximum time a fake player stays online.
  max-lifespan: 3m
```

### Move Chance

Set this to 100. Or a high chance, will make it so when the fake leaves the server due to the lifespan or other reasons it will move to a gamemode.

```yml
  # The chance of whether to move the player to a different server if it leaves this server (0-100). Only used when running on the proxy.
  move-chance: 100
```

### Configuring Gamemodes.

Once you finish configuring the Lobby server. You can then go into the flucuation file of each Gamemode you are spoofing on and adjust the counts that you would like. There will be a longer delay with getting fakes into the Gamemodes then you specify in the flucuation config, as its up to the lobby lifespan.

```yaml
 # The minimum amount of fixed fake players to add.
  min-fixed-fake-players: 15

  # The maximum amount of fixed fake players to add.
  max-fixed-fake-players: 30

  # The minimum multiplayer to use for the dynamic player count (gets multiplied by real player count to add more fake players)
  min-real-multiplier: 0.5

  # The maximum multiplayer to use for the dynamic player count
  max-real-multiplier: 1.5
```

## Step 8 - No lobby funnel system

If you would not like to do the lobby funnel system and having the fakes join all gamemodes directly.&#x20;

### Set gamemodes to primary.

Set all your gamemodes you are spoofing on to primary. You can have multiple or just one primary.&#x20;

```yml
# Whether or not this is a primary server, e.g. a fake player joining the network may join this server first (set true for lobby servers)
primary-server: true
```

### Configure all the flucuations of gamemodes.

Configure each gamemode like you would normally do. With what values of fakes you want for each gamemode, so now they will join directly and at the delays you set in each gamemode.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.halosdev.com/halos-player-spoofer/setup-guide/velocity-bungeecord-setup.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
