From 02ce867a379d60540d060b79963e8133582867a1 Mon Sep 17 00:00:00 2001 From: Mehdi <57235093+Mehdi-MMO@users.noreply.github.com> Date: Fri, 29 May 2026 12:00:30 +0100 Subject: [PATCH 1/2] the damn bug --- server/player.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/player.lua b/server/player.lua index 25ed771..782c787 100644 --- a/server/player.lua +++ b/server/player.lua @@ -575,7 +575,11 @@ function QBCore.Player.ForceDeleteCharacter(citizenid) local queries = {} local existing = QBCore.Functions.GetPlayerByCitizenId(citizenid) if existing then - DropPlayer(existing.PlayerData.source, 'An admin deleted the character which you are currently using') + local src = existing.PlayerData.source + -- clear refs to prevent playerDropped from saving + QBCore.Players[src] = nil + QBCore.PlayersByCitizenId[citizenid] = nil + DropPlayer(src, 'An admin deleted the character which you are currently using') end for i = 1, #playertables do queries[i] = { query = query:format(playertables[i].table), values = { citizenid } } From 1b126f1bd048f7320980bbbb3153b985255ecd61 Mon Sep 17 00:00:00 2001 From: Mehdi <57235093+Mehdi-MMO@users.noreply.github.com> Date: Fri, 29 May 2026 12:17:00 +0100 Subject: [PATCH 2/2] :bug: Fix async race condition causing ghost characters on deletion --- server/player.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/player.lua b/server/player.lua index 782c787..238a2e4 100644 --- a/server/player.lua +++ b/server/player.lua @@ -577,7 +577,7 @@ function QBCore.Player.ForceDeleteCharacter(citizenid) if existing then local src = existing.PlayerData.source -- clear refs to prevent playerDropped from saving - QBCore.Players[src] = nil + QBCore.Players[src] = nil QBCore.PlayersByCitizenId[citizenid] = nil DropPlayer(src, 'An admin deleted the character which you are currently using') end