Repository navigation
Messages Entity
Every message in the Entity area: its opcode, direction, how far it is verified, and its fields.
Note
Generated from the message declarations at bootstrap 5aae370 by Tools/NexusTomorrow.ProtocolReference. Don't edit it by hand: change the declaration's documentation and regenerate.
| Opcode | Direction | Verified to |
|---|---|---|
0x00C4 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
8 | unsigned |
Names the player's own unit: the client takes it as the player and as the unit it moves.
| Opcode | Direction | Verified to |
|---|---|---|
0x019B |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
UnitId |
32 | unsigned | The player's unit, by the id its UnitCreate gave it. |
Unknown1 |
32 | unsigned | The client gives this value no meaning. |
Taken after EnterWorld. The client refuses it while it already has a player, when no unit has the id (the player's UnitCreate comes first), and when that unit has no base faction. It takes the unit as the player and as the unit it moves before it checks the base faction, and a refusal for the faction undoes neither, so the client keeps that player and goes on refusing PlayerUnit while it has it. The client needs it to finish entering the world; until it arrives the client ignores MovementControl and PathState, and refuses the player's own state (PlayerState).
| Opcode | Direction | Verified to |
|---|---|---|
0x01A6 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Creates a unit in the client's world under an id the client then knows it by: its type and the data that type carries, its stats and other values set by id, the commands applied to it, the spells created on it, its faction, and its display and outfit.
| Opcode | Direction | Verified to |
|---|---|---|
0x0262 |
server to client | purpose |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
6 | unsigned; selects Unknown2
|
Unknown2 |
union, selected by Unknown1
|
|
Unknown2(0) |
when Unknown1 is 0 |
|
Unknown2(0).Unknown0 |
18 | unsigned |
Unknown2(0).Unknown1 |
8 | unsigned |
Unknown2(1) |
when Unknown1 is 1 |
|
Unknown2(1).Unknown0 |
18 | unsigned |
Unknown2(2) |
when Unknown1 is 2 |
|
Unknown2(2).Unknown0 |
18 | unsigned |
Unknown2(3) |
when Unknown1 is 3 |
|
Unknown2(3).Unknown0 |
18 | unsigned |
Unknown2(3).Unknown1 |
14 | unsigned |
Unknown2(3).Unknown2 count |
3 | unsigned |
Unknown2(3).Unknown2 |
array, counted by Unknown2(3).Unknown2 count
|
|
Unknown2(3).Unknown2[].Unknown0 |
2 | unsigned |
Unknown2(3).Unknown2[].Unknown1 |
3 | unsigned |
Unknown2(3).Unknown2[].Unknown2 |
32 | unsigned |
Unknown2(4) |
when Unknown1 is 4 |
|
Unknown2(4).Unknown0 |
18 | unsigned |
Unknown2(5) |
when Unknown1 is 5 |
|
Unknown2(5).Unknown0 |
18 | unsigned |
Unknown2(6) |
when Unknown1 is 6 |
|
Unknown2(6).Unknown0 |
18 | unsigned |
Unknown2(7) |
when Unknown1 is 7 |
|
Unknown2(7).Unknown0 |
18 | unsigned |
Unknown2(7).Unknown1 |
14 | unsigned |
Unknown2(7).Unknown2 |
32 | unsigned |
Unknown2(7).Unknown3 count |
3 | unsigned |
Unknown2(7).Unknown3 |
array, counted by Unknown2(7).Unknown3 count
|
|
Unknown2(7).Unknown3[].Unknown0 |
2 | unsigned |
Unknown2(7).Unknown3[].Unknown1 |
3 | unsigned |
Unknown2(7).Unknown3[].Unknown2 |
32 | unsigned |
Unknown2(8) |
when Unknown1 is 8 |
|
Unknown2(8).Unknown0 |
18 | unsigned |
Unknown2(8).Unknown1 |
8 | unsigned |
Unknown2(9) |
when Unknown1 is 9 |
|
Unknown2(9).Unknown0 |
18 | unsigned |
Unknown2(9).Unknown1 |
14 | unsigned |
Unknown2(9).Unknown2 count |
3 | unsigned |
Unknown2(9).Unknown2 |
array, counted by Unknown2(9).Unknown2 count
|
|
Unknown2(9).Unknown2[].Unknown0 |
2 | unsigned |
Unknown2(9).Unknown2[].Unknown1 |
3 | unsigned |
Unknown2(9).Unknown2[].Unknown2 |
32 | unsigned |
Unknown2(10) |
when Unknown1 is 10 |
|
Unknown2(10).Unknown0 |
18 | unsigned |
Unknown2(10).Unknown1 |
8 | unsigned |
Unknown2(11) |
when Unknown1 is 11 |
|
Unknown2(11).Unknown0 |
18 | unsigned |
Unknown2(11).Unknown1 |
8 | unsigned |
Unknown2(12) |
when Unknown1 is 12 |
|
Unknown2(12).Unknown0 |
18 | unsigned |
Unknown2(13) |
when Unknown1 is 13 |
|
Unknown2(13).Unknown0 |
18 | unsigned |
Unknown2(13).Unknown1 |
8 | unsigned |
Unknown2(14) |
when Unknown1 is 14 |
|
Unknown2(14).Unknown0 |
18 | unsigned |
Unknown2(14).Unknown1 |
32 | unsigned |
Unknown2(15) |
when Unknown1 is 15 |
|
Unknown2(15).Unknown0 |
14 | unsigned |
Unknown2(15).Unknown1 |
15 | unsigned |
Unknown2(15).Unknown2 |
6 | unsigned |
Unknown2(16) |
when Unknown1 is 16 |
|
Unknown2(16).Unknown0 |
18 | unsigned |
Unknown2(17) |
when Unknown1 is 17 |
|
Unknown2(17).Unknown0 |
18 | unsigned |
Unknown2(17).Unknown1 |
2 | unsigned |
Unknown2(17).Unknown2 |
14 | unsigned |
Unknown2(18) |
when Unknown1 is 18 |
|
Unknown2(18).Unknown0 |
18 | unsigned |
Unknown2(18).Unknown1 |
32 | unsigned |
Unknown2(18).Unknown2 |
32 | unsigned |
Unknown2(18).Unknown3 |
4 | unsigned |
Unknown2(19) |
when Unknown1 is 19 |
|
Unknown2(19).Unknown0 |
18 | unsigned |
Unknown2(20) |
when Unknown1 is 20 |
|
Unknown2(20).Unknown0 |
64 | unsigned |
Unknown2(20).Unknown1 |
14 | unsigned |
Unknown2(20).Unknown2 |
varies | wide string |
Unknown2(20).Unknown3 |
5 | unsigned |
Unknown2(20).Unknown4 |
5 | unsigned |
Unknown2(20).Unknown5 |
2 | unsigned |
Unknown2(20).Unknown6 |
64 | unsigned |
Unknown2(20).Unknown7 count |
8 | unsigned |
Unknown2(20).Unknown7 |
array, counted by Unknown2(20).Unknown7 count
|
|
Unknown2(20).Unknown7[] |
32 | unsigned |
Unknown2(20).Unknown8 |
varies | wide string |
Unknown2(20).Unknown9 |
4 | unsigned |
Unknown2(20).Unknown10 count |
5 | unsigned |
Unknown2(20).Unknown10 |
array, counted by Unknown2(20).Unknown10 count
|
|
Unknown2(20).Unknown10[] |
64 | unsigned |
Unknown2(20).Unknown11 count |
6 | unsigned |
Unknown2(20).Unknown11 |
array, counted by Unknown2(20).Unknown11 count
|
|
Unknown2(20).Unknown11[] |
32 | float |
Unknown2(20).Unknown12 |
3 | unsigned |
Unknown2(20).Unknown13 |
8 | unsigned |
Unknown2(20).Unknown14 |
14 | unsigned |
Unknown2(21) |
when Unknown1 is 21 |
|
Unknown2(21).Unknown0 |
18 | unsigned |
Unknown2(22) |
when Unknown1 is 22 |
|
Unknown2(22).Unknown0 |
varies | wide string |
Unknown2(22).Unknown1 count |
8 | unsigned |
Unknown2(22).Unknown1 |
array, counted by Unknown2(22).Unknown1 count
|
|
Unknown2(22).Unknown1[].Unknown0 |
2 | unsigned |
Unknown2(22).Unknown1[].Unknown1 |
the fields below | |
Unknown2(22).Unknown1[].Unknown1.Unknown0.X |
32 | float |
Unknown2(22).Unknown1[].Unknown1.Unknown0.Y |
32 | float |
Unknown2(22).Unknown1[].Unknown1.Unknown0.Z |
32 | float |
Unknown2(22).Unknown1[].Unknown2 |
the fields below | |
Unknown2(22).Unknown1[].Unknown2.Unknown0.X |
32 | float |
Unknown2(22).Unknown1[].Unknown2.Unknown0.Y |
32 | float |
Unknown2(22).Unknown1[].Unknown2.Unknown0.Z |
32 | float |
Unknown2(22).Unknown1[].Unknown3 |
32 | float |
Unknown2(23) |
when Unknown1 is 23 |
|
Unknown2(23).Unknown0 |
64 | unsigned |
Unknown2(23).Unknown1 |
14 | unsigned |
Unknown2(23).Unknown2 |
varies | wide string |
Unknown2(23).Unknown3 |
5 | unsigned |
Unknown2(23).Unknown4 |
5 | unsigned |
Unknown2(23).Unknown5 |
2 | unsigned |
Unknown2(23).Unknown6 |
64 | unsigned |
Unknown2(23).Unknown7 |
varies | wide string |
Unknown2(23).Unknown8 |
4 | unsigned |
Unknown2(23).Unknown9 count |
5 | unsigned |
Unknown2(23).Unknown9 |
array, counted by Unknown2(23).Unknown9 count
|
|
Unknown2(23).Unknown9[] |
64 | unsigned |
Unknown2(23).Unknown10 count |
6 | unsigned |
Unknown2(23).Unknown10 |
array, counted by Unknown2(23).Unknown10 count
|
|
Unknown2(23).Unknown10[] |
32 | float |
Unknown2(23).Unknown11 |
14 | unsigned |
Unknown2(24) |
when Unknown1 is 24 |
|
Unknown2(24).Unknown0 |
18 | unsigned |
Unknown2(24).Unknown1 |
32 | unsigned |
Unknown2(24).Unknown2 |
15 | unsigned |
Unknown2(24).Unknown3 |
varies | wide string |
Unknown2(25) |
when Unknown1 is 25 |
|
Unknown2(25).Unknown0 |
18 | unsigned |
Unknown2(25).Unknown1 |
32 | unsigned |
Unknown2(25).Unknown2 |
15 | unsigned |
Unknown2(26) |
when Unknown1 is 26 |
|
Unknown2(26).Unknown0 |
1 | unsigned |
Unknown2(27) |
when Unknown1 is 27 |
|
Unknown2(27).Unknown0 |
18 | unsigned |
Unknown2(27).Unknown1 |
32 | unsigned |
Unknown2(27).Unknown2 |
varies | wide string |
Unknown2(28) |
when Unknown1 is 28 |
|
Unknown2(28).Unknown0 |
1 | unsigned |
Unknown2(29) |
when Unknown1 is 29 |
|
Unknown2(29).Unknown0 |
18 | unsigned |
Unknown2(29).Unknown1 |
32 | unsigned |
Unknown2(30) |
when Unknown1 is 30 |
|
Unknown2(30).Unknown0 |
18 | unsigned |
Unknown2(31) |
when Unknown1 is 31 |
|
Unknown2(31).Unknown0 |
18 | unsigned |
Unknown2(31).Unknown1 |
32 | unsigned |
Unknown2(31).Unknown2 |
32 | unsigned |
Unknown2(32) |
when Unknown1 is 32 |
|
Unknown2(32).Unknown0 |
18 | unsigned |
Unknown2(32).Unknown1 |
8 | unsigned |
Unknown2(33) |
when Unknown1 is 33 |
|
Unknown2(33).Unknown0 |
18 | unsigned |
Unknown2(34) |
when Unknown1 is 34 |
|
Unknown2(34).Unknown0 |
18 | unsigned |
Unknown2(34).Unknown1 |
14 | unsigned |
Unknown2(35) |
when Unknown1 is 35 |
|
Unknown2(35).Unknown0 |
18 | unsigned |
Unknown2(35).Unknown1 |
14 | unsigned |
Unknown2(36) |
when Unknown1 is 36 |
|
Unknown2(36).Unknown0 |
18 | unsigned |
Unknown2(36).Unknown1 count |
16 | unsigned |
Unknown2(36).Unknown1 |
array, counted by Unknown2(36).Unknown1 count
|
|
Unknown2(36).Unknown1[].Unknown0 |
32 | unsigned |
Unknown3 |
8 | unsigned |
Unknown4 count |
5 | unsigned |
Unknown4 |
array, counted by Unknown4 count
|
|
Unknown4[].Unknown0 |
5 | unsigned |
Unknown4[].Unknown1 |
2 | unsigned; selects Unknown4[].Unknown2
|
Unknown4[].Unknown2 |
union, selected by Unknown4[].Unknown1
|
|
Unknown4[].Unknown2(0) |
when Unknown4[].Unknown1 is 0 |
|
Unknown4[].Unknown2(0).Unknown0 |
32 | unsigned |
Unknown4[].Unknown2(1) |
when Unknown4[].Unknown1 is 1 |
|
Unknown4[].Unknown2(1).Unknown0 |
32 | float |
Unknown4[].Unknown2(2) |
when Unknown4[].Unknown1 is 2 |
|
Unknown4[].Unknown2(2).Unknown0 |
32 | unsigned |
Unknown4[].Unknown2(2).Unknown1 |
32 | unsigned |
Unknown5 |
32 | unsigned |
Unknown6 count |
5 | unsigned |
Unknown6 |
array, counted by Unknown6 count
|
|
Unknown6[].Unknown0 |
5 | unsigned; selects Unknown6[].Unknown1
|
Unknown6[].Unknown1 |
union, selected by Unknown6[].Unknown0
|
|
Unknown6[].Unknown1(0) |
when Unknown6[].Unknown0 is 0 |
|
Unknown6[].Unknown1(0).Unknown0 |
32 | unsigned |
Unknown6[].Unknown1(1) |
when Unknown6[].Unknown0 is 1 |
|
Unknown6[].Unknown1(1).Unknown0 |
32 | unsigned |
Unknown6[].Unknown1(2) |
when Unknown6[].Unknown0 is 2 |
|
Unknown6[].Unknown1(2).Unknown0.X |
32 | float |
Unknown6[].Unknown1(2).Unknown0.Y |
32 | float |
Unknown6[].Unknown1(2).Unknown0.Z |
32 | float |
Unknown6[].Unknown1(2).Unknown1 |
1 | unsigned |
Unknown6[].Unknown1(3) |
when Unknown6[].Unknown0 is 3 |
|
Unknown6[].Unknown1(3).Unknown0 |
10 | unsigned; counts Unknown6[].Unknown1(3).Unknown1, Unknown6[].Unknown1(3).Unknown2
|
Unknown6[].Unknown1(3).Unknown1 |
array, counted by Unknown6[].Unknown1(3).Unknown0
|
|
Unknown6[].Unknown1(3).Unknown1[] |
32 | unsigned |
Unknown6[].Unknown1(3).Unknown2 |
array, counted by Unknown6[].Unknown1(3).Unknown0
|
|
Unknown6[].Unknown1(3).Unknown2[].X |
32 | float |
Unknown6[].Unknown1(3).Unknown2[].Y |
32 | float |
Unknown6[].Unknown1(3).Unknown2[].Z |
32 | float |
Unknown6[].Unknown1(3).Unknown3 |
2 | unsigned |
Unknown6[].Unknown1(3).Unknown4 |
32 | unsigned |
Unknown6[].Unknown1(3).Unknown5 |
1 | unsigned |
Unknown6[].Unknown1(4) |
when Unknown6[].Unknown0 is 4 |
|
Unknown6[].Unknown1(4).Unknown0 count |
10 | unsigned |
Unknown6[].Unknown1(4).Unknown0 |
array, counted by Unknown6[].Unknown1(4).Unknown0 count
|
|
Unknown6[].Unknown1(4).Unknown0[].X |
32 | float |
Unknown6[].Unknown1(4).Unknown0[].Y |
32 | float |
Unknown6[].Unknown1(4).Unknown0[].Z |
32 | float |
Unknown6[].Unknown1(4).Unknown1 |
16 | packed float |
Unknown6[].Unknown1(4).Unknown2 |
2 | unsigned |
Unknown6[].Unknown1(4).Unknown3 |
4 | unsigned |
Unknown6[].Unknown1(4).Unknown4 |
32 | unsigned |
Unknown6[].Unknown1(4).Unknown5 |
1 | unsigned |
Unknown6[].Unknown1(5) |
when Unknown6[].Unknown0 is 5 |
|
Unknown6[].Unknown1(5).Unknown0 |
32 | unsigned |
Unknown6[].Unknown1(5).Unknown1 |
32 | float |
Unknown6[].Unknown1(5).Unknown2 |
32 | float |
Unknown6[].Unknown1(5).Unknown3.X |
16 | packed float |
Unknown6[].Unknown1(5).Unknown3.Y |
16 | packed float |
Unknown6[].Unknown1(5).Unknown3.Z |
16 | packed float |
Unknown6[].Unknown1(5).Unknown4 |
4 | unsigned |
Unknown6[].Unknown1(5).Unknown5 |
32 | unsigned |
Unknown6[].Unknown1(5).Unknown6 |
1 | unsigned |
Unknown6[].Unknown1(5).Unknown7 |
1 | unsigned |
Unknown6[].Unknown1(5).Unknown8 |
1 | unsigned |
Unknown6[].Unknown1(6) |
when Unknown6[].Unknown0 is 6 |
|
Unknown6[].Unknown1(6).Unknown0 count |
10 | unsigned |
Unknown6[].Unknown1(6).Unknown0 |
array, counted by Unknown6[].Unknown1(6).Unknown0 count
|
|
Unknown6[].Unknown1(6).Unknown0[] |
32 | unsigned |
Unknown6[].Unknown1(6).Unknown1 |
16 | packed float |
Unknown6[].Unknown1(6).Unknown2 |
32 | float |
Unknown6[].Unknown1(6).Unknown3 |
32 | float |
Unknown6[].Unknown1(6).Unknown4 |
32 | float |
Unknown6[].Unknown1(6).Unknown5.X |
16 | packed float |
Unknown6[].Unknown1(6).Unknown5.Y |
16 | packed float |
Unknown6[].Unknown1(6).Unknown5.Z |
16 | packed float |
Unknown6[].Unknown1(6).Unknown6 |
4 | unsigned |
Unknown6[].Unknown1(6).Unknown7 |
32 | unsigned |
Unknown6[].Unknown1(6).Unknown8 |
32 | unsigned |
Unknown6[].Unknown1(6).Unknown9 |
1 | unsigned |
Unknown6[].Unknown1(6).Unknown10 |
1 | unsigned |
Unknown6[].Unknown1(7) |
when Unknown6[].Unknown0 is 7 |
|
Unknown6[].Unknown1(7).Unknown0.X |
32 | float |
Unknown6[].Unknown1(7).Unknown0.Y |
32 | float |
Unknown6[].Unknown1(7).Unknown0.Z |
32 | float |
Unknown6[].Unknown1(7).Unknown1.X |
32 | float |
Unknown6[].Unknown1(7).Unknown1.Y |
32 | float |
Unknown6[].Unknown1(7).Unknown1.Z |
32 | float |
Unknown6[].Unknown1(7).Unknown2 |
32 | unsigned |
Unknown6[].Unknown1(7).Unknown3 |
32 | float |
Unknown6[].Unknown1(7).Unknown4 |
32 | unsigned |
Unknown6[].Unknown1(7).Unknown5 |
1 | unsigned |
Unknown6[].Unknown1(8) |
when Unknown6[].Unknown0 is 8 |
|
Unknown6[].Unknown1(8).Unknown0.X |
16 | packed float |
Unknown6[].Unknown1(8).Unknown0.Y |
16 | packed float |
Unknown6[].Unknown1(8).Unknown0.Z |
16 | packed float |
Unknown6[].Unknown1(8).Unknown1 |
1 | unsigned |
Unknown6[].Unknown1(9) |
when Unknown6[].Unknown0 is 9 |
|
Unknown6[].Unknown1(9).Unknown0 |
10 | unsigned; counts Unknown6[].Unknown1(9).Unknown1, Unknown6[].Unknown1(9).Unknown2
|
Unknown6[].Unknown1(9).Unknown1 |
array, counted by Unknown6[].Unknown1(9).Unknown0
|
|
Unknown6[].Unknown1(9).Unknown1[] |
32 | unsigned |
Unknown6[].Unknown1(9).Unknown2 |
array, counted by Unknown6[].Unknown1(9).Unknown0
|
|
Unknown6[].Unknown1(9).Unknown2[].X |
16 | packed float |
Unknown6[].Unknown1(9).Unknown2[].Y |
16 | packed float |
Unknown6[].Unknown1(9).Unknown2[].Z |
16 | packed float |
Unknown6[].Unknown1(9).Unknown3 |
2 | unsigned |
Unknown6[].Unknown1(9).Unknown4 |
32 | unsigned |
Unknown6[].Unknown1(9).Unknown5 |
1 | unsigned |
Unknown6[].Unknown1(10) |
when Unknown6[].Unknown0 is 10 |
|
Unknown6[].Unknown1(10).Unknown0 |
1 | unsigned |
Unknown6[].Unknown1(11) |
when Unknown6[].Unknown0 is 11 |
|
Unknown6[].Unknown1(11).Unknown0.X |
16 | packed float |
Unknown6[].Unknown1(11).Unknown0.Y |
16 | packed float |
Unknown6[].Unknown1(11).Unknown0.Z |
16 | packed float |
Unknown6[].Unknown1(11).Unknown1 |
1 | unsigned |
Unknown6[].Unknown1(12) |
when Unknown6[].Unknown0 is 12 |
|
Unknown6[].Unknown1(12).Unknown0 |
10 | unsigned; counts Unknown6[].Unknown1(12).Unknown1, Unknown6[].Unknown1(12).Unknown2
|
Unknown6[].Unknown1(12).Unknown1 |
array, counted by Unknown6[].Unknown1(12).Unknown0
|
|
Unknown6[].Unknown1(12).Unknown1[] |
32 | unsigned |
Unknown6[].Unknown1(12).Unknown2 |
array, counted by Unknown6[].Unknown1(12).Unknown0
|
|
Unknown6[].Unknown1(12).Unknown2[].X |
16 | packed float |
Unknown6[].Unknown1(12).Unknown2[].Y |
16 | packed float |
Unknown6[].Unknown1(12).Unknown2[].Z |
16 | packed float |
Unknown6[].Unknown1(12).Unknown3 |
2 | unsigned |
Unknown6[].Unknown1(12).Unknown4 |
32 | unsigned |
Unknown6[].Unknown1(12).Unknown5 |
1 | unsigned |
Unknown6[].Unknown1(13) |
when Unknown6[].Unknown0 is 13 |
|
Unknown6[].Unknown1(13).Unknown0 |
1 | unsigned |
Unknown6[].Unknown1(14) |
when Unknown6[].Unknown0 is 14 |
|
Unknown6[].Unknown1(14).Unknown0.X |
32 | float |
Unknown6[].Unknown1(14).Unknown0.Y |
32 | float |
Unknown6[].Unknown1(14).Unknown0.Z |
32 | float |
Unknown6[].Unknown1(14).Unknown1 |
1 | unsigned |
Unknown6[].Unknown1(15) |
when Unknown6[].Unknown0 is 15 |
|
Unknown6[].Unknown1(15).Unknown0 |
10 | unsigned; counts Unknown6[].Unknown1(15).Unknown1, Unknown6[].Unknown1(15).Unknown2
|
Unknown6[].Unknown1(15).Unknown1 |
array, counted by Unknown6[].Unknown1(15).Unknown0
|
|
Unknown6[].Unknown1(15).Unknown1[] |
32 | unsigned |
Unknown6[].Unknown1(15).Unknown2 |
array, counted by Unknown6[].Unknown1(15).Unknown0
|
|
Unknown6[].Unknown1(15).Unknown2[].X |
32 | float |
Unknown6[].Unknown1(15).Unknown2[].Y |
32 | float |
Unknown6[].Unknown1(15).Unknown2[].Z |
32 | float |
Unknown6[].Unknown1(15).Unknown3 |
2 | unsigned |
Unknown6[].Unknown1(15).Unknown4 |
32 | unsigned |
Unknown6[].Unknown1(15).Unknown5 |
1 | unsigned |
Unknown6[].Unknown1(16) |
when Unknown6[].Unknown0 is 16 |
|
Unknown6[].Unknown1(16).Unknown0 |
32 | unsigned |
Unknown6[].Unknown1(16).Unknown1 |
16 | unsigned |
Unknown6[].Unknown1(16).Unknown2 |
32 | float |
Unknown6[].Unknown1(16).Unknown3 |
4 | unsigned |
Unknown6[].Unknown1(16).Unknown4 |
32 | unsigned |
Unknown6[].Unknown1(16).Unknown5 |
1 | unsigned |
Unknown6[].Unknown1(16).Unknown6 |
1 | unsigned |
Unknown6[].Unknown1(17) |
when Unknown6[].Unknown0 is 17 |
|
Unknown6[].Unknown1(17).Unknown0 count |
10 | unsigned |
Unknown6[].Unknown1(17).Unknown0 |
array, counted by Unknown6[].Unknown1(17).Unknown0 count
|
|
Unknown6[].Unknown1(17).Unknown0[] |
32 | unsigned |
Unknown6[].Unknown1(17).Unknown1 |
16 | packed float |
Unknown6[].Unknown1(17).Unknown2 |
32 | float |
Unknown6[].Unknown1(17).Unknown3 |
32 | float |
Unknown6[].Unknown1(17).Unknown4 |
32 | float |
Unknown6[].Unknown1(17).Unknown5 |
4 | unsigned |
Unknown6[].Unknown1(17).Unknown6 |
32 | unsigned |
Unknown6[].Unknown1(17).Unknown7 |
32 | unsigned |
Unknown6[].Unknown1(17).Unknown8 |
1 | unsigned |
Unknown6[].Unknown1(18) |
when Unknown6[].Unknown0 is 18 |
|
Unknown6[].Unknown1(18).Unknown0 |
32 | unsigned |
Unknown6[].Unknown1(18).Unknown1 |
1 | unsigned |
Unknown6[].Unknown1(19) |
when Unknown6[].Unknown0 is 19 |
|
Unknown6[].Unknown1(19).Unknown0.X |
32 | float |
Unknown6[].Unknown1(19).Unknown0.Y |
32 | float |
Unknown6[].Unknown1(19).Unknown0.Z |
32 | float |
Unknown6[].Unknown1(19).Unknown1 |
1 | unsigned |
Unknown6[].Unknown1(20) |
when Unknown6[].Unknown0 is 20 |
|
Unknown6[].Unknown1(20).Unknown0.X |
32 | float |
Unknown6[].Unknown1(20).Unknown0.Y |
32 | float |
Unknown6[].Unknown1(20).Unknown0.Z |
32 | float |
Unknown6[].Unknown1(20).Unknown1 |
32 | unsigned |
Unknown6[].Unknown1(20).Unknown2 |
16 | packed float |
Unknown6[].Unknown1(20).Unknown3 |
32 | unsigned |
Unknown6[].Unknown1(20).Unknown4 |
1 | unsigned |
Unknown6[].Unknown1(21) |
when Unknown6[].Unknown0 is 21 |
|
Unknown6[].Unknown1(21).Unknown0 |
1 | unsigned |
Unknown6[].Unknown1(22) |
when Unknown6[].Unknown0 is 22 |
|
Unknown6[].Unknown1(22).Unknown0 |
16 | packed float |
Unknown6[].Unknown1(22).Unknown1 |
1 | unsigned |
Unknown6[].Unknown1(23) |
when Unknown6[].Unknown0 is 23 |
|
Unknown6[].Unknown1(23).Unknown0 |
8 | unsigned; counts Unknown6[].Unknown1(23).Unknown1, Unknown6[].Unknown1(23).Unknown2
|
Unknown6[].Unknown1(23).Unknown1 |
array, counted by Unknown6[].Unknown1(23).Unknown0
|
|
Unknown6[].Unknown1(23).Unknown1[] |
32 | unsigned |
Unknown6[].Unknown1(23).Unknown2 |
array, counted by Unknown6[].Unknown1(23).Unknown0
|
|
Unknown6[].Unknown1(23).Unknown2[] |
16 | packed float |
Unknown6[].Unknown1(23).Unknown3 |
2 | unsigned |
Unknown6[].Unknown1(23).Unknown4 |
32 | unsigned |
Unknown6[].Unknown1(23).Unknown5 |
1 | unsigned |
Unknown6[].Unknown1(24) |
when Unknown6[].Unknown0 is 24 |
|
Unknown6[].Unknown1(24).Unknown0 |
32 | unsigned |
Unknown6[].Unknown1(25) |
when Unknown6[].Unknown0 is 25 |
|
Unknown6[].Unknown1(25).Unknown0 |
8 | unsigned; counts Unknown6[].Unknown1(25).Unknown1, Unknown6[].Unknown1(25).Unknown2
|
Unknown6[].Unknown1(25).Unknown1 |
array, counted by Unknown6[].Unknown1(25).Unknown0
|
|
Unknown6[].Unknown1(25).Unknown1[] |
32 | unsigned |
Unknown6[].Unknown1(25).Unknown2 |
array, counted by Unknown6[].Unknown1(25).Unknown0
|
|
Unknown6[].Unknown1(25).Unknown2[] |
32 | unsigned |
Unknown6[].Unknown1(25).Unknown3 |
32 | unsigned |
Unknown6[].Unknown1(26) |
when Unknown6[].Unknown0 is 26 |
|
Unknown6[].Unknown1(26).Unknown0 |
1 | unsigned |
Unknown6[].Unknown1(27) |
when Unknown6[].Unknown0 is 27 |
|
Unknown6[].Unknown1(27).Unknown0 |
32 | unsigned |
Unknown6[].Unknown1(28) |
when Unknown6[].Unknown0 is 28 |
|
Unknown6[].Unknown1(28).Unknown0 |
8 | unsigned; counts Unknown6[].Unknown1(28).Unknown1, Unknown6[].Unknown1(28).Unknown2
|
Unknown6[].Unknown1(28).Unknown1 |
array, counted by Unknown6[].Unknown1(28).Unknown0
|
|
Unknown6[].Unknown1(28).Unknown1[] |
32 | unsigned |
Unknown6[].Unknown1(28).Unknown2 |
array, counted by Unknown6[].Unknown1(28).Unknown0
|
|
Unknown6[].Unknown1(28).Unknown2[] |
32 | unsigned |
Unknown6[].Unknown1(28).Unknown3 |
32 | unsigned |
Unknown6[].Unknown1(29) |
when Unknown6[].Unknown0 is 29 |
|
Unknown6[].Unknown1(29).Unknown0 |
1 | unsigned |
Unknown7 count |
8 | unsigned |
Unknown7 |
array, counted by Unknown7 count
|
|
Unknown7[].Unknown0 |
8 | unsigned |
Unknown7[].Unknown1 |
32 | float |
Unknown7[].Unknown2 |
32 | float |
Unknown8 count |
7 | unsigned |
Unknown8 |
array, counted by Unknown8 count
|
|
Unknown8[].Unknown0 |
7 | unsigned |
Unknown8[].Unknown1 |
15 | unsigned |
Unknown8[].Unknown2 |
14 | unsigned |
Unknown8[].Unknown3 |
32 | unsigned |
Unknown9 count |
9 | unsigned |
Unknown9 |
array, counted by Unknown9 count
|
|
Unknown9[].Unknown0 |
32 | unsigned |
Unknown9[].Unknown1 |
32 | unsigned |
Unknown9[].Unknown2 |
32 | unsigned |
Unknown9[].Unknown3 |
18 | unsigned |
Unknown9[].Unknown4 |
1 | unsigned |
Unknown9[].Unknown5 count |
32 | unsigned |
Unknown9[].Unknown5 |
array, counted by Unknown9[].Unknown5 count
|
|
Unknown9[].Unknown5[].Unknown0 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown1 |
8 | unsigned |
Unknown9[].Unknown5[].Unknown2 |
8 | unsigned |
Unknown9[].Unknown5[].Unknown3 |
16 | unsigned |
Unknown9[].Unknown5[].Unknown4 |
4 | unsigned |
Unknown9[].Unknown5[].Unknown5 count |
8 | unsigned |
Unknown9[].Unknown5[].Unknown5 |
array, counted by Unknown9[].Unknown5[].Unknown5 count
|
|
Unknown9[].Unknown5[].Unknown5[].Unknown0 |
19 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown1 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown2 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown3 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown4 |
2 | unsigned; selects Unknown9[].Unknown5[].Unknown5[].Unknown5
|
Unknown9[].Unknown5[].Unknown5[].Unknown5 |
union, selected by Unknown9[].Unknown5[].Unknown5[].Unknown4
|
|
Unknown9[].Unknown5[].Unknown5[].Unknown5(0) |
when Unknown9[].Unknown5[].Unknown5[].Unknown4 is 0 |
|
Unknown9[].Unknown5[].Unknown5[].Unknown5(0).Unknown0 |
1 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1) |
when Unknown9[].Unknown5[].Unknown5[].Unknown4 is 1 |
|
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0 |
the fields below | |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown0 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown1 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown2 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown3 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown4 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown5 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown6 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown7 |
1 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown8 |
4 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown9 |
3 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10 count |
8 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10 |
array, counted by Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10 count
|
|
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10[].Unknown0 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10[].Unknown1 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10[].Unknown2 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10[].Unknown3 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10[].Unknown4 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10[].Unknown5 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10[].Unknown6 |
32 | unsigned |
Unknown9[].Unknown5[].Unknown5[].Unknown5(1).Unknown0.Unknown10[].Unknown7 |
3 | unsigned |
Unknown9[].Unknown6 count |
8 | unsigned |
Unknown9[].Unknown6 |
array, counted by Unknown9[].Unknown6 count
|
|
Unknown9[].Unknown6[].Unknown0 |
32 | unsigned |
Unknown9[].Unknown6[].Unknown1 |
8 | unsigned |
Unknown9[].Unknown6[].Unknown2 |
the fields below | |
Unknown9[].Unknown6[].Unknown2.Unknown0.X |
32 | float |
Unknown9[].Unknown6[].Unknown2.Unknown0.Y |
32 | float |
Unknown9[].Unknown6[].Unknown2.Unknown0.Z |
32 | float |
Unknown9[].Unknown6[].Unknown3 |
32 | float |
Unknown9[].Unknown6[].Unknown4 |
32 | float |
Unknown9[].Unknown7 count |
8 | unsigned |
Unknown9[].Unknown7 |
array, counted by Unknown9[].Unknown7 count
|
|
Unknown9[].Unknown7[].Unknown0 |
16 | unsigned |
Unknown9[].Unknown7[].Unknown1 |
32 | unsigned |
Unknown9[].Unknown7[].Unknown2 |
8 | unsigned |
Unknown9[].Unknown7[].Unknown3 |
the fields below | |
Unknown9[].Unknown7[].Unknown3.Unknown0.X |
32 | float |
Unknown9[].Unknown7[].Unknown3.Unknown0.Y |
32 | float |
Unknown9[].Unknown7[].Unknown3.Unknown0.Z |
32 | float |
Unknown9[].Unknown7[].Unknown4 |
32 | float |
Unknown9[].Unknown7[].Unknown5 |
32 | float |
Unknown10 |
32 | unsigned |
Unknown11 |
14 | unsigned |
Unknown12 |
14 | unsigned |
Unknown13 |
32 | unsigned |
Unknown14 |
64 | unsigned |
Unknown15 |
the fields below | |
Unknown15.Unknown0 |
2 | unsigned; selects Unknown15.Unknown1
|
Unknown15.Unknown1 |
union, selected by Unknown15.Unknown0
|
|
Unknown15.Unknown1(0) |
when Unknown15.Unknown0 is 0 |
|
Unknown15.Unknown1(0).Unknown0 |
1 | unsigned |
Unknown15.Unknown1(1) |
when Unknown15.Unknown0 is 1 |
|
Unknown15.Unknown1(1).Unknown0 |
17 | unsigned |
Unknown16 |
the fields below | |
Unknown16.Unknown0 |
2 | unsigned; selects Unknown16.Unknown1
|
Unknown16.Unknown1 |
union, selected by Unknown16.Unknown0
|
|
Unknown16.Unknown1(0) |
when Unknown16.Unknown0 is 0 |
|
Unknown16.Unknown1(0).Unknown0 |
1 | unsigned |
Unknown16.Unknown1(1) |
when Unknown16.Unknown0 is 1 |
|
Unknown16.Unknown1(1).Unknown0 |
64 | unsigned |
Unknown16.Unknown1(1).Unknown1 |
14 | unsigned |
Unknown17 |
the fields below | |
Unknown17.Unknown0 |
2 | unsigned; selects Unknown17.Unknown1
|
Unknown17.Unknown1 |
union, selected by Unknown17.Unknown0
|
|
Unknown17.Unknown1(0) |
when Unknown17.Unknown0 is 0 |
|
Unknown17.Unknown1(0).Unknown0 |
1 | unsigned |
Unknown17.Unknown1(1) |
when Unknown17.Unknown0 is 1 |
|
Unknown17.Unknown1(1).Unknown0 |
32 | unsigned |
Unknown17.Unknown1(1).Unknown1 |
18 | unsigned |
Unknown18 |
14 | unsigned |
Unknown19 |
17 | unsigned |
Unknown20 |
15 | unsigned |
The client ignores a create for an id it already has, and that unit keeps what it had. Among the units it refuses are a unit whose type (Unknown1) is 21, 26 or 28, a unit with a command it cannot apply, a unit that names a creature the client does not have unless its type is 10 or 16, a type-20 unit whose Unknown0 or Unknown1 is 0 or whose Unknown3 is above 17, and a type-23 unit whose Unknown3 is above 17. The player's unit comes from this message before PlayerUnit names it, and the client refuses that PlayerUnit unless Unknown12 is an id in the client's Faction2 table. If MovementControl named the id before the unit existed, the client takes control of the unit as it creates it.
| Opcode | Direction | Verified to |
|---|---|---|
0x0355 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
1 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x037F |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
14 | unsigned |
Unknown1 |
32 | unsigned |
Unknown2 |
32 | unsigned |
Unknown3 |
32 | unsigned |
Unknown4 |
1 | unsigned |
Unknown5 |
1 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x04D4 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 count |
8 | unsigned |
Unknown1 |
array, counted by Unknown1 count
|
|
Unknown1[] |
64 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0553 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 count |
5 | unsigned |
Unknown1 |
array, counted by Unknown1 count
|
|
Unknown1[].Unknown0 |
64 | unsigned |
Unknown1[].Unknown1 |
64 | unsigned |
Unknown1[].Unknown2 |
18 | unsigned |
Unknown1[].Unknown3 |
the fields below | |
Unknown1[].Unknown3.Unknown0 |
9 | unsigned |
Unknown1[].Unknown3.Unknown1 |
32 | unsigned |
Unknown1[].Unknown4 |
32 | unsigned |
Unknown1[].Unknown5 |
32 | unsigned |
Unknown1[].Unknown6 |
64 | unsigned |
Unknown1[].Unknown7 |
32 | unsigned |
Unknown1[].Unknown8 |
64 | unsigned |
Unknown1[].Unknown9 |
32 | float |
Unknown1[].Unknown10 |
32 | unsigned |
Unknown1[].Unknown11 |
8 | unsigned |
Unknown1[].Unknown12 |
32 | unsigned |
Unknown1[].Unknown13 |
32 | unsigned |
Unknown1[].Unknown14 |
32 | unsigned |
Unknown1[].Unknown15[0] |
the fields below | |
Unknown1[].Unknown15[0].Unknown0 |
3 | unsigned |
Unknown1[].Unknown15[0].Unknown1 |
32 | unsigned |
Unknown1[].Unknown15[0].Unknown2 |
32 | unsigned |
Unknown1[].Unknown15[1] |
the fields below | |
Unknown1[].Unknown15[1].Unknown0 |
3 | unsigned |
Unknown1[].Unknown15[1].Unknown1 |
32 | unsigned |
Unknown1[].Unknown15[1].Unknown2 |
32 | unsigned |
Unknown1[].Unknown16 |
18 | unsigned |
Unknown1[].Unknown17 count |
3 | unsigned |
Unknown1[].Unknown17 |
array, counted by Unknown1[].Unknown17 count
|
|
Unknown1[].Unknown17[] |
32 | unsigned |
Unknown1[].Unknown18 count |
4 | unsigned |
Unknown1[].Unknown18 |
array, counted by Unknown1[].Unknown18 count
|
|
Unknown1[].Unknown18[] |
32 | unsigned |
Unknown1[].Unknown19 count |
6 | unsigned |
Unknown1[].Unknown19 |
array, counted by Unknown1[].Unknown19 count
|
|
Unknown1[].Unknown19[].Unknown0 |
14 | unsigned |
Unknown1[].Unknown19[].Unknown1 |
64 | unsigned |
Unknown1[].Unknown20 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0568 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
the fields below | |
Unknown0.Unknown0 |
64 | unsigned |
Unknown0.Unknown1 |
64 | unsigned |
Unknown1 |
the fields below | |
Unknown1.Unknown0 |
64 | unsigned |
Unknown1.Unknown1 |
64 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0569 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
the fields below | |
Unknown0.Unknown0 |
64 | unsigned |
Unknown0.Unknown1 |
64 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0753 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
the fields below | |
Unknown0.Unknown0 |
32 | unsigned |
Unknown0.Unknown1 |
32 | unsigned |
Unknown0.Unknown2 count |
8 | unsigned |
Unknown0.Unknown2 |
array, counted by Unknown0.Unknown2 count
|
|
Unknown0.Unknown2[].Unknown0 |
3 | unsigned; selects Unknown0.Unknown2[].Unknown1
|
Unknown0.Unknown2[].Unknown1 |
union, selected by Unknown0.Unknown2[].Unknown0
|
|
Unknown0.Unknown2[].Unknown1(0) |
when Unknown0.Unknown2[].Unknown0 is 0 |
|
Unknown0.Unknown2[].Unknown1(0).Unknown0 |
18 | unsigned |
Unknown0.Unknown2[].Unknown1(0).Unknown1 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(0).Unknown2 |
varies | narrow string |
Unknown0.Unknown2[].Unknown1(1) |
when Unknown0.Unknown2[].Unknown0 is 1 |
|
Unknown0.Unknown2[].Unknown1(1).Unknown0 |
varies | wide string |
Unknown0.Unknown2[].Unknown1(1).Unknown1 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(1).Unknown2 |
varies | narrow string |
Unknown0.Unknown2[].Unknown1(2) |
when Unknown0.Unknown2[].Unknown0 is 2 |
|
Unknown0.Unknown2[].Unknown1(2).Unknown0 |
21 | unsigned |
Unknown0.Unknown2[].Unknown1(2).Unknown1 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(2).Unknown2 |
varies | narrow string |
Unknown0.Unknown2[].Unknown1(3) |
when Unknown0.Unknown2[].Unknown0 is 3 |
|
Unknown0.Unknown2[].Unknown1(3).Unknown0 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown1 |
varies | wide string |
Unknown0.Unknown2[].Unknown1(3).Unknown2 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown3 |
2 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown4 |
5 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown5 |
5 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown6 |
14 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown7 |
3 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown8 |
14 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown9 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown10 |
varies | narrow string |
Unknown0.Unknown2[].Unknown1(4) |
when Unknown0.Unknown2[].Unknown0 is 4 |
|
Unknown0.Unknown2[].Unknown1(4).Unknown0 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(4).Unknown1 |
18 | unsigned |
Unknown0.Unknown2[].Unknown1(4).Unknown2 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(4).Unknown3 |
varies | narrow string |
Unknown0.Unknown2[].Unknown1(5) |
when Unknown0.Unknown2[].Unknown0 is 5 |
|
Unknown0.Unknown2[].Unknown1(5).Unknown0 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(5).Unknown1 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(5).Unknown2 |
varies | narrow string |
Unknown1 |
32 | unsigned |
Unknown2 |
1 | unsigned |
Unknown3 |
1 | unsigned |
Unknown4 |
32 | float |
| Opcode | Direction | Verified to |
|---|---|---|
0x075C |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
the fields below | |
Unknown0.Unknown0 |
32 | unsigned |
Unknown0.Unknown1 |
32 | unsigned |
Unknown0.Unknown2 count |
8 | unsigned |
Unknown0.Unknown2 |
array, counted by Unknown0.Unknown2 count
|
|
Unknown0.Unknown2[].Unknown0 |
3 | unsigned; selects Unknown0.Unknown2[].Unknown1
|
Unknown0.Unknown2[].Unknown1 |
union, selected by Unknown0.Unknown2[].Unknown0
|
|
Unknown0.Unknown2[].Unknown1(0) |
when Unknown0.Unknown2[].Unknown0 is 0 |
|
Unknown0.Unknown2[].Unknown1(0).Unknown0 |
18 | unsigned |
Unknown0.Unknown2[].Unknown1(0).Unknown1 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(0).Unknown2 |
varies | narrow string |
Unknown0.Unknown2[].Unknown1(1) |
when Unknown0.Unknown2[].Unknown0 is 1 |
|
Unknown0.Unknown2[].Unknown1(1).Unknown0 |
varies | wide string |
Unknown0.Unknown2[].Unknown1(1).Unknown1 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(1).Unknown2 |
varies | narrow string |
Unknown0.Unknown2[].Unknown1(2) |
when Unknown0.Unknown2[].Unknown0 is 2 |
|
Unknown0.Unknown2[].Unknown1(2).Unknown0 |
21 | unsigned |
Unknown0.Unknown2[].Unknown1(2).Unknown1 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(2).Unknown2 |
varies | narrow string |
Unknown0.Unknown2[].Unknown1(3) |
when Unknown0.Unknown2[].Unknown0 is 3 |
|
Unknown0.Unknown2[].Unknown1(3).Unknown0 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown1 |
varies | wide string |
Unknown0.Unknown2[].Unknown1(3).Unknown2 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown3 |
2 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown4 |
5 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown5 |
5 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown6 |
14 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown7 |
3 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown8 |
14 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown9 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(3).Unknown10 |
varies | narrow string |
Unknown0.Unknown2[].Unknown1(4) |
when Unknown0.Unknown2[].Unknown0 is 4 |
|
Unknown0.Unknown2[].Unknown1(4).Unknown0 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(4).Unknown1 |
18 | unsigned |
Unknown0.Unknown2[].Unknown1(4).Unknown2 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(4).Unknown3 |
varies | narrow string |
Unknown0.Unknown2[].Unknown1(5) |
when Unknown0.Unknown2[].Unknown0 is 5 |
|
Unknown0.Unknown2[].Unknown1(5).Unknown0 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(5).Unknown1 |
32 | unsigned |
Unknown0.Unknown2[].Unknown1(5).Unknown2 |
varies | narrow string |
Unknown1 |
32 | unsigned |
Unknown2 |
18 | unsigned |
Unknown3 |
32 | float |
| Opcode | Direction | Verified to |
|---|---|---|
0x086F |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
2 | unsigned |
Unknown2 |
3 | unsigned |
Unknown3 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0881 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x089B |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
32 | unsigned |
Unknown2 |
2 | unsigned |
Unknown3 |
3 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x08A5 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
32 | unsigned |
Unknown2 |
the fields below | |
Unknown2.Unknown0 |
32 | unsigned |
Unknown2.Unknown1 |
32 | unsigned |
Unknown2.Unknown2 |
32 | unsigned |
Unknown2.Unknown3 |
32 | unsigned |
Unknown2.Unknown4 |
1 | unsigned |
Unknown2.Unknown5 |
1 | unsigned |
Unknown2.Unknown6 |
1 | unsigned |
Unknown2.Unknown7 |
1 | unsigned |
Unknown2.Unknown8 |
32 | unsigned |
Unknown2.Unknown9 |
64 | unsigned |
Unknown2.Unknown10 |
32 | unsigned |
Unknown2.Unknown11 |
32 | unsigned |
Unknown2.Unknown12 count |
32 | unsigned |
Unknown2.Unknown12 |
array, counted by Unknown2.Unknown12 count
|
|
Unknown2.Unknown12[].Unknown0 |
14 | unsigned |
Unknown2.Unknown12[].Unknown1 |
64 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x08A8 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
18 | unsigned |
Unknown2 |
17 | unsigned |
Unknown3 |
1 | unsigned |
Unknown4 |
1 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x08B8 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
3 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x08C7 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x08CC |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
varies | wide string |
| Opcode | Direction | Verified to |
|---|---|---|
0x08CF |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
32 | unsigned |
Unknown2 |
1 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0905 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
5 | unsigned |
Unknown2 |
2 | unsigned |
Unknown3 |
18 | unsigned |
Unknown4 |
17 | unsigned |
Unknown5 |
15 | unsigned |
Unknown6 |
32 | unsigned |
Unknown7 |
1 | unsigned |
Unknown8 count |
32 | unsigned |
Unknown8 |
array, counted by Unknown8 count
|
|
Unknown8[].Unknown0 |
7 | unsigned |
Unknown8[].Unknown1 |
15 | unsigned |
Unknown8[].Unknown2 |
14 | unsigned |
Unknown8[].Unknown3 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0908 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
32 | unsigned |
Unknown2 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x090A |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
32 | unsigned |
Unknown2 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0931 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 count |
32 | unsigned |
Unknown1 |
array, counted by Unknown1 count
|
|
Unknown1[] |
32 | float |
| Opcode | Direction | Verified to |
|---|---|---|
0x0934 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
14 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0935 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
the fields below | |
Unknown1.Unknown0 |
5 | unsigned |
Unknown1.Unknown1 |
32 | float |
| Opcode | Direction | Verified to |
|---|---|---|
0x0938 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
the fields below | |
Unknown1.Unknown0 |
5 | unsigned |
Unknown1.Unknown1 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0939 |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
14 | unsigned |
Unknown2 |
18 | unsigned |
Unknown3 |
varies | wide string |
| Opcode | Direction | Verified to |
|---|---|---|
0x093A |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 count |
8 | unsigned |
Unknown1 |
array, counted by Unknown1 count
|
|
Unknown1[].Unknown0 |
8 | unsigned |
Unknown1[].Unknown1 |
32 | float |
Unknown1[].Unknown2 |
32 | float |
| Opcode | Direction | Verified to |
|---|---|---|
0x093B |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x093C |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
4 | unsigned |
Unknown2 |
14 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x093D |
server to client | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
5 | unsigned |
Unknown2 |
32 | unsigned |
Unknown3 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x00C3 |
client to server | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
8 | unsigned |
Unknown1 |
8 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x014E |
client to server | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
1 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x015A |
client to server | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x015C |
client to server | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
3 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0185 |
client to server | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0432 |
client to server | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x0552 |
client to server | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
| Opcode | Direction | Verified to |
|---|---|---|
0x07EA |
client to server | unverified |
| Field | Bits | Encoding |
|---|---|---|
Unknown0 |
32 | unsigned |
Unknown1 |
7 | unsigned |
| Piece | Path |
|---|---|
| Message declarations | Source/NexusTomorrow.Network.World/Message/Model/Entity/ |
| This page's generator | Tools/NexusTomorrow.ProtocolReference/ |
Start here
How the server works
- Server core design
- Host
- Gateway
- Owners
- Persistence
- Command layer
- Harness
- Map scheduler design
- Timer wheel design
The protocol
Working on it