-
Notifications
You must be signed in to change notification settings - Fork 263
/
Copy pathConfig.js.docker
256 lines (221 loc) · 11 KB
/
Config.js.docker
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
{
"Server": {
"WorldName": "ACEmulator",
"Network": {
// Host, default: "0.0.0.0"
// In most cases, you will not need to change this setting. Special networking conditions, or multiple network adapters would be examples of times where you might need to change this.
"Host": "0.0.0.0",
// Port, default: 9000
// This also opens the next port up, 9001, for server to client communications. When changed, it will open the port specified and +1 of that port.
// For firewalls, you would need to include opening both ports (9000 and 9001) for communications to work correctly.
"Port": 9000,
"MaximumAllowedSessions": 128,
"DefaultSessionTimeout": 60,
// MaximumAllowedSessionsPerIPAddress, default: -1
// -1 means unlimited connections per IP Address.
"MaximumAllowedSessionsPerIPAddress": -1,
// AllowUlimitedSessionsFromIPs, default []
// Will allow the given IP addresses to have unlimited sessions - recommend only use this for Admins/Devs
// Example: [ "127.0.0.1", "8.8.8.8" ]
"AllowUnlimitedSessionsFromIPAddresses": []
},
"Accounts": {
"OverrideCharacterPermissions": true,
"DefaultAccessLevel": 0,
"AllowAutoAccountCreation": true,
"PasswordHashWorkFactor": 8,
"ForceWorkFactorMigration": true
},
// The folder that contains AC DAT files (client_cell_1.dat, client_portal.dat, client_highres.dat, client_local_English.dat)
// Note that for servers running on Linux, the ~ home folder must be fully expanded, ie. /home/user/ace/, instead of ~/ace/
// Note that for servers running on Windows, a path like c:\ace\ MUST be entered as c:\\ace\\, replacing the single backslashes (\) with double backslashes (\\)
"DatFilesDirectory": "/ace/Dats",
// The folder that contains Harmony mods
// Note that for servers running on Linux, the ~ home folder must be fully expanded, ie. /home/user/ace/, instead of ~/ace/
// Note that for servers running on Windows, a path like c:\ace\ MUST be entered as c:\\ace\\, replacing the single backslashes (\) with double backslashes (\\)
"ModsDirectory": "/ace/Mods",
// ShutdownInterval, default: 60
// Default time it will take for a server to wait before shutting down after shutdown is called from console or in game admin.
"ShutdownInterval": "60",
// ServerPerformanceMonitorAutoStart, default: false
// Development recommendation: true
// Server recommendation: true
// Enable this to use the functionality of the command: /serverperformance
// Additional overhead is added but it is minimal.
// This can greatly help you (and ACE developers) understand what sections of ACE are underperforming.
"ServerPerformanceMonitorAutoStart": false,
"Threading": {
// This number is used to determine thread allocation for world systems (WorldObjects, Physics, etc...)
// (Total System vCPU * WorldThreadCountMultiplier) = World Thread Count
// (Total System vCPU - World Thread Count) = Database Thread Count
// On larger servers, you may want to raise this to 0.5
"WorldThreadCountMultiplier": 0.34,
// This number is used to determine thread allocation for database operations
// (Total System vCPU * DatabaseThreadCountMultiplier) = Database Thread Count
"DatabaseThreadCountMultiplier": 0.66,
// The following to booleans configure the levels of multi-threading enabled on the server
// The server will group landblocks that are close in distance into LandblockGroups (Dungeons are always 1 per group)
// This allows us to tick an entire LandblockGroup on a single thread
// The thread safety boundary surrounds the LandblockGroup and separates groups from each other
// Optionally, if the following booleans are enabled, we can tick LandblockGroups in parallel
// This will multi-thread physics engine
"MultiThreadedLandblockGroupPhysicsTicking": true,
// This will multi-thread world object ticking
// This is a much more involved process as world object ticking interacts with server global constructs like Allegiances, Fellowships, Housing, etc..
// There is much more cross-landblock group work happening here
"MultiThreadedLandblockGroupTicking": true
},
// ShardPlayerBiotaCacheTime, default: 31
// The amount of minutes to keep in memory a player object from shard database.
"ShardPlayerBiotaCacheTime": "31",
// ShardNonPlayerBiotaCacheTime, default: 11
// The amount of minutes to keep in memory a non player object from shard database.
"ShardNonPlayerBiotaCacheTime": "11",
// WorldDatabasePrecaching, default: false
// Development recommendation: false
// Server recommendation: true
// Enable this to cache the world database at startup.
// This will add about 1-2 minutes to server startup time and will consume about 1.7 GB of RAM
// With this disabled, caching happens on an as-requested basis and can cause the server to feel less responsive.
"WorldDatabasePrecaching": false,
// LandblockPreloading, defaut: true
// Development recommendation: true
// Server recommendation: true
// This makes sure that perma-load landblocks are loaded.
// Perma-load landblocks are landblocks that can contain server-wide mechanics and should always be active.
"LandblockPreloading": true,
// PreloadedLandblock
// These are the default pre-loaded and perma-loaded landblocks.
// In most cases you should not need to adjust them.
// This section requires LandblockPreloading to be true
"PreloadedLandblocks": [
{
"Id": "E74EFFFF",
"Description": "Hebian-To (Global Events)",
"Permaload": true,
"IncludeAdjacents": false,
"Enabled": true
},
{
"Id": "A9B4FFFF",
"Description": "Holtburg",
"Permaload": true,
"IncludeAdjacents": true,
"Enabled": false
},
{
"Id": "DA55FFFF",
"Description": "Shoushi",
"Permaload": true,
"IncludeAdjacents": true,
"Enabled": false
},
{
"Id": "7D64FFFF",
"Description": "Yaraq",
"Permaload": true,
"IncludeAdjacents": true,
"Enabled": false
},
{
"Id": "0007FFFF",
"Description": "Town Network",
"Permaload": true,
"IncludeAdjacents": false,
"Enabled": false
},
{
"Id": "00000000",
"Description": "Apartment Landblocks",
"Permaload": true,
"IncludeAdjacents": false,
"Enabled": false
}
]
},
"MySql": {
"Authentication": {
"Host": "ace-db",
"Port": 3306,
"Database": "ace_auth",
"Username": "acedockeruser",
"Password": "2020acEmulator2017"
},
"Shard": {
"Host": "ace-db",
"Port": 3306,
"Database": "ace_shard",
"Username": "acedockeruser",
"Password": "2020acEmulator2017"
},
"World": {
"Host": "ace-db",
"Port": 3306,
"Database": "ace_world",
"Username": "acedockeruser",
"Password": "2020acEmulator2017"
}
},
// This section can trigger events that may happen before the world starts up, or after it shuts down
// The shard should be in a disconnected state from any running ACE world
"Offline": {
// Purge characters that have been deleted longer than PruneDeletedCharactersDays
// These characters, and their associated biotas, will be deleted permanantly!
"PurgeDeletedCharacters": false,
// Number of days a character must have been deleted for before eligible for purging
"PurgeDeletedCharactersDays": 30,
// This will purge biotas that are completely disconnected from the world
// These may have been items that were never deleted properly, items that were given to the town crier before delete was implemented, etc...
// This can be time consuming so it's not something you would have set to true for every server startup. You might run this once every few months
"PurgeOrphanedBiotas": false,
// This will prune deleted characters from all friend lists in the database
"PruneDeletedCharactersFromFriendLists": true,
// This will prune shortcuts to objects that no longer exist in the database
"PruneDeletedObjectsFromShortcutBars": false,
// This will prune deleted characters from all squlech lists in the database, excluding those used to squlech accounts
"PruneDeletedCharactersFromSquelchLists": false,
// Automatically apply new updates to databases upon startup if they haven't yet been applied
"AutoApplyDatabaseUpdates": true,
// Automatically check for and update to latest available world database
"AutoUpdateWorldDatabase": true,
// After updating to latest world database, automatically import further customizations
// AutoUpdateWorldDatabase must be true for this option to be used
// SQL files will be executed given the sort order of the full paths of the files
"AutoApplyWorldCustomizations": true,
// When AutoApplyWorldCustomizations is set to true, the auto apply process will search for
// all .sql files in the following directories.
// This process will still use ./Content by default, or the the config_properties_string
// value for 'content_folder' if it exists
// Example: [ "C:\\MyContent", "C:\\FTPRoot\\Editor1Content", "C:\\FTPRoot\\Editor2Content" ]
"WorldCustomizationAddedPaths": [],
// When retrieving a file list of .sql files in the AutoApplyWorldCustomizations process
// this will cause the file search to retrieve all files recursively from each directory
"RecurseWorldCustomizationPaths": true
},
// This section configures handling of client DAT patching from server's DAT files
"DDD": {
// Allow server to patch client DAT files using server's DAT files via DDDManager
"EnableDATPatching": false,
// Upon server startup, precache all DAT files that would be sent as compressed data
"PrecacheCompressedDATFiles": false
},
// This section configures Prometheus metrics server
"Metrics": {
// Allow server to publish Prometheus metrics
"EnableMetricsServer": false,
// Host, default: 127.0.0.1
// Probably best to leave this as is, and use reverse proxy which can be secured better.
"Host": "127.0.0.1",
// Port, default: 9200
// Probably best to leave this as is, and use reverse proxy which can be secured better.
"Port": 9200,
// Url, default: metrics/
// Probably best to leave this as is, and use reverse proxy which can be secured better.
// If above is default, the full url becomes http://127.0.0.1:9200/metrics/ to access
"Url": "metrics/",
// UseHTTPs, default: false
// Probably best to leave this as is, and use reverse proxy which can be secured better.
// If above is default, the full url becomes https://127.0.0.1:9200/metrics to access
"UseHTTPs": false
}
}