View difference between Paste ID: Mmt4WgEv and WjxnbuDM
SHOW: | | - or go back to the newest paste.
1
// The server port - the port to run Pokemon Showdown under
2
exports.port = 8000;
3
4
// proxyip - proxy IPs with trusted X-Forwarded-For headers
5
//   This can be either false (meaning not to trust any proxies) or an array
6
//   of strings. Each string should be either an IP address or a subnet given
7
//   in CIDR notation. You should usually leave this as `false` unless you
8
//   know what you are doing.
9
exports.proxyip = ['127.0.0.0/8']; 
10
11
// Pokemon of the Day - put a pokemon's name here to make it Pokemon of the Day
12
//   The PotD will always be in the #2 slot (not #1 so it won't be a lead)
13
//   in every Random Battle team.
14
exports.potd = '';
15
16
// crash guard - write errors to log file instead of crashing
17
//   This is normally not recommended - if Node wants to crash, the
18
//   server needs to be restarted
19
//   Unfortunately, socket.io bug 409 requires some sort of crash guard
20
//   https://github.com/LearnBoost/socket.io/issues/609
21
exports.crashguard = true;
22
23
// login server data - don't forget the http:// and the trailing slash
24
//   This is the URL of the user database and ladder mentioned earlier.
25
//   Don't change this setting - there aren't any other login servers right now
26
exports.loginserver = 'http://play.pokemonshowdown.com/';
27
exports.loginserverkeyalgo = "RSA-SHA1";
28
exports.loginserverpublickeyid = 2;
29
exports.loginserverpublickey = "-----BEGIN RSA PUBLIC KEY-----\n" +
30
	"MIICCgKCAgEAtFldA2rTCsPgqsp1odoH9vwhf5+QGIlOJO7STyY73W2+io33cV7t\n" +
31
	"ReNuzs75YBkZ3pWoDn2be0eb2UqO8dM3xN419FdHNORQ897K9ogoeSbLNQwyA7XB\n" +
32
	"N/wpAg9NpNu00wce2zi3/+4M/2H+9vlv2/POOj1epi6cD5hjVnAuKsuoGaDcByg2\n" +
33
	"EOullPh/00TkEkcyYtaBknZpED0lt/4ekw16mjHKcbo9uFiw+tu5vv7DXOkfciW+\n" +
34
	"9ApyYbNksC/TbDIvJ2RjzR9G33CPE+8J+XbS7U1jPvdFragCenz+B3AiGcPZwT66\n" +
35
	"dvHAOYRus/w5ELswOVX/HvHUb/GRrh4blXWUDn4KpjqtlwqY4H2oa+h9tEENCk8T\n" +
36
	"BWmv3gzGBM5QcehNsyEi9+1RUAmknqJW0QOC+kifbjbo/qtlzzlSvtbr4MwghCFe\n" +
37
	"1EfezeNAtqwvICznq8ebsGETyPSqI7fSbpmVULkKbebSDw6kqDnQso3iLjSX9K9C\n" +
38
	"0rwxwalCs/YzgX9Eq4jdx6yAHd7FNGEx4iu8qM78c7GKCisygZxF8kd0B7V7a5UO\n" +
39
	"wdlWIlTxJ2dfCnnJBFEt/wDsL54q8KmGbzOTvRq5uz/tMvs6ycgLVgA9r1xmVU+1\n" +
40
	"6lMr2wdSzyG7l3X3q1XyQ/CT5IP4unFs5HKpG31skxlfXv5a7KW5AfsCAwEAAQ==\n" +
41
	"-----END RSA PUBLIC KEY-----\n";
