Overthrow.Arma4 icon indicating copy to clipboard operation
Overthrow.Arma4 copied to clipboard

[EPF] Money, Skills, and Resistance progress randomly being wiped after dedicated server restart.

Open Sparknutz opened this issue 9 months ago • 9 comments

Version information

  • Platform: PC
  • Game version: 1.3.0.157
  • Overthrow version: 1.2.51

Describe the problem:

When restarting server, players log in with $0, skill reset, and sometimes resistance progress is wiped. This happens RANDOMLY, meaning I can restart the server several times and there is no issue and then on the 11th time it will happen. Sometimes this issue happens even after wiping .db and starting a fresh game as well. The strangeness of this issue is that there seems to be nothing that can consistently reproduce the issue. It happens at random. It seems like it may happen when there is some function running while server shuts down and epf fails, or upon server restart epf fails to load only some data from .db. Player position is not affected by this bug.

The log file attached from a server with overthrow and one car mod, just changing the Sarka performance. This has also happened two other servers with overthrow and a lot of mods. Below I will attach the error that was spammed in the console when the issue occured from this heavily modded server during a session where this issue occurred. To note, on this other server, the only mods that I think might affect epf are zeliks loot spawner. We took out the loot spawner mod and the issue still occurred.

Class: 'EPF_PersistenceComponent' Function: 'Save' Stack trace: scripts/Game/EPF_PersistenceComponent.c:169 Function Save scripts/Game/EPF_PersistenceManager.c:342 Function AutoSaveTick scripts/Game/EPF_PersistenceManager.c:929 Function OnGameEnd scripts/Game/EPF_PersistenceManagerComponent.c:50 Function OnGameEnd scripts/Game/GameMode/Managers/OVT_PersistenceManagerComponent.c:20 Function OnGameEnd scripts/Game/GameMode/SCR_BaseGameMode.c:795 Function OnGameEnd scripts/Game/SCR_BaseGameMode.c:8 Function OnGameEnd scripts/Game/GameMode/ZEL_BaseGameMode.c:10 Function OnGameEnd scripts/Game/game.c:811 Function OnGameEnd SCRIPT (E): Virtual Machine Exception Reason: Failed to save entity, because it was already deleted.

Note: On second server with many mods, this error above is spammed during shutdown phase of restarting the of server. After several restart loops, we found that sometimes the money would save for some players, sometimes one players money would be applied to another player, and sometimes players money would roll back a few minutes. Very inconsistent and strange behavior.

To Reproduce

Steps to reproduce the problem:

  1. Install Overthrow on dedicated server.
  2. Restart server every 30 minutes
  3. If issue us not present after about 5-10 restarts, wipe .db and start again.
  4. Wait for player money and skills to not be loaded after restart. occasionally resistance progress will not load either.

Expected behavior

Upon restarting server, all data in the .db is properly loaded.

Where did the issue occur?

Multiple dedicated servers, Xgaming and Hostinger

Additional context

Add any other context about the problem here, e.g are you using additional mods.

Attach logs from the session the problem occurred in

console.txt

Where to find logs:

  • Windows - Documents\my games\ArmaReforger\logs

Screenshots

Sparknutz avatar Apr 26 '25 03:04 Sparknutz

This same issue is happening to my server only it effects every restart and everytime a player is treated as as a new spawn, full skill reset no $$ and they receive a new house…

I raised a ticket with my server admin and they advised me that there appears to be an issue between the mod overthrow and the Enfusion Persistence Framework…

Console reads no player data save detected, yet player data is all in the overthrows.json file.

Issue reoccurs after server backup and update..

Have attached a couple of images of what am talking about..

Image

Image

ceroie avatar Apr 28 '25 20:04 ceroie

To further my first post, we have been testing restarts on the Overthrow server with only 1 car mod. for the first day, it worked with 2 restarts. After the server was running for over 24 hours, we did a restart and the money was reset. Things to note: [1] looking at the logs, overthrow did not recognize the player as returning. [Overthrow] Preparing NEW player: 47e1b054-4263-4e59-b89c-680a3d5e8f3e. [2] While the player was logged in and had the starting cash amount, I looked in the DB and he had a different amount in the `Overthrows' file.

I have attached the log from the session where this issue popped up.

console.log

Sparknutz avatar Apr 29 '25 03:04 Sparknutz

What mods may I ask are you running if any?

ceroie avatar Apr 29 '25 03:04 ceroie

What mods may I ask are you running if any?

On one server, we made a sarka drift mod and thats the only mod we are using. On our other server, it has many gun mods, rhs, server admin tools, and many more. the same thing happens on that one too. I really think this has nothing to do with overthrow, I think in one of the 1.3 patches, they changed something without announcing it (shocker) and it broke epf. Arkensor has updated EPF twice in one week so I think that is telling. I'm sure in due time he will discover the issue and patch it.

Sparknutz avatar Apr 29 '25 04:04 Sparknutz

Update, I noticed epf was updated just now. I went form 0.6.12 to 0.6.11. I just did a server wipe and did a reset with the rollback and still same issue.

Sparknutz avatar Apr 29 '25 04:04 Sparknutz

Its seems that the server dosent connect correctly with the bohemia interactive back end, and because the server dosent recognise any users unique ID they span as a new player every time..

ceroie avatar Apr 29 '25 04:04 ceroie

Another issue related: When server restarts, players are set back about 5 minutes. I have the ovt persistence manager set to save every 60 seconds so I am not sure why.

Sparknutz avatar May 08 '25 19:05 Sparknutz

There is a new fix in v1.2.52. Please test and let me know how it goes

armazac avatar May 10 '25 05:05 armazac

console (1).log I'm using version 1.2.52 and the problem persists.

NarKeTe avatar May 16 '25 15:05 NarKeTe

Issue still persists. Loadout, Player Position, Resistance Stats getting saved well. But every time a user logs in to the game, and i mean everytime, the money is set to start and skills too. Everything else gets saved.

Liphilmor avatar May 26 '25 22:05 Liphilmor

Fix Applied 🔧

We've identified and fixed a likely root cause of the "players.m_mPlayers is null" issue that was causing player data to be reset on server restarts.

What was the problem?

The PlayerManager component was being initialized differently than other manager components, using a singleton pattern that could create instance mismatches during save operations. This caused the Enfusion Persistence Framework (EPF) to sometimes try to save from a component instance with uninitialized data.

What was fixed?

  1. Removed unnecessary destructor cleanup code (as recommended by Arma Reforger developers)
  2. Fixed PlayerManager initialization to use the same pattern as other managers
  3. Ensured singleton consistency between the component instance and global access

Please test and report back! 🧪

The fix has been pushed to the main branch. If you were experiencing this issue:

  1. Update to the latest version
  2. Test on your dedicated servers
  3. Please report back with:
    • Whether the issue is resolved
    • Any new errors in server logs
    • Steps to reproduce if the issue persists

We've added additional logging to help track down any remaining issues, so server logs will be particularly helpful if problems continue.

Thanks for your patience and detailed bug reports! 🙏

armazac avatar Jun 14 '25 04:06 armazac

I believe this is fixed now. Please re-open if you see it again

armazac avatar Jul 07 '25 09:07 armazac