Como Configurar Taxas de EXP por Nível no Servidor de MU Online
Aprenda a configurar taxas de EXP diferenciadas por faixa de nível no seu servidor de MU Online usando arquivos .ini e SQL Server.
Configurar taxas de EXP de forma granular — diferentes para faixas de nível, mapas ou períodos — é um dos ajustes mais impactantes na experiência de jogo do seu servidor de MU Online. Este guia cobre o processo completo para MuServer Season 6 (o mais comum em servidores privados), com referências para Season 2/3 e Season 12+.
Entendendo a Arquitetura de EXP no MuServer
Antes de editar qualquer arquivo, é fundamental entender como o GameServer calcula a EXP concedida a um personagem:
- O monstro morto possui um valor de EXP base definido no banco de dados
- O GameServer aplica o multiplicador global (
ExpRate) configurado no.ini - O resultado é comparado com a tabela de experiência por nível para determinar se houve level up
- Bônus adicionais (VIP, eventos, itens) são somados por cima
Conhecendo essa cadeia, você pode intervir em qualquer ponto para ajustar a progressão.
Passo 1: Localizar e Editar o GameServer.ini
O arquivo principal de configuração do GameServer fica em:
GameServer/GameServer.ini
Abra-o com o Notepad++ ou qualquer editor de texto sem formatação. Localize a seção [GameServer] ou [Exp] dependendo da sua versão:
[GameServer]
ExpRate=10
MasterExpRate=5
MasterLevel=400
MaxLevel=400
Significado dos parâmetros:
| Parâmetro | Função | Valor típico |
|---|---|---|
ExpRate | Multiplicador global de EXP (1 = normal, 10 = 10x) | 5–100 |
MasterExpRate | Multiplicador de EXP para Master Level (acima do level máximo base) | 3–50 |
MasterLevel | Level a partir do qual o sistema Master Level é ativado | 400 |
MaxLevel | Level máximo que um personagem comum pode atingir | 400 |
ExpRate entre 5 e 20. Para servidores de curta duração ou "fun server", valores entre 100 e 9999 são comuns.Passo 2: Configurar EXP Diferenciada por Faixa de Nível via SQL
A abordagem mais poderosa para controlar a curva de progressão é ajustar diretamente a tabela de experiência necessária por nível no banco de dados. Isso permite que os primeiros níveis sejam muito rápidos e os altos níveis sejam gradualmente mais demorados.
Conecte ao SQL Server Management Studio e execute na base MuOnline:
-- Verificar a estrutura atual da tabela de experiência por nível
USE MuOnline;
SELECT TOP 20 Level, Experience
FROM LevelExperience
ORDER BY Level ASC;
Para ajustar a EXP necessária nos níveis 1 a 150 (fase inicial acelerada):
-- Reduzir a EXP necessária nos primeiros 150 níveis em 50%
UPDATE MuOnline.dbo.LevelExperience
SET Experience = Experience * 0.5
WHERE Level BETWEEN 1 AND 150;
Para fazer os níveis 151 a 300 demandarem mais esforço (fase intermediária):
-- Aumentar a EXP necessária nos níveis 151-300 em 20%
UPDATE MuOnline.dbo.LevelExperience
SET Experience = Experience * 1.2
WHERE Level BETWEEN 151 AND 300;
Para tornar os níveis 301 ao máximo muito mais desafiadores (fase avançada):
-- Dobrar a EXP necessária nos níveis acima de 300
UPDATE MuOnline.dbo.LevelExperience
SET Experience = Experience * 2.0
WHERE Level > 300;
SELECT * INTO LevelExperience_backup FROM LevelExperience antes de iniciar as modificações. Se algo sair errado, restaure com: UPDATE le SET le.Experience = bkp.Experience FROM LevelExperience le JOIN LevelExperience_backup bkp ON le.Level = bkp.Level.Passo 3: Configurar EXP de Monstros Individualmente
A EXP de cada monstro é definida na tabela Monster (ou MonsterAttr dependendo da versão). Para ver e ajustar:
-- Listar os 20 monstros com mais EXP
USE MuOnline;
SELECT TOP 20 Number, Name, Experience
FROM Monster
ORDER BY Experience DESC;
-- Aumentar a EXP de todos os monstros do Tarkan em 30%
-- (assumindo que os IDs do Tarkan vão de 45 a 62 na sua versão)
UPDATE MuOnline.dbo.Monster
SET Experience = Experience * 1.3
WHERE Number BETWEEN 45 AND 62;
Para identificar o range de IDs dos monstros por mapa, consulte o arquivo:
GameServer/Data/Maps/MapName.bmd
Ou use a query:
-- Consultar monstros de um mapa específico via tabela de spawn
SELECT m.Number, m.Name, m.Experience, s.MapNumber
FROM Monster m
JOIN MonsterSetBase s ON m.Number = s.Type
WHERE s.MapNumber = 9 -- 9 = Tarkan na maioria das versões S6
ORDER BY m.Experience DESC;
Passo 4: Configurar EXP por Evento (Blood Castle, Devil Square)
Eventos concedem bônus de EXP que podem ser configurados em arquivos .ini separados ou via tabela no banco. No Season 6 padrão:
Blood Castle — edite GameServer/Data/Events/BloodCastle.ini:
[BloodCastle]
ExpBonus=200
; Bônus em % adicionado à EXP durante o evento
; 200 = personagens ganham 200% a mais de EXP dentro do Blood Castle
Devil Square — edite GameServer/Data/Events/DevilSquare.ini:
[DevilSquare]
ExpBonus=150
ExpBonusPerRound=50
; ExpBonus: bônus base
; ExpBonusPerRound: bônus extra por round completado (acumulativo)
EventConfig ou EventSchedule. Execute SELECT * FROM EventConfig WHERE EventType IN ('BloodCastle', 'DevilSquare') para localizar os campos corretos na sua versão.Passo 5: Implementar EXP Diferenciada por Período (Happy Hour)
Para criar períodos de EXP aumentada (ex.: fins de semana com 2x EXP), a abordagem mais limpa é usar um script de banco agendado no SQL Server Agent.
Criar a stored procedure de controle de EXP:
USE MuOnline;
GO
CREATE PROCEDURE sp_SetExpRate
@NewRate INT
AS
BEGIN
-- Atualizar variável de configuração em tempo de execução
-- (funciona em GameServers que consultam essa tabela dinamicamente)
UPDATE ServerConfig
SET Value = CAST(@NewRate AS VARCHAR(10))
WHERE ConfigKey = 'ExpRate';
-- Registrar o log da alteração
INSERT INTO AdminLog (Action, Value, ExecutedAt)
VALUES ('ExpRateChange', CAST(@NewRate AS VARCHAR(10)), GETDATE());
END;
GO
-- Ativar EXP dupla toda sexta às 20h
EXEC sp_SetExpRate @NewRate = 20; -- Se base for 10, isso dobra a taxa
-- Voltar ao normal segunda às 0h
EXEC sp_SetExpRate @NewRate = 10;
ExpRate apenas no .ini no momento da inicialização, o método acima não funciona sem reiniciar o servidor. Nesses casos, use o comando de GM in-game /setexp 20 (disponível em alguns packs) ou crie um script .bat que edita o .ini e reinicia o GameServer.exe automaticamente via Agendador de Tarefas do Windows.Script .bat para troca automática de ExpRate:
@echo off
REM Script: toggle_exp.bat
REM Caminho: C:\MuServer\scripts\toggle_exp.bat
SET INIFILE=C:\MuServer\GameServer\GameServer.ini
SET NEWRATE=%1
REM Substituir o valor de ExpRate no ini usando PowerShell
powershell -Command "(Get-Content '%INIFILE%') -replace 'ExpRate=\d+', 'ExpRate=%NEWRATE%' | Set-Content '%INIFILE%'"
REM Reiniciar o GameServer (ajuste o nome do processo conforme necessário)
taskkill /F /IM GameServer.exe
timeout /T 3
start "" "C:\MuServer\GameServer\GameServer.exe"
echo ExpRate alterada para %NEWRATE% em %DATE% %TIME%
Para agendar: Agendador de Tarefas do Windows → Nova Tarefa → Ação: toggle_exp.bat 20 (para aumentar) e toggle_exp.bat 10 (para voltar ao normal).
Passo 6: Verificar e Testar as Configurações
Após aplicar as mudanças, siga este checklist:
- Reinicie o
GameServer.exepara carregar o novoGameServer.ini - Conecte com uma conta de GM (Game Master) no servidor
- Use o comando
/addexp 1000000(ou equivalente do seu pack) para testar se a EXP está sendo aplicada corretamente - Verifique os logs do GameServer em
GameServer/Logs/por erros de configuração - Teste com um personagem nível 1 e verifique se a progressão nos primeiros níveis está conforme esperado
-- Consulta de diagnóstico: verificar EXP atual de um personagem
SELECT Name, Level, Experience, Resets
FROM MuOnline.dbo.Character
WHERE Name = 'NomeDoPersonagem';
LevelExperience com personagens online. Personagens com EXP acumulada próxima ao threshold de level up podem ter comportamento inesperado se o threshold mudar enquanto a sessão está ativa. Faça manutenções no banco com o servidor offline ou nos intervalos de baixo movimento.Troubleshooting Comum
Problema: ExpRate alterado no .ini mas sem efeito após reiniciar Solução: Verifique se há outro arquivo de configuração sobrepondo — alguns packs usam GameServer.cfg ou Config.ini em subpastas. Execute: findstr /S /I "ExpRate" C:\MuServer\GameServer\*.ini *.cfg para localizar todos os arquivos com o parâmetro.
Problema: Personagens não recebem EXP em nenhum mapa Solução: Verifique se ExpRate não está definido como 0. Verifique também se o serviço do DataServer está ativo — sem o DataServer, o GameServer não consegue gravar progressão de EXP.
Problema: EXP de evento (Blood Castle) parece igual ao EXP normal Solução: O arquivo BloodCastle.ini pode não estar sendo lido. Confirme o caminho exato: alguns packs usam GameServer/Data/Events/bc_config.ini ou leem os valores diretamente de uma tabela SQL chamada EventPrize ou BCConfig.
Perguntas frequentes
Posso ter taxas de EXP diferentes para cada mapa?
Sim. No GameServer/Data/Maps/ cada mapa possui um arquivo de configuração onde é possível definir um multiplicador de EXP local, sobrepondo a taxa global definida no GameServer.ini. Combine os parâmetros ExpMultiplier no arquivo do mapa com a taxa base para criar progressões distintas por região.
O que acontece se eu colocar ExpRate=0 por engano?
O servidor trata ExpRate=0 como taxa nula e nenhum personagem ganha experiência. Mantenha sempre um valor mínimo de 1. Após corrigir o valor, reinicie o GameServer para aplicar a mudança — alterações no .ini só têm efeito na inicialização do processo.
Como resetar a EXP acumulada de um personagem via SQL?
Execute: UPDATE MuOnline.dbo.Character SET Experience = 0, Level = 1 WHERE Name = 'NomeDoChar'. Certifique-se de que o personagem esteja offline antes de executar o comando para evitar conflito de dados entre o banco e a sessão ativa no GameServer.
Qual a diferença entre ExpRate no .ini e a tabela LevelExperience no banco?
ExpRate é o multiplicador global aplicado sobre a EXP base de cada monstro. A tabela LevelExperience (ou equivalente em sua versão) define quanto de EXP total é necessário para passar de um nível para o próximo. Ambos trabalham juntos: aumente ExpRate para o jogador subir mais rápido, e ajuste LevelExperience para controlar o total necessário por nível.