O maior portal de MU Online do Brasil — desde 2003
Tutorial Intermediário Servidor

Como gerenciar contas e guilds no servidor de MU Online

Gerencie contas, personagens, guilds e GMs do seu servidor de MU Online pelo SQL — criação, banimento, desbloqueio, alteração de itens e queries essenciais de administração.

EQ Equipe ViciadosMU · Atualizado em 1 jul 2026 · ⏱ 20 min de leitura
Resposta rápida

Todo admin de servidor de MU Online precisa conhecer as tabelas do banco de dados para gerenciar contas, personagens e guilds. Este guia traz as queries SQL mais usadas no dia a dia — desde criar contas até dissolver guildas e transferir itens.

Todo admin de servidor de MU Online precisa conhecer as tabelas do banco de dados para gerenciar contas, personagens e guilds. Este guia traz as queries SQL mais usadas no dia a dia — desde criar contas até dissolver guildas e transferir itens.

Tabelas principais do banco MuOnline

TabelaConteúdo
MEMB_INFOContas de usuário — login, senha, bloqueio, GM level
MEMB_STATStatus de conexão por conta
CharacterPersonagens — nível, stats, posição, itens equipados
InventoryInventário dos personagens
GuildGuildas registradas
G_UserListMembros das guildas com posição
GuildWarGuerras de guild ativas
CastleSiegeDados do Castle Siege
GMLogsLog de ações de GM

Gerenciamento de contas

Criar conta manualmente

USE MuOnline;
GO

INSERT INTO MEMB_INFO
  (memb___id, memb__passwd, memb_name, sno__numb, bloc_code, ctl_code)
VALUES
  ('novaconta', 'senha123', 'PlayerX', '000-000-000-0001', 0, 0);
GO

-- memb___id  = login (max 10 chars normalmente)
-- memb__passwd = senha (texto puro ou hash, depende do sistema de registro)
-- memb_name  = nome do titular da conta
-- sno__numb  = "número de segurança" — geralmente qualquer valor único
-- bloc_code  = 0 (ativo) / 1 (banido)
-- ctl_code   = 0 (jogador) / 1 (GM básico) / 2 (GM sênior) / 3 (Admin)

Criar conta de GM

INSERT INTO MEMB_INFO
  (memb___id, memb__passwd, memb_name, sno__numb, bloc_code, ctl_code)
VALUES
  ('gmadmin', 'SenhaGM!', 'GameMaster', '777-777-777-0001', 0, 3);
GO

-- ctl_code 3 = acesso completo de GM
-- Verifique na sua distribuição os níveis exatos (variam entre 1-3 ou 1-10)

Verificar lista de GMs

SELECT memb___id, memb_name, ctl_code
FROM MEMB_INFO
WHERE ctl_code > 0
ORDER BY ctl_code DESC;

Banir conta

-- Ban permanente
UPDATE MEMB_INFO
SET bloc_code = 1
WHERE memb___id = 'contaDoJogador';

-- Ban temporário — muitas distribuições usam uma coluna adicional
-- Se não tiver, faça o ban manual e agende o desban
UPDATE MEMB_INFO
SET bloc_code = 1, memb_name = 'BANNED-ate-2026-12-31'
WHERE memb___id = 'contaDoJogador';

Desbanir conta

UPDATE MEMB_INFO
SET bloc_code = 0
WHERE memb___id = 'contaDoJogador';

Alterar senha (para recuperação)

-- Se o sistema usa senha em texto puro:
UPDATE MEMB_INFO
SET memb__passwd = 'NovaSenha123'
WHERE memb___id = 'contaDoJogador';

-- Se o sistema usa MD5:
UPDATE MEMB_INFO
SET memb__passwd = UPPER(CONVERT(VARCHAR(32), HashBytes('MD5', 'NovaSenha123'), 2))
WHERE memb___id = 'contaDoJogador';

Verificar todas as contas de um IP

-- Se o sistema de site registra IP:
SELECT a.memb___id, a.memb_name, r.ip_address, r.created_at
FROM MEMB_INFO a
JOIN Registration r ON a.memb___id = r.memb___id
WHERE r.ip_address = '201.15.30.XXX';
-- Útil para detectar multi-contas

Buscar conta por personagem

-- Descobrir qual conta um personagem pertence
SELECT m.memb___id, m.memb_name, c.Name, c.Class, c.cLevel
FROM MEMB_INFO m
JOIN Character c ON c.AccountID = m.memb___id
WHERE c.Name = 'NomeDoPersonagem';

