Posted October 19, 2025 by Gleb Tsereteli
As anyone who’s used the library knows, data initialization had to be done manually before loading/screenshotting/fetching data, until now. Dragonite recently reminded me that this could probably be handled automatically, and I agree.
Manual initialization was originally meant to encourage best performance practices. But over time I realized two things:
Starting with v2.3.0, data initialization now happens automatically on the first load/screenshot/data fetch call. That first call will be slower since initialization is included, but all future calls will be just as fast as before, since the data is already initialized and is retrieved from the internal cache.
Manual initialization methods are still available and recommended at game start or during loading screens, especially when working with large or multiple rooms, when going for best possible performance during gameplay.
I’ve been under the wrong impression (never bothered to check again since Effects didn’t seem that important) that Effects data was missing from room_get_info(). Turns out it’s been included all this time, but the relevant variable name mentioned in the docs comes under a different name at runtime… So we now have Effects support.
ROOMLOADER_FLAG.EFFECTS Asset Type Filfering flag.RoomLoader.Effects() State Builder method.