-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFluffyChatBot.py
More file actions
721 lines (574 loc) · 142 KB
/
FluffyChatBot.py
File metadata and controls
721 lines (574 loc) · 142 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
import socket
import string
import time
import os
import configparser
import random
import datetime
import difflib
import html
import traceback
import sys
import xml.etree.ElementTree as ET
#necessary for full bot
import threading
import cv2
import numpy as np
import pyautogui
import pandas as pd
import requests
from ReplayAnalysis import analyse_replay
#Overlay
import SCO
from SCOFunctions import check_replays, server_thread, keyboard_thread_SHOW, keyboard_thread_HIDE, OverlayMessages, lock
### Set up is loaded from a config.ini file
config = configparser.ConfigParser()
config.read('config.ini')
CHANNEL = config['CONFIG']['CHANNEL'] #channel name where bot operates (all lowercase)
NICK = config['CONFIG']['NICK'] #bot name (all lowercase)
PASS = config['CONFIG']['PASS'] #twitch API you get for your bot: "oauth:r7x5n................."
HOST = config['CONFIG']['HOST'] #for twitch: "irc.twitch.tv"
ACCOUNTDIR = config['CONFIG']['ACCOUNTDIR']
PORT = int(config['CONFIG']['PORT']) #port, for twitch: "6667"
SHOWOVERLAY = config['CONFIG']['SHOWOVERLAY']
if SHOWOVERLAY.lower() in ['false','0','no']:
SHOWOVERLAY = False
else:
SHOWOVERLAY = True
PLAYER_NAMES = []
for player in config['CONFIG']['PLAYERNAME'].split(','):
PLAYER_NAMES.append(player)
try:
RESIZECOEF = float(config['CONFIG']['RESIZECOEF'])
except:
RESIZECOEF = 1
BannedMutators = []
for mutator in config['CONFIG']['BANNEDMUTATORS'].split(','):
mut = mutator.lower().rstrip().lstrip()
if mut != "":
BannedMutators.append(mut)
BannedUnits = []
for unit in config['CONFIG']['BANNEDUNITS'].split(','):
un = unit.lower().rstrip().lstrip()
if un != "":
BannedUnits.append(un)
OtherCommands = []
for command in config['CONFIG']['OTHERCOMMANDS'].split(','):
com = command.lower().rstrip().lstrip()
if com != "":
OtherCommands.append(com)
OtherCommands_full = []
for command in config['CONFIG']['OTHERCOMMANDS_FULL'].split(','):
com = command.lower().rstrip().lstrip()
if com != "":
OtherCommands_full.append(com)
#Get available bankfiles
BankDict = dict()
for bank in config['BANKS']:
BankDict[bank] = config['BANKS'][bank]
BANKFILE = BankDict.get('default',list(BankDict.values())[0]) #default or the first one
### Init some variables
findingActivated = True
postCurrent = False
mutatorsFound = False
CommandNumber = random.randint(1,1000000) #just add this number to each command, so the same commands don't have the same name
MutatorSet = {'walking infested', 'outbreak', 'darkness', 'time warp', 'speed freaks', 'mag-nificent', 'mineral shields', 'barrier', 'avenger', 'evasive maneuvers', 'scorched earth', 'lava burst', 'self destruction', 'aggressive deployment', 'alien incubation', 'laser drill', 'long range', 'shortsighted', 'mutually assured destruction', 'we move unseen', 'slim pickings', 'concussive attacks', 'just die!', 'temporal field', 'void rifts', 'twister', 'orbital strike', 'purifier beam', 'blizzard', 'fear', 'photon overload', 'minesweeper', 'void reanimators', 'going nuclear', 'life leech', 'power overwhelming', 'micro transactions', 'missile command', 'vertigo', 'polarity', 'transmutation', 'afraid of the dark', 'trick or treat', 'turkey shoot', 'sharing is caring', 'diffusion', 'black death', 'eminent domain', 'gift exchange', 'naughty list', 'extreme caution', 'heroes from the storm', 'inspiration', 'hardened will', 'fireworks', 'lucky envelopes', 'double-edged', 'fatal attraction', 'propagators', 'moment of silence', 'kill bots', 'boom bots', 'the mist', 'the usual suspects', 'supreme commander', 'shapeshifters', 'rip field generators', 'repulsive field', 'old times', 'nuclear mines', 'necronomicon', 'mothership', 'matryoshka', 'level playing field', 'infestation station', 'i collect, i change', 'great wall', 'endurance', 'dark mirror', 'bloodlust'}
main_unit_ids = {'artifactpiece4', 'creeptumorzagara', 'ravager', 'hydralisklurkerburrowed', 'novacolonisthut', 'pickupenginecharge', 'spawningpool', 'titanmechassault', 'diamondback', 'swarmling', 'murvarcreep', 'infestorterran', 'stukovaleksander', 'hhbattlecruiser', 'moebiuslabconsolesdestructibleright', 'destructiblekorhalpodium', 'vespenegeyser', 'oracle', 'joriumstockpile', 'redstonelavacritter', 'narudepilogue', 'broodlordstetmann', 'dehakaravasaurburrowed', 'hhbomberplatform', 'soamothership', 'ghostacademymengsk', 'devourertissuedoodad', 'archive', 'jarbaninfestiblecolonisthut', 'slivancreep', 'lyote', 'moebiuslabdestructibledoor', 'zealotpurifierrevivecorpse', 'hhhelliontank', 'spectrenuke', 'forge', 'sentrypurifier', 'sicivilianstructure', 'explodinggasbarrellarge', 'infestedterrancampaign', 'hatcherystetmann', 'ashworm', 'karaxchampion', 'novaterrazinecanister', 'cyclone', 'mutatorenvelopemineralpickup', 'dehakaairtownhalluprooted', 'umojanlabgenerator', 'colonist', 'colonistshipthanson02a', 'pickupmines', 'siarmory', 'sicocooninfestedliberator', 'naturalmineralsred', 'shadowterror', 'chrysalisegg', 'protossradiotower', 'colonistship', 'twilightcouncil', 'spacearmoredgenerator', 'dehakanydusdestroyertimednofood', 'voidmpimmortalrevivecorpse', 'hotshunter', 'collapsiblerocktower', 'sicommandcenterflying', 'guardian', 'cybrosescortdownloader', 'tychuswarhound', 'destructiblegaragelarge', 'artifact', 'korhalcannon', 'pickuphealth50', 'defensivewall90outer', 'assimilatorrich', 'immortalshakuras', 'destructibledebrisrampdiagonalhugeblur', 'stalkerpurifier', 'egg', 'hotsraptor', 'roachstetmannburrowed', 'zealotshakuras', 'vorazunshadowguard', 'zeratulartifactpickup3', 'coopterrazinetank', 'flagshipinterceptor', 'dehakadakrunstructure', 'fenixcoop', 'commentatorbot1', 'hydralisklurker', 'darktemplartaldarimshadowclone', 'castanarwindowlargediagonalblurunit', 'tempest', 'banelingcocoon', 'collapsibleterrantowerdiagonal', 'tychusscvautoturret', 'tychusghostacademy', 'hotsnoxious', 'banelingstetmann', 'infestablebiodome', 'hugeswarmqueenburrowed', 'autotestattacktargetground', 'kaboomer', 'zerglingstetmannburrowed', 'kerriganinfestbroodling', 'constrictiondisabler4x4', 'destructiblecitydebris2x6vertical', 'extractorstetmann', 'ravenmengsk', 'voidtendrildeathgripcrystal', 'sicocooninfestedcivilian', 'darktemplarshuttle', 'lurkerburrowed', 'zerusalientreehover', 'pickupnovaplasmarifle', 'xelnagacrystal', 'garystetmann', 'techtreesentry', 'hybridholdingcellsmallunit', 'xelnagadestructiblerampblocker8e', 'defensivewall45', 'yeti', 'capturepoint', 'kerriganghostlab', 'kelmorianautoturret', 'guntower', 'psidecimator', 'selendis', 'sciencefacility', 'dronefull', 'sentrygununderground', 'scourgemp', 'sporecrawleruprootedstetmann', 'launchbayshakuras', 'overseerstetmanncocoon', 'feederling', 'physicsknot', 'voidshard', 'destructiblerock2x4vertical', 'voidshardac', 'nydusnetworkally', 'scrapsalvage1x1', 'zerusalientreeviper', 'solarforge', 'hhmercenaryspacestation', 'shadowscrambler', 'liberator_blackops', 'hydraliskevolvedburrowed', 'mengskstatuealone', 'creeptumorqueennocreep', 'drone', 'primalhydraliskburrowed', 'explodingbarrellarge', 'ursadakmale', 'mutatoramonnova', 'infestedfactory', 'zerusalientreewalker', 'roguepurifiersupportdroneb', 'carrionbird', 'infestablecolonisthut', 'mengsksiegetanksieged', 'mutatorcandybowl', 'pickupchronoriftchargeswarm', 'mutatoramondehakamirrorimage', 'pickupnovatechnology', 'shadowshieldgeneratorsmall', 'stukovinfestedsiegetank', 'hhmercstarportupgraded', 'broodlordstetmanncocoon', 'terrazinecanister', 'colonisthut', 'infestorburrowed', 'hhwraith', 'hybridchannel', 'mutatormurderbot', 'hotssplitterlingmediumburrowed', 'assimilator', 'hugeswarmqueen', 'hyperionadvancedpointdefensedrone', 'destructiblewallverticallf', 'roboticsbay', 'selendisinterceptor', 'mutatormissilesplitter', 'destructiblerockex1verticalhuge', 'overseerstetmannsiegemode', 'largeswarmqueenburrowed', 'colonistvehicleunit01', 'dehakamirrorimageburrowed', 'warhound', 'kerriganvoid', 'sicocooninfestedsiegetank', 'carrionbug', 'cargotruckunittrailer', 'missileturretmengsk', 'taurenspacemarine', 'dehakamutalisklevel2', 'mutatorenvelopegaspickup', 'silarva', 'colonistfemale', 'holdingpen', 'superwarpgate', 'mutatorspidermineburrowed', 'scourgenest', 'voidray', 'unbuildablerocksdestructible', 'hammersecurity', 'zealotaiur', 'destructiblewallstraighthorizontal', 'amonaethermawepilogue03', 'sjpickuphealth500', 'heronuke', 'changeling', 'mutatormineralcrystal', 'autotestattacktargetair', 'slaynmissileturretright', 'environmentalstabilizer', 'fenixclolarionbomber', 'roboticsfacilitywarp', 'artanis', 'infestedabomination', 'roachcorpser', 'pickupenergyfull', 'powertowerstetmann', 'commandcentermengskflying', 'overlordcocoon', 'specialopsdropship', 'nukepack', 'ultraliskstetmann', 'cyclonewreckage', 'nexus', 'hightemplar', 'umojanlabstasistubedestructible2', 'naturalmineralsair', 'commentatorbot4', 'raynorsraidersdropship', 'novainfestablecolonisthut', 'xelnagadestructiblerampblocker6se', 'hellion', 'dehakalocustflying', 'xelnagatower', 'purifierguardianescort', 'collapsibleterrantowerdebris', 'fenixsoa', 'xelnagavault', 'baneling', 'platformconnector', 'voidseeker', 'factorymengsk', 'shakurasvespenegeyser', 'nydusnetwork', 'pitalarak', 'pickupscrapsalvage1x1', 'infesteddominionhousing3', 'stukovinfestedterran', 'starportmengsk', 'pickupmanarecharge', 'techtreeimmortal', 'collapsiblerocktowerrampright', 'battlecruiser', 'psidisintegratorpowerlink', 'zagararevivecocoon', 'evolutionchamberstetmann', 'pickuprestorationcharge', 'infestablecolonistbiodome', 'battlecruisermengsk', 'pickuphealthfull', 'tychusghost', 'artifactpiece5', 'queencoopburrowed', 'colonistshipflying', 'sjviking', 'mutatorwidowmineburrowed', 'destructibleice6x6', 'autoturret_blackops', 'dragoon', 'sjfighter1ph', 'nyduscanalally', 'guardiancocoonmp', 'destructiblebillboardtall', 'destructibleice2x4horizontal', 'stargate', 'vespenegasdrill', 'roachcorpserburrowed', 'spinecrawlerstetmann', 'umojanlabmicrobot', 'mutatorvoidreanimator', 'artifactpiece1', 'coopcasterzeratulspecialization', 'sjpointdefensedrone', 'dehakanydusdestroyer', 'destructibleumojanlabpowercell', 'mutatormissilesplitterchild', 'blimpads', 'spawningpoolstetmann', 'banelingstetmanncocoon', 'sicommandcenter', 'destructiblerockex1horizontalhuge', 'pickupenergy50', 'bulldozer', 'ravagerburrowed', 'protossmobilesatellite', 'guardiancocoon', 'hydraliskstetmannburrowed', 'hivestetmann', 'broodmotherburrowed', 'constrictiondisabler2x2', 'destructiblewallcorner90r45ul', 'mutatorinfestedturkey', 'destructiblesandbags', 'factory', 'ursadakfemale', 'homelarge', 'sjwraith', 'coopcastermengsk', 'stukovinfestedbansheeburrowed', 'korhalpalaceturretleft', 'monlythforcefieldstatue', 'vikingmengskassault', 'arbitermp', 'scopetest', 'destructiblewall45inner', 'brutalisk', 'primaltownhalluprooted', 'kelmoriangrenadeturret', 'banelingburrowed', 'zerglingmengskburrowed', 'hhraven', 'carrionnest', 'dehakamurvar', 'valhallabasedestructibledoor', 'broodlingstetmann', 'mengskhellion', 'voidthrasher', 'prisonzealot', 'dehakarightarm', 'xelnagadestructiblerampblocker6e', 'hydraliskimpaler', 'zeratuldarktemplar', 'swarmhost', 'tychuscommandcenter', 'hotssplitterlingbigburrowed', 'ripfieldgenerator', 'omegalisk', 'voidraytaldarim', 'techtreezealot', 'defilermpburrowed', 'replicant', 'impalerburrowed', 'xelnagachargedcrystal', 'sporecrawlerstetmann', 'battlestationmineralfield750', 'zurvantentacle', 'simissileturret', 'swarmhostrooted', 'barracksreactor', 'infestedterrancampaignburrowed', 'mengskvikingfighter', 'marinewarfield', 'hotsraptorburrowed', 'palletgas', 'militarizedcolonistshipflying', 'kelmorianworker', 'physicsprimitives', 'dehaka', 'soacasterartanis', 'kerriganepilogue02', 'starport', 'destructiblespaceplatformbarrier', 'destructibleumojanlabfloodlights', 'sjspacestationmercenaryshield', 'korhalpalaceturret', 'artifactvault', 'dehakaswarmhost', 'interceptor', 'locustnestburrowed', 'roboticsfacility', 'stukovrevivecocoon', 'hydraliskden', 'xelnagatowerepiloguelarge', 'healthdispenserpickup', 'zeratulcoop', 'purifierrichmineralfield750', 'blimp', 'torrasquechrysalis', 'mutalisk', 'hhgriffon', 'civiliancarsunit', 'defensivewall45outer', 'swarmhostsplitarooted', 'liberatorag', 'destructiblewallcorner45br90t', 'sifactorytechlab', 'scoutmp', 'novadefensivedrone', 'xelnagatowerepilogue', 'amonshardb', 'collapsiblerocktowerdiagonal', 'cleaningbot', 'portjunker', 'tychusengineeringbay', 'umojanlabdebris', 'shrineguardian', 'swarmqueenmorphegg', 'templeshakuras02', 'novaterrazinetank', 'nullcircuit', 'sjgriffon', 'assimilatorpurifiergeyser', 'gascanisterlargeprotoss', 'truckflatbedunit', 'lurkerstetmannburrowed', 'voidpylon', 'voidrift', 'vikingmengskfighter', 'biodomecommandflying', 'pygaliskcocoon', 'shadowbattlecruiser', 'starshipholdingpenunit', 'alarakcoop', 'widowmineburrowed', 'hybridbehemothcoopboss', 'zerusbosstarget', 'brakk', 'dehakacreeperflying', 'tychusscv', 'mediumtastycorpse', 'civilian', 'medic', 'ss_sciencevessel', 'roachwarrenstetmann', 'mutatorwidowmine', 'greaterroachwarren', 'swarmqueen', 'korhalgateeastlowered', 'coopdehakaglevigeggroach', 'lurkerdenmp', 'karass', 'sidrone', 'marine', 'impalerabathuregg', 'tychusmerccompound', 'dog', 'wraith', 'zergling', 'devourermp', 'swarmqueenmorphinglarge', 'mengskpalacegate', 'engineeringbaymengsk', 'photoncannon', 'medivacmengsk', 'terrazinenodeoff', 'siinfestedmarine', 'darkshrine', 'cow', 'taldarimprison', 'garysden', 'hercplacement', 'korhalgatewestlowered', 'dehakatraineggzergling', 'diamondbackwreckage', 'carrieraiur', 'larvastetmann', 'overseer', 'phoenixaiur', 'immortaltaldarim', 'coopcasterhorner', 'korhalpalaceturretright', 'reactor', 'hybridhatchentrance', 'destructiblerockex14x4', 'destructiblecitydebrishugediagonalulbr', 'nyduscanalattacker', 'infestationpit', 'destructibledebris6x6', 'umojanlabholoprojectorunit', 'hybridbehemoth', 'lurkeregg', 'destructiblewalldiagonalulbrlf', 'terrazinetank', 'kerriganvoidcoopecondrop4', 'goliath', 'gascanister', 'destructiblewallcorner90lb', 'amonsharda', 'dehakarevivecocoon', 'cargotruckunitflatbed', 'glaciusdefensecannon', 'novainfestedbansheeburrowed', 'novainfestedsiegetank', 'collapsibleterrantowerrampright', 'shipgeneratorsmall', 'queenburrowed', 'collapsiblepurifiertowerdebris', 'sistarport', 'infestedmedic', 'warpprismphasing', 'slaynelemental', 'biomasspickup', 'infestedstarport', 'deadqueenunit', 'dehakaburrowed', 'debrisrampleft', 'tychuscommando', 'siwraith', 'roguepurifier', 'roachburrowed', 'terranbuggy', 'hybrid', 'psiindoctrinator', 'murlocmarine', 'mutatorvoidrift', 'scout', 'coopcasterabathur', 'mutatormissilenuke', 'richvespenegeyser', 'fenixarbiter', 'sicocooninfestedwraith', 'techtreestalker', 'lurker', 'ghostnova', 'mutatorpropagator', 'adeptfenix', 'commandcenter', 'bus', 'truckutilityunit', 'odinmkiiwreckage', 'techreactor', 'warbot', 'zeratuldarkarchon', 'acvirophage', 'zeratulimmortal', 'observer', 'simissileturretflying', 'lair', 'vikingfighter', 'tarsonisenginefast', 'sjbattlecruiser', 'factorytechreactor', 'protossbasebiomassstorage', 'sporecannon', 'templararchive', 'iceprotosscrates', 'destructiblekorhaltree', 'virophage', 'destructibleaiurdebris6x6', 'scientist', 'ravagerabathurcocoon', 'factoryflying', 'defensivewall45gatelargewest', 'nanitecloudturret', 'resourceblocker', 'destructiblecitydebris2x4vertical', 'itemmedkit', 'scraphuge', 'mothership', 'hhmagneticmineprep', 'tychusarmory', 'dehakaairtownhall', 'xelnagadestructiblerampblocker8nw', 'sjmercaatower', 'dehakatraineggdrone', 'testzerg', 'voidcorruption', 'spaceprisonerspecial', 'fleetbeacon', 'itemgrenades', 'thorwreckageswann', 'darkpylon', 'infestedcc', 'commandcenterflying', 'armorymengsk', 'coopcasteralarak', 'moebiuslabholdingpen', 'xelnagadestructiblerampblocker6nw', 'sensortower', 'jarbanminor_excavator', 'newfolsomprisonentrance', 'hhwidowmineburrowed', 'locust', 'thorap', 'umojanlabzergcratesunit', 'prisonercivilian', 'troopermengskimproved', 'fenixtaldarinimmortal', 'nyduscanal', 'refinerypipes', 'destructiblesignsconstruction', 'colonistvehicleunit', 'roachstetmann', 'overmindremains', 'voidcrystal', 'creepcolony', 'darktemplartaldarim', 'destructibletrafficsignal', 'umojanlabdissectionarmdestructible', 'sporecrawler', 'primalzerglingburrowed', 'impalerden', 'dehakahatcheryuprooted', 'destructibleicediagonalhugeulbr', 'braxisalphadestructible1x1', 'raynor', 'queenmp', 'colossus', 'zeratulroboticsbay', 'ravagerstetmanncocoon', 'creeptumor', 'supplydepot', 'sporecrawleruprooted', 'terrazineharvester', 'sicocooninfestedoverlord', 'coopcasterstetmann', 'collapsibleterrantower', 'powercore', 'gascanisterprotoss50', 'k5kerriganburrowed', 'reaperplacement', 'ultraliskstetmannburrowed', 'umojanlabmonitorfloordestructible2', 'siegetank_blackops', 'voidrayshakuras', 'goliath_blackops', 'caboose', 'partspickup', 'banelingeggnestvoid', 'impaleregg', 'destructiblecitydebris2x6horizontal', 'projectilecreepspreadunit', 'herculeslander', 'vikingassault', 'coopcasterkerrigan', 'powercorehousing', 'hybridstasischamberb', 'odin', 'ghost_blackops', 'xelnagadestructiblerampblocker6n', 'protosssnakesegmentdemo', 'redstonelavacritterinjured', 'zagaracorruptor', 'barracksflying', 'ravagerstetmannburrowed', 'voidshrine', 'swarmhostsplitaburrowed', 'defensivewall45ramp', 'siegetanksieged', 'largeswarmqueen', 'nukemengsk', 'ss_leviathan', 'kerrigan', 'mutatoramonkhaydarinmonolith', 'crabeetle', 'odinmkii', 'hhwidowmine', 'destructiblewalldiagonalblur', 'prophecyartifactmineralpickup', 'mengskthor', 'infestationspire', 'hellionblackops', 'destructiblestorefrontcityprops', 'medivac', 'testshop', 'chardestructiblerockcoverv', 'zeratulxelnagaconstructcyan', 'towermine', 'scrappybot', 'pickuppalletminerals', 'ravenmengsksieged', 'mutatoramonkarax', 'maraudermengsk', 'slaynelementalgrabairunit', 'bosstargetflying', 'flatbedtruck', 'thor', 'techtreephoenix', 'destructiblerockex12x4vertical', 'stetmann', 'destructiblerock2x4horizontal', 'destructibleice2x6vertical', 'destructiblerockex12x4horizontal', 'amonshardc', 'mutatorcloakedmine', 'extractorshakuras', 'healthdispenser', 'ss_corruptor', 'artifactpiece2', 'autotestattacker', 'lurkerstetmanncocoon', 'swarmhostsplitb', 'sifactory', 'labbot', 'spaceprisonerbig', 'siegebreaker', 'mengskbc', 'bilelauncherzagara', 'engineeringbay', 'zergbiomasspickup', 'darktemplar', 'healingpotiontestinstant', 'dehakabarracksuprooted', 'defensivewall45gateeast', 'destructiblesignsdirectional', 'ghostacademynova', 'fenixclolarioncarrier', 'chardestructiblerockcover', 'battlecruiserhelios', 'raven', 'siinfestedcivilianburrowed', 'zeratulartifactpickup1', 'orbitalcommandflying', 'infesteddominionhousing1', 'destructiblewallcorner90lt', 'mengsksiegetank', 'hydraliskdenstetmann', 'xelnagaworldshipvault', 'larva', 'siegetankmengsksieged', 'hive', 'viper', 'sjvalkyrie', 'flamingbetty', 'colonisttransport', 'mengskwraith', 'militarizedcolonistship', 'primalzergling', 'raven_blackops', 'destructibleice2x4vertical', 'kerriganvoidcoopecondrop5', 'umojanlabcatwalkcollapsing', 'xelnagaobeliskaiur06', 'adeptphaseshift', 'infestedsiegebreaker', 'mengskfirebat', 'blightbringeregg', 'hunterlingleaping', 'dehakaprimalswarmhost', 'spacediablo', 'physicssphere', 'primalflyer', 'homesmall', 'sicocoonqueen', 'banelingstetmannburrowed', 'dumptruck', 'banelingnest', 'powertowerstetmanndeactivated', 'infestedengbay', 'collapsiblerocktowerpurifier02', 'leapingcritter', 'destructiblewallcorner45bl90r', 'vorazunchampion', 'impalerabathur', 'globestatue', 'sunkencolony', 'voidriftautobuild', 'korhalpalacegate', 'debrisrampright', 'destructiblekorhalflag', 'defensivewall90', 'physicsl', 'stalkershakuras', 'infestationpitstetmann', 'tychusmedivacplatform', 'swarmhostsplitbrooted', 'destructiblesignsicons', 'infestedarmory', 'overseerstetmann', 'protosswarpdriveunit', 'scrapsalvage2x2', 'infestedstukovcoop', 'mengskstatue', 'kerriganvoidburrowed', 'locustnest', 'protosscrates', 'ghostfemale_blackops', 'dehakahydralisklevel2', 'drakkenlaserdrill', 'hyperionvoidcoop', 'dehakahatchery', 'infestorstetmann', 'cellblockb', 'automatedassimilatorzeratul', 'destructiblecitydebris6x6', 'pygalisk', 'siegetankmengsk', 'naturalgas', 'fusionreactor', 'preserverbase', 'talis', 'ripfieldgeneratorsmall', 'mercenaryfortress', 'pickupenergy100', 'artifactchamber', 'brutaliskburrowed', 'lurkermpburrowed', 'artosilope', 'wolfstatue', 'swarmhostsplitbburrowed', 'marine_blackops', 'primalroach', 'dehakatraineggroach', 'sisupplydepotlowered', 'abathurbiomasscritter', 'stonezealot', 'battlecruiserheliosmorph', 'mengskgoliath', 'mercmedic', 'ss_battlecruiser', 'zeratulvoidaiur01', 'unbuildablebricksdestructible', 'kerriganepilogue03', 'ghostlaserlines', 'techtreecolossus', 'spinecrawler', 'unbuildableplatesdestructible', 'castanarwindowlargediagonalulbrunit', 'broodlord', 'changelingzerglingwings', 'scantipede', 'testhero', 'tychuswarhoundautoturret', 'epilogue02voidrift', 'destructibledebris4x4', 'disruptionward', 'zeratultransportphasingvoidseeker', 'collapsiblerocktowerdebrisrampleft', 'dehakamutaliskreviveegg', 'primallarvabirth', 'tychuscoop', 'kerriganvoidulnar02', 'blightbringer', 'mutatoramonkerriganburrowed', 'secretdocuments', 'stukovinfesteddiamondback', 'infestorstetmannburrowed', 'coopdehakaglevigegg', 'swarmhostburrowedmp', 'mutatorhybridimmortal', 'omegaliskburrowed', 'coopcasterzeratul', 'slivan', 'pointdefensedrone', 'guardianmp', 'destructiblewallcorner45ul90b', 'constrictiondisabler10x10', 'infestedexploderburrowed', 'creeptumorused', 'zeratuldisruptorphased', 'ghost', 'tempestpurifier', 'corruptorstetmann', 'zerglingcarbot', 'ursadakfemaleexotic', 'helsangelfighter', 'castanarultraliskshackledunit', 'mengskreaper', 'novainfestedbanshee', 'devourercocoonmp', 'devildog', 'hunterling', 'novaaclaserturret', 'scantipedeparasitic', 'mutatorspidermine', 'siinfestedtrooper', 'datacore', 'thorwreckage', 'physicsstar', 'refinerymengsk', 'destructiblewallcorner45ulbl', 'ultraliskburrowed', 'zerusdestructiblearch', 'ice2x2nonconjoined', 'mothershipcore', 'prisonshipjumpdrive', 'abandonedbuilding', 'warpprism', 'fenixtalisadept', 'abathurlavaworm', 'sjpiratecapitalship', 'artifactaiur06', 'pickupplasmarounds', 'ravagercocoon', 'merccompound', 'destructiblewallcorner45ulur', 'karakfemale', 'taldarimprisoncrystal', 'zerglingmengsk', 'amoncrystalepilogue03', 'greaterspire', 'hotssplitterlingbig', 'commentatorbot3', 'greaternydusworm', 'redstonelavacritterinjuredburrowed', 'tosh', 'mutatorturkey', 'sjspacestationmercenary', 'lasarra', 'labturret', 'pickupscrapsalvage3x3', 'protossfrigatedocked', 'mutaliskbroodlord', 'terrazinenode', 'destructiblesearchlight', 'healingpotiontesttarget', 'yagdra', 'infestedsiegebreakersieged', 'roguepurifiersupportdronea', 'ghostmengsk', 'immortal', 'sporecolony', 'infestedcocoon', 'swann', 'protossfrigate', 'avatarofform', 'techtreehightemplar', 'chardestructiblerockcoveruldr', 'thormengsk', 'zeratulphotoncannon', 'warpprismphasingtaldarim', 'korhalgatewest', 'pointdefensedrone_blackops', 'gascanisterprotoss25', 'hhreaperflying', 'siinfestedbunker', 'zeratulartifactpickup2', 'tarsonisengine', 'destructiblerampdiagonalhugeulbr', 'mutatoramonzeratul', 'starportreactor', 'mutatoramonzagara', 'infestedabominationburrowed', 'aiurrockdebris2x2', 'chardestructiblerockcoverurdl', 'changelingmarine', 'impalerabathurburrowed', 'mineralfieldopaque900', 'warpig', 'scourge', 'hhmerccompound', 'colossuspurifier', 'coopcasterdehaka', 'hellbatwreckage', 'mutatoramondehakaburrowed', 'mutatoramondehaka', 'swarmqueenmorphing', 'larvalqueen', 'barracksmengskflying', 'preserverc', 'sivolatileinfested', 'voidsliverdeathgripcrystalac', 'hydraliskevolved', 'hotssplitterlingmedium', 'mutatoramonartanis', 'umojanlabcagedestructible', 'infestedexploder', 'hydraliskmengsk', 'nova', 'sjhyperion', 'kelmorianmissileturret', 'ravagervileabathurcocoon', 'autoturret', 'militarizedcolonisttransportnova', 'carrier', 'destructiblewalldiagonalulbr', 'sifactoryflying', 'destructiblewallcorner45ur90l', 'ripfieldgenerator2', 'zeratulxelnagaconstruct', 'collapsiblerocktowerdiagonalpurifier02', 'biodomecommand', 'soacasterfenix', 'collapsiblepurifiertowerdiagonal', 'perditionturret', 'destructiblewallcorner45urbr', 'umojanlabmonitorfloordestructible3', 'novastundrone', 'kerriganghostlabunarmed', 'purifierrichmineralfield', 'ursadakmaleexotic', 'collapsiblerocktowerramprightgreen', 'hydraliskstetmann', 'spacecowsmall', 'barracks', 'moebiuslabconsolesdestructible', 'cargotruckunitbarrels', 'roach', 'hotsnoxiousburrowed', 'mengskmedic', 'destructiblezerginfestation3x3', 'tychusresearchcenterunlocked', 'destructiblewall45', 'dehakazerglinglevel2', 'umojanlabtramengineright', 'spidermineburrowed', 'destructibleice4x4', 'torrasquecorpse', 'destructiblestreetlight', 'xelnagadestructiblerampblocker6sw', 'toxicnestburrowed', 'yagdraeggbig', 'sjfighter1', 'zerglingburrowed', 'hightemplarshakuras', 'amonhostbody', 'dehakatrainegg', 'protossreliquaryunit', 'destructibleicehorizontalhuge', 'breachingcharge', 'pickupnovaequipment', 'perditionturretunderground', 'destructiblerock6x6weak', 'evolutionchamber', 'ultralisk', 'refineryrich', 'primalsunkencolony', 'adept', 'sidroneburrowed', 'zeratulvoid', 'destructiblewallcorner90l45br', 'ursula', 'spartancompany', 'mothershipaiur06', 'infestedindustrialship', 'destructiblerock4x4', 'kerriganvoidcoopecondrop3', 'novahero', 'umojanlabzergcageunit', 'eggpurple', 'vespenedrone', 'destructiblewallcorner90b45ur', 'immortalaiur', 'stargatewarp', 'banshee_blackops', 'acpiratecapitalship', 'ss_terratron', 'desertplanetstreetlight', 'supplicant', 'darktemplarshakuras', 'dehakamurvarstructure', 'infestedmerchaven', 'dehakaguardian', 'mutaliskviper', 'nukesilonova', 'mercvulture', 'destructiblewallcorner90br', 'ravagerstetmann', 'herc', 'interceptorstetmann', 'scantipedeparasiticsmall', 'observersiegemode', 'herccompound', 'shapeshifter', 'probe', 'preservera', 'changelingmarineshield', 'kerriganchar', 'destructiblewallstraightvertical', 'factorymengskflying', 'helliontank', 'fenixchampion', 'hut', 'siegetank', 'shieldbatterynerazim', 'k5kerriganpsistrike', 'pickupmedicrecharge', 'voidcoopwarbot', 'urun', 'omegaliskchrysalis', 'zergtowerartillery', 'defensivewall45gateeastlowered', 'spacecowmedium', 'fenixtalisadeptphaseshift', 'dehakazerglinglevel2burrowed', 'stalkershakurashallucination', 'sicivilianstructureflying', 'zeratulkhaydarinmonolith', 'dehakaguardianfightmorph', 'tassadar', 'pickupnovajetpack', 'braxisalphadestructible2x2', 'naturalgas50', 'desertplanetsearchlight', 'dehakaprimalswarmhostburrowed', 'trafficsignal', 'labmineralfield', 'primallocustflying', 'infestedrefinery', 'infestedstukov', 'hybridtesttubeunit', 'healingdrone', 'umojanlabmineralfield', 'destructiblekorhalfoliage', 'mineralfield', 'dehakacreeper', 'mengskmarauder', 'liberator', 'sicocooninfestedbanshee', 'swarmqueenegg', 'extractorpurifier', 'shipescapepod', 'zeratulwarpprismphasing', 'hybriddestroyer', 'siliberator', 'extractorrich', 'ss_swarmguardian', 'banshee', 'voidrayaiur', 'artillerymengsk', 'dehakatraineggultralisk', 'lurkermpegg', 'dehakaroachburrowed', 'sicocooninfestedaberration', 'tychusspectre', 'physicscube', 'korhalbasedoor', 'herculeslanderflying', 'redstonesalamander', 'tychusfirebat', 'siscv', 'blightbringerlargeegg', 'sentryfenixphasing', 'siinfestedcivilian', 'thormengsksieged', 'pickuppsistorm', 'evoeggroach', 'dehakacoop', 'mutatorstonezealot', 'dehakalarva', 'factoryreactor', 'debris2x2nonconjoined', 'hhhellion', 'archangelcoopfighter', 'pylon', 'sicocooninfestedmarine', 'dehakaultralisklevel3burrowed', 'sivolatileinfestedburrowed', 'overmind', 'destructiblerockex12x6horizontal', 'excavator', 'psidisruptor', 'industrialshipflying', 'soacaster', 'extractorpipes', 'hightemplartaldarim', 'warpprismgiant', 'protossrelic', 'aiurchefenergydrinkswarm', 'pickuphealth100', 'firebat', 'cybrosescorttowerup', 'zealotpurifier', 'coopcasterraynor', 'queencoop', 'novaboombot', 'reaver', 'mutatoramondehakamirrorimageburrowed', 'stalker', 'novaholodecoy', 'phoenix', 'mutatordeathbot', 'mengskhologrambillboard', 'mutatorlaserdrill', 'giantyeti', 'pickupscrapsalvage2x2', 'merchellion', 'stukovapocalisk', 'hydraliskburrowed', 'destructiblerockex12x6vertical', 'moebiuslabstasistubedestructible', 'hivemindemulator', 'defilermp', 'dehakaultralisklevel2burrowed', 'roachwarren', 'pitmalash', 'mutatorturking', 'sicocoon', 'destructiblewallstraighthorizontalbf', 'locustmpflying', 'protossdockingbayunit', 'destructibleramphorizontalhuge', 'nuke', 'chareggsacktwoegg', 'shadowshieldgenerator', 'battlestationmineralfield', 'kraith', 'spinecrawleruprootedstetmann', 'dehakamutalisklevel3', 'swarmhostsplita', 'siegetanksieged_blackops', 'destructibleice2x6horizontal', 'roachvile', 'k5kerrigan', 'corsairmp', 'sjmercstarport', 'hybridholdingcellsmallunitvoid', 'destructiblebillboardscrollingtext', 'redstonesalamanderburrowed', 'collapsiblerocktowerdebrisramprightgreen', 'tankertruck', 'zagara', 'broodmother', 'coopdehakaglevigegghydralisk', 'novapsiemitter', 'thornlizard', 'dehakaroachlevel3burrowed', 'hybridholdingcellunit', 'extractor', 'infestedbunker', 'dehakaroachlevel2burrowed', 'defensewalle', 'destructibleumojanlabtesttube', 'hhscv', 'cyberneticscore', 'partspickup3', 'monitor', 'trucksemiunit', 'zerglingstetmann', 'automatedextractor', 'nyduscanalcreeper', 'creeptumorburrowed', 'xelnagashrinexil', 'pickuppalletgas', 'vipercocoon', 'tychusodin', 'novaterrazinetankdead', 'nuclearmine', 'tychusresearchcenter', 'hhravensiegemode', 'warfieldfortress', 'destructiblewall90', 'supergarystetmann', 'preserverb', 'droneburrowed', 'sicocooninfestedscv', 'hyperionkorhal', 'infestedbanshee', 'infestor', 'umojanlabmonitorfloordestructible1', 'phoenixpurifier', 'murvarcreepflying', 'logisticsheadquarters', 'coopassistcasterraynor', 'dehakatraineggswarmhost', 'mutatormissilepointdefense', 'raynorcommando', 'starporttechlab', 'hybridstasischambera', 'voidsliverac', 'pickupchronoriftcharge', 'soacastervorazun', 'purificationorbsmall', 'sirefinery', 'dehakamutalisk', 'primalhydralisk', 'raynor01', 'fenixmojoscout', 'mule', 'physicscylinder', 'tychusmedic', 'hhreaper', 'defensewallnw', 'naturalgasair', 'hhcommandcenter', 'pickuphealth25', 'siengineeringbay', 'zeratuldisruptor', 'overlordtransport', 'slaynelementalgrabgroundunit', 'ravagerabathurburrowed', 'destructiblerock2x6horizontal', 'refinery', 'slaynmissileturretleft', 'ravasaurburrowed', 'treasuregoblin', 'kerriganrevivecocoon', 'duskwing', 'troopermengskaa', 'destructiblewall45gateeast', 'warfieldbaseplatform', 'xelnagadestructiblerampblocker8n', 'ultraliskcavern', 'evoeggbaneling', 'civilianfemale', 'bunker', 'queenclassic', 'impalerdehaka', 'sicocooninfesteddiamondback', 'spotter', 'mutatoramonphotoncannon', 'overlord', 'primalmutalisk', 'siqueen', 'liftcontrol', 'freightcar', 'itemmines', 'ursadon', 'swarmqueenburrowed', 'barrackstechlab', 'colonistbiodomehalfbuilt', 'infestedcolonistship', 'commandcentermengsk', 'dehakatrainegghydralisk', 'hydraliskmengskburrowed', 'hunterkillerburrowed', 'infestedmissileturret', 'pyloncontainmentunit', 'toxicnest', 'creeptumorqueen', 'disruptorphased', 'prisonerspectre', 'corruptor', 'spaceplatformgeyser', 'sistarportflying', 'destructiblesignswarning', 'castanardestructibledebris', 'zeratulobserversiegemode', 'infestedbarracks', 'locustflying', 'barracksmengsk', 'destructiblebullhornlights', 'mercreaper', 'pickupenergy25', 'richmineralfield750', 'prophecyartifactvespenepickup', 'dehakaravasaur', 'spidermine', 'dehakalocust', 'abathurlocust', 'spaceplatformventsunit', 'narudxelnaga', 'purifier_destructible_rock_huge_blur', 'xelnagadestructiblerampblocker6w', 'umojanlabwarbot', 'xelnagadestructiblerampblocker8s', 'physicscapsule', 'ravagerstetmannegg', 'spacecowcorpse', 'spaceventdestructibleunit', 'mineralcrystal', 'primalultraliskburrowed', 'infestedterran', 'overlordstetmann', 'destructiblewallcorner45', 'mengskmarine', 'selendiscoop', 'sistarporttechlab', 'sibarrackstechlab', 'darktemplaraiur', 'dukesrevenge', 'sjcloakedmine', 'mengskdiamondback', 'korhalgateeast', 'pylonovercharged', 'umojanlabstasistubedestructible1', 'odinwreckage', 'choker', 'fusioncoremengsk', 'tychuschaingun', 'zeratulsummonkarass', 'dehakaglevig', 'karaxrepairdrone', 'destructiblewall90outer', 'xelnagashrine', 'novacoop', 'palletminerals', 'changelingzergling', 'assimilatorprotossgeyser', 'sibroodlingflying', 'xelnagadestructiblerampblocker8w', 'broodling', 'hellionwreckage', 'siegetankwreckage', 'zagaravoidcoopburrowed', 'destructiblerampverticalhuge', 'hotsswarmling', 'creeppodsunit', 'aiur03mechanismdisabler', 'pickupnovasniperrifle', 'karakmale', 'taldarimmothership', 'fenixwarbringercolossus', 'omegaliskcorpse', 'novaeradicator', 'destructiblecitydebrishugediagonalblur', 'labmineralfield750', 'largepalletminerals', 'higharchontemplar', 'xelnagadestructiblerampblocker6ne', 'hydraliskimpalerburrowed', 'commentatorbot2', 'purifiercorematrix', 'destructiblewallcorner90t45bl', 'purifiermineralfield750', 'traynor01signsdestructible1', 'terrazinetemplenesw', 'pickupnovagadgetcharges', 'hellbatblackops', 'sitechlab', 'destructiblecitydebris2x4horizontal', 'dehakaroach', 'marauder', 'purifier03vespenetank', 'tychuscommandcenterflying', 'hatchery', 'destructiblewall45ramp', 'locustmp', 'starportflying', 'defensewallne', 'codflatbedtruckflying', 'starportmengskflying', 'chareggsackoneegg', 'mohandar', 'raynorlab', 'collapsiblerocktowerdebrisrampright', 'fenixkaldaliszealot', 'evoeggzergling', 'starporttechreactor', 'predator', 'hybridreaver', 'platformpowercore', 'destructiblewall45outer', 'xelnagadestructiblerampblocker8sw', 'lurkerstetmann', 'titanmechfighter', 'ultraliskmengsk', 'moopy', 'adungenerator', 'transportoverlordcocoon', 'primaltownhall', 'sentrygun', 'hybriddominatorvoid', 'militarizedcolonisttransport', 'droneoperator', 'cruiserbike', 'techtreedarktemplar', 'civilianshipwrecked', 'novaboombotburrowed', 'flagship', 'yagdraeggsmall', 'novavirophage', 'naturalminerals', 'hotstorrasqueburrowed', 'destructiblespaceplatformsign', 'defensewallsw', 'spectre', 'spire', 'rocks2x2nonconjoined', 'hotstorrasque', 'warpgate', 'automatedrefinery', 'kerriganvoidcoopecondrop1', 'coopcasternova', 'zeratulxelnagachargedcrystalcyan', 'destructiblerockex1diagonalhugeblur', 'zeratulsentry', 'evolutionpit', 'novagriffintransportunit', 'transporttruck', 'defensewalln', 'mengskbanshee', 'dehakacoopburrowed', 'primalultralisk', 'korhalartifactcontainmentfield', 'infesteddominionhousing2', 'mutaliskmengsk', 'dehakaroachlevel3', 'zerus02chrysalis', 'armory', 'voidthrasherwalker', 'defensivewall45gatewestlowered', 'destructibleicediagonalhugeblur', 'celestiallockdisabler', 'eggstetmann', 'impalerdehakaburrowed', 'hhvikingassault', 'drakkenlaserdrillcoop', 'collapsiblerocktowerdebris', 'hybridsciencefacility', 'kerrigancharburrowed', 'greaternyduswormally', 'gascanisterprotoss', 'nullcircuitactivated', 'infestedterransegg', 'hydralisk', 'destructibleexpeditiongate6x6', 'dehakadroneburrowed', 'reaper', 'destructiblerock6x6', 'devourer', 'darkarchon', 'stukovinfestbroodling', 'reptilecrate', 'mutatoramonkerrigan', 'researchvessellanded', 'spinecrawleruprooted', 'medivac_blackops', 'troopermengsk', 'soacasterkarax', 'scv', 'swarmhostmp', 'fusioncore', 'mutatorkillbot', 'loki', 'liberatorag_blackops', 'fenixadeptshade', 'dominionkillteam', 'voidchasm', 'starshipventdoorunit', 'sioverlord', 'redstonelavacritterburrowed', 'sibarracksflying', 'destructibledebrisrampdiagonalhugeulbr', 'infestedcivilianburrowed', 'spirestetmann', 'rawsolarite', 'sjspacestationvalerianwarpin', 'hybridgeneral', 'collapsiblerocktowerrampleft', 'zagaraburrowed', 'tychusmarauderhealingward', 'mitosaurus', 'pickupgrenades', 'labturretup', 'sisupplydepot', 'roachvileburrowed', 'evoegghydralisk', 'coopcasterstukov', 'khaydarinmonolith', 'queen', 'codresearchfacility', 'stank', 'kerriganvoidcoopecondroplt1', 'mineralfield750', 'sentryfenix', 'naturalgas25', 'anteplott', 'factorytechlab', 'destructiblecitydebris4x4', 'valerianlab', 'missileturret', 'xelnagaconstruct', 'novainfestedsiegetankuprooted', 'xelnagatemple', 'spacearmoredgeneratorb', 'automatedassimilator', 'starshipventdoorunitulbr', 'planetaryfortress', 'siinfestedtrooperburrowed', 'repairgenerator', 'coopcastertychus', 'stukovinfestedbanshee', 'richmineralfield', 'sheep', 'desertenergycannon', 'zeratulroboticsfacility', 'zeratul', 'zeratulsummonvoidray', 'acvirophageburrowed', 'mutatormissilestandard', 'soamothershipv4', 'destructiblegarage', 'mitosaurusc', 'lurkerden', 'codflatbedtruck', 'warpprismtaldarim', 'hybriddominator', 'xelnagadestructiblerampblocker8se', 'defensivewall45inner', 'zakoomcrystalfragment', 'destructiblerock2x6vertical', 'destructiblerampdiagonalhugeblur', 'techtreevoidray', 'voidcoopares', 'spaceprisoner', 'warpprismgiantphasing', 'dehakadakrun', 'protosspsielements', 'mitosaurusb', 'maincellblock', 'ultraliskcavernstetmann', 'industrialship', 'helsangelassault', 'siegebreakersieged', 'xelnagadevice', 'acgriffon', 'xelnagadestructiblerampblocker6s', 'elsecaro_colonist_hut', 'sentryaiur', 'destructiblewalldiagonalblurlf', 'defensewallw', 'techtreecarrier', 'collapsiblerocktowerdebrisrampleftgreen', 'preserverprison', 'infestationpustule', 'bunkerdepotmengsk', 'mutatoramontychus', 'mutatoramonzagaraburrowed', 'destructiblewall90inner', 'partspickup2', 'zerglingcarbotburrowed', 'destructiblerockex16x6', 'purifiermineralfield', 'collapsiblerocktowerrampleftgreen', 'lurkermp', 'hhvikingfighter', 'barrackstechreactor', 'infestedstukovcoopburrowed', 'zeratulherodarkarchon', 'roachstetmannegg', 'hotsswarmlingburrowed', 'archangelpnpassault', 'ravasaur', 'zeratuldarkshrine', 'defensewallse', 'supplydepotdrop', 'pickupnovapulsegrenade', 'aiur01mechanismdisabler', 'armoredgenerator', 'sentryphasing', 'dehakahydralisklevel2burrowed', 'greaterspirestetmann', 'platformstabilizer', 'fenixclolarioninterceptor', 'maarchannel', 'infestedcolonisttransportnova', 'swarmhostburrowed', 'valhalladestructiblewall', 'dronestetmannburrowed', 'dehakacooprevivecocoon', 'colonisthutdecayedunit', 'shieldbattery', 'umojanlabtramengineleft', 'artanisvoid', 'sievolutionchamber', 'pickupplasmagun', 'defensivewall45gatelargeeast', 'scvmengsk', 'lurkerdenstetmann', 'zeratulsummonzealot', 'zeratulcyberneticscore', 'terrorzor', 'purifiervespenegeyser', 'archangelpnpfighter', 'coopcasterswann', 'researchvessel', 'dehakamutalisklevel3fightmorph', 'chareggsackthreeegg', 'overseersiegemode', 'tychusmarauder', 'dehakaultralisklevel3', 'defensewalls', 'fenixaltarofpsistorms', 'terrazinetemplenwse', 'megalithcutter', 'sjspacestationvalerian', 'hhstarport', 'kerriganegg', 'zeruswaterfallunit', 'mutatoramonraynor', 'gehennacruiser', 'mineralfieldopaque', 'hybridnemesis', 'slaynswarmhostspawnflyer', 'dehakabarracks', 'mengskvikingassault', 'destructiblesignsfunny', 'protossvespenegeyser', 'xelnagadestructiblerampblocker8ne', 'collapsibleterrantowerrampleft', 'siinfestedmarineburrowed', 'stukovinfestedsiegetankuprooted', 'archangelcoopassault', 'hotshunterburrowed', 'jarbancolonisthut', 'destructiblewallcorner90tr', 'goliathwreckage', 'ursadakcalf', 'destructiblewall45gatewest', 'gascanisterzerg', 'widowmine', 'pickupnovamonomolecularblade', 'mineralfield450', 'infestorterranburrowed', 'assimilatorshakurasgeyser', 'novadefensivematrixdrone', 'stukovaleksandercrashed', 'broodlordcocoon', 'evoeggswarmhost', 'codxelnagaconstruct', 'interceptoraiur', 'biodome', 'dehakaswarmhostburrowed', 'ghostacademy', 'leviathancocoon', 'infestedcivilian', 'obelisk', 'infestablehut', 'dehakadrone', 'oraclestasistrap', 'zealot', 'hunterkiller', 'alarakchampion', 'primalroachburrowed', 'scrapsalvage3x3', 'destructiblerockex1diagonalhugeulbr', 'lairstetmann', 'troopermengskflamethrower', 'healerbot', 'kasaispacewhale', 'defensivewall90inner', 'banelingeggnest', 'impaler', 'dehakaultralisklevel2', 'gateway', 'colonistbiodome', 'changelingzealot', 'sibarracks', 'defensivewall45gatewest', 'tychusherc', 'sentry', 'hybriddominatorcoopboss', 'zagaravoidcoop', 'vulture', 'hyperion', 'siinfestedbunkeruprooted', 'ravagerabathur', 'coopdehakaglevigeggzergling', 'dehakamirrorimage', 'mutatornaturalgas50', 'moebiuslabconsolesdestructibleleft', 'infestedsupply', 'glaciustechnologyvault', 'orbitalcommand', 'evoeggultralisk', 'banelingneststetmann', 'coopcasterzagara', 'hotsleviathan', 'archon', 'disruptor', 'carriertaldarim', 'zenithstone', 'biodomehalfbuilt', 'hhstarportflying', 'itemgravitybombs', 'hercules', 'korhalsporecannon', 'sciencevessel', 'roachling', 'nuclearmissilesilo', 'tychusreaper', 'kerriganvoidcoopecondrop2', 'purifier', 'fenixdragoon', 'destructibleiceverticalhuge', 'defiler', 'capturepointteamcolor', 'colossustaldarim', 'marauder_blackops', 'leviathan', 'dehakaglevigstructure', 'zeratulstalker', 'zeratulwarpprism', 'darkpylonovercharged', 'zeratulobserver', 'pickupchronoriftdevice', 'techlab', 'dehakaroachlevel2', 'utilitybot', 'starshipholdingpenlargeunit', 'hhcommandcenterflying', 'minermale', 'hhbomber', 'hhmercstarportnoarmy', 'dronestetmann', 'zeratulgateway', 'novacoopdecoy', 'artifactpiece3', 'supplydepotlowered', 'zurvancore', 'dehakaviper', 'maar', 'crateswannspecialdelivery', 'aiurrockdebris4x4', 'yetimomma', 'renegademissileturret', 'hydralisklurkeregg'}
other_unit_ids = {'coopobjectivebomb', 'murvarcreepspawnweapon15', 'ss_backgroundspaceterran01', 'smx2_bridge03', 'smarcturushologram', 'smx1eggroomultraliskegg', 'starshipadun_doorselowered', 'amonshardd', 'smunnset', 'ss_strongmissile2', 'creepblocker4x4', 'beacon_terranred', 'cybrosescorttowerdown', 'xelnagadestructibleblocker6e', 'amontentacled', 'checkstation', 'hhmagneticmineweapon', 'zeratulscarabweapon', 'smhyperionmedlabprops', 'aiurtemplebridgedestructiblene8out', 'troopermengskacgluescreendummy', 'smdropship', 'g4chargeweapon', 'zagaravoidcoopdevouringmaw', 'destructiblegatediagonalulbr', 'elevatorblocker', 'pathingblocker1x1', 'hybridantiairattackweapon', 'smhyperionmedlabcryotubeb', 'smmarine02', 'portcity_bridge_units8', 'lavaheightunit20search', 'liberatorskinpreview', 'xelnaga_caverns_doorw', 'novaplasmapuddle', 'stukovaleksandertentaclestunweapon', 'beacon_cod_off', 'inhibitorzoneflyingmedium', 'weaponhybridc', 'hybriddoorswiderightlowered', 'dehakagiveessencemissile', 'kaiserwormbanelingmissile', 'tychusejectmissile', 'extendingbridgedirtynwlong8', 'viperairweapon', 'autoturretreleaseweapon', 'extendingbridgedirtyneshort8', 'smcharbattlezoneset4', 'dehakadakrunthornsattackweapon', 'smstetmann', 'sentryacgluescreendummy', 'mindboltweapon', '12slotbag', 'aiurtemplestonegatediagonalulbrlowered', 'odinaaweapon', 'smx2_armyroomset04', 'spinecrawlerstetmannweapon', 'extendingbridgenelong10out', 'smarcturusmengsk', 'smfly', 'primalhydraliskacgluescreendummy', 'ravagercorrosivebileaoemissile', 'repulsorcannonweapon', 'purifier_doorsmallnw', 'hyperionvoidcoopairattackweapon', 'smhyperioncantinaposter3hs', 'spaceprisondoorsthinleft', 'ipistolad', 'smarmoryviking', 'novaplasmapuddlelarge', 'tychusdummycaster', 'slaynelementalgrabaoegroundunit250', 'starshipadun_jumppaddoornelowered', 'starshipadun_jumppaddoorselowered', 'taldarimforcefieldgatese', 'slaynelementalgrabaoegroundunit150', 'shakuraslightbridgene12', 'aiurlightbridgeabandonedne10out', 'hybridlabdoorsright', 'stukovaleksanderyamatocannonattackweapon', 'thoraaweapon', 'beaconarmy', 'dehakacoopairweapon', 'hunterlingplaceholder', 'hhtornadomissiledummyweapon', 'xelnagatempledoorlargeelowered', 'accelerationzonesmall', 'roachacgluescreendummy', 'creeperhostacgluescreendummy', 'kelmoriangrenadeturretweapon', 'banelingacgluescreendummy', 'smterran06bfx', 'mechazerglingacgluescreendummy', 'createcocoonmissileweapon', 'kraithspinevolleyweapon', 'primalzerglingacgluescreendummy', 'smbridgeplanettyphon', 'vikingsky_unit', 'moebiusseeker', 'destructiblegatediagonalblur', 'smhyperioncantinamerccomputerhs', 'aiurlightbridgeabandonedne12out', 'raisingwreckage', 'purifier_doornlowered', 'smhydraliskdead', 'terranbiomass', 'archangelpnpempweapon', 'dehakaroachlevel3weapon', 'pointdefensedronereleaseweapon', 'shakuraslightbridgenw8', 'dehakaguardianminechargeweapon', 'corruptoracgluescreendummy', 'dehakanydusdestroyertimednofoodweapon', 'blackoutdummylarge', 'snowrefinery_terran_extendingbridgeneshort8', 'umojanlabdoorsthinleft', 'ss_battlecruisermissile', 'amonrepulserfield', 'stalkerweapon', 'smlabassistant', 'apocaliskairattackmissile', 'checkstationdiagonalblur', 'voidthrashershieldfireballmissile', 'mothershipcoreweaponweapon', 'extendingbridgedirtynwwide8', 'immortalmelee', 'ss_carrierbossmissile', 'infestedterranseggplacement', 'stukovinfestedsiegetankacgluescreendummy', 'fenixdragoonairbombupgradedweapon', 'damagedevolutionpit', 'smhyperionbridgestage1cantinahs', 'karassweapon', 'tychustornadomissileweapon', 'infestedterransweapon', 'locusteggamissileweapon', 'starshipadun_jumppaddoors', 'inhibitorzoneflyinglarge', 'smcameraterran15', 'narudepiloguespawnshadeofnarudmissile', 'smhyperionmedlabstage1crystalhs', 'smx1kerriganupgradeset', 'ss_terratronmissilespinnerlauncher', 'aiurlightbridgenw12', 'purifier_doornelowered', 'hellionblackopsinfernalflamethrowercoopweapon', 'vultureacgluescreendummy', 'xelnagatempledoorlargesw', 'smmarsarabartvhs', 'brutaliskweapon', 'portcity_bridge_units12out', 'blocker16x16', 'hhbomberplatformacgluescreendummy', 'dehakatraineggmissile', 'slivancreepspawnweapon11', 'xelnaga_caverns_floating_bridgev12', 'photoncannonblastweapon', 'securitygatestraighthorizontallowered', 'beacon_cod_on', 'soamothershiplineattackweapon', 'zurvanlightningbreather', 'fenixsentryphotonoverchargeweapon', 'mitosauruscweapon', 'mechaultraliskacgluescreendummy', 'xelnaga_caverns_doorsopened', 'bunkeracgluescreendummy', 'locustflyingweapon', 'smhyperionbridgestage1centerconsolehs', 'zerglingzagaraacgluescreendummy', 'siegetankjumpjetplaceholder', 'smcharcutscenes03', 'hotsleviathantentaclecmissile', 'dehakalocustweapon', 'smfirebatphcrate', 'ss_backgroundspacezerglarge', 'aiurtemplebridgedestructiblese8out', 'smbridgeplanethaven', 'destructiblegatestraightverticallf', 'troopermengskweaponaapickup', 'metalgatestraightverticallf', 'purifiercellblock12x12c', 'smmarsarabarprops', 'zealotpurifieracgluescreendummy', 'smmarsarabarbottleshs', 'archonadvanced', 'ultrasonicpulseweapon', 'immortalfenixacgluescreendummy', 'glaivewurmm6weapon', 'slaynelementalgrabaoegroundunit25', 'shape5pointstar', 'infestedventeggmissile', 'ss_interceptor', 'bridgeiconclosedne', 'smx1eggroomeggmonsteregg', 'portcity_bridge_unitse10', 'starshipadun_doorelowered', 'dominionkillteamlmweapon', 'arbitermpweaponmissile', 'hhtornadomissileweapon', 'titanmechmissileweapon', 'extendingbridgenwshort10', 'scantipedeparasiticsmallweapon', 'pitalarakpsiorbmissile', 'shapecashlarge', 'smx1dominionspaceset', 'smhyperioncantinaybarracameras', 'bunkerupgradedacgluescreendummy', 'zeratulkhaydarinmonolithprojection', 'ascendantsacrificeweapon3', 'xelnaga_caverns_doorswopened', 'dehakamutalisklevel2glaivewurmattack1missile', 'smmikeliberty', 'missileshooterulnar01', 'queenmpspawnbroodlingsmissile', 'spaceplatformcliffdoor1', 'entropicblastweapon', 'smx1hydraliskt1b', 'shape4pointstar', 'ss_terratronbeamtarget', 'lavaheightunit16search', 'stukovinfestedmarineacgluescreendummy', 'smhyperioncantinastage1jukeboxhs', 'mutatoramondehakadragmissile', 'extendingbridgenwlong10out', 'xelnaga_caverns_doors', 'hhbomberareabombmissile', 'shapelemon', 'glaivewurmm4weapon', 'missileshooterburst4weapon', 'advancedpointdefensedronereleasemissile', 'xelnagatempledoorlargeslowered', 'shapearrowpointer', 'orbitalcommandacgluescreendummy', 'garystetmannmissile', 'smmarsarabarbriefingtvmain', 'zagaraacidspinesmissile', 'acpiratecapitalshipleftlmweapon', 'atalaserbatterylmweapon', 'xelnagadestructibleblocker8w', 'unbuildable1x1', 'extendingbridgedirtynwlong10', 'smarmorytank', 'smtestcamera', 'zergeggnestsmall', 'slaynelementalgrabaoeairunit150', 'smhyperionbridgestage1set3', 'titanmechbombardmentflybyweapon', 'smbridgeplanetcastanar', 'smterran03fx', 'protossbridgenwlong10', 'dehakamutaliskairlevel3glaivewurmattack2missile', 'shapebaseballbat', 'spaceplatformcliffdooropen1', 'smhyperionmedlabzergcryotube5hs', 'leviathanacgluescreendummy', 'archangelpnpaaweapon', 'novaacidpuddle', 'smhyperionexteriorlow', 'karaxrepairdronereleaseweapon', 'umojanlabwalldoorsleftlowered', 'beaconidle', 'aiurtemplestonegatediagonalulbrrf', 'smcameraterran04b', 'stukovinfesteddiamondslimepuddle', 'stukovinfestedbansheeacgluescreendummy', 'smcharbattlezoneset3', 'siegetankmengskacgluescreendummy', 'dehakamutalisklevel3glaivewurmattack2missile', 'smterran11fxdebris2', 'murvarcreepspawnweapon12', 'artifactulnarpedestalblue', 'portcity_bridge_unitsw12out', 'purifier_doore', 'defilermpplagueweapon', 'starshipadun_jumppaddoorw', 'queenchannelweaponb', 'yamatoblastambientmissile', 'slivancreepspawnweapon10', 'glaivewurmm2weapon', 'antigravitonburstplaceholder', 'smvalerianflagshipcorridorsset4', 'karaxservitorweaponb', 'moebiuslabdoorswiderightlowered', 'dehakamutaliskairlevel3glaivewurmattack3missile', 'ensnareweapon', 'constrictiondisabler3x3', 'aiurlightbridgeabandonednw12', 'smmarsarabarcorkboarditem2hs', 'longboltmissileweapon', 'smterran15props', 'locustflyingeggbweaponmissileweapon', 'starshipadun_doornw', 'starshipadun_doorsmallnlowered', 'aiurlightbridgene10out', 'brutaliskcocoonswarmhost', 'archangelpnpempairweapona', '10slotbag', 'aiurtemplestonegatestraighthorizontalff', 'projectilecreepweapon', 'moebiuslabdoorsthinleft', 'extendingbridgenwshort10out', 'dehakaviperairweapon', 'beaconscout', 'itemgravitybombsweapon', 'korhalkeystone', 'smhyperionmedlabbriefingcenter', 'colossuspurifieracgluescreendummy', 'checkstationopened', 'damagedmutatorlaserdrill', 'accelerationzoneflyingsmall', 'smterran05fx', 'voidrayacgluescreendummy', 'extendingbridgenwwide10', 'smcameraterran16', 'starshipadun_doorsmallnwlowered', 'tychuswarhoundautoturretreleaseweapon', 'coopglaivewurmm4weapon', 'portcity_bridge_unite8out', 'bunkerdepotmengskdrop', 'smarmorybanshee', 'zeratulimmortalacgluescreendummy', 'ss_backgroundspace01', 'newsraynorlogo', 'smx2_bridge01', 'smvalerianflagshipcorridorsset2', 'militarizedcolonistshipgroundlmweapon', 'extendingbridgenwwide8out', 'zeratulstalkerghostweapon', 'extendingbridgedirtynelong10out', 'smarmorytankphcrate', 'ravasaurairweapon', 'smvalerianflagshipcorridorsset3', 'shapethintorus', 'contaminateweapon', 'infestorstetmannroacheggmissile', 'zagaravoidcoopcollectessencedummyattackmissile', 'k5droppodplacement', 'snowrefinery_terran_extendingbridgeneshort8out', 'smx1eggroominfestoregg', 'lavaheightunit24search', 'cybrosescorttowerweapon', 'hornerairfleettargeter', 'shapeegg', 'tychusfirebatoilbomb', 'novalockdownmissile', 'smterran07props', 'hurricanemissileleftstetmann', 'sjcloakedmineweapon', 'checkstationdiagonalulbr', 'tarsonis_doorelowered', 'smhyperioncantinastage1wallpiece', 'hhmagneticmine_spawnerunit', 'mengskthoraaweapon', 'smx1eggroomzerglingegg', 'shapecherry', 'hybridlabdoorsrightlowered', 'voidseekerweapon', 'missileshooterburst2weapon', 'devourertissuemissile', 'smarmoryghostcrate', 'hybriddoorswideright', 'smterran16fx', 'collapsiblerocktowerpushunitramprightgreen', 'plasmatorpedoesweapon', 'zealotshakurasacgluescreendummy', 'smcharbattlezoneflag', 'xelnagadestructibleblocker8s', 'phoenixbomber', 'alarakpsiorbmissile', 'extendingbridgeneshort8', 'd8chargeweapon', 'xelnagaprison', 'slivancreepspawnweapon03', 'spearofadunsingletarget', 'disruptoracgluescreendummy', 'primalhydraliskweapon', 'mercreaperd8chargeweapon', 'artanisvoidaiur6', 'sjpointdefensedronereleaseweapon', 'ss_backgroundspacezerg00', 'experimentalplasmagunweapon', 'compoundmansion_doorn', 'truck', 'coopmurvarpukeweapon', 'supplicantweapon', 'protossbridgenwshort8', 'photoncannonacgluescreendummy', 'npswarmweapon', 'hybridultraliskshackled', 'smmarsarabarbriefingtvportrait4', 'aberrationacgluescreendummy', 'yoinkvikinggroundmissile', 'destructiblegatestraightverticallowered', 'shadowcloudepilogue01', 'hhatslaserbatterylmweapon', 'urunweaponleft', 'smhavenplanet', 'devoureracgluescreendummy', 'tempestweaponground', 'locusteggcreeperaweaponmissileweapon', 'smhyperioncorridorprops', 'hybridnemesisstreamweapon', 'voidthrashergroundmissile', 'atslaserbatterylmweapon', 'portcity_bridge_unite12out', 'xelnaga_caverns_floating_bridgene8', 'zergtowerartilleryfiremissile', 'umojanlabdoorswiderightlowered', 'smmarsarabarbriefingset', 'swarmqueenacgluescreendummy', 'lokihurricanemissileleft', 'xelnagatempledoorlargenwlowered', 'murvarcreepspawnweapon04', 'ss_powerupsidemissiles', 'mutaliskegg', '14slotbag', 'hightemplarskinpreview', 'extendingbridgedirtynwlong8out', 'dehakaguardianminecharge', 'system_snapshot_dummy', 'smcameraterran10', 'portcity_bridge_units10', 'smmarsarabarset2', 'raisingplatformdiagonalnwselowered', 'novapenetratorroundmissile', 'smcharbattlezoneradiohs', 'gehennacruiserlmweapon', 'compoundmansion_doorne', 'hotsleviathanscourgemissile', 'hhatalaserbatterylmweapon', 'smbralik', 'ghostmengskacgluescreendummy', 'dehakaconsumelaunchtargetmissile', 'bansheeacgluescreendummy', 'beacon_terransmall', 'shapethicktorus', 'viperconsumestructureweapon', 'zagaraacidsalivaweapon', 'smterran01fx', 'smx1evolutionmasterbase', 'xelnagaconstructchasebeamunit', 'smx1dominionspaceset01', 'smcameraterran04', 'dehakaairweapon', 'xelnagatempledoorlargee', 'smhyperionbridgetraynor03briefingcamera', 'xelnaga_caverns_floating_bridgev8', 'dehakamutaliskglaivewurmattack4missile', 'slaynelementalgrabaoeweapon', 'ss_backgroundspace02', 'hhvalkyrieweapon', 'spinecrawleracgluescreendummy', 'fireworksblue', 'smvalerianobservatoryset2', 'portcity_bridge_unitw12out', 'locustmpweapon', 'symbiotestabweapon', 'slaynelementalgrabaoegroundunit50', 'fuelcellpickupunit', 'smmarine02aod', 'ravenshreddermissileweapon', 'adeptweapon', 'hotsbioplasmiddischargeweapon', 'extendingbridgenelong8out', 'snowrefinery_terran_extendingbridgenwshort8out', 'xelnagatempledoorlargene', 'medivacmengskacgluescreendummy', 'ravenscramblermissile', 'slaynelementalgrabaoeairunitcolossi', 'talonsmissileweapon', 'ravagerweaponmissile', 'smbountyhunter', 'smterran06afx', 'purifier_doorne', 'devourermissile', 'smhyperioncantinastage1corkboardhs', 'korhalgatecontrol', 'xelnaga_caverns_floating_bridgenw12', 'alarakrevivebeacon', 'archivesealed', 'smmarsarabarbadgehs', 'mutatorplaguecloudsmall', 'banshee_blackopsairstrikefakeattackweapon', 'smleekeno', 'portcity_bridge_unite12', 'sjgriffonweapon', 'hotshunterplaceholder', 'smx1mutaliskt1b', 'planetcrackerulnarunit', 'strikegoliathacgluescreendummy', 'slivancreepspawnweapon09', 'shapecrescentmoon', 'thormengskacgluescreendummy', 'dehakaplaceholder', 'mercvultureweapon', 'missileshooterchannel7weapon', 'securitygatediagonalulbrlowered', 'smbridgeplanetspaceasteroids', 'locustweapon', 'matriarchdnapickup', 'smhyperionexteriorhologram', 'roachvileacidsalivaweapon', 'forcefieldemitter', 'umojanlabwalldoorsleft', 'fenixtalisadeptbounceshotlm8weapon', 'ss_backgroundspaceterranlarge', 'roguepurifierairweapon', 'smhyperioncantinatoshcameras', 'mutatorcloakedmineweapon', 'mengskreaperd8chargeweapon', 'voidseekercrashed', 'xelnagatempledoorlargenlowered', 'umojanlabdoorswideright', 'mutaliskbroodlordacgluescreendummy', 'smhyperioncantinahydraclawshs', 'kaiserwormscourgemissile', 'fenixtalisadeptbounceshotlm4weapon', 'hotsleviathantentacledmissile', 'weapon', 'terrazinenodehappyprotoss', 'cybrosescorttowergroundweapon', 'smmarsarabarcorkboarditem7hs', 'portcity_bridge_unitne12', 'ss_backgroundspaceprot00', 'nydusdestroyerdeeptunnelplacement', 'stukovaleksandertentaclecmissile', 'dnapickup', 'shapegolfclub', 'dehakamutaliskairlevel3glaivewurmattack1missile', 'ss_carrier', 'smmarsarabarbriefingtvportrait3', 'selendispossessed', 'smterran16fxflak', 'mutaliskeggmissile', 'hhd8clusterbomb', 'sjspacestationvalerianweapon', 'shapegrape', 'dehakaravasaurweapon', 'smterran12fx', 'broodlordbweapon', 'smmarsarabarbriefingsetleft', 'shipalarm', 'coopglaivewurmm5weapon', 'warbotbmissile', 'metalgatestraighthorizontallowered', 'acpiratecapitalshiprightlmweapon', 'shapejack', 'enemypathingblocker2x2', 'raisingplatform6x4raised', 'hybriddoorsthinrightlowered', 'needlespinesweapon', 'fenixchampionweapon', 'devastatingshotweapon', 'zealothallucination', 'webweapon', 'shadowarchon', 'starshipadun_jumppaddoore', 'soapylonpowerunit', 'xelnagatempledoorlarges', 'collapsibleterrantowerpushunitrampleft', 'sjspacestationmercenaryweapon', 'starshipadun_doorn', 'xelnagaprisonconsole', 'hhhellionpunishergrenadeslmweapon', 'cyclonemissilelargeair', 'compoundmansion_doornlowered', 'tychusmedicacgluescreendummy', 'portcity_bridge_unitse12', 'zeratulstalkeracgluescreendummy', 'stukovinfesteddiamondbacksnareattackmissile', 'hydraliskimpalemissile', 'maraudermagrailmunitionslaunchmissile', 'aiurtemplestonegatestraightverticallf', 'sjmineralformation2', 'xelnagatempledoorlargeselowered', 'smbridgeplanetagria', 'corruptionweapon', 'smdonnyvermilliondeath', 'zeratulphasecannonplaceholder', 'xelnaga_caverns_doorse', 'voidtendrilunstableenergy', 'sjvikingweapon', 'mutaliskmengskglaivewurmattack2missile', 'broodlordstetmannyamatoweapon', 'shakuraslightbridgenw12out', 'warpprismskinpreview', 'zeratuldarktemplaracgluescreendummy', 'aleksandercrash_placeholder', 'purifier_doornw', 'invisibletargetdummy', 'portcity_bridge_unitsw12', 'darktemplarshadowfurylaunchplaceholder', 'smarmoryspectrecratephcrate', 'hhbattlecruiser_spawnerunit', 'smterran11fx', 'portcity_bridge_units12', 'smcharbattlezoneturret', 'brutaliskcocoonravager', 'mechaspinecrawleracgluescreendummy', 'xelnagadestructibleblocker8nw', 'hybriddoorswideleft', 'portcity_bridge_unite10', 'destructiblegatestraightverticallflowered', 'collapsiblerocktowerpushunitrampleft', 'fenixchampionairairright', 'smhyperionmedlabstage1artifacths', 'smdonnyvermillion', 'smvalerianmengsk', 'smx1eggroomroachegg', 'murvarrangedweapon', 'purifiercellblock8x12c', 'ravageracgluescreendummy', 'lightningshooter', 'newsarcturuspressroom', 'hybridstasischamberareleaseweapon', 'xelnaga_caverns_floating_bridgene8out', 'shapesadface', 'goliath_blackopsspawnerunit', 'smbridgeplanetredstone', 'xelnagadestructibleblocker8se', 'ravasaurweapon', 'smterran11fxblood', 'smterran05fxmutalisks', 'shakurasbaseshieldtargetlow', 'spaceplatformdestructiblesmallblocker', 'sjhyperionyamatoweapon', 'moebiuslabdoorswideleftlowered', 'spaceprisondoorswideright', 'pukepuddle', 'beaconcustom1', 'shapeapple', 'raisingplatformdiagonalnwseraised', 'alaraksoulstealdummyattackmissile', 'amontentacleb', 'hybridsecuritywallleftlowered', 'locusteggbweaponmissileweapon', 'artanisblinkaiur02missile', 'mechaoverseeracgluescreendummy', 'zeratulstalkerghost', 'smcharbattlezoneset2', 'powerradius_stetmann_terrain', 'mengskreaperplaceholder', 'aiurlightbridgenw8', 'carrierrepairdrone', 'xelnaga_caverns_doorne', 'mengskbansheeweapon', 'mutatorpurifierbeam', 'guntowerweapon', 'primalimpaleracgluescreendummy', 'codxelnagaconstructmissilesweapon', 'purifier_doornwlowered', 'smhyperionmedlabzergcryotube3hs', 'soagravitonbombmissile', 'fenixwarbringercolossuspowershotattackmissile', 'securitygatediagonalulbr', 'fenixtalisadeptbounceshotlm6weapon', 'hotsleviathantentaclebmissile', 'smannabelle', 'novaplasmapuddlesmall', 'stasiscocooncontroller', 'lurkercoopweapon', 'portcity_bridge_units10out', 'dehakamutalisklevel3glaivewurmattack4missile', 'xelnaga_caverns_floating_bridgene12out', 'aiurlightbridgeabandonednw8out', 'smhyperionbridgestage1hansoncameras', 'nullunit', 'tornadomissileweapon', 'spikeburstweapon', 'voidcorruptionmissileweapon', 'creeptumorstukov', 'infestorstetmanninfestbuildingweapon', 'dehakalocusteggamissileweapon', 'smx2_bridge07', 'sciencevesselacgluescreendummy', 'nyduscanalattackerweapon', 'aiurtemplebridgene12out', 'shapegemstone', 'mechabanelingacgluescreendummy', 'smmarsarabarbriefingset2', 'hybridlabdoorsleft', 'multikillobject', 'hhreaperd8chargeweapon', 'zeratulphotoncannonprojection', 'xelnagadestructibleblocker6se', 'starshipadun_doorsmallelowered', 'spawnbroodlingsweapon', 'marauder_blackopslmweapon', 'xelnaga_caverns_doore', 'infestedbansheeweapon', 'zeratulacartifact', 'fenixmojoscoutairweaponright', 'accelerationzoneflyingmedium', 'hhd8centercluster', 'extendingbridgenewide8', 'purifiercellblock8x8b', 'voidthrasherspawnroachmissile', 'mammothbreath', 'giantyetileapmissile', 'extendingbridgenewide10', 'troopermengskrocketattackmissile', 'smhyperionbridgestage1battlecommandhs', 'smearl', 'seekermissile', 'blocker4x4', 'alaraksupplicantwarptraincreator', 'roachstetmannattackmissile', 'starshipadun_doornwlowered', 'smmarsarabarset', 'amonshardbweapon', 'slaynelementalgrabaoegroundunit125', 'tychusreaperacgluescreendummy', 'primalroachacgluescreendummy', 'narudepiloguespawnmissile', 'fireroachacgluescreendummy', 'ioncannonsweapon', 'adeptupgradeweapon', 'nydusbeast', 'codxelnagaconstructchasebeamunit', 'devourtonguemissile', 'extendingbridgenwwide8', 'smmarsarabarbriefingtvportrait1', 'smx1ultraliskt1a', 'locusteggcreeperamissileweapon', 'aiurtemplebridgene10out', 'smx2_armyroomset00', 'soaplanetcrackeraunit', 'aiurtemplestonegatestraighthorizontalfflowered', 'protossbridgenelong8', 'aiurtemplebridgenw8out', 'spaceprisondoorswidemelt', 'starshipadun_doornelowered', 'selendisvoid', 'shadowtendril', 'pitmalashsupermoveweapon', 'hybridreleaseweapon', 'zergtowerartillerylaunchswarmmissile', 'thebridgealpha01', 'smhyperionbridgestage1hornercameras', 'virophagemissile', 'smcameraterran13', 'starshipadun_doorsmallne', 'ss_scout', 'slaynelementalgrabweapon', 'immortalacgluescreendummy', 'hellbat_blackopsspawnerunit', 'spaceplatformcliffdoor0', 'observeracgluescreendummy', 'locustflyingeggaweaponmissileweapon', 'smhyperioncantinaposter2hs', 'hammersecuritylmweapon', 'shadow01yamatoblastmissile', 'tutorialpurifierbeamunit', 'fenixthunderouschargecoopplaceholder', 'smcharbattlezonebriefcasehs', 'primalmutaliskacgluescreendummy', 'acpiratecapitalshiptractorbeam', 'gasbeamautopickup', 'duskwingweapon', 'hhwraithweapon', 'hhbattlecruiseracgluescreendummy', 'fenixtalisadeptbounceshotlm5weapon', 'helsangelfighterweapon', 'collapsibleterrantowerpushunitrampright', '18slotbag', 'extendingbridgedirtynwlong10out', 'smhyperioncantinastage1progress5hs', 'shapecapsule', 'd8clusterbombweapon', 'slivancreepspawnweapon01', 'bansheeairstrikeplaceholder', 'hydraliskgroundweaponstetmann', 'mengskbcalmweapon', 'soamothershipblinkstrikemissile', 'aiurlightbridgeabandonedne10', 'wraithgroundweapon', 'zeratultransportvoidseeker', 'locusteggaweaponmissileweapon', 'smmarsarabarcorkboarditem9hs', 'noxiouscreepunit', 'swannspecialdeliverydropship', 'pointdefensedrone_blackopsreleaseweapon', 'kerriganepilogue03strikeamontarget', 'archangelcoopbombardmentflybyweapon', 'smgenericmalegreasemonkey02', 'narudepiloguevoidmissileweapon', 'shapedodecahedron', 'narudepiloguemine', 'xelnaga_caverns_doornwopened', 'sporecrawleracgluescreendummy', 'extendingbridgedirtynwshort8out', 'beacon_zerg', 'hybridbehemothcoopbossantiairattackweapon', 'xelnagadestructibleblocker6nw', 'stranglerbeastweaponmissile', 'defensivewall45gatelargewestlowered', 'smgenericmaleofficer02', 'lokiyamatoweapon', 'smarmoryrifle', 'newstveffect', 'dehakaplacement', 'voidspearofadun', 'moebiuslabdoorswideleft', 'shapecone', 'perditionturretacgluescreendummy', 'smhyperionbridgebriefingright', 'smhyperionmedlabstage1doorhs', 'portcity_bridge_unite10out', 'broodlordaweapon', 'smx1eggroommutaliskegg', 'novagriffinbombingrundummyaltlmweapon', 'umojanlabcrashsitesmall', 'archiveshakuras', 'dehakaconsumemissile', 'shapesoccerball', 'abathursymbiotebrutalisk', 'extendingbridgedirtynwwide10out', 'voidtendrilvoidzoneweapon', 'shapetennisball', 'primalswarmhostacgluescreendummy', 'hhd8singlecluster', 'sjpiratecapitalshipleftlmweapon', 'destructiblegatestraighthorizontallowered', 'tarsonis_doornw', 'securitygatestraighthorizontal', 'hornerairfleetlaserweapon', 'smmutalisk', 'smterran06cfx', 'hyperionkorhalyamatoweapon', 'smhyperioncantinastage1tvhs', 'yagdrafireballweapon', 'smhyperioncantinastage1exiths', 'siliberatoracgluescreendummy', 'raven_blackopsspawnerunit', 'aiurlightbridgeabandonednw10out', 'spaceprisondoorswideleftlowered', 'mutatorboombothelper', 'shakurasbaseshieldtargethigh', 'starshipadun_jumppaddoornwlowered', 'smbridgewindowspace', 'mutatoramonkaraxinvisiblepylon', 'voidriftunselectable', 'smmarsarabarbriefingtvmain3', 'smx2_bridge02', 'alarakrushplaceholder', 'shapeplussign', 'smvalerianobservatorystarmap', 'smcameraterran02b', 'locusteggcreeperbweaponmissileweapon', 'warpprismtaldarimweaponmissile', 'collapsibleterrantowerpushunit', 'portcity_bridge_unitnw10', 'zhakuldaslightbridgeofftopright', 'dehakamutaliskglaivewurmattack2missile', 'protosspurifiergatewideright', 'slaynelementalgrabaoeairunit75', 'hybridsingularityfeedbackweapon', 'repulserfield12', 'shakuraslightbridgenw8out', 'shapesphere', 'smhyperionlabartifactbasehs', 'novagadgetflashbanggrenadesweapon', 'murvarcreepspawnweapon00', 'starshipadun_doorsmalln', 'collapsiblerocktowerpushunitrampright', 'powerconductor', 'smx1zagara', 'missileturretmengskacgluescreendummy', 'securitygatestraightverticallf', 'biostasismissile', 'narudepiloguemineweapon', 'acpirateyamatobweapon', 'smraynormarine', 'questionmark', 'parasiticbombdummy', 'acidsalivaweapon', 'hhwidowmineweapon', 'zeratulphotoncannonacgluescreendummy', 'inhibitorzonesmall', 'devourertissuesample', 'liberatordamagemissile', 'xelnagatempledoorlargenelowered', 'shapebox', 'gwdummy', 'smmarsarabarcorkboarditem4hs', 'smgenericmalegreasemonkey01', 'smhall', 'deployspiderminesmissile', 'extendingbridgenwlong8', 'brutaliskcocoondefiler', 'karaxservitorweapona', 'novagriffinbombingruntargeter', 'portcity_bridge_unitse10out', 'goliathacgluescreendummy', 'spaceplatformdestructiblejumboblocker', 'darkpylonacgluescreendummy', 'hyperionvoidcoopgroundattackweapon', 'xelnaga_caverns_floating_bridgene10out', 'extendingbridgeneshort10out', 'smcamerabridge', 'zealotacgluescreendummy', 'xelnaga_caverns_doorwopened', 'greaternydusdestroyerdeeptunnelplacement', 'starshipadun_jumppaddoorne', 'stalkertaldarimacgluescreendummy', 'smhyperioncantinastage1set', 'prophecycamera', 'smcameraterran08', 'sjhyperionweapon', 'shadowyamatomissile', 'overseerzagaraacgluescreendummy', 'mengskwraithgroundweapon', 'soalaserattackmissile', 'darkarchonweapon', 'marsarabridgebrul', 'newsmeinhoffrefugeecenter', 'dehakaacidsporesmissile', 'smbridgeplanetspace', 'tentaclemissile', 'smarmoryvikingphcrate', 'smx2protossvorazun', 'food1000', 'portcity_bridge_unitnw10out', 'mechalurkeracgluescreendummy', 'ss_terratronmissilespinnermissile', 'missileshooterburst6weapon', 'dehakamutalisklevel2glaivewurmattack4missile', 'dehakamutaliskglaivewurmattack3missile', 'smhyperionmedlabzergcryotube4hs', 'hhwraithacgluescreendummy', 'aiurtemplestonegatediagonalblur', 'silongboltmissileweapon', 'hydraliskstetmannairweapon', 'queenchannelweaponc', 'spacecowrock', 'dehakagenethornsattackmissile', 'hybriddoorsthinright', 'fenixarbiterweaponmissile', 'dragmissile', 'zergdroppod', 'infestedsiegetankimpalertentacle', 'biomasspickupweapon', 'shapebasketball', 'portcity_bridge_unitnw12', 'voidshardspawnshadowattackweapon', 'xelnagaprisonnorthheight2', 'voidshardacunstableenergy', 'aiurtemplestonegatediagonalblurlowered', 'empmengskweapon', 'mutatorfireworksmissile', 'purifiercellblock12x8b', 'mengskwraithairweaponleft', 'murvarcreepspawnweapon08', 'smterran11fxdebris1', 'l800etc_ad', 'voidthrasherfireballmissile', 'glaivewurmm5weapon', 'ss_leviathantentacler1missile', 'moebiuslabdoorsthinrightlowered', 'ss_lightningprojectorfaceright', 'smx1dominionspaceset02', 'previewbunkerupgraded', 'smx2_armyroomset03', 'terrorlingplaceholder', 'amonhostdeathbeamunit', 'protosschampionbuilding', 'smbridgeplanettarsonis', 'zealotfenixacgluescreendummy', 'smmarsarabarbriefingsetright', 'smkerriganphoto', 'medicacgluescreendummy', 'murvarcreepspawnweapon09', 'voidsliveracunstableenergy', 'umojanlabdoorsleftlowered', 'smx1leviathanset03', 'smterranreadyroomlefttv', 'aiurcitywarpgateabandoned', 'novaweaponplasmablastnewlaunchmissile', 'amontentaclec', 'smvalerianobservatoryprops', 'unbuildableplatessmallunit', 'soawarpinreinforcementspowerunit', 'inhibitorzonemedium', 'scoutacgluescreendummy', 'beacondefend', 'starshipadun_doorsmalle', 'sentrytaldarimacgluescreendummy', 'hornerairfleetstrafer', 'smhyperionlabartifactpart1hs', 'smvalerianobservatoryset', 'beaconauto', 'zagaravoidcooprangedweapon', 'coopglaivewurmm6weapon', 'ss_fightermissileleft', 'hybridcplasmaweapon', 'abathurlocusteggbmissileweapon', 'aiurtemplestonegatediagonalblurrflowered', 'smmarsarabarcorkboarditem1hs', 'korhaldestructibleplatformsmall', 'zeratulentropicblastweapon', 'tyrannozoracgluescreendummy', 'blightbringervilestream', 'novapsiemitterreleaseweapon', 'ss_scoutmissile', 'hhravenhealpodweapon', 'celestiallockburrowed', 'umojanlablabgate00leftlowered', 'missileturretacgluescreendummy', 'scarab', 'murvarcreepspawnweapon06', 'mutatorhybridimmortaldead', 'garystetmannorbmissileunempowered', 'aiurlightbridgene8out', 'portcity_bridge_unitn12out', 'purifier_doorsmalln', 'npswarmtentaclemissile', 'mutatoramontychusgrenadeweapon', 'defilermpdarkswarmweapon', 'heavysiegetankacgluescreendummy', 'novagriffinbombingrunstrafer', 'sentrymine', 'spaceprisondoorswideleft', 'snowglazestartermp', 'smx1mutaliskt1', 'broodmotherweapon', 'platformplate', 'glaivewurmweapon', 'karaxmicrobotactivated', 'smgenericmaleofficer01', 'siliberatorcloud', 'xelnagadestructibleblocker6ne', 'newsarcturusinterviewset', 'voidchasmdormant', 'starshipadun_doorswlowered', 'slivancreepspawnweapon', 'beaconcustom3', 'ravagerstetmanncorrosivebileaoemissile', 'tutorialattackbeacon', 'emp2weapon', 'goliath_blackopsaweapon', 'smvalerianflagshipcorridorsset', 'aiurlightbridgeabandonednw10', 'fenixclolarionbomberweapon', 'zurvanspawnprimalultraliskweapon', 'smhyperioncantinastage1progress6hs', 'tychuswarhoundacgluescreendummy', 'stukovinfestedcivilianacgluescreendummy', 'smhyperionbridgestage1tychuscameras', 'extendingbridgenewide10out', 'extendingbridgedirtynelong8out', 'brutaliskcocoonqueen', 'enemypathingblocker8x8', 'hornerairfleetyamatoweapon', 'hybriddoorswideleftlowered', 'mutaliskglavewurmattack4missile', 'alarakpsiorbupgraded', 'extendingbridgenewide12', 'hhwidowmineacgluescreendummy', 'primalsunkencolonyweapon', 'smbridgeplanetaiur', 'smx2protosssmith', 'compoundmansion_doorelowered', 'essencepickupweapon', 'hybridstasischamberbreleaseweapon', 'hhordnancetowerweapon', 'specopsghostacgluescreendummy', 'yoinkmissile', 'pylonpowerallyunit', 'voidchasmspawnshadowmissile', 'aiurtemplebridgenw12out', 'beacon_protoss', 'zerglingrespawncontrollerunit', 'shapeshamrock', 'fenixdragoonattackmissile', 'zeratuldisruptoracgluescreendummy', 'smzergling', 'backlashrocketslmweapon', 'archangelaa', 'colossusfenixacgluescreendummy', 'mutatorboombot', 'brakkairweapon', 'tarsonis_doorne', 'zerglingkerriganacgluescreendummy', 'sistukovrallybeaconpsiemitterpoint', 'aiurlightbridgene10', 'fenixtalisshadeweapon', 'smx1leviathanset', 'mutatorgift', 'aiurtemplebridgenw10out', 'destructiblegatestraighthorizontalbflowered', 'ss_phoenixmissile', 'sjvalkyrieweapon', 'd8charge', 'smterranreadyroomrighttv', 'beacon_terran', 'ss_leviathanbomb', 'mutatorwidowmineweapon', 'smterran11propsburrowrocks', 'xelnagadestructibleblocker6sw', 'shapeicosahedron', 'hybridsecuritywallrightlowered', 'smterran11propsrifleshells', 'hybridreleasefallbackunit', 'vulcanchampion', 'smcade', 'extendingbridgenwlong8out', 'fenixadeptshadeweapon', 'aiurtemplebridgedestructiblesw12out', 'hhvikingrocketsmissile', 'atslaserbatterymengsklmweapon', 'beacon_zergsmall', 'stukovinfesteddiamondbackacgluescreendummy', 'pickupmineralsair', 'missileshooterchannel2weapon', 'zagarahunterkillerweapon', 'stukovinfestedsiegetankdeeptunnelplacementunit', 'tychusmarauderhealingwardreleaseweapon', 'xelnagatempledoorlargew', 'smcharbattlezoneset', 'smx1zerglingt1a', 'pathingblocker6x6diagonal', 'xelnaga_caverns_floating_bridgenw12out', 'shapepoundsign', 'smunncamera', 'fenixmojoscoutairweaponleft', 'dehakamutalisklevel3glaivewurmattack1missile', 'mindsiphonweapon', 'ss_backgroundspace00', 'sporecrawlerweapon', 'infestedventmutaliskegg', 'stukovaleksandertentacledmissile', 'grappleweapon', 'soavortexstormunit', 'lurkerstetmannweapon', 'starshipadun_doorwlowered', 'planetcrackerpurifierunit', 'smcharbattlefieldendprops', 'flamingbettyacgluescreendummy', 'zeratulobserveracgluescreendummy', 'punishergrenadesmengsklmweapon', 'xelnagadestructibleblocker8ne', 'mutatoramonkaraxservitorweapona', 'siliberatorweapon', 'xelnagadestructibleblocker8sw', 'smhyperionarmorystage1set03', 'aiurtemplestonegatestraighthorizontalbflowered', 'shapetreasurechestopen', 'mutatoramonzagararangedweapon', 'purifier_doorelowered', 'starshipadun_doornlowered', 'archonacgluescreendummy', 'ravagercorrosivebilemissile', 'primalroachweapon', 'umojanlablabgate01leftlowered', 'tarsonis_doornlowered', 'protossbridgeneshort10', 'starshipadun_jumppaddoorn', 'smhyperionmedlabstage1consolehs', 'hyperionalmweapon', 'kerriganepilogue03burrowed', 'smhyperionmedlabprotosscryotube0hs', 'aiurtemplebridgedestructiblenw12out', 'mirastarportmissile', 'portcity_bridge_unitn12', 'vikingfighterweapon', 'shapehockeypuck', 'hhraven_spawnerunit', 'powerconductorlock', 'locustflyingeggamissileweapon', 'smx1banelingt1b', 'unbuildablerocksunit', 'tornadomissiledummyweapon', 'zeratulxelnagaconstructpsiblastweapon', 'spartancompanyaweapon', 'novaunitlockdownmissile', 'primalultraliskacgluescreendummy', 'hhscrappickup', 'creeptumormissile', 'extendingbridgedirtyneshort10out', 'murvarcreepspawnweapon03', 'smx2_bridge00', 'ss_fightermissileright', 'roughterrain', 'maraudercommandoacgluescreendummy', 'metalgatestraighthorizontalbf', '22slotbag', 'smarmoryspiderminephcrate', 'impalerabathurplacement', 'aiurtemplebridgedestructiblese12out', 'smarmoryghostcratephcrate', 'locustmpeggbmissileweapon', 'malashpitfightweapon', 'extendingbridgedirtynewide10out', 'ss_leviathanbombmissile', 'smhyperionmedlabprotosscryotube1hs', 'stasiscocooncontrollerair', 'smhyperionmedlabzergcryotube1hs', 'portcity_bridge_unitsw10out', 'parasitesporeweaponstetmann', 'slivancreepspawnweapon02', 'extendingbridgedirtynelong8', 'zeratulentropicblastcyanweaponspawner', 'helperemitterselectionarrow', 'voidseekerphasemineblastsecondaryweapon', 'zagarasinitialcocoonblocker', 'collapsiblerocktowerdebrispurifier02', 'colossustaldarimacgluescreendummy', 'hailstormmissilesweapon', 'brutaliskcocoonroach', 'aiurlightbridgeabandonednw8', 'firebatacgluescreendummy', 'smhyperionmedlabstage1set', 'extendingbridgedirtynewide8', 'novagadgetswarmgrenadesweapon', 'swarmqueenacidspinesmissile', 'sporecrawlerstetmannweapon', 'smterran12props', 'creepblocker13x13', 'drakkenlaserdrillnukeattackmissile', 'moebiuslabdoorswideright', 'xelnaga_caverns_floating_bridgenw10out', 'portcity_bridge_unitn10out', 'protossbridgenelong10', 'overseeracgluescreendummy', 'guntowercweapon', 'smmarsarabarcorkboarditem8hs', 'blasterbillyacgluescreendummy', 'amonepilogue03unit', 'novaeradicatormissileweapon', 'beaconcustom2', 'smmarsarabarbriefingtvportrait2', 'hyperionkorhalgroundweapon', 'garystetmannorbmissileempowered', 'purifiercellblock12x12b', 'xelnaga_caverns_floating_bridgene12', 'pathingblocker16x16diagonal', 'shapetube', 'karaxmicrobotdeactivated', 'ballofdeath', 'slivancreepspawnweapon00', 'hhmercstarportcargo', 'stetmannsparepartsmissile', 'fenixaltarofpsistormsbroken', 'smhyperionbridgestage1windowhs', 'yoinkvikingairmissile', 'slaynelementalgrabaoeairunit200', 'zurvansubmerged', 'korhalsporecannonmissile', 'zhakuldaslightbridge', 'smmarsarabarjukeboxhs', 'smhyperioncantinaposter5hs', 'portcity_bridge_units8out', 'hhwidowmineairweapon', 'zhybridplasmaweapon', 'solodummy', 'portcity_bridge_unitw8out', 'stukovaleksandertentacleamissile', 'xelnagatempledoorlargen', 'aiurlightbridgenw8out', 'dehakaroachlevel2weapon', 'scantipedeparasiticweapon', 'kerrigansinitialcocoonblocker', 'fenixmanadummy2', 'smterran07fx', 'dehakamirrorimageweapon', 'smdonnyvermillionset', 'locustmpprecursor', 'smterran09fx', 'ss_backgroundspacelarge', 'murvarcreepspawnweapon05', 'zeratulwarpprismacgluescreendummy', 'troopermengskweaponimprovedpickup', 'vikingmengskairmassiveattackmissile', 'destructiblegatediagonalblurlowered', 'smx1ultraliskt1', 'smcharcutscenes00', 'stukovinfestedsiegetankimpalertentacle', 'ascendantsacrificeweapon1', 'smx2protossartanis', 'xelnagadestructibleblocker6s', 'infestorstetmannhealingtentacleweapon', 'dummylight', 'zagaravoidcoopbanelingbarrageweapon', 'starshipadun_doorsmallnw', 'smhyperionlabcowincameras', 'fenixchampionairairleft', 'itemgrenadesweapon', 'shapepyramid', 'spaceprisondoorsthinleftlowered', 'parasiticbombmissile', 'zergdroppodcreep', 'testherodebugmissileability1weapon', 'smbridgeplanetulnar', 'smhyperionbridgestage1bow', 'fenixmanadummy1', 'beaconrally', 'impalerweapon', 'xelnaga_caverns_floating_bridgenw10', 'compoundmansion_doornelowered', 'narudepilogueshadowstep', 'scoutairweaponleft', 'smhyperionmedlabstage1setlights', 'marinewarfieldweapon', 'vikingmengskacgluescreendummy', 'mutatorplaguecloud', 'kerriganvoidkineticblastweapon', 'extendingbridgenwshort8out', 'shakuraslightbridgene10', 'dehakaroachweapon', 'damageddrakkenlaserdrillcoop', 'queenclassicparasitemissile', 'gorgoncruisermissile', 'smhydralisk', 'biodischargemissile', 'tentaclecmissile', 'poisongascloud', 'smleekenoset', 'stukovinfestedmissileturretacgluescreendummy', 'murvarcreepspawnweapon01', 'neuralparasitetentaclemissile', 'spinecrawlerweapon', 'dehakamutalisklevel3glaivewurmattack3missile', 'malashpitfightkillweapon', 'smbridgeplanetportzion', 'xelnaga_caverns_floating_bridgeh8out', 'smbridgeplanetvalhalla', 'battlecruisermengskacgluescreendummy', 'banshee_blackopsweapon', 'xelnagaprisonnorth', 'slivancreepspawnweapon05', 'smmarauderphcrate', 'raptoracgluescreendummy', 'blightbringerburrowed', 'placewormholeunit', 'smx3_stetmann_coop_commander', 'swarmhostacgluescreendummy', 'collapsiblerocktowerpushunit', 'blackopsmissileturretacgluescreendummy', 'darktemplarshakurasacgluescreendummy', 'umojanlabdoorsthinleftlowered', 'mutatoramonzagarabanelingbarrageweapon', 'beaconattack', 'teamcolorsourceunit', 'smmarsarabarbriefingtvmain2', 'artillerymengskacgluescreendummy', 'stukovinfesteddiamondbackbilestreamspraymissile', 'invisiblepylon', 'fenixtalisadeptupgradeweapon', 'smhyperionarmorystage1swanncameras', 'extendingbridgeneshort8out', 'fenixchampionplaceholder', 'smcharbattlezonedropshiphs', 'murvarcreepspawnweapon11', 'beacon_nova', 'xelnagahealingshrine', 'infestedabominationvomitweapon', 'smcameraterran01', 'smhyperionmedlabprotosscryotube4hs', 'shapeorangesmall', 'guardianacgluescreendummy', 'hotsraptorchargemissile', 'aiurtemplestonegatestraightverticalrflowered', 'brutaliskacgluescreendummy', 'protossbridgenwshort10', 'ashwormweapon', 'smarmorydropship', 'mutaliskmengskglaivewurmattack3missile', 'smhyperionmedlabstage1set2', 'portcity_bridge_unitne12out', 'mutaliskglavewurmattack2missile', 'nukenoodlescommercial', 'liberator_blackopsdamagemissile', 'bubbacommercial', 'pathingblockerradius1', 'artanisvoidulnarweapon', 'smbridgeplanetavernus', 'aiurtemplestonegatediagonalblurrf', 'taurenouthouse', 'thebridgecannonweapon', 'aiurtemplebridgedestructiblesw8out', 'valhallabasedestructibledoordead', 'checkstationverticalopened', 'destructiblegatestraighthorizontalbf', 'mechabattlecarrierlordacgluescreendummy', 'xelnagatempledoorburrowed', 'xelnaga_caverns_doornw', 'smbridgeplanetbelshir', 'ss_scourge', 'shapepeanut', 'maraudermengskacgluescreendummy', 'umojanlabdoorsthinright', 'spaceprisondoorswiderightlowered', 'slaynelementalgrabaoeairunit250', 'extendingbridgenwwide12', 'portcity_bridge_unitnw8', 'zeratulimmortalshadowcannonmissile', 'enemypathingblocker1x1', 'pnphybridvoidrift', 'artifactulnarpedestalorange', 'disruptorweapon', 'spaceprisondoorsthinrightlowered', 'smhyperioncantinastage1arcadegamehs', 'urunweaponright', 'smshadowbox', 'fenixpurificationnova', 'fenixtalisadeptbounceshotlm2weapon', 'carrierinterceptorbombweapon', 'megalithcutterweapon', 'militarizedcolonistshipairlmweapon', 'portcity_bridge_unitw12', 'ss_powerupbomb', 'smcharbattlezonebriefingsetleft', 'stukovinfestedbunkeracgluescreendummy', 'bioplasmiddischargeweapon', 'corsairacgluescreendummy', 'invisibletutorialhelper', 'ascendantweapon', 'leviathanscourgemissile', 'locustmpeggamissileweapon', 'smcameraterran12', 'purifier_doorsmallnelowered', 'shapehockeystick', 'spaceprisondoorsthinright', 'tarsonis_doornelowered', 'hybridreleasevoidweapon', 'hhmissileturretacgluescreendummy', 'smhyperionmedlabzergcryotube0hs', 'battlecruiserheliosalmweapon', 'marauder_blackopsspawnerunit', 'shape8pointstar', 'ss_leviathantentacletarget', 'smhyperionbridgebriefingleft', 'wraithairweaponright', 'scoutmpairweaponleft', 'stukovbroodqueenacgluescreendummy', 'slaynelementalgrabaoegroundunit100', 'marauderacgluescreendummy', 'shakurasbaseshieldtargetmedium', 'starshipadun_jumppaddoorsw', 'slivanpukeweapon', 'portcity_bridge_unite8', 'psiboltweapon', 'hydraliskmengskneedlespine', 'raisingplatform8x8raised', 'archangelpnpmissileweapon', 'shipforcefieldwallurbl', 'overlordgeneratecreepkeybind', 'broodlordeggmissile', 'umojanlabwalldoorsright', 'shapemoneybag', 'stukovinfestedtrooperacgluescreendummy', 'ss_fighterdronemissile', 'npdominationtentaclemissile', 'spitmissile', 'shakuraslightbridgene8', 'aiurtemplestonegatestraighthorizontalbf', 'ss_terratronmissilespinner', 'purifiercellblock12x8a', 'smterran06bprops', 'soapylonpowerallyunit', 'dehakahydralisklevel2weapon', 'photoncannontaldarimacgluescreendummy', 'shapesmileyface', 'smhyperioncantinastage1set2', 'ss_lightningprojectorfaceleft', 'shakuraslightbridgenw10out', 'smterran11fxexplosions', 'alarakaaweapon', 'spacecowrocksmall', 'xelnaga_caverns_floating_bridgev12out', 'smcharbattlezonebriefingset', 'guntowerbweapon', 'redstonesalamanderfireballweapon', 'elitemarineacgluescreendummy', 'smzergedhanson', 'sjhyperionbweapon', 'tutorialcamerabeacon', 'xelnaga_caverns_floating_bridgev8out', 'aiurlightbridgeabandonedne12', 'umojanlablabgate00rightlowered', 'destructiblegatestraightvertical', 'shapegolfball', 'infestedwraithsnareattackmissile', 'taldarimforcefieldgatesw', 'bansheeairstrikefakeattackweapon', 'missileshooterburst1weapon', 'adeptfenixacgluescreendummy', '6slotbag', 'hellbatacgluescreendummy', 'pathingblocker2x2', 'smmarsarabartychuscameras', 'ss_terratronmissile', 'lurkeracgluescreendummy', 'artanislightningdashmissile', 'lokihurricanemissileright', 'hightemplarweapon', 'zeratulkhaydarinmonolithplaceholder', 'xelnaga_caverns_floating_bridgene10', 'smcameraterran14', 'hhd8centerclusterupgrade', 'marine_blackopsspawnerunit', 'smterranreadyroomset', 'shaperainbow', 'carrierfenixacgluescreendummy', 'mineralbeamautopickup', 'purifier_doorsmallnwlowered', 'aiurtemplestonegatediagonalulbr', 'hhreaperflyprecursor', 'colossustaldarimweapon', 'ss_sciencevesselmissile', 'sentryfenixacgluescreendummy', 'umojanlabdoorsright', 'tentaclebmissile', 'photoncannonlrweapon', 'checkstationdiagonalbluropened', 'extendingbridgedirtynwwide10', 'ulaansmokebridge', 'progressbardummy', 'acidsporesmissile', 'lavaunit', 'umojanlablabgate01left', 'extendingbridgedirtynelong10', 'missileshooterchannel4weapon', 'smchargatlinggun', 'tychusspectreacgluescreendummy', 'umojanlabdoorsrightlowered', 'smx2_bridge06', 'defilerbonesample', 'extendingbridgenwshort8', 'novagadgetpulsegrenadesweapon', 'shapex', 'starshipadun_jumppaddoorelowered', 'securitygatediagonalblur', 'darktemplarshakurasweapon', 'ascendantsacrificeweapon2', 'portcity_bridge_unitne8out', 'smhyperionbridgestage1set', 'queenmpensnaremissile', 'ancientxelnagaartifact', 'protossbridgenwlong8', 'voidrifttrainmissile', 'weaponhybridd', 'portcity_bridge_unitnw8out', 'smhyperionarmoryviking', 'duelbubbleunitblocker', 'voidimmortalrevivecorpse', 'khaydarinmonolithacgluescreendummy', 'metalgatestraighthorizontalbflowered', 'xelnaga_caverns_doorseopened', 'smfirebat', 'ss_backgroundspaceprotosslarge', 'fungalgrowthmissile', 'slivancreepspawnweapon06', 'smmarsarabarcorkboarditem6hs', 'spinningdizzyacgluescreendummy', 'smhill', 'forcefield', 'hydralisklurkeracgluescreendummy', 'smx2_bridge04', 'immortaltaldarimweaponmissile', 'murvarcreepspawnweapon14', 'smbridgeplanetkorhal', 'zhakuldaslibraryunit', 'shakuraslightbridgenw12', 'kerriganxelnagarevivecocoon', 'extendingbridgeneshort10', 'medivac_blackopsspawnerunit', 'prophecyartifact', 'zurvanspawnprimalzerglingweapon', 'artillerymengskexperimentalstrikemissile', 'novaunitsmokegrenademissile', 'umojanlabdoorswideleftlowered', 'beaconexpand', 'mutatoramonartanisweapon', 'smhyperionbridgestage1battlereportshs', 'missileshooterchannel5weapon', 'broodlordweapon', 'smcharbattlezonebriefingsetright', 'ss_leviathanspawnbombmissile', 'yamatoweapon', 'portcity_bridge_unitsw8', 'shakuraslightbridgene8out', 'smcameraterran20', 'hhvikingfighterweapon', 'smmarsarabarcorkboardhs', 'invisible5x5', 'smtoshknife', 'aiurtemplebridgedestructiblenw10out', 'maarwarpinunit', 'extendingbridgenelong8', 'mechahydraliskacgluescreendummy', 'smterran14props', 'smx1banelingt1', 'stukovaleksandertentacleemissile', 'explosivesporesmissile', 'smhyperioncantinaposter1hs', 'aiurlightbridgene12out', 'tychusreaperbombmissile', 'collapsiblerocktowerpushunitpurifier02', 'smmarsarabarbriefingtvportrait5', 'smcameraterran09', 'tempestacgluescreendummy', 'smhyperioncantinastage1progress3hs', 'smarmorydropshipphcrate', 'stereoscopicoptionsunit', 'spaceplatformdestructiblelargeblocker', 'smmarsarabarstarmaphs', 'widowmineweapon', 'drbattlecruiseralmweapon', 'purifiercellblock12x8c', 'primalneedlespinesweapon', 'cyclonemissilelarge', 'stukovaleksandertentaclebmissile', 'punishergrenadeslmweapon', 'parasitesporeweapon', 'siegetankacgluescreendummy', 'ss_carrierboss', 'enemypathingblocker16x16', 'moebiuslabdoorsthinright', 'creepblocker8x8', 'xelnaga_caverns_floating_bridgeh12', 'abathurlocusteggamissileweapon', 'smhyperioncantinaposter4hs', 'purifiercellblock8x12a', 'smhyperionarmoryspacelighting', 'progressbarwidedummy', 'shapetorus', 'blackoutdummysmall', 'stukovbossblastweapon', 'zeratulphotoncannonweapon', 'kd8chargeweapon', 'emptower', 'protossbridgenwlong8out', 'mechasporecrawleracgluescreendummy', 'corruptorstetmanncausticspraymissile', 'hhreaperacgluescreendummy', 'karaxinvisiblepylon', 'smbridgeplanetzhakuldas', '24slotbag', 'hurricanemissilerightstetmann', 'darkarchonchampion', 'smterran17props', 'smx2_armyroomset01', 'sentrypurifieracgluescreendummy', 'shapefootball', 'shapeoctahedron', 'smcharcutscenes02', 'xelnagatempledoor', 'korhaldestructibleplatformmedium', 'aiurlightbridgeabandonedne8', 'supergarystetmannmissile', 'hydraliskacgluescreendummy', 'liberator_blackopsmissile', 'smcameraterran17', 'smadjutant', 'spewmissile', 'slaynelementalgrabaoeairunit225', 'prophecyartifacthintunit', 'blightbringerlargeeggweapon', 'smcharbattlezoneset5', 'sjwraithweapon', 'adjutantcapsule', 'thoracgluescreendummy', 'monlythartifactforcefield', 'dehakamutaliskairglaivewurmattackmissile', 'swannweapon', 'smcharbattlezoneartifacths', 'essencepickup', 'planetcrackerpurifierunitcinematic', 'smhyperionarmorystage1set02', 'photoncannonfenixacgluescreendummy', 'vikingacgluescreendummy', 'tempestpurifierweaponground', 'phoenixpurifierairweaponright', 'dehakamutalisklevel2glaivewurmattack3missile', 'smterranreadyroommaintv', 'smtoshshuttleprops', 'protosspurifiergatewideleftlowered', 'infestedcivilianplaceholder', 'protossbridgenwshort10out', 'celestialbeampowerweapon', 'dehakanydusdestroyerweapon', 'smnova', 'hurricanemissileright', 'labextendingbridge', 'umojanlabcrashsitemedium', 'siclusterrocketsmissile', 'artifactulnarb', 'fenixtalisadeptbounceshotlm1weapon', 'protossbridgeneshort10out', 'unbuildablebrickssmallunit', 'hornerairfleetmissileweapon', 'xelnaga_caverns_floating_bridgenw8out', 'healingdronereleaseweapon', 'fireworksyellow', 'smbridgeplanetnewfolsom', 'dehakacreepereggamissileweapon', 'amonrepulserfield20', 'smterran17fx', 'chargedbuster', 'pathingblocker4x4diagonal', 'smarmoryspidermine', 'aiurtemplebridgedestructiblene10out', 'smcivilian', 'dragoonacgluescreendummy', 'umojanlabdoorsleft', 'terrazinenodedeadterran', 'smcameraterran06b', 'ss_battlecruisermissilelauncher', 'smybarra', 'tychusscvautoturretacgluescreendummy', 'voidrayshakurasacgluescreendummy', 'murvarcreepspawnweapon13', 'queencoopacgluescreendummy', 'nydusnetworkacgluescreendummy', 'gatecontrolunit', 'causticspraymissile', 'mutatorquickevolvemissleweapon', 'smhyperioncantinatychuscameras', 'reaperplaceholder', 'abathursymbioteleviathan', 'ss_wraithmissile', 'tychusfirebatacgluescreendummy', 'viking', 'npdominationweapon', 'aiurlightbridgenw10out', 'stalkershakurasacgluescreendummy', 'sjmercaatowerweapon', 'photoncannonweapon', 'novadefensivedronerelease', 'shaperoundedcube', 'beamcaster', 'securitygatestraightvertical', 'shapecarrot', '20slotbag', 'smhyperioncantinastage1progress1hs', 'pathableshieldradius11', 'hotsbiostasismissile', 'smx1eggroomlurkeregg', 'dummyarmored', 'ss_backgroundspaceprot04', 'zergtowerartillerylaunchsquidmissile', 'spaceplatformdestructiblemediumblocker', 'mitosaurusbsplitweapon', 'protossbridgeneshort8', 'soapurifierbeamunit', 'oracleacgluescreendummy', 'umojanlablabgate00right', 'hurricanemissileleft', 'aiurprotector', 'mutatorstormcloud', 'slaynelementalgrabaoegroundunit225', 'extendingbridgedirtynewide10', 'odinbuild', 'hhviking_spawnerunit', 'yoinksiegetankmissile', 'smhyperionbridgebriefing', 'dummyunit', 'zeratulsentryacgluescreendummy', 'infestorterransweapon', 'smcameraterran06a', 'tentacledmissile', 'smarmorybansheephcrate', 'xelnagadestructibleblocker6w', 'hybriddoorsthinleft', 'shapedollarsign', 'thormengskaaweapon', 'beaconharass', 'beacondetect', 'renegadelongboltmissileweapon', 'ghost_blackopsspawnerunit', 'colonyinfestationweapon', 'alarakstructureoverchargeweapon', 'battlecruisermengskyamato', 'mutatorgravitonbombmissile', 'smx1eggroombanelingegg', 'viperacgluescreendummy', 'ss_phoenix', 'slivancollisiondummy', 'xelnagatempledoorlargewlowered', 'scarabweapon', 'immortaltaldarimacgluescreendummy', 'acherospawnplacement', 'ravagerstetmannmissile', 'smx1kerriganupgradebackground', 'observerfenixacgluescreendummy', 'smhyperionlabadjutantcameras', 'mutatorplaguecloudlarge', 'smx1zerglingt1', 'smhyperionbridgeprops', 'voidseekerphasemineblastweapon', 'darkarchonacgluescreendummy', 'dehakatownhallweapon', 'protossbridgenelong10out', 'mitosaurusasplitweapon', 'slivancreepspawnweapon08', 'taldarimforcefieldgateswlowered', 'shapecube', 'psidisintegratorpowerlinkoff', 'shapetetrahedron', 'dehakaultraliskaaweapon', 'psishockweapon', 'ss_backgroundspaceterran02', 'zergdroppodlarge', 'xelnagadestructibleblocker8n', 'glaivewurmm3weapon', 'tarsonis_doorn', 'checkstationdiagonalulbropened', 'epilogue01landingzonechecker', 'beaconclaim', 'stukovinfestedbacklashrocketslmweapon', 'smcameraterran07', 'smhyperionmedlabbriefing', 'roachcorpseracidsalivaweapon', 'extendingbridgedirtynwwide8out', 'portcity_bridge_unitne10', 'infestedventcorruptoregg', 'darktemplarchampion', 'creepgen5', 'protossbridgenwshort8out', 'brutaliskcocoonroachvile', 'wreckedbattlecruiserheliosfinal', 'shapewonsign', 'smhyperionarmorystage1set01', 'aiurtemplebridgedestructiblese10out', 'phoenixscoutmissileweaponright', 'zealotaiuracgluescreendummy', 'cybroslock', 'mutaliskglavewurmattack3missile', 'antigravitonburstmissile', 'smmarsarabarhydraliskskullhs', 'portcity_bridge_unitse12out', 'murvarcreepspawnweapon', 'smx2protossfenixmech', 'megalithcutterreturnweapon', 'tychusmedictransportunit', 'voidthrasherspawnhydraliskmissile', 'protossbridgeneshort8out', 'portcity_bridge_unitsw10', 'shapeyensign', 'smadjutanthologram', 'ss_backgroundzerg01', 'securitygatestraightverticallflowered', 'purifier_doorn', 'hybriddoorsthinleftlowered', 'protosspurifiergatewideleft', 'taldarimforcefieldgateselowered', 'stukovinfestedsiegetankweapon', 'extendingbridgedirtyneshort8out', 'shapebowl', 'ss_swarmguardianmissile', 'mindsiphonreturnweapon', 'unfinisheddrakkenlaserdrillcoop', 'shapecashsmall', 'smterran11fxmissiles', 'bilelauncherzagaramissile', 'metalgatediagonalulbr', 'smfirstofficer', 'coopglaivewurmm2weapon', 'metalgatestraightverticallflowered', 'archangelpnpbombardmentflybyweapon', 'umojanlabceilingtrash', 'guidearrowunit', 'thoraalance', 'supplicantacgluescreendummy', 'starshipadun_doorslowered', 'kerriganweapon', 'shipforcefieldwallulbr', 'pathingblocker2x2diagonal', 'torrasqueacgluescreendummy', 'shakuraslightbridgene10out', 'karaxchampionweaponmissile', 'stalkersecondaryweapon', 'marineacgluescreendummy', 'ss_battlecruiserhunterseekermissile', 'tychusgrenadeweapon', 'carrierhyperjumping', 'tychuspunishergrenadeslmweapon', 'shapehand', 'compoundmansion_doornw', 'purifiercellblock8x8c', 'shapepineapple', 'phoenixpurifierairweaponleft', 'smhyperionmedlabprotosscryotube5hs', 'metalgatediagonalulbrlowered', 'sporecannonfiremissile', 'talisweapon', 'battlecruiserheliosglmweapon', 'ss_backgroundspacezerg02', 'scoutmpairweaponright', 'novarevivebeacon', 'ss_backgroundspaceterran00', 'shapeo', 'lavaheightunit12search', 'unbuildableplatesunit', 'swarmhostsplitbplacement', 'slaynelementalgrabaoeairunit100', 'swarmlingacgluescreendummy', 'smx1evolutionmaster', 'metalgatediagonalblur', 'xelnagatempledoorlargeswlowered', 'smhyperionmedlabbriefingright', 'smterran11props', 'xelnaga_caverns_floating_bridgeh10', 'smterran08props', 'carrieracgluescreendummy', 'xelnagatempledoorlargenw', 'missileshooterchannel1weapon', 'starshipadun_doorsw', 'hyperionlmweapon', 'novaweaponplasmariflelm', 'dehakacreepereggbmissileweapon', 'mengskwraithairweaponright', 'zhakuldaslibraryunitburrowed', 'xelnagaprisonheight2', 'smhyperionmedlabprotosscryotube2hs', 'securitygatestraighthorizontalbflowered', 'fenixdragoonchargedblastattackmissile', 'dummy', 'beacon_novasmall', 'blimpmengskacgluescreendummy', 'liberatorag_blackopsmissile', 'accelerationzoneflyinglarge', 'smmarine04', 'aiurtemplestonegatestraightverticallflowered', 'hunterseekerweapon', 'dragoonweapon', 'murvarcreepspawnweapon10', 'umojanlabdoorswideleft', 'beacon_protosssmall', 'ss_terratronmissilelauncher', 'archangelcoopmissileweapon', 'smhyperioncantinaprogressframe', 'portcity_bridge_unitsw8out', 'fenixtalisadeptbounceshotlm3weapon', 'destructiblegatestraighthorizontal', 'creepblocker1x1', 'securitygatediagonalblurlowered', 'smbridgeplanetshakuras', 'siqueenweapon', 'immortalkaraxacgluescreendummy', 'zergeggnest', 'devastatormissileweapon', 'covertbansheeacgluescreendummy', 'primalguardianacgluescreendummy', 'portcity_bridge_unitw10out', 'unbuildablebricksunit', 'celestialbeamweapon', 'shapeeurosign', 'smhyperioncantinastage1staircasehs', 'mercreaperplaceholder', 'hhvikingacgluescreendummy', 'ss_interceptormissile', 'corrosiveacidmissile', 'smx1roacht1b', 'hybridbehemothantiairattackweapon', 'unbuildable3x3', 'smhyperionlabartifactpart2hs', 'infestedstukovweapon', 'broodlordstetmannbweapon', 'greaterbeast', 'mitosaurusbweapon', 'primalbaseweapon', 'hybridsecuritywallright', 'shapespade', 'queenchannelweapon', 'starshipadun_jumppaddoorwlowered', 'smhyperionexterior', 'locusteggbmissileweapon', 'smcameraterran02a', 'dehakacooprevivecocoonfootprint', 'shadowcloud', 'smhyperioncantinastage1progress4hs', 'zagaraparasitesporeweapon', 'raisingplatform6x4lowered', 'shapelemonsmall', 'slaynelementalgrabaoegroundunit200', 'liberatoragmissile', 'voidthrasherspawnbanelingmissile', 'aiurlightbridgeabandonednw12out', 'repulserfield8', 'portcity_bridge_unitn10', 'hotshuntermissile', 'extendingbridgenwwide10out', 'frenzyweapon', 'voidthrasherspawnzerglingmissile', 'eyestalkweapon', 'tempestweapon', 'hhd8singleclusterweapon', 'digestercreepsprayunit', 'hhreaperprecursor', 'protossbridgenwlong10out', 'alarakthestrongestsurvivedummysecondaryattackmissile', 'smterran13props', 'tempestpurifierweapon', 'yetiplaceholder', 'smmarsaraplanet', 'smtvstatic', 'smhyperioncantinaprops', 'unstableenergy', 'sporecolonyweapon', 'roachvileacgluescreendummy', 'smhyperionarmorystage1set', 'infestedventbroodlordegg', 'dehakaconsumereflectweapon', 'extendingbridgedirtynwshort10out', '8slotbag', 'smcooper', 'hybridconsumezergmissile', 'soasupertimewarpunit', 'smhyperionarmorer', 'primalviperairweapon', 'metalgatediagonalblurlowered', 'tychusrevivebeacon', 'kd8charge', 'parasiticinvasionweapon', 'extendingbridgenwwide12out', 'smx1eggroomsetcalloutpositions', 'smkachinsky', 'starshipadun_jumppaddoornlowered', 'tentacleamissile', 'slivancreepspawnweapon04', 'marsarabridgeblur', 'battlecruisermengskyamatoaoe', 'smx1leviathanset01', 'smbridgeplanetxil', 'mitosauruscsplitweapon', 'bunkerdepotmengskacgluescreendummy', 'collapsiblerocktowerpushunitrampleftgreen', 'kerriganepilogue03quantumblastweapon', 'consumednafeedbackweapon', 'locustflyingeggbmissileweapon', 'aiurtemplebridgedestructiblene12out', 'ss_leviathantentacler2missile', 'hyperionvoidcoopyamatocannonattackweapon', 'smx1roacht1', 'smbridgeplanetmeinhoff', 'magrailmunitionmissile', 'smx1leviathanset02', 'smraynorhands', 'carrieraiuracgluescreendummy', 'hhmagneticmine', 'ghostmengskirradiateweapon', 'brutaliskcocoon', 'dehakamutalisklevel2glaivewurmattack2missile', 'shadowcloudsmallepilogue01', 'bilelauncheracgluescreendummy', 'smx1kerriganinfestedwithlight', 'invisible2x2', 'zeratulentropicblastcyanweapon', 'smx1eggroomhydraliskegg', 'voidthrasherrumble', 'slaynelementalgrabaoegroundunitmonolith', 'xelnaga_caverns_doorsw', 'ravasauracgluescreendummy', 'shipforcefieldwalllongurbl', 'missileshooterburst5weapon', 'xelnaga_caverns_doorn', 'fireworksred', 'xelnaga_caverns_dooreopened', 'smviking', 'smvalerianobservatorypaintinghs', 'smhyperionbridgeholomap', 'banshee_blackopsspawnerunit', 'ss_backgroundspaceprot01', 'shapebaseball', 'umojanlabwalldoorsrightlowered', 'korhaldestructibleplatformlarge', 'shortbridgehorizontal', 'metalgatestraighthorizontal', 'smcameraterran11', 'checkstationvertical', 'smunnscreen', 'immortalshakurasantiairmissile', 'mutatoramondehakaairweapon', 'portcity_bridge_unitse8', 'mutaliskglavewurmattack1missile', 'dehakamutaliskglaivewurmattack1missile', 'mutaliskmengskglaivewurmattack1missile', 'guntowerdweapon', 'hybridimmortalconsumemissile', 'warpprismtaldarimacgluescreendummy', 'shapehorseshoe', 'smx1roacht1a', 'mengskbcglmweapon', 'liberatormissile', 'celestiallock', 'metalgatestraightvertical', 'coopglaivewurmweapon', 'mohandarstickybombmissile', 'hunterkillerweapon', 'artanisareastunairplaceholder', 'snowrefinery_terran_extendingbridgenwshort8', 'creeponlyblocker4x4', 'fenixmojoscoutaoeairweaponleft', 'amontentaclea', 'smhyperionarmorystage1technologyconsolehs', 'smx2_armyroomset02', 'lavaheightunit28search', 'metalgatestraightverticallowered', '16slotbag', 'shapediamond', 'hhwraith_spawnerunit', 'vilestreamweapon', 'archangelpnpempairweaponc', 'sjpirateyamatobweapon', 'smhyperionbridgestage1toshcameras', 'ss_fighter', 'tychusodinprecursor', 'shakuraslightbridgenw10', 'hybridgeneralweapon', 'blightbringereggweapon', 'murvarcreepspawnweapon02', 'securitygatestraightverticallowered', 'mutatordancingoracle', 'odinmkiiaaweapon', 'herculesacgluescreendummy', 'hyperionyamatospecialweapon', 'smterran09props', 'fenixprobiusprobe', 'starshipadun_jumppaddoornw', 'shapecylinder', 'tossgrenadeweapon', 'novaplasmablastweapon', 'slaynelementalgrabaoeairunit25', 'scourgeacgluescreendummy', 'blocker8x8', 'smbridgeplanettyrador', 'mutatortornado', 'smx1ultraliskt1b', 'splitterlingacgluescreendummy', 'omeganetworkacgluescreendummy', 'broodlordegg', 'stukovinfestedsiegetankammorestockweapon', 'ss_leviathantentaclel2missile', 'shapetreasurechestclosed', 'thormengsksiegedweapon', 'xelnagadestructibleblocker8e', 'protosspurifiergatewiderightlowered', 'smbridgeplanetulaan', 'smpressroomprops', 'smraynorcommander', 'testherodebugmissileability2weapon', 'ss_interceptorspawnmissile', 'smbridgeplanetchar', 'hotsraptorplaceholder', 'liberator_blackopsspawnerunit', 'purifier_doorsmallnlowered', 'devourermpweaponmissile', 'zeratulkarassweapon', 'digestercreepspraytargetunit', 'neuralparasiteweapon', 'smhyperionlabhansoncameras', 'kerriganepilogue03strikeamon', 'beaconcustom4', 'ss_powerupstrongermissiles', 'cyclonemissile', 'smterran05props', 'immortalshakurasshadowcannonmissile', 'fenixtalisadeptweapon', 'sjfighter1weapon', 'darktemplarchampionshadowclone', 'smmarsarabarkerriganphotohs', 'xelnagatempledoorurdl', 'smcameraterran03', 'cooppvprepulserfield', 'accelerationzonemedium', 'soathermallancetargeter', 'novacoopcasterstungrenadeweapon', 'warpconduitshakuras01', 'broodlingescortstetmann', 'smcharcutscenes01', 'purifiercellblock12x12a', 'walloffire', 'slivancreepspawnweapon07', 'hhvalkyriestructureweapon', 'starshipadun_doorne', 'smzeratul', 'hightemplartaldarimacgluescreendummy', 'portcity_bridge_unitne10out', 'monolith', 'repulserfield6', 'smx1eggroomzergflyeregg', 'aiurlightbridgenw12out', 'ss_strongmissile1', 'primalflyerweapon', 'phoenixscoutmissileweaponleft', 'energyblastweapon', 'novagriffinbombingrundummylmweapon', 'flyoverunit', 'starshipadun_doorw', 'smx2_bridge05', 'smx1hydraliskt1a', 'smbridgeplanetmonlyth', 'moebiuslabdoorsthinleftlowered', 'portcity_bridge_unitn8', 'purifierblastmarkunit', 'smterran06aprops', 'defensivewall45gatelargeeastlowered', 'extendingbridgedirtynewide8out', 'shapeheart', 'shapewatermelon', 'littletastycorpse', 'xelnagatempledoorurdlburrowed', 'slaynelementalgrabaoegroundunit75', 'shapedecahedron', 'starshipadun_doorse', 'battlecruiseracgluescreendummy', 'murvarcreepspawnweapon07', 'smterran15fx', 'zeratulcooprevivebeacon', 'zerglingrespawnweapon', 'mechacorruptoracgluescreendummy', 'shakuraslightbridgene12out', 'primallocustflyingweapon', 'tychusshreddergrenadeweapon', 'coopglaivewurmm3weapon', 'xelnagatempledoorlargese', 'dummystructure', 'missileshooterburst3weapon', 'blocker6x6', 'purifiercellblock8x12b', 'unbuildablerockssmallunit', 'goliathaweapon', 'civilianweapon', 'widowmineairweapon', 'smhyperionmedlabcryotubea', 'tarsonis_doore', 'devourertissuesampletube', 'smx1mutaliskt1a', 'smcharbattlezonebriefingset2', 'voidimmortalpurifiercannonmissile', 'smx1eggmonstert1', 'sjpiratecapitalshiprightlmweapon', 'slaynelementalgrabaoeairunit175', 'shapecashmedium', 'purifier_doorsmallne', 'tychusghostpsychicsnareattackmissile', 'tarsonis_doornwlowered', 'hyperiondirectlmweapon', 'hybriddominatorvoidplasmaweapon', 'repulserfield10', 'mitosaurusaweapon', 'smx1eggmonstert1b', 'alaraksupplicantwarptraindummy', 'umojanlablabgate00left', 'hhmercstarportacgluescreendummy', 'scoutairweaponright', 'railgunturretacgluescreendummy', 'phoenixaiuracgluescreendummy', 'smhyperioncantinastage1progress2hs', 'ss_blackedgeborder', 'artanisvoidweapon', 'smmarsarabarcorkboarditem3hs', 'smhyperionbridgebriefingcenter', 'starshipadun_doors', 'atalaserbatterymengsklmweapon', 'umojanlabdoorsthinrightlowered', 'zhakuldaslightbridgeoff', 'smx1zerglingt1b', 'lavaheightunit8search', 'damagedsolarforge', 'cycloneacgluescreendummy', 'voidhightemplarpsiorbmissile', 'archangelpnpempairweaponb', 'collapsiblepurifiertowerpushunit', 'permanentcreepblocker1x1', 'smterran11fxdebris', 'sjpirateyamatoaweapon', 'pathingblocker8x8diagonal', 'hybriddoorswidemelt', 'broodlingescort', 'accelerationzonelarge', 'xelnaga_caverns_floating_bridgev10', 'mengskmarauderlmweapon', 'shapewatermelonsmall', 'smbanshee', 'archiveshakurassealed', 'hightemplaracgluescreendummy', 'hydraliskstetmannairweaponupgraded', 'raventypeiiacgluescreendummy', 'ball', 'smmarinerifle', 'smhyperionbridgestage1set2', 'xelnaga_caverns_doorneopened', 'fenixdragoonairbombweapon', 'smkatelockwell', 'battlecruiserlokilmweapon', 'fenixmanadummy3', 'hhwidowmineblossomweapon', 'spaceplatformcliffdooropen0', 'smcharinteractiveskyparallax', 'xelnaga_caverns_floating_bridgeh8', 'starshipadun_jumppaddoorse', 'smmarsarabarcorkboardbackground', 'slaynelementalgrabaoeairunit50', 'artifactulnara', 'extendingbridgenewide12out', 'voidshardacvoidzoneweapon', 'instanthunterseekerweapon', 'portcity_bridge_unitn8out', 'expeditionjumpgate', 'spaceplatformreactorpathingblocker', 'autoturret_blackopsreleaseweapon', 'hhravenacgluescreendummy', 'mengskvikingfighterweapon', 'xelnagachargedcrystalinert', 'shape6pointstar', 'smcameraterran06c', 'psiopscommercial', 'pathingblocker3x3diagonal', 'ss_terratronsaw', 'stranglertentacle', 'ultrasonicpulseenhancedweapon', 'hhlaserbatterylmweapon', 'smx1leviathansetcalloutpositions', 'slaynelementalweapon', 'shadeofnarud', 'testherothrowmissile', 'pathingblocker12x12diagonal', 'smmarauder', 'smx1kerrigandezergedwithlight', 'soulabsorptionmissle', 'portcity_bridge_unitnw12out', 'ss_backgroundspaceprot02', 'artanisioncannonsweapon', 'creepgen7', 'moebiusseekerweapon', 'fenixclolarionbomberstructureweapon', 'shipforcefieldwalllongulbr', 'fenixmojoscoutaoeairweaponright', 'tychuswarhoundweapon', 'missileturretmengskweapon', 'hhhelliontankacgluescreendummy', 'invisible3x3', 'stukovaleksanderinfesteddroppodmissile', 'smhyperionlabartifactpart4hs', 'ss_backgroundspacezerg01', 'wraithacgluescreendummy', 'nyduswormlavadeath', 'aiurlightbridgene8', 'xelnaga_caverns_doornopened', 'xelnagadestructibleblocker6n', 'mutaliskacgluescreendummy', 'smcharinteractive02skyparallax', 'zeratulblinkaiur01missile', 'energyblastflyingweapon', 'extendingbridgedirtyneshort10', 'raidliberatoracgluescreendummy', 'd8clusterbomb', 'purifiercellblock8x8a', 'hyperionkorhalairweapon', 'compoundmansion_doornwlowered', 'zeratulcrystalcharge', 'siegetankskinpreview', 'compoundmansion_doore', 'enemypathingblocker4x4', 'shapeorange', 'siegetanksiegedjumpjetplaceholder', 'smvalerianobservatoryset3', 'troopermengskweaponflamethrowerpickup', 'xelnaga_caverns_floating_bridgev10out', 'aiurlightbridgeabandonedne8out', 'inhibitorzoneflyingsmall', 'zealotvorazunacgluescreendummy', 'shapestrawberry', 'vultureweapon', 'securitygatestraighthorizontalbf', 'mechainfestoracgluescreendummy', 'starshipadun_jumppaddoorswlowered', 'larvareleasemissile', 'colossusacgluescreendummy', 'hybridsecuritywallleft', 'raisingplatform8x8lowered', 'smhyperionmedlabbriefingleft', 'pathingblocker1x1diagonal', 'smcameraterran04a', 'sjbansheeweapon', 'ss_scourgemissile', 'smx1eggroomset', 'zhakuldaslightbridgetopright', 'smx1eggmonstert1a', 'primalwurmacgluescreendummy', 'extendingbridgedirtynwshort8', 'infestorstetmannravagereggmissile', 'shortbridgevertical', 'slaynelementalgrabaoeairunit125', 'smhyperionlabartifactpart3hs', '4slotbag', 'hellbatrangeracgluescreendummy', 'umojanlablabgate01rightlowered', 'ss_leviathantentaclel1missile', 'commando', 'megalithcutterinstantreturnweapon', 'infernalflamethrowercoopweapon', 'smmarsarabarcorkboarditem5hs', 'smhyperionmedlabprotosscryotube3hs', 'acidspinesweapon', 'labextendingbridgeout', 'missileshooterchannel6weapon', 'shapepear', 'aiurtemplebridgene8out', 'hotsleviathantentacleamissile', 'releaseinterceptorsbeacon', 'hhd8clusterbombweapon', 'hhd8centerclusterweapon', 'amonshardcweapon', 'inhibitorzonelarge', 'missileshooterchannel8weapon', 'fenixtalisadeptbounceshotlm7weapon', 'tychushercacgluescreendummy', 'missileshooterchannel3weapon', 'slaynelementalgrabaoegroundunit175', 'portcity_bridge_unitne8', 'mutatorpropagatedummyweapon', 'aiurtemplebridgedestructiblenw8out', 'xelnaga_caverns_floating_bridgeh12out', 'ss_poweruphealth', 'chargedbusterupgraded', 'zurvanspawnravasaurweapon', 'hybridlabdoorsleftlowered', 'smx1banelingt1a', 'smraynorgun', 'devastationturretacgluescreendummy', 'protossbridgenelong8out', 'annihilatorstalkergroundweapon', 'soaorbitalstrikemissile', 'smterran14fx', 'snare_placeholder', 'smtoshshuttleset2', '47dummyunitfix', 'oracleweapon', 'ss_corruptormissile', 'reaveracgluescreendummy', 'smhyperioncorridorset', 'broodlordacgluescreendummy', 'vikingmengskfighterweapon', 'wraithairweaponleft', 'dehakalocusteggbmissileweapon', 'queenzagaraacgluescreendummy', 'zeratulstalkerweapon', 'extendingbridgedirtynwshort10', 'mutatoramondehakamirrorimageweapon', 'guardianmpweapon', 'shapefootballcolored', 'umojanlablabgate01right', 'tychusghostacgluescreendummy', 'ultraliskacgluescreendummy', 'acpirateyamatoaweapon', 'xelnaga_caverns_floating_bridgenw8', 'smhyperionmedlabzergcryotube2hs', 'primalgascloudweapon', 'smmarine01', 'kerrigancharweapon', 'drbattlecruiserglmweapon', 'aiurtemplestonegatediagonalulbrrflowered', 'sjmineralformation1', 'infestedstukovcoopdevastatingshotweapon', 'bridgeiconopenedne', 'zeratulsuppressioncrystal', 'portcity_bridge_unitse8out', 'spacedestructibledoodad', 'starshipadun_doore', 'extendingbridgenwlong10', 'kerriganrangedweapon', 'zurvanspawnprimalhydraliskweapon', 'smcharbattlezoneshadowbox', 'sjbattlecruiserweapon', 'starshipadun_jumppaddoorslowered', 'smmarine03', 'starshipadun_doorsmallnelowered', 'destructiblegatediagonalulbrlowered', 'xelnaga_caverns_floating_bridgeh10out', 'phoenixpurifieracgluescreendummy', 'alarakthestrongestsurvivedummyattackmissile', 'lightningbombweapon', 'smarmoryspectrecrate', 'ss_backgroundspaceprot03', 'shapebanana', 'glaivewurmbounceweapon', 'fuelcellweapon', 'avernusgatecontrol', 'aiurlightbridgenw10', 'extendingbridgenewide8out', 'hhhellionrocket', 'duelbubbleunit', 'portcity_bridge_unitw10', 'bridgeblocker4x12', 'smhyperioncantinabadgehs', 'ss_wraith', 'mutatorwidowmineairweapon', 'invisibleescortflying', 'smdropshipblue', 'warhoundweapon', 'dehakaglevigdeeptunnelplacement', 'mutatorinfestedturkeydisgustingspewweapon', 'purifier_doorsmalle', 'extendingbridgenelong10', 'gehennacruiseralmweapon', 'brutaliskplacement', 'aiurlightbridgene12', 'locusteggcreeperbmissileweapon', 'tychusmarauderacgluescreendummy', 'smcameraterran05', 'mengskgoliathaweapon', 'smx1hydraliskt1', 'aiurtemplebridgedestructiblesw10out', 'aiurtemplestonegatestraightverticalrf', 'purifier_doorsmallelowered', 'zagaravoidcoopspawnbroodlingsmissile', 'smtoshshuttleset', 'terrandroppod', 'shieldbatteryacgluescreendummy', 'zurvanlatentenergy', 'siegetank_blackopsspawnerunit', 'portcity_bridge_unitw8'}
all_unit_ids = main_unit_ids.union(other_unit_ids)
UnconfirmedCommands = dict()
def openSocket():
s = socket.socket()
s.connect((HOST, PORT))
s.send("PASS {}\r\n".format(PASS).encode("utf-8"))
s.send("NICK {}\r\n".format(NICK).encode("utf-8"))
s.send("JOIN #{}\r\n".format(CHANNEL).encode("utf-8"))
return s
def joinRoom(s):
readbuffer_join = "".encode()
Loading = True
while Loading:
readbuffer_join = s.recv(1024)
readbuffer_join = readbuffer_join.decode()
temp = readbuffer_join.split("\n")
readbuffer_join = readbuffer_join.encode()
readbuffer_join = temp.pop()
for line in temp:
Loading = loadingComplete(line)
print("VeryFluffyBot has joined the chat")
sendMessage(s,'/color green')
def loadingComplete(line):
if ("End of /NAMES list" in line):
return False
else:
return True
def getUser(line):
separate = line.split(":", 2)
user = separate[1].split("!", 1)[0]
return user
def getMessage(line):
separate = line.split(":", 2)
message = separate[2]
return message
def console(line):
if "PRIVMSG" in line:
return False
else:
return True
def sendMessage(s, message):
messageTemp = "PRIVMSG #" + CHANNEL + " :" + message
if not('/color' in message):
print("(sent: " + message+')')
try:
s.send("{}\r\n".format(messageTemp).encode("utf-8"))
except BrokenPipeError:
s = openSocket()
s.send("{}\r\n".format(messageTemp).encode("utf-8"))
def sendGameMessage(ptype, message, user):
global CommandNumber
global UnconfirmedCommands
try:
tree = ET.parse(BANKFILE) #reload to account for new changes
root = tree.getroot()
#reset unconfirmed commands if it's a new game
for child in root:
if child.attrib['name'] == "NewGame":
UnconfirmedCommands = dict()
root.remove(child)
break
#update unconfirmed commands with those that were executed
for child in root:
if child.attrib['name'] == "ExecutedCommands":
for command in child:
com_number = command.attrib['name']
if com_number in UnconfirmedCommands:
lock.acquire()
del UnconfirmedCommands[com_number]
lock.release()
root.remove(child) #removes the section
break
#delete old commands if there are any
for child in root:
if child.attrib['name'] == 'Commands':
root.remove(child)
break
#get unconfirmed commands
new_command_string = ""
for command in UnconfirmedCommands:
new_command_string = new_command_string + UnconfirmedCommands[command]
#get new commmand
lock.acquire()
CommandNumber += 1
lock.release()
msg = message.replace('"',"''")
msg = html.escape(msg) # convert & → &
command_string = f'<Key name="{ptype} {str(CommandNumber)} #{user}"><Value string="{msg}"/></Key>'
new_command_string = new_command_string + command_string
lock.acquire()
UnconfirmedCommands[str(CommandNumber)] = command_string
lock.release()
#create command section
new_command_string = f'<Section name="Commands">{new_command_string}</Section>'
root.append((ET.fromstring(new_command_string)))
tree.write(BANKFILE)
#log
tree = ET.parse(BANKFILE)
root = tree.getroot()
for child in root:
if child.attrib['name'] == 'Commands':
with open('XLM_debugging.txt', 'ab') as file:
file.write((f"{UnconfirmedCommands}\n{ET.tostring(child, encoding='unicode')}\n-------\n").replace('<Section name="Commands">','').replace('</Section>','').encode('utf-8'))
break
except Exception as e:
print(e,'ERROR – bank not loaded properly, message not sent')
with open('XLM_debugging.txt', 'a') as file:
file.write(f'\nERROR, bank not loaded properly\n',traceback.format_exc(),'\n')
def saveMessage(user,message):
with open('ChatLog.txt', 'ab') as file: #appending as bytes
time_now = str(datetime.datetime.now())[:-7]
log = f'\n{time_now}\t{time_now}\t:{message.rstrip()}'.encode('utf-8') #converts into a bytes object containing the UTF-8 representation of the string
file.write(log)
def pingsAndMessages():
global findingActivated
global postCurrent
global BANKFILE
GMActive = True
GMActiveFull = False
chatColor = 'green'
chatColorError = 'red'
GreetedUsers = []
CommandCooldown = 0
UserCooldown = dict()
def user_on_cooldown(user):
if CommandCooldown == 0 or not(user in UserCooldown): #either no cooldown set, or user haven't started any cooldown
return False
elif (time.time() - UserCooldown[user]) < CommandCooldown: #user on cooldown
sendMessage(s,'/color ' + chatColorError)
sendMessage(s,f'/me Command not executed. {user} is on cooldown for the next {round(CommandCooldown - time.time() + UserCooldown[user],1)} seconds.')
return True
else: #user had cooldown, but it's over
return False
while True:
try:
readbuffer = s.recv(1024)
readbuffer = readbuffer.decode()
temp = readbuffer.split("\n")
readbuffer = readbuffer.encode()
readbuffer = temp.pop()
except:
temp = ""
for line in temp:
if line == "":
break
if "PING" in line and console(line):
msgg = "PONG :tmi.twitch.tv\r\n".encode()
s.send(msgg)
print(msgg)
break
#Commands
user = getUser(line)
message = getMessage(line)
first_word = message.split()[0].lower()
saveMessage(user,message)
try:
following_words = message.split(' ',1)[1].rstrip() #rstrip strips the end (spaces, breaks) from the string
except:
following_words = ''
print(user + ": " + message.rstrip())
### TWITCH INTEGRATION
if "!gm" == first_word and user == CHANNEL:
sendMessage(s,'/color ' + chatColor)
if 'full' in following_words:
GMActive = True
GMActiveFull = True
sendMessage(s,'/me Full game integration. !mutator, !spawn, !wave and !resources commands enabled') #mutators, spawning, resources
elif 'stop' in following_words:
GMActive = False
GMActiveFull = False
sendMessage(s,'/me Game integration disabled!') #mutators, spawning, resources
else:
GMActive = True
GMActiveFull = False
sendMessage(s,'/me Partial game integration. !join and !message commands active') #mutators, spawning, resources
if "!cooldown" == first_word and user == CHANNEL:
try:
cooldown = int(following_words)
except:
cooldown = 0
cooldown = 0 if cooldown < 0 else cooldown #clamp to 0,inf
CommandCooldown = cooldown #adjust cooldown for viewer messages
sendMessage(s,'/color ' + chatColor)
sendMessage(s,f'Cooldown for viewer commands set to {cooldown} seconds')
if "!bank" == first_word and user == CHANNEL:
if following_words.lower() in BankDict:
BANKFILE = BankDict[following_words.lower()]
sendMessage(s,'/color ' + chatColor)
sendMessage(s,f'/me Bank file changed to: {following_words}')
elif following_words=="":
BANKFILE = BankDict.get('default',list(BankDict.values())[0])
sendMessage(s,'/color ' + chatColor)
sendMessage(s,f'/me Bank file set to default value')
else:
bank_keys = str(list(BankDict.keys()))[1:-1].replace("'", "")
sendMessage(s,'/color ' + chatColorError)
sendMessage(s,f'/me Incorrect bank name, choose one: {bank_keys}')
if "!message" == first_word:
sendMessage(s,'/color ' + chatColor)
if GMActive == False:
sendMessage(s,'/color ' + chatColorError)
sendMessage(s,'/me Game integration inactive!')
else:
print('message sent:',user,following_words)
sendGameMessage('message', user +': ' + following_words,user)
if "!mutator" == first_word:
sendMessage(s,'/color ' + chatColorError)
if GMActiveFull == False:
sendMessage(s,'/me Full game integration inactive!')
else:
mutator = following_words.lower().replace(' disable','')
#check if the name is correct
if not(mutator in MutatorSet):
possible_mutator_names = difflib.get_close_matches(mutator, MutatorSet)
#if some matches, propose them
add_string = ""
if len(possible_mutator_names) > 0:
possible_mutator_names = {i[0].upper()+i[1:] for i in possible_mutator_names}
possible_mutator_names = str(possible_mutator_names)[1:-1].replace("'", "")
add_string = f'Did you mean: {possible_mutator_names}?'
sendMessage(s,f'/me Incorrect mutator name ({mutator})! {add_string}')
#check if the mutator is banned
elif mutator in BannedMutators:
sendMessage(s,'/me This mutator is banned from use and will not be activated!')
#check user cooldowns
elif user_on_cooldown(user):
pass
#enable/disable mutator
else:
if 'disable' in following_words:
sendMessage(s,f'Disabling {mutator}!')
else:
sendMessage(s,f'Enabling {mutator}!')
UserCooldown[user] = time.time()
sendGameMessage('mutator', following_words,user)
if "!spawn" == first_word:
sendMessage(s,'/color ' + chatColorError)
if GMActiveFull == False:
sendMessage(s,'/me Full game integration inactive!')
else:
unit = following_words.split(' ')[0]
#check if correct name
if not(unit.lower() in all_unit_ids):
#find similar unit ids
possible_unit_names = difflib.get_close_matches(unit, main_unit_ids)
add_string = ""
if len(possible_unit_names) >0:
possible_unit_names = {i[0].upper()+i[1:] for i in possible_unit_names}
possible_unit_names = str(possible_unit_names)[1:-1].replace("'", "")
add_string = f'Did you mean: {possible_unit_names}?'
sendMessage(s,f'/me Incorrect unit name ({unit})! {add_string}')
#check if not banned
elif unit.lower() in BannedUnits:
sendMessage(s,f'/me Spawning {unit} is prohibited!')
#check user cooldown
elif user_on_cooldown(user):
pass
#spawn units
else:
UserCooldown[user] = time.time()
sendGameMessage('spawn', following_words,user)
print('unit spawned:',following_words)
if "!resources" == first_word:
sendMessage(s,'/color ' + chatColorError)
if GMActiveFull == False:
sendMessage(s,'/me Full game integration inactive!')
elif user_on_cooldown(user):
pass
else:
UserCooldown[user] = time.time()
sendGameMessage('resources', following_words,user)
print('resources given:',following_words)
if "!join" == first_word:
sendMessage(s,'/color ' + chatColorError)
if GMActive == False:
sendMessage(s,'/me Game integration inactive!')
else:
response = sendGameMessage('join', following_words, user)
print('user joined:', user)
if first_word[1:] in OtherCommands and first_word[0] == "!": #this is for future command that can be added later
sendGameMessage(first_word[1:], following_words, user)
if first_word[1:] in OtherCommands_full and first_word[0] == "!": #this is for future command that can be added later
sendMessage(s,'/color ' + chatColorError)
if GMActiveFull == False:
sendMessage(s,'/me Game integration inactive!')
elif user_on_cooldown(user):
pass
else:
UserCooldown[user] = time.time()
sendGameMessage(first_word[1:], following_words, user)
#other commands
if "@VeryFluffyBot" in line and not(console(line)):
sendMessage(s,'/color ' + chatColor)
sendMessage(s,config['RESPONSES']['RESPONSE'])
#general responses configurable in config.ini
if (first_word[0] =='!'):
after_command = first_word.replace('!','') #strip of "!"
if after_command in config['RESPONSES'].keys() and first_word[0] == "!":
sendMessage(s,'/color ' + chatColor)
sendMessage(s,config['RESPONSES'][after_command])
if user in config['GREETINGS'].keys() and not(user in GreetedUsers):
try:
GreetedUsers.append(user)
sendMessage(s,'/color ' + chatColor)
possibleresponses = list(config['GREETINGS'][user].split("/ "))
sendMessage(s,random.choice(possibleresponses))
except:
pass
#commands controlling mutators
if "!stop" == first_word and user == CHANNEL:
findingActivated = False
sendMessage(s,'/color ' + chatColor)
sendMessage(s,'No catching little mutator things, fine! *yawns*')
if "!start" == first_word and user == CHANNEL:
postCurrent = False
findingActivated = True
sendMessage(s,'/color ' + chatColor)
sendMessage(s,'Find them all, got it! *sniffs*')
if "!current" == first_word:
sendMessage(s,'/color ' + chatColor)
if findingActivated == False or mutatorsFound == False:
sendMessage(s,'cannot do that right now')
else:
sendMessage(s,'let me see...')
postCurrent = True
time.sleep(1)
def getBrutalPlus (diff):
level = 'undefined'
if 0 < diff < 4:
level = 'Too easy for Brutal+'
if 4 <= diff <= 6:
level = 'Brutal+1'
if 7 <= diff <= 8:
level = 'Brutal+2'
if 9 <= diff <= 10:
level = 'Brutal+3'
if 11 <= diff <= 12:
level = 'Brutal+4'
if 13 <= diff <= 14:
level = 'Brutal+4.5'
if 15 <= diff <= 16:
level = 'Brutal+5'
if 17 <= diff <= 18:
level = 'Brutal+5.5'
if 19 <= diff <= 20:
level = 'Brutal+6'
if diff > 20:
level = 'Harder than any Brutal+'
return level
def FindMutators():
global postCurrent
global mutatorsFound
global OverlayMessages
MutatorDescriptions = {"Walking Infested": "Enemy units spawn Infested Terran upon death in numbers according to the unit's life.", "Outbreak": "Enemy Infested Terrans spawn continuously around the map.", "Darkness": "Previously explored areas remain blacked out on the minimap while outside of player vision.", "Time Warp": "Enemy Time Warps are periodically deployed throughout the map.", "Speed Freaks": "Enemy units have increased movement speed.", "Mag-nificent": "Mag Mines are deployed throughout the map at the start of the mission.", "Mineral Shields": "Mineral clusters at player bases are periodically encased in a shield which must be destroyed for gathering to continue.", "Barrier": "Enemy units and structures gain a temporary shield upon the first time they take damage.", "Avenger": "Enemy units gain increased attack speed, movement speed, armor, life, and life-regeneration when nearby enemy units die.", "Evasive Maneuvers": "Enemy units teleport a short distance away upon taking damage.", "Scorched Earth": "Enemy units set the terrain on fire upon death.", "Lava Burst": "Lava periodically bursts from the ground at random locations and deals damage to player air and ground units.", "Self Destruction": "Enemy units explode and deal damage to nearby player units upon death.", "Aggressive Deployment": "Additional enemy units are periodically deployed onto the battlefield.", "Alien Incubation": "All enemy units spawn Broodlings upon death.", "Laser Drill": "An enemy Laser Drill constantly attacks player units within enemy vision.", "Long Range": "Enemy units and structures have increased weapon and vision range.", "Shortsighted": "Player units and structures have reduced vision range.", "Mutually Assured Destruction": "Enemy Hybrid units detonate a Nuke upon death.", "We Move Unseen": "All enemy units are permanently cloaked.", "Slim Pickings": "Player worker units gather resources at a reduced rate, but resource pickups spawn throughout the map.", "Concussive Attacks": "Player units are slowed by all enemy attacks.", "Just Die!": "Enemy units are automatically revived upon death.", "Temporal Field": "Enemy Temporal Fields are periodically deployed throughout the map.", "Void Rifts": "Void Rifts periodically appear in random locations and spawn enemy units until destroyed.", "Twister": "Tornadoes move across the map, damaging and knocking back player units in their path.", "Orbital Strike": "Enemy Orbital Strikes are periodically fired throughout the map.", "Purifier Beam": "An enemy Purifier Beam moves across the map toward nearby player units.", "Blizzard": "Storm clouds move across the map, damaging and freezing player units in their path.", "Fear": "Player units will occasionally stop attacking and run around in fear upon taking damage.", "Photon Overload": "All enemy structures attack nearby hostile units.", "Minesweeper": "Groups of Widow Mines and Spider Mines are buried throughout the battlefield.", "Void Reanimators": "Void Reanimators wander the battlefield, bringing your enemies back to life.", "Going Nuclear": "Nukes are launched at random throughout the map.", "Life Leech": "Enemy units and structures steal life or shields whenever they do damage.", "Power Overwhelming": "All enemy units have energy and use random abilities.", "Micro Transactions": "Giving commands to your units costs resources based on the unit's cost.", "Missile Command": "Endless missile bombardments target your structures and must be shot down throughout the mission.", "Vertigo": "Your camera randomly changes positions.", "Polarity": "Each enemy unit is immune to either your units or your ally's units.", "Transmutation": "Enemy units have a chance to transform into more powerful units whenever they deal damage.", "Afraid of the Dark": "Vision provided by all sources is extremely limited except when in view of your camera.", "Trick or Treat": "Civilians visit your Candy Bowl looking for treats, which are generated by spending minerals. If no treats are available, the civilians transform into random enemy units.", "Turkey Shoot": "Supply can only be generated by killing turkeys that wander throughout the map. Doing so may anger the turkeys that remain.", "Sharing Is Caring": "Supply is shared between you and your partner, and units from both armies contribute to your combined supply cap.", "Diffusion": "Damage dealt to enemies is split evenly across all nearby units, including your own.", "Black Death": "Some enemy units carry a plague that deals damage over time and spreads to other nearby units. The plague spreads to your units when the enemy unit is killed.", "Eminent Domain": "Enemies gain control of your structures after destroying them.", "Gift Exchange": "Gifts are periodically deployed around the map. If you don't claim them, Amon will!", "Naughty List": "Player units and structures take increased damage for each enemy they've killed.", "Extreme Caution": "Your units will not obey any command placed in areas they cannot see.", "Heroes from the Storm": "Attack waves will be joined by heroes of increasing power.", "Inspiration": "Enemy Heroic units increase the attack speed and armor of all enemies within a small range. ", "Hardened Will": "Enemy Heroic units reduce all incoming damage to a maximum of 10 when any non-heroic enemy unit is near them.", "Fireworks": "Enemies launch a dazzling fireworks display upon death, dealing damage to your nearby units.", "Lucky Envelopes": "Festive envelopes containing resource pickups are dropped at random throughout the map.", "Double-Edged": "Your units also receive all the damage they deal, but they are healed over time.", "Fatal Attraction": "When enemy units and structures die, any of your nearby units are pulled to their location.", "Propagators": "Shapeless lifeforms creep toward your base, transforming all of the units and structures they touch into copies of themselves.", "Moment of Silence": "When a Heroic enemy dies, all player units around it will reflect on their transgressions, leaving them unable to attack or use abilities.", "Kill Bots": "Offensive robots of a mysterious origin have been unleashed on the Koprulu sector, intent on destruction. Through cunning engineering, they are invincible until their pre-programmed kill counter has been filled. After that occurs, they will shut down. But can you survive for that long?", "Boom Bots": "Uncaring automatons carry a nuclear payload toward your base. One player must discern the disarming sequence and the other player must enter it.", "The Mist": "Mists roll over battlefield while unseen terrors lurk inside. Desperate warriors will fall and rise again.", "The Usual Suspects": "Enemy attacks will be led by dark reflections of Heroes in the service of Amon", "Supreme Commander": "Massive units gain 25% life and are bigger, the rest of units have 25% less life and are smaller. All units gain +2 weapon range.", "Shapeshifters": "Shapeshifters spawn with enemy attacks and in enemy bases. These creatures can transform into any unit of yours.", "Rip Field Generators": "Rip-Field Generators are deployed throughout the map. They will burn any unit that comes into their range.", "Repulsive Field": "Enemy attacks will push your units away.", "Old Times": "We are traveling back in time. Unit selection is limited to 12 units. There is no worker auto-mine, no smart cast, no multiple building select, etc.", "Nuclear Mines": "Nuclear Mines have been placed around the battlefield.", "Necronomicon": "Killed player units will rise again at enemy bases.", "Mothership": "Enemy Mothership roams the map and attacks player units.", "Matryoshka": "Enemy units will spawn mini-self upon death. This can trigger several times for larger units.", "Level Playing Field": "All weapons and abilities can hit both air and ground targets.", "Infestation Station": "Damaging any structure can cause infestation.", "I Collect, I Change": "When a non-heroic unit kills a hostile unit, it becomes the unit it killed. Units can only evolve into more expensive units.", "Great Wall": "Enemy begins massive effort to construct defensive structures around the battlefield.", "Endurance": "Player and enemy units and structures have 3x more health and shields.", "Dark Mirror": "Enemy attack waves will contain player units.", "Bloodlust": "Enemy units gain increased attack speed, movement speed, acceleration and damage reduction as their health gets lower."}
MutatorDiffScore = {"Walking Infested": "2", "Outbreak": "3", "Darkness": "2", "Time Warp": "1", "Speed Freaks": "2", "Mag-nificent": "4", "Mineral Shields": "2", "Barrier": "2", "Avenger": "5", "Evasive Maneuvers": "1", "Scorched Earth": "2", "Lava Burst": "3", "Self Destruction": "3", "Aggressive Deployment": "3", "Alien Incubation": "2", "Laser Drill": "2", "Long Range": "2", "Shortsighted": "1", "Mutually Assured Destruction": "5", "We Move Unseen": "3", "Slim Pickings": "5", "Concussive Attacks": "1", "Just Die!": "7", "Temporal Field": "1", "Void Rifts": "10", "Twister": "2", "Orbital Strike": "1", "Purifier Beam": "2", "Blizzard": "4", "Fear": "3", "Photon Overload": "1", "Minesweeper": "6", "Void Reanimators": "5", "Going Nuclear": "3", "Life Leech": "1", "Power Overwhelming": "5", "Micro Transactions": "5", "Missile Command": "3", "Vertigo": "0", "Polarity": "7", "Transmutation": "7", "Afraid of the Dark": "0", "Trick or Treat": "0", "Turkey Shoot": "0", "Sharing Is Caring": "0", "Diffusion": "3", "Black Death": "7", "Eminent Domain": "1", "Gift Exchange": "0", "Naughty List": "0", "Extreme Caution": "0", "Heroes from the Storm": "10", "Inspiration": "2", "Hardened Will": "2", "Fireworks": "0", "Lucky Envelopes": "0", "Double-Edged": "3", "Fatal Attraction": "3", "Propagators": "8", "Moment of Silence": "2", "Kill Bots": "6", "Boom Bots": "0", "The Mist": "3", "The Usual Suspects": "5", "Supreme Commander": "0", "Shapeshifters": "4", "Rip Field Generators": "3", "Repulsive Field": "1", "Old Times": "0", "Nuclear Mines": "2", "Necronomicon": "1", "Mothership": "2", "Matryoshka": "2", "Level Playing Field": "0", "Infestation Station": "4", "I Collect, I Change": "-2", "Great Wall": "5", "Endurance": "3", "Dark Mirror": "0", "Bloodlust": "1"}
PATH = 'Mutator Icons'
INTERVAL = 3 #seconds
PreviousMutators = []
colors = ['Red', 'Blue']
currentColor = 0
threshold = 0.9
while True:
if findingActivated == False: #skip if the function is deactivated via chat command (temporarily)
time.sleep(INTERVAL)
continue
if not(local_mutator_debug):
try:
game_response = requests.get('http://localhost:6119/game') #SC2 returns simple response with player names and races (or random)
game_response = game_response.json()
if 'isReplay' in game_response:
isReplay = game_response['isReplay']
if isReplay:
time.sleep(INTERVAL)
continue
except:
time.sleep(INTERVAL)
continue
MutatorDF = pd.DataFrame(columns=['Mutator', 'Description', 'Y','X','Max_val'])
NewMutators = []
a = 0
FewMutators = False #these prevent doing more work than necessary, if it's either small or big, the checks only those later
ManyMutators = False
entries = os.scandir(PATH) #for some reason this needs to be rescaned
img = pyautogui.screenshot(region=(1810,380, 110, 480))
img_rgb = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR)
#RESIZING (resize screenshot, if yes, lower threshold since accuracy will take a hit)
if RESIZECOEF != 1:
img_rgb = cv2.resize(img_rgb,(int(110*RESIZECOEF),int(480*RESIZECOEF)), interpolation = cv2.INTER_AREA)
threshold = 0.7
for entry in entries:
if entry.is_file() and entry.name.endswith('.png'):
if len(entry.name.split('_')) > 1 and FewMutators: #tells whether to load small or not
continue
if len(entry.name.split('_')) == 1 and ManyMutators:
continue
template = cv2.imread(PATH +'/'+ entry.name,1)
res = cv2.matchTemplate(img_rgb,template,cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
loc = np.where( res >= threshold) #array with values where res > threshold
if np.count_nonzero(loc)>0:
mutatorsFound = True
if ManyMutators == False and FewMutators == False:
if len(entry.name.split('_')) > 1: #was it a small of big one?
ManyMutators = True
else:
FewMutators = True
NewMutators.append(entry.name.split('.')[0]) #add to pd frames to sort later by position (x,y)
MutatorDF.loc[a] = [entry.name.split('.')[0].split('_')[0]]+[MutatorDescriptions.get(entry.name.split('.')[0].split('_')[0])]+[round(max_loc[1]/10,0)]+[round(max_loc[0]/10,0)]+[round(max_val,3)]
a += 1
MutatorsNotChanged = len(set(PreviousMutators) & set(NewMutators)) == len(NewMutators)
if not(MutatorsNotChanged):
print(f"Found mutators and appending! {NewMutators}")
#update mutators
PreviousMutators = NewMutators
MutatorFindOutput = []
#save mutators into a text file
SortedMutatorDF = MutatorDF.sort_values(by=['Y','X'], ascending=True).reset_index()
MutatorDF['Mutator'].to_csv('MutatorLog.csv', mode='a', header=False, sep ='\t')
#append overlay messages
for index, row in SortedMutatorDF.iterrows():
MutatorFindOutput.append([row['Mutator'],MutatorDiffScore.get(row['Mutator'])])
lock.acquire()
OverlayMessages.append({'mutatordata':True,'data':MutatorFindOutput})
lock.release()
#post current mutators
if postCurrent:
postCurrent = False
currentColor += 1
if currentColor >= len(colors): #loop back if max
currentColor = 0
MutationDifficulty = 0
SortedMutatorDF = MutatorDF.sort_values(by=['Y','X'], ascending=True).reset_index()
for index, row in SortedMutatorDF.iterrows():
Message = row['Mutator'] + ' ('+ MutatorDiffScore.get(row['Mutator']) +') - ' + row['Description'] #'/me : '
sendMessage(s,Message)
MutationDifficulty += int(MutatorDiffScore.get(row['Mutator']))
Message = '/color ' + colors[currentColor]
sendMessage(s,Message)
p1name = game_response['players'][0]['name']
p2name = game_response['players'][1]['name']
time.sleep(INTERVAL)
def debugMissionStat():
global OverlayMessages
OverlayMessages.append({
'replaydata':True,
'result': 'Victory',
'map': 'Oblivion Express',
'main': 'Maguro',
'mainAPM': 118.0,
'mainkills': 818,
'ally': 'zoro',
'allyAPM': 48.0,
'allykills': 418,
'allyCommander': 'Zeratul',
'allyCommanderLevel': 15,
'allyMasteries': [30, 0, 0, 30, 30, 0],
'mainCommander': 'Kerrigan',
'mainCommanderLevel': 15,
'mainMasteries': [30, 0, 29, 0, 29, 0],
'mainUnits': {'Mutalisk': [195, 19, 435, 0.53], 'Kerrigan': [4, 3, 374, 0.46]},
'allyUnits': {'Tesseract Projection': [85, 79, 125, 0.3],
'Zeratul': [4, 3, 102, 0.24],
'Void Templar': [15, 9, 49, 0.12],
'Tesseract Monolith Projection': [20, 17, 43, 0.1],
'Tesseract Monolith': [9, 0, 41, 0.1],
'Tesseract Cannon': [22, 1, 29, 0.07]},
'amonUnits': {'Hydralisk': [348, 244, 31, 0.26],
'Lurker': [117, 70, 24, 0.2],
'Zergling': [1002, 637, 18, 0.15],
'Ultralisk': [56, 38, 12, 0.1],
'Hybrid Destroyer': [56, 33, 5, 0.04]}})
#start the bot
if (__name__ == "__main__"):
s = openSocket()
joinRoom(s)
local_mutator_debug = False
t1 = threading.Thread(target = FindMutators)
t1.start()
t2 = threading.Thread(target = pingsAndMessages)
t2.start()
### OVERLAY
#UI
t3 = threading.Thread(target = SCO.main, args=(False,))
t3.start()
#replay checking
t4 = threading.Thread(target = check_replays, daemon=True, args=(SCO.ACCOUNTDIR,SCO.PLAYER_NAMES,SCO.REPLAYTIME,SCO.AOM_NAME,SCO.AOM_SECRETKEY,))
t4.start()
#websocket
t5 = threading.Thread(target = server_thread, daemon=True, args=(SCO.PORT,))
t5.start()
#hotkeys
if SCO.KEY_SHOW != None:
t6 = threading.Thread(target = keyboard_thread_SHOW, daemon=True, args=(SCO.KEY_SHOW,))
t6.start()
if SCO.KEY_HIDE != None:
t7 = threading.Thread(target = keyboard_thread_HIDE, daemon=True, args=(SCO.KEY_HIDE,))
t7.start()