Hello !
My simple need today was to store the saves and config files under %USERPROFILE%/Saved Games with a custom name (not the project one) and with a folder with steam account id allowing to share a computer or steam console, while separating saves and steam clouds environment - easy right ?
For the folder, it was easy. If you start the slotname with steamaccountid/, Unreal is clever enough to create a folder, perfect.
I checked everywhere today, and found these are the ways to customize the project user directory (where every saves and config are in a packaged build) :
- Edit FPaths directly and compile engine - I’m not compiling the engine at the moment but using the one downloaded from Epic
- Adding -userDir as a command line argument, easy, but sadly, neither steam or Unreal handles variable in there. %USERPROFILE% stays like that and never resolve to a path.
- Writing my own save system, writing on disk and reading. Easy, but I would have also to handle config files manual writing. Mhhh, bit tedious.
So I was left without any satisfying solution, where a nice and clean option in packaging category like project user directory once packaged, allowing usage of variable, per environment would be great.
What I ended up doing was coding a launcher, in C#, allowing to get current %UserProfile% folder, and starting the game with -userDir= with the right value, already transformed. It’s messy, but it works, even under steamdeck with Proton.
Would you have a way to do that easily, something I haven’t found ?
If there is none, my suggestions :
- Best : A setting in project setting
- Good : -userDir handles environment variable (%LOCALAPPDATA% / %USERPROFILE / $home etc.)
- Perfect : Being able to customize save folder and project name, avoiding exposing some unwanted internal project naming.
I’m not against Local App Data by default but there is a special folder on windows to store saved games, called saved games ![]()
Please Epic, help us on that.
Thanks !
Narom