No description
Find a file
2026-07-21 02:03:49 +03:00
.github Update the github workflow to work with the hybrid C/C++ build 2026-07-21 02:03:36 +03:00
3rdparty Silence C4702 unreachable code in llhttp library 2026-07-21 02:03:48 +03:00
cache Fixed typos on cache/. 2014-05-30 10:36:16 +08:00
cmake_modules Add missing options to linker for sanitized builds 2026-06-27 22:21:33 +03:00
conf Messagetable update 2026-07-05 17:04:59 +03:00
db Merge pull request #3348 from guilherme-gm/fix-cooldown 2026-07-06 00:33:33 +03:00
doc Update constants documentation 2026-07-12 21:21:51 +00:00
log Fixed Typos (+1 squashed commits) 2015-10-21 20:58:40 +02:00
maps Fix mapcache files for iz_ac02 2024-08-31 11:36:35 -03:00
npc Update NPC scripts to comply with new command 2026-07-05 17:04:50 +03:00
save Fixed Typos (+1 squashed commits) 2015-10-21 20:58:40 +02:00
sql-files Indexed storage_id column from storage sql table 2026-07-05 17:04:52 +03:00
src Fix warning C4702 (unreachable code) in clif_open_ui 2026-07-21 02:03:48 +03:00
tools Fix wrong map-server path in the script-checker wrapper script and remove old broken applescript counterpart 2026-07-21 02:03:37 +03:00
.gitattributes Add proper line-ending treatment for batch scripts to gitattributes 2026-06-28 00:44:00 +02:00
.gitignore Update gitignore to include alternate build directories (anything starting with build and VSCode workspaces 2026-06-28 00:44:15 +02:00
.gitlab-ci.yml Switch to python3 in all debian/ubuntu jobs in .gitlab-ci.yml 2023-04-12 02:54:01 +03:00
.mailmap Update mailmap and AUTHORS list 2024-10-31 23:33:37 +00:00
api-server.bat Update windows bat files to reflect the new default directory structure 2026-06-27 22:21:32 +03:00
api-server.sh Update bash scripts and athena-start to reflect new directory structure 2026-06-27 22:21:32 +03:00
athena-start Update bash scripts and athena-start to reflect new directory structure 2026-06-27 22:21:32 +03:00
AUTHORS Release v2024.11 2024-12-01 01:53:42 +00:00
CHANGELOG.md Release v2026.06 2026-06-28 21:41:01 +03:00
char-server.bat Update windows bat files to reflect the new default directory structure 2026-06-27 22:21:32 +03:00
char-server.sh Update bash scripts and athena-start to reflect new directory structure 2026-06-27 22:21:32 +03:00
CMakeLists.txt Raise warning level on MSVC to 4 (highest) and disable few warnings that reports intended behavior/features 2026-07-21 02:03:49 +03:00
conanfile.py Remove libgif from 3rdparty and move to conan package 2026-06-27 22:21:30 +03:00
CONTRIBUTING.md Proofread & edited CONTRIBUTING document 2018-10-21 17:12:45 -05:00
db2sql.bat Update copyrights for year 2025 2025-02-01 00:44:18 +00:00
LICENSE Updated License from GNU GPLv2 to GNU GPLv3. 2010-09-09 02:35:14 +00:00
login-server.bat Update windows bat files to reflect the new default directory structure 2026-06-27 22:21:32 +03:00
login-server.sh Update bash scripts and athena-start to reflect new directory structure 2026-06-27 22:21:32 +03:00
map-server.bat Update windows bat files to reflect the new default directory structure 2026-06-27 22:21:32 +03:00
map-server.sh Update bash scripts and athena-start to reflect new directory structure 2026-06-27 22:21:32 +03:00
mariadb.bat add an auto-setup script for mariadb on windows 2018-11-07 13:58:33 -05:00
README.md Update readme.md to reflect the current changes to build system and to direct to wiki pages explaining building and installing 2026-06-27 22:21:35 +03:00
run-server.bat Add partial support for adventurer agency (incomplete) 2023-04-12 02:53:57 +03:00
script-checker Fix wrong map-server path in the script-checker wrapper script and remove old broken applescript counterpart 2026-07-21 02:03:37 +03:00
script-checker.bat Update windows bat files to reflect the new default directory structure 2026-06-27 22:21:32 +03:00
serv.bat Removed executable flag from some files that don't require it 2014-03-10 03:09:13 +01:00
setup_env.ps1 Add helper script to set up the build environment on Windows 2026-06-28 00:42:45 +02:00
setup_env.sh Add helper script to set up the build environment on UNIX 2026-06-28 00:43:29 +02:00
sysinfogen.sh Update sysinfo generation to use custom which gives a more stable auto-generating behavior and moved the compare check to inside synsinfogen.sh as it's much harder to do in cmake 2026-06-27 22:20:53 +03:00

Hercules

Build Status: Github Action Status AppVeyor Build Status Coverity Scan Build Status Pipeline Status Coverage Report

Issues and pull requests: Open Issues Open Pull Requests

Development and Community: GitHub Repository Community Forum IRC Discord Twitter

Project Info: Release Language License GitHub contributors

Table of Contents

  1. What is Hercules?
  2. Prerequisites
  3. Installation
  4. Troubleshooting
  5. Helpful Links
  6. More Documentation

What is Hercules?


Hercules is a collaborative software development project revolving around the creation of a robust Massively Multiplayer Online Role-Playing Game (MMORPG) server package. Written in C, the program is very versatile and provides NPCs, warps and modifications. The project is jointly managed by a group of volunteers located around the world as well as a tremendous community providing QA and support. Hercules is a continuation of the original Athena project.

Prerequisites


Before installing Hercules, you will need to install certain tools and applications. This differs between the varying Operating Systems available, so the following list is broken down into Windows and Unix (incl. Linux) prerequisites.

For a list of supported platforms, please refer to the Supported Platforms wiki page.

  • git
  • gcc or clang or msvc (on windows)
  • cmake
  • python3
  • A build system like GNU make or Ninja (Ninja is preferred build system on windows, recommended for *Unix as well)
  • MariaDB
  • Optional dependencies for development only
    • perl (required to rebuild the HPM Hooks and HPMDataCheck)
      • requires the XML::Simple module, which in turn requires libexpat-dev
    • Doxygen (required to rebuild the HPM Hooks and HPMDataCheck)

For a full list of prerequisites, please refer to the Building wiki page.

Optional, useful tools

Building and Installation


For guides on building and installing hercules please check our wiki at Building and Installation wiki pages.

Troubleshooting


If you're having problems with starting your server, the first thing you should do is check what's happening on your consoles. More often than not, all support issues can be solved simply by looking at the error messages given.

Examples:

  • You get an error on your map-server_sql that looks something like this:
[Error]: npc_parsesrcfile: Unable to parse, probably a missing or extra TAB in file 'npc/custom/jobmaster.txt', line '17'. Skipping line...
        * w1=prontera,153,193,6 script
        * w2=Job Master
        * w3=2_F_MAGICMASTER,{
        * w4=

If you look at the error, it's telling you that you're missing (or have an extra) TAB. This is easily fixed by looking at this part of the error: * w1=prontera,153,193,6 script. If there was a TAB where it's supposed to be, that line would have prontera,153,193,6 at w1 and script at w2. As there's a space instead of a TAB, the two sections are read as a single parameter.

  • You have a default user/password warning similar to the following:
[Warning]: Using the default user/password s1/p1 is NOT RECOMMENDED.
[Notice]: Please edit your 'login' table to create a proper inter-server user/password (gender 'S')
[Notice]: and then edit your user/password in conf/map-server.conf (or conf/import/map_conf.txt)

Relax. This is just indicating that you're using the default username and password. To fix this, check over the part in the installation instructions relevant to the login table.

  • Your Map Server says the following:
[Error]: make_connection: connect failed (socket #2, error 10061: No connection could be made because the target machine actively refused it.)!

If this shows up on the map server, it generally means that there is no Char Server available to accept the connection.


The following list of links point to various help files within the repository, articles or pages on the Wiki or topics within the Hercules forum.

More Documentation


Hercules has a large collection of help files and sample NPC scripts located in /doc/

Scripting

It is recommended to look through /doc/script_commands.txt for help, pointers or even for ideas for your next NPC script. Most script commands have a usage example.

@commands

In-game, Game Masters have the ability to use Atcommands (@) to control players, create items, spawn mobs, reload configuration files and even control the weather. For an in-depth explanation, please see /doc/atcommands.txt

Permissions

The Hercules emulator has a permission system that enables certain groups of players to perform certain actions, or have access to certain visual enhancements or in-game activity. To see what permissions are available, they are detailed in /doc/permissions.md

Others

There are more files in the /doc/ directory that will help you to create scripts or update the mapcache, or even explain how the job system and item bonuses work. Before posting a topic asking for help on the forums, we recommend that all users take the time to look over this directory.