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

FAQ and Troubleshooting

Common questions and fixes. If your issue is not here, join the Discord and open a ticket: discord.gg/dn8YE2Ctbv

No fake players are spawning

Check these in order:

  1. Did you generate profiles? Run /asteroid profiles generate 100. Without profiles, there is nobody to spawn.

  2. Is spoofing on? Run /asteroid toggle and confirm it is enabled.

  3. Are your limits sensible? If max is 0, or min is 0 with no real players and a low multiplier, few or no fakes will appear. Try min: 2 while testing.

  4. Reload after config edits with /asteroid reload.

The commands do not work or I cannot see them

Only allowed UUIDs can use Asteroid commands, and others do not even see them. Add yourself with the instant-setup command shown in the config, or add your UUID under access.allowed_uuids.

Fake players get kicked the moment they join

This is usually a login or auth plugin rejecting them during the login handshake. Two options:

  • Enable the Login addon so fakes log in automatically.

  • As a simpler fix, set players.skipLoginAllow: true to force the login to be accepted.

Fake players get kicked for keepalive timeout

Asteroid suppresses keepalive on standard Paper and Spigot. If you see repeated "kicked due to keepalive timeout" messages, you are likely on a modified server fork that runs its own keepalive check. Report your exact server software on the Discord so it can be handled for that fork.

Errors mentioning CraftPlayer on 1.20.6 or newer

Some Paper forks do not fully remap Minecraft's internal classes. On 1.20.6 and up, set spoof.paper1206PlusFix: true, then restart.

Another plugin throws errors when a fake player joins

Some plugins try to attach to a real network connection on join. Fake players use a lightweight stub connection, so a plugin that does not check for this can log an error. In most cases the fake still spawns fine and the error is harmless noise from the other plugin.

Redis or proxy will not connect

  • Make sure Asteroid and AsteroidLibs are installed on the proxy too, not just the backend servers.

  • Check that server_name matches your proxy config exactly.

  • Check your Redis URI. If your password contains special characters like @, remember Asteroid reads everything up to the last @ as the password.

The same fake name shows up on two servers

You are sharing a database across servers. Turn on database.prevent-duplicate-connections: true. This only works with mysql or mongodb, since sqlite is local to each server.

The server is lagging with many fake players

  1. Turn off features you do not use: allowSchedulerFeature and allowEntityPickup.

  2. Reduce or disable movement abilities.

  3. As a last resort, enable performanceMode for the lightest possible fakes.

AI is not replying

  1. Set ai.enabled: true.

  2. Make sure ai.apiKey is a valid OpenRouter key.

  3. Check that playerToAI.enabled is true and response_chance is not too low to notice.

  4. Confirm the model in ai_model is a valid OpenRouter model.

How many profiles should I generate

Aim for several times your maximum fake player count, so there is always variety. If your max is 30, a few hundred profiles is comfortable.

How do I hide that I use Asteroid

  • Disguise the plugin name in the spoof.plugin section so it shows as something else in /plugins.

  • Keep showFakePlayerOnJoin: false if you do not want join lines in console.

  • Consider showAnonPlayers: true so hovering the player count does not reveal fake names.