====== Information ======
* MaNGOS ((https://www.getmangos.eu/))
* MaNGOS One ((https://github.com/mangosone))
* :!: 2025/10/08: WIP ((everything up to [[#scripts|Scripts]] is good-to-go))
===== Prerequisites =====
* [[windows:10|Windows 10 (21H2)]]
* [[programs;windows;git|Git]]
* [[servers;windows;mariadb|MariaDB]] (Dev components required; no service/networking)
* [[games;windows;world_of_warcraft_2.4.3|World of Warcraft 2.4.3]]
====== Dependencies ======
===== Visual Studio 2022 =====
* VS2022 [[https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022|VisualStudioSetup.exe]]
* Pause installer to prevent initial auto-download of unnecessary components
==== Required Components ====
* Desktop development with C++ (C++ core desktop features)
* MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)
* Windows 11 SDK (10.0.26100.4654)
"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\setup.exe"
===== CMake =====
* https://cmake.org/download/
* Last tested: ''cmake-4.1.1-windows-x86_64.msi''
* ''[ ]'' Add CMake to the PATH environment variable
===== OpenSSL =====
* https://slproweb.com/products/Win32OpenSSL.html (:!: not Light)
* Last tested: ''Win64OpenSSL-3_5_4.msi''
* Copy OpenSSL DLLs to:
* ''[x]'' The OpenSSL binaries (/bin) directory
====== Download Source ======
* https://github.com/mangosone/server/commits/master/
"%ProgramFiles%\Git\bin\git.exe" clone --branch "master" --depth "1" --recurse-submodules "https://github.com/mangosone/server.git" "%UserProfile%\Projects\MaNGOS-One-TBC\src"
====== Databases ======
===== Connect =====
"%ProgramFiles%\MariaDB 12.1\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 12.1\data\my.ini"
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p
===== Databases =====
CREATE DATABASE realmd;
CREATE DATABASE character1;
CREATE DATABASE mangos1;
===== Users =====
CREATE USER 'realmd'@'localhost' IDENTIFIED BY 'x';
CREATE USER 'character1'@'localhost' IDENTIFIED BY 'x';
CREATE USER 'mangos1'@'localhost' IDENTIFIED BY 'x';
===== Permissions =====
GRANT ALL PRIVILEGES ON realmd.* to 'realmd'@'localhost';
GRANT ALL PRIVILEGES ON character1.* to 'character1'@'localhost';
GRANT ALL PRIVILEGES ON mangos1.* to 'mangos1'@'localhost';
FLUSH PRIVILEGES;
EXIT
===== Base Imports =====
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p "realmd" < "%UserProfile%\Projects\MaNGOS-One-TBC\database\Realm\Setup\realmdLoadDB.sql"
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p "character1" < "%UserProfile%\Projects\MaNGOS-One-TBC\database\Character\Setup\characterLoadDB.sql"
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p "mangos1" < "%UserProfile%\Projects\MaNGOS-One-TBC\database\World\Setup\mangosdLoadDB.sql"
====== Initial Compile ======
===== CMake =====
****
"%ProgramFiles%\CMake\bin\cmake.exe" -S "%UserProfile%\Projects\MaNGOS-One-TBC\src" -B "%UserProfile%\Projects\MaNGOS-One-TBC\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DMySQL_INCLUDE_DIR="%ProgramFiles%\MariaDB 12.1\include\mysql" -DMySQL_LIBRARY="%ProgramFiles%\MariaDB 12.1\lib\libmariadb.lib" -DDEBUG="0" -DPLAYERBOTS="0" -DSCRIPT_LIB_ELUNA="0" -DBUILD_TOOLS="1"
===== Compile =====
* 3 minutes i5-8400H ((2025/10/08: ''00:02:49.86''))
"%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSBuild.exe" "%UserProfile%\Projects\MaNGOS-One-TBC\build\ALL_BUILD.vcxproj" -target:"Rebuild" -property:"Configuration=Release"
===== Server Files =====
MKDIR "%UserProfile%\Projects\MaNGOS-One-TBC\server" & COPY /Y "%UserProfile%\Projects\MaNGOS-One-TBC\build\src\realmd\Release\realmd.exe" "%UserProfile%\Projects\MaNGOS-One-TBC\server"
MKDIR "%UserProfile%\Projects\MaNGOS-One-TBC\server" & COPY /Y "%UserProfile%\Projects\MaNGOS-One-TBC\build\src\mangosd\Release\mangosd.exe" "%UserProfile%\Projects\MaNGOS-One-TBC\server"
MKDIR "%UserProfile%\Projects\MaNGOS-One-TBC\server" & COPY /Y "%ProgramFiles%\MariaDB 12.1\lib\libmariadb.dll" "%UserProfile%\Projects\MaNGOS-One-TBC\server"
MKDIR "%UserProfile%\Projects\MaNGOS-One-TBC\server" & COPY /Y "%ProgramFiles%\OpenSSL-Win64\bin\libcrypto-3-x64.dll" "%UserProfile%\Projects\MaNGOS-One-TBC\server"
====== Content ======
* Expects [[games;windows;world_of_warcraft_2.4.3#install|World of Warcraft 2.4.3]]
DIR "%ProgramFiles(x86)%\World of Warcraft 2.4.3\Wow.exe"
===== DBCs and Maps =====
****
MKDIR "%UserProfile%\Projects\MaNGOS-One-TBC\server" & "%UserProfile%\Projects\MaNGOS-One-TBC\build\src\tools\Extractor_projects\Release\map-extractor.exe" -i "%ProgramFiles(x86)%\World of Warcraft 2.4.3" -o "%UserProfile%\Projects\MaNGOS-One-TBC\server" -f "0"
===== VMaps =====
****
MKDIR "%UserProfile%\Projects\MaNGOS-One-TBC\server" & CD "%UserProfile%\Projects\MaNGOS-One-TBC\server" && "%UserProfile%\Projects\MaNGOS-One-TBC\build\src\tools\Extractor_projects\Release\vmap-extractor.exe" -i "%ProgramFiles(x86)%\World of Warcraft 2.4.3"
===== MMaps =====
* :!: 20 minutes i5-8400H ((2025/10/08: ''1132 seconds''))
* ''--threads %NUMBER_OF_PROCESSORS%''
MKDIR "%UserProfile%\Projects\MaNGOS-One-TBC\server" & CD "%UserProfile%\Projects\MaNGOS-One-TBC\server" && "%UserProfile%\Projects\MaNGOS-One-TBC\build\src\tools\Extractor_projects\Release\mmap-extractor.exe" -i "%ProgramFiles(x86)%\World of Warcraft 2.4.3" --offMeshInput "%UserProfile%\Projects\MaNGOS-One-TBC\src\src\tools\Extractor_Binaries\offmesh.txt" --bigBaseUnit "true" --threads %NUMBER_OF_PROCESSORS%
===== Clean-up =====
****
RMDIR /S /Q "%UserProfile%\Projects\MaNGOS-One-TBC\server\Buildings"
====== World Database ======
===== MaNGOS One =====
==== Git ====
* https://github.com/mangosone/database/commits/master/
"%ProgramFiles%\Git\bin\git.exe" clone --branch "master" --depth "1" --recurse-submodules "https://github.com/mangosone/database.git" "%UserProfile%\Projects\MaNGOS-One-TBC\database"
==== Base Import ====
"%ProgramFiles%\MariaDB 12.1\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 12.1\data\my.ini"
COPY /B "%UserProfile%\Projects\MaNGOS-One-TBC\database\World\Setup\FullDB\"*".sql" "%UserProfile%\Projects\MaNGOS-One-TBC\server\world.sql"
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p "mangos1" < "%UserProfile%\Projects\MaNGOS-One-TBC\server\world.sql"
==== Initial Updates ====
* https://github.com/mangosone/database/commits/master/World/Updates
* https://github.com/mangosone/database/tree/master/World/Updates/Rel22
COPY /B "%UserProfile%\Projects\MaNGOS-One-TBC\database\World\Updates\Rel22\"*".sql" "%UserProfile%\Projects\MaNGOS-One-TBC\server\world-updates.sql"
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p "mangos1" < "%UserProfile%\Projects\MaNGOS-One-TBC\server\world-updates.sql"
==== Clean-up ====
****
DEL /F /Q "%UserProfile%\Projects\MaNGOS-One-TBC\server\world.sql" "%UserProfile%\Projects\MaNGOS-One-TBC\server\world-updates.sql"
====== Settings ======
* [[#default_conf_refs|Default conf references]]
* TODO: Conf URLs need updating to MaNGOS
===== realmd=====
* Last commit: [[https://github.com/TrinityCore/TrinityCore/commit/68bf7e6d12e1689d688db32c05066b8832922c67|Jul 28, 2021]] ''68bf7e6''
* [[https://github.com/TrinityCore/TrinityCore/commits/3.3.5/src/server/authserver/authserver.conf.dist|New commits check]]
* [[https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/authserver/authserver.conf.dist|Upstream authserver.conf.dist]] ([[https://raw.githubusercontent.com/TrinityCore/TrinityCore/3.3.5/src/server/authserver/authserver.conf.dist|raw]])
MKDIR "%UserProfile%\Projects\MaNGOS-One-TBC\conf"
"notepad.exe" "%UserProfile%\Projects\MaNGOS-One-TBC\conf\realmd-localhost.conf"
[RealmdConf]
ConfVersion=2025100801
LoginDatabaseInfo = ".;3306;realmd;x;realmd"
LogsDir = ""
PidFile = ""
MaxPingTime = 30
RealmServerPort = 3724
BindIP = "0.0.0.0"
LogLevel = 0
LogTime = 0
#LogFile = "realm-list.log"
LogFile = ""
LogTimestamp = 1
LogFileLevel = 3
LogColors = "13 7 11 9"
UseProcessors = 0
ProcessPriority = 0
WaitAtStartupError = 0
RealmsStateUpdateDelay = 20
WrongPass.MaxCount = 3
WrongPass.BanTime = 0
WrongPass.BanType = 0
# End
===== mangosd =====
* Last commit: [[https://github.com/TrinityCore/TrinityCore/commit/0bd56da09b1f0ae34605a1a6fdd14ca26cd42d4c|June 10th, 2025]] ''0bd56da''
* [[https://github.com/TrinityCore/TrinityCore/commits/3.3.5/src/server/worldserver/worldserver.conf.dist|New commits check]]
* [[https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/worldserver/worldserver.conf.dist|Upstream worldserver.conf.dist]] ([[https://raw.githubusercontent.com/TrinityCore/TrinityCore/3.3.5/src/server/worldserver/worldserver.conf.dist|raw]])
MKDIR "%UserProfile%\Projects\MaNGOS-One-TBC\conf"
"notepad.exe" "%UserProfile%\Projects\MaNGOS-One-TBC\conf\mangosd-localhost.conf"
[MangosdConf]
ConfVersion=2025100801
RealmID = 1
DataDir = "../server"
LogsDir = ""
LoginDatabaseInfo = ".;3306;realmd;x;realmd"
WorldDatabaseInfo = ".;3306;mangos1;x;mangos1"
CharacterDatabaseInfo = ".;3306;character1;x;character1"
LoginDatabaseConnections = 1
WorldDatabaseConnections = 1
CharacterDatabaseConnections = 1
MaxPingTime = 5
WorldServerPort = 8085
BindIP = "0.0.0.0"
UseProcessors = 0
ProcessPriority = 0
Compression = 1
PlayerLimit = 3
SaveRespawnTimeImmediately = 1
MaxOverspeedPings = 0
GridUnload = 1
LoadAllGridsOnMaps = ""
GridCleanUpDelay = 300000
MapUpdateInterval = 100
MapUpdateThreads = 2
ChangeWeatherInterval = 600000
PlayerSave.Interval = 900000
PlayerSave.Stats.MinLevel = 0
PlayerSave.Stats.SaveOnlyOnLogout = 1
vmap.enableLOS = 1
vmap.enableHeight = 1
vmap.ignoreSpellIds = "7720"
vmap.enableIndoorCheck = 1
DetectPosCollision = 1
TargetPosRecalculateRange = 0.5
mmap.enabled = 1
mmap.ignoreMapIds = ""
UpdateUptimeInterval = 10
MaxCoreStuckTime = 0
AddonChannel = 1
CleanCharacterDB = 1
LogSQL = 0
PidFile = ""
LogLevel = 0
LogTime = 0
#LogFile = "world-server.log"
LogFile = ""
LogTimestamp = 1
LogFileLevel = 3
LogFilter_TransportMoves = 1
LogFilter_CreatureMoves = 1
LogFilter_VisibilityChanges = 1
LogFilter_Weather = 1
LogFilter_DbStrictedCheck = 1
LogFilter_Pathfinding = 1
LogFilter_MapsLoading = 1
LogFilter_EventAiDev = 1
LogFilter_PeriodicAffects = 0
LogFilter_PlayerMoves = 1
LogFilter_SQLText = 1
LogFilter_AIAndMovegens = 0
LogFilter_PlayerStats = 0
LogFilter_Damage = 0
LogFilter_Combat = 0
LogFilter_SpellCast = 0
LogWhispers = 0
WorldLogFile = ""
WorldLogTimestamp = 1
#DBErrorLogFile = "world-database.log"
DBErrorLogFile = ""
ElunaErrorLogFile = ""
EventAIErrorLogFile = ""
CharLogFile = ""
CharLogTimestamp = 1
CharLogDump = 0
GmLogFile = ""
GmLogTimestamp = 1
GmLogPerAccount = 1
RaLogFile = ""
WardenLogFile = ""
WardenLogTimestamp = 1
LogColors = "13 7 11 9"
SD3ErrorLogFile = ""
GameType = 6
RealmZone = 8
Expansion = 1
DBC.Locale = 0
DeclinedNames = 0
StrictPlayerNames = 2
StrictCharterNames = 2
StrictPetNames = 2
MinPlayerName = 2
MinCharterName = 2
MinPetName = 2
CharactersCreatingDisabled = 0
CharactersPerAccount = 11
CharactersPerRealm = 10
SkipCinematics = 0
MaxPlayerLevel = 70
StartPlayerLevel = 1
StartPlayerMoney = 0
MaxHonorPoints = 75000
StartHonorPoints = 0
MinHonorKills = 15
MaintenanceDay = 3
InstantLogout = 0
AllFlightPaths = 0
InstantFlightPaths = 0
AlwaysMaxSkillForLevel = 0
ActivateWeather = 1
CastUnstuck = 1
MaxSpellCastsInChain = 20
# ?
RabbitDay = 0
Instance.IgnoreLevel = 1
Instance.IgnoreRaid = 1
Instance.ResetTimeHour = 4
Instance.UnloadDelay = 1800000
Quests.LowLevelHideDiff = -1
Quests.HighLevelHideDiff = -1
Quests.IgnoreRaid = 1
Guild.PetitionCost = 1000
Guild.EventLogRecordsCount = 100
TimerBar.Fatigue.GMLevel = 4
TimerBar.Fatigue.Max = 60
TimerBar.Breath.GMLevel = 4
TimerBar.Breath.Max = 180
TimerBar.Fire.GMLevel = 4
TimerBar.Fire.Max = 1
MaxPrimaryTradeSkill = 2
TradeSkill.GMIgnore.MaxPrimarySkillsCount = 4
TradeSkill.GMIgnore.Level = 4
TradeSkill.GMIgnore.Skill = 4
MinPetitionSigns = 0
MaxGroupXPDistance = 74
MailDeliveryDelay = 3600
MassMailer.SendPerTick = 10
PetUnsummonAtMount = 0
Event.Announce = 0
BeepAtStart = 1
ShowProgressBars = 1
WaitAtStartupError = 0
PlayerCommands = 0
Motd = "Welcome to your localhost server!"
AutoBroadcast = 0
AllowTwoSide.Accounts = 1
AllowTwoSide.Interaction.Chat = 1
AllowTwoSide.Interaction.Channel = 1
AllowTwoSide.Interaction.Group = 1
AllowTwoSide.Interaction.Guild = 1
AllowTwoSide.Interaction.Trade = 1
AllowTwoSide.Interaction.Auction = 1
AllowTwoSide.Interaction.Mail = 1
AllowTwoSide.WhoList = 1
AllowTwoSide.AddFriend = 1
TalentsInspecting = 1
ThreatRadius = 100
Rate.Creature.Aggro = 1
CreatureRespawnAggroDelay = 5000
CreatureFamilyFleeAssistanceRadius = 30
CreatureFamilyAssistanceRadius = 10
CreatureFamilyAssistanceDelay = 1500
CreatureFamilyFleeDelay = 7000
WorldBossLevelDiff = 3
Corpse.EmptyLootShow = 1
Corpse.Decay.NORMAL = 300
Corpse.Decay.RARE = 900
Corpse.Decay.ELITE = 600
Corpse.Decay.RAREELITE = 1200
Corpse.Decay.WORLDBOSS = 3600
Rate.Corpse.Decay.Looted = 0.5
Rate.Creature.Elite.Elite.Damage = 1
Rate.Creature.Elite.Elite.HP = 1
Rate.Creature.Elite.Elite.SpellDamage = 1
Rate.Creature.Elite.RARE.Damage = 1
Rate.Creature.Elite.RARE.HP = 1
Rate.Creature.Elite.RARE.SpellDamage = 1
Rate.Creature.Elite.RAREELITE.Damage = 1
Rate.Creature.Elite.RAREELITE.HP = 1
Rate.Creature.Elite.RAREELITE.SpellDamage = 1
Rate.Creature.Elite.WORLDBOSS.Damage = 1
Rate.Creature.Elite.WORLDBOSS.HP = 1
Rate.Creature.Elite.WORLDBOSS.SpellDamage = 1
Rate.Creature.Normal.Damage = 1
Rate.Creature.Normal.HP = 1
Rate.Creature.Normal.SpellDamage = 1
ListenRange.Say = 40
ListenRange.TextEmote = 40
ListenRange.Yell = 300
GuidReserveSize.Creature = 100
GuidReserveSize.GameObject = 100
ChatFakeMessagePreventing = 0
ChatStrictLinkChecking.Severity = 0
ChatStrictLinkChecking.Kick = 0
ChatFlood.MessageCount = 0
ChatFlood.MessageDelay = 1
ChatFlood.MuteTime = 10
Channel.SilentlyGMJoin = 0
GM.LoginState = 0
GM.Visible = 1
GM.AcceptTickets = 0
GM.TicketListSize = 30
GM.TicketOfflineClosing = 1
GM.Chat = 0
GM.WhisperingTo = 1
GM.InGMList.Level = 3
GM.InWhoList.Level = 3
GM.LogTrade = 0
GM.StartLevel = 1
GM.LowerSecurity = 0
GM.InvisibleAura = 37800
GM.MaxSpeedFactor = 10
Visibility.GroupMode = 0
Visibility.Distance.Continents = 90
Visibility.Distance.Instances = 120
Visibility.Distance.BGArenas = 180
Visibility.Distance.InFlight = 100
Visibility.Distance.Grey.Unit = 1
Visibility.Distance.Grey.Object = 10
Visibility.RelocationLowerLimit = 10
Visibility.AIRelocationNotifyDelay = 1000
Rate.Health = 1
Rate.Mana = 1
Rate.Rage.Income = 1
Rate.Rage.Loss = 1
Rate.Focus = 1
Rate.Loyalty = 1
Rate.Energy = 1
Rate.Skill.Discovery = 1
Rate.Drop.Item.Poor = 1
Rate.Drop.Item.Normal = 1
Rate.Drop.Item.Uncommon = 1
Rate.Drop.Item.Rare = 1
Rate.Drop.Item.Epic = 1
Rate.Drop.Item.Legendary = 1
Rate.Drop.Item.Artifact = 1
Rate.Drop.Item.Referenced = 1
Rate.Drop.Money = 1
Rate.XP.Kill = 1
Rate.XP.PetKill = 1
Rate.XP.Quest = 1
Rate.XP.Explore = 1
Rate.Rest.InGame = 1
Rate.Rest.Offline.InTavernOrCity = 1
Rate.Rest.Offline.InWilderness = 1
Rate.Damage.Fall = 1
Rate.Auction.Time = 1
Rate.Auction.Deposit = 1
Rate.Auction.Cut = 1
Auction.Deposit.Min = 0
Rate.Honor = 1
Rate.Mining.Amount = 1
Rate.Mining.Next = 1
Rate.Talent = 1
Rate.Reputation.Gain = 1
Rate.Reputation.LowLevel.Kill = 0.2
Rate.Reputation.LowLevel.Quest = 1
Rate.InstanceResetTime = 1
SkillGain.Crafting = 1
SkillGain.Defense = 1
SkillGain.Gathering = 1
SkillGain.Weapon = 1
SkillChance.Orange = 100
SkillChance.Yellow = 75
SkillChance.Green = 25
SkillChance.Grey = 0
SkillChance.MiningSteps = 0
SkillChance.SkinningSteps = 0
SkillFail.Loot.Fishing = 0
SkillFail.Gain.Fishing = 0
SkillFail.Possible.FishingPool = 1
DurabilityLossChance.Damage = 0.5
DurabilityLossChance.Absorb = 0.5
DurabilityLossChance.Parry = 0.05
DurabilityLossChance.Block = 0.05
Death.SicknessLevel = 11
Death.CorpseReclaimDelay.PvP = 1
Death.CorpseReclaimDelay.PvE = 1
Death.Bones.World = 1
Death.Bones.BattlegroundOrArena = 1
Death.Ghost.RunSpeed.World = 1.0
Death.Ghost.RunSpeed.Battleground = 1.0
Battleground.CastDeserter = 0
Battleground.QueueAnnouncer.Join = 0
Battleground.QueueAnnouncer.Start = 0
Battleground.ScoreStatistics = 0
Battleground.InvitationType = 0
BattleGround.PrematureFinishTimer = 300000
BattleGround.PremadeGroupWaitForMatch = 1800000
Arena.MaxRatingDifference = 0
Arena.RatingDiscardTimer = 600000
Arena.AutoDistributePoints = 0
Arena.AutoDistributeInterval = 7
Arena.QueueAnnouncer.Join = 0
Arena.QueueAnnouncer.Exit = 0
Arena.ArenaSeason.ID = 1
Arena.ArenaSeasonPrevious.ID = 0
Arena.StartRating = -1
Arena.StartPersonalRating = -1
OutdoorPvp.SIEnabled = 1
OutdoorPvp.EPEnabled = 1
OutdoorPvp.HPEnabled = 1
OutdoorPvp.ZMEnabled = 1
OutdoorPvp.TFEnabled = 1
OutdoorPvp.NAEnabled = 1
Network.Threads = 3
Network.OutKBuff = -1
Network.OutUBuff = 65536
Network.TcpNodelay = 1
Network.KickOnBadPacket = 0
Console.Enable = 1
Ra.Enable = 0
Ra.IP = 0.0.0.0
Ra.Port = 3443
Ra.MinLevel = 3
Ra.Secure = 1
Ra.Stricted = 1
SOAP.Enabled = 0
SOAP.IP = 127.0.0.1
SOAP.Port = 7878
CharDelete.Method = 0
CharDelete.MinLevel = 0
CharDelete.KeepDays = 30
QuestTracker.Enable = 1
Warden.WinEnabled = 0
Warden.OSXEnabled = 0
Warden.NumMemChecks = 0
Warden.NumOtherChecks = 0
Warden.ClientResponseDelay = 0
Warden.ClientCheckHoldOff = 30
Warden.ClientCheckFailAction = 0
Warden.BanDuration = 86400
Warden.DBLogLevel = 0
Realm.RecommendedOrNew.Enabled = 0
Realm.RecommendedOrNew = 0
Eluna.Enabled = false
Eluna.CompatibilityMode = false
Eluna.OnlyOnMaps = ""
Eluna.TraceBack = false
Eluna.ScriptPath = "lua_scripts"
# End
====== Firewall ======
===== Block =====
* Only ''localhost'' client connections allowed
"netsh.exe" advfirewall firewall add rule name="MaNGOS One localhost (realmd)" dir="in" action="block" profile="any" program="%UserProfile%\Projects\MaNGOS-One-TBC\server\realmd.exe" protocol="tcp" localport="3724" & "netsh.exe" advfirewall firewall add rule name="MaNGOS One localhost (mangosd)" dir="in" action="block" profile="any" program="%UserProfile%\Projects\MaNGOS-One-TBC\server\mangosd.exe" protocol="tcp" localport="8085"
===== Delete Rules =====
****
"netsh.exe" advfirewall firewall delete rule name="MaNGOS One localhost (realmd)" & "netsh.exe" advfirewall firewall delete rule name="MaNGOS One localhost (mangosd)"
===== Allow LAN =====
****
"netsh.exe" advfirewall firewall add rule name="MaNGOS One localhost (realmd)" dir="in" action="allow" profile="any" program="%UserProfile%\Projects\MaNGOS-One-TBC\server\realmd.exe" protocol="tcp" localport="3724" remoteip="localsubnet" & "netsh.exe" advfirewall firewall add rule name="MaNGOS One localhost (mangosd)" dir="in" action="allow" profile="any" program="%UserProfile%\Projects\MaNGOS-One-TBC\server\mangosd.exe" protocol="tcp" localport="8085" remoteip="localsubnet"
====== Scripts ======
===== Server Start =====
* Shutdown order: ''mangosd'' -> ''realmd'' -> MariaDB
MKDIR "%UserProfile%\Projects\MaNGOS-One-TBC\scripts" & "notepad.exe" "%UserProfile%\Projects\MaNGOS-One-TBC\scripts\localhost-server-start.bat"
@echo off
TITLE MaNGOS One Launcher
START "MariaDB Server" "%ProgramFiles%\MariaDB 12.1\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 12.1\data\my.ini"
TIMEOUT /T "2" /NOBREAK
SET "OPENSSL_MODULES=%ProgramFiles%\OpenSSL-Win64\bin"
CD "%UserProfile%\Projects\MaNGOS-One-TBC\server"
START "WoW 2.4.3 [realmd]" "%UserProfile%\Projects\MaNGOS-One-TBC\server\realmd.exe" -c "%UserProfile%\Projects\MaNGOS-One-TBC\conf\realmd-localhost.conf"
START "WoW 2.4.3 [mangosd]" "%UserProfile%\Projects\MaNGOS-One-TBC\server\mangosd.exe" -c "%UserProfile%\Projects\MaNGOS-One-TBC\conf\mangosd-localhost.conf"
:: End
"%UserProfile%\Projects\MaNGOS-One-TBC\scripts\localhost-server-start.bat"
===== Server Update =====
* TODO: ''PAUSE'' to check for ''.sql'' updates
MKDIR "%UserProfile%\Projects\TrinityCore-335\scripts" & "notepad.exe" "%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-update.bat"
@echo off
TITLE TrinityCore 335 Updater
"%ProgramFiles%\Git\bin\git.exe" -C "%UserProfile%\Projects\TrinityCore-335\src" reset --hard
"%ProgramFiles%\Git\bin\git.exe" -C "%UserProfile%\Projects\TrinityCore-335\src" pull origin "3.3.5" --rebase
"%ProgramFiles%\CMake\bin\cmake.exe" -S "%UserProfile%\Projects\TrinityCore-335\src" -B "%UserProfile%\Projects\TrinityCore-335\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DBOOST_ROOT="%SYSTEMDRIVE%/local/boost_1_89_0" -DMYSQL_INCLUDE_DIR="%ProgramFiles%\MariaDB 12.1\include\mysql" -DMYSQL_LIBRARY="%ProgramFiles%\MariaDB 12.1\lib\libmariadb.lib" -DWITHOUT_METRICS="1" -DTOOLS="0"
"%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSBuild.exe" "%UserProfile%\Projects\TrinityCore-335\build\ALL_BUILD.vcxproj" -target:"Build" -property:"Configuration=Release"
:: End
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-update.bat"
===== Database Back-up =====
MKDIR "%UserProfile%\Projects\TrinityCore-335\scripts" & "notepad.exe" "%UserProfile%\Projects\TrinityCore-335\scripts\localhost-database-backup.bat"
@echo off
TITLE WoW 3.3.5 Database Back-up
START "MariaDB Server" "%ProgramFiles%\MariaDB 12.1\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 12.1\data\my.ini"
TIMEOUT /T "2" /NOBREAK
CD "%UserProfile%\Downloads"
ECHO Root MariaDB user password prompts:
"%ProgramFiles%\MariaDB 12.1\bin\mariadb-dump.exe" -u "root" -p --opt -r "localhost-authserver.sql" "authserver"
"%ProgramFiles%\MariaDB 12.1\bin\mariadb-dump.exe" -u "root" -p --opt -r "localhost-characters.sql" "characters"
:: End
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-database-backup.bat"
====== Launcher Shortcuts ======
===== Desktop =====
==== Server Start ====
"%UserProfile%\Projects\MaNGOS-One-TBC\scripts\localhost-server-start.bat"
WoW 2.4.3 Server
===== Start Menu =====
****
MKDIR "%AppData%\Microsoft\Windows\Start Menu\Programs\World of Warcraft 2.4.3" & "explorer.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\World of Warcraft 2.4.3"
==== Server Start ====
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-start.bat"
Server Start
==== Update ====
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-update.bat"
Server Updater
==== Database Backup ====
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-database-backup.bat"
Database Back-up
==== Install Notes ====
"https://wiki.realmofespionage.xyz/servers;windows;games;mangos_one_tbc_localhost"
Install Notes (Server)
====== Management ======
===== Servers =====
* 3 Command Prompt windows
"%ProgramFiles%\MariaDB 12.1\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 12.1\data\my.ini"
CLS && SET "OPENSSL_MODULES=%ProgramFiles%\OpenSSL-Win64\bin" && CD "%UserProfile%\Projects\MaNGOS-One-TBC\server" && "%UserProfile%\Projects\MaNGOS-One-TBC\server\realmd.exe" -c "%UserProfile%\Projects\MaNGOS-One-TBC\conf\realmd-localhost.conf"
CLS && SET "OPENSSL_MODULES=%ProgramFiles%\OpenSSL-Win64\bin" && CD "%UserProfile%\Projects\MaNGOS-One-TBC\server" && "%UserProfile%\Projects\MaNGOS-One-TBC\server\mangosd.exe" -c "%UserProfile%\Projects\MaNGOS-One-TBC\conf\mangosd-localhost.conf"
===== Create Account =====
* https://www.getmangos.eu/wiki/referenceinfo/otherfiles/mangos-default-accounts-r40006/
* Run in ''mangosd'' console window
* :!: Change ''x'' to password ((can be a single character for easy log-in))
account create Espionage724 x 1
account set gmlevel Espionage724 3
account delete ADMINISTRATOR
account delete GAMEMASTER
account delete MODERATOR
account delete PLAYER
server shutdown 1
===== Realm =====
* https://www.getmangos.eu/wiki/referenceinfo/dbinfo/realmdb/realmlist-r13/
* Only ''localhost'' client connections allowed
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p --execute="INSERT INTO `realmd`.`realmlist` (`id`, `name`, `icon`, `timezone`, `realmbuilds`) VALUES ('1', 'localhost', '6', '8', '8086');"
==== Allow LAN ====
****
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p --execute="UPDATE `realmd`.`realmlist` SET `address` = '192.168.1.150' WHERE `id` = '1';"
=== Back to localhost ===
****
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p --execute="UPDATE `realmd`.`realmlist` SET `address` = '127.0.0.1' WHERE `id` = '1';"
====== Character Data ======
===== Backup =====
"%ProgramFiles%\MariaDB 12.1\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 12.1\data\my.ini"
CD "%UserProfile%\Downloads" && "%ProgramFiles%\MariaDB 12.1\bin\mariadb-dump.exe" -u "root" -p --opt -r "localhost-realmd.sql" "realmd"
CD "%UserProfile%\Downloads" && "%ProgramFiles%\MariaDB 12.1\bin\mariadb-dump.exe" -u "root" -p --opt -r "localhost-character1.sql" "character1"
===== Restore =====
* [[#databases|Initial set-up]]
"%ProgramFiles%\MariaDB 12.1\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 12.1\data\my.ini"
==== realmd ====
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE realmd"
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p "realmd" < "%UserProfile%\Downloads\localhost-realmd.sql"
==== character1 ====
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE character1"
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p "character1" < "%UserProfile%\Downloads\localhost-character1.sql"
====== Quick Commands ======
===== Server Folder =====
****
"explorer.exe" "%UserProfile%\Projects\MaNGOS-One-TBC\server"
===== Default Conf Refs =====
"notepad.exe" "%UserProfile%\Projects\MaNGOS-One-TBC\src\src\realmd\realmd.conf.dist.in"
"notepad.exe" "%UserProfile%\Projects\MaNGOS-One-TBC\src\src\mangosd\mangosd.conf.dist.in"
====== TODOs ======
* :?: "Rabbit Day" ([[https://www.getmangos.eu/forums/topic/11121-what-is-rabbit-day/|post]])
* 2025/10/08: Sometimes first-login from client is an instant-disconnect ((not game/realm type, not loopback/127.0.0.1))
* Figure out if Eluna LUA scripts provide scripts to expand/fix existing content (like ScriptDev), or only for custom/new scripts