====== 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