Skip to main content

Overview

The /nick command allows you to change your display name as shown to other players in the current world. This is a local modification that affects how other players see you, but doesn’t change your actual account name.

Syntax

/nick <nickname>
nickname
string
required
The display name to set. Can include spaces and supports multiple words.

Usage Examples

Single Word Nickname

/nick ProxyUser
Output:
Display name changed to ProxyUser

Multi-Word Nickname

The command automatically concatenates multiple arguments with spaces:
/nick Cool Proxy User
Output:
Display name changed to Cool Proxy User

Special Characters

/nick [PRO]Player
Output:
Display name changed to [PRO]Player

How It Works

Name Change Mechanism

The /nick command works by:
  1. Combining arguments: Joins all arguments with spaces to form the full nickname
  2. Getting NetID: Retrieves your local network ID from the World instance
  3. Creating packet: Constructs an OnNameChanged packet with your NetID and new name
  4. Broadcasting: Sends the packet to the server, which broadcasts it to all players

What Others See

When you change your nickname:
  • Other players in the world see your new display name immediately
  • Your name tag above your character updates
  • Chat messages show your new name
  • The player list reflects the change

What Doesn’t Change

The /nick command only changes your local display name. It does NOT change:
  • Your Growtopia account username
  • Your persistent profile name
  • Your name in other worlds (until you use /nick again)
  • Any server-side account information

Validation and Errors

Missing Nickname

If you don’t provide a nickname:
/nick
Output:
Usage: /nick <nickname>

Empty Name

While technically possible, setting an empty or whitespace-only name may cause display issues:
/nick " "
Avoiding empty or whitespace-only nicknames is recommended for best results.

Implementation Details

Source Reference

Implementation: /home/daytona/workspace/source/src/command/commands/nick_command.hpp:13

Argument Parsing

The command joins all arguments with spaces:
std::string name{ ctx.args.front() };
for (size_t i{ 1 }; i < ctx.args.size(); ++i) {
    name += ' ' + ctx.args[i];
}
This allows nicknames with spaces without requiring quotes.

Packet Details

The command sends an OnNameChanged packet:
packet::game::OnNameChanged pkt{};
pkt.net_id = world::World::instance().get_local_net_id();
pkt.name = name;
packet::PacketHelper::write(pkt, ctx.server);

Persistence

Session-Based

Your nickname change is not persistent across:
  • Disconnects and reconnects
  • World changes (unless you set it again)
  • Proxy restarts

Setting on Join

To automatically set your nickname when joining a world, use a Lua script:
Events.subscribe("OnSpawn", function(packet)
    if packet.net_id == World.get_local_net_id() then
        -- Wait a moment, then set nickname
        Scheduler.schedule_delayed(function()
            Commands.execute("nick MyCustomName")
        end, 1000)
    end
end)
See Lua Events API for more details.

Color Codes

You can include Growtopia color codes in your nickname:
/nick `2Green`4Red`1Blue
This creates a nickname with colored text segments:
  • `2 = Green text
  • `4 = Red text
  • `1 = Blue text
  • = White (default) text

Use Cases

Anonymity

Hide your real username for privacy

Role-Playing

Use character names for RP scenarios

Testing

Test how different names appear in the UI

Fun

Create creative or humorous display names

Limitations

Server-side restrictions may apply:
  • Some servers may reject name changes
  • Extremely long names may be truncated or rejected
  • Invalid characters might cause issues
  • Anti-cheat systems may flag unusual name changes

/skin

Change your skin appearance

World API

Access player and world data from Lua