42
43
// crashguardemail - if the server has been running for more than an hour
44
//   and crashes, send an email using these settings, rather than locking down
45
//   the server. Uncomment this definition if you want to use this feature;
46
//   otherwise, all crashes will lock down the server.
47
/**exports.crashguardemail = {
48
	options: {
49
		host: 'mail.example.com',
50
		port: 465,
51
		secure: true,
52
		auth: {
53
			user: 'example@domain.com',
54
			pass: 'password'
55
		}
56
	},
57
	from: 'crashlogger@example.com',
58
	to: 'admin@example.com',
59
	subject: 'Pokemon Showdown has crashed!'
60
};**/
61
62
// report joins and leaves - shows messages like "<USERNAME> joined"
63
//   Join and leave messages are small and consolidated, so there will never
64
//   be more than one line of messages.
65
//   If this setting is set to `true`, it will override the client-side
66
//   /hidejoins configuration for users.
67
//   This feature can lag larger servers - turn this off if your server is
68
//   getting more than 80 or so users.
69
exports.reportjoins = true;
70
71
// report joins and leaves periodically - sends silent join and leave messages in batches
72
//   This setting will only be effective if `reportjoins` is set to false, and users will
73
//   only be able to see the messages if they have the /showjoins client-side setting enabled.
74
//   Set this to a positive amount of milliseconds if you want to enable this feature.
75
exports.reportjoinsperiod = 0;
76
77
// report battles - shows messages like "OU battle started" in the lobby
78
//   This feature can lag larger servers - turn this off if your server is
79
//   getting more than 160 or so users.
80
exports.reportbattles = true;
81
82
// report joins and leaves in battle - shows messages like "<USERNAME> joined" in battle
83
//   Set this to false on large tournament servers where battles get a lot of joins and leaves.
84
//   Note that the feature of turning this off is deprecated.
85
exports.reportbattlejoins = true;
86
87
// whitelist - prevent users below a certain group from doing things
88
//   For the modchat settings, false will allow any user to participate, while a string
89
//   with a group symbol will restrict it to that group and above. The string
90
//   'autoconfirmed' is also supported for chatmodchat and battlemodchat, to restrict
91
//   chat to autoconfirmed users.
92
//   This is usually intended to be used as a whitelist feature - set these to '+' and
93
//   voice every user you want whitelisted on the server.
94
95
// chat modchat - default minimum group for speaking in chatrooms; changeable with /modchat
96
exports.chatmodchat = false;
97
// battle modchat - default minimum group for speaking in battles; changeable with /modchat
98
exports.battlemodchat = false;
99
// pm modchat - minimum group for PMing other users, challenging other users, and laddering
100
exports.pmmodchat = false;
101
102
// forced timer - force the timer on for all battles
103
//   Players will be unable to turn it off.
104
//   This setting can also be turned on with the command /forcetimer.
105
exports.forcetimer = false;
106
107
// backdoor - allows Pokemon Showdown system operators to provide technical
108
//            support for your server
109
//   This backdoor gives system operators (such as Zarel) console admin
110
//   access to your server, which allow them to provide tech support. This
111
//   can be useful in a variety of situations: if an attacker attacks your
112
//   server and you are not online, if you need help setting up your server,
113
//   etc. If you do not trust Pokemon Showdown with admin access, you should
114
//   disable this feature.
115
exports.backdoor = true;
116
117
// List of IPs and user IDs with dev console (>> and >>>) access.
118
// The console is incredibly powerful because it allows the execution of
119
// arbitrary commands on the local computer (as the user running the
120
// server). If an account with the console permission were compromised,
121
// it could possibly be used to take over the server computer. As such,
122
// you should only specify a small range of trusted IPs and users here,
123
// or none at all. By default, only localhost can use the dev console.
124
// In addition to connecting from a valid IP, a user must *also* have
125
// the `console` permission in order to use the dev console.
126
// Setting this to an empty array ([]) will disable the dev console.
127-
exports.consoleips = ['127.0.0.1'];
127+
exports.consoleips = ['127.0.0.1', 'chiefwally', 'lionyx', 'panur'];
128
129
// Whether to watch the config file for changes. If this is enabled,
130
// then the config.js file will be reloaded when it is changed.
131
// This can be used to change some settings using a text editor on
132
// the server.
133
exports.watchconfig = true;
134
135
// logchat - whether to log chat rooms.
136
exports.logchat = false;
137
138
// logchallenges - whether to log challenge battles. Useful for tournament servers.
139
exports.logchallenges = false;
140
141
// loguserstats - how often (in milliseconds) to write user stats to the
142
// lobby log. This has no effect if `logchat` is disabled.
143
exports.loguserstats = 1000 * 60 * 10; // 10 minutes
144
145
// validatorprocesses - the number of processes to use for validating teams
146
// simulatorprocesses - the number of processes to use for handling battles
147
// You should leave both of these at 1 unless your server has a very large
148
// amount of traffic (i.e. hundreds of concurrent battles).
149
exports.validatorprocesses = 1;
150
exports.simulatorprocesses = 1;
151
152
// inactiveuserthreshold - how long a user must be inactive before being pruned
153
// from the `users` array. The default is 1 hour.
154
exports.inactiveuserthreshold = 1000 * 60 * 60;
155
156
// Custom avatars.
157
// This allows you to specify custom avatar images for users on your server.
158
// Place custom avatar files under the /config/avatars/ directory.
159
// Users must be specified as userids -- that is, you must make the name all
160
// lowercase and remove non-alphanumeric characters.
161
//
162
// Your server *must* be registered in order for your custom avatars to be
163
// displayed in the client.
164
exports.customavatars = {
165
	//'userid': 'customavatar.png'
166
};
167
168
// Tournament announcements
169
// When tournaments are created in rooms listed below, they will be announced in
170
// the server's main tournament room (either the specified tourroom or by default
171
// the room 'tournaments')
172
exports.tourroom = '';
173
exports.tourannouncements = [/* roomids */];
174
175
// appealurl - specify a URL containing information on how users can appeal
176
// disciplinary actions on your section. You can also leave this blank, in
177
// which case users won't be given any information on how to appeal.
178
exports.appealurl = '';
179
180
// replsocketprefix - the prefix for the repl sockets to be listening on
181
// replsocketmode - the file mode bits to use for the repl sockets
182
exports.replsocketprefix = './logs/repl/';
183
exports.replsocketmode = 0600;
184
185
// permissions and groups:
186
//   Each entry in `grouplist' is a seperate group. Some of the members are "special"
187
//     while the rest is just a normal permission.
188
//   The order of the groups determines their ranking.
189
//   The special members are as follows:
190
//     - symbol: Specifies the symbol of the group (as shown in front of the username)
191
//     - id: Specifies an id for the group.
192
//     - name: Specifies the human-readable name for the group.
193
//     - root: If this is true, the group can do anything.
194
//     - inherit: The group uses the group specified's permissions if it cannot
195
//                  find the permission in the current group. Never make the graph
196
//                  produced using this member have any cycles, or the server won't run.
197
//     - jurisdiction: The default jurisdiction for targeted permissions where one isn't
198
//                       explictly specified. "Targeted permissions" are permissions
199
//                       that might affect another user, such as `ban' or `promote'.
200
//                       's' is a special group where it means the user itself only
201
//                       and 'u' is another special group where it means all groups
202
//                       lower in rank than the current group.
203
//     - roomonly: forces the group to be a per-room moderation rank only.
204
//     - globalonly: forces the group to be a global rank only.
205
//   All the possible permissions are as follows:
206
//     - console: Developer console (>>).
207
//     - lockdown: /lockdown and /endlockdown commands.
208
//     - hotpatch: /hotpatch, /crashfixed and /savelearnsets commands.
209
//     - ignorelimits: Ignore limits such as chat message length.
210
//     - promote: Promoting and demoting. Will only work if the target user's current
211
//                  group and target group are both in jurisdiction.
212
//     - room<rank>: /roompromote to <rank> (eg. roomvoice)
213
//     - ban: Banning and unbanning.
214
//     - mute: Muting and unmuting.
215
//     - lock: locking (ipmute) and unlocking.
216
//     - receivemutedpms: Receive PMs from muted users.
217
//     - forcerename: /fr command.
218
//     - redirect: /redir command.
219
//     - ip: IP checking.
220
//     - alts: Alt checking.
221
//     - modlog: view the moderator logs.
222
//     - broadcast: Broadcast informational commands.
223
//     - declare: /declare command.
224
//     - announce: /announce command.
225
//     - modchat: Set modchat.
226
//     - potd: Set PotD.
227
//     - forcewin: /forcewin command.
228
//     - battlemessage: /a command.
229
//     - tournaments: creating tournaments (/tour new, settype etc.)
230
//     - tournamentsmoderation: /tour dq, autodq, end etc.
231
//     - tournamentsmanagement: enable/disable tournaments.
232
exports.grouplist = [
233
	{
234
		symbol: '~',
235
		id: "admin",
236
		name: "Administrator",
237
		root: true,
238
		globalonly: true
239
	},
240
	{
241
		symbol: '&',
242
		id: "leader",
243
		name: "Leader",
244
		inherit: '@',
245
		jurisdiction: '@u',
246
		promote: 'u',
247
		forcewin: true,
248
		declare: true,
249
		modchatall: true,
250
		rangeban: true,
251
		potd: true,
252
		disableladder: true,
253
		globalonly: true,
254
		tournamentsmanagement: true
255
	},
256
	{
257
		symbol: '#',
258
		id: "owner",
259
		name: "Room Owner",
260
		inherit: '@',
261
		jurisdiction: 'u',
262
		roommod: true,
263
		roomdriver: true,
264
		declare: true,
265
		modchatall: true,
266
		roomonly: true,
267
		tournamentsmanagement: true
268
	},
269
	{
270
		symbol: '\u2605',
271
		id: "player",
272
		name: "Player",
273
		inherit: '+',
274
		roomvoice: true,
275
		modchat: true,
276
		roomonly: true,
277
		privateroom: true,
278
		joinbattle: true
279
	},
280
	{
281
		symbol: '@',
282
		id: "mod",
283
		name: "Moderator",
284
		inherit: '%',
285
		jurisdiction: 'u',
286
		ban: true,
287
		modchat: true,
288
		roomvoice: true,
289
		forcerename: true,
290
		ip: true,
291
		alts: '@u',
292
		tournaments: true
293
	},
294
	{
295
		symbol: '%',
296
		id: "driver",
297
		name: "Driver",
298
		inherit: '+',
299
		jurisdiction: 'u',
300
		announce: true,
301
		warn: true,
302
		kick: true,
303
		mute: true,
304
		lock: true,
305
		forcerename: true,
306
		timer: true,
307
		modlog: true,
308
		alts: '%u',
309
		bypassblocks: 'u%@&~',
310
		receiveauthmessages: true,
311
		tournamentsmoderation: true,
312
		jeopardy: true,
313
		joinbattle: true
314
	},
315
	{
316
		symbol: '+',
317
		id: "voice",
318
		name: "Voice",
319
		inherit: ' ',
320
		broadcast: true
321
	},
322
	{
323
		symbol: ' ',
324
		ip: 's',
325
		alts: 's'
326
	}
327
];