Gerenciamento de personagens

Listar personagens de uma conta

SELECT Name, Class, cLevel, Reset, MasterLevel, MapNumber
FROM Character
WHERE AccountID = 'nomeDaConta'
ORDER BY cLevel DESC;

Destravar personagem (ConnectStat)

Personagem não consegue entrar — o banco acha que ainda está conectado:

-- Destravar personagem específico
UPDATE Character
SET ConnectStat = 0
WHERE Name = 'NomeDoPersonagem';

-- Destravar TODOS os personagens (útil após crash do servidor)
UPDATE Character
SET ConnectStat = 0
WHERE ConnectStat = 1;

-- Destravar status de conta também
UPDATE MEMB_STAT
SET ConnectStat = 0
WHERE ConnectStat = 1;

Alterar nível de um personagem

UPDATE Character
SET cLevel = 400, LevelUpPoint = 0
WHERE Name = 'NomeDoPersonagem';

Teleportar personagem (mudar mapa)

-- Mover personagem para Lorencia (mapa 0, coordenada 125,125)
UPDATE Character
SET MapNumber = 0, MapPosX = 125, MapPosY = 125
WHERE Name = 'NomeDoPersonagem';

Ver inventário de um personagem

-- A estrutura do inventário varia por distribuição
-- Geralmente a coluna Items contém dados binários
-- Para ver de forma legível, use a ferramenta de administração do seu sistema

-- Verificar se o personagem tem itens (binário — mostra tamanho)
SELECT Name, DATALENGTH(Inventory) AS TamanhoInventario
FROM Character
WHERE Name = 'NomeDoPersonagem';

Congelar zen (dinheiro) de uma conta

-- Ver zen do personagem
SELECT Name, Money FROM Character WHERE Name = 'NomeDoPersonagem';

-- Zerar zen (penalidade)
UPDATE Character SET Money = 0 WHERE Name = 'NomeDoPersonagem';

-- Dar zen a um personagem
UPDATE Character SET Money = Money + 100000000 WHERE Name = 'NomeDoPersonagem';

Verificar resets

SELECT Name, cLevel, Reset, MasterLevel
FROM Character
WHERE Reset > 0
ORDER BY Reset DESC;

Gerenciamento de Guilds

Ver todas as guildas do servidor

SELECT G_Name, G_Master, Score, DATALENGTH(G_Mark) AS TemMark
FROM Guild
ORDER BY Score DESC;

Ver membros de uma guilda

SELECT G_Name, G_Master
FROM Guild WHERE G_Name = 'NomeDaGuilda';

SELECT gl.Name AS Membro, gl.G_Level AS Posicao
FROM G_UserList gl
WHERE gl.G_Name = 'NomeDaGuilda';

-- G_Level indica a posição:
-- 0 = Membro normal
-- 1 = Sub-Líder (Battle Master)
-- 2 = Líder

Dissolver uma guilda

-- Primeiro remover todos os membros
DELETE FROM G_UserList WHERE G_Name = 'NomeDaGuilda';

-- Depois remover a guilda
DELETE FROM Guild WHERE G_Name = 'NomeDaGuilda';

-- Remover referência de guilda nos personagens membros
UPDATE Character
SET G_Name = '', G_Status = 0
WHERE G_Name = 'NomeDaGuilda';

Trocar o líder de uma guilda

-- Promover outro membro a líder
UPDATE Guild
SET G_Master = 'NovoLider'
WHERE G_Name = 'NomeDaGuilda';

UPDATE G_UserList
SET G_Level = 2
WHERE G_Name = 'NomeDaGuilda' AND Name = 'NovoLider';

-- Rebaixar o líder anterior para membro
UPDATE G_UserList
SET G_Level = 0
WHERE G_Name = 'NomeDaGuilda' AND Name = 'LiderAntigo';

Aumentar pontuação de uma guilda

UPDATE Guild
SET Score = Score + 1000
WHERE G_Name = 'NomeDaGuilda';

Remover um membro da guilda

-- Remover da lista de membros
DELETE FROM G_UserList
WHERE G_Name = 'NomeDaGuilda' AND Name = 'NomeDoMembro';

-- Atualizar o personagem
UPDATE Character
SET G_Name = '', G_Status = 0
WHERE Name = 'NomeDoMembro';

