Module:Npcinfo/idSets/data

local Sets = {}

local function BoolSetFactory(IDs, default) local set = { ['default'] = default or false} for k, v in pairs(IDs) do		set[v] = true end return set end

local function SetFactory(default, IDs) local set = { ['default'] = default} local key = nil for _, v in pairs(IDs) do		if key then set[key] = v			key = nil else key = v		end end return set end

-- bool sets, v1.4.4.2 Sets.DontDoHardmodeScaling = BoolSetFactory{ 5, 13, 14, 15, 267, 113, 114, 115, 116, 117, 118, 119, 658, 659, 660, 400, 522 } Sets.ReflectStarShotsInForTheWorthy = BoolSetFactory{4, 5, 13, 14, 15, 266, 267, 35, 36, 113, 114, 115, 116, 117, 118, 119, 125, 126, 134, 135, 136, 139, 127, 128, 131, 129, 130, 262, 263, 264, 245, 247, 248, 246, 249, 398, 400, 397, 396, 401 } Sets.IsTownPet = BoolSetFactory{ 637, 638, 656, 670, 678, 679, 680, 681, 682, 683, 684 } Sets.IsTownSlime = BoolSetFactory{ 670, 678, 679, 680, 681, 682, 683, 684 } Sets.ZappingJellyfish = BoolSetFactory{ 63, 64, 103, 242 } Sets.CantTakeLunchMoney = BoolSetFactory{ 394, 393, 392, 492, 491, 662, 384, 478, 535, 658, 659, 660, 128, 131, 129, 130, 139, 267, 247, 248, 246, 249, 245, 409, 410, 397, 396, 401, 400, 440, 68 } Sets.IsDragonfly = BoolSetFactory{ 595, 596, 597, 598, 599, 600, 601 } Sets.BelongsToInvasionOldOnesArmy = BoolSetFactory{ 552, 553, 554, 561, 562, 563, 555, 556, 557, 558, 559, 560, 576, 577, 568, 569, 566, 567, 570, 571, 572, 573, 548, 549, 564, 565, 574, 575, 551, 578 } Sets.TeleportationImmune = BoolSetFactory{ 552, 553, 554, 561, 562, 563, 555, 556, 557, 558, 559, 560, 576, 577, 568, 569, 566, 567, 570, 571, 572, 573, 548, 549, 564, 565, 574, 575, 551, 578 } Sets.UsesNewTargetting = BoolSetFactory{ 547, 552, 553, 554, 561, 562, 563, 555, 556, 557, 558, 559, 560, 576, 577, 568, 569, 566, 567, 570, 571, 572, 573, 564, 565, 574, 575, 551, 578, 210, 211, 620, 668 } Sets.TakesDamageFromHostilesWithoutBeingFriendly = BoolSetFactory{ 46, 55, 74, 148, 149, 230, 297, 298, 299, 303, 355, 356, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 377, 357, 374, 442, 443, 444, 445, 446, 448, 538, 539, 337, 540, 484, 485, 486, 487, 592, 593, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 611, 612, 613, 614, 615, 616, 617, 625, 626, 627, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 583, 584, 585, 669, 671, 672, 673, 674, 675, 677, 687 } Sets.HurtingBees = BoolSetFactory{ 210, 211, 222 } Sets.FighterUsesDD2PortalAppearEffect = BoolSetFactory{ 552, 553, 554, 561, 562, 563, 555, 556, 557, 576, 577, 568, 569, 570, 571, 572, 573, 564, 565 } Sets.NoEarlymodeLootWhenSpawnedFromStatue = BoolSetFactory{ 480, 82, 86, 170, 180, 171 } Sets.NeedsExpertScaling = BoolSetFactory{ 25, 30, 665, 33, 112, 666, 261, 265, 371, 516, 519, 522, 397, 396, 398, 491 } Sets.ProjectileNPC = BoolSetFactory{ 25, 30, 665, 33, 112, 666, 261, 265, 371, 516, 519 } Sets.SavesAndLoads = BoolSetFactory{ 422, 507, 517, 493 } Sets.MPAllowedEnemies = BoolSetFactory{ 4, 13, 50, 126, 125, 134, 127, 128, 131, 129, 130, 222, 245, 266, 370, 657, 668 } Sets.TownCritter = BoolSetFactory{ 46, 148, 149, 230, 299, 300, 303, 337, 361, 362, 364, 366, 367, 443, 445, 447, 538, 539, 540, 583, 584, 585, 592, 593, 602, 607, 608, 610, 616, 617, 625, 626, 627, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 687 } Sets.CountsAsCritter = BoolSetFactory{ 46, 303, 337, 540, 443, 74, 297, 298, 442, 611, 377, 446, 612, 613, 356, 444, 595, 596, 597, 598, 599, 600, 601, 604, 605, 357, 448, 374, 484, 355, 358, 606, 359, 360, 485, 486, 487, 148, 149, 55, 230, 592, 593, 299, 538, 539, 300, 447, 361, 445, 362, 363, 364, 365, 367, 366, 583, 584, 585, 602, 603, 607, 608, 609, 610, 616, 617, 625, 626, 627, 615, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 661, 669, 671, 672, 673, 674, 675, 677, 687 } Sets.HasNoPartyText = BoolSetFactory{ 441, 453 } Sets.DemonEyes = BoolSetFactory{ 2, 190, 192, 193, 191, 194, 317, 318 } Sets.Zombies = BoolSetFactory{ 3, 132, 186, 187, 188, 189, 200, 223, 161, 254, 255, 52, 53, 536, 319, 320, 321, 332, 436, 431, 432, 433, 434, 435, 331, 430, 590 } Sets.Skeletons = BoolSetFactory{ 77, 449, 450, 451, 452, 481, 201, 202, 203, 21, 324, 110, 323, 293, 291, 322, 292, 197, 167, 44, 635 } Sets.PositiveNPCTypesExcludedFromDeathTally = BoolSetFactory{ 121, 384, 478, 479, 410, 472, 378 } Sets.DangerThatPreventsOtherDangers = BoolSetFactory{ 517, 422, 507, 493, 399 } Sets.MustAlwaysDraw = BoolSetFactory{ 113, 114, 115, 116, 126, 125 } Sets.ShouldBeCountedAsBoss = BoolSetFactory{ 517, 422, 507, 493, 13 } Sets.GoldCrittersCollection = BoolSetFactory{                   443, 442,                   592,                    444,                    601,                    445,                    446,                    605,                    447,                    627,                    613,                    448,                    539} Sets.Unused = BoolSetFactory{76,146,408,547}

