Size | Description | Type | Notes |
---|
? | Version | String | "Terraria" + Main.curRelease |
Size | Description | Type | Notes |
---|
? | Reason | NetworkText | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | Skin Varient | Byte | - |
1 | Hair | Byte | If >134 then Set To 0 |
? | Name | String | - |
1 | Hair Dye | Byte | - |
1 | Hide Visuals | Byte | - |
1 | Hide Visuals 2 | Byte | - |
1 | Hide Misc | Byte | - |
3 | Hair Color | Color | - |
3 | Skin Color | Color | - |
3 | Eye Color | Color | - |
3 | Shirt Color | Color | - |
3 | Under Shirt Color | Color | - |
3 | Pants Color | Color | - |
3 | Shoe Color | Color | - |
1 | Difficulty | Byte | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | Slot ID | Byte | 0 - 58 = Inventory, 59 - 78 = Armor, 79 - 88 = Dye, 89 - 93 MiscEquips, 94 - 98 = MiscDyes, 99 - 138 = Piggy bank, 139-178 = Safe, 179 = Trash |
2 | Stack | Int16 | - |
1 | Prefix | Byte | - |
2 | Item NetID | Int16 | - |
Size | Description | Type | Notes |
---|
4 | Time | Int32 | - |
1 | Day and Moon Info | Byte | BitFlags: 1 = Day Time, 2 = Blood Moon, 4 = Eclipse |
1 | Moon Phase | Byte | - |
2 | MaxTilesX | Int16 | - |
2 | MaxTilesY | Int16 | - |
2 | SpawnX | Int16 | - |
2 | SpawnY | Int16 | - |
2 | WorldSurface | Int16 | - |
2 | RockLayer | Int16 | - |
4 | WorldID | Int32 | - |
? | World Name | String | - |
16 | World Unique ID | Byte[] | - |
8 | World Generator Version | UInt64 | - |
1 | Moon Type | Byte | - |
1 | Tree Background | Byte | - |
1 | Corruption Background | Byte | - |
1 | Jungle Background | Byte | - |
1 | Snow Background | Byte | - |
1 | Hallow Background | Byte | - |
1 | Crimson Background | Byte | - |
1 | Desert Background | Byte | - |
1 | Ocean Background | Byte | - |
1 | Ice Back Style | Byte | - |
1 | Jungle Back Style | Byte | - |
1 | Hell Back Style | Byte | - |
4 | Wind Speed Set | Single | - |
1 | Cloud Number | Byte | - |
4 | Tree 1 | Int32 | - |
4 | Tree 2 | Int32 | - |
4 | Tree 3 | Int32 | - |
1 | Tree Style 1 | Byte | - |
1 | Tree Style 2 | Byte | - |
1 | Tree Style 3 | Byte | - |
1 | Tree Style 4 | Byte | - |
4 | Cave Back 1 | Int32 | - |
4 | Cave Back 2 | Int32 | - |
4 | Cave Back 3 | Int32 | - |
1 | Cave Back Style 1 | Byte | - |
1 | Cave Back Style 2 | Byte | - |
1 | Cave Back Style 3 | Byte | - |
1 | Cave Back Style 4 | Byte | - |
4 | Rain | Single | - |
1 | Event Info | Byte | BitFlags: 1 = Shadow Orb Smashed, 2 = Downed Boss 1, 4 = Downed Boss 2, 8 = Downed Boss 3, 16 = Hard Mode, 32 = Downed Clown, 64 = Server Side Character, 128 = Downed Plant Boss |
1 | Event Info 2 | Byte | BitFlags: 1 = Mech Boss Downed, 2 = Mech Boss Downed 2, 4 = Mech Boss Downed 3, 8 = Mech Boss Any Downed, 16 = Cloud BG, 32 = Crimson, 64 = Pumpkin Moon, 128 = Snow Moon |
1 | Event Info 3 | Byte | BitFlags: 1 = Expert Mode, 2 = FastForwardTime, 3 = Slime Rain, 4 = Downed Slime King, 5 = Downed Queen Bee, 6 = Downed Fishron, 7 = Downed Martians, 8 = Downed Ancient Cultist |
1 | Event Info 4 | Byte | BitFlags: 1 = Downed Moon Lord, 2 = Downed Pumking, 3 = Downed Mourning Wood, 4 = Downed Ice Queen, 5 = Downed Santank, 6 = Downed Everscream, 7 = Downed Golem, 8 = Birthday Party |
1 | Event Info 5 | Byte | BitFlags: 1 = Downed Pirates, 2 = Downed Frost Legion, 3 = Downed Goblins, 4 = Sandstorm, 5 = DD2 Event, 6 = Downed DD2 Tier 1, 7 = Downed DD2 Tier 2, 8 = Downed DD2 Tier 3 |
1 | Invasion Type | SByte | - |
8 | Lobby ID | UInt64 | - |
4 | Sandstorm Severity | Single | - |
This packet is used once in the connecting phase and does the following:
- Sends you the spawn sections
- Optionally, if spawn coords aren't -1 - sends you the sections of the selected position (which is the player's spawnpoint)
- Synchronises all portals and sections around them
Size | Description | Type | Notes |
---|
4 | X | Int32 | Player Spawn X |
4 | Y | Int32 | Player Spawn Y |
Size | Description | Type | Notes |
---|
4 | StatusMax | Int32 | Status only increases |
? | Status Text | NetworkText | - |
Size | Description | Type | Notes |
---|
1 | Compressed | Boolean | - |
4 | X Start | Int32 | - |
4 | Y Start | Int32 | - |
2 | Width | Int16 | - |
2 | Height | Int16 | - |
? | Tiles | - | |
2 | Chest Count | Int16 | - |
? | Chests | - | |
2 | Sign Count | Int16 | - |
? | Signs | - | |
2 | TileEntity Count | Int16 | - |
? | TileEntities | - | - |
Size | Description | Type | Notes |
---|
2 | StartX | Int16 | - |
2 | StartY | Int16 | - |
2 | EndX | Int16 | - |
2 | EndY | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
2 | SpawnX | Int16 | - |
2 | SpawnY | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | Control | Byte | BitFlags: ControlUp = 1, ControlDown = 2, ControlLeft = 4, ControlRight = 8, ControlJump = 16, ControlUseItem = 32, Direction = 64 |
1 | Pulley | Byte | BitFlags: 0 = None, 1 = Direction, 2 = Direction, 4 = Update Velocity, 8 = Vortex Stealth Active, 16 = Gravity Direction, 32 = Shield Raised |
1 | SelectedItem | Byte | - |
4 | PositionX | Single | - |
4 | PositionY | Single | - |
4 | VelocityX | Single | Not sent if Update Velocity is not set |
4 | VelocityY | Single | Not sent if Update Velocity is not set |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | Active | Boolean | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
2 | HP | Int16 | - |
2 | Max HP | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Action | Byte | Values: 0 = KillTile, 1 = PlaceTile, 2 = KillWall, 3 = PlaceWall, 4 = KillTileNoItem, 5 = PlaceWire, 6 = KillWire, 7 = PoundTile, 8 = PlaceActuator, 9 = KillActuator, 10 = PlaceWire2, 11 = KillWire2, 12 = PlaceWire3, 13 = KillWire3, 14 = SlopeTile, 15 = FrameTrack, 16 = PlaceWire4, 17 = KillWire4, 18 = PokeLogicGate, 19 = Actuate |
2 | TileX | Int16 | - |
2 | TileY | Int16 | - |
2 | Var1 | Int16 | KillTile (Fail: Bool), PlaceTile (Type: Byte), KillWall (Fail: Bool), PlaceWall (Type: Byte), KillTileNoItem (Fail: Bool), SlopeTile (Slope: Byte) |
1 | Var2 | Byte | Var2: PlaceTile (Style: Byte) |
Size | Description | Type | Notes |
---|
1 | DayTime | Boolean | - |
4 | TimeValue | Int32 | - |
2 | SunModY | Int16 | - |
2 | MoonModY | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Action | Byte | 0 = Open Door, 1 = Close Door, 2 = Open Trapdoor, 3 = Close Trapdoor, 4 = Open Tall Gate, 5 = Close Tall Gate |
2 | TileX | Int16 | - |
2 | TileY | Int16 | - |
1 | Direction | Byte | If (Action == 0) then (if (Direction == -1) then OpenToLeft else OpenToRight) if (Action == 2) then (if (Direction == 1) then PlayerIsAboveTrapdoor) if (Action == 3) then (if (Direction == 1) then PlayerIsAboveTrapdoor) |
Size | Description | Type | Notes |
---|
2 | Player ID | UInt16 | - |
1 | TileChangeType | Byte | Only if != 0 |
2 | Size | Int16 | - |
2 | TileX | Int16 | - |
2 | TileY | Int16 | - |
? | Tiles | - | |
Size | Description | Type | Notes |
---|
2 | ItemID | Int16 | If below 400 and NetID 0 Then Set NullIf ItemID is 400 Then New Item |
4 | PositionX | Single | - |
4 | PositionY | Single | - |
4 | VelocityX | Single | - |
4 | VelocityY | Single | - |
2 | Stack Size | Int16 | - |
1 | Prefix | Byte | - |
1 | NoDelay | Byte | If 0 then ownIgnore = 0 and ownTime = 100 |
2 | Item NetID | Int16 | - |
Size | Description | Type | Notes |
---|
2 | ItemID | Int16 | - |
1 | Player ID | Byte | - |
Size | Description | Type | Notes |
---|
2 | NPC ID | Int16 | - |
4 | PositionX | Single | - |
4 | PositionY | Single | - |
4 | VelocityX | Single | - |
4 | VelocityY | Single | - |
2 | Target | UInt16 | Player ID |
1 | Flags | Byte | BitFlags: 1 = Direction, 2 = DirectionY, 4 = AI[0], 8 = AI[1], 16 = AI[2], 32 = AI[3], 64 = SpriteDirection, 128 = LifeMax |
? | AI[?] | Single[] | Requires the AI flag to be set in order to be sent down the wire |
2 | NPC NetID | Int16 | - |
1 | LifeBytes | Byte | The size in bytes of Life, only present if !Flags[7] (LifeMax) |
? | Life | Byte or Int16 or Int32 | Only present if !Flags[7] (LifeMax) |
1 | ReleaseOwner | Byte | Only present if NPC is catchable |
Size | Description | Type | Notes |
---|
2 | NPC ID | Int16 | - |
1 | Player ID | Byte | - |
Size | Description | Type | Notes |
---|
2 | ProjectileID | Int16 | - |
4 | PositionX | Single | - |
4 | PositionY | Single | - |
4 | VelocityX | Single | - |
4 | VelocityY | Single | - |
4 | KnockBack | Single | - |
2 | Damage | Int16 | - |
1 | Owner | Byte | Player ID |
2 | Type | Int16 | - |
1 | AIFlags | Byte | BitFlags: 0 = AI[0] is Present, 1 = AI[1] is Present, 2 = Needs UUID |
4 | AI0 | Single | Requires the AI0 flag to be set in order to be sent down the wire |
4 | AI1 | Single | Requires the AI1 flag to be set in order to be sent down the wire |
2 | ProjUUID | Int16 | Requires the Needs UUID flag to be set in order to be sent down the wire |
Size | Description | Type | Notes |
---|
2 | NPC ID | Int16 | - |
2 | Damage | Int16 | -1 = Kill |
4 | Knockback | Single | - |
1 | Direction | Byte | - |
1 | Crit | Boolean | - |
Size | Description | Type | Notes |
---|
2 | Projectile ID | Int16 | - |
1 | Owner | Byte | Player ID |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | PVP Enabled | Boolean | - |
Size | Description | Type | Notes |
---|
2 | TileX | Int16 | - |
2 | TileY | Int16 | - |
Packet [31] is always used to "open" a world chest (that is, an item container placed in the world). When this packet is received the server will send the chest's contents, and sync the active chest ID to the player using packet [33].
Size | Description | Type | Notes |
---|
2 | Chest ID | Int16 | - |
1 | ItemSlot | Byte | - |
2 | Stack | Int16 | - |
1 | Prefix | Byte | - |
2 | Item Net ID | Int16 | - |
Size | Description | Type | Notes |
---|
2 | Chest ID | Int16 | - |
2 | ChestX | Int16 | - |
2 | ChestY | Int16 | - |
1 | Name Length | Byte | - |
? | Chest Name | String | Only if length > 0 && <= 20 |
This packet is used to tell the server that you've exited the chest view (sending ID -1), that you're looking at your piggy bank (sending ID -2), that you're looking at your safe (sending ID -3) and that you're looking at your defender's forge (sending ID -4). Those are sent at every chest interaction. Packet [33]'s main function is to synchronize the sending client's active chest to the server, and its side function is to rename the chest.
It should be noted that this packet is not sent when you open a regular chest. The server knows which chest you opened when you send [31], so the [33] is only sent upon exit to unblock the chest (as opposed to both open & exit for banks like piggy, safe & defender forge)
Size | Description | Type | Notes |
---|
1 | ChestID | Byte | BitFlags:0 = Place Chest, 1 = Kill Chest, 2 = Place Dresser, 3 = Kill Dresser. 4 = Place Containers2, 5 = Kill Containers2 |
2 | TileX | Int16 | - |
2 | TileY | Int16 | - |
2 | Style | Int16 | FrameX(Chest type) |
2 | Chest ID to destroy | Int16 | ID if client is receiving packet, else 0 |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
2 | Heal Amount | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | Zone1 | Byte | 1 = Dungeon, 2 = Corruption, 4 =Holy, 8 = Meteor, 16 = Jungle, 32 = Snow, 64 = Crimson, 128 = Water Candle |
1 | Zone2 | Byte | 1 = Peace Candle, 2 = Solar Tower, 4 = Vortex Tower, 8 = Nebula Tower, 16 = Stardust Tower, 32 = Desert, 64 = Glowshroom, 128 = Underground Desert |
1 | Zone3 | Byte | 1 = Overworld, 2 = Dirt Layer, 4 = Rock Layer, 8 = Underworld, 16 = Beach, 32 = Rain, 64 = Sandstorm |
1 | Zone4 | Byte | 1 = Old One's Army |
Size | Description | Type | Notes |
---|
? | Password | String | - |
Size | Description | Type | Notes |
---|
2 | ItemIndex | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
2 | Npc Talk Target | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
4 | Item Rotation | Single | - |
2 | Item Animation | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
2 | Mana | Int16 | - |
2 | Max Mana | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
2 | Mana Amount | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | Team | Byte | - |
Size | Description | Type | Notes |
---|
2 | X | Int16 | - |
2 | Y | Int16 | - |
Size | Description | Type | Notes |
---|
2 | Sign ID | Int16 | - |
2 | X | Int16 | - |
2 | Y | Int16 | - |
? | Text | String | - |
1 | Player ID | Byte | - |
Size | Description | Type | Notes |
---|
2 | X | Int16 | - |
2 | Y | Int16 | - |
1 | Liquid | Byte | - |
1 | Liquid Type | Byte | - |
Size | Description | Type | Notes |
---|
- | | - | |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 * 22 | BuffType | Byte[22] | |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | Type | Byte | Values: 1 = Spawn Skeletron, 2 = Cause sound at player, 3 = Start Sundialing (Only works if server is receiving), 4 = BigMimcSpawnSmoke |
Size | Description | Type | Notes |
---|
1 | Type | Byte | Values: 1 = Chest Unlock, 2 = Door Unlock |
2 | X | Int16 | - |
2 | Y | Int16 | - |
Size | Description | Type | Notes |
---|
2 | NPC ID | Int16 | - |
1 | Buff | Byte | - |
2 | Time | Int16 | - |
Size | Description | Type | Notes |
---|
2 | NPC ID | Int16 | - |
1 | Buff ID | Byte | - |
2 | Time | Int16 | - |
1 | Buff ID 2 | Byte | - |
2 | Time 2 | Int16 | - |
1 | Buff ID 3 | Byte | - |
2 | Time 3 | Int16 | - |
1 | Buff ID 4 | Byte | - |
2 | Time 4 | Int16 | - |
1 | Buff ID 5 | Byte | - |
2 | Time 5 | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | Buff | Byte | - |
4 | Time | Int32 | - |
Size | Description | Type | Notes |
---|
2 | NPC ID | Int16 | - |
? | Name | String | Only if client is receiving packet |
Size | Description | Type | Notes |
---|
1 | Good | Byte | - |
1 | Evil | Byte | - |
1 | Crimson | Byte | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
4 | Note | Single | - |
Size | Description | Type | Notes |
---|
2 | X | Int16 | - |
2 | Y | Int16 | - |
Size | Description | Type | Notes |
---|
2 | NPC ID | Int16 | - |
2 | HomeTileX | Int16 | - |
2 | HomeTileY | Int16 | - |
1 | Homeless | Byte | - |
Size | Description | Type | Notes |
---|
2 | Player ID | Int16 | - |
2 | Type | Int16 | Negative Values: -1 = GoblinInvasion, -2 = FrostInvasion, -3 = PirateInvasion, -4 = PumpkinMoon, -5 = SnowMoon, -6 = Eclipse, -7 = Martian Moon Positive Values: Spawns any of these NPCs:4,13,50,126,125,134,127,128,131,129,130,222,245,266,370,75,398,439,493,507,422,517 |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | Flag | Byte | 1 = Ninja Dodge 2 = Shadow Dodge |
Size | Description | Type | Notes |
---|
2 | X | Int16 | - |
2 | Y | Int16 | - |
1 | Color | Byte | - |
Size | Description | Type | Notes |
---|
2 | X | Int16 | - |
2 | Y | Int16 | - |
1 | Color | Byte | - |
Size | Description | Type | Notes |
---|
1 | Flags | Byte | BitFlags: 0 = Player Teleport (Neither 1 or 2), 1 = NPC Teleport, 2 = Player Teleport to Other Player, 4 = Style += 1, 8 = Style += 2 |
2 | Target ID | Int16 | - |
4 | X | Single | - |
4 | Y | Single | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
2 | Heal Amount | Int16 | - |
Size | Description | Type | Notes |
---|
- | | - | |
Size | Description | Type | Notes |
---|
? | UUID | String | |
Size | Description | Type | Notes |
---|
2 | Chest ID | Int16 | - |
2 | Chest X | Int16 | - |
2 | Chest Y | Int16 | - |
? | Name | String | - |
Size | Description | Type | Notes |
---|
2 | NPC ID | Int16 | - |
1 | Who | Byte | - |
Size | Description | Type | Notes |
---|
4 | X | Int32 | - |
4 | Y | Int32 | - |
2 | NPC Type | Int16 | - |
1 | Style | Byte | Sent to NPC AI[2] |
Size | Description | Type | Notes |
---|
2*40 | Items | Int16[40] | Each short related to an item type NetID. |
Size | Description | Type | Notes |
---|
1 | Quest | Byte | - |
1 | Completed | Boolean | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
4 | Angler Quests Completed | Int32 | - |
Size | Description | Type | Notes |
---|
2 | AnimationType | Int16 | - |
2 | TileType | UInt16 | - |
2 | X | Int16 | - |
2 | Y | Int16 | - |
Size | Description | Type | Notes |
---|
4 | Progress | Int32 | - |
4 | MaxProgress | Int32 | - |
1 | Icon | SByte | - |
1 | Wave | SByte | - |
Size | Description | Type | Notes |
---|
2 | X | Int16 | - |
2 | Y | Int16 | - |
2 | Type | Int16 | - |
2 | Style | Int16 | - |
1 | Alternate | Byte | - |
1 | Random | SByte | - |
1 | Direction | Boolean | - |
Size | Description | Type | Notes |
---|
1 | Player | Byte | - |
2 | Chest | Int16 | - |
Size | Description | Type | Notes |
---|
4 | X | Single | - |
4 | Y | Single | - |
3 | Color | Color | - |
4 | Heal Amount | Int32 | - |
Size | Description | Type | Notes |
---|
2 | Module ID | Unsigned Short | |
?? | Payload | ?? | |
Note: 82 is sent prior to chat packets in 1.3.5.x. Instructs the server to load a net module.
Size | Description | Type | Notes |
---|
2 | NPC Type | Int16 | - |
4 | Kill Count | Int32 | - |
Size | Description | Type | Notes |
---|
1 | Player | Byte | - |
4 | Stealth | Single | - |
Size | Description | Type | Notes |
---|
1 | Inventory Slot | Byte | - |
Size | Description | Type | Notes |
---|
4 | Key | Int32 | - |
1 | Remove? | Boolean | - |
1 | TileEntity Type | Byte | If Remove? == false |
4 | ID | Int32 | If Remove? == false |
2 | X | Int16 | If Remove? == false |
2 | Y | Int16 | If Remove? == false |
2 | NPC | Int16 | If Remove? == false && Type = 0 |
2 | ItemType | Int16 | If Remove? == false |
1 | Prefix | Byte | If Remove? == false |
2 | Stack | Int16 | If Remove? == false |
Size | Description | Type | Notes |
---|
2 | X | Int16 | - |
2 | Y | Int16 | - |
1 | Type | Byte | 2 = Logic Sensor 1 = Item Frame 0 = Training Dummy |
Size | Description | Type | Notes |
---|
2 | Item Index | Int16 | - |
1 | Flags1 | Byte | BitFlags: 1 = Color, 2 = Damage, 4 = Knockback, 8 = UseAnimation, 16 = UseTime, 32 = Shoot, 64 = ShootSpeed, 128 = NextFlags |
4 | Packed Color Value | UInt32 | if Flags1.Color |
2 | Damage | UInt16 | if Flags1.Damage |
4 | Knockback | Single | if Flags1.Knockback |
2 | Use Animation | UInt16 | if Flags1.UseAnimation |
2 | Use Time | UInt16 | if Flags1.UseTime |
2 | Shoot | Int16 | if Flags1.Shoot |
4 | Shoot Speed | Float | if Flags1.ShootSpeed |
1 | Flags2 | Byte | if Flags1.NextFlags BitFlags: 1 = Width, 2 = Height, 4 = Scale, 8 = Ammo, 16 = UseAmmo, 32 = NotAmmo |
2 | Width | Int16 | if Flags2.Width |
2 | Height | Int16 | if Flags2.Height |
4 | Scale | Float | if Flags2.Scale |
2 | Ammo | Int16 | If Flags2.Ammo |
2 | UseAmmo | Int16 | If Flags2.UseAmmo |
1 | NotAmmo | Bool | If Flags2.NotAmmo |
Size | Description | Type | Notes |
---|
2 | X | Int16 | - |
2 | Y | Int16 | - |
2 | Item Id | Int16 | - |
1 | Prefix | Byte | - |
2 | Stack | Int16 | - |
Size | Description | Type | Notes |
---|
2 | ItemID | Int16 | If below 400 and NetID 0 Then Set NullIf ItemID is 400 Then New Item |
4 | PositionX | Single | - |
4 | PositionY | Single | - |
4 | VelocityX | Single | - |
4 | VelocityY | Single | - |
2 | Stack Size | Int16 | - |
1 | Prefix | Byte | - |
1 | NoDelay | Byte | If 0 then ownIgnore = 0 and ownTime = 100 |
2 | Item NetID | Int16 | - |
Size | Description | Type | Notes |
---|
4 | Emote ID | Int32 | - |
1 | Anchor Type | Byte | - |
2 | MetaData | UInt16 | Only if AnchorType != 255 |
1 | Lifetime | Byte | Only if AnchorType != 255 |
1 | Emote | Byte | Only if AnchorType != 255 |
2 | EmoteMetaData | Int16 | Only sent if AnchorType != 255 and Emote < 0 |
Size | Description | Type | Notes |
---|
2 | NPC Index | Int16 | - |
4 | ExtraValue | Single | - |
4 | X | Single | - |
4 | Y | Single | - |
Size | Description | Type | Notes |
---|
2 | Projectile Index | UInt16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
2 | Portal Color Index | Int16 | - |
4 | New Position X | Single | - |
4 | New Position Y | Single | - |
4 | Velocity X | Single | - |
4 | Velocity Y | Single | - |
Size | Description | Type | Notes |
---|
2 | NPC ID | Int16 | - |
Size | Description | Type | Notes |
---|
2 | Event ID | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
4 | Target X | Single | - |
4 | Target Y | Single | - |
Size | Description | Type | Notes |
---|
2 | NPC ID | UInt16 | - |
2 | Portal Color Index | Int16 | - |
4 | New Position X | Single | - |
4 | New Position Y | Single | - |
4 | Velocity X | Single | - |
4 | Velocity Y | Single | - |
Size | Description | Type | Notes |
---|
2 | Solar Tower Shield | UInt16 | - |
2 | Vortex Tower Shield | UInt16 | - |
2 | Nebula Tower Shield | UInt16 | - |
2 | Stardust Tower Shield | UInt16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
1 | Level Up Type | Byte | - |
4 | Origin X | Single | In world coordinate pixels. |
4 | Origin Y | Single | In world coordinate pixels. |
Size | Description | Type | Notes |
---|
4 | Moon Lord Countdown | Int32 | - |
Size | Description | Type | Notes |
---|
1 | Slot | Byte | - |
2 | Item Type | Int16 | - |
2 | Stack | Int16 | - |
1 | Prefix | Byte | - |
4 | Value | Int32 | - |
1 | Flags | Byte | BitFlags: 1 = BuyOnce |
Size | Description | Type | Notes |
---|
2 | X | Int16 | - |
2 | Y | Int16 | - |
1 | On | Boolean | - |
Size | Description | Type | Notes |
---|
4 | PackedVector | Int32 | Two Int16's packed into 4 bytes. |
Size | Description | Type | Notes |
---|
3 | Message Color | Color | Client cannot change colors |
? | Message | NetworkText | |
2 | Message Length | Int16 | |
Size | Description | Type | Notes |
---|
2 | Damage | Int16 | - |
4 | Knockback | Single | - |
2 | X | Int16 | - |
2 | Y | Int16 | - |
2 | Angle | Int16 | - |
2 | Ammo | Int16 | - |
1 | Player ID | Byte | Shooter's Player ID |
Size | Description | Type | Notes |
---|
2 | Start X | Int16 | - |
2 | Start Y | Int16 | - |
2 | End X | Int16 | - |
2 | End Y | Int16 | - |
1 | ToolMode | Byte | BitFlags: 1 = Red, 2 = Green, 4 = Blue, 8 = Yellow, 16 = Actuator, 32 = Cutter |
Size | Description | Type | Notes |
---|
2 | Item Type | Int16 | - |
2 | Quantity | Int16 | - |
1 | Player ID | Byte | - |
Size | Description | Type | Notes |
---|
1 | GrowEffect | Boolean | - |
2 | X | Int16 | - |
2 | Y | Int16 | - |
1 | Height | Byte | - |
2 | Tree Gore | Int16 | - |
Size | Description | Type | Notes |
---|
2 | X | Int16 | - |
2 | Y | Int16 | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
2 | Minion Attack Target | Int16 | - |
Size | Description | Type | Notes |
---|
4 | Time Until Next Wave | Int32 | 1800 (30s) between waves, 30 (5s) when starting |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
? | Player Death Reason | PlayerDeathReason | - |
2 | Damage | Int16 | - |
1 | Hit Direction | Byte | - |
1 | Flags | Byte | BitFlags: 1 = Crit, 2 = PvP |
1 | Cooldown Counter | SByte | - |
Size | Description | Type | Notes |
---|
1 | Player ID | Byte | - |
? | Player Death Reason | PlayerDeathReason | - |
2 | Damage | Int16 | - |
1 | Hit Direction | Byte | - |
1 | Flags | Byte | BitFlags: 1 = PvP |
Size | Description | Type | Notes |
---|
4 | X | Single | - |
4 | Y | Single | - |
3 | Color | Color | - |
? | Combat Text | NetworkText | - |
Size | Description | Type | Notes |
---|
1 | Red | Byte | - |
1 | Green | Byte | - |
1 | Blue | Byte | - |
Size | Description | Type | Notes |
---|
1 | Flags1 | Byte | BitFlags: 1= Active, 2= Lighted, 4 = HasWall, 8 = HasLiquid, 16 = Wire1, 32 = HalfBrick, 64 = Actuator, 128 = Inactive |
1 | Flags2 | Byte | BitFlags: 1 = Wire2, 2 = Wire3, 4 = HasColor, 8 = HasWallColor, 16 = Slope1, 32 = Slope2, 64 = Slope3, 128 = Wire4 |
1 | Color | Byte | Only if HasColor |
1 | Wall Color | Byte | Only if HasWallColor |
2 | Type | UInt16 | Only if Active |
2 | FrameX | Int16 | Only if Active && tileFrameImportant |
2 | FrameY | Int16 | Only if Active && tileFrameImportant |
1 | Wall | Byte | Only if HasWall |
1 | Liquid | Byte | Only if HasLiquid |
1 | LiquidType | Byte | Only if HasLiquid |
Size | Description | Type | Notes |
---|
2 | Index | Int16 | - |
2 | X | Int16 | - |
2 | Y | Int16 | - |
? | Chest Name | String | - |
Size | Description | Type | Notes |
---|
2 | Index | Int16 | - |
2 | X | Int16 | - |
2 | Y | Int16 | - |
? | Sign Text | String | - |
Size | Description | Type | Notes |
---|
1 | Type | Byte | 0 = Training Dummy, 1 = Item Frame, 2 = Logic Sensor |
4 | ID | Int32 | - |
2 | X | Int16 | - |
2 | Y | Int16 | - |
2 | NPC Index | Int16 | Only if Type == TrainingDummy |
2 | Item Type | Int16 | Only if Type == ItemFrame |
1 | Item Prefix | Byte | Only if Type == ItemFrame |
2 | Item Stack | Int16 | Only if Type == ItemFrame |
1 | LogicCheckType | Byte | Only if Type == LogicSensor |
1 | On | Bool | Only if Type == LogicSensor |
Size | Description | Type | Notes |
---|
1 | Player Death Reason | Byte | BitFlags: 1 = Killed via PvP, 2 = Killed via NPC, 4 = Killed via Projectile, 8 = Killed via Other, 16 = Killed via Projectile, 32 = Killed via PvP, 64 = Killed via PvP, 128 = Killed via Custom Modification |
2 | Killer's Player ID | Int16 | Only if BitFlags[0] is true |
2 | Killing NPC's Index | Int16 | Only if BitFlags[1] is true |
2 | Projectile Index | Int16 | Only if BitFlags[2] is true |
1 | Type of Death (Other) | Byte | Only if BitFlags[3] is true: 0 = Fall Damage, 1 = Drowning, 2 = Lava Damage, 3 = Fall Damage, 4 = Demon Altar, 6 = Companion Cube, 7 = Suffocation, 8 = Burning, 9 = Poison/Venom, 10 = Electrified, 11 = WoF (Escape), 12 = WoF (Licked), 13 = Chaos State, 14 = Chaos State v2 (Male), 15 = Chaos State v2 (Female) |
2 | Projectile Type | Int16 | Only if BitFlags[4] is true |
2 | Item Type | Int16 | Only if BitFlags[5] is true |
1 | Item Prefix | Byte | Only if BitFlags[6] is true |
? | Death Reason | String | Only if BitFlags[7] is true |
Size | Description | Type | Notes |
---|
1 | Mode | Byte | Enum: 0 = Literal, 1 = Formattable, 2 = LocalizationKey |
? | Text | String | - |
1 | SubstitutionList Length | Byte | Only if Mode != Literal |
? | SubstitutionList | NetworkText[] | Only if Mode != Literal |