For the complete documentation index, see llms.txt. This page is also available as Markdown.

Spoofing Limits

This is the core of Asteroid. The spoofing section decides how many fake players are online and how they come and go.

spoofing:
  multiplier: 1.2
  min: 2
  max: 5.0
  lifespan: '{random[3600,14400]}'
  joinDelay: '{random[30,90]}'
  disconnectDelay: '{random[300,900]}'
  has-played-before-chance: 90

The target formula

Every cycle, Asteroid works out a target number of total players (real plus fake), then adds or removes fake players to move toward it.

target_total = real_players * multiplier

The number of fake players it wants is the target minus the real players, then clamped so it never goes below min or above max.

Worked example

Settings: multiplier: 2.0, min: 2, max: 20.

  • 5 real players online. Target is 5 times 2.0, which is 10. Asteroid aims for 5 fake players so the total shows 10.

  • 0 real players online. The formula gives 0, but min is 2, so Asteroid keeps 2 fake players online. This stops the server from ever looking dead.

  • 15 real players online. Target is 30, so it wants 15 fake players. If max were 10, it would stop at 10.

The settings

Setting
What it does

multiplier

How aggressively to spoof. real_players * multiplier sets the target total.

min

The lowest fake player count, even with zero real players.

max

The absolute cap. Asteroid never spawns more fake players than this.

lifespan

How long each fake player stays online before leaving on its own, in seconds.

joinDelay

Wait time before spawning the next fake player.

disconnectDelay

Wait time between disconnecting fake players when there are too many.

has-played-before-chance

Chance a fake player is flagged as a returning player rather than a first-timer.

Choosing a multiplier

Multiplier
Feel

1.1 to 1.5

Subtle and natural. Recommended for most servers.

1.5 to 2.0

Noticeable boost, still believable.

2.0 and up

Aggressive. The player count looks inflated to observant players.

The multiplier here is a fixed value. If you enable Fluctuation, the multiplier can change over time on its own.

Lifespan and delays

These three settings are what make the activity look human. Randomize them with {random[x,y]}.

  • Lifespan '{random[3600,14400]}': each fake stays online for a random 1 to 4 hours, then leaves. Because each rolls its own lifespan, they leave at different times.

  • Join delay '{random[30,90]}': the wait before spawning the next fake. A staggered stream of joins looks natural.

  • Disconnect delay '{random[300,900]}': when there are too many fakes, they are removed one at a time with this gap, avoiding a mass logout.

Has played before chance

Each time a fake spawns, this is the percent chance the server treats it as a returning player rather than new.

  • 90 means about 9 in 10 fakes look like returners, and 1 in 10 looks new.

  • 100 means fakes are never treated as new.

  • Lower values add more first-time joins for variety.