Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.62 KB | None | 0 0
  1. 'use strict';
  2.  
  3. /**
  4. * The server port - the port to run Pokemon Showdown under
  5. */
  6. exports.port = 8000;
  7.  
  8. /**
  9. * The server Namr - Being used to rename custom-plugins.
  10. */
  11. exports.serverName = 'SurgeWavers';
  12. exports.serverid = 'surgewavers';
  13. exports.servertoken = 'ckiFnxiNwVYO';
  14. /**
  15. * The server IP - Being used to show avatars in profile.
  16. */
  17. exports.serverIp = 'surgewavers';
  18.  
  19. /**
  20. * The server address - the address at which Pokemon Showdown should be hosting
  21. * This should be kept set to 0.0.0.0 unless you know what you're doing.
  22. */
  23. exports.bindaddress = '0.0.0.0';
  24.  
  25. /**
  26. * workers - the number of networking child processes to spawn
  27. * This should be no greater than the number of threads available on your
  28. * server's CPU. If you're not sure how many you have, you can check from a
  29. * terminal by running:
  30. *
  31. * $ node -e "console.log(require('os').cpus().length)"
  32. *
  33. * Using more workers than there are available threads will cause performance
  34. * issues. Keeping a couple threads available for use for OS-related work and
  35. * other PS processes will likely give you the best performance, if your
  36. * server's CPU is capable of multithreading. If you don't know what any of
  37. * this means or you are unfamiliar with PS' networking code, leave this set
  38. * to 1.
  39. */
  40. exports.workers = 1;
  41.  
  42. /**
  43. * wsdeflate - compresses WebSocket messages
  44. * Toggles use of the Sec-WebSocket-Extension permessage-deflate extension.
  45. * This compresses messages sent and received over a WebSocket connection
  46. * using the zlib compression algorithm. As a caveat, message compression
  47. * may make messages take longer to procress.
  48. * @type {AnyObject?}
  49. */
  50. exports.wsdeflate = null;
  51.  
  52. /*
  53. // example:
  54. exports.wsdeflate = {
  55. level: 5,
  56. memLevel: 8,
  57. strategy: 0,
  58. noContextTakeover: true,
  59. requestNoContextTakeover: true,
  60. maxWindowBits: 15,
  61. requestMaxWindowBits: 15,
  62. }; */
  63.  
  64. /**
  65. * ssl - support WSS, allowing you to access through HTTPS
  66. * The client requires port 443, so if you use a different port here,
  67. * it will need to be forwarded to 443 through iptables rules or
  68. * something.
  69. * @type {{port: number, options: {key: string, cert: string}} | null}
  70. */
  71. exports.ssl = null;
  72.  
  73. /*
  74. // example:
  75. const fs = require('fs');
  76. exports.ssl = {
  77. port: 443,
  78. options: {
  79. key: './config/ssl/privkey.pem',
  80. cert: './config/ssl/fullchain.pem',
  81. },
  82. };
  83. */
  84.  
  85. /*
  86. Main's SSL deploy script from Let's Encrypt looks like:
  87. cp /etc/letsencrypt/live/sim.psim.us/privkey.pem ~user/Pokemon-Showdown/config/ssl/
  88. cp /etc/letsencrypt/live/sim.psim.us/fullchain.pem ~user/Pokemon-Showdown/config/ssl/
  89. chown user:user ~user/Pokemon-Showdown/config/ssl/privkey.pem
  90. chown user:user ~user/Pokemon-Showdown/config/ssl/fullchain.pem
  91. */
  92.  
  93. /**
  94. * proxyip - proxy IPs with trusted X-Forwarded-For headers
  95. * This can be either false (meaning not to trust any proxies) or an array
  96. * of strings. Each string should be either an IP address or a subnet given
  97. * in CIDR notation. You should usually leave this as `false` unless you
  98. * know what you are doing.
  99. */
  100. exports.proxyip = false;
  101.  
  102. /**
  103. * ofe - write heapdumps if sockets.js workers run out of memory.
  104. * If you wish to enable this, you will need to install node-oom-heapdump,
  105. * as it is sometimes not installed by default:
  106. * $ npm install node-oom-heapdump
  107. */
  108. exports.ofe = false;
  109.  
  110. /**
  111. * Pokemon of the Day - put a pokemon's name here to make it Pokemon of the Day
  112. * The PotD will always be in the #2 slot (not #1 so it won't be a lead)
  113. * in every Random Battle team.
  114. */
  115. exports.potd = '';
  116.  
  117. /**************************
  118. * Used To Enable/Disable *
  119. * Poof custom-plugin *
  120. ************************/
  121. exports.poof = true;
  122.  
  123. /****************************
  124. * Used to set expTimer ******
  125. * X amount of timer passed **
  126. * after last message before *
  127. * user can earn exp ********
  128. * default to 30 seconds *****
  129. *****************************/
  130. exports.expTimer = 30000;
  131.  
  132. // add system operators.
  133. exports.special = ['zeruora', 'baneofall'];
  134.  
  135. /**
  136. * crash guard - write errors to log file instead of crashing
  137. * This is normally not recommended - if Node wants to crash, the
  138. * server needs to be restarted
  139. * However, most people want the server to stay online even if there is a
  140. * crash, so this option is provided
  141. */
  142. exports.crashguard = true;
  143.  
  144. /**
  145. * login server data - don't forget the http:// and the trailing slash
  146. * This is the URL of the user database and ladder mentioned earlier.
  147. * Don't change this setting - there aren't any other login servers right now
  148. */
  149. exports.loginserver = 'http://play.pokemonshowdown.com/';
  150. exports.loginserverkeyalgo = "RSA-SHA1";
  151. exports.loginserverpublickeyid = 4;
  152. exports.loginserverpublickey = `-----BEGIN PUBLIC KEY-----
  153. MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzfWKQXg2k8c92aiTyN37
  154. dl76iW0aeAighgzeesdar4xZT1A9yzLpj2DgR8F8rh4R32/EVOPmX7DCf0bYWeh3
  155. QttP0HVKKKfsncJZ9DdNtKj1vWdUTklH8oeoIZKs54dwWgnEFKzb9gxqu+z+FJoQ
  156. vPnvfjCRUPA84O4kqKSuZT2qiWMFMWNQPXl87v+8Atb+br/WXvZRyiLqIFSG+ySn
  157. Nwx6V1C8CA1lYqcPcTfmQs+2b4SzUa8Qwkr9c1tZnXlWIWj8dVvdYtlo0sZZBfAm
  158. X71Rsp2vwEleSFKV69jj+IzAfNHRRw+SADe3z6xONtrJOrp+uC/qnLNuuCfuOAgL
  159. dnUVFLX2aGH0Wb7ZkriVvarRd+3otV33A8ilNPIoPb8XyFylImYEnoviIQuv+0VW
  160. RMmQlQ6RMZNr6sf9pYMDhh2UjU11++8aUxBaso8zeSXC9hhp7mAa7OTxts1t3X57
  161. 72LqtHHEzxoyLj/QDJAsIfDmUNAq0hpkiRaXb96wTh3IyfI/Lqh+XmyJuo+S5GSs
  162. RhlSYTL4lXnj/eOa23yaqxRihS2MT9EZ7jNd3WVWlWgExIS2kVyZhL48VA6rXDqr
  163. Ko0LaPAMhcfETxlFQFutoWBRcH415A/EMXJa4FqYa9oeXWABNtKkUW0zrQ194btg
  164. Y929lRybWEiKUr+4Yw2O1W0CAwEAAQ==
  165. -----END PUBLIC KEY-----
  166. `;
  167.  
  168. /**
  169. * crashguardemail - if the server has been running for more than an hour
  170. * and crashes, send an email using these settings, rather than locking down
  171. * the server. Uncomment this definition if you want to use this feature;
  172. * otherwise, all crashes will lock down the server. If you wish to enable
  173. * this setting, you will need to install nodemailer, as it is not installed
  174. * by default:
  175. * $ npm install nodemailer
  176. * @type {AnyObject?}
  177. */
  178. exports.crashguardemail = null;
  179. /* exports.crashguardemail = {
  180. options: {
  181. host: 'mail.example.com',
  182. port: 465,
  183. secure: true,
  184. auth: {
  185. user: 'example@domain.com',
  186. pass: 'password'
  187. }
  188. },
  189. from: 'crashlogger@example.com',
  190. to: 'admin@example.com',
  191. subject: 'Pokemon Showdown has crashed!'
  192. }; */
  193.  
  194. /**
  195. * basic name filter - removes characters used for impersonation
  196. * The basic name filter removes Unicode characters that can be used for impersonation,
  197. * like the upside-down exclamation mark (looks like an i), the Greek omicron (looks
  198. * like an o), etc. Disable only if you need one of the alphabets it disables, such as
  199. * Greek or Cyrillic.
  200. */
  201. exports.disablebasicnamefilter = false;
  202.  
  203. /**
  204. * report joins and leaves - shows messages like "<USERNAME> joined"
  205. * Join and leave messages are small and consolidated, so there will never
  206. * be more than one line of messages.
  207. * If this setting is set to `true`, it will override the client-side
  208. * /hidejoins configuration for users.
  209. * This feature can lag larger servers - turn this off if your server is
  210. * getting more than 80 or so users.
  211. */
  212. exports.reportjoins = true;
  213.  
  214. /**
  215. * report joins and leaves periodically - sends silent join and leave messages in batches
  216. * This setting will only be effective if `reportjoins` is set to false, and users will
  217. * only be able to see the messages if they have the /showjoins client-side setting enabled.
  218. * Set this to a positive amount of milliseconds if you want to enable this feature.
  219. */
  220. exports.reportjoinsperiod = 0;
  221.  
  222. /**
  223. * report battles - shows messages like "OU battle started" in the lobby
  224. * This feature can lag larger servers - turn this off if your server is
  225. * getting more than 160 or so users.
  226. */
  227. exports.reportbattles = true;
  228.  
  229. /**
  230. * report joins and leaves in battle - shows messages like "<USERNAME> joined" in battle
  231. * Set this to false on large tournament servers where battles get a lot of joins and leaves.
  232. * Note that the feature of turning this off is deprecated.
  233. */
  234. exports.reportbattlejoins = true;
  235.  
  236. /**
  237. * notify staff when users have a certain amount of room punishments.
  238. * Setting this to a number greater than zero will notify staff for everyone with
  239. * the required amount of room punishments.
  240. * Set this to 0 to turn the monitor off.
  241. */
  242. exports.monitorminpunishments = 3;
  243.  
  244. /**
  245. * allow punishmentmonitor to lock users with multiple roombans.
  246. * When set to `true`, this feature will automatically lock any users with three or more
  247. * active roombans, and notify the staff room.
  248. * Note that this requires punishmentmonitor to be enabled, and therefore requires the `monitorminpunishments`
  249. * option to be set to a number greater than zero. If `monitorminpunishments` is set to a value greater than 3,
  250. * the autolock will only apply to people who pass this threshold.
  251. */
  252. exports.punishmentautolock = false;
  253.  
  254. /**
  255. * restrict sending links to autoconfirmed users only.
  256. * If this is set to `true`, only autoconfirmed users can send links to either chatrooms or other users, except for staff members.
  257. * This option can be used if your server has trouble with spammers mass PMing links to users, or trolls sending malicious links.
  258. */
  259. exports.restrictLinks = false;
  260.  
  261. /**
  262. * whitelist - prevent users below a certain group from doing things
  263. * For the modchat settings, false will allow any user to participate, while a string
  264. * with a group symbol will restrict it to that group and above. The string
  265. * 'autoconfirmed' is also supported for chatmodchat and battlemodchat, to restrict
  266. * chat to autoconfirmed users.
  267. * This is usually intended to be used as a whitelist feature - set these to '+' and
  268. * voice every user you want whitelisted on the server.
  269. /**
  270. * chat modchat - default minimum group for speaking in chatrooms; changeable with /modchat
  271. */
  272. exports.chatmodchat = false;
  273. /**
  274. * battle modchat - default minimum group for speaking in battles; changeable with /modchat
  275. */
  276. exports.battlemodchat = false;
  277. /**
  278. * pm modchat - minimum group for PMing other users, challenging other users
  279. */
  280. exports.pmmodchat = false;
  281. /**
  282. * ladder modchat - minimum group for laddering
  283. */
  284. exports.laddermodchat = false;
  285.  
  286. /**
  287. * forced timer - force the timer on for all battles
  288. * Players will be unable to turn it off.
  289. * This setting can also be turned on with the command /forcetimer.
  290. */
  291. exports.forcetimer = false;
  292.  
  293. /**
  294. * backdoor - allows Pokemon Showdown system operators to provide technical
  295. * support for your server
  296. * This backdoor gives system operators (such as Zarel) console admin
  297. * access to your server, which allow them to provide tech support. This
  298. * can be useful in a variety of situations: if an attacker attacks your
  299. * server and you are not online, if you need help setting up your server,
  300. * etc. If you do not trust Pokemon Showdown with admin access, you should
  301. * disable this feature.
  302. */
  303. exports.backdoor = false;
  304.  
  305. /**
  306. * List of IPs and user IDs with dev console (>> and >>>) access.
  307. * The console is incredibly powerful because it allows the execution of
  308. * arbitrary commands on the local computer (as the user running the
  309. * server). If an account with the console permission were compromised,
  310. * it could possibly be used to take over the server computer. As such,
  311. * you should only specify a small range of trusted IPs and users here,
  312. * or none at all. By default, only localhost can use the dev console.
  313. * In addition to connecting from a valid IP, a user must *also* have
  314. * the `console` permission in order to use the dev console.
  315. * Setting this to an empty array ([]) will disable the dev console.
  316. */
  317. exports.consoleips = ['127.0.0.1'];
  318.  
  319. /**
  320. * Whether to watch the config file for changes. If this is enabled,
  321. * then the config.js file will be reloaded when it is changed.
  322. * This can be used to change some settings using a text editor on
  323. * the server.
  324. */
  325. exports.watchconfig = true;
  326.  
  327. /**
  328. * logchat - whether to log chat rooms.
  329. */
  330. exports.logchat = false;
  331.  
  332. /**
  333. * logchallenges - whether to log challenge battles. Useful for tournament servers.
  334. */
  335. exports.logchallenges = false;
  336.  
  337. /**
  338. * loguserstats - how often (in milliseconds) to write user stats to the
  339. * lobby log. This has no effect if `logchat` is disabled.
  340. */
  341. exports.loguserstats = 1000 * 60 * 10; // 10 minutes
  342.  
  343. /**
  344. * validatorprocesses - the number of processes to use for validating teams
  345. * simulatorprocesses - the number of processes to use for handling battles
  346. * You should leave both of these at 1 unless your server has a very large
  347. * amount of traffic (i.e. hundreds of concurrent battles).
  348. */
  349. exports.validatorprocesses = 1;
  350. exports.simulatorprocesses = 1;
  351.  
  352. /**
  353. * inactiveuserthreshold - how long a user must be inactive before being pruned
  354. * from the `users` array. The default is 1 hour.
  355. */
  356. exports.inactiveuserthreshold = 1000 * 60 * 60;
  357.  
  358. /**
  359. * autolockdown - whether or not to automatically kill the server when it is
  360. * in lockdown mode and the final battle finishes. This is potentially useful
  361. * to prevent forgetting to restart after a lockdown where battles are finished.
  362. */
  363. exports.autolockdown = true;
  364.  
  365. /**
  366. * Custom avatars.
  367. * This allows you to specify custom avatar images for users on your server.
  368. * Place custom avatar files under the /config/avatars/ directory.
  369. * Users must be specified as userids -- that is, you must make the name all
  370. * lowercase and remove non-alphanumeric characters.
  371. *
  372. * Your server *must* be registered in order for your custom avatars to be
  373. * displayed in the client.
  374. * @type {{[userid: string]: string}}
  375. */
  376. exports.customavatars = {
  377. // 'userid': 'customavatar.png'
  378. };
  379.  
  380. /**
  381. * tourroom - specify a room to receive tournament announcements (defaults to
  382. * the room 'tournaments').
  383. * tourannouncements - announcements are only allowed in these rooms
  384. * tourdefaultplayercap - a set cap of how many players can be in a tournament
  385. * ratedtours - toggles tournaments being ladder rated (true) or not (false)
  386. */
  387. exports.tourroom = 'lobby';
  388. /** @type {string[]} */
  389. exports.tourannouncements = [/* roomids */];
  390. exports.tourdefaultplayercap = 16;
  391. exports.ratedtours = false;
  392.  
  393. /**
  394. * appealurl - specify a URL containing information on how users can appeal
  395. * disciplinary actions on your section. You can also leave this blank, in
  396. * which case users won't be given any information on how to appeal.
  397. */
  398. exports.appealurl = '';
  399.  
  400. /**
  401. * repl - whether repl sockets are enabled or not
  402. * replsocketprefix - the prefix for the repl sockets to be listening on
  403. * replsocketmode - the file mode bits to use for the repl sockets
  404. */
  405. exports.repl = true;
  406. exports.replsocketprefix = './logs/repl/';
  407. exports.replsocketmode = 0o600;
  408.  
  409. /**
  410. * disablehotpatchall - disables `/hotpatch all`. Generally speaking, there's a
  411. * pretty big need for /hotpatch all - convenience. The only advantage any hotpatch
  412. * forms other than all is lower RAM use (which is only a problem for Main because
  413. * Main is huge), and to do pinpoint hotpatching (like /nohotpatch).
  414. */
  415. exports.disablehotpatchall = false;
  416.  
  417. /**
  418. * permissions and groups:
  419. * Each entry in `grouplist' is a seperate group. Some of the members are "special"
  420. * while the rest is just a normal permission.
  421. * The order of the groups determines their ranking.
  422. * The special members are as follows:
  423. * - symbol: Specifies the symbol of the group (as shown in front of the username)
  424. * - id: Specifies an id for the group.
  425. * - name: Specifies the human-readable name for the group.
  426. * - root: If this is true, the group can do anything.
  427. * - inherit: The group uses the group specified's permissions if it cannot
  428. * find the permission in the current group. Never make the graph
  429. * produced using this member have any cycles, or the server won't run.
  430. * - jurisdiction: The default jurisdiction for targeted permissions where one isn't
  431. * explictly specified. "Targeted permissions" are permissions
  432. * that might affect another user, such as `ban' or `promote'.
  433. * 's' is a special group where it means the user itself only
  434. * and 'u' is another special group where it means all groups
  435. * lower in rank than the current group.
  436. * - roomonly: forces the group to be a per-room moderation rank only.
  437. * - globalonly: forces the group to be a global rank only.
  438. * All the possible permissions are as follows:
  439. * - console: Developer console (>>).
  440. * - lockdown: /lockdown and /endlockdown commands.
  441. * - hotpatch: /hotpatch, /crashfixed and /savelearnsets commands.
  442. * - ignorelimits: Ignore limits such as chat message length.
  443. * - promote: Promoting and demoting. Will only work if the target user's current
  444. * group and target group are both in jurisdiction.
  445. * - room<rank>: /roompromote to <rank> (eg. roomvoice)
  446. * - makeroom: Create/delete chatrooms, and set modjoin/roomdesc/privacy
  447. * - editroom: Editing properties of rooms
  448. * - editprivacy: Set modjoin/privacy only for battles
  449. * - ban: Banning and unbanning.
  450. * - mute: Muting and unmuting.
  451. * - lock: locking (ipmute) and unlocking.
  452. * - receivemutedpms: Receive PMs from muted users.
  453. * - forcerename: /fr command.
  454. * - ip: IP checking.
  455. * - alts: Alt checking.
  456. * - modlog: view the moderator logs.
  457. * - broadcast: Broadcast informational commands.
  458. * - declare: /declare command.
  459. * - announce: /announce command.
  460. * - modchat: Set modchat.
  461. * - potd: Set PotD.
  462. * - forcewin: /forcewin command.
  463. * - battlemessage: /a command.
  464. * - tournaments: creating tournaments (/tour new, settype etc.)
  465. * - gamemoderation: /tour dq, autodq, end etc.
  466. * - gamemanagement: enable/disable games, minigames, and tournaments.
  467. * - minigame: make minigames (hangman, polls, etc.).
  468. * - game: make games.
  469. * Custom-Plugins specific permissions
  470. * - customcolor: manage custom colors
  471. * - avatar: manage custom avatars
  472. * - badge: manage badges
  473. * - draft: manage room drafts
  474. * - economy: manage server currency
  475. * - emote: manage emoticons
  476. * - editshop: manage the server shop
  477. * - exp: manage the exp system
  478. * - faction: manage factions
  479. * - icon: manage custom icons
  480. * - lottery: manage a room's lottery
  481. * - news: manage server news
  482. * - perma: manage permalocks and permabans
  483. * - customtitle: manage custom profile titles
  484. * - psgo: manage PSGO
  485. * - pmall: send a masspm to a room or globally
  486. * - ssb: manage super staff bros free for all
  487. * - roomshop: manage room shops
  488. */
  489. exports.grouplist = [
  490. {
  491. symbol: '~',
  492. id: "admin",
  493. name: "Administrator",
  494. root: true,
  495. globalonly: true,
  496. },
  497. {
  498. symbol: '^',
  499. id: "captain",
  500. name: "Captain",
  501. inherit: '&',
  502. jurisdiction: 'u',
  503. promote: 'u',
  504. lockdown: true,
  505. pmall: true,
  506. masspm: true,
  507. hotpatch: true,
  508. },
  509. {
  510. symbol: '&',
  511. id: "leader",
  512. name: "Leader",
  513. inherit: '@',
  514. jurisdiction: 'u',
  515. promote: 'u',
  516. roomowner: true,
  517. roombot: true,
  518. roommod: true,
  519. roomdriver: true,
  520. forcewin: true,
  521. declare: true,
  522. modchatall: true,
  523. rangeban: true,
  524. makeroom: true,
  525. editroom: true,
  526. potd: true,
  527. disableladder: true,
  528. globalonly: true,
  529. gamemanagement: true,
  530. exportinputlog: true,
  531. editprivacy: true,
  532. hotpatch: true,
  533. // Custom
  534. customcolor: true,
  535. badge: true,
  536. editshop: true,
  537. exp: true,
  538. faction: true,
  539. icon: true,
  540. customtitle: true,
  541. profile: true,
  542. emotes: true,
  543. },
  544. {
  545. symbol: '#',
  546. id: "owner",
  547. name: "Room Owner",
  548. inherit: '@',
  549. jurisdiction: 'u',
  550. roombot: true,
  551. roommod: true,
  552. roomdriver: true,
  553. editroom: true,
  554. declare: true,
  555. modchatall: true,
  556. roomonly: true,
  557. gamemanagement: true,
  558. // Custom
  559. draft: true,
  560. masspm: true,
  561. },
  562. {
  563. symbol: '\u2605',
  564. id: "host",
  565. name: "Host",
  566. inherit: '@',
  567. jurisdiction: 'u',
  568. declare: true,
  569. modchat: true,
  570. roomonly: true,
  571. gamemanagement: true,
  572. joinbattle: true,
  573. },
  574. {
  575. symbol: '\u2606',
  576. id: "player",
  577. name: "Player",
  578. inherit: '+',
  579. roomvoice: true,
  580. modchat: true,
  581. roomonly: true,
  582. joinbattle: true,
  583. nooverride: true,
  584. editprivacy: true,
  585. },
  586. {
  587. symbol: '*',
  588. id: "bot",
  589. name: "Bot",
  590. inherit: '@',
  591. jurisdiction: 'u',
  592. declare: true,
  593. addhtml: true,
  594. },
  595. {
  596. symbol: '@',
  597. id: "mod",
  598. name: "Moderator",
  599. inherit: '%',
  600. jurisdiction: 'u',
  601. ban: true,
  602. modchat: true,
  603. roomdriver: true,
  604. roomvoice: true,
  605. forcerename: true,
  606. ip: true,
  607. alts: '@u',
  608. tournaments: true,
  609. game: true,
  610. // Custom
  611. news: true,
  612. roomshop: true,
  613. emotes: true,
  614. },
  615. {
  616. symbol: '%',
  617. id: "driver",
  618. name: "Driver",
  619. inherit: '+',
  620. jurisdiction: 'u',
  621. announce: true,
  622. warn: '\u2606u',
  623. kick: true,
  624. mute: '\u2606u',
  625. lock: true,
  626. forcerename: true,
  627. timer: true,
  628. modlog: true,
  629. alts: '%u',
  630. bypassblocks: 'u%@&~',
  631. receiveauthmessages: true,
  632. gamemoderation: true,
  633. jeopardy: true,
  634. joinbattle: true,
  635. minigame: true,
  636. // Custom
  637. lottery: true,
  638. },
  639. {
  640. symbol: '+',
  641. id: "voice",
  642. name: "Voice",
  643. inherit: ' ',
  644. alts: 's',
  645. broadcast: true,
  646. },
  647. {
  648. symbol: ' ',
  649. ip: 's',
  650. },
  651. {
  652. name: 'Locked',
  653. id: 'locked',
  654. symbol: '\u203d',
  655. punishgroup: 'LOCK',
  656. },
  657. {
  658. name: 'Muted',
  659. id: 'muted',
  660. symbol: '!',
  661. punishgroup: 'MUTE',
  662. },
  663. ];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement