=======
Welcome to Project Hybrasyl! Our aim is to create a well-documented and exceptionally accurate private server for Dark Ages. Look around, make an account, and join us sometime.
This document is intended for developers; if you're interested in using a released version of Hybrasyl server, please check the releases page of the project website. Hybrasyl is a work in progress and many features are not yet implemented. You can see what's currently in the works on the bug tracker, or check out recent project news.
The instructions in this document will guide you in setting up and running the latest version of Hybrasyl and connecting a Dark Ages client for testing purposes. Note that this project does not provide a full copy of game content (properly configured items, maps, warps between maps, etc); it comes with a very basic set that will allow you to log in but not enough to come close to playing the full game. Ealagad can be used for easy content editing.
There are three processes that need to be properly configured in order to connect a Dark Ages client to your own Hybrasyl instance: the Hybrasyl launcher (which modifies the Dark Ages client), the Hybrasyl server, and a MySQL server. This tutorial assumes that the launcher (DA client) and Hybrasyl server will be running on the same machine, but the MySQL server can either be either colocated or installed on another reachable server. We'll call the machine running the Hybrasyl server and launcher client the Hybrasyl server, and the machine running the MySQL server is the data server. If you're running all of this on the same machine then just do everything there.
The data server maintains all game metadata and state, including registered character names, mobs, towns, spawn points, items, and a bunch of other game-related data. The Hybrasyl server retrieves game data from the MySQL server at runtime; you can also use Ealagad as a Hybrasyl-specific administration interface once the base server is configured.
- Instructions should be readily available for installing the latest MySQL server on your operating system of choice (Windows and Mac OS installer, Ubuntu). Install the server and ensure that you can connect to it from the Hybrasyl server; this may require you to grant other hosts access to your MySQL server process or potentially opening ports on the data server.
- Import the schema from this repository, which will create two databases:
dev_hybrasyl
andhybrasyl
. - Import the sample data from this repository once the schema has been added. This will populate the database with enough information to properly log a user in and allow for a bit of wandering, but not much else.
If you can connect to the data server from the Hybrasyl server and retrieve a short list of items from the items
table, your data server is in good shape.
The Hybrasyl server is a bit more involved and requires compiling both Hybrasyl server and (potentially) launcher code from scratch.
- Install Microsoft Visual Studio. The Community Edition is free and capable of compiling both projects.
- Install IronPython. Hybrasyl currently uses Python for all of its scripting.
- Clone both the launcher and server repositories to your local machine using a git client. Make sure you clone them into separate directories.
- Copy
lod136.map
andlod500.map
from your Dark Ages directory (or an online archive) intoMy Documents\Hybrasyl\Maps
. Create the directory if it doesn't exist. - Open
Hybrasyl.sln
in Visual Studio and update all NuGet packages. - Build Hybrasyl. The default settings should be adequate for most system setups, assuming you've updated and installed all NuGet packages (which is supposed to happen automatically but sometimes has issues).
- Note that you may get an error about an invalid ADO.NET MySQL connector. In my experience the build still completes without issues.
- Run Hybrasyl.exe either from within Visual Studio or as a standalone executable in the
hybrasyl\bin\Debug
folder of your git repository. This should launch the server and run you through a first-launch configuration wizard. Here's you'll need to point the Hybrasyl server to the data server; make sure you provide the right hostname and also use thedev_hybrasyl
database (nothybrasyl
, even though both will exist).- Note that you can change these settings later by editing
config.xml
inMy Documents\Hybrasyl
.
- Note that you can change these settings later by editing
That completes Hybrasyl server setup. You should be able to use the released version of the launcher to connect to it. In case you have trouble with the latest launcher, open Hy-brasyl Launcher.sln
and build the project. Launch the executable and select localhost
from the server configuration dropdown. You should now be able to connect to your Hybrasyl server, create a new character, and log in!
Log in to your new server by launching the Hy-brasyl Launcher application, either compiled as described above or downloaded from hybrasyl.com. Point it to a local Dark Ages client installation, select localhost
from the server configuration dropdown, and launch. The launcher will ask you for a local Dark Ages client executable; you must have the latest client installed in order to continue. Once launched, you should see a Hybrasyl welcome screen in place of the standard Dark Ages welcome screen. Congratulations -- you're connected!
Create a character and log in the same way you would on a production server. You should find your Aisling in an inn and ready to explore the world.
-
There are a number of admin flags that can be used for common tasks like creating items, teleporting, or changing level and class. Certain flags require that you be registered as a game master. The fastest way to configure this is to add a record in the
flags_players
table that contains the player ID (which you can find in theplayers
table) and the flag ID (which should be0
in the case of the game master flag). -
Some flags require admin-level access to the Hybrasyl server. Try typing
/item Shirt 1
when you log in to add a shirt to your inventory. You can add any item that's in theitem
table of yourdev_hybrasyl
database. -
Warps are links between locations on the map. You can add or remove warps in the
warps
table. -
You can add new items by modifying the
items
table. There are a couple of sample items included inseed.sql
that should provide good models to follow.