gamedigz 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/GAMES_LIST.md +453 -0
  2. package/LICENSE +21 -0
  3. package/README.md +144 -0
  4. package/bin/gamedig.js +79 -0
  5. package/lib/DnsResolver.js +76 -0
  6. package/lib/GlobalUdpSocket.js +69 -0
  7. package/lib/HexUtil.js +20 -0
  8. package/lib/Logger.js +45 -0
  9. package/lib/Promises.js +18 -0
  10. package/lib/ProtocolResolver.js +7 -0
  11. package/lib/QueryRunner.js +95 -0
  12. package/lib/Results.js +32 -0
  13. package/lib/game-resolver.js +17 -0
  14. package/lib/gamedig.js +23 -0
  15. package/lib/games.js +2747 -0
  16. package/lib/index.js +5 -0
  17. package/lib/reader.js +172 -0
  18. package/package.json +74 -0
  19. package/protocols/armagetron.js +65 -0
  20. package/protocols/asa.js +12 -0
  21. package/protocols/ase.js +45 -0
  22. package/protocols/assettocorsa.js +40 -0
  23. package/protocols/battlefield.js +162 -0
  24. package/protocols/beammp.js +32 -0
  25. package/protocols/beammpmaster.js +17 -0
  26. package/protocols/buildandshoot.js +55 -0
  27. package/protocols/core.js +349 -0
  28. package/protocols/cs2d.js +65 -0
  29. package/protocols/dayz.js +196 -0
  30. package/protocols/discord.js +29 -0
  31. package/protocols/doom3.js +148 -0
  32. package/protocols/eco.js +20 -0
  33. package/protocols/eldewrito.js +21 -0
  34. package/protocols/epic.js +95 -0
  35. package/protocols/ffow.js +38 -0
  36. package/protocols/fivem.js +33 -0
  37. package/protocols/gamespy1.js +181 -0
  38. package/protocols/gamespy2.js +144 -0
  39. package/protocols/gamespy3.js +197 -0
  40. package/protocols/geneshift.js +46 -0
  41. package/protocols/goldsrc.js +8 -0
  42. package/protocols/hexen2.js +14 -0
  43. package/protocols/index.js +61 -0
  44. package/protocols/jc2mp.js +16 -0
  45. package/protocols/kspdmp.js +28 -0
  46. package/protocols/mafia2mp.js +41 -0
  47. package/protocols/mafia2online.js +9 -0
  48. package/protocols/minecraft.js +102 -0
  49. package/protocols/minecraftbedrock.js +72 -0
  50. package/protocols/minecraftvanilla.js +87 -0
  51. package/protocols/mumble.js +39 -0
  52. package/protocols/mumbleping.js +24 -0
  53. package/protocols/nadeo.js +86 -0
  54. package/protocols/openttd.js +127 -0
  55. package/protocols/quake1.js +9 -0
  56. package/protocols/quake2.js +88 -0
  57. package/protocols/quake3.js +24 -0
  58. package/protocols/rfactor.js +69 -0
  59. package/protocols/samp.js +102 -0
  60. package/protocols/savage2.js +25 -0
  61. package/protocols/starmade.js +67 -0
  62. package/protocols/starsiege.js +10 -0
  63. package/protocols/teamspeak2.js +71 -0
  64. package/protocols/teamspeak3.js +69 -0
  65. package/protocols/terraria.js +24 -0
  66. package/protocols/tribes1.js +153 -0
  67. package/protocols/tribes1master.js +80 -0
  68. package/protocols/unreal2.js +150 -0
  69. package/protocols/ut3.js +45 -0
  70. package/protocols/valve.js +455 -0
  71. package/protocols/vcmp.js +10 -0
  72. package/protocols/ventrilo.js +237 -0
  73. package/protocols/warsow.js +13 -0
