Skip to content

[Bug]: Saving and quitting serializes all rooms containing keys/doors to mod session save #110

Description

@LucyChroma

Before You Report

  • My mods and Everest install are up to date.
  • I have recreated the bug with a minimum number of mods installed.

What platform are you playing on?

Windows 11 FNA

Bug Description

When this helper is enabled, all keys and doors in visited rooms are tracked in VitModuleSession through the doorEntityDatas and keyEntityDatas fields, for the reset doors trigger. However, upon saving and quitting, when these fields are serialized to yaml, the entity has a reference to the room it is contained in, which results in the entire room and every other entity in it being serialized as well. This causes excessively bloated modsession files, particularly with maps containing keys/doors in large rooms containing lots of entities (for example, s&q in Lost Woods from SJ after visiting each season at least once produces a 1.4MB modsession file, attached below, although I had to rename it to end in .yaml for GitHub to let me upload it). While this technically doesn't break anything (probably), the mod probably doesn't really need to keep that reference to the whole room across multiple sessions, and I can't imagine it's good for load times.

0-modsession-CrystallineHelper.yaml

Steps to Reproduce

Enable the helper, visit one or more rooms containing keys or doors, and save and quit. The *-modsession-CrystallineHelper.celeste file will then contain all of the room data for every such room (solids, entities, decals, etc). It is not necessary to collect any key or open any door. Tested on SJ Lost Woods, butcherberries' Awake, and vanilla Mirror Temple.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions