O maior portal de MU Online do Brasil — desde 2003
Tutorial Avançado Administração

Wipe parcial vs total no MU Online: como fazer certo

Entenda a diferença entre wipe parcial e total no MU Online e execute cada um com segurança, preservando contas, rankings e economia quando necessário.

GA Gabriel · Atualizado em 30 jun 2024 · ⏱ 22 min de leitura
Resposta rápida

Poucas decisões de administração de um servidor de MU Online causam tanto impacto quanto um wipe. Feito na hora certa e com o método correto, um wipe renova a economia, corrige distorções acumuladas e traz jogadores de volta para uma competição justa. Feito de forma apressada — sem backup, sem aviso

Poucas decisões de administração de um servidor de MU Online causam tanto impacto quanto um wipe. Feito na hora certa e com o método correto, um wipe renova a economia, corrige distorções acumuladas e traz jogadores de volta para uma competição justa. Feito de forma apressada — sem backup, sem aviso ou apagando a tabela errada — ele destrói a confiança da comunidade e, no pior caso, deixa o banco de dados inconsistente e o servidor impossível de subir. Este guia separa os dois grandes tipos de wipe, mostra exatamente o que cada um toca no banco e apresenta um procedimento reproduzível para executar cada um com segurança.

Ao longo do texto os exemplos usam o schema clássico do MuServer (SQL Server, banco MuOnline, tabelas como MEMB_INFO, Character, Guild). Os nomes de tabela e coluna variam por season/emulador — IGCN, MuEMU, X-Files, Season 6 e seasons modernas têm diferenças. Trate cada comando como um exemplo a ser adaptado ao seu banco, nunca como algo para colar às cegas em produção.

Pré-requisitos

Antes de tocar em qualquer tabela, confirme que você tem:

  • Acesso administrativo ao SQL Server (SA ou uma conta com permissão de DELETE, TRUNCATE e BACKUP DATABASE) via SQL Server Management Studio ou sqlcmd.
  • Acesso ao painel/serviços do servidor para parar GameServer, ConnectServer, JoinServer e quaisquer daemons auxiliares (event server, ranking, site).
  • Backup completo e testado do banco antes de começar. Se você ainda não tem um fluxo de backup, resolva isso primeiro — veja o passo abaixo.
  • Janela de manutenção definida e comunicada aos jogadores.
  • Documentação do schema da sua distribuição, para saber quais tabelas guardam progresso e quais guardam configuração.

Se você está montando o servidor agora e ainda não tem essa base, comece pelo guia de como criar servidor de MU Online e volte aqui quando o ambiente estiver estável.

O que é wipe parcial e o que é wipe total

Os termos são usados de forma solta na comunidade, então vale fixar definições operacionais:

Wipe total (full wipe / reset de mundo). Apaga todos os dados de jogo: personagens, itens, zen, resets, guilds, rankings, warehouse, eventos. Na prática o servidor recomeça do zero. Há duas variantes: preservar as contas (MEMB_INFO) para que os jogadores mantenham login e senha, ou apagar também as contas (wipe "hard", raro e agressivo).

Wipe parcial (soft wipe). Zera apenas um subconjunto do progresso, preservando o resto. Exemplos comuns: zerar somente os resets e o ranking mantendo itens; zerar zen e economia mantendo personagens; remover um item específico introduzido por bug; ou zerar apenas as pontuações de um evento sazonal.

A tabela abaixo resume o alcance típico de cada abordagem. Os nomes de tabela são exemplos e variam por season/emulador.

DadoTabela típicaWipe parcial (economia)Wipe parcial (resets)Wipe total (mantém contas)
Contas/loginMEMB_INFOPreservaPreservaPreserva
PersonagensCharacterPreservaZera resets/levelApaga
ZenCharacter.MoneyZeraPreservaApaga (com o char)
Itens equipados/inventárioCharacter.InventoryLimpa itensPreservaApaga
Warehouse (baú)warehouseLimpaPreservaApaga
GuildsGuild, GuildMemberPreservaPreservaApaga
Ranking/resetsCharacter.ResetCount, views de rankPreservaZeraApaga
Eventos (CS, BC)tabelas de eventoOpcionalOpcionalApaga

Quando fazer cada tipo

Escolher o tipo errado é o erro mais caro. Use estes critérios:

Faça wipe parcial quando o problema é localizado. Um dupe bug que injetou milhões de zen? Zere a economia sem apagar personagens. O ranking ficou distorcido por um exploit de reset? Zere apenas resets e recomponha o rank. Um item bugado circulando? Remova só aquele item. O wipe parcial preserva o vínculo emocional do jogador com o personagem e reduz a evasão.

Faça wipe total quando a distorção é sistêmica e irrecuperável: economia colapsada em vários vetores, itens ilegítimos espalhados sem rastreabilidade, ou uma mudança de season/rates tão grande que o progresso antigo não faz mais sentido. Também é o caminho para relançamentos ("grand opening") planejados para atrair uma nova onda de jogadores.