package/lib/games.js ADDED
@@ -0,0 +1,2747 @@
1
+ export const games = {
2
+ actionsource: {
3
+ name: 'Action: Source',
4
+ release_year: 2019,
5
+ options: {
6
+ port: 27015,
7
+ protocol: 'valve'
8
+ }
9
+ },
10
+ ahl: {
11
+ name: 'Action Half-Life',
12
+ release_year: 2009,
13
+ options: {
14
+ port: 27015,
15
+ protocol: 'valve'
16
+ }
17
+ },
18
+ aoc: {
19
+ name: 'Age of Chivalry',
20
+ release_year: 2007,
21
+ options: {
22
+ port: 27015,
23
+ protocol: 'valve'
24
+ }
25
+ },
26
+ aoe2: {
27
+ name: 'Age of Empires 2',
28
+ release_year: 2009,
29
+ options: {
30
+ port_query: 27224,
31
+ protocol: 'ase'
32
+ }
33
+ },
34
+ alienarena: {
35
+ name: 'Alien Arena',
36
+ release_year: 2004,
37
+ options: {
38
+ port_query: 27910,
39
+ protocol: 'quake2'
40
+ }
41
+ },
42
+ alienswarm: {
43
+ name: 'Alien Swarm',
44
+ release_year: 2004,
45
+ options: {
46
+ port: 27015,
47
+ protocol: 'valve'
48
+ }
49
+ },
50
+ ase: {
51
+ name: 'Ark: Survival Evolved',
52
+ release_year: 2017,
53
+ options: {
54
+ port: 7777,
55
+ port_query: 27015,
56
+ protocol: 'valve'
57
+ }
58
+ },
59
+ asa: {
60
+ name: 'Ark: Survival Ascended',
61
+ release_year: 2023,
62
+ options: {
63
+ port: 7777,
64
+ protocol: 'asa'
65
+ }
66
+ },
67
+ assettocorsa: {
68
+ name: 'Assetto Corsa',
69
+ release_year: 2014,
70
+ options: {
71
+ port: 9610,
72
+ protocol: 'assettocorsa'
73
+ }
74
+ },
75
+ atlas: {
76
+ name: 'Atlas',
77
+ release_year: 2018,
78
+ options: {
79
+ port: 5761,
80
+ port_query_offset: 51800,
81
+ protocol: 'valve'
82
+ }
83
+ },
84
+ avorion: {
85
+ name: 'Avorion',
86
+ release_year: 2020,
87
+ options: {
88
+ port: 27000,
89
+ port_query_offset: 20,
90
+ protocol: 'valve'
91
+ }
92
+ },
93
+ avp2: {
94
+ name: 'Aliens versus Predator 2',
95
+ release_year: 2001,
96
+ options: {
97
+ port: 27888,
98
+ protocol: 'gamespy1'
99
+ }
100
+ },
101
+ avp2010: {
102
+ name: 'Aliens vs. Predator 2010',
103
+ release_year: 2010,
104
+ options: {
105
+ port: 27015,
106
+ protocol: 'valve'
107
+ }
108
+ },
109
+ americasarmy: {
110
+ name: "America's Army",
111
+ release_year: 2002,
112
+ options: {
113
+ port: 1716,
114
+ port_query_offset: 1,
115
+ protocol: 'gamespy2'
116
+ }
117
+ },
118
+ americasarmy2: {
119
+ name: "America's Army 2",
120
+ release_year: 2003,
121
+ options: {
122
+ port: 1716,
123
+ port_query_offset: 1,
124
+ protocol: 'gamespy2'
125
+ }
126
+ },
127
+ americasarmy3: {
128
+ name: "America's Army 3",
129
+ release_year: 2009,
130
+ options: {
131
+ port: 8777,
132
+ port_query: 27020,
133
+ protocol: 'valve'
134
+ }
135
+ },
136
+ aapg: {
137
+ name: "America's Army: Proving Grounds",
138
+ release_year: 2015,
139
+ options: {
140
+ port: 8777,
141
+ port_query: 27020,
142
+ protocol: 'valve'
143
+ }
144
+ },
145
+ asr08: {
146
+ name: "Arca Sim Racing '08",
147
+ release_year: 2008,
148
+ options: {
149
+ port: 34397,
150
+ port_query_offset: -100,
151
+ protocol: 'rfactor'
152
+ }
153
+ },
154
+ aaa: {
155
+ name: 'ARMA: Armed Assault',
156
+ release_year: 2006,
157
+ options: {
158
+ port: 2302,
159
+ protocol: 'gamespy2'
160
+ }
161
+ },
162
+ arma2: {
163
+ name: 'ARMA 2',
164
+ release_year: 2009,
165
+ options: {
166
+ port: 2302,
167
+ port_query_offset: 1,
168
+ protocol: 'valve'
169
+ }
170
+ },
171
+ a2oa: {
172
+ name: 'ARMA 2: Operation Arrowhead',
173
+ release_year: 2010,
174
+ options: {
175
+ port: 2302,
176
+ port_query_offset: 1,
177
+ protocol: 'valve'
178
+ }
179
+ },
180
+ acwa: {
181
+ name: 'ARMA: Cold War Assault',
182
+ release_year: 2011,
183
+ options: {
184
+ port: 2302,
185
+ port_query_offset: 1,
186
+ protocol: 'gamespy1'
187
+ }
188
+ },
189
+ armaresistance: {
190
+ name: 'ARMA: Resistance',
191
+ release_year: 2011,
192
+ options: {
193
+ port: 2302,
194
+ port_query_offset: 1,
195
+ protocol: 'gamespy1'
196
+ }
197
+ },
198
+ arma3: {
199
+ name: 'ARMA 3',
200
+ release_year: 2013,
201
+ options: {
202
+ port: 2302,
203
+ port_query_offset: 1,
204
+ protocol: 'valve'
205
+ }
206
+ },
207
+ armareforger: {
208
+ name: 'ARMA: Reforger',
209
+ release_year: 2022,
210
+ options: {
211
+ port: 2001,
212
+ port_query: 17777,
213
+ protocol: 'valve'
214
+ }
215
+ },
216
+ armagetronadvanced: {
217
+ name: 'Armagetron Advanced',
218
+ release_year: 2001,
219
+ options: {
220
+ port: 4534,
221
+ protocol: 'armagetron'
222
+ }
223
+ },
224
+ baldursgate: {
225
+ name: "Baldur's Gate",
226
+ release_year: 1998,
227
+ options: {
228
+ port: 6073,
229
+ port_query: 1470,
230
+ protocol: 'gamespy1'
231
+ }
232
+ },
233
+ ballisticoverkill: {
234
+ name: 'Ballistic Overkill',
235
+ release_year: 2017,
236
+ options: {
237
+ port: 27015,
238
+ port_query_offset: 1,
239
+ protocol: 'valve'
240
+ }
241
+ },
242
+ barotrauma: {
243
+ name: 'Barotrauma',
244
+ release_year: 2019,
245
+ options: {
246
+ port: 27015,
247
+ port_query_offset: 1,
248
+ protocol: 'valve'
249
+ }
250
+ },
251
+ battalion1944: {
252
+ name: 'Battalion 1944',
253
+ release_year: 2018,
254
+ options: {
255
+ port: 7777,
256
+ port_query_offset: 3,
257
+ protocol: 'valve'
258
+ }
259
+ },
260
+ beammp: {
261
+ name: 'BeamMP (2021)',
262
+ options: {
263
+ port: 30814,
264
+ protocol: 'beammp'
265
+ }
266
+ },
267
+ battlefield1942: {
268
+ name: 'Battlefield 1942',
269
+ release_year: 2002,
270
+ options: {
271
+ port: 14567,
272
+ port_query: 23000,
273
+ protocol: 'gamespy1'
274
+ }
275
+ },
276
+ battlefieldvietnam: {
277
+ name: 'Battlefield Vietnam',
278
+ release_year: 2004,
279
+ options: {
280
+ port: 15567,
281
+ port_query: 23000,
282
+ protocol: 'gamespy2'
283
+ }
284
+ },
285
+ battlefield2: {
286
+ name: 'Battlefield 2',
287
+ release_year: 2005,
288
+ options: {
289
+ port: 16567,
290
+ port_query: 29900,
291
+ protocol: 'gamespy3'
292
+ }
293
+ },
294
+ battlefield2142: {
295
+ name: 'Battlefield 2142',
296
+ release_year: 2006,
297
+ options: {
298
+ port: 16567,
299
+ port_query: 29900,
300
+ protocol: 'gamespy3'
301
+ }
302
+ },
303
+ bbc2: {
304
+ name: 'Battlefield: Bad Company 2',
305
+ release_year: 2010,
306
+ options: {
307
+ port: 19567,
308
+ port_query: 48888,
309
+ protocol: 'battlefield'
310
+ }
311
+ },
312
+ battlefield3: {
313
+ name: 'Battlefield 3',
314
+ release_year: 2011,
315
+ options: {
316
+ port: 25200,
317
+ port_query_offset: 22000,
318
+ protocol: 'battlefield'
319
+ }
320
+ },
321
+ battlefield4: {
322
+ name: 'Battlefield 4',
323
+ release_year: 2013,
324
+ options: {
325
+ port: 25200,
326
+ port_query_offset: 22000,
327
+ protocol: 'battlefield'
328
+ }
329
+ },
330
+ battlefieldhardline: {
331
+ name: 'Battlefield Hardline',
332
+ release_year: 2015,
333
+ options: {
334
+ port: 25200,
335
+ port_query_offset: 22000,
336
+ protocol: 'battlefield'
337
+ }
338
+ },
339
+ blackmesa: {
340
+ name: 'Black Mesa',
341
+ release_year: 2020,
342
+ options: {
343
+ port: 27015,
344
+ protocol: 'valve'
345
+ }
346
+ },
347
+ brainbread2: {
348
+ name: 'BrainBread 2',
349
+ release_year: 2022,
350
+ options: {
351
+ port: 27015,
352
+ protocol: 'valve'
353
+ }
354
+ },
355
+ brainbread: {
356
+ name: 'BrainBread',
357
+ release_year: 2007,
358
+ options: {
359
+ port: 27015,
360
+ protocol: 'valve'
361
+ }
362
+ },
363
+ breach: {
364
+ name: 'Breach',
365
+ release_year: 2011,
366
+ options: {
367
+ port: 27016,
368
+ protocol: 'valve'
369
+ }
370
+ },
371
+ breed: {
372
+ name: 'Breed',
373
+ release_year: 2004,
374
+ options: {
375
+ port: 7649,
376
+ protocol: 'gamespy2'
377
+ }
378
+ },
379
+ brink: {
380
+ name: 'Brink',
381
+ release_year: 2011,
382
+ options: {
383
+ port_query_offset: 1,
384
+ protocol: 'valve'
385
+ }
386
+ },
387
+ basedefense: {
388
+ name: 'Base Defense',
389
+ release_year: 2017,
390
+ options: {
391
+ port: 27015,
392
+ protocol: 'valve'
393
+ }
394
+ },
395
+ bladesymphony: {
396
+ name: 'Blade Symphony',
397
+ release_year: 2014,
398
+ options: {
399
+ port: 27015,
400
+ protocol: 'valve'
401
+ }
402
+ },
403
+ bas: {
404
+ name: 'Build and Shoot',
405
+ options: {
406
+ port: 32887,
407
+ port_query_offset: -1,
408
+ protocol: 'buildandshoot'
409
+ },
410
+ release_year: 2012
411
+ },
412
+ aosc: {
413
+ name: 'Ace of Spades Classic',
414
+ options: {
415
+ port: 32887,
416
+ port_query_offset: -1,
417
+ protocol: 'buildandshoot'
418
+ },
419
+ release_year: 2012
420
+ },
421
+ cod: {
422
+ name: 'Call of Duty',
423
+ release_year: 2003,
424
+ options: {
425
+ port: 28960,
426
+ protocol: 'quake3'
427
+ }
428
+ },
429
+ coduo: {
430
+ name: 'Call of Duty: United Offensive',
431
+ release_year: 2004,
432
+ options: {
433
+ port: 28960,
434
+ protocol: 'quake3'
435
+ }
436
+ },
437
+ cod2: {
438
+ name: 'Call of Duty 2',
439
+ release_year: 2005,
440
+ options: {
441
+ port: 28960,
442
+ protocol: 'quake3'
443
+ }
444
+ },
445
+ cod3: {
446
+ name: 'Call of Duty 3',
447
+ release_year: 2006,
448
+ options: {
449
+ port: 28960,
450
+ protocol: 'quake3'
451
+ }
452
+ },
453
+ cod4mw: {
454
+ name: 'Call of Duty 4: Modern Warfare',
455
+ options: {
456
+ port: 28960,
457
+ protocol: 'quake3'
458
+ },
459
+ release_year: 2007
460
+ },
461
+ codwaw: {
462
+ name: 'Call of Duty: World at War',
463
+ release_year: 2008,
464
+ options: {
465
+ port: 28960,
466
+ protocol: 'quake3'
467
+ }
468
+ },
469
+ codmw2: {
470
+ name: 'Call of Duty: Modern Warfare 2',
471
+ release_year: 2009,
472
+ options: {
473
+ port: 28960,
474
+ protocol: 'quake3'
475
+ }
476
+ },
477
+ codmw3: {
478
+ name: 'Call of Duty: Modern Warfare 3',
479
+ release_year: 2011,
480
+ options: {
481
+ port_query_offset: 2,
482
+ protocol: 'valve'
483
+ }
484
+ },
485
+ coj: {
486
+ name: 'Call of Juarez',
487
+ release_year: 2006,
488
+ options: {
489
+ port_query: 26000,
490
+ protocol: 'ase'
491
+ }
492
+ },
493
+ chaser: {
494
+ name: 'Chaser',
495
+ release_year: 2003,
496
+ options: {
497
+ port: 3000,
498
+ port_query_offset: 123,
499
+ protocol: 'ase'
500
+ }
501
+ },
502
+ cmw: {
503
+ name: 'Chivalry: Medieval Warfare',
504
+ release_year: 2012,
505
+ options: {
506
+ port: 7777,
507
+ port_query_offset: 2,
508
+ protocol: 'valve'
509
+ }
510
+ },
511
+ chrome: {
512
+ name: 'Chrome',
513
+ release_year: 2003,
514
+ options: {
515
+ port: 27015,
516
+ port_query_offset: 123,
517
+ protocol: 'ase'
518
+ }
519
+ },
520
+ codenamecure: {
521
+ name: 'Codename CURE',
522
+ release_year: 2017,
523
+ options: {
524
+ port: 27015,
525
+ protocol: 'valve'
526
+ }
527
+ },
528
+ codenameeagle: {
529
+ name: 'Codename Eagle',
530
+ release_year: 2000,
531
+ options: {
532
+ port_query: 4711,
533
+ protocol: 'gamespy1'
534
+ }
535
+ },
536
+ colonysurvival: {
537
+ name: 'Colony Survival',
538
+ release_year: 2017,
539
+ options: {
540
+ port: 27004,
541
+ protocol: 'valve'
542
+ }
543
+ },
544
+ c3db: {
545
+ name: 'Commandos 3: Destination Berlin',
546
+ release_year: 2003,
547
+ options: {
548
+ port_query: 6500,
549
+ protocol: 'gamespy1'
550
+ }
551
+ },
552
+ cacr: {
553
+ name: 'Command and Conquer: Renegade',
554
+ release_year: 2002,
555
+ options: {
556
+ port: 4848,
557
+ port_query: 25300,
558
+ protocol: 'gamespy1'
559
+ }
560
+ },
561
+ conanexiles: {
562
+ name: 'Conan Exiles',
563
+ release_year: 2018,
564
+ options: {
565
+ port: 7777,
566
+ port_query: 27015,
567
+ protocol: 'valve'
568
+ }
569
+ },
570
+ contagion: {
571
+ name: 'Contagion',
572
+ release_year: 2011,
573
+ options: {
574
+ port: 27015,
575
+ protocol: 'valve'
576
+ }
577
+ },
578
+ contractjack: {
579
+ name: 'Contract J.A.C.K.',
580
+ release_year: 2003,
581
+ options: {
582
+ port_query: 27888,
583
+ protocol: 'gamespy1'
584
+ }
585
+ },
586
+ corekeeper: {
587
+ name: 'Core Keeper',
588
+ release_year: 2022,
589
+ options: {
590
+ port: 1234,
591
+ port_query_offset: 1,
592
+ protocol: 'valve'
593
+ }
594
+ },
595
+ counterstrike15: {
596
+ name: 'Counter-Strike 1.5',
597
+ release_year: 2002,
598
+ options: {
599
+ port: 27015,
600
+ protocol: 'goldsrc'
601
+ }
602
+ },
603
+ counterstrike16: {
604
+ name: 'Counter-Strike 1.6',
605
+ release_year: 2003,
606
+ options: {
607
+ port: 27015,
608
+ protocol: 'valve'
609
+ }
610
+ },
611
+ cs2d: {
612
+ name: 'CS2D',
613
+ release_year: 2004,
614
+ options: {
615
+ port: 36963,
616
+ protocol: 'cs2d'
617
+ }
618
+ },
619
+ cscz: {
620
+ name: 'Counter-Strike: Condition Zero',
621
+ release_year: 2004,
622
+ options: {
623
+ port: 27015,
624
+ protocol: 'valve'
625
+ }
626
+ },
627
+ css: {
628
+ name: 'Counter-Strike: Source',
629
+ release_year: 2004,
630
+ options: {
631
+ port: 27015,
632
+ protocol: 'valve'
633
+ }
634
+ },
635
+ csgo: {
636
+ name: 'Counter-Strike: Global Offensive',
637
+ release_year: 2012,
638
+ options: {
639
+ port: 27015,
640
+ protocol: 'valve'
641
+ },
642
+ extra: {
643
+ doc_notes: 'csgo'
644
+ }
645
+ },
646
+ counterstrike2: {
647
+ name: 'Counter-Strike 2',
648
+ release_year: 2023,
649
+ options: {
650
+ port: 27015,
651
+ protocol: 'valve'
652
+ }
653
+ },
654
+ creativerse: {
655
+ name: 'Creativerse',
656
+ release_year: 2017,
657
+ options: {
658
+ port: 26900,
659
+ port_query_offset: 1,
660
+ protocol: 'valve'
661
+ }
662
+ },
663
+ crce: {
664
+ name: 'Cross Racing Championship Extreme',
665
+ release_year: 2005,
666
+ options: {
667
+ port: 12321,
668
+ port_query_offset: 123,
669
+ protocol: 'ase'
670
+ }
671
+ },
672
+ crysis: {
673
+ name: 'Crysis',
674
+ release_year: 2007,
675
+ options: {
676
+ port: 64087,
677
+ protocol: 'gamespy3'
678
+ }
679
+ },
680
+ crysiswars: {
681
+ name: 'Crysis Wars',
682
+ release_year: 2008,
683
+ options: {
684
+ port: 64100,
685
+ protocol: 'gamespy3'
686
+ }
687
+ },
688
+ crysis2: {
689
+ name: 'Crysis 2',
690
+ release_year: 2011,
691
+ options: {
692
+ port: 64000,
693
+ protocol: 'gamespy3'
694
+ }
695
+ },
696
+ dab: {
697
+ name: 'Double Action: Boogaloo',
698
+ release_year: 2014,
699
+ options: {
700
+ port: 27015,
701
+ protocol: 'valve'
702
+ }
703
+ },
704
+ daikatana: {
705
+ name: 'Daikatana',
706
+ release_year: 2000,
707
+ options: {
708
+ port: 27982,
709
+ port_query_offset: 10,
710
+ protocol: 'quake2'
711
+ }
712
+ },
713
+ dmomam: {
714
+ name: 'Dark Messiah of Might and Magic',
715
+ release_year: 2006,
716
+ options: {
717
+ port: 27015,
718
+ protocol: 'valve'
719
+ }
720
+ },
721
+ dhe4445: {
722
+ name: "Darkest Hour: Europe '44-'45",
723
+ release_year: 2008,
724
+ options: {
725
+ port: 7757,
726
+ port_query_offset: 1,
727
+ protocol: 'unreal2'
728
+ }
729
+ },
730
+ dayofdragons: {
731
+ name: 'Day of Dragons',
732
+ release_year: 2019,
733
+ options: {
734
+ port: 7777,
735
+ port_query: 27015,
736
+ protocol: 'valve'
737
+ }
738
+ },
739
+ dow: {
740
+ name: 'Days of War',
741
+ release_year: 2017,
742
+ options: {
743
+ port: 27015,
744
+ protocol: 'valve'
745
+ }
746
+ },
747
+ dayz: {
748
+ name: 'DayZ',
749
+ release_year: 2018,
750
+ options: {
751
+ port: 2302,
752
+ port_query_offset: 24714,
753
+ protocol: 'dayz'
754
+ }
755
+ },
756
+ dayzmod: {
757
+ name: 'DayZ Mod',
758
+ release_year: 2013,
759
+ options: {
760
+ port: 2302,
761
+ port_query_offset: 1,
762
+ protocol: 'valve'
763
+ }
764
+ },
765
+ ddpt: {
766
+ name: 'Deadly Dozen: Pacific Theater',
767
+ release_year: 2002,
768
+ options: {
769
+ port_query: 25300,
770
+ protocol: 'gamespy1'
771
+ }
772
+ },
773
+ deerhunter2005: {
774
+ name: 'Deer Hunter 2005',
775
+ release_year: 2004,
776
+ options: {
777
+ port: 23459,
778
+ port_query: 34567,
779
+ protocol: 'gamespy2'
780
+ }
781
+ },
782
+ descent3: {
783
+ name: 'Descent 3',
784
+ release_year: 1999,
785
+ options: {
786
+ port: 2092,
787
+ port_query: 20142,
788
+ protocol: 'gamespy1'
789
+ }
790
+ },
791
+ deusex: {
792
+ name: 'Deus Ex',
793
+ release_year: 2000,
794
+ options: {
795
+ port: 7791,
796
+ port_query_offset: 1,
797
+ protocol: 'gamespy2'
798
+ }
799
+ },
800
+ devastation: {
801
+ name: 'Devastation',
802
+ release_year: 2003,
803
+ options: {
804
+ port: 7777,
805
+ port_query_offset: 1,
806
+ protocol: 'unreal2'
807
+ }
808
+ },
809
+ ddd: {
810
+ name: 'Dino D-Day',
811
+ release_year: 2011,
812
+ options: {
813
+ port: 27015,
814
+ protocol: 'valve'
815
+ }
816
+ },
817
+ dtr2: {
818
+ name: 'Dirt Track Racing 2',
819
+ release_year: 2002,
820
+ options: {
821
+ port: 32240,
822
+ port_query_offset: -100,
823
+ protocol: 'gamespy1'
824
+ }
825
+ },
826
+ discord: {
827
+ name: 'Discord',
828
+ release_year: 2015,
829
+ options: {
830
+ protocol: 'discord'
831
+ },
832
+ extra: {
833
+ doc_notes: 'discord'
834
+ }
835
+ },
836
+ deathmatchclassic: {
837
+ name: 'Deathmatch Classic',
838
+ release_year: 2001,
839
+ options: {
840
+ port: 27015,
841
+ protocol: 'valve'
842
+ }
843
+ },
844
+ dal: {
845
+ name: 'Dark and Light',
846
+ release_year: 2017,
847
+ options: {
848
+ port: 7777,
849
+ port_query: 27015,
850
+ protocol: 'valve'
851
+ }
852
+ },
853
+ dod: {
854
+ name: 'Day of Defeat',
855
+ release_year: 2003,
856
+ options: {
857
+ port: 27015,
858
+ protocol: 'valve'
859
+ }
860
+ },
861
+ dods: {
862
+ name: 'Day of Defeat: Source',
863
+ release_year: 2005,
864
+ options: {
865
+ port: 27015,
866
+ protocol: 'valve'
867
+ }
868
+ },
869
+ doi: {
870
+ name: 'Day of Infamy',
871
+ release_year: 2017,
872
+ options: {
873
+ port: 27015,
874
+ protocol: 'valve'
875
+ }
876
+ },
877
+ doom3: {
878
+ name: 'Doom 3',
879
+ release_year: 2004,
880
+ options: {
881
+ port: 27666,
882
+ protocol: 'doom3'
883
+ }
884
+ },
885
+ dota2: {
886
+ name: 'Dota 2',
887
+ release_year: 2013,
888
+ options: {
889
+ port: 27015,
890
+ protocol: 'valve'
891
+ }
892
+ },
893
+ dootf: {
894
+ name: 'Drakan: Order of the Flame',
895
+ release_year: 1999,
896
+ options: {
897
+ port: 27045,
898
+ port_query_offset: 1,
899
+ protocol: 'gamespy1'
900
+ }
901
+ },
902
+ dst: {
903
+ name: "Don't Starve Together",
904
+ release_year: 2016,
905
+ options: {
906
+ port: 10999,
907
+ port_query: 27016,
908
+ protocol: 'valve'
909
+ }
910
+ },
911
+ dystopia: {
912
+ name: 'Dystopia',
913
+ release_year: 2005,
914
+ options: {
915
+ port: 27015,
916
+ protocol: 'valve'
917
+ }
918
+ },
919
+ eco: {
920
+ name: 'Eco',
921
+ release_year: 2018,
922
+ options: {
923
+ port: 3000,
924
+ port_query_offset: 1,
925
+ protocol: 'eco'
926
+ }
927
+ },
928
+ eldewrito: {
929
+ name: 'Halo Online (ElDewrito)',
930
+ options: {
931
+ port: 11775,
932
+ protocol: 'eldewrito'
933
+ }
934
+ },
935
+ empiresmod: {
936
+ name: 'Empires Mod',
937
+ release_year: 2008,
938
+ options: {
939
+ port: 27015,
940
+ protocol: 'valve'
941
+ }
942
+ },
943
+ egs: {
944
+ name: 'Empyrion - Galactic Survival',
945
+ options: {
946
+ port: 30000,
947
+ port_query_offset: 1,
948
+ protocol: 'valve'
949
+ },
950
+ release_year: 2015
951
+ },
952
+ etqw: {
953
+ name: 'Enemy Territory: Quake Wars',
954
+ options: {
955
+ port: 3074,
956
+ port_query: 27733,
957
+ protocol: 'doom3'
958
+ },
959
+ release_year: 2007
960
+ },
961
+ fear: {
962
+ name: 'F.E.A.R.',
963
+ options: {
964
+ port_query: 27888,
965
+ protocol: 'gamespy2'
966
+ },
967
+ release_year: 2005
968
+ },
969
+ formulaone2002: {
970
+ name: 'Formula One 2002',
971
+ options: {
972
+ port_query: 3297,
973
+ protocol: 'gamespy1'
974
+ },
975
+ release_year: 2002
976
+ },
977
+ f1c9902: {
978
+ name: "F1 Challenge '99-'02",
979
+ options: {
980
+ port_query: 34397,
981
+ protocol: 'gamespy1'
982
+ },
983
+ release_year: 2002
984
+ },
985
+ farcry: {
986
+ name: 'Far Cry',
987
+ options: {
988
+ port: 49001,
989
+ port_query_offset: 123,
990
+ protocol: 'ase'
991
+ },
992
+ release_year: 2004
993
+ },
994
+ farcry2: {
995
+ name: 'Far Cry 2',
996
+ options: {
997
+ port_query: 14001,
998
+ protocol: 'ase'
999
+ },
1000
+ release_year: 2008
1001
+ },
1002
+ fof: {
1003
+ name: 'Fistful of Frags',
1004
+ options: {
1005
+ port: 27015,
1006
+ protocol: 'valve'
1007
+ },
1008
+ release_year: 2014
1009
+ },
1010
+ fortressforever: {
1011
+ name: 'Fortress Forever',
1012
+ options: {
1013
+ port: 27015,
1014
+ protocol: 'valve'
1015
+ },
1016
+ release_year: 2007
1017
+ },
1018
+ ofcwc: {
1019
+ name: 'Operation Flashpoint: Cold War Crisis',
1020
+ options: {
1021
+ port: 2302,
1022
+ port_query_offset: 1,
1023
+ protocol: 'gamespy1'
1024
+ },
1025
+ release_year: 2001
1026
+ },
1027
+ ofr: {
1028
+ name: 'Operation Flashpoint: Resistance',
1029
+ options: {
1030
+ port: 2302,
1031
+ port_query_offset: 1,
1032
+ protocol: 'gamespy1'
1033
+ },
1034
+ release_year: 2002
1035
+ },
1036
+ ffow: {
1037
+ name: 'Frontlines: Fuel of War',
1038
+ options: {
1039
+ port: 5476,
1040
+ port_query_offset: 2,
1041
+ protocol: 'ffow'
1042
+ },
1043
+ release_year: 2008
1044
+ },
1045
+ gta5f: {
1046
+ name: 'Grand Theft Auto V - FiveM',
1047
+ options: {
1048
+ port: 30120,
1049
+ protocol: 'fivem'
1050
+ },
1051
+ release_year: 2013
1052
+ },
1053
+ theforrest: {
1054
+ name: 'The Forrest',
1055
+ options: {
1056
+ port: 27015,
1057
+ port_query_offset: 1,
1058
+ protocol: 'valve'
1059
+ },
1060
+ release_year: 2014
1061
+ },
1062
+ garrysmod: {
1063
+ name: "Garry's Mod",
1064
+ options: {
1065
+ port: 27015,
1066
+ protocol: 'valve'
1067
+ },
1068
+ release_year: 2004
1069
+ },
1070
+ tcgraw: {
1071
+ name: "Tom Clancy's Ghost Recon Advanced Warfighter",
1072
+ options: {
1073
+ port_query: 15250,
1074
+ protocol: 'gamespy2'
1075
+ },
1076
+ release_year: 2006
1077
+ },
1078
+ tcgraw2: {
1079
+ name: "Tom Clancy's Ghost Recon Advanced Warfighter 2",
1080
+ options: {
1081
+ port_query: 16250,
1082
+ protocol: 'gamespy2'
1083
+ },
1084
+ release_year: 2007
1085
+ },
1086
+ gck: {
1087
+ name: 'Giants: Citizen Kabuto',
1088
+ options: {
1089
+ port_query: 8911,
1090
+ protocol: 'gamespy1'
1091
+ },
1092
+ release_year: 2000
1093
+ },
1094
+ globaloperations: {
1095
+ name: 'Global Operations',
1096
+ options: {
1097
+ port_query: 28672,
1098
+ protocol: 'gamespy1'
1099
+ },
1100
+ release_year: 2002
1101
+ },
1102
+ geneshift: {
1103
+ name: 'Geneshift',
1104
+ options: {
1105
+ port: 11235,
1106
+ protocol: 'geneshift'
1107
+ },
1108
+ release_year: 2017
1109
+ },
1110
+ goldeneyesource: {
1111
+ name: 'GoldenEye: Source',
1112
+ options: {
1113
+ port: 27015,
1114
+ protocol: 'valve'
1115
+ },
1116
+ release_year: 2010
1117
+ },
1118
+ gus: {
1119
+ name: 'Gore: Ultimate Soldier',
1120
+ options: {
1121
+ port: 27777,
1122
+ port_query_offset: 1,
1123
+ protocol: 'gamespy1'
1124
+ },
1125
+ release_year: 2002
1126
+ },
1127
+ groundbreach: {
1128
+ name: 'Ground Breach',
1129
+ options: {
1130
+ port: 27015,
1131
+ protocol: 'valve'
1132
+ },
1133
+ release_year: 2018
1134
+ },
1135
+ gunmanchronicles: {
1136
+ name: 'Gunman Chronicles',
1137
+ options: {
1138
+ port: 27015,
1139
+ protocol: 'valve'
1140
+ },
1141
+ release_year: 2000
1142
+ },
1143
+ hld: {
1144
+ name: 'Half-Life Deathmatch',
1145
+ options: {
1146
+ port: 27015,
1147
+ protocol: 'valve'
1148
+ },
1149
+ release_year: 1998
1150
+ },
1151
+ hlds: {
1152
+ name: 'Half-Life Deathmatch: Source',
1153
+ options: {
1154
+ port: 27015,
1155
+ protocol: 'valve'
1156
+ },
1157
+ release_year: 2005
1158
+ },
1159
+ hlof: {
1160
+ name: 'Half-Life: Opposing Force',
1161
+ options: {
1162
+ port: 27015,
1163
+ protocol: 'valve'
1164
+ },
1165
+ release_year: 1999
1166
+ },
1167
+ hl2d: {
1168
+ name: 'Half-Life 2: Deathmatch',
1169
+ options: {
1170
+ port: 27015,
1171
+ protocol: 'valve'
1172
+ },
1173
+ release_year: 2004
1174
+ },
1175
+ halo: {
1176
+ name: 'Halo',
1177
+ options: {
1178
+ port: 2302,
1179
+ protocol: 'gamespy2'
1180
+ },
1181
+ release_year: 2003
1182
+ },
1183
+ halo2: {
1184
+ name: 'Halo 2',
1185
+ options: {
1186
+ port: 2302,
1187
+ protocol: 'gamespy2'
1188
+ },
1189
+ release_year: 2007
1190
+ },
1191
+ heretic2: {
1192
+ name: 'Heretic II',
1193
+ options: {
1194
+ port: 27900,
1195
+ port_query_offset: 1,
1196
+ protocol: 'gamespy1'
1197
+ },
1198
+ release_year: 1998
1199
+ },
1200
+ hexen2: {
1201
+ name: 'Hexen II',
1202
+ options: {
1203
+ port: 26900,
1204
+ port_query_offset: 50,
1205
+ protocol: 'hexen2'
1206
+ },
1207
+ release_year: 1997
1208
+ },
1209
+ thehidden: {
1210
+ name: 'The Hidden',
1211
+ options: {
1212
+ port: 27015,
1213
+ protocol: 'valve'
1214
+ },
1215
+ release_year: 2005
1216
+ },
1217
+ hll: {
1218
+ name: 'Hell Let Loose',
1219
+ options: {
1220
+ port: 27015,
1221
+ protocol: 'valve'
1222
+ },
1223
+ release_year: 2019
1224
+ },
1225
+ hiddendangerous2: {
1226
+ name: 'Hidden & Dangerous 2',
1227
+ options: {
1228
+ port: 11001,
1229
+ port_query_offset: 3,
1230
+ protocol: 'gamespy1'
1231
+ },
1232
+ release_year: 2003
1233
+ },
1234
+ homefront: {
1235
+ name: 'Homefront',
1236
+ options: {
1237
+ port: 27015,
1238
+ protocol: 'valve'
1239
+ },
1240
+ release_year: 2011
1241
+ },
1242
+ homeworld2: {
1243
+ name: 'Homeworld 2',
1244
+ options: {
1245
+ port_query: 6500,
1246
+ protocol: 'gamespy1'
1247
+ },
1248
+ release_year: 2003
1249
+ },
1250
+ hurtworld: {
1251
+ name: 'Hurtworld',
1252
+ options: {
1253
+ port: 12871,
1254
+ port_query: 12881,
1255
+ protocol: 'valve'
1256
+ },
1257
+ release_year: 2015
1258
+ },
1259
+ i2cs: {
1260
+ name: 'IGI 2: Covert Strike',
1261
+ options: {
1262
+ port_query: 26001,
1263
+ protocol: 'gamespy1'
1264
+ },
1265
+ release_year: 2003
1266
+ },
1267
+ il2sturmovik: {
1268
+ name: 'IL-2 Sturmovik',
1269
+ options: {
1270
+ port_query: 21000,
1271
+ protocol: 'gamespy1'
1272
+ },
1273
+ release_year: 2001
1274
+ },
1275
+ insurgency: {
1276
+ name: 'Insurgency',
1277
+ options: {
1278
+ port: 27015,
1279
+ protocol: 'valve'
1280
+ },
1281
+ release_year: 2014
1282
+ },
1283
+ imic: {
1284
+ name: 'Insurgency: Modern Infantry Combat',
1285
+ options: {
1286
+ port: 27015,
1287
+ protocol: 'valve'
1288
+ },
1289
+ release_year: 2007
1290
+ },
1291
+ insurgencysandstorm: {
1292
+ name: 'Insurgency: Sandstorm',
1293
+ options: {
1294
+ port: 27015,
1295
+ port_query_offset: 1,
1296
+ protocol: 'valve'
1297
+ },
1298
+ release_year: 2018
1299
+ },
1300
+ ironstorm: {
1301
+ name: 'Iron Storm',
1302
+ options: {
1303
+ port_query: 3505,
1304
+ protocol: 'gamespy1'
1305
+ },
1306
+ release_year: 2002
1307
+ },
1308
+ theisle: {
1309
+ name: 'The Isle',
1310
+ options: {
1311
+ port: 7707,
1312
+ port_query_offset: 1,
1313
+ protocol: 'valve'
1314
+ },
1315
+ release_year: 2015
1316
+ },
1317
+ jb007n: {
1318
+ name: 'James Bond 007: Nightfire',
1319
+ options: {
1320
+ port_query: 6550,
1321
+ protocol: 'gamespy1'
1322
+ },
1323
+ release_year: 2002
1324
+ },
1325
+ jc2m: {
1326
+ name: 'Just Cause 2 - Multiplayer',
1327
+ options: {
1328
+ port: 7777,
1329
+ protocol: 'jc2mp'
1330
+ },
1331
+ release_year: 2010
1332
+ },
1333
+ jc3m: {
1334
+ name: 'Just Cause 3 - Multiplayer',
1335
+ options: {
1336
+ port: 4200,
1337
+ port_query_offset: 1,
1338
+ protocol: 'valve'
1339
+ },
1340
+ release_year: 2017
1341
+ },
1342
+ killingfloor: {
1343
+ name: 'Killing Floor',
1344
+ options: {
1345
+ port: 7707,
1346
+ port_query_offset: 1,
1347
+ protocol: 'unreal2'
1348
+ },
1349
+ release_year: 2009
1350
+ },
1351
+ killingfloor2: {
1352
+ name: 'Killing Floor 2',
1353
+ options: {
1354
+ port: 7777,
1355
+ port_query: 27015,
1356
+ protocol: 'valve'
1357
+ },
1358
+ release_year: 2016
1359
+ },
1360
+ kloc: {
1361
+ name: 'Kingpin: Life of Crime',
1362
+ options: {
1363
+ port: 31510,
1364
+ port_query_offset: -10,
1365
+ protocol: 'gamespy1'
1366
+ },
1367
+ release_year: 1999
1368
+ },
1369
+ kpctnc: {
1370
+ name: 'Kiss: Psycho Circus: The Nightmare Child',
1371
+ options: {
1372
+ port: 7777,
1373
+ port_query_offset: 1,
1374
+ protocol: 'gamespy1'
1375
+ },
1376
+ release_year: 2000
1377
+ },
1378
+ kspd: {
1379
+ name: 'Kerbal Space Program - DMP',
1380
+ options: {
1381
+ port: 6702,
1382
+ port_query_offset: 1,
1383
+ protocol: 'kspdmp'
1384
+ },
1385
+ release_year: 2015
1386
+ },
1387
+ kreedzclimbing: {
1388
+ name: 'Kreedz Climbing',
1389
+ options: {
1390
+ port: 27015,
1391
+ protocol: 'valve'
1392
+ },
1393
+ release_year: 2017
1394
+ },
1395
+ l4d: {
1396
+ name: 'Left 4 Dead',
1397
+ options: {
1398
+ port: 27015,
1399
+ protocol: 'valve'
1400
+ },
1401
+ release_year: 2008
1402
+ },
1403
+ l4d2: {
1404
+ name: 'Left 4 Dead 2',
1405
+ options: {
1406
+ port: 27015,
1407
+ protocol: 'valve'
1408
+ },
1409
+ release_year: 2009
1410
+ },
1411
+ m2m: {
1412
+ name: 'Mafia II - Multiplayer',
1413
+ options: {
1414
+ port: 27016,
1415
+ port_query_offset: 1,
1416
+ protocol: 'mafia2mp'
1417
+ },
1418
+ release_year: 2010
1419
+ },
1420
+ m2o: {
1421
+ name: 'Mafia II - Online',
1422
+ options: {
1423
+ port: 27015,
1424
+ port_query_offset: 1,
1425
+ protocol: 'mafia2online'
1426
+ },
1427
+ release_year: 2010
1428
+ },
1429
+ medievalengineers: {
1430
+ name: 'Medieval Engineers',
1431
+ options: {
1432
+ port: 27015,
1433
+ protocol: 'valve'
1434
+ },
1435
+ release_year: 2015
1436
+ },
1437
+ mohaa: {
1438
+ name: 'Medal of Honor: Allied Assault',
1439
+ options: {
1440
+ port: 12203,
1441
+ port_query_offset: 97,
1442
+ protocol: 'gamespy1'
1443
+ },
1444
+ release_year: 2002
1445
+ },
1446
+ mohaas: {
1447
+ name: 'Medal of Honor: Allied Assault Spearhead',
1448
+ options: {
1449
+ port: 12203,
1450
+ port_query_offset: 97,
1451
+ protocol: 'gamespy1'
1452
+ },
1453
+ release_year: 2002
1454
+ },
1455
+ mohaab: {
1456
+ name: 'Medal of Honor: Allied Assault Breakthrough',
1457
+ options: {
1458
+ port: 12203,
1459
+ port_query_offset: 97,
1460
+ protocol: 'gamespy1'
1461
+ },
1462
+ release_year: 2003
1463
+ },
1464
+ mohpa: {
1465
+ name: 'Medal of Honor: Pacific Assault',
1466
+ options: {
1467
+ port: 13203,
1468
+ port_query_offset: 97,
1469
+ protocol: 'gamespy1'
1470
+ },
1471
+ release_year: 2004
1472
+ },
1473
+ moha: {
1474
+ name: 'Medal of Honor: Airborne',
1475
+ options: {
1476
+ port: 12203,
1477
+ port_query_offset: 97,
1478
+ protocol: 'gamespy1'
1479
+ },
1480
+ release_year: 2007
1481
+ },
1482
+ moh: {
1483
+ name: 'Medal of Honor',
1484
+ options: {
1485
+ port: 7673,
1486
+ port_query: 48888,
1487
+ protocol: 'battlefield'
1488
+ },
1489
+ release_year: 2010
1490
+ },
1491
+ mohw: {
1492
+ name: 'Medal of Honor: Warfighter',
1493
+ options: {
1494
+ port: 25200,
1495
+ port_query_offset: 22000,
1496
+ protocol: 'battlefield'
1497
+ },
1498
+ release_year: 2012
1499
+ },
1500
+ minecraft: {
1501
+ name: 'Minecraft',
1502
+ options: {
1503
+ port: 25565,
1504
+ protocol: 'minecraft'
1505
+ },
1506
+ release_year: 2009
1507
+ },
1508
+ mbe: {
1509
+ name: 'Minecraft: Bedrock Edition',
1510
+ options: {
1511
+ port: 19132,
1512
+ protocol: 'minecraft'
1513
+ },
1514
+ release_year: 2011
1515
+ },
1516
+ mnc: {
1517
+ name: 'Monday Night Combat',
1518
+ options: {
1519
+ port: 7777,
1520
+ port_query: 27016,
1521
+ protocol: 'valve'
1522
+ },
1523
+ release_year: 2011
1524
+ },
1525
+ mordhau: {
1526
+ name: 'Mordhau',
1527
+ options: {
1528
+ port: 7777,
1529
+ port_query: 27015,
1530
+ protocol: 'valve'
1531
+ },
1532
+ release_year: 2019
1533
+ },
1534
+ gtavcmta: {
1535
+ name: 'Grand Theft Auto: Vice City - Multi Theft Auto',
1536
+ options: {
1537
+ port: 22003,
1538
+ port_query_offset: 123,
1539
+ protocol: 'ase'
1540
+ },
1541
+ release_year: 2002
1542
+ },
1543
+ gtasamta: {
1544
+ name: 'Grand Theft Auto: San Andreas - Multi Theft Auto',
1545
+ options: {
1546
+ port: 22003,
1547
+ port_query_offset: 123,
1548
+ protocol: 'ase'
1549
+ },
1550
+ release_year: 2004
1551
+ },
1552
+ mgm: {
1553
+ name: 'Mumble - GT Murmur',
1554
+ options: {
1555
+ port: 64738,
1556
+ port_query: 27800,
1557
+ protocol: 'mumble'
1558
+ },
1559
+ extra: {
1560
+ doc_notes: 'mumble'
1561
+ },
1562
+ release_year: 2005
1563
+ },
1564
+ mumble: {
1565
+ name: 'Mumble',
1566
+ options: {
1567
+ port: 64738,
1568
+ protocol: 'mumbleping'
1569
+ },
1570
+ extra: {
1571
+ doc_notes: 'mumble'
1572
+ },
1573
+ release_year: 2005
1574
+ },
1575
+ mutantfactions: {
1576
+ name: 'Mutant Factions',
1577
+ options: {
1578
+ port: 11235,
1579
+ protocol: 'geneshift'
1580
+ },
1581
+ release_year: 2009
1582
+ },
1583
+ nascarthunder2004: {
1584
+ name: 'NASCAR Thunder 2004',
1585
+ options: {
1586
+ port_query: 13333,
1587
+ protocol: 'gamespy2'
1588
+ },
1589
+ release_year: 2003
1590
+ },
1591
+ netpanzer: {
1592
+ name: 'netPanzer',
1593
+ options: {
1594
+ port: 3030,
1595
+ protocol: 'gamespy1'
1596
+ },
1597
+ release_year: 2002
1598
+ },
1599
+ nmrih: {
1600
+ name: 'No More Room in Hell',
1601
+ options: {
1602
+ port: 27015,
1603
+ protocol: 'valve'
1604
+ },
1605
+ release_year: 2011
1606
+ },
1607
+ naturalselection: {
1608
+ name: 'Natural Selection',
1609
+ options: {
1610
+ port: 27015,
1611
+ protocol: 'valve'
1612
+ },
1613
+ release_year: 2002
1614
+ },
1615
+ naturalselection2: {
1616
+ name: 'Natural Selection 2',
1617
+ options: {
1618
+ port_query_offset: 1,
1619
+ protocol: 'valve'
1620
+ },
1621
+ release_year: 2012
1622
+ },
1623
+ nfshp2: {
1624
+ name: 'Need for Speed: Hot Pursuit 2',
1625
+ options: {
1626
+ port_query: 61220,
1627
+ protocol: 'gamespy1'
1628
+ },
1629
+ release_year: 2002
1630
+ },
1631
+ nab: {
1632
+ name: 'Nerf Arena Blast',
1633
+ options: {
1634
+ port: 4444,
1635
+ port_query_offset: 1,
1636
+ protocol: 'gamespy1'
1637
+ },
1638
+ release_year: 1999
1639
+ },
1640
+ neverwinternights: {
1641
+ name: 'Neverwinter Nights',
1642
+ options: {
1643
+ port_query: 5121,
1644
+ protocol: 'gamespy2'
1645
+ },
1646
+ release_year: 2002
1647
+ },
1648
+ neverwinternights2: {
1649
+ name: 'Neverwinter Nights 2',
1650
+ options: {
1651
+ port: 5121,
1652
+ port_query: 6500,
1653
+ protocol: 'gamespy2'
1654
+ },
1655
+ release_year: 2006
1656
+ },
1657
+ nexuiz: {
1658
+ name: 'Nexuiz',
1659
+ options: {
1660
+ port_query: 26000,
1661
+ protocol: 'quake3'
1662
+ },
1663
+ release_year: 2005
1664
+ },
1665
+ nitrofamily: {
1666
+ name: 'Nitro Family',
1667
+ options: {
1668
+ port_query: 25601,
1669
+ protocol: 'gamespy1'
1670
+ },
1671
+ release_year: 2004
1672
+ },
1673
+ tonolf: {
1674
+ name: 'The Operative: No One Lives Forever',
1675
+ options: {
1676
+ port_query: 27888,
1677
+ protocol: 'gamespy1'
1678
+ },
1679
+ release_year: 2000
1680
+ },
1681
+ nolf2asihw: {
1682
+ name: "No One Lives Forever 2: A Spy in H.A.R.M.'s Way",
1683
+ options: {
1684
+ port_query: 27890,
1685
+ protocol: 'gamespy1'
1686
+ },
1687
+ release_year: 2002
1688
+ },
1689
+ nucleardawn: {
1690
+ name: 'Nuclear Dawn',
1691
+ options: {
1692
+ port: 27015,
1693
+ protocol: 'valve'
1694
+ },
1695
+ release_year: 2011
1696
+ },
1697
+ ohd: {
1698
+ name: 'Operation: Harsh Doorstop',
1699
+ options: {
1700
+ port: 7777,
1701
+ port_query: 27005,
1702
+ protocol: 'valve'
1703
+ },
1704
+ release_year: 2023
1705
+ },
1706
+ onset: {
1707
+ name: 'Onset',
1708
+ options: {
1709
+ port: 7777,
1710
+ port_query_offset: -1,
1711
+ protocol: 'valve'
1712
+ },
1713
+ release_year: 2019
1714
+ },
1715
+ openarena: {
1716
+ name: 'OpenArena',
1717
+ options: {
1718
+ port_query: 27960,
1719
+ protocol: 'quake3'
1720
+ },
1721
+ release_year: 2005
1722
+ },
1723
+ openttd: {
1724
+ name: 'OpenTTD',
1725
+ options: {
1726
+ port: 3979,
1727
+ protocol: 'openttd'
1728
+ },
1729
+ release_year: 2004
1730
+ },
1731
+ painkiller: {
1732
+ name: 'Painkiller',
1733
+ options: {
1734
+ port: 3455,
1735
+ port_query_offset: 123,
1736
+ protocol: 'ase'
1737
+ },
1738
+ release_year: 2004
1739
+ },
1740
+ pvak2: {
1741
+ name: 'Pirates, Vikings, and Knights II',
1742
+ options: {
1743
+ port: 27015,
1744
+ protocol: 'valve'
1745
+ },
1746
+ release_year: 2007
1747
+ },
1748
+ pixark: {
1749
+ name: 'PixARK',
1750
+ options: {
1751
+ port: 7777,
1752
+ port_query: 27015,
1753
+ protocol: 'valve'
1754
+ },
1755
+ release_year: 2018
1756
+ },
1757
+ postscriptum: {
1758
+ name: 'Post Scriptum',
1759
+ options: {
1760
+ port: 10037,
1761
+ protocol: 'valve'
1762
+ },
1763
+ release_year: 2018
1764
+ },
1765
+ postal2: {
1766
+ name: 'Postal 2',
1767
+ options: {
1768
+ port: 7777,
1769
+ port_query_offset: 1,
1770
+ protocol: 'gamespy1'
1771
+ },
1772
+ release_year: 2003
1773
+ },
1774
+ prey: {
1775
+ name: 'Prey',
1776
+ options: {
1777
+ port: 27719,
1778
+ protocol: 'doom3'
1779
+ },
1780
+ release_year: 2017
1781
+ },
1782
+ pce: {
1783
+ name: 'Primal Carnage: Extinction',
1784
+ options: {
1785
+ port: 7777,
1786
+ port_query: 27015,
1787
+ protocol: 'valve'
1788
+ },
1789
+ release_year: 2015
1790
+ },
1791
+ projectcars: {
1792
+ name: 'Project Cars',
1793
+ options: {
1794
+ port: 27015,
1795
+ query_port: 1,
1796
+ protocol: 'valve'
1797
+ },
1798
+ release_year: 2015
1799
+ },
1800
+ projectcars2: {
1801
+ name: 'Project Cars 2',
1802
+ options: {
1803
+ port: 27015,
1804
+ query_port: 1,
1805
+ protocol: 'valve'
1806
+ },
1807
+ release_year: 2017
1808
+ },
1809
+ prb2: {
1810
+ name: 'Project Reality: Battlefield 2',
1811
+ options: {
1812
+ port: 16567,
1813
+ port_query: 29900,
1814
+ protocol: 'gamespy3'
1815
+ },
1816
+ release_year: 2005
1817
+ },
1818
+ projectzomboid: {
1819
+ name: 'Project Zomboid',
1820
+ options: {
1821
+ port: 16261,
1822
+ protocol: 'valve'
1823
+ },
1824
+ release_year: 2013
1825
+ },
1826
+ quake: {
1827
+ name: 'Quake',
1828
+ options: {
1829
+ port: 27500,
1830
+ protocol: 'quake1'
1831
+ },
1832
+ release_year: 1996
1833
+ },
1834
+ quake2: {
1835
+ name: 'Quake 2',
1836
+ options: {
1837
+ port: 27910,
1838
+ protocol: 'quake2'
1839
+ },
1840
+ release_year: 1997
1841
+ },
1842
+ q3a: {
1843
+ name: 'Quake 3: Arena',
1844
+ options: {
1845
+ port: 27960,
1846
+ protocol: 'quake3'
1847
+ },
1848
+ release_year: 1999
1849
+ },
1850
+ quake4: {
1851
+ name: 'Quake 4',
1852
+ options: {
1853
+ port: 28004,
1854
+ protocol: 'doom3'
1855
+ },
1856
+ release_year: 2005
1857
+ },
1858
+ quakelive: {
1859
+ name: 'Quake Live',
1860
+ options: {
1861
+ port: 27960,
1862
+ protocol: 'valve'
1863
+ },
1864
+ release_year: 2010
1865
+ },
1866
+ rdkf: {
1867
+ name: 'Rag Doll Kung Fu',
1868
+ options: {
1869
+ port: 27015,
1870
+ protocol: 'valve'
1871
+ },
1872
+ release_year: 2005
1873
+ },
1874
+ rainbowsix: {
1875
+ name: 'Rainbow Six',
1876
+ options: {
1877
+ port_query: 2348,
1878
+ protocol: 'gamespy1'
1879
+ },
1880
+ release_year: 1998
1881
+ },
1882
+ rs2rs: {
1883
+ name: 'Rainbow Six 2: Rogue Spear',
1884
+ options: {
1885
+ port_query: 2346,
1886
+ protocol: 'gamespy1'
1887
+ },
1888
+ release_year: 1999
1889
+ },
1890
+ rs3rs: {
1891
+ name: 'Rainbow Six 3: Raven Shield',
1892
+ options: {
1893
+ port: 7777,
1894
+ port_query_offset: 1000,
1895
+ protocol: 'gamespy1'
1896
+ },
1897
+ release_year: 2003
1898
+ },
1899
+ rallisportchallenge: {
1900
+ name: 'RalliSport Challenge',
1901
+ options: {
1902
+ port_query: 17500,
1903
+ protocol: 'gamespy1'
1904
+ },
1905
+ release_year: 2002
1906
+ },
1907
+ rallymasters: {
1908
+ name: 'Rally Masters',
1909
+ options: {
1910
+ port_query: 16666,
1911
+ protocol: 'gamespy1'
1912
+ },
1913
+ release_year: 2000
1914
+ },
1915
+ redorchestra: {
1916
+ name: 'Red Orchestra',
1917
+ options: {
1918
+ port: 7758,
1919
+ port_query_offset: 1,
1920
+ protocol: 'unreal2'
1921
+ },
1922
+ release_year: 2018
1923
+ },
1924
+ roo4145: {
1925
+ name: 'Red Orchestra: Ostfront 41-45',
1926
+ options: {
1927
+ port: 7757,
1928
+ port_query_offset: 10,
1929
+ protocol: 'gamespy1'
1930
+ },
1931
+ release_year: 2006
1932
+ },
1933
+ redorchestra2: {
1934
+ name: 'Red Orchestra 2',
1935
+ options: {
1936
+ port: 7777,
1937
+ port_query: 27015,
1938
+ protocol: 'valve'
1939
+ },
1940
+ release_year: 2011
1941
+ },
1942
+ redline: {
1943
+ name: 'Redline',
1944
+ options: {
1945
+ port_query: 25252,
1946
+ protocol: 'gamespy1'
1947
+ },
1948
+ release_year: 2010
1949
+ },
1950
+ rdr2r: {
1951
+ name: 'Red Dead Redemption 2 - RedM',
1952
+ options: {
1953
+ port: 30120,
1954
+ protocol: 'fivem'
1955
+ },
1956
+ release_year: 2018
1957
+ },
1958
+ rtcw: {
1959
+ name: 'Return to Castle Wolfenstein',
1960
+ options: {
1961
+ port_query: 27960,
1962
+ protocol: 'quake3'
1963
+ },
1964
+ release_year: 2001
1965
+ },
1966
+ rfactor: {
1967
+ name: 'rFactor',
1968
+ options: {
1969
+ port: 34397,
1970
+ port_query_offset: -100,
1971
+ protocol: 'rfactor'
1972
+ },
1973
+ release_year: 2018
1974
+ },
1975
+ ricochet: {
1976
+ name: 'Ricochet',
1977
+ options: {
1978
+ port: 27015,
1979
+ protocol: 'valve'
1980
+ },
1981
+ release_year: 2005
1982
+ },
1983
+ ron: {
1984
+ name: 'Rise of Nations',
1985
+ options: {
1986
+ port_query: 6501,
1987
+ protocol: 'gamespy1'
1988
+ },
1989
+ release_year: 2003
1990
+ },
1991
+ risingworld: {
1992
+ name: 'Rising World',
1993
+ options: {
1994
+ port: 4255,
1995
+ port_query_offset: -1,
1996
+ protocol: 'valve'
1997
+ },
1998
+ release_year: 2014
1999
+ },
2000
+ ror2: {
2001
+ name: 'Risk of Rain 2',
2002
+ options: {
2003
+ port: 27015,
2004
+ port_query_offset: 1,
2005
+ protocol: 'valve'
2006
+ },
2007
+ release_year: 2020
2008
+ },
2009
+ rs2v: {
2010
+ name: 'Rising Storm 2: Vietnam',
2011
+ options: {
2012
+ port: 27015,
2013
+ protocol: 'valve'
2014
+ },
2015
+ release_year: 2017
2016
+ },
2017
+ rune: {
2018
+ name: 'Rune',
2019
+ options: {
2020
+ port: 7777,
2021
+ port_query_offset: 1,
2022
+ protocol: 'gamespy1'
2023
+ },
2024
+ release_year: 2000
2025
+ },
2026
+ rust: {
2027
+ name: 'Rust',
2028
+ options: {
2029
+ port: 28015,
2030
+ protocol: 'valve'
2031
+ },
2032
+ release_year: 2013
2033
+ },
2034
+ gtasam: {
2035
+ name: 'Grand Theft Auto: San Andreas Multiplayer',
2036
+ options: {
2037
+ port: 7777,
2038
+ protocol: 'samp'
2039
+ },
2040
+ release_year: 2006
2041
+ },
2042
+ gtasao: {
2043
+ name: 'Grand Theft Auto: San Andreas OpenMP',
2044
+ options: {
2045
+ port: 7777,
2046
+ protocol: 'samp'
2047
+ },
2048
+ release_year: 2019
2049
+ },
2050
+ s2ats: {
2051
+ name: 'Savage 2: A Tortured Soul',
2052
+ options: {
2053
+ port_query: 11235,
2054
+ protocol: 'savage2'
2055
+ },
2056
+ release_year: 2008
2057
+ },
2058
+ sdtd: {
2059
+ name: '7 Days to Die',
2060
+ options: {
2061
+ port: 26900,
2062
+ port_query_offset: 1,
2063
+ protocol: 'valve'
2064
+ },
2065
+ release_year: 2013
2066
+ },
2067
+ spaceengineers: {
2068
+ name: 'Space Engineers',
2069
+ options: {
2070
+ port: 27015,
2071
+ protocol: 'valve'
2072
+ },
2073
+ release_year: 2019
2074
+ },
2075
+ serioussam: {
2076
+ name: 'Serious Sam',
2077
+ options: {
2078
+ port: 25600,
2079
+ port_query_offset: 1,
2080
+ protocol: 'gamespy1'
2081
+ },
2082
+ release_year: 2001
2083
+ },
2084
+ serioussam2: {
2085
+ name: 'Serious Sam 2',
2086
+ options: {
2087
+ port: 25600,
2088
+ protocol: 'gamespy2'
2089
+ },
2090
+ release_year: 2005
2091
+ },
2092
+ shatteredhorizon: {
2093
+ name: 'Shattered Horizon',
2094
+ options: {
2095
+ port: 27015,
2096
+ protocol: 'valve'
2097
+ },
2098
+ release_year: 2009
2099
+ },
2100
+ theship: {
2101
+ name: 'The Ship',
2102
+ options: {
2103
+ port: 27015,
2104
+ protocol: 'valve'
2105
+ },
2106
+ release_year: 2006
2107
+ },
2108
+ shogo: {
2109
+ name: 'Shogo',
2110
+ options: {
2111
+ port_query: 27888,
2112
+ protocol: 'gamespy1'
2113
+ },
2114
+ release_year: 1998
2115
+ },
2116
+ shootmania: {
2117
+ name: 'Shootmania',
2118
+ options: {
2119
+ port: 2350,
2120
+ port_query: 5000,
2121
+ protocol: 'nadeo'
2122
+ },
2123
+ extra: {
2124
+ doc_notes: 'nadeo-shootmania--trackmania--etc'
2125
+ },
2126
+ release_year: 2013
2127
+ },
2128
+ sin: {
2129
+ name: 'SiN',
2130
+ options: {
2131
+ port_query: 22450,
2132
+ protocol: 'gamespy1'
2133
+ },
2134
+ release_year: 1998
2135
+ },
2136
+ sinepisodes: {
2137
+ name: 'SiN Episodes',
2138
+ options: {
2139
+ port: 27015,
2140
+ protocol: 'valve'
2141
+ },
2142
+ release_year: 2006
2143
+ },
2144
+ soldat: {
2145
+ name: 'Soldat',
2146
+ options: {
2147
+ port: 13073,
2148
+ port_query_offset: 123,
2149
+ protocol: 'ase'
2150
+ },
2151
+ release_year: 2002
2152
+ },
2153
+ sof: {
2154
+ name: 'Soldier of Fortune',
2155
+ options: {
2156
+ port_query: 28910,
2157
+ protocol: 'quake1'
2158
+ },
2159
+ release_year: 2000
2160
+ },
2161
+ sof2: {
2162
+ name: 'Soldier of Fortune 2',
2163
+ options: {
2164
+ port_query: 20100,
2165
+ protocol: 'quake3'
2166
+ },
2167
+ release_year: 2002
2168
+ },
2169
+ sotf: {
2170
+ name: 'Sons Of The Forest',
2171
+ options: {
2172
+ port: 8766,
2173
+ port_query: 27016,
2174
+ protocol: 'valve'
2175
+ },
2176
+ release_year: 2023
2177
+ },
2178
+ stalker: {
2179
+ name: 'S.T.A.L.K.E.R.',
2180
+ options: {
2181
+ port: 5445,
2182
+ port_query_offset: 2,
2183
+ protocol: 'gamespy3'
2184
+ },
2185
+ release_year: 2007
2186
+ },
2187
+ stn: {
2188
+ name: 'Survive the Nights',
2189
+ options: {
2190
+ port: 7950,
2191
+ port_query_offset: 1,
2192
+ protocol: 'valve'
2193
+ },
2194
+ release_year: 2017
2195
+ },
2196
+ stbc: {
2197
+ name: 'Star Trek: Bridge Commander',
2198
+ options: {
2199
+ port_query: 22101,
2200
+ protocol: 'gamespy1'
2201
+ },
2202
+ release_year: 2002
2203
+ },
2204
+ stvef: {
2205
+ name: 'Star Trek: Voyager - Elite Force',
2206
+ options: {
2207
+ port_query: 27960,
2208
+ protocol: 'quake3'
2209
+ },
2210
+ release_year: 2000
2211
+ },
2212
+ stvef2: {
2213
+ name: 'Star Trek: Voyager - Elite Force 2',
2214
+ options: {
2215
+ port_query: 29253,
2216
+ protocol: 'quake3'
2217
+ },
2218
+ release_year: 2003
2219
+ },
2220
+ squad: {
2221
+ name: 'Squad',
2222
+ options: {
2223
+ port: 7787,
2224
+ port_query: 27165,
2225
+ protocol: 'valve'
2226
+ },
2227
+ release_year: 2020
2228
+ },
2229
+ swb: {
2230
+ name: 'Star Wars: Battlefront',
2231
+ options: {
2232
+ port_query: 3658,
2233
+ protocol: 'gamespy2'
2234
+ },
2235
+ release_year: 2004
2236
+ },
2237
+ swb2: {
2238
+ name: 'Star Wars: Battlefront 2',
2239
+ options: {
2240
+ port_query: 3658,
2241
+ protocol: 'gamespy2'
2242
+ },
2243
+ release_year: 2005
2244
+ },
2245
+ swjkja: {
2246
+ name: 'Star Wars Jedi Knight: Jedi Academy',
2247
+ options: {
2248
+ port_query: 29070,
2249
+ protocol: 'quake3'
2250
+ },
2251
+ release_year: 2003
2252
+ },
2253
+ swjk2jo: {
2254
+ name: 'Star Wars Jedi Knight II: Jedi Outcast',
2255
+ options: {
2256
+ port_query: 28070,
2257
+ protocol: 'quake3'
2258
+ },
2259
+ release_year: 2002
2260
+ },
2261
+ swrc: {
2262
+ name: 'Star Wars: Republic Commando',
2263
+ options: {
2264
+ port: 7777,
2265
+ port_query: 11138,
2266
+ protocol: 'gamespy2'
2267
+ },
2268
+ release_year: 2005
2269
+ },
2270
+ starbound: {
2271
+ name: 'Starbound',
2272
+ options: {
2273
+ port: 21025,
2274
+ protocol: 'valve'
2275
+ },
2276
+ release_year: 2016
2277
+ },
2278
+ starmade: {
2279
+ name: 'StarMade',
2280
+ options: {
2281
+ port: 4242,
2282
+ protocol: 'starmade'
2283
+ },
2284
+ release_year: 2012
2285
+ },
2286
+ starsiege: {
2287
+ name: 'Starsiege',
2288
+ options: {
2289
+ port: 29001,
2290
+ protocol: 'starsiege'
2291
+ },
2292
+ release_year: 2009
2293
+ },
2294
+ suicidesurvival: {
2295
+ name: 'Suicide Survival',
2296
+ options: {
2297
+ port: 27015,
2298
+ protocol: 'valve'
2299
+ },
2300
+ release_year: 2008
2301
+ },
2302
+ swat4: {
2303
+ name: 'SWAT 4',
2304
+ options: {
2305
+ port: 10480,
2306
+ port_query_offset: 2,
2307
+ protocol: 'gamespy2'
2308
+ },
2309
+ release_year: 2005
2310
+ },
2311
+ svencoop: {
2312
+ name: 'Sven Coop',
2313
+ options: {
2314
+ port: 27015,
2315
+ protocol: 'valve'
2316
+ },
2317
+ release_year: 1999
2318
+ },
2319
+ synergy: {
2320
+ name: 'Synergy',
2321
+ options: {
2322
+ port: 27015,
2323
+ protocol: 'valve'
2324
+ },
2325
+ release_year: 2005
2326
+ },
2327
+ tacticalops: {
2328
+ name: 'Tactical Ops',
2329
+ options: {
2330
+ port: 7777,
2331
+ port_query_offset: 1,
2332
+ protocol: 'gamespy1'
2333
+ },
2334
+ release_year: 1999
2335
+ },
2336
+ toh: {
2337
+ name: 'Take On Helicopters',
2338
+ options: {
2339
+ port: 2302,
2340
+ port_query_offset: 1,
2341
+ protocol: 'gamespy1'
2342
+ },
2343
+ release_year: 2011
2344
+ },
2345
+ teamfactor: {
2346
+ name: 'Team Factor',
2347
+ options: {
2348
+ port_query: 57778,
2349
+ protocol: 'gamespy1'
2350
+ },
2351
+ release_year: 2002
2352
+ },
2353
+ tfc: {
2354
+ name: 'Team Fortress Classic',
2355
+ options: {
2356
+ port: 27015,
2357
+ protocol: 'valve'
2358
+ },
2359
+ release_year: 1999
2360
+ },
2361
+ teamfortress2: {
2362
+ name: 'Team Fortress 2',
2363
+ options: {
2364
+ port: 27015,
2365
+ protocol: 'valve'
2366
+ },
2367
+ release_year: 2007
2368
+ },
2369
+ teamspeak2: {
2370
+ name: 'Teamspeak 2',
2371
+ options: {
2372
+ port: 8767,
2373
+ protocol: 'teamspeak2'
2374
+ },
2375
+ release_year: 2001
2376
+ },
2377
+ teamspeak3: {
2378
+ name: 'Teamspeak 3',
2379
+ options: {
2380
+ port: 9987,
2381
+ protocol: 'teamspeak3'
2382
+ },
2383
+ extra: {
2384
+ doc_notes: 'teamspeak3'
2385
+ },
2386
+ release_year: 2011
2387
+ },
2388
+ terminus: {
2389
+ name: 'Terminus',
2390
+ options: {
2391
+ port_query: 12286,
2392
+ protocol: 'gamespy1'
2393
+ },
2394
+ release_year: 2000
2395
+ },
2396
+ terrariatshosck: {
2397
+ name: 'Terraria - TShock',
2398
+ options: {
2399
+ port: 7777,
2400
+ port_query_offset: 101,
2401
+ protocol: 'terraria'
2402
+ },
2403
+ extra: {
2404
+ doc_notes: 'terraria'
2405
+ },
2406
+ release_year: 2011
2407
+ },
2408
+ theforest: {
2409
+ name: 'The Forest',
2410
+ options: {
2411
+ port: 27015,
2412
+ port_query_offset: 1,
2413
+ protocol: 'valve'
2414
+ },
2415
+ release_year: 2014
2416
+ },
2417
+ thefront: {
2418
+ name: 'The Front',
2419
+ options: {
2420
+ port_query: 27015,
2421
+ protocol: 'valve'
2422
+ },
2423
+ release_year: 2023
2424
+ },
2425
+ thps3: {
2426
+ name: "Tony Hawk's Pro Skater 3",
2427
+ options: {
2428
+ port_query: 6500,
2429
+ protocol: 'gamespy1'
2430
+ },
2431
+ release_year: 2001
2432
+ },
2433
+ thps4: {
2434
+ name: "Tony Hawk's Pro Skater 4",
2435
+ options: {
2436
+ port_query: 6500,
2437
+ protocol: 'gamespy1'
2438
+ },
2439
+ release_year: 2002
2440
+ },
2441
+ thu2: {
2442
+ name: "Tony Hawk's Underground 2",
2443
+ options: {
2444
+ port_query: 5153,
2445
+ protocol: 'gamespy1'
2446
+ },
2447
+ release_year: 2004
2448
+ },
2449
+ towerunite: {
2450
+ name: 'Tower Unite',
2451
+ options: {
2452
+ port: 27015,
2453
+ protocol: 'valve'
2454
+ },
2455
+ release_year: 2016
2456
+ },
2457
+ trackmania2: {
2458
+ name: 'Trackmania 2',
2459
+ options: {
2460
+ port: 2350,
2461
+ port_query: 5000,
2462
+ protocol: 'nadeo'
2463
+ },
2464
+ extra: {
2465
+ doc_notes: 'nadeo-shootmania--trackmania--etc'
2466
+ },
2467
+ release_year: 2011
2468
+ },
2469
+ trackmaniaforever: {
2470
+ name: 'Trackmania Forever',
2471
+ options: {
2472
+ port: 2350,
2473
+ port_query: 5000,
2474
+ protocol: 'nadeo'
2475
+ },
2476
+ extra: {
2477
+ doc_notes: 'nadeo-shootmania--trackmania--etc'
2478
+ },
2479
+ release_year: 2008
2480
+ },
2481
+ tremulous: {
2482
+ name: 'Tremulous',
2483
+ options: {
2484
+ port_query: 30720,
2485
+ protocol: 'quake3'
2486
+ },
2487
+ release_year: 2006
2488
+ },
2489
+ t1s: {
2490
+ name: 'Tribes 1: Starsiege',
2491
+ options: {
2492
+ port: 28001,
2493
+ protocol: 'tribes1'
2494
+ },
2495
+ release_year: 1998
2496
+ },
2497
+ tribesvengeance: {
2498
+ name: 'Tribes: Vengeance',
2499
+ options: {
2500
+ port: 7777,
2501
+ port_query_offset: 1,
2502
+ protocol: 'gamespy2'
2503
+ },
2504
+ release_year: 2004
2505
+ },
2506
+ tron20: {
2507
+ name: 'Tron 2.0',
2508
+ options: {
2509
+ port_query: 27888,
2510
+ protocol: 'gamespy2'
2511
+ },
2512
+ release_year: 2003
2513
+ },
2514
+ thespecialists: {
2515
+ name: 'The Specialists',
2516
+ options: {
2517
+ port: 27015,
2518
+ protocol: 'valve'
2519
+ },
2520
+ release_year: 2002
2521
+ },
2522
+ turok2: {
2523
+ name: 'Turok 2',
2524
+ options: {
2525
+ port_query: 12880,
2526
+ protocol: 'gamespy1'
2527
+ },
2528
+ release_year: 1998
2529
+ },
2530
+ universalcombat: {
2531
+ name: 'Universal Combat',
2532
+ options: {
2533
+ port: 1135,
2534
+ port_query_offset: 123,
2535
+ protocol: 'ase'
2536
+ },
2537
+ release_year: 2004
2538
+ },
2539
+ unreal: {
2540
+ name: 'Unreal',
2541
+ options: {
2542
+ port: 7777,
2543
+ port_query_offset: 1,
2544
+ protocol: 'gamespy1'
2545
+ },
2546
+ release_year: 1998
2547
+ },
2548
+ unturned: {
2549
+ name: 'unturned',
2550
+ options: {
2551
+ port: 27015,
2552
+ port_query_offset: 1,
2553
+ protocol: 'valve'
2554
+ },
2555
+ release_year: 2014
2556
+ },
2557
+ unrealtournament: {
2558
+ name: 'Unreal Tournament',
2559
+ options: {
2560
+ port: 7777,
2561
+ port_query_offset: 1,
2562
+ protocol: 'gamespy1'
2563
+ },
2564
+ release_year: 1993
2565
+ },
2566
+ unrealtournament2003: {
2567
+ name: 'Unreal Tournament 2003',
2568
+ options: {
2569
+ port: 7757,
2570
+ port_query_offset: 1,
2571
+ protocol: 'unreal2'
2572
+ },
2573
+ release_year: 2003
2574
+ },
2575
+ unrealtournament2004: {
2576
+ name: 'Unreal Tournament 2004',
2577
+ options: {
2578
+ port: 7777,
2579
+ port_query_offset: 1,
2580
+ protocol: 'unreal2'
2581
+ },
2582
+ release_year: 2004
2583
+ },
2584
+ unrealtournament3: {
2585
+ name: 'Unreal Tournament 3',
2586
+ options: {
2587
+ port: 7777,
2588
+ port_query_offset: -1277,
2589
+ protocol: 'ut3'
2590
+ },
2591
+ release_year: 2007
2592
+ },
2593
+ urbanterror: {
2594
+ name: 'Urban Terror',
2595
+ options: {
2596
+ port_query: 27960,
2597
+ protocol: 'quake3'
2598
+ },
2599
+ release_year: 2000
2600
+ },
2601
+ v8sc: {
2602
+ name: 'V8 Supercar Challenge',
2603
+ options: {
2604
+ port_query: 16700,
2605
+ protocol: 'gamespy1'
2606
+ },
2607
+ release_year: 2002
2608
+ },
2609
+ valheim: {
2610
+ name: 'Valheim',
2611
+ options: {
2612
+ port: 2456,
2613
+ port_query_offset: 1,
2614
+ protocol: 'valve'
2615
+ },
2616
+ extra: {
2617
+ doc_notes: 'valheim'
2618
+ },
2619
+ release_year: 2021
2620
+ },
2621
+ vcm: {
2622
+ name: 'Vice City Multiplayer',
2623
+ options: {
2624
+ port: 8192,
2625
+ protocol: 'vcmp'
2626
+ },
2627
+ release_year: 2015
2628
+ },
2629
+ ventrilo: {
2630
+ name: 'Ventrilo',
2631
+ options: {
2632
+ port: 3784,
2633
+ protocol: 'ventrilo'
2634
+ },
2635
+ release_year: 2002
2636
+ },
2637
+ vietcong: {
2638
+ name: 'Vietcong',
2639
+ options: {
2640
+ port: 5425,
2641
+ port_query: 15425,
2642
+ protocol: 'gamespy1'
2643
+ },
2644
+ release_year: 2003
2645
+ },
2646
+ vietcong2: {
2647
+ name: 'Vietcong 2',
2648
+ options: {
2649
+ port: 5001,
2650
+ port_query: 19967,
2651
+ protocol: 'gamespy2'
2652
+ },
2653
+ release_year: 2005
2654
+ },
2655
+ vrising: {
2656
+ name: 'V Rising',
2657
+ options: {
2658
+ port: 27015,
2659
+ port_query_offset: 1,
2660
+ protocol: 'valve'
2661
+ },
2662
+ release_year: 2022
2663
+ },
2664
+ vampireslayer: {
2665
+ name: 'Vampire Slayer',
2666
+ options: {
2667
+ port: 27015,
2668
+ protocol: 'valve'
2669
+ },
2670
+ release_year: 2000
2671
+ },
2672
+ warsow: {
2673
+ name: 'Warsow',
2674
+ options: {
2675
+ port: 44400,
2676
+ protocol: 'warsow'
2677
+ },
2678
+ release_year: 2012
2679
+ },
2680
+ warfork: {
2681
+ name: 'Warfork',
2682
+ options: {
2683
+ port_query: 44400,
2684
+ protocol: 'warsow'
2685
+ },
2686
+ release_year: 2019
2687
+ },
2688
+ wot: {
2689
+ name: 'Wheel of Time',
2690
+ options: {
2691
+ port: 7777,
2692
+ port_query_offset: 1,
2693
+ protocol: 'gamespy1'
2694
+ },
2695
+ release_year: 1999
2696
+ },
2697
+ wolfenstein: {
2698
+ name: 'Wolfenstein',
2699
+ options: {
2700
+ port: 27666,
2701
+ protocol: 'doom3'
2702
+ },
2703
+ release_year: 2009
2704
+ },
2705
+ wet: {
2706
+ name: 'Wolfenstein: Enemy Territory',
2707
+ options: {
2708
+ port_query: 27960,
2709
+ protocol: 'quake3'
2710
+ },
2711
+ release_year: 2003
2712
+ },
2713
+ wurmunlimited: {
2714
+ name: 'Wurm Unlimited',
2715
+ options: {
2716
+ port: 3724,
2717
+ query_port: 27016,
2718
+ protocol: 'valve'
2719
+ },
2720
+ release_year: 2006
2721
+ },
2722
+ xpandrally: {
2723
+ name: 'Xpand Rally',
2724
+ options: {
2725
+ port: 28015,
2726
+ port_query_offset: 123,
2727
+ protocol: 'ase'
2728
+ },
2729
+ release_year: 2004
2730
+ },
2731
+ zombiemaster: {
2732
+ name: 'Zombie Master',
2733
+ options: {
2734
+ port: 27015,
2735
+ protocol: 'valve'
2736
+ },
2737
+ release_year: 2007
2738
+ },
2739
+ zps: {
2740
+ name: 'Zombie Panic: Source',
2741
+ options: {
2742
+ port: 27015,
2743
+ protocol: 'valve'
2744
+ },
2745
+ release_year: 2007
2746
+ }
2747
+ }