Sets.UsesMultiplayerProximitySyncing = BoolSetFactory({398, 397, 396}, true); Sets.NoMultiplayerSmoothingByType = BoolSetFactory{113, 114, 50, 657, 120, 245, 247, 248, 246, 370, 222, 398, 397, 396, 400, 401, 668, 70}; Sets.NoMultiplayerSmoothingByAI = BoolSetFactory{6, 8, 37};

Sets.NormalGoldCritterBestiaryPriority = BoolSetFactory{ 46,				540,				614,				303,				337,				443,				74,				297,				298,				442,				55,				230,				592,				593,				299,				538,				539,				300,				447,				361,				445,				377,				446,				356,				444,				357,				448,				595,				596,				597,				598,				599,				600,				601,				626,				627,				612,				613,				604,				605,				669,				677			}; Sets.BossBestiaryPriority = BoolSetFactory{ 664,                   4,                    5,                    50,                    535,                    13,                    14,                    15,                    266,                    267,                    668,                    35,                    36,                    222,                    113,                    114,                    117,                    115,                    116,                    657,                    658,                    659,                    660,                    125,                    126,                    134,                    135,                    136,                    139,                    127,                    128,                    131,                    129,                    130,                    262,                    263,                    264,                    636,                    245,                    246,                    249,                    247,                    248,                    370,                    372,                    373,                    439,                    438,                    379,                    380,                    440,                    521,                    454,                    507,                    517,                    422,                    493,                    398,                    396,                    397,                    400,                    401                }; Sets.TownNPCBestiaryPriority = BoolSetFactory{ 22,                   17,                    18,                    38,                    369,                    20,                    19,                    207,                    227,                    353,                    633,                    550,                    588,                    107,                    228,                    124,                    54,                    108,                    178,                    229,                    160,                    441,                    209,                    208,                    663,                    142,                    637,                    638,                    656,                    368,                    453,                    37                }; Sets.ShimmerImmunity = BoolSetFactory{ 637, 638, 656, 670, 684, 678, 679, 680, 681, 682, 683, 356, 669, 676, 244, 677, 594, 667, 662, 5, 115, 116, 139, 245, 247, 248, 246, 249, 344, 325, 50, 535, 657, 658, 659, 660, 668, 25, 30, 33, 70, 72, 665, 666, 112, 516, 517, 518, 519, 520, 521, 522, 523, 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, 423, 424, 425, 426, 427, 428, 429, 548, 549, 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 }; Sets.ShimmerTownTransform = BoolSetFactory{ 22, 17, 18, 227, 207, 633, 588, 208, 369, 353, 38, 20, 550, 19, 107, 228, 54, 124, 441, 229, 160, 108, 178, 209, 142, 663, 37, 453, 368 };

