- 239
- Posts
- 9
- Years
- Seen Apr 17, 2025
The maximum number of object templates on a map is 64, yet Gamefreak decided to limit the maximum number of visible objects on the map to 16 for some reason. But what if you have a big map or intensive scripting event? createsprite is nice for temporary sprites, but they won't stick around after trainerbattles or warps. This project expands this number to 30 (29 including the player). It involves using some unused saveblock space to save the current map event objects and repointing gEventObjects (0x2036E38) and gMovementScripts (0x2039830).
Here's a GIF of a map with 17 event objects with events 16 and 17 being assigned a movement script (old lady) and a interaction script (tuber girl):
Here is the repo. I've tested up to 20 event objects with weather without any bugs yet.
gMovementScripts is repointed to 0x203c000 by default, and gEventObjects to 0x203c078 by default. You can change these in src/defines.h and ./ram_repoints. These ram addresses are incompatible with most other hacks/projects (mainly the CFRU). gMovementScripts is 4bytes per event objects, so 120 bytes. gEventObjects is 36 bytes per event object, or 1080 bytes. I'm also pretty sure the ram doesn't need to be in the save data, as the event object states are saved to saveblock1. I've tested with non-save block ram with no issues so far.
Also note that this type of feature is much more easily implemented in decomps for those still wondering why they are so great.
Bugs: find a list of known bugs here. There are likely some limiter checks missing, and the Vs Seeker will still only search the first 15 objects still (this will require more ram repointing/vs Seeker re-structuring)
Credits: here is a list of credits.
Here's a GIF of a map with 17 event objects with events 16 and 17 being assigned a movement script (old lady) and a interaction script (tuber girl):
![[PokeCommunity.com] [FR] More Map Event Objects [PokeCommunity.com] [FR] More Map Event Objects](https://i.imgur.com/UNdmqxH.gif)
Here is the repo. I've tested up to 20 event objects with weather without any bugs yet.
gMovementScripts is repointed to 0x203c000 by default, and gEventObjects to 0x203c078 by default. You can change these in src/defines.h and ./ram_repoints. These ram addresses are incompatible with most other hacks/projects (mainly the CFRU). gMovementScripts is 4bytes per event objects, so 120 bytes. gEventObjects is 36 bytes per event object, or 1080 bytes. I'm also pretty sure the ram doesn't need to be in the save data, as the event object states are saved to saveblock1. I've tested with non-save block ram with no issues so far.
Also note that this type of feature is much more easily implemented in decomps for those still wondering why they are so great.
Bugs: find a list of known bugs here. There are likely some limiter checks missing, and the Vs Seeker will still only search the first 15 objects still (this will require more ram repointing/vs Seeker re-structuring)
Credits: here is a list of credits.
Last edited: