There are a number of mods in the pack that store metadata about
players "inside out", in mod_storage instead of player:get_meta,
because player meta is not accessible when the player is not online
and that's necessary for some mods. Player meta is also tied to
the "player character" and not to the auth account, so inside out
storage is necessary when we want data to survive resetting the
player character while keeping the account.
Unfortunately, this prevents MT from automatically cleaning up
the metadata when a player is destroyed, which can happen for
various reasons outside the control of the mod. This can cause
keys to accumulate in the mod storage database, which may hurt
performance over time.
To keep things tidy, periodically scan the mod storage keys for
each such mod (add a scan cycle, or integrate with an existing
one) and automatically clean up old mod storage keys.
szutil_xplevel was already doing this on startup and command;
convert it to do periodic scans like the other mods.
Each server can now setup unique per-server
per-player hash keys for the "agree to MOTD"
step to ensure that players actually have to
open the MOTD and at least find their
personal key before they can agree.