-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathconfig.ini.dist
302 lines (277 loc) · 10.5 KB
/
config.ini.dist
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
; Base configuration file
; To create a custom config, copy this file to "config.ini" file
[realm]
; Section for configure the authentication server
; Server Configuration
; --------------------
; > The listened port for authentication server. Default 444
server.port = ${AUTH_PORT:-4444}
; Dofus client Configuration
; --------------------------
; > The required Dofus client version for logged in. Default "1.29.1"
client.version = ${CLIENT_VERSION:-1.29.1}
; Password
; --------
; > List of enabled hash algorithms. The algorithms are separated by a coma.
; > Available algorithms : argon2, plain
; > The first value will be the default hash algorithm
; > Default value: "argon2, plain"
password.defaultHash = "${PASSWORD_HASH:-argon2, plain}"
; > The number of iterations. Default: 4
;password.argon2.iterations = 4
; > The memory, in kilobits. Default: 65536 (64Mo)
;password.argon2.memory = 65536
; > The parallelism parameter. Default: 8
;password.argon2.parallelism = 4
; > The argon2 algorithm type. Default: "argon2id"
; > Available types : "argon2i", "argon2d", "argon2id"
;password.argon2.type = argon2id
; Ban IP system
; -------------
; > Get the refresh interval for the ban ip table
; > Default: 30 seconds (30s)
;banip.refresh = 30s
; Antispam & other
; ----------------
; > The maximum inactivity time, as duration
; > By default, 15min ("PT15M" or "15m")
;inactivityTime = 15m
; > Maximum number of received packets per seconds per clients
; > When the limit is reached, the client session is closed
; > Default: 100
;packetRateLimit = 100
[database]
; Section for configure database connections
; Configuration format
; --------------------
; > The connection host (useful for MySQL) Default: 127.0.0.1
;connection_name.host = 127.0.0.1
; > The username. Default: root
;connection_name.user = root
; > The user password. Default: ""
;connection_name.password =
; > Get the database name (by default, same as connection name)
;connection_name.dbname = araknemu_database
; > the database type name
; > Can be "mysql" or "sqlite"
; > Default: mysql
;connection_name.type = mysql
; > Is a memory connection (sqlite)
;connection_name.memory = false
; > Shared cache (sqlite)
; > Useful for SQLite in-memory, for sharing data between connections
;connection_name.shared = true
; > The maximum pool size. Default: 16
;connection_name.poolSize = 8
; > Get the refresh pool interval in seconds
; > If the value is lower than 1, the refresh will be disabled
; > Default to 3600 (1 hour)
;connection_name.refreshPoolInterval = 3600
; > The database file path (sqlite)
; > By default same as dbname with .db extension
;connection_name.path = /var/db/araknemu/araknemu_database.db
; > Auto-reconnect to the connection when query fail
; > Default to true
;connection_name.autoReconnect = true
; Configure database for authentication server
realm.type = ${DB_TYPE:-mysql}
realm.host = ${DB_HOST:-127.0.0.1}
realm.user = ${DB_USER:-araknemu}
realm.password = $DB_PASSWORD
realm.dbname = ${DB_NAME:-araknemu}
realm.path = ${DB_NAME:-araknemu.db}
realm.poolSize = ${DB_POOL_SIZE:-8}
; Configure database for game server
game.type = ${DB_TYPE:-mysql}
game.host = ${DB_HOST:-127.0.0.1}
game.user = ${DB_USER:-araknemu}
game.password = $DB_PASSWORD
game.dbname = ${DB_NAME:-araknemu}
game.poolSize = ${DB_POOL_SIZE:-8}
[game]
; Section for configure the game server
; Server Configuration
; --------------------
; > The listened port for game server. Default 5555
server.port = ${GAME_PORT:-5555}
; > Get the server IP address. Default 127.0.0.1
server.ip = ${GAME_HOST:-127.0.0.1}
; > The timezone for game server. Default Europe/Paris
server.timezone = ${TIMEZONE:-Europe/Paris}
; Antispam & other
; ----------------
; > The server ID. By default 1
id = ${GAME_SERVER_ID:-1}
; > The maximum inactivity time, as duration
; > By default, 15min ("PT15M" or "15m")
;inactivityTime = 15m
; > Maximum number of received packets per seconds per clients
; > When the limit is reached, the client session is closed
; > Default: 100
;packetRateLimit = 100
; > Get the shutdown reminder delays, in minutes
; > The values are integer separated by a comma ","
; > Default value : "1,10,30,60,120"
;shutdownReminderMinutes = 1,10,30,60,120
; Ban IP system
; -------------
; > Get the refresh interval for the ban ip table
; > Default: 30 seconds (30s)
;banip.refresh = 30s
; Player account & character
; --------------------------
; > The player name regex
;player.name.regex = [A-Z][a-z]+(-[A-Z]?[a-z]+)?
; > Minimal length of player name
;player.name.minLength = 2
; > Maximal length of player name
;player.name.maxLength = 20
; > Maximal length for generated name
;player.name.generated.maxLength = 8
; > Minimal length for generated name
;player.name.generated.minLength = 4
; > Maximum number for characters per account per server
;player.max = 5
; > Minimum level which needs secret answer for delete the character
; > By default, value is set to 20
; > To change this value, you should also change in lang.swf, the value `C.SECRET_ANSWER_SINCE_LEVEL`
;player.deleteAnswerLevel = 20
; > Get the level up spell points
; > By default, value is set to 1
;player.level.spellPoints = 1
; > Get the level up characteristic points
; > By default, value is set to 5
;player.level.characteristicPoints = 5
; > The life regeneration rate.
; > This is the number of milliseconds required to regenerate 1 life point. Set to 0 to disable.
; > By default 1000 (1 LP / sec)
;player.lifeRegeneration.base = 1000
; > Restore life points when player reach a new level
; > By default true
;player.restoreLifeOnLevelUp = true
; Chat
; ----
; > Get the waiting time in seconds for global channel flood
; > Set to -1 for deactivate
;chat.flood.time = 30
; > Get list of default channels to add on character creation
;chat.channels.default = *#%!pi$:?
; > Channels to add on admin characters
;chat.channels.admin = @
; > Interval of time for checking spam of messages or smileys
; > During this interval, the player can send a limited number of messages or smileys
; > Once it reached, the player should wait the end of the interval for send a new message
;chat.spam.interval = 30s
; > Maximum number of messages or smileys per spam check interval
; > This value must be a positive integer (> 1)
;chat.spam.max = 5
; Activity
; --------
; > Number of threads to use for the activity service
activity.threadsCount = ${ACTIVITY_THREADS:-1}
; > Number of seconds for move monster groups
; > By default 120s = 2min
;activity.monsters.moveInterval = 120
; > Percent of chance that a monster group on a map move
; > The value must be an integer value between ]0, 100]
; > By default 25%
;activity.monsters.movePercent = 25
; > The maximum move distance for monsters
; > By default 5
;activity.monsters.moveDistance = 5
; > The delay divisor for respawn a monster group
; > With a factor of 2, the respawn will be 2 times faster
; > By default 1
activity.monsters.respawnSpeedFactor = ${RESPAWN_SPEED_FACTOR:-1}
; Economy
; -------
; > Get the selling item to an NPC price multiplier
; > By default 0.1
; > Should corresponds to "C.SELL_PRICE_MULTIPLICATOR" in lang_xx_xxx.swf
;economy.npc.sellPriceMultiplier = 0.1
; > The bank cost per item entries
; > The value must be a positive double
; > Default to 1
; > Set to 0 to disable the bank cost
;economy.bank.costPerEntry = 1
; Fight
; -----
; > The threads count for run fight actions and AI
; > This value should be greater than 2. A good value may be around 1 thread per 100 fights
; > By default, 4
fight.threadsCount = ${FIGHT_THREADS:-4}
; > The fight turn duration
; > The value should be a duration string like 30s, 1m10s
; > Default value : 30s
;fight.turnDuration = 30s
; > The placement duration for a PVM fight
; > The value should be a duration string like 30s, 1m10s
; > Default value : 45s
;fight.pvm.placementDuration = 45s
; > Get the XP multiplier
; > The value should be a positive decimal number.
; > Default value : 1.0
fight.rate.xp = ${RATE_XP:-1.0}
; > Get the drop rate multiplier
; > The value should be a positive decimal number.
; > This value will modify the object drop chance, but not the maximum dropped items per monster
; > nor minimal discernment requirement.
; > Default value : 1.0
fight.rate.drop = ${RATE_DROP:-1.0}
; > Get the initial erosion rate for fighters
; > This value is a percentage, representing the percent of damage that will be transformed to permanent life loss
; > It must be between 0 and 100, where 0 means no erosion and 100 means all damage are permanent
; > Default value : 10
;fight.initialErosion = 10
; AI scripts
; ----------
; > Does scripts are enabled for AI ?
; > Default value : true
;fight.ai.scripts.enable = true
; > Get the path where AI scripts are stored
; > Default value : "scripts/ai"
fight.ai.scripts.path = "${AI_SCRIPT_PATH:-scripts/ai}"
; > Enable hot reloading of AI scripts
; > When enabled, modifications of scripts will be taken into account without restarting the server
; > when a new fight is started.
; > It's advised to use this feature only in development environment, as it may have a performance impact.
; > Note that it's not necessary to enable this feature to allow loading of new scripts,
; > because when a new AI is requested, all scripts are reloaded.
; > Default value : false
;fight.ai.scripts.hot-reload = false
; Auto save
; ---------
; > The interval between two automatic save of connected players
; > Note: Players are regularly saved apart of autosave, so it's not required to set a small value
; > Default: 4 hours (4h)
;autosave.interval = 4h
; > Enable automatic saving of connected players
; > Default: true
;autosave.enabled = true
; Preload
; -------
; > Does preload is enabled for the given service
; > By default this value is true
; > In case of submodule (i.e. preload.service.submodule), the preload will be checked on each part.
; > So if "preload.service" is false, "preload.service.submodule" will be considered as false
preload.map = ${PRELOAD:-true}
preload.monster = ${PRELOAD:-true}
preload.npc = ${PRELOAD:-true}
[admin]
; Section for configure admin commands
; Scripts
; -------
; > Are scripts enabled
; > If set to false, the scripts are not loaded
; > Default value: true
;account.scripts.enable = false
;player.scripts.enable = false
;debug.scripts.enable = false
;server.scripts.enable = false
; > Get the commands scripts path
; > Should be a directory path
; > Default: "scripts/commands/[context]"
account.scripts.path = "${ADMIN_COMMAND_SCRIPT_PATH:-scripts/commands}/account"
player.scripts.path = "${ADMIN_COMMAND_SCRIPT_PATH:-scripts/commands}/player"
debug.scripts.path = "${ADMIN_COMMAND_SCRIPT_PATH:-scripts/commands}/debug"
server.scripts.path = "${ADMIN_COMMAND_SCRIPT_PATH:-scripts/commands}/server"