mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-14 11:42:27 +00:00
## About The Pull Request Hey there, This was spoken about in #70492 (specifically https://github.com/tgstation/tgstation/pull/70492#issuecomment-1278069607), and I have been waiting for this to be implemented for some time. It never got implemented, so I decided to code it myself. Basically, **if the server host doesn't disable it**, you are free to export your JSONs as a player, right from the stat-panel. It's a pretty JSON on 515 versions, too! It's right here:  Here's what the prettified JSON looks like on 515.  There's a cooldown (default to 10 seconds) between exporting your preferences. #### Why is this config? It's because in the past, a server host could always just file-share the .sav or .json or whatever to the player, but they would have to do the explicit option of actually bothering to make the files accessible to the player. In that same line of logic, the server operator will have to explicitly make the files accessible. This is mostly because I'm not sure how good `ftp()` is at being a player function and wanted to have some sort of cap/control somehow in case an exploit vector is detected or it's just plain spammed by bots, so we'll just leave it up to the direct providers of this data to elect if they wish to provide the data or not. ## Why It's Good For The Game Players don't have to log into Server A to remember what hairstyle they loved using when they want to swap to Server B! That's amazing actually. I always forget what ponytail my character has, and it'll be nice to have the hairstyle in a readily accessible place (after I prettify the JSON for myself). It's also more convenient for server hosts to make player data like this accessible if they really want to, too. If we ever add an _import_ feature in the future (which would have to be done with a LOT of care), this will also be useful. I wouldn't advise it though having taken a precursory look at how much goes into it while trying to ascertain the scope of this PR. ## Changelog 🆑 qol: The game now supports export of your preferences into a JSON file! The verb (export-preferences) should now be available in the OOC tab of your stat-panel if enabled by server operators. server: Exporting player preferences is controlled by a configuration option, 'FORBID_PREFERENCES_EXPORT'. If you do not wish to let clients access the ftp() function to their own preferences file (probably for bandwidth reasons?) you should uncomment this or add it to your config somehow. config: Server operators are also able to set the cooldown between requests to download the JSON Preferences file via the 'SECONDS_COOLDOWN_FOR_PREFERENCES_EXPORT' config option. /🆑