> Regra prática: se você consegue escrever um WHERE que isola o problema, provavelmente um wipe parcial resolve. Se o problema está em todo lugar, o wipe total é mais honesto e mais barato de manter.

Passo 1 — Backup completo e verificado

Nunca pule esta etapa. O backup é a sua única rota de volta.

-- Backup full do banco de jogo antes do wipe
BACKUP DATABASE MuOnline
TO DISK = 'D:\Backups\MuOnline_pre_wipe_2024-04-22.bak'
WITH FORMAT, INIT, NAME = 'PreWipe Full', STATS = 10;
GO

-- (Opcional, recomendado) verificar a integridade do arquivo gerado
RESTORE VERIFYONLY
FROM DISK = 'D:\Backups\MuOnline_pre_wipe_2024-04-22.bak';
GO

Se houver um banco de contas separado (algumas distribuições usam MuOnline para jogo e outro para ranking/eventos), faça backup de todos. Copie o .bak para um segundo local (outro disco ou nuvem) antes de prosseguir.

Passo 2 — Parar todos os serviços

Encerre nesta ordem, para que ninguém consiga logar durante o processo e para evitar que o cache do GameServer regrave dados:

  1. ConnectServer — impede novas conexões de cliente.
  2. GameServer(s) — descarrega personagens da memória para o banco e libera locks.
  3. JoinServer / EventServer / daemons de ranking.
  4. Serviços do site que escrevem no banco (cash shop, doação, VIP).

Confirme que nada está conectado ao SQL antes de continuar:

-- Verificar sessões ativas no banco de jogo
SELECT session_id, login_name, host_name, program_name, status
FROM sys.dm_exec_sessions
WHERE database_id = DB_ID('MuOnline');
GO

Se aparecerem sessões de GameServer, elas ainda estão vivas — pare o processo antes de seguir. Executar o wipe com o GS ligado é a causa número um de "fiz o DELETE mas os itens voltaram": o cache em memória sobrescreveu suas alterações no shutdown seguinte.

Passo 3 — Executar um wipe parcial

Abaixo, os três wipes parciais mais pedidos. Adapte nomes de coluna à sua season/emulador e rode dentro de uma transação para poder reverter.

Zerar economia (zen) mantendo personagens

USE MuOnline;
GO
BEGIN TRANSACTION;

-- Zerar o zen de todos os personagens
UPDATE Character SET Money = 0;

-- (Opcional) definir um zen inicial padrão em vez de zero
-- UPDATE Character SET Money = 1000000;

-- Confira o número de linhas afetadas antes de confirmar
-- Se estiver correto:
COMMIT;      -- ou ROLLBACK; se algo parecer errado
GO

Zerar resets e ranking mantendo itens

USE MuOnline;
GO
BEGIN TRANSACTION;

UPDATE Character
SET ResetCount = 0,          -- nome de coluna varia (Resets, ResetCount, etc.)
    cLevel     = 1,          -- volta ao nível 1 (ajuste conforme sua regra)
    Experience = 0;

-- Se o ranking for materializado numa tabela própria, limpe-a:
-- TRUNCATE TABLE RankingReset;

COMMIT;
GO

Remover um item específico introduzido por bug

Itens no MuServer clássico ficam em blobs binários (Inventory, warehouse), o que torna a remoção cirúrgica complexa e dependente do formato da distribuição. Quando existe uma tabela relacional de itens (algumas seasons modernas), a remoção é direta:

-- Exemplo: distribuição com tabela relacional de itens
DELETE FROM ItemInventory
WHERE ItemGroup = 12 AND ItemIndex = 15;   -- índices variam por season
GO

Para o formato binário, o caminho seguro é usar a ferramenta/painel da própria distribuição ou um script oficial de limpeza — editar o blob manualmente sem conhecer o layout corrompe o inventário inteiro.

Passo 4 — Executar um wipe total

O wipe total (preservando contas) apaga os dados de jogo mantendo MEMB_INFO. Faça em transação e respeite a ordem das chaves estrangeiras (apague filhos antes dos pais).

USE MuOnline;
GO
BEGIN TRANSACTION;

-- 1) Dados dependentes de personagem/guild primeiro
DELETE FROM GuildMember;
DELETE FROM Guild;
DELETE FROM warehouse;        -- baús/armazém
DELETE FROM AccountCharacter; -- vínculo conta<->slots (nome varia)

-- 2) Personagens
DELETE FROM Character;

-- 3) Tabelas de evento/ranking (nomes variam por season/emulador)
-- TRUNCATE TABLE Event_CastleSiege;
-- TRUNCATE TABLE Ranking;

-- MEMB_INFO NÃO é tocada: contas e senhas permanecem.

COMMIT;
GO

Depois do COMMIT, é boa prática reduzir/reindexar para o servidor subir limpo:

