Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ZTzTopia/GTProxy/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The /warp command allows you to instantly warp to any world without manually typing it in the world portal. It handles the exit and join sequence automatically with proper timing.

Syntax

/warp <world_name>
world_name
string
required
The name of the world to warp to. Must be 23 characters or less and cannot be “EXIT”.

Usage Examples

Basic Warp

Warp to a world named “START”:
/warp START
Output:
Warping to START...
The proxy will:
  1. Send a quit packet to exit the current world
  2. Wait 1.75 seconds (1750ms)
  3. Send a join request to the target world

Warp with Uppercase

/warp HARVEST

Warp with Mixed Case

/warp MyWorld
World names are case-sensitive in Growtopia, so START, start, and Start are different worlds.

Validation and Errors

Missing World Name

If you don’t provide a world name:
/warp
Output:
Usage: /warp <world name>

Invalid World: EXIT

You cannot warp to a world named “EXIT”:
/warp EXIT
Output:
Oops: You cannot warp to the exit world.

World Name Too Long

World names must be 23 characters or less:
/warp ThisWorldNameIsWayTooLongAndWillFail
Output:
Error: World name cannot exceed 23 characters.

How It Works

Warp Sequence

The warp command follows this sequence:
  1. Validation: Checks world name length and special cases
  2. Cancel existing warps: Cancels any pending warp operations using the “warp” tag
  3. Send quit packet: Sends QuitToExit packet to leave current world
  4. Show feedback: Displays “Warping to…” message
  5. Schedule join: After 1.75 seconds, sends JoinRequest packet
  6. Connection check: Verifies client is still connected before joining

Timing

The 1750ms (1.75 second) delay between quit and join is critical:
  • Allows the server to process the exit
  • Prevents race conditions
  • Ensures smooth world transition

Task Cancellation

If you execute /warp multiple times quickly, previous warp tasks are cancelled:
/warp WORLD1
/warp WORLD2  # Cancels the WORLD1 warp, only WORLD2 will execute

Implementation Details

Source Reference

Implementation: /home/daytona/workspace/source/src/command/commands/warp_command.hpp:8

Dependencies

  • Scheduler: Uses core::Scheduler for delayed execution
  • Packet System: Sends QuitToExit and JoinRequest packets
  • Network: Requires active client connection

Code Flow

// 1. Send quit packet
packet::message::QuitToExit quit_pkt{};
packet::PacketHelper::write(quit_pkt, ctx.client);

// 2. Schedule delayed join (1750ms)
ctx.scheduler->schedule_delayed(
    [client, &world_name] {
        packet::message::JoinRequest join_pkt{};
        join_pkt.world_name = world_name;
        join_pkt.invited_world = false;
        packet::PacketHelper::write(join_pkt, *client);
    },
    std::chrono::milliseconds{1750},
    "warp",
    core::TaskPriority::Normal
);

Advanced Usage

Rapid World Hopping

You can warp to multiple worlds in sequence, but wait for each warp to complete:
/warp FARM1
# Wait ~2 seconds
/warp FARM2
# Wait ~2 seconds
/warp START

Cancel a Warp

Execute another warp command before the delay completes:
/warp WRONGWORLD
/warp CORRECTWORLD  # Immediately cancels first warp

Limitations

The warp command does not:
  • Verify the world exists
  • Check if you have access to the world
  • Handle world locks or access restrictions
  • Retry on failure
If the world doesn’t exist or you don’t have access, you’ll receive the standard Growtopia error message.

Use Cases

Fast Navigation

Quickly jump between frequently visited worlds

Automation

Integrate with Lua scripts for automated world hopping

Testing

Rapidly test different worlds during development

Convenience

Skip manual world portal interactions

Scheduler API

Learn about delayed task execution

Packet System

Understand packet-based communication

Build docs developers (and LLMs) love