Como Configurar o Sistema de Quest no Servidor de MU Online
Guia técnico completo para configurar o sistema de quests no MU Online privado: arquivos DAT, tabelas SQL, NPCs, recompensas e resolução de erros comuns.
Introdução
O sistema de quests do MU Online orienta a progressão do personagem desde os primeiros níveis até o endgame. Em servidores privados rodando Season 6 Episode 3 — a versão mais usada em servidores privados — as quests são controladas por arquivos de dados no diretório GameServer/Data/Quest/, parâmetros no GameServer.ini e tabelas no banco MuOnline do SQL Server.
Este guia cobre a configuração completa: localização de arquivos, estrutura das tabelas SQL, parâmetros editáveis, configuração de NPCs e resolução dos erros mais frequentes.
.cfg em vez de .dat para parte das definições de quest.Pré-requisitos
Antes de começar, certifique-se de ter:
- Acesso ao SQL Server Management Studio (SSMS) com permissão de escrita no banco
MuOnline - Acesso local ou via FTP/RDP ao diretório do servidor (ex.:
C:\MuServer\) - Backup completo do banco de dados e dos arquivos em
GameServer/Data/ - GameServer parado antes de editar qualquer arquivo
.datou.ini
Passo 1 — Fazer Backup Antes de Qualquer Alteração
Nunca edite arquivos de produção sem backup. Execute os seguintes comandos antes de qualquer modificação:
Backup dos arquivos de dados via linha de comando:
xcopy "C:\MuServer\GameServer\Data\Quest\" "C:\Backup\Quest_%date:~-4,4%%date:~-10,2%%date:~-7,2%\" /E /I
Backup das tabelas SQL via SSMS:
USE MuOnline;
GO
-- Backup da tabela de definições de quest
SELECT * INTO dbo.T_Quest_Backup_20260703
FROM dbo.T_Quest;
-- Backup do progresso de quests dos personagens
SELECT * INTO dbo.T_PlayerQuest_Backup_20260703
FROM dbo.T_PlayerQuest;
GO
.dat. Editar com o servidor ativo pode corromper os arquivos de dados ou causar dessincronização com o banco de dados, resultando em perda de progresso para os jogadores.Passo 2 — Localizar os Arquivos de Quest
Os arquivos principais do sistema de quests ficam no seguinte caminho:
C:\MuServer\GameServer\Data\
├── Quest\
│ ├── QuestData.dat ← Definições de quests (objetivos, NPCs, condições)
│ ├── QuestReward.dat ← Recompensas de cada quest
│ └── QuestMonster.dat ← Monstros associados a quests de kill
├── NPC\
│ └── NPCGab.dat ← NPCs que oferecem quests no jogo
.dat são binários e exigem o DataEditor incluído nas ferramentas do servidor para edição. Em builds mais recentes, são texto plano e podem ser abertos diretamente no Notepad++ com encoding ANSI.Passo 3 — Ativar o Sistema de Quest no GameServer.ini
Abra C:\MuServer\GameServer\GameServer.ini e localize ou adicione a seção [Quest]:
[Quest]
QuestSwitch=1
QuestNPCSwitch=1
QuestMonsterKillSwitch=1
QuestMaxActivePerPlayer=5
QuestLogPath=./Log/Quest/
Descrição dos parâmetros:
| Parâmetro | Valor | Descrição |
|---|---|---|
QuestSwitch | 1/0 | Liga/desliga o sistema de quests globalmente |
QuestNPCSwitch | 1/0 | Permite que NPCs ofereçam quests |
QuestMonsterKillSwitch | 1/0 | Habilita contagem de kills para quests de extermínio |
QuestMaxActivePerPlayer | 1–20 | Número máximo de quests simultâneas por personagem |
QuestLogPath | caminho | Diretório de logs de conclusão de quests |
QuestLogPath deve existir antes de iniciar o servidor. Crie-o manualmente se necessário: mkdir C:\MuServer\GameServer\Log\QuestPasso 4 — Entender a Estrutura da Tabela T_Quest
Abra o SSMS, conecte ao banco MuOnline e inspecione a tabela principal:
USE MuOnline;
GO
SELECT TOP 10
QuestIndex,
QuestName,
MinLevel,
MaxLevel,
QuestActive,
RewardExp,
RewardZen,
RewardPoints
FROM dbo.T_Quest
ORDER BY QuestIndex;
GO
Os campos mais relevantes para customização:
| Campo | Tipo | Descrição |
|---|---|---|
QuestIndex | INT | ID único da quest |
QuestName | VARCHAR(50) | Nome exibido ao jogador |
MinLevel | SMALLINT | Nível mínimo para aceitar |
MaxLevel | SMALLINT | Nível máximo (0 = sem limite) |
QuestActive | TINYINT | 1 = ativa, 0 = desativada |
RewardExp | BIGINT | Experiência concedida ao completar |
RewardZen | INT | Zen concedido ao completar |
RewardPoints | SMALLINT | Pontos de atributo concedidos |
Passo 5 — Configurar Quests no Banco de Dados
5.1 — Ativar ou desativar quests específicas
USE MuOnline;
GO
-- Desativar quest de ID 15 (ex.: quest de tutorial muito fácil)
UPDATE dbo.T_Quest
SET QuestActive = 0
WHERE QuestIndex = 15;
-- Ativar todas as quests para personagens de nível 1 a 50
UPDATE dbo.T_Quest
SET QuestActive = 1
WHERE MinLevel BETWEEN 1 AND 50;
GO
5.2 — Ajustar recompensas de experiência e zen
USE MuOnline;
GO
-- Aumentar 50% a experiência de todas as quests acima do nível 150
UPDATE dbo.T_Quest
SET RewardExp = RewardExp * 1.5
WHERE MinLevel > 150;
-- Definir recompensas exatas para quests específicas
UPDATE dbo.T_Quest
SET RewardExp = 5000000, RewardZen = 500000
WHERE QuestIndex IN (101, 102, 103);
GO
5.3 — Verificar e resetar progresso de personagens
USE MuOnline;
GO
-- Ver todas as quests em andamento de um personagem
SELECT
q.QuestName,
pq.QuestStatus,
pq.KillCount,
pq.StartDate
FROM dbo.T_PlayerQuest pq
INNER JOIN dbo.T_Quest q ON q.QuestIndex = pq.QuestIndex
WHERE pq.CharName = 'NomeDoPersonagem';
-- Resetar todas as quests de um personagem (uso em testes)
DELETE FROM dbo.T_PlayerQuest
WHERE CharName = 'NomeDoPersonagem';
GO
T_PlayerQuest apaga permanentemente o histórico de quests do personagem. Use apenas em ambientes de teste ou quando o jogador solicitar explicitamente um reset de progresso.Passo 6 — Editar QuestData.dat (Formato Texto Plano)
Se o seu servidor usa arquivos .dat em texto plano, cada linha de quest no QuestData.dat segue este formato:
// QuestIndex NPCIndex MinLvl MaxLvl NextQuestIndex MonsterIndex KillCount
1 378 1 50 2 6 10
2 378 20 100 3 7 20
3 379 50 150 0 17 15
Descrição dos campos:
QuestIndex— ID único da quest (deve coincidir com a colunaQuestIndexemT_Quest)NPCIndex— ID do NPC que oferece a quest (deve existir emNPCGab.dat)MinLvl/MaxLvl— Faixa de nível válida para aceitar a questNextQuestIndex— Quest seguinte na cadeia (0 = última da cadeia)MonsterIndex— ID do monstro a matar (0 para quests sem objetivo de kill)KillCount— Quantidade de kills necessária para completar
Exemplo de configuração de QuestReward.dat:
// QuestIndex ExpReward ZenReward StatPoints
1 50000 10000 0
2 150000 30000 1
3 500000 100000 2
Passo 7 — Configurar o NPC de Quest em NPCGab.dat
O NPC que oferece as quests precisa estar registrado corretamente:
// NPCIndex MapIndex PosX PosY Direction Name
378 0 133 120 1 Sebina the Priest
379 2 197 35 2 Sebina the Priest
Índices de mapa comuns:
| MapIndex | Mapa |
|---|---|
| 0 | Lorencia |
| 1 | Dungeon |
| 2 | Devias |
| 3 | Noria |
| 7 | Atlans |
SELECT MonsterIndex, MonsterName FROM MuOnline.dbo.MonsterBase WHERE MonsterName LIKE '%Budge%'Passo 8 — Reiniciar e Verificar
Após todas as alterações, reinicie os serviços na ordem correta:
DataServer → ConnectServer → GameServer
net stop GameServer
net stop ConnectServer
net stop DataServer
timeout /t 5
net start DataServer
net start ConnectServer
net start GameServer
Verifique o arquivo C:\MuServer\GameServer\Log\GameServer.log e procure por estas linhas:
[Quest] QuestData loaded: 48 quests
[Quest] QuestReward loaded: 48 entries
[Quest] System initialized successfully
Se aparecer QuestData loaded: 0 quests, o arquivo QuestData.dat não foi encontrado ou contém erros de sintaxe — restaure o backup e verifique o formato linha a linha.
Troubleshooting
Quests não aparecem no menu do jogo
- Confirme
QuestSwitch=1noGameServer.inie reinicie o GameServer - Verifique se o nível do personagem está dentro da faixa
MinLevel/MaxLevel - Execute:
SELECT COUNT(*) FROM MuOnline.dbo.T_Quest WHERE QuestActive=1— deve retornar valor maior que zero
NPC não oferece quest
- Verifique se o
NPCIndexnoQuestData.datexiste emNPCGab.dat - Confirme que o NPC está no mesmo mapa onde o personagem de teste está
Contador de kills não avança
- Confirme
QuestMonsterKillSwitch=1noGameServer.ini - Verifique se o
MonsterIndexnoQuestData.datcorresponde exatamente ao ID emMonsterSetBase.dat
-- Localizar ID correto do monstro
SELECT MonsterIndex, MonsterName
FROM MuOnline.dbo.MonsterBase
WHERE MonsterName LIKE '%NomeDoMonstro%';
Recompensas não são entregues ao completar
-- Verificar se a entrada de recompensa existe
SELECT * FROM MuOnline.dbo.T_QuestReward
WHERE QuestIndex = 1; -- Substitua pelo ID da quest problemática
Debug=1 na seção [Quest] do GameServer.ini durante os testes. Isso grava cada evento de quest no QuestLogPath. Desative em produção para não impactar a performance.Conclusão
Com o sistema de quests corretamente configurado, seus jogadores terão uma progressão mais estruturada e motivante. Os pontos críticos são: consistência entre os arquivos .dat e as tabelas SQL, o parâmetro QuestSwitch=1 no .ini, e a correspondência exata de IDs entre QuestData.dat, NPCGab.dat e MonsterSetBase.dat. Sempre mantenha backups atualizados antes de qualquer alteração e teste cada quest individualmente com um personagem GM antes de abrir para os jogadores.
Perguntas frequentes
Qual tabela do banco de dados armazena o progresso de quests por personagem?
Em Season 6, o progresso individual fica na tabela T_PlayerQuest (colunas CharName, QuestIndex, QuestStatus, KillCount). As definições de quests ficam em T_Quest. Use SELECT * FROM MuOnline.dbo.T_PlayerQuest WHERE CharName = 'NomePersonagem' para inspecionar.
Os NPCs de quest não aparecem no jogo após editar os arquivos. O que verificar?
Confirme que o GameServer foi reiniciado após a edição. Verifique se o NPCIndex no QuestData.dat corresponde a um NPC registrado em NPCGab.dat e se as coordenadas no mapa são válidas. Inspecione GameServer/Log/GameServer.log para erros de carregamento.
Como resetar a quest de um personagem específico via SQL?
Execute: DELETE FROM MuOnline.dbo.T_PlayerQuest WHERE CharName = 'NomePersonagem' AND QuestIndex = 0; Para resetar todas as quests do personagem omita o filtro QuestIndex. Sempre faça backup antes de modificar dados de personagem.
O servidor trava ao iniciar depois de editar QuestData.dat. O que fazer?
Restaure o backup criado antes da edição e compare com a versão modificada linha a linha. Erros de sintaxe, valores de KillCount negativos e NPCIndex sem correspondência em NPCGab.dat são as causas mais comuns de falha na inicialização.