-- Reconstruir índices das tabelas grandes
ALTER INDEX ALL ON MEMB_INFO REBUILD;
GO
DBCC SHRINKDATABASE (MuOnline, 10);   -- opcional, libera espaço do log
GO

Se optar pelo wipe "hard" (apagar também contas), inclua DELETE FROM MEMB_INFO; por último — mas avalie bem, pois isso obriga todo mundo a se registrar de novo e costuma queimar boa parte da base.

Passo 5 — Preservar o que importa num relançamento

Um wipe total não precisa ser terra arrasada. Você pode carregar seletivamente:

  • Nomes de conta e guild: exporte MEMB_INFO (login) e a lista de nomes de guild antes do wipe para oferecer "reserva de nick/guild" no relançamento.
  • Founder rewards: guarde uma lista de quem jogou na season anterior para dar um brinde de fidelidade na volta.
  • Configurações: procedures, triggers e tabelas de configuração NÃO são progresso — não apague. O wipe é sobre dados de jogadores, não sobre a estrutura do banco.
-- Exportar nomes de guild antes de um wipe total (para reserva no relançamento)
SELECT G_Name, G_Master
INTO GuildNames_Backup_20240422
FROM Guild;
GO

Passo 6 — Subir o servidor e validar

Com o wipe concluído:

  1. Suba JoinServer → ConnectServer → GameServer na ordem inversa do desligamento.
  2. Crie um personagem de teste e valide: nível/reset zerados (ou como esperado), zen correto, inventário limpo, ranking recomeçando.
  3. Verifique os logs do GameServer por erros de leitura de tabela (indicam coluna faltando ou tipo incompatível).
  4. Só então libere o acesso público.

Erros comuns e soluções

SintomaCausa provávelSolução
Itens/zen "voltam" após o wipeGameServer estava ligado; o cache regravou no shutdownPare todos os GS antes do wipe e refaça o procedimento
Erro de foreign key ao apagar CharacterTabelas filhas (guild, warehouse) ainda referenciam o charApague os dependentes primeiro; siga a ordem do Passo 4
Servidor não sobe após wipe totalUma procedure/trigger foi apagada juntoRestaure só a estrutura do backup; não delete objetos de configuração
Jogadores não conseguem logarMEMB_INFO foi truncada por enganoRestaure MEMB_INFO do backup pré-wipe
Ranking mostra dados antigosView/tabela materializada não foi recalculadaRode o job de recomputação ou TRUNCATE na tabela de ranking
DELETE demorou e travou o servidorTransação enorme sem batching, log cheioUse DELETE TOP (N) em lotes ou TRUNCATE quando não há FK

Checklist de lançamento

  • Backup full feito, copiado para segundo local e verificado com RESTORE VERIFYONLY
  • Tipo de wipe decidido (parcial ou total) e escopo documentado
  • Aviso aos jogadores publicado com pelo menos 7 dias de antecedência
  • Todos os serviços parados (Connect, Game, Join, event, site) e sessões SQL zeradas
  • Comandos de wipe testados em transação, com contagem de linhas conferida antes do COMMIT
  • Nomes de conta/guild exportados (se for relançamento com reserva de nick)
  • Reindex/shrink executados após wipe total
  • Personagem de teste validado (nível, zen, inventário, ranking)
  • Logs do GameServer sem erros de tabela/coluna
  • Backup pós-wipe (novo baseline limpo) realizado antes de liberar acesso
  • Acesso público reaberto e anúncio de "no ar" publicado

Perguntas frequentes

Wipe parcial apaga as contas dos jogadores?

Não. Um wipe parcial preserva a tabela MEMB_INFO e normalmente os personagens. Ele zera apenas o progresso escolhido — resets, zen, ranking ou itens — mantendo o login e a senha de cada jogador.

Qual a diferença prática entre wipe total e recriar o banco?

Wipe total apaga todos os dados de jogo mas mantém a estrutura e as procedures do banco. Recriar o banco do zero também recria tabelas e configurações, exigindo reimportar o schema da sua distribuição.

Preciso parar o servidor para fazer wipe?

Sim, sempre. GameServer, ConnectServer e qualquer processo que mantenha conexão com o SQL devem ser encerrados antes do wipe, senão o cache em memória sobrescreve suas alterações e corrompe registros.

Como aviso os jogadores sem perder a base?

Anuncie com pelo menos 7 dias de antecedência, ofereça recompensas de founder e migre nomes de conta/guild. A retenção depende mais da comunicação do que do wipe em si.

Wipe resolve inflação de zen e itens duplicados?

Um wipe total resolve, pois zera a economia. Um wipe parcial de zen e itens também ajuda, mas se a causa (dupe bug, drop mal configurado) não for corrigida antes, a inflação volta em semanas.

GA
Editor de guias e builds

Gabriel cobre gameplay, builds de classes, PvP e progressão. Testa cada estratégia em servidor antes de publicar.

Continue lendo

Artigos relacionados