Relatórios e monitoramento

Jogadores mais ativos (mais personagens online)

SELECT AccountID, COUNT(*) AS QtdPersonagens, MAX(cLevel) AS MaiorNivel
FROM Character
GROUP BY AccountID
ORDER BY QtdPersonagens DESC;

Top players por nível

SELECT Name, AccountID, cLevel, Reset, Class
FROM Character
WHERE ConnectStat = 0   -- excluir conectados (podem ter dados desatualizados)
ORDER BY Reset DESC, cLevel DESC
LIMIT 20;

Contas criadas hoje

SELECT memb___id, memb_name, memb_joindate
FROM MEMB_INFO
WHERE CAST(memb_joindate AS DATE) = CAST(GETDATE() AS DATE)
ORDER BY memb_joindate DESC;

Verificar contas suspeitas (mesmo nome ou padrão)

-- Contas com nome similar (padrão de multi-conta)
SELECT memb___id, memb_name, sno__numb
FROM MEMB_INFO
WHERE memb___id LIKE 'bot%'
   OR memb___id LIKE 'teste%'
ORDER BY memb___id;

-- Múltiplas contas com o mesmo sno__numb
SELECT sno__numb, COUNT(*) AS Total
FROM MEMB_INFO
GROUP BY sno__numb
HAVING COUNT(*) > 1;

Total de jogadores e estatísticas

-- Totais gerais
SELECT
  (SELECT COUNT(*) FROM MEMB_INFO)         AS TotalContas,
  (SELECT COUNT(*) FROM MEMB_INFO WHERE bloc_code = 1) AS ContasBanidas,
  (SELECT COUNT(*) FROM Character)          AS TotalPersonagens,
  (SELECT COUNT(*) FROM Character WHERE ConnectStat = 1) AS PersonagensOnline,
  (SELECT COUNT(*) FROM Guild)              AS TotalGuildas;

Logs de administração (GMLog)

Algumas distribuições têm tabela de log de GM. Se não existir, crie:

-- Criar tabela de log de GM (se não existir)
CREATE TABLE GMLog (
  LogID     INT IDENTITY(1,1) PRIMARY KEY,
  GMAccount VARCHAR(32) NOT NULL,
  Action    VARCHAR(128) NOT NULL,
  Target    VARCHAR(32),
  Details   VARCHAR(512),
  LogTime   DATETIME DEFAULT GETDATE()
);

-- Inserir log manualmente quando necessário
INSERT INTO GMLog (GMAccount, Action, Target, Details)
VALUES ('gm', 'BAN', 'contaBanida', 'Motivo: uso de hack detectado');

Melhores práticas de administração

  1. Nunca compartilhe credenciais de GM — crie contas separadas para cada admin;
  2. Documente banimentos — sempre registre o motivo no GMLog;
  3. Faça backup antes de qualquer UPDATE ou DELETE em produção;
  4. Use transações para operações críticas:
BEGIN TRANSACTION;

-- Suas alterações aqui
UPDATE Character SET ConnectStat = 0 WHERE ConnectStat = 1;

-- Se estiver correto, confirme
COMMIT;

-- Se algo deu errado, desfaça
-- ROLLBACK;
  1. Teste primeiro com um SELECT antes de executar o UPDATE:
-- Antes de banir:
SELECT memb___id, bloc_code FROM MEMB_INFO WHERE memb___id = 'conta';

-- Só depois execute o ban

Perguntas frequentes

Como criar uma conta de GM diretamente no banco?

Insira na tabela MEMB_INFO com ctl_code = 1, 2 ou 3 (depende da distribuição). ctl_code 0 = jogador normal, 1 = GM básico, 3 = GM completo.

Como banir um jogador temporariamente?

Use UPDATE MEMB_INFO SET bloc_code = 1 WHERE memb___id = 'conta'. Para desbanir, mude bloc_code de volta para 0.

Como desfazer o ban de um personagem travado?

UPDATE Character SET ConnectStat = 0 WHERE Name = 'nome'. ConnectStat = 1 significa que o banco acha que o personagem ainda está conectado.

Onde ficam os dados de uma guild?

Na tabela Guild (nome, líder, membros, mark) e G_UserList (lista de membros com posição).

EQ

Equipe editorial do ViciadosMU — portal de MU Online no ar desde 2003.

Continue lendo

Artigos relacionados