SMBX NPC Offsets
Jump to navigation
Jump to search
This is the memory map for the npc struct. This struct is not fully analysed. Any help is appreciated!
Please note that the data may not be fully 100% accurate.
| NPC Memory | |||
|---|---|---|---|
| Name | Memory address | Memory type | Description |
| Attached layer name | NPC+0x00 | VB6 String Pointer | The attached layer name. |
| Unknown | NPC+0x04 | Word | Unknown |
| Unknown decrementing timer | NPC+0x06 | Word | Unknown decrementing timer |
| Activate event layer name | NPC+0x2C | VB6 String Pointer | Activate event layer name |
| Death event layer name | NPC+0x30 | VB6 String Pointer | Death event layer name |
| Talk event name? | NPC+0x34 | VB6 String Pointer | Talk event name? |
| No More Objs event layer name | NPC+0x38 | VB6 String Pointer | No More Objs event layer name |
| Layer name | NPC+0x3C | VB6 String Pointer | Layer name |
| Unknown | NPC+0x40 | Word | Unknown (some sort of hide value if -1) |
| Activated | NPC+0x44 | Word | Activated / interacted with player flag |
| Friendly | NPC+0x46 | Word | Friendly (on = 0xFFFF) |
| Don't Move | NPC+0x48 | Word | Don't Move (on = 0xFFFF) |
| NPC Message text | NPC+0x4C | VB6 String Pointer | NPC Message text |
| Is a generator | NPC+0x64 | Word | Is a generator? |
| Generator delay setting | NPC+0x68 | Float | Generator delay setting |
| Generator firing rate | NPC+0x6A | Word | Generator firing rate |
| Generator delay countdown | NPC+0x6C | Float | Generator delay countdown |
| Direction to generate NPC? | NPC+0x70 | Word | Direction to generate NPC? |
| Layer to spawn NPC on | NPC+0x72 | Word | Which layer to spawn NPC on |
| Invalidity/offscreen flag? | NPC+0x74 | Word | Invalidity or offscreen flag? |
| X position | NPC+0x78 | Double | X position |
| Y position | NPC+0x80 | Double | Y position |
| Width | NPC+0x88 | Double | Width |
| Height | NPC+0x90 | Double | Height |
| X Speed | NPC+0x98 | Double | X Speed |
| Y Speed | NPC+0xA0 | Double | Y Speed |
| Spawn X | NPC+0xAC | Double | Spawn X |
| Spawn Y | NPC+0xB4 | Double | Spawn Y |
| Id | NPC+0xE2 | Word | Sprite GFX index/Identity |
| Animation frame | NPC+0xE4 | Word | Animation frame |
| Animation timer | NPC+0xE8 | Float | Animation timer |
| Throw id? | NPC+0xF4 | Unknown | Related to lakitu throw identity? |
| Grabbable gun projectile timer | NPC+0xFC | Word | Grabbable gun projectile timer |
| Lakitu throw timer | NPC+0x110 | Float | Lakitu throw timer |
| Direction faced | NPC+0x118 | Float | Direction faced |
| Kill flag | NPC+0x122 | Word | Kill/Kill effect (0 = No kill/ 1-? Kill effect with kill) |
| Unknown | NPC+0x124 | Word | Unknown |
| Offscreen flag | NPC+0x128 | Double | Offscreen flag (0xFFFFFFFF = offscreen) |
| Offscreen countdown timer? | NPC+0x12A | Word | Offscreen countdown timer? |
| Unknown | NPC+0x12C | Word | Unknown grabbing-related |
| On spawn? | NPC+0x136 | Word | FFFF on spawn |
| Current Section | NPC+0x146 | Word | Current section this NPC is on |
| Unknown | NPC+0x148 | Float | Hit count |