Dupowanie itemów i pieniądze od cheatera: jak cofnąć bazę FiveM
Ktoś zdupował itemy albo wbił sobie miliony? Znajdź moment, w którym to się zaczęło, wybierz kopię sprzed niego i cofnij bazę, tracąc jak najmniej.
Autor: PK
- Backups
- Rollback
- Dupes
- Economy
Na tej stronie
- Jak wygląda dup albo exploit na pieniądze
- Dlaczego ręczne sprzątanie rzadko działa
- Znajdź właściwy punkt przywracania
- Dlaczego częstotliwość kopii decyduje, ile stracisz
- Cofnąć wszystkich czy tylko kilku graczy
- Jak radzą sobie z tym kopie FiveDocka
- Zanim znowu odpalisz serwer
- Częste pytania
- Do kiedy cofnąć serwer FiveM po dupie?
- Czy gracze stracą postępy, jeśli cofnę bazę?
- Cheater dał sobie pieniądze. Wystarczy mu je zabrać?
- Czy txAdmin potrafi cofnąć bazę danych?
- Czy kopie zapasowe FiveDocka są w darmowym planie?
Kiedy gracz zdupuje itemy albo cheater wbije sobie pieniądze na twoim serwerze FiveM, najczystszym rozwiązaniem jest przywrócenie bazy z kopii zrobionej tuż przed tym, jak to się zaczęło. Ręczne usuwanie kopii rzadko działa, bo zanim to zauważysz, pieniądze i przedmioty są już u innych graczy. W tym wpisie piszę, jak zwykle dochodzi do takich exploitów, jak znaleźć właściwy punkt przywracania, kiedy cofać wszystkich, a kiedy tylko kilku graczy, i jak robią to kopie zapasowe FiveDocka prosto z panelu.
Większość serwerów trafia do FiveDocka przez CDN, po obrazki do ox_inventory i zdjęcia z telefonu. FiveDock robi też kopie zapasowe bazy twojego serwera, w każdym planie, także w darmowym, i to właśnie one ratują sytuację w noc, w którą ktoś rozwala ekonomię.
Jak wygląda dup albo exploit na pieniądze
Zwykle zaczyna się od wiadomości na Discordzie. Ktoś sprzedaje karabiny za pół ceny, nowy gracz kupił pierwszego dnia trzy supersamochody albo na rynku nagle pełno jest przedmiotu, który miał być rzadki. Sprawdzasz i okazuje się, że jedna postać ma 40 milionów w banku, a następna najbogatsza 200 tysięcy.
Prawie zawsze stoi za tym jedna z tych rzeczy:
Dlaczego ręczne sprzątanie rzadko działa
Pierwszy odruch to wyzerować cheaterowi konto i dać bana. To naprawia jeden wiersz. Zanim się zorientujesz, pieniądze zwykle są już w autach, domach i u innych graczy, a zdupowane itemy zostały sprzedane, schowane w schowkach i rozdane znajomym. Każde z tych miejsc to kolejny wiersz w kolejnej tabeli i część na pewno przeoczysz.
Kopia sprzed exploita nie ma żadnej z tych rzeczy. Przywracasz ją i kopie znikają wszędzie naraz, także tam, gdzie nigdy byś nie zajrzał.
Znajdź właściwy punkt przywracania
Punkt przywracania to najnowsza kopia zrobiona przed początkiem exploita. Kopia zrobiona później ma już w sobie zdupowane rzeczy. Żeby ją znaleźć:
mysql -u root -p -e "CREATE DATABASE restore_check"
mysql -u root -p restore_check < fivem-2026-10-23-2000.sqlPotem zobacz, kto zyskał najwięcej od czasu tej kopii. Na QBCore i Qbox:
SELECT live.citizenid,
CAST(JSON_EXTRACT(old.money, '$.bank') AS SIGNED) AS bank_then,
CAST(JSON_EXTRACT(live.money, '$.bank') AS SIGNED) AS bank_now,
CAST(JSON_EXTRACT(live.money, '$.bank') AS SIGNED)
- CAST(JSON_EXTRACT(old.money, '$.bank') AS SIGNED) AS gained
FROM fivem.players AS live
JOIN restore_check.players AS old ON old.citizenid = live.citizenid
ORDER BY gained DESC
LIMIT 20;Na ESX pieniądze siedzą w kolumnie accounts tabeli users:
SELECT live.identifier,
CAST(JSON_EXTRACT(old.accounts, '$.bank') AS SIGNED) AS bank_then,
CAST(JSON_EXTRACT(live.accounts, '$.bank') AS SIGNED) AS bank_now,
CAST(JSON_EXTRACT(live.accounts, '$.bank') AS SIGNED)
- CAST(JSON_EXTRACT(old.accounts, '$.bank') AS SIGNED) AS gained
FROM fivem.users AS live
JOIN restore_check.users AS old ON old.identifier = live.identifier
ORDER BY gained DESC
LIMIT 20;Zamień $.bank na $.cash (na ESX $.money), żeby sprawdzić gotówkę. Postaci utworzonych po zrobieniu kopii nie będzie na tej liście, więc przejrzyj je osobno. Jeśli w kopii stan konta cheatera wygląda normalnie, to dobry punkt przywracania. Jeśli już tam jest ogromny, cofnij się o jedną kopię dalej.
To samo zapytanie pokaże ci, komu cheater przelał pieniądze. Gracz, który w godzinę zarobił kilka milionów bez pracy, która tyle płaci, to zwykle miejsce, gdzie poszedł hajs.
Dlaczego częstotliwość kopii decyduje, ile stracisz
Cofnięcie bazy przenosi każdego gracza do chwili zrobienia kopii, więc wszystko, co zrobił od tamtej pory, też przepada. Przy jednej kopii na noc o 4:00 i exploicie wykrytym o 21:00 całe miasto traci 17 godzin gry. Przy kopii co godzinę traci mniej niż godzinę.
Dlatego czas między exploitem a chwilą, w której go zauważysz, liczy się tak samo jak sama kopia. Alerty, które dają znać w ciągu kilku minut, sprawiają, że cofnięcie jest krótkie.
Cofnąć wszystkich czy tylko kilku graczy
Cofnij całą bazę, gdy kopie się rozeszły: zamieszanych jest wielu graczy, bug uderzył w całą ekonomię albo nie wiesz, kto co ma. Wszyscy tracą te same kilka godzin, ale ekonomia znowu jest czysta.
Przywróć tylko kilku graczy, gdy zrobiła to jedna czy dwie osoby, a kopie nie poszły daleko. Wstawiasz ich wiersze z kopii i nikt inny nic nie traci. Jak to zrobić, z gotowym SQL dla ESX i QBCore, pokazuje wpis o przywracaniu ekwipunku jednego gracza.
Przywrócenie samego cheatera, gdy jego kopie leżą w ekwipunkach innych graczy, zostawia dupa w grze. Zanim wybierzesz tę drogę, sprawdź, gdzie poszły przedmioty i pieniądze.
Jak radzą sobie z tym kopie FiveDocka
FiveDock robi to wszystko z panelu, przez agenta, który i tak działa na twoim serwerze dla CDN i całej reszty. Każda kopia jest szyfrowana na twojej maszynie kluczem, którego nigdy nie widzimy.
Ceny i pełną listę tego, co jest w którym planie, znajdziesz w cenniku. Jeśli chcesz zobaczyć, jak robi się i testuje takie kopie ręcznie, zajrzyj do wpisu o kopii zapasowej serwera FiveM.
Zanim znowu odpalisz serwer
Najpierw załataj dziurę. Jeśli exploit wziął się ze skryptu, zatrzymaj ten zasób albo go popraw przed restartem, bo inaczej za godzinę będzie powtórka. Przy evencie z pieniędzmi o kwocie zawsze decyduje serwer, nigdy klient:
-- Exploitable: the client decides how much it gets paid
RegisterNetEvent('delivery:pay', function(amount)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.addMoney(amount)
end)
-- Safe: the server decides the amount and checks the job was done
local PAY = 450
local onDelivery = {} -- set by the server when it hands out a job
RegisterNetEvent('delivery:finish', function()
local src = source
if not onDelivery[src] then return end
onDelivery[src] = nil
ESX.GetPlayerFromId(src).addMoney(PAY)
end)Częste pytania
Do kiedy cofnąć serwer FiveM po dupie?
Do najnowszej kopii zrobionej przed pierwszym podejrzanym zdarzeniem, a nie przed chwilą, w której to zauważyłeś. Najpierw wczytaj ją do osobnej bazy i sprawdź, czy stan konta i przedmioty cheatera wyglądają tam normalnie.
Czy gracze stracą postępy, jeśli cofnę bazę?
Tak, wszystko od chwili zrobienia kopii. Przy kopiach co godzinę to mniej niż godzina, przy jednej kopii na noc może to być prawie cały dzień. Jeśli zamieszanych było tylko kilku graczy, przywróć zamiast tego tylko ich wiersze.
Cheater dał sobie pieniądze. Wystarczy mu je zabrać?
Tylko jeśli pieniądze nigdy nie wyszły z jego postaci. Zwykle są już w autach, domach albo na kontach innych graczy, a zabranie ich z jednego wiersza zostawia resztę. Cofnięcie do kopii sprzed exploita jest szybsze i łapie wszystko.
Czy txAdmin potrafi cofnąć bazę danych?
Nie. txAdmin zarządza procesem serwera, banami i historią graczy, ale nie robi kopii ani nie przywraca twojej bazy MySQL czy MariaDB. Do tego potrzebujesz mysqldump uruchamianego według harmonogramu albo narzędzia takiego jak FiveDock.
Czy kopie zapasowe FiveDocka są w darmowym planie?
Tak. Free robi kopię raz dziennie, trzyma ją 7 dni i potrafi przywrócić całą bazę. Kopie co godzinę, alerty o duplikatach i przywracanie jednego gracza są na Metro.