Is it legit saving the game on Tick?

Is saving the game on Tick ok/recomended (will it cause large amounts of write bytes/ I.O operations to disk ) or should i do it manually? The game is still “small” but checking my task manager i haven’t observed much traffic on the disk (neither hick ups or freezes). Need to know in order to properly decide on ( a new or keeping the current) solution. Do you guys implement some sort of hash check to avoid constantly saving on disk? If NOT is there any way to implement such solution through blueprints?

I would recommend using SetTimer, and saving like every 30sec. I would also make use of the same Custom Event (or Function) of the Timer manually if something major happened. <3

Although time based save is not that bad idea it could potentially allow the player to abuse it. 30 secs is too much as this is a real time rpg, although 1-2 seconds would be ok. Still need to know what Unreal Devs are doing (the general concept) while saving a game.

Unrecommanded and lazy ;P. If you really need to save every State Change than do it as soon the state Changes. Dont save things like seconds remaining on a Buff/Debuff. Create a Timestamp instead once the Buff is created. That way you dont have to use tick at all and can recalculate remaining time based on Timestamp.

Asside from that make multiple Save files with Data that goes along together in the usual cases to reduce IO writes instead of one big file.

Dont worry to much about players abusing the Save System its very easy anyway regardless how much effort you put into it. If its a Multiplayer and Saves are generaly on the Server the Client cant abuse Save System that easy by Alt+F4 out of the Games as example. Server will still run and save correctly.

So partly followed both Nachtmahr and Ninjin answers. Unreal does NOT appear to be doing anything special when SaveGame is called, it just writes the data to disk. I broke down the file into a few smaller ones but instead of saving every file as soon as the player confirms changes i save once every 2 seconds for now in a centralized place, rather than calling save from anywhere (it’s also a bit hard to track down function calls in unreal editor as it searches for them by name ending up showing you anything that contains in it’s name, the name of the func).
I also have to point out that Nachtmahr is the most efficient way while Ninjin is the fasted (on implementing not speed otherwise) solution. I would recommend to almost anyone trying to solve something like this: Go lazy at first then optimize as needed or you may end up changing stuff more times than you need…