Installation (Windows 5xx) test
INTRODUCTION
This page covers the Windows prerequisites and build steps for the current SkyFire_548 source tree.
The current build requires a C++23-capable MSVC compiler, Boost 1.91.0, OpenSSL 4.0.0 with the legacy provider module, and MySQL client development libraries. ACE is no longer required.
The commands below assume a 64-bit Windows host and install or stage the server in D:\SkyFire_Files\Server. Adjust paths if your local layout is different.
Software Required
- Windows 10, Windows 11, Windows Server 2022, or Windows Server 2025, 64-bit.
- Git for Windows.
- Visual Studio 2022 Community, Professional, Enterprise, or Build Tools.
- Install the Desktop development with C++ workload.
- Include the MSVC v143 toolset and the Windows 10 or Windows 11 SDK.
- SkyFire requires MSVC 19.44.35217.0 or newer.
- CMake 4.1.2 or newer.
- Boost 1.91.0.
- OpenSSL 4.0.0, full x64 install, with the legacy provider module.
- MySQL 9.7 or compatible MySQL client development libraries.
- The tested Windows install is MySQL Server 9.7.
- The C API development headers and libraries must be installed.
- SQL client for database work, such as HeidiSQL.
Do not install only runtime components for OpenSSL or MySQL. The build needs headers, import libraries, and runtime DLLs.
Recommended Paths
The CMake files can find several common locations, but these paths match the current project defaults and CI layout:
C:\SkyFire_548 C:\local\boost_1_91_0 C:\Program Files\OpenSSL C:\Program Files\MySQL\MySQL Server 9.7 D:\SkyFire_Files\Server
If your OpenSSL installer uses C:\Program Files\OpenSSL-Win64 instead of C:\Program Files\OpenSSL, use that path for OPENSSL_ROOT_DIR.
Install Boost 1.91.0
Open Developer PowerShell for Visual Studio 2022 and run:
$env:BOOST_ROOT = "C:\local\boost_1_91_0"
New-Item -ItemType Directory -Force C:\local | Out-Null
$boostArchive = Join-Path $env:TEMP "boost_1_91_0.tar.gz"
$boostSource = Join-Path $env:TEMP "boost_1_91_0"
Invoke-WebRequest `
-Uri "https://archives.boost.io/release/1.91.0/source/boost_1_91_0.tar.gz" `
-OutFile $boostArchive
if (Test-Path $boostSource) {
Remove-Item -Recurse -Force $boostSource
}
tar -xzf $boostArchive -C $env:TEMP
Push-Location $boostSource
try {
.\bootstrap.bat
.\b2.exe install --prefix="$env:BOOST_ROOT" --with-headers -j"$env:NUMBER_OF_PROCESSORS"
}
finally {
Pop-Location
}
Verify the install:
Test-Path C:\local\boost_1_91_0\include\boost
The command should print True.
Install OpenSSL 4.0.0
Install OpenSSL 4.0.0 x64. The CI build uses Chocolatey:
choco install -y openssl --version=4.0.0
Manual installers are also fine if they install the full x64 package. Do not use a light/runtime-only package if it omits development libraries or provider modules.
Verify OpenSSL:
$env:OPENSSL_ROOT_DIR = "C:\Program Files\OpenSSL" $env:OPENSSL_MODULES = "C:\Program Files\OpenSSL\bin" Test-Path "$env:OPENSSL_ROOT_DIR\include\openssl\ssl.h" Test-Path "$env:OPENSSL_MODULES\legacy.dll" Test-Path "$env:OPENSSL_ROOT_DIR\lib\VC\x64\MD\liblegacy.lib"
Each command should print True.
If OpenSSL is installed under C:\Program Files\OpenSSL-Win64, use:
$env:OPENSSL_ROOT_DIR = "C:\Program Files\OpenSSL-Win64" $env:OPENSSL_MODULES = "C:\Program Files\OpenSSL-Win64\bin"
Install MySQL Development Files
Install MySQL Server 9.7 or a compatible MySQL package that includes the C API headers and import libraries.
Verify the expected files:
$env:MYSQL_ROOT = "C:\Program Files\MySQL\MySQL Server 9.7" Test-Path "$env:MYSQL_ROOT\include\mysql.h" Test-Path "$env:MYSQL_ROOT\lib\libmysql.lib" Test-Path "$env:MYSQL_ROOT\lib\libmysql.dll"
Each command should print True.
If MySQL is installed somewhere else, set MYSQL_ROOT, MYSQL_HOME, or MYSQL_DIR before running CMake.
Pulling the Source
Open Developer PowerShell for Visual Studio 2022 and run:
cd C:\ git clone -b main https://github.com/ProjectSkyfire/SkyFire_548.git C:\SkyFire_548 cd C:\SkyFire_548
To update an existing checkout:
cd C:\SkyFire_548 git pull --ff-only
Configure with CMake
Set dependency paths in the same shell you will use to configure:
$env:BOOST_ROOT = "C:\local\boost_1_91_0" $env:OPENSSL_ROOT_DIR = "C:\Program Files\OpenSSL" $env:OPENSSL_MODULES = "C:\Program Files\OpenSSL\bin" $env:MYSQL_ROOT = "C:\Program Files\MySQL\MySQL Server 9.7"
Configure a 64-bit Visual Studio solution:
cmake -S C:\SkyFire_548 -B C:\SkyFire_548\build ` -G "Visual Studio 17 2022" ` -A x64 ` -DCMAKE_INSTALL_PREFIX="D:\SkyFire_Files\Server" ` -DTOOLS=ON ` -DBOOST_ROOT="$env:BOOST_ROOT" ` -DOPENSSL_ROOT_DIR="$env:OPENSSL_ROOT_DIR"
Default server and script options are enabled. TOOLS=ON builds the map, vmap, and mmap extraction tools.
If you need to work around a precompiled-header issue while debugging, add:
-DNOPCH=1
Do not use NOPCH for normal Windows release builds unless you are troubleshooting.
Configure with CMake GUI
Command-line CMake is recommended, but CMake GUI also works:
- Where is the source code: C:\SkyFire_548
- Where to build the binaries: C:\SkyFire_548\build
- Generator: Visual Studio 17 2022
- Optional platform: x64
After the first Configure pass, verify or add:
BOOST_ROOT=C:\local\boost_1_91_0 OPENSSL_ROOT_DIR=C:\Program Files\OpenSSL CMAKE_INSTALL_PREFIX=D:\SkyFire_Files\Server TOOLS=ON
OPENSSL_MODULES is read from the environment, so set it before launching CMake GUI if your OpenSSL module directory is not discovered automatically.
Build
From Developer PowerShell:
cmake --build C:\SkyFire_548\build --config Release --parallel
Release build output is written under:
C:\SkyFire_548\build\bin\Release
Expected server files include:
authserver.exe worldserver.exe authserver.conf.dist worldserver.conf.dist libcrypto-4-x64.dll libssl-4-x64.dll libmysql.dll
With TOOLS=ON, extraction tools are also built in the same output tree.
Install or Stage the Server Files
You can install the main targets with:
cmake --install C:\SkyFire_548\build --config Release
For a normal local server folder, copying the Release output is often simpler:
New-Item -ItemType Directory -Force D:\SkyFire_Files\Server | Out-Null Copy-Item C:\SkyFire_548\build\bin\Release\* D:\SkyFire_Files\Server -Recurse -Force
Rename the configuration files:
Copy-Item D:\SkyFire_Files\Server\authserver.conf.dist D:\SkyFire_Files\Server\authserver.conf Copy-Item D:\SkyFire_Files\Server\worldserver.conf.dist D:\SkyFire_Files\Server\worldserver.conf
Edit authserver.conf and worldserver.conf for your database host, database names, bind IPs, ports, and data directory.
If OpenSSL provider loading fails at runtime, set OPENSSL_MODULES for the user running the server:
setx OPENSSL_MODULES "C:\Program Files\OpenSSL\bin"
Open a new shell after using setx.
Useful CMake Options
-DSERVERS=ON Build worldserver and authserver. Enabled by default. -DSCRIPTS=ON Build core with scripts included. Enabled by default. -DTOOLS=ON Build map/vmap/mmap extraction and assembler tools. -DNOPCH=1 Disable all precompiled headers. -DUSE_COREPCH=ON Use precompiled headers for core/server targets. -DUSE_SCRIPTPCH=ON Use precompiled headers for scripts. -DWITH_WARNINGS=ON Enable extra compiler warnings. -DWITH_COREDEBUG=ON Include additional core debug code. -DWITHOUT_GIT=ON Disable git revision detection. -DAUTH_SERVER=ON Build authserver. Enabled by default. -DWITH_CXX_23_STD=ON Use C++23. Enabled by default. -DWITH_CXX_DRAFT_STD=ON Use the compiler draft standard mode.
Troubleshooting
MSVC version is too old
SkyFire requires MSVC 19.44.35217.0 or newer. Update Visual Studio 2022 or Visual Studio Build Tools, then delete the CMake build directory and configure again.
Remove-Item -Recurse -Force C:\SkyFire_548\build
Boost was not found
Confirm BOOST_ROOT points at Boost 1.91.0:
$env:BOOST_ROOT = "C:\local\boost_1_91_0" Test-Path "$env:BOOST_ROOT\include\boost"
Delete the CMake build directory and configure again.
SkyFire needs OpenSSL version 4.0.0
CMake found a different OpenSSL version. Set OPENSSL_ROOT_DIR to the OpenSSL 4.0.0 install and reconfigure from a clean build directory.
$env:OPENSSL_ROOT_DIR = "C:\Program Files\OpenSSL" Remove-Item -Recurse -Force C:\SkyFire_548\build
OpenSSL modules or legacy.dll were not found
Set OPENSSL_MODULES to the directory containing legacy.dll:
$env:OPENSSL_MODULES = "C:\Program Files\OpenSSL\bin" Test-Path "$env:OPENSSL_MODULES\legacy.dll"
If legacy.dll is missing, reinstall the full OpenSSL 4.0.0 x64 package.
MySQL headers or libraries were not found
Install the MySQL development components and set MYSQL_ROOT if needed:
$env:MYSQL_ROOT = "C:\Program Files\MySQL\MySQL Server 9.7" Test-Path "$env:MYSQL_ROOT\include\mysql.h" Test-Path "$env:MYSQL_ROOT\lib\libmysql.lib"
Delete the CMake build directory and configure again.
Runtime error for libmysql.dll, libssl, or libcrypto
Copy the DLLs from the build output into the server folder, or keep the dependency directories on PATH.
Copy-Item C:\SkyFire_548\build\bin\Release\*.dll D:\SkyFire_Files\Server -Force
References
- https://github.com/ProjectSkyfire/SkyFire_548
- https://github.com/ProjectSkyfire/roadmap
- https://wiki.projectskyfire.org/index.php?title=Installation_(Windows_5xx)
- https://archives.boost.io/release/1.91.0/source/
- https://www.openssl.org/source/
- https://dev.mysql.com/downloads/installer/
- https://cmake.org/download/
- https://visualstudio.microsoft.com/downloads/