Skip to content

# setControlState() does not move bot at all on 1.21.11 after BungeeCord transfer #367

Description

@neznera

Environment

  • Minecraft version: 1.21.11
  • Server type: BungeeCord proxy (FunTime.su → Anarchy518 backend)
  • Mineflayer version: Latest (via npm install mineflayer)
  • Node.js version: v18.x.x (update with your version)
  • OS: Windows 11

Bug Description

Bot does not move at all when using setControlState('forward', true) after being transferred to a backend server via BungeeCord. The bot's position remains completely frozen despite control states being active. This happens specifically on 1.21.11 servers behind BungeeCord proxy.

Steps to Reproduce

const mineflayer = require('mineflayer');

const bot = mineflayer.createBot({
  host: 'funtime.su',
  port: 25565,
  username: 'TestBot',
  version: '1.21.11',
  auth: 'offline',
  physicsEnabled: true
});

bot.once('spawn', async () => {
  await new Promise(r => setTimeout(r, 2000));
  
  // Navigate to sub-server via BungeeCord
  bot.chat('/an518');
  
  await new Promise(r => setTimeout(r, 10000));
  
  // Start walking
  bot.setControlState('forward', true);
  bot.setControlState('sprint', true);
  
  // Log position every 2 seconds
  setInterval(() => {
    const pos = bot.entity?.position;
    console.log(`Position: x=${pos?.x.toFixed(1)} z=${pos?.z.toFixed(1)}`);
  }, 2000);
});

Expected Behavior

Bot should continue moving forward indefinitely (or until hitting an obstacle).

Actual Behavior

23:29:57 [INFO] Старт: x=-0.3 y=90.0 z=4.5
23:29:57 [INFO] Цель: x=-0.3 z=54.5
23:29:57 [INFO] Path update: status=success, length=50
23:30:00 [INFO] Path update: status=success, length=49
23:30:04 [INFO] Path update: status=success, length=49
23:30:08 [INFO] Path update: status=success, length=49
... (bot remains at x=-0.3 z=4.5 forever)
23:30:22 [КИК] (kicked for timeout after 30 seconds of no movement)

Bot position never changes. Control states are active but produce zero movement. Tried:

  • setControlState('forward', true) + setControlState('sprint', true)
  • Adding jumps: setControlState('jump', true) every 500ms
  • Short movement bursts (150ms forward, pause, repeat)
  • Random yaw changes: bot.look(newYaw, 0)

Nothing makes the bot move even 0.1 blocks.

Additional Context

1. Only happens on 1.21.11 servers behind BungeeCord proxy

  • Direct connection to single 1.21.11 server: movement works
  • After BungeeCord transfer (/an518): movement completely broken

2. Chunks are NOT loading properly after BungeeCord transfer

  • bot.world.columns is empty or throws Cannot convert undefined or null to object
  • This suggests zero chunk data is available to physics engine
  • Physics cannot calculate movement without chunk collision data

3. Workaround that DOES work

  • Server teleport commands (/call <player>, /tpa, /home) work perfectly
  • Bot successfully teleports and updates position
  • This proves the connection is alive and position packets work

4. Bot thinks it's moving but server disagrees

  • bot.entity.position stays at spawn coordinates
  • bot.entity.velocity is likely zero
  • No position update packets received from server

Possible Root Cause

After BungeeCord transfers the bot to a backend server:

  1. Chunk data is never sent or parsed incorrectly
  2. Physics engine has zero collision information
  3. setControlState() updates internal state but physics cannot compute actual movement
  4. Server never receives position update packets because client-side physics produces no delta
  5. Result: Bot is "walking" client-side into void with no server confirmation

Request

  • Fix chunk loading/parsing after BungeeCord transfer on 1.21.11
  • Add error logging when physics runs with empty world data
  • Consider fallback: if no chunks loaded after 5 seconds, disable physics and use direct position packets
  • Add debug flag to log chunk reception and physics state

Server Details

  • Server: funtime.su:25565
  • Backend after /an518: Anarchy518 (1.21.4-1.21.11 support)
  • BungeeCord is confirmed (entityId changes from ~50k to ~16M after transfer)

Tested Pathfinder

Also tested with notaina-pathfinder@1.0.0 (fork with 1.21.11 fixes):

  • Pathfinder calculates routes successfully (status=success, length=49)
  • Bot still does not move at all (position stays at spawn)
  • Confirms the issue is in chunk loading or physics engine, not pathfinding logic

Related Issues

  • Possibly related to #3911 (physics bugs in 1.21.x)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions