summaryrefslogtreecommitdiff
path: root/doc/global_configuration.md
blob: 92d6ed150e826aafc4625edd75a50b62a68bb7a0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//===== Hercules Documentation ===============================
# Global configuration reference
> //=====By: ==================================================
//= Panikon (Hercules Dev. Team)
//===== Current Version: =====================================
//= 20140616
//===== Description: =========================================
//= Global configurations found in conf/global/
//============================================================


## What are global configurations?

Global configurations are configurations that can be shared between servers,
but can also be set independently in each server.

## How do they work?

They work by using an include system that is available with libconfig:

  "A configuration file may "include" the contents of another file using an
  include directive. This directive has the effect of inlining the contents of
  the named file at the point of inclusion.

  An include directive must appear on its own line in the input. It has the
  form:

  @include "filename"

  Any backslashes or double quotes in the filename must be escaped as `\\` and
  `\"`, respectively.
                                     
 *From libconfig's documentation.*

So each file that is included is actually inside each one of the main
configuration files and thus a change in the first will be a change in the
latter.
Note: the @include directive is read by the server executable, so any path
should be from were it is and NOT from where the main configuration file is!


## How do I stop using global configurations?

To stop using global configurations is very simple, all you have to do is copy
the contents that are inside the global configuration file and put them
_exactly_ where the include directive were in the main configuration file.

E.g.
  Find in any file:
      `@include "conf/global/sql_connection.conf"`
  Replace it with:
   

     sql_connection: {
        // [INTER] You can specify the codepage to use in your mySQL tables here.
        // (Note that this feature requires MySQL 4.1+)
        //default_codepage: ""

        // [LOGIN] Is `userid` in account_db case sensitive?
        //case_sensitive: false

        // For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1
        // Under windows, you want to use 127.0.0.1.  If you see a message like
        // "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
        // and you have localhost, switch it to 127.0.0.1
        db_hostname: "127.0.0.1"
        db_port: 3306
        db_username: "ragnarok"
        db_password: "ragnarok"
        db_database: "ragnarok"
        //codepage:""
    }

  If the main configuration file belongs to the map server, for instance, you
don't need to include default_codepage and case_sensitive.