--value set Sets.TrailingMode = SetFactory(-1, { 439, 0, 440, 0, 370, 1, 372, 1, 373, 1, 396, 1, 400, 1, 401, 1, 473, 2, 474, 2, 475, 2, 476, 2, 4, 3, 471, 3, 477, 3, 479, 3, 120, 4, 137, 4, 138, 4, 94, 5, 125, 6, 126, 6, 127, 6, 128, 6, 129, 6, 130, 6, 131, 6, 139, 6, 140, 6, 407, 6, 420, 6, 425, 6, 427, 6, 426, 6, 581, 6, 516, 6, 542, 6, 543, 6, 544, 6, 545, 6, 402, 7, 417, 7, 419, 7, 418, 7, 574, 7, 575, 7, 519, 7, 521, 7, 522, 7, 546, 7, 558, 7, 559, 7, 560, 7, 551, 7, 620, 7, 657, 6, 636, 7, 677, 7, 685, 7 }) Sets.TrailCacheLength = SetFactory(10, { 402, 36, 519, 20, 522, 20, 620, 20, 677, 60, 685, 10 }) Sets.HatOffsetY = SetFactory(0, { 227, 4, 107, 2, 108, 2, 229, 4, 17, 2, 38, 8, 160, -10, 208, 2, 142, 2, 124, 2, 453, 2, 37, 4, 54, 4, 209, 4, 369, 6, 441, 6, 353, -2, 633, -2, 550, -2, 588, 2, 663, 2, 637, 0, 638, 0, 656, 4, 670, 0, 678, 0, 679, 0, 680, 0, 681, 0, 682, 0, 683, 0, 684, 0 }) Sets.FaceEmote = SetFactory(0, { 17, 101, 18, 102, 19, 103, 20, 104, 22, 105, 37, 106, 38, 107, 54, 108, 107, 109, 108, 110, 124, 111, 142, 112, 160, 113, 178, 114, 207, 115, 208, 116, 209, 117, 227, 118, 228, 119, 229, 120, 353, 121, 368, 122, 369, 123, 453, 124, 441, 125, 588, 140, 633, 141 }) Sets.ExtraFramesCount = SetFactory(0, { 17, 9, 18, 9, 19, 9, 20, 7, 22, 10, 37, 5, 38, 9, 54, 7, 107, 9, 108, 7, 124, 9, 142, 9, 160, 7, 178, 9, 207, 9, 208, 9, 209, 10, 227, 9, 228, 10, 229, 10, 353, 9, 633, 9, 368, 10, 369, 9, 453, 9, 441, 9, 550, 9, 588, 9, 663, 7, 637, 18, 638, 11, 656, 20, 670, 6, 678, 6, 679, 6, 680, 6, 681, 6, 682, 6, 683, 6, 684, 6 }) Sets.AttackFrameCount = SetFactory(0, { 17, 4, 18, 4, 19, 4, 20, 2, 22, 5, 37, 0, 38, 4, 54, 2, 107, 4, 108, 2, 124, 4, 142, 4, 160, 2, 178, 4, 207, 4, 208, 4, 209, 5, 227, 4, 228, 5, 229, 5, 353, 4, 633, 4, 368, 5, 369, 4, 453, 4, 441, 4, 550, 4, 588, 4, 663, 2, 637, 0, 638, 0, 656, 0, 670, 0, 678, 0, 679, 0, 680, 0, 681, 0, 682, 0, 683, 0, 684, 0 }) Sets.DangerDetectRange = SetFactory(-1, { 38, 300, 17, 320, 107, 300, 19, 900, 22, 700, 124, 800, 228, 800, 178, 900, 18, 300, 229, 1000, 209, 1000, 54, 700, 108, 700, 160, 700, 20, 1200, 369, 300, 453, 300, 368, 900, 207, 60, 227, 800, 208, 400, 142, 500, 441, 50, 353, 60, 633, 100, 550, 120, 588, 120, 663, 700, 638, 250, 637, 250, 656, 250, 670, 250, 678, 250, 679, 250, 680, 250, 681, 250, 682, 250, 683, 250, 684, 250 }) Sets.AttackTime = SetFactory(-1, { 38, 34, 17, 34, 107, 60, 19, 40, 22, 30, 124, 34, 228, 40, 178, 24, 18, 34, 229, 60, 209, 60, 54, 60, 108, 30, 160, 60, 20, 600, 369, 34, 453, 34, 368, 60, 207, 15, 227, 60, 208, 34, 142, 34, 441, 15, 353, 12, 633, 12, 550, 34, 588, 20, 638, -1, 637, -1, 656, -1 }) Sets.AttackAverageChance = SetFactory(1, { 38, 40, 17, 30, 107, 60, 19, 30, 22, 30, 124, 30, 228, 50, 178, 50, 18, 60, 229, 40, 209, 30, 54, 30, 108, 30, 160, 60, 20, 60, 369, 50, 453, 30, 368, 40, 207, 1, 227, 30, 208, 50, 142, 50, 441, 1, 353, 1, 633, 1, 550, 40, 588, 20, 663, 1, 638, 1, 637, 1, 656, 1, 670, 1, 678, 1, 679, 1, 680, 1, 681, 1, 682, 1, 683, 1, 684, 1 }) Sets.AttackType = SetFactory(-1, { 38, 0, 17, 0, 107, 0, 19, 1, 22, 1, 124, 0, 228, 1, 178, 1, 18, 0, 229, 1, 209, 1, 54, 2, 108, 2, 160, 2, 20, 2, 369, 0, 453, 0, 368, 1, 207, 3, 227, 1, 208, 0, 142, 0, 441, 3, 353, 3, 633, 0, 550, 0, 588, 0, 663, 2, 638, -1, 637, -1, 656, -1, 670, -1, 678, -1, 679, -1, 680, -1, 681, -1, 682, -1, 683, -1, 684, -1 }) Sets.PrettySafe = SetFactory(-1, { 19, 300, 22, 200, 124, 200, 228, 300, 178, 300, 229, 300, 209, 300, 54, 100, 108, 100, 160, 100, 20, 200, 368, 200, 227, 200 }) Sets.BossHeadTextures = SetFactory(-1, { 4, 0, 13, 2, 344, 3, 370, 4, 246, 5, 249, 5, 345, 6, 50, 7, 396, 8, 395, 9, 325, 10, 262, 11, 327, 13, 222, 14, 125, 15, 126, 20, 346, 17, 127, 18, 35, 19, 68, 19, 113, 22, 266, 23, 439, 24, 440, 24, 134, 25, 491, 26, 517, 27, 422, 28, 507, 29, 493, 30, 549, 35, 564, 32, 565, 32, 576, 33, 577, 33, 551, 34, 548, 36, 636, 37, 657, 38, 668, 39 }) Sets.ExtraTextureCount = SetFactory(0, { 38, 1, 17, 1, 107, 0, 19, 0, 22, 0, 124, 1, 228, 0, 178, 1, 18, 1, 229, 1, 209, 1, 54, 1, 108, 1, 160, 0, 20, 0, 369, 1, 453, 1, 368, 1, 207, 1, 227, 1, 208, 0, 142, 1, 441, 1, 353, 1, 633, 1, 550, 0, 588, 1, 633, 2, 663, 1, 638, 0, 637, 0, 656, 0, 670, 0, 678, 0, 679, 0, 680, 0, 681, 0, 682, 0, 683, 0, 684, 0 }) Sets.StatueSpawnedDropRarity = SetFactory(-1, { 480, 0.05, 82, 0.05, 86, 0.05, 48, 0.05, 490, 0.05, 489, 0.05, 170, 0.05, 180, 0.05, 171, 0.05, 167, 0.25, 73, 0.01, 24, 0.05, 481, 0.05, 42, 0.05, 6, 0.05, 2, 0.05, 49, 0.2, 3, 0.2, 58, 0.2, 21, 0.2, 65, 0.2, 449, 0.2, 482, 0.2, 103, 0.2, 64, 0.2, 63, 0.2, 85, 0 }) Sets.ShimmerTransformToItem = SetFactory(-1, { 651, 182, 644, 182, 650, 178, 643, 178, 649, 179, 642, 179, 648, 177, 641, 177, 640, 180, 647, 180, 646, 181, 639, 181, 652, 999, 645, 999 }); Sets.ShimmerTransformToNPC = SetFactory(-1, { 3, 21, 132, 202, 186, 201, 187, 21, 188, 21, 189, 202, 200, 203, 590, 21, 1, 676, 302, 676, 335, 676, 336, 676, 334, 676, 333, 676, 225, 676, 141, 676, 16, 676, 147, 676, 184, 676, 537, 676, 204, 676, 81, 676, 183, 676, 138, 676, 121, 676, 591, 449, 430, 449, 436, 452, 432, 450, 433, 449, 434, 449, 435, 451, 614, 677, 74, 677, 297, 677, 298, 677, 673, 677, 672, 677, 671, 677, 675, 677, 674, 677, 362, 677, 363, 677, 364, 677, 365, 677, 608, 677, 609, 677, 602, 677, 603, 677, 611, 677, 148, 677, 149, 677, 46, 677, 299, 677, 538, 677, 55, 677, 607, 677, 615, 677, 625, 677, 626, 677, 361, 677, 687, 677, 484, 677, 604, 677, 358, 677, 355, 677, 616, 677, 617, 677, 654, 677, 653, 677, 655, 677, 585, 677, 584, 677, 583, 677, 595, 677, 596, 677, 600, 677, 597, 677, 598, 677, 599, 677, 357, 677, 377, 677, 606, 677, 359, 677, 360, 677, 367, 677, 366, 677, 300, 677, 610, 677, 612, 677, 487, 677, 486, 677, 485, 677, 669, 677, 356, 677, 661, 677, 374, 677, 442, 677, 443, 677, 444, 677, 601, 677, 445, 677, 592, 677, 446, 677, 605, 677, 447, 677, 627, 677, 539, 677, 613, 677, 448, 677 });

-- nullable ( Dictionary ) Sets.SpecialSpawningRules = SetFactory(nil, { 259, 0, 260, 0,  175, 0, 43, 0 , 56, 0 , 101, 0 }) Sets.RespawnEnemyID = SetFactory(nil, { 492, 0, 491, 0,  394, 0,  393, 0,  392, 0,  13, 0,  14, 0,  15, 0,  412, 0,  413, 0,  414, 0,  134, 0,  135, 0,  136, 0,  454, 0,  455, 0,  456, 0,  457, 0,  458, 0,  459, 0,  8, 7,  9, 7,  11, 10,  12, 10,  40, 39,  41, 39,  96, 95,  97, 95,  99, 98,  100, 98,  88, 87,  89, 87,  90, 87,  91, 87,  92, 87,  118, 117,  119, 117,  514, 513,  515, 513,  511, 510,  512, 510,  622, 621,  623, 621 })

return Sets