DISCLAIMER: I am not a developer and I did not write the script and therefore don't actually know how it works. I am just going off of what I found in it, So don't go bugging me with any errors you get.
Looking at the script:
Code: Select all
bowser.minionList = {};
--List of possible minions and their AI type
bowser.minionList = {};
bowser.minionList[1] = bowser.MINION_GOOMBA;
bowser.minionList[2] = bowser.MINION_GOOMBA;
bowser.minionList[3] = bowser.MINION_PARAGOOMBA;
bowser.minionList[4] = bowser.MINION_KOOPA;
bowser.minionList[6] = bowser.MINION_KOOPA;
bowser.minionList[27] = bowser.MINION_GOOMBA;
bowser.minionList[28] = bowser.MINION_CHEEPCHEEP;
bowser.minionList[29] = bowser.MINION_HAMMERBRO;
bowser.minionList[36] = bowser.MINION_GOOMBA;
bowser.minionList[48] = bowser.MINION_GOOMBA;
bowser.minionList[53] = bowser.MINION_GOOMBA;
bowser.minionList[54] = bowser.MINION_GOOMBA;
bowser.minionList[55] = bowser.MINION_GOOMBA;
bowser.minionList[71] = bowser.MINION_GOOMBA;
bowser.minionList[72] = bowser.MINION_KOOPA;
bowser.minionList[76] = bowser.MINION_PARAKOOPA;
bowser.minionList[89] = bowser.MINION_GOOMBA;
bowser.minionList[109] = bowser.MINION_KOOPA;
bowser.minionList[110] = bowser.MINION_KOOPA;
bowser.minionList[111] = bowser.MINION_KOOPA;
bowser.minionList[112] = bowser.MINION_KOOPA;
bowser.minionList[117] = bowser.MINION_GOOMBA;
bowser.minionList[118] = bowser.MINION_GOOMBA;
bowser.minionList[119] = bowser.MINION_GOOMBA;
bowser.minionList[120] = bowser.MINION_GOOMBA;
bowser.minionList[121] = bowser.MINION_PARAKOOPA;
bowser.minionList[122] = bowser.MINION_PARAKOOPA;
bowser.minionList[123] = bowser.MINION_PARAKOOPA;
bowser.minionList[124] = bowser.MINION_PARAKOOPA;
bowser.minionList[125] = bowser.MINION_GOOMBA;
bowser.minionList[126] = bowser.MINION_GOOMBA;
bowser.minionList[161] = bowser.MINION_PARAKOOPA;
bowser.minionList[162] = bowser.MINION_GOOMBA;
bowser.minionList[163] = bowser.MINION_GOOMBA;
bowser.minionList[164] = bowser.MINION_GOOMBA;
bowser.minionList[165] = bowser.MINION_GOOMBA;
bowser.minionList[167] = bowser.MINION_PARAGOOMBA;
bowser.minionList[168] = bowser.MINION_GOOMBA;
bowser.minionList[173] = bowser.MINION_KOOPA;
bowser.minionList[175] = bowser.MINION_KOOPA;
bowser.minionList[176] = bowser.MINION_PARAKOOPA;
bowser.minionList[177] = bowser.MINION_PARAKOOPA;
bowser.minionList[189] = bowser.MINION_GOOMBA;
bowser.minionList[207] = bowser.MINION_GOOMBA;
bowser.minionList[229] = bowser.MINION_CHEEPCHEEP;
bowser.minionList[230] = bowser.MINION_CHEEPCHEEP;
bowser.minionList[231] = bowser.MINION_CHEEPCHEEP;
bowser.minionList[232] = bowser.MINION_CHEEPCHEEP;
bowser.minionList[233] = bowser.MINION_CHEEPCHEEP;
bowser.minionList[234] = bowser.MINION_CHEEPCHEEP;
bowser.minionList[235] = bowser.MINION_CHEEPCHEEP;
bowser.minionList[236] = bowser.MINION_CHEEPCHEEP;
bowser.minionList[242] = bowser.MINION_GOOMBA;
bowser.minionList[243] = bowser.MINION_PARAGOOMBA;
bowser.minionList[244] = bowser.MINION_PARAGOOMBA;
bowser.minionList[247] = bowser.MINION_GOOMBA;
bowser.minionList[285] = bowser.MINION_GOOMBA;
bowser.minionList[286] = bowser.MINION_GOOMBA;
bowser.minionList[296] = bowser.MINION_GOOMBA;
bowser.minionList[302] = bowser.MINION_PARAGOOMBA;
bowser.minionList[309] = bowser.MINION_GOOMBA;
bowser.minionList[375] = bowser.MINION_GOOMBA;
bowser.minionList[380] = bowser.MINION_PARAGOOMBA;
bowser.minionList[382] = bowser.MINION_GOOMBA;
bowser.minionList[383] = bowser.MINION_GOOMBA;
bowser.minionList[392] = bowser.MINION_PARAGOOMBA;
bowser.minionList[407] = bowser.MINION_GOOMBA;
bowser.minionList[408] = bowser.MINION_GOOMBA;
bowser.minionList[415] = bowser.MINION_GOOMBA;
bowser.minionList[417] = bowser.MINION_PARAGOOMBA;
bowser.minionList[578] = bowser.MINION_GOOMBA;
bowser.minionList[611] = bowser.MINION_GOOMBA;
bowser.minionList[612] = bowser.MINION_GOOMBA;
--For Koopa and Parakoopa type minions, this determines the ID of the shell they will turn into.
bowser.koopaShells = {}
bowser.koopaShells[4] = 5;
bowser.koopaShells[6] = 7;
bowser.koopaShells[72] = 73;
bowser.koopaShells[76] = 5;
bowser.koopaShells[109] = 113;
bowser.koopaShells[110] = 114;
bowser.koopaShells[111] = 115;
bowser.koopaShells[112] = 116;
bowser.koopaShells[121] = 113;
bowser.koopaShells[122] = 114;
bowser.koopaShells[123] = 115;
bowser.koopaShells[124] = 116;
bowser.koopaShells[161] = 7;
bowser.koopaShells[173] = 172;
bowser.koopaShells[175] = 174;
bowser.koopaShells[176] = 172;
bowser.koopaShells[177] = 174;
--Deployed Paragoomba and Parakoopa troops will ignore IDs in this list.
bowser.shieldIgnoreList = {}
bowser.shieldIgnoreList[5] = true
bowser.shieldIgnoreList[7] = true
bowser.shieldIgnoreList[73] = true
bowser.shieldIgnoreList[113] = true
bowser.shieldIgnoreList[114] = true
bowser.shieldIgnoreList[115] = true
bowser.shieldIgnoreList[116] = true
bowser.shieldIgnoreList[172] = true
bowser.shieldIgnoreList[174] = true
It implies all vanilla Goombas and Koopas (as well as their Para versions), as well as SMB1 Hammer Bros. and all Cheep Cheeps. It also works with the Wosu and the blue Zelda slime for some reason. However, for the sake of this question, I found out you could add custom ones. So, theoretically, anything. Here's the Shy Guys for beautiful irony:
So, for custom definitions you need to use the following script:
Code: Select all
local bowser = require("characters/bowser")
bowser.minionList[X] = bowser.MINION_GOOMBA -- Replace X with the ID of the NPC in question.
bowser.koopaShells[X] = Y -- If the NPC is registered as either MINION_KOOPA or MINION_PARAKOOPA, replace X with the ID NPC in question and Y with the ID of the shell that it turns into.
These seem to be all the AI types, with information on what they are supposed to do:
bowser.MINION_GOOMBA - Makes it walk into the target and die.
bowser.MINION_KOOPA - Turns into the NPC specified by koopaShells
bowser.MINION_PARAGOOMBA - Makes it spin around as a meatshield
bowser.MINION_PARAKOOPA - Same as above, but turns into the specified shell when it dies
bowser.MINION_CHEEPCHEEP - Does pretty much the same as MINION_GOOMBA but makes it fly if it's underwater
bowser.MINION_HAMMERBRO - Like MINION_GOOMBA, but replaces any SMB1 Hammer Bro hammers fired by the NPC with player hammers
As for kill types, it appears to be anything other than minions or offscreen.
Once again, I didn't write the script so I'm probably wrong somewhere.
If only I could think of a good enough signing off comment