Terraria Wiki

  • Discussions are now available on the Terraria Wiki.
  • Miss the old Hydra Skin? Try out our Hydralize gadget! Visit the preferences page while logged in and turn on the gadget.

READ MORE

Terraria Wiki
m (Undo revision 1120497 by Eraloiz (talk))
Tag: Undo
No edit summary
Line 10,188: Line 10,188:
 
if not ExcludedFromDeathTally(npcid) then
 
if not ExcludedFromDeathTally(npcid) then
 
this.banner = BannerToItem(npcToBanner(BannerID()))
 
this.banner = BannerToItem(npcToBanner(BannerID()))
  +
elseif npcid == 0 then
  +
this.banner = nil
 
end
 
end
 
local info = {}
 
local info = {}

Revision as of 15:24, 24 May 2021

Lua logo Documentation The documentation below is transcluded from Module:Npcinfo/datagen/doc. (edit | history)

Helper for generating data for Module:Npcinfo/data. Invoke the gen function with two NPC IDs, e.g. {{#invoke:Npcinfo/datagen|gen|20|80}}. The module will generate the data for all NPCs whose ID is between 20 and 80 (inclusive) in that case.


local trim = mw.text.trim

---A cached version of the current frame, the interface to the parser.
local currentFrame

---Return a trimmed version of the value of the template parameter with the specified `key`.
---Return `nil` if the parameter is empty or unset.
---@param key string|number
---@return string|nil
local function getArg(key)
	local value = currentFrame.args[key]
	if not value then
		return nil
	end
	value = trim(value)
	if value == '' then
		return nil
	end
	return value
end


--
-- In the following sections, Terraria's C# code is reproduced in Lua.
-- Terraria version: Desktop 1.4.2.3
--


--------------------
-- Item
--------------------

local Item = {}
do
	Item.buyPrice = function(platinum, gold, silver, copper)
		return copper + silver * 100 + gold * 100 * 100 + platinum * 100 * 100 * 100
	end
	Item.sellPrice = function(platinum, gold, silver, copper)
		return (copper + silver * 100 + gold * 100 * 100 + platinum * 100 * 100 * 100) * 5
	end
end


--------------------
-- Debuff immunities
--------------------

---from Terraria.ID.NPCID+Sets.DebuffImmunitySets.
---Indices are NPC IDs, values are arrays of debuff IDs.
local DebuffImmunity = {}
do
	DebuffImmunity[1] = { 20 }
	DebuffImmunity[4] = { 31 }
	DebuffImmunity[5] = { 31 }
	DebuffImmunity[6] = { 31 }
	DebuffImmunity[7] = { 31 }
	DebuffImmunity[8] = { 31 }
	DebuffImmunity[9] = { 31 }
	DebuffImmunity[10] = { 31 }
	DebuffImmunity[11] = { 31 }
	DebuffImmunity[12] = { 31 }
	DebuffImmunity[13] = { 31 }
	DebuffImmunity[14] = { 31 }
	DebuffImmunity[15] = { 31 }
	DebuffImmunity[16] = { 20 }
	DebuffImmunity[17] = { 31 }
	DebuffImmunity[18] = { 31 }
	DebuffImmunity[19] = { 31 }
	DebuffImmunity[20] = { 31 }
	DebuffImmunity[21] = { 20 }
	DebuffImmunity[22] = { 31 }
	DebuffImmunity[23] = { 20, 24, 31, 323 }
	DebuffImmunity[24] = { 24, 31, 323 }
	DebuffImmunity[25] = { 31 }
	DebuffImmunity[29] = { 31 }
	DebuffImmunity[30] = { 31 }
	DebuffImmunity[31] = { 20 }
	DebuffImmunity[32] = { 20, 31 }
	DebuffImmunity[33] = { 31 }
	DebuffImmunity[34] = { 20, 31 }
	DebuffImmunity[35] = { 20, 31, 169 }
	DebuffImmunity[36] = { 20, 31 }
	DebuffImmunity[37] = { 31 }
	DebuffImmunity[38] = { 31 }
	DebuffImmunity[39] = { 20, 24, 31, 323 }
	DebuffImmunity[40] = { 20, 24, 31, 323 }
	DebuffImmunity[41] = { 20, 24, 31, 323 }
	DebuffImmunity[42] = { 20, 31 }
	DebuffImmunity[43] = { 20, 31 }
	DebuffImmunity[44] = { 20 }
	DebuffImmunity[45] = { 20, 31 }
	DebuffImmunity[46] = { 31 }
	DebuffImmunity[48] = { 31 }
	DebuffImmunity[50] = { 20, 31 }
	DebuffImmunity[54] = { 31 }
	DebuffImmunity[55] = { 31 }
	DebuffImmunity[56] = { 31 }
	DebuffImmunity[57] = { 31 }
	DebuffImmunity[58] = { 31 }
	DebuffImmunity[59] = { 20, 24, 323 }
	DebuffImmunity[60] = { 24, 323 }
	DebuffImmunity[61] = { 31 }
	DebuffImmunity[62] = { 24, 31, 153, 323 }
	DebuffImmunity[63] = { 31 }
	DebuffImmunity[64] = { 31 }
	DebuffImmunity[65] = { 31 }
	DebuffImmunity[66] = { 24, 31, 153, 323 }
	DebuffImmunity[67] = { 31 }
	DebuffImmunity[69] = { 31 }
	DebuffImmunity[70] = { 20, 24, 31, 39, 70, 323 }
	DebuffImmunity[71] = { 20 }
	DebuffImmunity[74] = { 31 }
	DebuffImmunity[76] = { 31 }
	DebuffImmunity[77] = { 20 }
	DebuffImmunity[81] = { 20 }
	DebuffImmunity[83] = { 20, 24, 31, 323 }
	DebuffImmunity[84] = { 20, 24, 31, 323 }
	DebuffImmunity[85] = { 20, 24, 31, 323 }
	DebuffImmunity[87] = { 31 }
	DebuffImmunity[88] = { 31 }
	DebuffImmunity[89] = { 31 }
	DebuffImmunity[90] = { 31 }
	DebuffImmunity[91] = { 31 }
	DebuffImmunity[92] = { 31 }
	DebuffImmunity[94] = { 31 }
	DebuffImmunity[95] = { 31 }
	DebuffImmunity[96] = { 31 }
	DebuffImmunity[97] = { 31 }
	DebuffImmunity[98] = { 31 }
	DebuffImmunity[99] = { 31 }
	DebuffImmunity[100] = { 31 }
	DebuffImmunity[101] = { 39, 31 }
	DebuffImmunity[102] = { 31 }
	DebuffImmunity[103] = { 31 }
	DebuffImmunity[105] = { 31 }
	DebuffImmunity[106] = { 31 }
	DebuffImmunity[107] = { 31 }
	DebuffImmunity[108] = { 31 }
	DebuffImmunity[109] = { 31 }
	DebuffImmunity[110] = { 20 }
	DebuffImmunity[112] = { 31 }
	DebuffImmunity[113] = { 24, 31, 323 }
	DebuffImmunity[114] = { 24, 31, 323 }
	DebuffImmunity[115] = { 31 }
	DebuffImmunity[116] = { 31 }
	DebuffImmunity[117] = { 31 }
	DebuffImmunity[118] = { 31 }
	DebuffImmunity[119] = { 31 }
	DebuffImmunity[120] = { 20 }
	DebuffImmunity[121] = { 20 }
	DebuffImmunity[122] = { 20, 31 }
	DebuffImmunity[123] = { 31 }
	DebuffImmunity[124] = { 31 }
	DebuffImmunity[125] = { 20, 31 }
	DebuffImmunity[126] = { 20, 31 }
	DebuffImmunity[127] = { 20, 31, 169 }
	DebuffImmunity[128] = { 20, 31 }
	DebuffImmunity[129] = { 20, 31 }
	DebuffImmunity[130] = { 20, 31 }
	DebuffImmunity[131] = { 20, 31 }
	DebuffImmunity[137] = { 20 }
	DebuffImmunity[138] = { 20 }
	DebuffImmunity[140] = { 20, 24, 323 }
	DebuffImmunity[141] = { 20, 70 }
	DebuffImmunity[142] = { 31 }
	DebuffImmunity[143] = { 20, 44, 324 }
	DebuffImmunity[144] = { 20, 44, 324 }
	DebuffImmunity[145] = { 20, 44, 324 }
	DebuffImmunity[146] = { 31 }
	DebuffImmunity[147] = { 20, 44, 324 }
	DebuffImmunity[148] = { 31 }
	DebuffImmunity[149] = { 31 }
	DebuffImmunity[150] = { 44, 324 }
	DebuffImmunity[151] = { 24, 323 }
	DebuffImmunity[154] = { 44, 324 }
	DebuffImmunity[156] = { 24, 31, 153, 323 }
	DebuffImmunity[157] = { 31 }
	DebuffImmunity[160] = { 31 }
	DebuffImmunity[161] = { 44, 324 }
	DebuffImmunity[163] = { 20 }
	DebuffImmunity[164] = { 20 }
	DebuffImmunity[165] = { 20 }
	DebuffImmunity[166] = { 20 }
	DebuffImmunity[167] = { 20, 44, 324 }
	DebuffImmunity[169] = { 20, 31, 44, 324 }
	DebuffImmunity[172] = { 20, 31 }
	DebuffImmunity[173] = { 31 }
	DebuffImmunity[174] = { 31 }
	DebuffImmunity[175] = { 20, 31 }
	DebuffImmunity[176] = { 20, 31 }
	DebuffImmunity[177] = { 31 }
	DebuffImmunity[178] = { 31 }
	DebuffImmunity[179] = { 20, 24, 31, 323 }
	DebuffImmunity[181] = { 20 }
	DebuffImmunity[182] = { 20, 31 }
	DebuffImmunity[183] = { 20 }
	DebuffImmunity[184] = { 20, 44, 324 }
	DebuffImmunity[185] = { 44, 324 }
	DebuffImmunity[195] = { 31 }
	DebuffImmunity[197] = { 20, 44, 324 }
	DebuffImmunity[198] = { 20 }
	DebuffImmunity[199] = { 20 }
	DebuffImmunity[201] = { 20 }
	DebuffImmunity[202] = { 20 }
	DebuffImmunity[203] = { 20 }
	DebuffImmunity[204] = { 20 }
	DebuffImmunity[205] = { 20, 31 }
	DebuffImmunity[206] = { 44, 324 }
	DebuffImmunity[207] = { 31 }
	DebuffImmunity[208] = { 31 }
	DebuffImmunity[209] = { 31 }
	DebuffImmunity[210] = { 20, 31 }
	DebuffImmunity[211] = { 20, 31 }
	DebuffImmunity[216] = { 31 }
	DebuffImmunity[217] = { 31 }
	DebuffImmunity[218] = { 31 }
	DebuffImmunity[219] = { 31 }
	DebuffImmunity[220] = { 31 }
	DebuffImmunity[221] = { 31 }
	DebuffImmunity[222] = { 20, 31 }
	DebuffImmunity[225] = { 20 }
	DebuffImmunity[227] = { 31 }
	DebuffImmunity[228] = { 31 }
	DebuffImmunity[229] = { 31 }
	DebuffImmunity[230] = { 31 }
	DebuffImmunity[231] = { 20, 31 }
	DebuffImmunity[232] = { 20, 31 }
	DebuffImmunity[233] = { 20, 31 }
	DebuffImmunity[234] = { 20, 31 }
	DebuffImmunity[235] = { 20, 31 }
	DebuffImmunity[236] = { 20 }
	DebuffImmunity[237] = { 20 }
	DebuffImmunity[238] = { 20 }
	DebuffImmunity[239] = { 20 }
	DebuffImmunity[240] = { 20 }
	DebuffImmunity[241] = { 31 }
	DebuffImmunity[242] = { 31 }
	DebuffImmunity[243] = { 20, 31, 44, 324 }
	DebuffImmunity[244] = { 20 }
	DebuffImmunity[245] = { 20, 24, 31, 323 }
	DebuffImmunity[246] = { 20, 24, 31, 323 }
	DebuffImmunity[247] = { 20, 24, 31, 323 }
	DebuffImmunity[248] = { 20, 24, 31, 323 }
	DebuffImmunity[249] = { 20, 24, 31, 323 }
	DebuffImmunity[250] = { 20, 31 }
	DebuffImmunity[256] = { 31 }
	DebuffImmunity[259] = { 20, 31 }
	DebuffImmunity[260] = { 20, 31 }
	DebuffImmunity[261] = { 31 }
	DebuffImmunity[262] = { 20, 31 }
	DebuffImmunity[263] = { 20, 31 }
	DebuffImmunity[264] = { 20, 31 }
	DebuffImmunity[265] = { 31 }
	DebuffImmunity[266] = { 31 }
	DebuffImmunity[267] = { 31 }
	DebuffImmunity[268] = { 20, 69 }
	DebuffImmunity[269] = { 20 }
	DebuffImmunity[270] = { 20 }
	DebuffImmunity[271] = { 20 }
	DebuffImmunity[272] = { 20 }
	DebuffImmunity[273] = { 20 }
	DebuffImmunity[274] = { 20 }
	DebuffImmunity[275] = { 20 }
	DebuffImmunity[276] = { 20 }
	DebuffImmunity[277] = { 20, 24, 323 }
	DebuffImmunity[278] = { 20, 24, 323 }
	DebuffImmunity[279] = { 20, 24, 323 }
	DebuffImmunity[280] = { 20, 24, 323 }
	DebuffImmunity[281] = { 20, 31 }
	DebuffImmunity[282] = { 20, 31 }
	DebuffImmunity[283] = { 20, 31 }
	DebuffImmunity[284] = { 20, 31 }
	DebuffImmunity[285] = { 20, 31 }
	DebuffImmunity[286] = { 20, 31 }
	DebuffImmunity[287] = { 20 }
	DebuffImmunity[289] = { 20, 31 }
	DebuffImmunity[290] = { 20, 31, 69 }
	DebuffImmunity[291] = { 20 }
	DebuffImmunity[292] = { 20 }
	DebuffImmunity[293] = { 20 }
	DebuffImmunity[294] = { 20 }
	DebuffImmunity[295] = { 20 }
	DebuffImmunity[296] = { 20 }
	DebuffImmunity[297] = { 31 }
	DebuffImmunity[298] = { 31 }
	DebuffImmunity[299] = { 31 }
	DebuffImmunity[300] = { 31 }
	DebuffImmunity[301] = { 31 }
	DebuffImmunity[302] = { 20 }
	DebuffImmunity[303] = { 31 }
	DebuffImmunity[304] = { 20 }
	DebuffImmunity[315] = { 20, 24, 31, 323 }
	DebuffImmunity[316] = { 20, 24, 31, 39, 44, 69, 70, 153, 189, 203, 204, 323, 324 }
	DebuffImmunity[322] = { 20 }
	DebuffImmunity[323] = { 20 }
	DebuffImmunity[324] = { 20 }
	DebuffImmunity[325] = { 20, 31 }
	DebuffImmunity[327] = { 20, 24, 31, 323 }
	DebuffImmunity[328] = { 20, 24, 31, 323 }
	DebuffImmunity[329] = { 20, 24, 323 }
	DebuffImmunity[333] = { 20 }
	DebuffImmunity[334] = { 20 }
	DebuffImmunity[335] = { 20 }
	DebuffImmunity[336] = { 20 }
	DebuffImmunity[337] = { 31 }
	DebuffImmunity[338] = { 44, 324 }
	DebuffImmunity[339] = { 44, 324 }
	DebuffImmunity[340] = { 44, 324 }
	DebuffImmunity[341] = { 20, 24, 31, 323 }
	DebuffImmunity[343] = { 44, 324 }
	DebuffImmunity[344] = { 20, 31, 44, 324 }
	DebuffImmunity[345] = { 20, 31, 44, 324 }
	DebuffImmunity[346] = { 20, 31, 44, 324 }
	DebuffImmunity[347] = { 31 }
	DebuffImmunity[351] = { 44, 324 }
	DebuffImmunity[352] = { 20, 31, 44, 324 }
	DebuffImmunity[353] = { 31 }
	DebuffImmunity[354] = { 31 }
	DebuffImmunity[355] = { 31 }
	DebuffImmunity[356] = { 31 }
	DebuffImmunity[357] = { 31 }
	DebuffImmunity[358] = { 31 }
	DebuffImmunity[359] = { 31 }
	DebuffImmunity[360] = { 31 }
	DebuffImmunity[361] = { 31 }
	DebuffImmunity[362] = { 31 }
	DebuffImmunity[363] = { 31 }
	DebuffImmunity[364] = { 31 }
	DebuffImmunity[365] = { 31 }
	DebuffImmunity[366] = { 31 }
	DebuffImmunity[367] = { 31 }
	DebuffImmunity[368] = { 31 }
	DebuffImmunity[369] = { 31 }
	DebuffImmunity[370] = { 31 }
	DebuffImmunity[371] = { 31 }
	DebuffImmunity[372] = { 31 }
	DebuffImmunity[373] = { 31 }
	DebuffImmunity[374] = { 31 }
	DebuffImmunity[375] = { 31 }
	DebuffImmunity[376] = { 31 }
	DebuffImmunity[377] = { 31 }
	DebuffImmunity[378] = { 31 }
	DebuffImmunity[379] = { 31 }
	DebuffImmunity[380] = { 31 }
	DebuffImmunity[381] = { 31 }
	DebuffImmunity[387] = { 20, 31 }
	DebuffImmunity[388] = { 20, 31 }
	DebuffImmunity[396] = { 31 }
	DebuffImmunity[397] = { 31 }
	DebuffImmunity[398] = { 31 }
	DebuffImmunity[399] = { 20, 31 }
	DebuffImmunity[400] = { 31 }
	DebuffImmunity[401] = { 31 }
	DebuffImmunity[402] = { 31 }
	DebuffImmunity[403] = { 31 }
	DebuffImmunity[404] = { 31 }
	DebuffImmunity[405] = { 31 }
	DebuffImmunity[406] = { 31 }
	DebuffImmunity[407] = { 31 }
	DebuffImmunity[408] = { 31 }
	DebuffImmunity[412] = { 31 }
	DebuffImmunity[413] = { 31 }
	DebuffImmunity[414] = { 31 }
	DebuffImmunity[418] = { 20, 24, 31, 323 }
	DebuffImmunity[420] = { 31 }
	DebuffImmunity[421] = { 31 }
	DebuffImmunity[428] = { 31 }
	DebuffImmunity[431] = { 44, 324 }
	DebuffImmunity[437] = { 31 }
	DebuffImmunity[438] = { 31 }
	DebuffImmunity[441] = { 31 }
	DebuffImmunity[442] = { 31 }
	DebuffImmunity[443] = { 31 }
	DebuffImmunity[444] = { 31 }
	DebuffImmunity[445] = { 31 }
	DebuffImmunity[446] = { 31 }
	DebuffImmunity[447] = { 31 }
	DebuffImmunity[448] = { 31 }
	DebuffImmunity[449] = { 20 }
	DebuffImmunity[450] = { 20 }
	DebuffImmunity[451] = { 20 }
	DebuffImmunity[452] = { 20 }
	DebuffImmunity[453] = { 31 }
	DebuffImmunity[461] = { 31 }
	DebuffImmunity[465] = { 31 }
	DebuffImmunity[467] = { 20, 24, 31, 323 }
	DebuffImmunity[471] = { 31, 153 }
	DebuffImmunity[472] = { 31, 153 }
	DebuffImmunity[473] = { 20, 24, 31, 323 }
	DebuffImmunity[474] = { 20, 24, 31, 323 }
	DebuffImmunity[475] = { 20, 24, 31, 323 }
	DebuffImmunity[476] = { 20, 24, 31, 323 }
	DebuffImmunity[477] = { 31 }
	DebuffImmunity[478] = { 31 }
	DebuffImmunity[479] = { 31 }
	DebuffImmunity[480] = { 31 }
	DebuffImmunity[481] = { 20 }
	DebuffImmunity[482] = { 20, 24, 31, 323 }
	DebuffImmunity[483] = { 20, 24, 31, 323 }
	DebuffImmunity[484] = { 31 }
	DebuffImmunity[485] = { 31 }
	DebuffImmunity[486] = { 31 }
	DebuffImmunity[487] = { 31 }
	DebuffImmunity[488] = { 31 }
	DebuffImmunity[494] = { 31 }
	DebuffImmunity[495] = { 31 }
	DebuffImmunity[496] = { 31 }
	DebuffImmunity[497] = { 31 }
	DebuffImmunity[510] = { 31 }
	DebuffImmunity[511] = { 31 }
	DebuffImmunity[512] = { 31 }
	DebuffImmunity[513] = { 31 }
	DebuffImmunity[514] = { 31 }
	DebuffImmunity[515] = { 31 }
	DebuffImmunity[516] = { 31 }
	DebuffImmunity[518] = { 31 }
	DebuffImmunity[519] = { 31 }
	DebuffImmunity[520] = { 20, 24, 31, 323 }
	DebuffImmunity[521] = { 20, 24, 31, 39, 44, 69, 70, 153, 189, 203, 204, 323, 324 }
	DebuffImmunity[522] = { 31 }
	DebuffImmunity[523] = { 31 }
	DebuffImmunity[530] = { 20 }
	DebuffImmunity[531] = { 20 }
	DebuffImmunity[533] = { 20, 24, 31, 39, 44, 69, 70, 153, 189, 203, 204, 323, 324 }
	DebuffImmunity[535] = { 20 }
	DebuffImmunity[537] = { 20 }
	DebuffImmunity[538] = { 31 }
	DebuffImmunity[539] = { 31 }
	DebuffImmunity[540] = { 31 }
	DebuffImmunity[541] = { 20, 31 }
	DebuffImmunity[542] = { 31 }
	DebuffImmunity[543] = { 31 }
	DebuffImmunity[544] = { 31 }
	DebuffImmunity[545] = { 31 }
	DebuffImmunity[546] = { 31 }
	DebuffImmunity[547] = { 31 }
	DebuffImmunity[548] = { 31 }
	DebuffImmunity[550] = { 31 }
	DebuffImmunity[551] = { 24, 31, 323 }
	DebuffImmunity[552] = { 31 }
	DebuffImmunity[553] = { 31 }
	DebuffImmunity[554] = { 31 }
	DebuffImmunity[555] = { 31 }
	DebuffImmunity[556] = { 31 }
	DebuffImmunity[557] = { 31 }
	DebuffImmunity[558] = { 31 }
	DebuffImmunity[559] = { 31 }
	DebuffImmunity[560] = { 31 }
	DebuffImmunity[561] = { 31 }
	DebuffImmunity[562] = { 31 }
	DebuffImmunity[563] = { 31 }
	DebuffImmunity[564] = { 31 }
	DebuffImmunity[565] = { 31 }
	DebuffImmunity[566] = { 20, 31 }
	DebuffImmunity[567] = { 20, 31 }
	DebuffImmunity[568] = { 31 }
	DebuffImmunity[569] = { 31 }
	DebuffImmunity[570] = { 31 }
	DebuffImmunity[571] = { 31 }
	DebuffImmunity[572] = { 31 }
	DebuffImmunity[573] = { 31 }
	DebuffImmunity[574] = { 31 }
	DebuffImmunity[575] = { 31 }
	DebuffImmunity[576] = { 31 }
	DebuffImmunity[577] = { 31 }
	DebuffImmunity[578] = { 31 }
	DebuffImmunity[579] = { 31 }
	DebuffImmunity[588] = { 31 }
	DebuffImmunity[589] = { 31 }
	DebuffImmunity[592] = { 31 }
	DebuffImmunity[593] = { 31 }
	DebuffImmunity[594] = { 31 }
	DebuffImmunity[595] = { 31 }
	DebuffImmunity[596] = { 31 }
	DebuffImmunity[597] = { 31 }
	DebuffImmunity[598] = { 31 }
	DebuffImmunity[599] = { 31 }
	DebuffImmunity[600] = { 31 }
	DebuffImmunity[601] = { 31 }
	DebuffImmunity[602] = { 31 }
	DebuffImmunity[603] = { 31 }
	DebuffImmunity[604] = { 31 }
	DebuffImmunity[605] = { 31 }
	DebuffImmunity[606] = { 31 }
	DebuffImmunity[607] = { 31 }
	DebuffImmunity[608] = { 31 }
	DebuffImmunity[609] = { 31 }
	DebuffImmunity[610] = { 31 }
	DebuffImmunity[611] = { 31 }
	DebuffImmunity[612] = { 31 }
	DebuffImmunity[613] = { 31 }
	DebuffImmunity[614] = { 31 }
	DebuffImmunity[615] = { 31 }
	DebuffImmunity[616] = { 31 }
	DebuffImmunity[617] = { 31 }
	DebuffImmunity[618] = { 31 }
	DebuffImmunity[619] = { 31 }
	DebuffImmunity[620] = { 31 }
	DebuffImmunity[621] = { 31 }
	DebuffImmunity[622] = { 31 }
	DebuffImmunity[623] = { 31 }
	DebuffImmunity[624] = { 31 }
	DebuffImmunity[625] = { 31 }
	DebuffImmunity[626] = { 31 }
	DebuffImmunity[627] = { 31 }
	DebuffImmunity[628] = { 31 }
	DebuffImmunity[629] = { 20, 24, 31, 44, 323, 324 }
	DebuffImmunity[631] = { 20, 24, 31, 323 }
	DebuffImmunity[633] = { 31 }
	DebuffImmunity[635] = { 20 }
	DebuffImmunity[636] = { 31 }
	DebuffImmunity[637] = { 31 }
	DebuffImmunity[638] = { 31 }
	DebuffImmunity[639] = { 31 }
	DebuffImmunity[640] = { 31 }
	DebuffImmunity[641] = { 31 }
	DebuffImmunity[642] = { 31 }
	DebuffImmunity[643] = { 31 }
	DebuffImmunity[644] = { 31 }
	DebuffImmunity[645] = { 31 }
	DebuffImmunity[646] = { 31 }
	DebuffImmunity[647] = { 31 }
	DebuffImmunity[648] = { 31 }
	DebuffImmunity[649] = { 31 }
	DebuffImmunity[650] = { 31 }
	DebuffImmunity[651] = { 31 }
	DebuffImmunity[652] = { 31 }
	DebuffImmunity[653] = { 31 }
	DebuffImmunity[654] = { 31 }
	DebuffImmunity[655] = { 31 }
	DebuffImmunity[656] = { 31 }
	DebuffImmunity[657] = { 20, 31 }
	DebuffImmunity[658] = { 20, 31 }
	DebuffImmunity[659] = { 20, 31 }
	DebuffImmunity[660] = { 20, 31 }
	DebuffImmunity[661] = { 31 }
	DebuffImmunity[663] = { 31 }
	DebuffImmunity[665] = { 31 }
	DebuffImmunity[666] = { 31 }
end

---from Terraria.ID.NPCID+Sets.DebuffImmunitySets
local tAll = {68, 72, 392, 440, 491, 549, 583, 584, 585}
local ImmuneToAll = {}
for _, v in ipairs(tAll) do
	ImmuneToAll[v] = true
end

---from Terraria.ID.NPCID+Sets.DebuffImmunitySets
local tNWhips = {82, 134, 135, 136, 139, 253, 288, 330, 384, 393, 394, 395, 422, 439, 454, 455, 456, 457, 458, 459, 492, 493, 507, 517, 662}
local ImmuneToAllNotWhips = {}
for _, v in ipairs(tNWhips) do
	ImmuneToAllNotWhips[v] = true
end


--------------------
-- NPC IDs
--------------------

local NPCID = {}
NPCID.Sets = require('Module:Npcinfo/idSets').getValue

---from Terraria.ID.NPCID.NetIdMap
NPCID.NetIdMap = {
	81,
	81,
	1,
	1,
	1,
	1,
	1,
	1,
	1,
	1,
	6,
	6,
	31,
	31,
	77,
	42,
	42,
	176,
	176,
	176,
	176,
	173,
	173,
	183,
	183,
	3,
	3,
	132,
	132,
	186,
	186,
	187,
	187,
	188,
	188,
	189,
	189,
	190,
	191,
	192,
	193,
	194,
	2,
	200,
	200,
	21,
	21,
	201,
	201,
	202,
	202,
	203,
	203,
	223,
	223,
	231,
	231,
	232,
	232,
	233,
	233,
	234,
	234,
	235,
	235
}

---from Terraria.ID.NPCID.FromNetId
NPCID.FromNetId = function(id)
	if (id < 0) then
		return NPCID.NetIdMap[-id]
	else
		return id
	end
end

---from Terraria.NPC.ExcludedFromDeathTally
local function ExcludedFromDeathTally(netID)
	if netID < 0 then
		if netID ~= -5 then
			return netID == -1
		end
	end
	if not NPCID.Sets('ProjectileNPC', netID) then
		return NPCID.Sets('PositiveNPCTypesExcludedFromDeathTally', netID)
	end
	return true
end


--------------------
-- Banners
--------------------

---from Terraria.Item.BannerToItem
local function BannerToItem(banner)
	if not banner then
		return
	end
	if banner <= 0 then
		return
	end
	if (banner >= 276) then
		return 4965 + banner - 276
	end
	if (banner >= 274) then
		return 4687 + banner - 274
	end
	if (banner == 273) then
		return 4602
	end
	if (banner >= 267) then
		return 4541 + banner - 267
	end
	if (banner >= 257) then
		return 3837 + banner - 257
	end
	if (banner >= 252) then
		return 3789 + banner - 252
	end
	if (banner == 251) then
		return 3780
	end
	if (banner >= 249) then
		return 3593 + banner - 249
	end
	if (banner >= 186) then
		return 3390 + banner - 186
	end
	if (banner >= 88) then
		return 2897 + banner - 88
	end
	return 1615 + banner - 1
end

---from Terraria.Item.NPCtoBanner
local function npcToBanner(npcid)
	if npcid == -10 then
		return 131
	elseif npcid == -9 then
		return 183
	elseif npcid == -8 then
		return 159
	elseif npcid == -7 then
		return 155
	elseif npcid == -6 then
		return 90
	elseif npcid == -5 or npcid == 16 then
		return 146
	elseif npcid == -4 then
		return 151
	elseif npcid == -3 then
		return 119
	elseif npcid == -2 or npcid == 121 then
		return 167
	elseif npcid == -1 or npcid == 81 then
		return 99
	elseif npcid == 0 or npcid == 4 or npcid == 5 or npcid == 8 or npcid == 9 or npcid == 13 or npcid == 14 or npcid == 15 or npcid == 17 or npcid == 18 or npcid == 19 or npcid == 20 or npcid == 22 or npcid == 25 or npcid == 30 or npcid == 33 or npcid == 35 or npcid == 36 or npcid == 37 or npcid == 38 or npcid == 50 or npcid == 54 or npcid == 68 or npcid == 70 or npcid == 72 or npcid == 76 or npcid == 105 or npcid == 106 or npcid == 107 or npcid == 108 or npcid == 112 or npcid == 113 or npcid == 114 or npcid == 115 or npcid == 116 or npcid == 117 or npcid == 118 or npcid == 119 or npcid == 123 or npcid == 124 or npcid == 125 or npcid == 126 or npcid == 127 or npcid == 128 or npcid == 129 or npcid == 130 or npcid == 131 or npcid == 134 or npcid == 135 or npcid == 136 or npcid == 139 or npcid == 142 or npcid == 146 or npcid == 160 or npcid == 178 or npcid == 207 or npcid == 208 or npcid == 209 or npcid == 210 or npcid == 211 or npcid == 222 or npcid == 227 or npcid == 228 or npcid == 229 or npcid == 245 or npcid == 246 or npcid == 247 or npcid == 248 or npcid == 249 or npcid == 261 or npcid == 262 or npcid == 263 or npcid == 264 or npcid == 265 or npcid == 266 or npcid == 267 or npcid == 297 or npcid == 298 or npcid == 299 or npcid == 300 or npcid == 322 or npcid == 323 or npcid == 324 or npcid == 325 or npcid == 327 or npcid == 328 or npcid == 344 or npcid == 345 or npcid == 346 or npcid == 353 or npcid == 354 or npcid == 355 or npcid == 356 or npcid == 357 or npcid == 358 or npcid == 359 or npcid == 360 or npcid == 361 or npcid == 362 or npcid == 363 or npcid == 364 or npcid == 365 or npcid == 366 or npcid == 367 or npcid == 368 or npcid == 369 or npcid == 370 or npcid == 371 or npcid == 372 or npcid == 373 or npcid == 374 or npcid == 375 or npcid == 376 or npcid == 377 or npcid == 378 or npcid == 392 or npcid == 393 or npcid == 394 or npcid == 395 or npcid == 396 or npcid == 397 or npcid == 398 or npcid == 399 or npcid == 400 or npcid == 401 or npcid == 422 or npcid == 437 or npcid == 439 or npcid == 440 or npcid == 441 or npcid == 442 or npcid == 443 or npcid == 444 or npcid == 445 or npcid == 446 or npcid == 447 or npcid == 448 or npcid == 453 or npcid == 454 or npcid == 455 or npcid == 456 or npcid == 457 or npcid == 458 or npcid == 459 or npcid == 472 or npcid == 476 or npcid == 484 or npcid == 485 or npcid == 486 or npcid == 487 or npcid == 488 or npcid == 491 or npcid == 492 or npcid == 493 or npcid == 507 or npcid == 516 or npcid == 517 or npcid == 519 or npcid == 521 or npcid == 522 or npcid == 523 or npcid == 534 or npcid == 535 or npcid == 538 or npcid == 539 or npcid == 547 or npcid == 548 or npcid == 549 or npcid == 550 or npcid == 551 or npcid == 564 or npcid == 565 or npcid == 576 or npcid == 577 or npcid == 579 or npcid == 583 or npcid == 584 or npcid == 585 or npcid == 588 or npcid == 589 or npcid == 592 or npcid == 593 or npcid == 594 or npcid == 595 or npcid == 596 or npcid == 597 or npcid == 598 or npcid == 599 or npcid == 600 or npcid == 601 or npcid == 602 or npcid == 603 or npcid == 604 or npcid == 605 or npcid == 606 or npcid == 607 or npcid == 608 or npcid == 609 or npcid == 610 or npcid == 611 or npcid == 612 or npcid == 613 or npcid == 614 or npcid == 615 or npcid == 616 or npcid == 617 or npcid == 625 or npcid == 626 or npcid == 627 or npcid == 633 then
		return 0
	elseif npcid == 1 or npcid == 302 or npcid == 333 or npcid == 334 or npcid == 335 or npcid == 336 then
		return 69
	elseif npcid == 2 or npcid == 190 or npcid == 191 or npcid == 192 or npcid == 193 or npcid == 194 or npcid == 317 or npcid == 318 then
		return 25
	elseif npcid == 3 or npcid == 132 or npcid == 186 or npcid == 187 or npcid == 188 or npcid == 189 or npcid == 200 or npcid == 319 or npcid == 320 or npcid == 321 or npcid == 331 or npcid == 332 or npcid == 430 or npcid == 432 or npcid == 433 or npcid == 434 or npcid == 435 or npcid == 436 or npcid == 590 or npcid == 591 or npcid == 632 then
		return 87
	elseif npcid == 6 then
		return 27
	elseif npcid == 7 or npcid == 8 or npcid == 9 then
		return 104
	elseif npcid == 10 or npcid == 11 or npcid == 12 or npcid == 95 or npcid == 96 or npcid == 97 then
		return 84
	elseif npcid == 21 or npcid == 201 or npcid == 202 or npcid == 203 or npcid == 449 or npcid == 450 or npcid == 451 or npcid == 452 then
		return 67
	elseif npcid == 23 then
		return 55
	elseif npcid == 24 or npcid == 25 then
		return 50
	elseif npcid == 26 then
		return 40
	elseif npcid == 27 then
		return 38
	elseif npcid == 28 then
		return 42
	elseif npcid == 29 or npcid == 30 then
		return 39
	elseif npcid == 31 or npcid == 294 or npcid == 295 or npcid == 296 then
		return 247
	elseif npcid == 32 or npcid == 33 then
		return 68
	elseif npcid == 34 then
		return 102
	elseif npcid == 39 or npcid == 40 or npcid == 41 then
		return 13
	elseif npcid == 42 or npcid == 231 or npcid == 232 or npcid == 233 or npcid == 234 or npcid == 235 then
		return 47
	elseif npcid == 43 then
		return 54
	elseif npcid == 44 then
		return 178
	elseif npcid == 45 or npcid == 665 then
		return 177
	elseif npcid == 46 or npcid == 303 or npcid == 337 or npcid == 540 then
		return 14
	elseif npcid == 47 then
		return 18
	elseif npcid == 48 then
		return 44
	elseif npcid == 49 then
		return 7
	elseif npcid == 51 then
		return 130
	elseif npcid == 52 then
		return 106
	elseif npcid == 53 then
		return 176
	elseif npcid == 55 or npcid == 230 then
		return 43
	elseif npcid == 56 then
		return 168
	elseif npcid == 57 then
		return 19
	elseif npcid == 58 then
		return 61
	elseif npcid == 59 then
		return 135
	elseif npcid == 60 then
		return 45
	elseif npcid == 61 then
		return 79
	elseif npcid == 62 or npcid == 66 then
		return 24
	elseif npcid == 63 then
		return 51
	elseif npcid == 64 then
		return 243
	elseif npcid == 65 then
		return 66
	elseif npcid == 67 then
		return 20
	elseif npcid == 69 then
		return 4
	elseif npcid == 71 then
		return 107
	elseif npcid == 73 then
		return 41
	elseif npcid == 74 then
		return 8
	elseif npcid == 75 then
		return 63
	elseif npcid == 77 then
		return 6
	elseif npcid == 78 then
		return 57
	elseif npcid == 79 then
		return 245
	elseif npcid == 80 then
		return 246
	elseif npcid == 82 then
		return 85
	elseif npcid == 83 then
		return 23
	elseif npcid == 84 then
		return 28
	elseif npcid == 85 or npcid == 629 then
		return 16
	elseif npcid == 86 then
		return 77
	elseif npcid == 87 or npcid == 88 or npcid == 89 or npcid == 90 or npcid == 91 or npcid == 92 then
		return 86
	elseif npcid == 93 then
		return 114
	elseif npcid == 94 or npcid == 112 then
		return 100
	elseif npcid == 98 or npcid == 99 or npcid == 100 then
		return 83
	elseif npcid == 101 then
		return 96
	elseif npcid == 102 then
		return 1
	elseif npcid == 103 then
		return 244
	elseif npcid == 104 then
		return 81
	elseif npcid == 109 or npcid == 378 then
		return 17
	elseif npcid == 110 then
		return 164
	elseif npcid == 111 then
		return 118
	elseif npcid == 120 then
		return 15
	elseif npcid == 122 then
		return 37
	elseif npcid == 133 then
		return 288
	elseif npcid == 137 then
		return 128
	elseif npcid == 138 then
		return 129
	elseif npcid == 140 then
		return 153
	elseif npcid == 141 then
		return 75
	elseif npcid == 143 then
		return 170
	elseif npcid == 144 then
		return 145
	elseif npcid == 145 then
		return 169
	elseif npcid == 147 then
		return 126
	elseif npcid == 148 or npcid == 149 then
		return 150
	elseif npcid == 150 then
		return 124
	elseif npcid == 151 then
		return 134
	elseif npcid == 152 then
		return 116
	elseif npcid == 153 then
		return 74
	elseif npcid == 154 then
		return 248
	elseif npcid == 155 then
		return 82
	elseif npcid == 156 then
		return 242
	elseif npcid == 157 then
		return 5
	elseif npcid == 158 or npcid == 159 then
		return 78
	elseif npcid == 161 or npcid == 431 then
		return 29
	elseif npcid == 162 then
		return 34
	elseif npcid == 163 or npcid == 238 then
		return 9
	elseif npcid == 164 or npcid == 165 then
		return 71
	elseif npcid == 166 then
		return 73
	elseif npcid == 167 then
		return 179
	elseif npcid == 168 then
		return 98
	elseif npcid == 169 then
		return 48
	elseif npcid == 170 or npcid == 171 or npcid == 180 then
		return 60
	elseif npcid == 172 then
		return 160
	elseif npcid == 173 then
		return 21
	elseif npcid == 174 then
		return 46
	elseif npcid == 175 then
		return 88
	elseif npcid == 176 then
		return 287
	elseif npcid == 177 then
		return 26
	elseif npcid == 179 then
		return 22
	elseif npcid == 181 then
		return 30
	elseif npcid == 182 then
		return 31
	elseif npcid == 183 then
		return 101
	elseif npcid == 184 then
		return 171
	elseif npcid == 185 then
		return 70
	elseif npcid == 195 or npcid == 196 then
		return 80
	elseif npcid == 197 then
		return 89
	elseif npcid == 198 or npcid == 199 then
		return 53
	elseif npcid == 204 then
		return 172
	elseif npcid == 205 then
		return 56
	elseif npcid == 206 then
		return 49
	elseif npcid == 212 then
		return 62
	elseif npcid == 213 then
		return 239
	elseif npcid == 214 then
		return 238
	elseif npcid == 215 then
		return 240
	elseif npcid == 216 then
		return 237
	elseif npcid == 217 then
		return 97
	elseif npcid == 218 then
		return 103
	elseif npcid == 219 then
		return 133
	elseif npcid == 220 then
		return 250
	elseif npcid == 221 then
		return 174
	elseif npcid == 223 then
		return 64
	elseif npcid == 224 then
		return 32
	elseif npcid == 225 then
		return 76
	elseif npcid == 226 then
		return 33
	elseif npcid == 236 or npcid == 237 then
		return 52
	elseif npcid == 239 or npcid == 240 then
		return 12
	elseif npcid == 241 then
		return 10
	elseif npcid == 242 then
		return 11
	elseif npcid == 243 then
		return 125
	elseif npcid == 244 then
		return 157
	elseif npcid == 250 then
		return 2
	elseif npcid == 251 then
		return 111
	elseif npcid == 252 then
		return 59
	elseif npcid == 253 then
		return 65
	elseif npcid == 254 or npcid == 255 then
		return 72
	elseif npcid == 256 then
		return 36
	elseif npcid == 257 then
		return 3
	elseif npcid == 258 then
		return 58
	elseif npcid == 259 or npcid == 260 or npcid == 261 then
		return 35
	elseif npcid == 268 then
		return 127
	elseif npcid == 269 or npcid == 270 or npcid == 271 or npcid == 272 then
		return 161
	elseif npcid == 273 or npcid == 274 or npcid == 275 or npcid == 276 then
		return 91
	elseif npcid == 277 or npcid == 278 or npcid == 279 or npcid == 280 then
		return 121
	elseif npcid == 281 or npcid == 282 then
		return 156
	elseif npcid == 283 or npcid == 284 then
		return 147
	elseif npcid == 285 or npcid == 286 then
		return 105
	elseif npcid == 287 then
		return 95
	elseif npcid == 288 then
		return 108
	elseif npcid == 289 then
		return 115
	elseif npcid == 290 then
		return 149
	elseif npcid == 291 then
		return 166
	elseif npcid == 292 then
		return 175
	elseif npcid == 293 then
		return 165
	elseif npcid == 301 then
		return 158
	elseif npcid == 304 then
		return 123
	elseif npcid == 305 or npcid == 306 or npcid == 307 or npcid == 308 or npcid == 309 or npcid == 310 or npcid == 311 or npcid == 312 or npcid == 313 or npcid == 314 then
		return 162
	elseif npcid == 315 then
		return 120
	elseif npcid == 316 then
		return 113
	elseif npcid == 326 then
		return 173
	elseif npcid == 329 then
		return 122
	elseif npcid == 330 then
		return 152
	elseif npcid == 338 or npcid == 339 or npcid == 340 then
		return 185
	elseif npcid == 341 then
		return 154
	elseif npcid == 342 then
		return 117
	elseif npcid == 343 then
		return 184
	elseif npcid == 347 then
		return 110
	elseif npcid == 348 or npcid == 349 then
		return 148
	elseif npcid == 350 then
		return 109
	elseif npcid == 351 then
		return 132
	elseif npcid == 352 then
		return 112
	elseif npcid == 379 then
		return 92
	elseif npcid == 380 then
		return 180
	elseif npcid == 381 then
		return 136
	elseif npcid == 382 then
		return 142
	elseif npcid == 383 or npcid == 384 then
		return 141
	elseif npcid == 385 then
		return 140
	elseif npcid == 386 then
		return 138
	elseif npcid == 387 then
		return 144
	elseif npcid == 388 then
		return 137
	elseif npcid == 389 then
		return 139
	elseif npcid == 390 then
		return 143
	elseif npcid == 391 then
		return 163
	elseif npcid == 402 or npcid == 403 or npcid == 404 then
		return 217
	elseif npcid == 405 or npcid == 406 then
		return 221
	elseif npcid == 407 or npcid == 408 then
		return 218
	elseif npcid == 409 or npcid == 410 then
		return 219
	elseif npcid == 411 then
		return 216
	elseif npcid == 412 or npcid == 413 or npcid == 414 then
		return 224
	elseif npcid == 415 or npcid == 516 then
		return 226
	elseif npcid == 416 or npcid == 518 then
		return 225
	elseif npcid == 417 then
		return 223
	elseif npcid == 418 then
		return 222
	elseif npcid == 419 then
		return 227
	elseif npcid == 420 then
		return 230
	elseif npcid == 421 then
		return 229
	elseif npcid == 423 then
		return 231
	elseif npcid == 424 then
		return 228
	elseif npcid == 425 then
		return 236
	elseif npcid == 426 then
		return 233
	elseif npcid == 427 then
		return 234
	elseif npcid == 428 then
		return 232
	elseif npcid == 429 then
		return 235
	elseif npcid == 438 then
		return 93
	elseif npcid == 460 then
		return 196
	elseif npcid == 461 then
		return 191
	elseif npcid == 462 then
		return 190
	elseif npcid == 463 then
		return 199
	elseif npcid == 464 then
		return 281
	elseif npcid == 465 then
		return 282
	elseif npcid == 466 then
		return 197
	elseif npcid == 467 then
		return 198
	elseif npcid == 468 then
		return 192
	elseif npcid == 469 then
		return 195
	elseif npcid == 470 then
		return 283
	elseif npcid == 471 or npcid == 472 then
		return 186
	elseif npcid == 473 then
		return 284
	elseif npcid == 474 then
		return 285
	elseif npcid == 475 then
		return 286
	elseif npcid == 477 or npcid == 478 or npcid == 479 then
		return 193
	elseif npcid == 480 then
		return 201
	elseif npcid == 481 then
		return 202
	elseif npcid == 482 then
		return 204
	elseif npcid == 483 then
		return 203
	elseif npcid == 489 then
		return 205
	elseif npcid == 490 then
		return 206
	elseif npcid == 494 or npcid == 495 then
		return 189
	elseif npcid == 496 or npcid == 497 then
		return 188
	elseif npcid == 498 or npcid == 499 or npcid == 500 or npcid == 501 or npcid == 502 or npcid == 503 or npcid == 504 or npcid == 505 or npcid == 506 then
		return 187
	elseif npcid == 508 or npcid == 580 then
		return 210
	elseif npcid == 509 or npcid == 581 then
		return 209
	elseif npcid == 510 or npcid == 511 or npcid == 512 then
		return 208
	elseif npcid == 513 or npcid == 514 or npcid == 515 then
		return 207
	elseif npcid == 520 then
		return 241
	elseif npcid == 524 or npcid == 525 or npcid == 526 or npcid == 527 then
		return 211
	elseif npcid == 528 or npcid == 529 then
		return 212
	elseif npcid == 530 or npcid == 531 then
		return 215
	elseif npcid == 532 then
		return 214
	elseif npcid == 533 then
		return 213
	elseif npcid == 536 then
		return 267
	elseif npcid == 537 then
		return 249
	elseif npcid == 541 then
		return 251
	elseif npcid == 542 then
		return 252
	elseif npcid == 543 then
		return 253
	elseif npcid == 544 then
		return 254
	elseif npcid == 545 then
		return 255
	elseif npcid == 546 then
		return 256
	elseif npcid == 552 or npcid == 553 or npcid == 554 then
		return 258
	elseif npcid == 555 or npcid == 556 or npcid == 557 then
		return 257
	elseif npcid == 558 or npcid == 559 or npcid == 560 then
		return 264
	elseif npcid == 561 or npcid == 562 or npcid == 563 then
		return 265
	elseif npcid == 566 or npcid == 567 then
		return 259
	elseif npcid == 568 or npcid == 569 then
		return 263
	elseif npcid == 570 or npcid == 571 then
		return 260
	elseif npcid == 572 or npcid == 573 then
		return 262
	elseif npcid == 574 or npcid == 575 then
		return 261
	elseif npcid == 578 then
		return 266
	elseif npcid == 582 then
		return 280
	elseif npcid == 586 then
		return 268
	elseif npcid == 587 then
		return 269
	elseif npcid == 618 then
		return 273
	elseif npcid == 619 then
		return 270
	elseif npcid == 620 then
		return 272
	elseif npcid == 621 or npcid == 622 or npcid == 623 then
		return 271
	elseif npcid == 624 then
		return 275
	elseif npcid == 628 then
		return 274
	elseif npcid == 630 then
		return 277
	elseif npcid == 631 then
		return 276
	elseif npcid == 634 then
		return 279
	elseif npcid == 635 then
		return 278
	end
	return false
end


--------------------
-- Sound IDs
--------------------

---from Terraria.ID.SoundID.CreateTrackable
local function SoundID_CreateTrackable(name, variations)
	variations = variations or 1
	local str
	if variations == 1 then
		str = name
	else
		for i = 0, variations - 1 do
			if str then
				str = str .. ', ' .. name .. '_' .. i
			else
				str = name .. '_' .. i
			end
		end
	end
	return str
end

---from Terraria.ID.SoundID
local SoundID = {}
do
	SoundID.AchievementComplete = SoundID_CreateTrackable("achievement_complete")
	SoundID.BlizzardInsideBuildingLoop = SoundID_CreateTrackable("blizzard_inside_building_loop")
	SoundID.BlizzardStrongLoop = SoundID_CreateTrackable("blizzard_strong_loop")
	SoundID.LiquidsHoneyWater = SoundID_CreateTrackable("liquids_honey_water", 3)
	SoundID.LiquidsHoneyLava = SoundID_CreateTrackable("liquids_honey_lava", 3)
	SoundID.LiquidsWaterLava = SoundID_CreateTrackable("liquids_water_lava", 3)
	SoundID.DD2_BallistaTowerShot = SoundID_CreateTrackable("dd2_ballista_tower_shot", 3)
	SoundID.DD2_ExplosiveTrapExplode = SoundID_CreateTrackable("dd2_explosive_trap_explode", 3)
	SoundID.DD2_FlameburstTowerShot = SoundID_CreateTrackable("dd2_flameburst_tower_shot", 3)
	SoundID.DD2_LightningAuraZap = SoundID_CreateTrackable("dd2_lightning_aura_zap", 4)
	SoundID.DD2_DefenseTowerSpawn = SoundID_CreateTrackable("dd2_defense_tower_spawn")
	SoundID.DD2_BetsyDeath = SoundID_CreateTrackable("dd2_betsy_death", 3)
	SoundID.DD2_BetsyFireballShot = SoundID_CreateTrackable("dd2_betsy_fireball_shot", 3)
	SoundID.DD2_BetsyFireballImpact = SoundID_CreateTrackable("dd2_betsy_fireball_impact", 3)
	SoundID.DD2_BetsyFlameBreath = SoundID_CreateTrackable("dd2_betsy_flame_breath")
	SoundID.DD2_BetsyFlyingCircleAttack = SoundID_CreateTrackable("dd2_betsy_flying_circle_attack")
	SoundID.DD2_BetsyHurt = SoundID_CreateTrackable("dd2_betsy_hurt", 3)
	SoundID.DD2_BetsyScream = SoundID_CreateTrackable("dd2_betsy_scream")
	SoundID.DD2_BetsySummon = SoundID_CreateTrackable("dd2_betsy_summon", 3)
	SoundID.DD2_BetsyWindAttack = SoundID_CreateTrackable("dd2_betsy_wind_attack", 3)
	SoundID.DD2_DarkMageAttack = SoundID_CreateTrackable("dd2_dark_mage_attack", 3)
	SoundID.DD2_DarkMageCastHeal = SoundID_CreateTrackable("dd2_dark_mage_cast_heal", 3)
	SoundID.DD2_DarkMageDeath = SoundID_CreateTrackable("dd2_dark_mage_death", 3)
	SoundID.DD2_DarkMageHealImpact = SoundID_CreateTrackable("dd2_dark_mage_heal_impact", 3)
	SoundID.DD2_DarkMageHurt = SoundID_CreateTrackable("dd2_dark_mage_hurt", 3)
	SoundID.DD2_DarkMageSummonSkeleton = SoundID_CreateTrackable("dd2_dark_mage_summon_skeleton", 3)
	SoundID.DD2_DrakinBreathIn = SoundID_CreateTrackable("dd2_drakin_breath_in", 3)
	SoundID.DD2_DrakinDeath = SoundID_CreateTrackable("dd2_drakin_death", 3)
	SoundID.DD2_DrakinHurt = SoundID_CreateTrackable("dd2_drakin_hurt", 3)
	SoundID.DD2_DrakinShot = SoundID_CreateTrackable("dd2_drakin_shot", 3)
	SoundID.DD2_GoblinDeath = SoundID_CreateTrackable("dd2_goblin_death", 3)
	SoundID.DD2_GoblinHurt = SoundID_CreateTrackable("dd2_goblin_hurt", 6)
	SoundID.DD2_GoblinScream = SoundID_CreateTrackable("dd2_goblin_scream", 3)
	SoundID.DD2_GoblinBomberDeath = SoundID_CreateTrackable("dd2_goblin_bomber_death", 3)
	SoundID.DD2_GoblinBomberHurt = SoundID_CreateTrackable("dd2_goblin_bomber_hurt", 3)
	SoundID.DD2_GoblinBomberScream = SoundID_CreateTrackable("dd2_goblin_bomber_scream", 3)
	SoundID.DD2_GoblinBomberThrow = SoundID_CreateTrackable("dd2_goblin_bomber_throw", 3)
	SoundID.DD2_JavelinThrowersAttack = SoundID_CreateTrackable("dd2_javelin_throwers_attack", 3)
	SoundID.DD2_JavelinThrowersDeath = SoundID_CreateTrackable("dd2_javelin_throwers_death", 3)
	SoundID.DD2_JavelinThrowersHurt = SoundID_CreateTrackable("dd2_javelin_throwers_hurt", 3)
	SoundID.DD2_JavelinThrowersTaunt = SoundID_CreateTrackable("dd2_javelin_throwers_taunt", 3)
	SoundID.DD2_KoboldDeath = SoundID_CreateTrackable("dd2_kobold_death", 3)
	SoundID.DD2_KoboldExplosion = SoundID_CreateTrackable("dd2_kobold_explosion", 3)
	SoundID.DD2_KoboldHurt = SoundID_CreateTrackable("dd2_kobold_hurt", 3)
	SoundID.DD2_KoboldIgnite = SoundID_CreateTrackable("dd2_kobold_ignite")
	SoundID.DD2_KoboldIgniteLoop = SoundID_CreateTrackable("dd2_kobold_ignite_loop")
	SoundID.DD2_KoboldScreamChargeLoop = SoundID_CreateTrackable("dd2_kobold_scream_charge_loop")
	SoundID.DD2_KoboldFlyerChargeScream = SoundID_CreateTrackable("dd2_kobold_flyer_charge_scream", 3)
	SoundID.DD2_KoboldFlyerDeath = SoundID_CreateTrackable("dd2_kobold_flyer_death", 3)
	SoundID.DD2_KoboldFlyerHurt = SoundID_CreateTrackable("dd2_kobold_flyer_hurt", 3)
	SoundID.DD2_LightningBugDeath = SoundID_CreateTrackable("dd2_lightning_bug_death", 3)
	SoundID.DD2_LightningBugHurt = SoundID_CreateTrackable("dd2_lightning_bug_hurt", 3)
	SoundID.DD2_LightningBugZap = SoundID_CreateTrackable("dd2_lightning_bug_zap", 3)
	SoundID.DD2_OgreAttack = SoundID_CreateTrackable("dd2_ogre_attack", 3)
	SoundID.DD2_OgreDeath = SoundID_CreateTrackable("dd2_ogre_death", 3)
	SoundID.DD2_OgreGroundPound = SoundID_CreateTrackable("dd2_ogre_ground_pound")
	SoundID.DD2_OgreHurt = SoundID_CreateTrackable("dd2_ogre_hurt", 3)
	SoundID.DD2_OgreRoar = SoundID_CreateTrackable("dd2_ogre_roar", 3)
	SoundID.DD2_OgreSpit = SoundID_CreateTrackable("dd2_ogre_spit")
	SoundID.DD2_SkeletonDeath = SoundID_CreateTrackable("dd2_skeleton_death", 3)
	SoundID.DD2_SkeletonHurt = SoundID_CreateTrackable("dd2_skeleton_hurt", 3)
	SoundID.DD2_SkeletonSummoned = SoundID_CreateTrackable("dd2_skeleton_summoned")
	SoundID.DD2_WitherBeastAuraPulse = SoundID_CreateTrackable("dd2_wither_beast_aura_pulse", 2)
	SoundID.DD2_WitherBeastCrystalImpact = SoundID_CreateTrackable("dd2_wither_beast_crystal_impact", 3)
	SoundID.DD2_WitherBeastDeath = SoundID_CreateTrackable("dd2_wither_beast_death", 3)
	SoundID.DD2_WitherBeastHurt = SoundID_CreateTrackable("dd2_wither_beast_hurt", 3)
	SoundID.DD2_WyvernDeath = SoundID_CreateTrackable("dd2_wyvern_death", 3)
	SoundID.DD2_WyvernHurt = SoundID_CreateTrackable("dd2_wyvern_hurt", 3)
	SoundID.DD2_WyvernScream = SoundID_CreateTrackable("dd2_wyvern_scream", 3)
	SoundID.DD2_WyvernDiveDown = SoundID_CreateTrackable("dd2_wyvern_dive_down", 3)
	SoundID.DD2_EtherianPortalDryadTouch = SoundID_CreateTrackable("dd2_etherian_portal_dryad_touch")
	SoundID.DD2_EtherianPortalIdleLoop = SoundID_CreateTrackable("dd2_etherian_portal_idle_loop")
	SoundID.DD2_EtherianPortalOpen = SoundID_CreateTrackable("dd2_etherian_portal_open")
	SoundID.DD2_EtherianPortalSpawnEnemy = SoundID_CreateTrackable("dd2_etherian_portal_spawn_enemy", 3)
	SoundID.DD2_CrystalCartImpact = SoundID_CreateTrackable("dd2_crystal_cart_impact", 3)
	SoundID.DD2_DefeatScene = SoundID_CreateTrackable("dd2_defeat_scene")
	SoundID.DD2_WinScene = SoundID_CreateTrackable("dd2_win_scene")
	SoundID.DD2_BookStaffCast = SoundID_CreateTrackable("dd2_book_staff_cast", 3)
	SoundID.DD2_BookStaffTwisterLoop = SoundID_CreateTrackable("dd2_book_staff_twister_loop")
	SoundID.DD2_GhastlyGlaiveImpactGhost = SoundID_CreateTrackable("dd2_ghastly_glaive_impact_ghost", 3)
	SoundID.DD2_GhastlyGlaivePierce = SoundID_CreateTrackable("dd2_ghastly_glaive_pierce", 3)
	SoundID.DD2_MonkStaffGroundImpact = SoundID_CreateTrackable("dd2_monk_staff_ground_impact", 3)
	SoundID.DD2_MonkStaffGroundMiss = SoundID_CreateTrackable("dd2_monk_staff_ground_miss", 3)
	SoundID.DD2_MonkStaffSwing = SoundID_CreateTrackable("dd2_monk_staff_swing", 4)
	SoundID.DD2_PhantomPhoenixShot = SoundID_CreateTrackable("dd2_phantom_phoenix_shot", 3)
	SoundID.DD2_SkyDragonsFuryCircle = SoundID_CreateTrackable("dd2_sky_dragons_fury_circle", 3)
	SoundID.DD2_SkyDragonsFuryShot = SoundID_CreateTrackable("dd2_sky_dragons_fury_shot", 3)
	SoundID.DD2_SkyDragonsFurySwing = SoundID_CreateTrackable("dd2_sky_dragons_fury_swing", 4)
	SoundID.DD2_BetsysWrathShot = SoundID.DD2_BetsyFireballShot
	SoundID.DD2_BetsysWrathImpact = SoundID.DD2_BetsyFireballImpact
end
for i = 1, 57 do
	SoundID['NPCHit' .. i] = 'NPC_Hit_' .. i
end
for i = 1, 65 do
	SoundID['NPCDeath' .. i] = 'NPC_Killed_' .. i
end


--------------------
-- Main, NPC, GameModeData
--------------------

local Main = {}
Main.getGoodWorld = false
Main.tenthAnniversaryWorld = false
Main.hardMode = false

local NPC = {}
NPC.activeTime = 750
NPC.downedPlantBoss = false
NPC.downedMechBossAny = false
NPC.downedGolemBoss = false

---from Terraria.DataStructures.GameModeData
local GameModeData = {}
do
	GameModeData.NormalMode = {
		Id = 0,
		EnemyMaxLifeMultiplier = 1,
		EnemyDamageMultiplier = 1,
		DebuffTimeMultiplier = 1,
		KnockbackToEnemiesMultiplier = 1,
		TownNPCDamageMultiplier = 1,
		EnemyDefenseMultiplier = 1,
		EnemyMoneyDropMultiplier = 1
	}
	GameModeData.ExpertMode = {
		Id = 1,
		IsExpertMode = true,
		EnemyMaxLifeMultiplier = 2,
		EnemyDamageMultiplier = 2,
		DebuffTimeMultiplier = 2,
		KnockbackToEnemiesMultiplier = 0.9,
		TownNPCDamageMultiplier = 1.5,
		EnemyDefenseMultiplier = 1,
		EnemyMoneyDropMultiplier = 2.5
	}
	GameModeData.MasterMode = {
		Id = 2,
		IsExpertMode = true,
		IsMasterMode = true,
		EnemyMaxLifeMultiplier = 3,
		EnemyDamageMultiplier = 3,
		DebuffTimeMultiplier = 2.5,
		KnockbackToEnemiesMultiplier = 0.8,
		TownNPCDamageMultiplier = 1.75,
		EnemyDefenseMultiplier = 1,
		EnemyMoneyDropMultiplier = 2.5
	}
	GameModeData.CreativeMode = {
		Id = 3,
		IsJourneyMode = true,
		EnemyMaxLifeMultiplier = 1,
		EnemyDamageMultiplier = 1,
		DebuffTimeMultiplier = 1,
		KnockbackToEnemiesMultiplier = 1,
		TownNPCDamageMultiplier = 2,
		EnemyDefenseMultiplier = 1,
		EnemyMoneyDropMultiplier = 1
	}
end


--------------------
-- NPC instance
--------------------

local this = {}

---from Terraria.NPC.SpawnWithHigherTime
local function SpawnWithHigherTime(timeMult)
	this.timeLeft = NPC.activeTime * timeMult
end

---from Terraria.NPC.LazySetLiquidMovementDD2
local function LazySetLiquidMovementDD2()
	this.waterMovementSpeed = 1
	this.lavaMovementSpeed = 1
	this.honeyMovementSpeed = 1
end

---from Terraria.NPC.BannerID
local function BannerID()
	if (this.netID >= -10) then
		return this.netID
	end
	return this.type
end

---from Terraria.NPC.GetStatScalingFactors
local function GetStatScalingFactors(numPlayers)
	local balance = 1
	local boost = 0.35
	for i = 2, numPlayers do
		balance = balance + boost
		boost = boost + (1 - boost) / 3
	end
	if (balance > 8) then
		balance = (balance * 2 + 8) / 3
	end
	if (balance > 1000) then
		balance = 1000
	end
	return balance, boost
end

---from Terraria.NPC.ScaleStats_ApplyExpertTweaks
local function ScaleStats_ApplyExpertTweaks()
	local flag
	if this.type < 0 then
		flag =  false
	else
		flag = NPCID.Sets('ProjectileNPC', this.type)
	end
	if (not NPCID.Sets('DontDoHardmodeScaling', this.type) and Main.hardMode and not this.boss and this.lifeMax < 1000) then
		local num = this.damage + this.defense + math.floor(this.lifeMax / 4)
		if (num == 0) then
			num = 1
		end
		local num1 = 80
		if (NPC.downedPlantBoss) then
			num1 = num1 + 20
		end
		if (num < num1) then
			local single = math.floor(num1 / num)  -- float single = (float)(num1 / num);  //int num1, num
			this.damage = math.floor((this.damage * single) * 0.9)
			if (not flag) then
				this.defense = math.floor(this.defense * single)
				this.lifeMax = math.floor((this.lifeMax * single) * 1.1)
				this.value = math.floor((this.value * single) * 0.8)
			end
		end
	end
	if (this.type == 210 or this.type == 211) then
		this.damage = math.floor(this.damage * 0.6)
		this.lifeMax = math.floor(this.lifeMax * 0.8)
		this.defense = math.floor(this.defense * 0.8)
	end
end

---from Terraria.NPC.ScaleStats_ApplyGameMode
local function ScaleStats_ApplyGameMode(gameModeData)
	local flag
	if this.type < 0 then
		flag =  false
	else
		flag = NPCID.Sets('ProjectileNPC', this.type)
	end
	local num = 0
	if (Main.getGoodWorld) then
		num = num + 1
	end
	if not flag then
		this.value = (math.floor(this.value * (gameModeData.EnemyMoneyDropMultiplier + num)))
		this.lifeMax = math.floor(this.lifeMax * (gameModeData.EnemyMaxLifeMultiplier + num))
	end
	this.damage = math.floor(this.damage * (gameModeData.EnemyDamageMultiplier + num))
	this.knockBackResist = this.knockBackResist * gameModeData.KnockbackToEnemiesMultiplier
	if (Main.getGoodWorld) then
		this.damage = this.damage + math.floor(this.damage / 3)
	end
end

---from Terraria.NPC.ScaleStats_ApplyMultiplayerStats
local function ScaleStats_ApplyMultiplayerStats(numPlayers, balance, boost, bossAdjustment)
	if (this.type == 5) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * bossAdjustment)
	end
	if (this.type == 4) then
		this.lifeMax = math.floor(this.lifeMax * 0.65 * balance * bossAdjustment)
	end
	if (this.type >= 13 and this.type <= 15) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		if (this.type == 13) then
			this.damage = math.floor(this.damage * 1.1)
		end
		if (this.type == 14) then
			this.damage = math.floor(this.damage * 0.8)
		end
		if (this.type == 15) then
			this.damage = math.floor(this.damage * 0.8)
		end
		this.scale = this.scale * 1.2
		this.defense = this.defense + 2
	end
	if (this.type == 266 or this.type == 267) then
		this.lifeMax = math.floor(this.lifeMax * 0.85 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.9)
		this.scale = this.scale * 1.05
		local single = 1
		while (single < balance) do
			if (this.knockBackResist >= 0.1) then
				this.knockBackResist = this.knockBackResist * 0.8
				single = single + 0.34
			else
				this.knockBackResist = 0
				break
			end
		end
	end
	if (this.type == 50) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.8)
	end
	if (this.type == 471) then
		this.lifeMax = math.floor(this.lifeMax * 0.85 * (balance * 2 + 1) / 3)
	end
	if (this.type == 472) then
		this.lifeMax = math.floor(this.lifeMax * 0.85 * (balance + 1) / 2)
		this.damage = math.floor(this.damage * 0.8)
	end
	if (this.type == 222) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.9)
	end
	if (this.type == 210 or this.type == 211) then
		this.lifeMax = math.floor(this.lifeMax * 0.75)
	end
	if (this.type == 35) then
		this.lifeMax = math.floor(this.lifeMax * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.1)
	elseif (this.type == 36) then
		this.lifeMax = math.floor(this.lifeMax * 1.3 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.1)
	end


	if (this.type == 113 or this.type == 114) then
		this.defense = this.defense + 6
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.5)
	elseif (this.type == 115) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance)
		if (numPlayers > 4) then
			this.knockBackResist = 0
		elseif (numPlayers > 1) then
			this.knockBackResist = this.knockBackResist * (1 - boost)
		end
		this.defense = this.defense + 6
	elseif (this.type == 116) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance)
		if (numPlayers > 4) then
			this.knockBackResist = 0
		elseif (numPlayers > 1) then
			this.knockBackResist = this.knockBackResist * (1 - boost)
		end
	elseif (this.type == 117 or this.type == 118 or this.type == 119) then
		this.lifeMax = math.floor(this.lifeMax * 0.8)
	end
	if (this.type == 657) then
		this.lifeMax = math.floor(this.lifeMax * 0.8 * balance * bossAdjustment)
	end
	if (this.type >= 658 and this.type <= 660) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
	end
	if (this.type >= 134 and this.type <= 136) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		if (this.type == 134) then
			this.damage = this.damage * 2
		end
		if (this.type == 135) then
			this.damage = math.floor(this.damage * 0.85)
		end
		if (this.type == 136) then
			this.damage = math.floor(this.damage * 0.85)
		end
		this.scale = this.scale * 1.05
	elseif (this.type == 139) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * (balance * 2 + 1) / 3)
		this.damage = math.floor(this.damage * 0.8)
		this.scale = this.scale * 1.05
	end
	if (this.type >= 127 and this.type <= 131) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.85)
	end
	if (this.type >= 125 and this.type <= 126) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.85)
	end
	if (this.type == 262) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.15)
	elseif (this.type == 264) then
		this.lifeMax = math.floor(this.lifeMax * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.15)
	end
	if (this.type == 636) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.15)
	end
	if (this.type >= 245 and this.type <= 249) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.8)
	end
	if (this.type == 370) then
		this.lifeMax = math.floor(this.lifeMax * 0.6 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.7)
	elseif (this.type == 371 or this.type == 372 or this.type == 373) then
		if (this.type ~= 371) then
			this.lifeMax = math.floor(this.lifeMax * 0.75)
		end
		this.damage = math.floor(this.damage * 0.75)
	end
	if (this.type == 439 or this.type == 440 or this.type >= 454 and this.type <= 459 or this.type == 522 or this.type == 523) then
		if (this.type ~= 522) then
			this.lifeMax = math.floor(this.lifeMax * 0.625 * balance * bossAdjustment)
		end
		this.damage = math.floor(this.damage * 0.75)
	end
	if (this.type == 397 or this.type == 396 or this.type == 398) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.75)
	end
	if (this.type == 551) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.65)
	elseif NPCID.Sets('BelongsToInvasionOldOnesArmy',this.type) then
		local num = 7
		local single1 = (balance * (num - 1) + 1) / num
		this.lifeMax = math.floor(this.lifeMax * single1 * bossAdjustment)
	end
	if (this.type >= 305 and this.type <= 315) or this.type == 326 or this.type == 329 or this.type == 330 then
		this.lifeMax = math.floor( this.lifeMax * 0.75)
		this.damage = math.floor( this.damage * 0.75)
	elseif this.type == 325 or this.type == 327 then
		this.lifeMax = math.floor(this.lifeMax * 0.65 *  bossAdjustment)
		this.damage = math.floor(this.damage * 0.75)
	end
	if (this.type >= 338 and this.type <= 334) or (this.type >= 347 and this.type <= 350) then
		this.lifeMax = math.floor(this.lifeMax * 0.75)
		this.damage = math.floor(this.damage * 0.75)
	elseif (this.type >= 344 and this.type <= 346) then
		this.lifeMax = math.floor(this.lifeMax * 0.65 *  bossAdjustment)
		this.damage = math.floor(this.damage * 0.75)
	end
	this.defDefense = this.defense
	this.defDamage = this.damage
	this.life = this.lifeMax
end

---from Terraria.NPC.ScaleStats_UseStrengthMultiplier
local function ScaleStats_UseStrengthMultiplier(strength)
	if ((this.type < 0) and true or not NPCID.Sets('ProjectileNPC', this.type)) then
		this.lifeMax = math.floor(this.lifeMax * strength)
	end
	this.damage = math.floor(this.damage * strength)
end

---from Terraria.NPC.ScaleStats
local function ScaleStats(activePlayersCount, gameModeData, strengthOverride)

	local single
	local single1
	if (not NPCID.Sets('NeedsExpertScaling', this.type) and (this.lifeMax <= 5 or this.damage == 0 or this.friendly or this.townNPC)) then
		return
	end
	local value = 1
	if (strengthOverride) then
		value = strengthOverride
--	elseif (gameModeData.IsJourneyMode) then
--		CreativePowers.DifficultySliderPower power = CreativePowerManager.Instance.GetPower<CreativePowers.DifficultySliderPower>()
--		if (power ~= null and power.GetIsUnlocked())
--		{
--			value = power.StrengthMultiplierToGiveNPCs
--		}
	end
	--NPCStrengthHelper nPCStrengthHelper = new NPCStrengthHelper(gameModeData, value)
	if (gameModeData.IsExpertMode) then --if (nPCStrengthHelper.IsExpertMode)
		ScaleStats_ApplyExpertTweaks()
	end
	ScaleStats_ApplyGameMode(gameModeData)
	if (gameModeData.IsExpertMode) then -- if (nPCStrengthHelper.IsExpertMode)
		local num = 1
		-- num = (not activePlayersCount.HasValue ? NPC.GetActivePlayerCount() : activePlayersCount.Value)
		this.statsAreScaledForThisManyPlayers = num
		single, single1 = GetStatScalingFactors(num)
		local single2 = 1
		if (gameModeData.IsMasterMode) then
			single2 = 0.85
		end
		ScaleStats_ApplyMultiplayerStats(num, single, single1, single2)
	end
	this.strengthMultiplier = value
	ScaleStats_UseStrengthMultiplier(this.strengthMultiplier)
	if ((this.type < 0 ) and true or not NPCID.Sets('ProjectileNPC', this.type) and this.lifeMax < 6) then
		this.lifeMax = 6
	end
	this.life = this.lifeMax
	this.defDamage = this.damage
	this.defDefense = this.defense
end

---from Terraria.NPCSpawnParams.WithScale
local function WithScale(spawnparams, scaleOverride)
	-- before 1.4.0.5, this method actually did nothing. this is fixed in 1.4.0.5.
	spawnparams.sizeScaleOverride = scaleOverride
	return spawnparams
end

local SetDefaultsFromNetId, SetDefaults, SetDefaults_ForNetId

---from Terraria.NPC.SetDefaults_ForNetId
function SetDefaults_ForNetId(Type, spawnparams, scaleOverride)
	if (type(spawnparams) == 'table') then
		SetDefaults(Type, WithScale(spawnparams, scaleOverride))
	else
		scaleOverride = spawnparams
		local nPCSpawnParam = {
			sizeScaleOverride = scaleOverride,
		}
		SetDefaults(Type, nPCSpawnParam)
	end
end

---from Terraria.NPC.SetDefaultsFromNetId
function SetDefaultsFromNetId(id, spawnparams)
	local flag = false
	local num = NPCID.FromNetId(id)
	SetDefaults(0)
	if (id == -1) then
		SetDefaults_ForNetId(num, 0.6)
		flag = true
		this.damage = 45
		this.defense = 10
		this.life = 90
		this.knockBackResist = this.knockBackResist * 1.2
		this.value = 100
	elseif (id == -2) then
		SetDefaults_ForNetId(num, 0.9)
		flag = true
		this.damage = 45
		this.defense = 20
		this.life = 90
		this.knockBackResist = this.knockBackResist * 1.2
		this.value = 100
	elseif (id == -3) then
		SetDefaults_ForNetId(num, 0.9)
		flag = true
		this.damage = 6
		this.defense = 0
		this.life = 14
		this.knockBackResist = this.knockBackResist * 1.2
		-- this.color = new Color(0, 220, 40, 100)
		this.value = 3
	elseif (id == -4) then
		SetDefaults_ForNetId(num, 0.6)
		flag = true
		this.damage = 5
		this.defense = 5
		this.life = 150
		this.knockBackResist = this.knockBackResist * 1.4
		-- this.color = new Color(250, 30, 90, 90)
		this.value = 10000
		this.rarity = 2
	elseif (id == -5) then
		SetDefaults_ForNetId(num, 0.9)
		flag = true
		this.damage = 13
		this.defense = 4
		this.life = 30
		this.knockBackResist = this.knockBackResist * 0.95
		this.alpha = 120
		-- this.color = new Color(0, 0, 0, 50)
		this.value = 10
	elseif (id == -6) then
		SetDefaults_ForNetId(num, 1.05)
		flag = true
		this.damage = 15
		this.defense = 4
		this.life = 45
		-- this.color = new Color(0, 0, 0, 50)
		this.value = 20
	elseif (id == -7) then
		SetDefaults_ForNetId(num, 1.2)
		flag = true
		this.damage = 12
		this.defense = 6
		this.life = 40
		this.knockBackResist = this.knockBackResist * 0.9
		-- this.color = new Color(200, 0, 255, 150)
		this.value = 10
	elseif (id == -8) then
		SetDefaults_ForNetId(num, 1.025)
		flag = true
		this.damage = 12
		this.defense = 4
		this.life = 35
		-- this.color = new Color(255, 30, 0, 100)
		this.value = 8
	elseif (id == -9) then
		SetDefaults_ForNetId(num, 1.2)
		flag = true
		this.damage = 15
		this.defense = 7
		this.life = 45
		-- this.color = new Color(255, 255, 0, 100)
		this.value = 10
	elseif (id == -10) then
		SetDefaults_ForNetId(num, 1.1)
		flag = true
		this.damage = 18
		this.defense = 6
		this.life = 60
		-- this.color = new Color(143, 215, 93, 100)
		this.value = 500
	elseif (id == -11) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -12) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -13) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
	elseif (id == -14) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor((this.damage * this.scale) * 1.1)
		this.life = math.floor((this.life * this.scale) * 1.1)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = 2
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -15) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor((this.damage * this.scale) * 1.1)
		this.life = 400
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = 2
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
		this.height = 44
	elseif (id == -16) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -17) then
		SetDefaults_ForNetId(num, spawnparams, 1.2)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -18) then
		SetDefaults_ForNetId(num, spawnparams, 0.8)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -19) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -20) then
		SetDefaults_ForNetId(num, 1.1)
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -21) then
		SetDefaults_ForNetId(num, spawnparams, 1.2)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -22) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -23) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -24) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -25) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -26) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -27) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -28) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -29) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -30) then
		SetDefaults_ForNetId(num, spawnparams, 0.93)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -31) then
		SetDefaults_ForNetId(num, spawnparams, 1.13)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -32) then
		SetDefaults_ForNetId(num, spawnparams, 0.89)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -33) then
		SetDefaults_ForNetId(num, spawnparams, 1.11)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -34) then
		SetDefaults_ForNetId(num, spawnparams, 0.87)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -35) then
		SetDefaults_ForNetId(num, spawnparams, 1.13)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -36) then
		SetDefaults_ForNetId(num, spawnparams, 0.92)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -37) then
		SetDefaults_ForNetId(num, spawnparams, 1.08)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -38) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -39) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -40) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -41) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -42) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -43) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -44) then
		SetDefaults_ForNetId(num, spawnparams, 0.87)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -45) then
		SetDefaults_ForNetId(num, spawnparams, 1.05)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -46) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -47) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -48) then
		SetDefaults_ForNetId(num, spawnparams, 0.93)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -49) then
		SetDefaults_ForNetId(num, spawnparams, 1.07)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -50) then
		SetDefaults_ForNetId(num, spawnparams, 0.87)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -51) then
		SetDefaults_ForNetId(num, spawnparams, 1.13)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -52) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -53) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -54) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -55) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -56) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -57) then
		SetDefaults_ForNetId(num, spawnparams, 1.25)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -58) then
		SetDefaults_ForNetId(num, spawnparams, 0.8)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -59) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -60) then
		SetDefaults_ForNetId(num, spawnparams, 0.92)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -61) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -62) then
		SetDefaults_ForNetId(num, spawnparams, 0.78)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -63) then
		SetDefaults_ForNetId(num, spawnparams, 1.16)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id ~= -64) then
		if (id ~= -65) then
			return
		end
		SetDefaults_ForNetId(num, spawnparams, 1.21)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	else
		SetDefaults_ForNetId(num, spawnparams, 0.87)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	end
	this.netID = id
	this.lifeMax = this.life
	this.defDamage = this.damage
	this.defDefense = this.defense
	if (flag) then
		ScaleStats(spawnparams.playerCountForMultiplayerDifficultyOverride, spawnparams.gameModeData, spawnparams.strengthMultiplierOverride)
		this.life = this.lifeMax
	end
end

---from Terraria.NPC.SetDefaults
function SetDefaults(Type, spawnparams)

	spawnparams = spawnparams or {}

	spawnparams.sizeScaleOverride = spawnparams.sizeScaleOverride or 1
	spawnparams.playerCountForMultiplayerDifficultyOverride = spawnparams.playerCountForMultiplayerDifficultyOverride or 1
	spawnparams.gameModeData = spawnparams.gameModeData or GameModeData.NormalMode
	spawnparams.strengthMultiplierOverride = spawnparams.strengthMultiplierOverride or 1

	local single
	local flag
	local nullable
	local nullable1
	local nullable2

	if (Main.getGoodWorld and spawnparams.sizeScaleOverride) then
		spawnparams.sizeScaleOverride = spawnparams.sizeScaleOverride + spawnparams.sizeScaleOverride * spawnparams.sizeScaleOverride / 2
	end

	if Type < 0 then
		SetDefaultsFromNetId(Type, spawnparams)
		return
	end
	this = {} -- reset
	-- resetStat
	local single1 = 0.5
	single = single1
	this.lavaMovementSpeed = single1
	this.waterMovementSpeed = single
	this.honeyMovementSpeed = 0.25
	this.altTexture = 0
	this.townNpcVariationIndex = 0
	this.nameOver = 0
	this.takenDamageMultiplier = 1
	this.extraValue = 0
	this.rarity = 0
	this.dontCountMe = false
	this.releaseOwner = 255
	this.catchItem = 0
	this.needsUniqueInfoUpdate = true
	this.netStream = 32
	this.buffImmuneAll = false
	this.buffImmuneAllNotWhips = false
	this.netID = 0
	this.netAlways = false
	this.netSpam = 0
	this.SpawnedFromStatue = false
	this.statsAreScaledForThisManyPlayers = 0
	this.strengthMultiplier = 1
	this.buffImmune = {}
	this.setFrameSize = false
	this.netSkip = -2
	this.realLife = -1
	this.lifeRegen = 0
	this.lifeRegenExpectedLossPerSecond = -1
	this.lifeRegenCount = 0
	this.markedByScytheWhip = false
	this.markedByThornWhip = false
	this.markedByBoneWhip = false
	this.markedByFireWhip = false
	this.markedByRainbowWhip = false
	this.markedByBlandWhip = false
	this.markedBySwordWhip = false
	this.markedByMaceWhip = false
	this.poisoned = false
	this.soulDrain = false
	this.venom = false
	this.shadowFlame = false
	this.onFire = false
	this.midas = false
	this.ichor = false
	this.onFrostBurn = false
	this.onFrostBurn2 = false
	this.confused = false
	this.loveStruck = false
	this.dontTakeDamageFromHostiles = false
	this.stinky = false
	this.dryadWard = false
	this.onFire2 = false
	this.onFire3 = false
	this.justHit = false
	this.dontTakeDamage = false
	this.npcSlots = 1
	this.lavaImmune = false
	this.lavaWet = false
	this.wetCount = 0
	this.wet = false
	this.townNPC = false
	this.homeless = false
	this.homeTileX = -1
	this.homeTileY = -1
	this.housingCategory = 0
	this.friendly = false
	this.behindTiles = false
	this.boss = false
	this.noTileCollide = false
	this.rotation = 0
	this.active = true
	this.alpha = 0
	-- this.color = new Color()
	this.collideX = false
	this.collideY = false
	this.direction = 0
	this.oldDirection = this.direction
	this.frameCounter = 0
	this.netUpdate = true
	this.netUpdate2 = false
	this.knockBackResist = 1
	this.GivenName = ""
	this.noGravity = false
	this.scale = 1
	this.HitSound = ''
	this.DeathSound = ''
	this.spriteDirection = -1
	this.timeLeft = NPC.activeTime
	this.type = Type
	this.value = 0
	this.coldDamage = false
	this.trapImmune = false
	this.hide = false
	this.immortal = false
	this.chaseable = true
	this.breath = 200
	this.breathCounter = 0
	this.reflectsProjectiles = false
	this.canGhostHeal = true
	this.javelined = false
	this.daybreak = false
	this.celled = false
	this.dryadBane = false
	this.betsysCurse = false
	this.oiled = false
	this.despawnEncouraged = false
	this.width = 0
	this.height = 0
	this.lifeMax = 0
	this.damage = 0
	this.defense = 0

-- ==================

	if this.type == 1 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 7
		this.defense = 2
		this.lifeMax = 25
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 175
		-- this.color = new Color(0, 80, 255, 100)
		this.value = 25
	elseif this.type == 2 then
		this.width = 30
		this.height = 32
		this.aiStyle = 2
		this.damage = 18
		this.defense = 2
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath1
		this.value = 75
	elseif this.type == 3 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 14
		this.defense = 6
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 60
	elseif this.type == 430 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 14
		this.defense = 6
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 60
	elseif this.type == 431 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 16
		this.defense = 8
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.45
		this.value = 80
	elseif this.type == 432 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 16
		this.defense = 8
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.45
		this.value = 65
	elseif this.type == 433 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 13
		this.defense = 6
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.55
		this.value = 55
	elseif this.type == 434 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 13
		this.defense = 8
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.45
		this.value = 80
	elseif this.type == 435 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 16
		this.defense = 4
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.55
		this.value = 70
	elseif this.type == 436 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 12
		this.defense = 4
		this.lifeMax = 38
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.6
		this.value = 65
	elseif this.type == 4 then
		this.width = 100
		this.height = 110
		this.aiStyle = 4
		this.damage = 15
		this.defense = 12
		this.lifeMax = 2800
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		SpawnWithHigherTime(30)
		this.boss = true
		this.value = 30000
		this.npcSlots = 5
	elseif this.type == 5 then
		this.width = 20
		this.height = 20
		this.aiStyle = 5
		this.damage = 12
		this.defense = 0
		this.lifeMax = 8
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
	elseif this.type == 6 then
		this.npcSlots = 1
		this.width = 30
		this.height = 30
		this.aiStyle = 5
		this.damage = 22
		this.defense = 8
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.knockBackResist = 0.5
		this.value = 90
	elseif this.type == 7 then
		this.npcSlots = 3.5
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.damage = 31
		this.defense = 2
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 140
		this.netAlways = true
	elseif this.type == 8 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 16
		this.defense = 6
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 140
		this.dontCountMe = true
	elseif this.type == 9 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 13
		this.defense = 10
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 140
		this.dontCountMe = true
	elseif this.type == 10 then
		this.width = 14
		this.height = 14
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 8
		this.defense = 0
		this.lifeMax = 30
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 40
	elseif this.type == 11 then
		this.width = 14
		this.height = 14
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 4
		this.defense = 4
		this.lifeMax = 30
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 40
		this.dontCountMe = true
	elseif this.type == 12 then
		this.width = 14
		this.height = 14
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 4
		this.defense = 6
		this.lifeMax = 30
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 40
		this.dontCountMe = true
	elseif this.type == 13 then
		this.npcSlots = 5
		this.width = 38
		this.height = 38
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 22
		this.defense = 2
		this.lifeMax = 150
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 800
		this.scale = 1
		this.alpha = 255
	elseif this.type == 14 then
		this.width = 38
		this.height = 38
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 13
		this.defense = 4
		this.lifeMax = 150
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 800
		this.scale = 1
		this.dontCountMe = true
		this.alpha = 255
	elseif this.type == 15 then
		this.width = 38
		this.height = 38
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 11
		this.defense = 8
		this.lifeMax = 150
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 800
		this.scale = 1
		this.dontCountMe = true
		this.alpha = 255
	elseif this.type == 16 then
		this.npcSlots = 2
		this.width = 36
		this.height = 24
		this.aiStyle = 1
		this.damage = 20
		this.defense = 7
		this.lifeMax = 90
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 120
		-- this.color = new Color(0, 0, 0, 50)
		this.value = 75
		this.scale = 1.25
		this.knockBackResist = 0.6
	elseif this.type == 17 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 18 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 19 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 20 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 21 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 20
		this.defense = 8
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 100
	elseif this.type == 22 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 23 then
		this.width = 22
		this.height = 22
		this.aiStyle = 5
		this.damage = 40
		this.defense = 6
		this.lifeMax = 26
		this.HitSound = SoundID.NPCHit3
		this.DeathSound = SoundID.NPCDeath3
		this.noGravity = true
		this.noTileCollide = true
		this.value = 80
		this.knockBackResist = 0.4
	elseif this.type == 24 then
		this.npcSlots = 3
		this.width = 18
		this.height = 40
		this.aiStyle = 8
		this.damage = 30
		this.defense = 16
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.lavaImmune = true
		this.value = 350
	elseif this.type == 25 then
		this.width = 16
		this.height = 16
		this.aiStyle = 9
		this.damage = 30
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = SoundID.NPCHit3
		this.DeathSound = SoundID.NPCDeath3
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.alpha = 100
	elseif this.type == 31 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 26
		this.defense = 8
		this.lifeMax = 80
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.8
		this.value = 130
	elseif this.type == 32 then
		this.width = 18
		this.height = 40
		this.aiStyle = 8
		this.damage = 20
		this.defense = 2
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.6
		this.value = 140
		this.npcSlots = 2
	elseif this.type == 33 then
		this.width = 16
		this.height = 16
		this.aiStyle = 9
		this.damage = 20
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = SoundID.NPCHit3
		this.DeathSound = SoundID.NPCDeath3
		this.noGravity = true
		this.noTileCollide = true
		this.alpha = 255
		this.knockBackResist = 0
	elseif this.type == 34 then
		this.width = 26
		this.height = 28
		this.aiStyle = 10
		this.damage = 35
		this.defense = 6
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.noGravity = true
		this.noTileCollide = true
		this.value = 150
		this.knockBackResist = 0.2
		this.npcSlots = 0.75
	elseif this.type == 35 then
		this.width = 80
		this.height = 102
		this.aiStyle = 11
		this.damage = 32
		this.defense = 10
		this.lifeMax = 4400
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.noGravity = true
		this.noTileCollide = true
		this.value = 50000
		this.knockBackResist = 0
		this.boss = true
		this.npcSlots = 6
	elseif this.type == 36 then
		this.width = 52
		this.height = 52
		this.aiStyle = 12
		this.damage = 20
		this.defense = 14
		this.lifeMax = 600
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
	elseif this.type == 37 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 38 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 39 then
		this.npcSlots = 6
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 30
		this.defense = 10
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath5
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 1200
	elseif this.type == 40 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 15
		this.defense = 12
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath5
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 1200
		this.dontCountMe = true
	elseif this.type == 41 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 10
		this.defense = 18
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath5
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 1200
		this.dontCountMe = true
	elseif this.type == 42 then
		this.width = 34
		this.height = 32
		this.aiStyle = 5
		this.damage = 26
		this.defense = 12
		this.lifeMax = 48
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.5
		this.DeathSound = SoundID.NPCDeath1
		this.value = 200
		this.noGravity = true
	elseif this.type == 43 then
		this.noGravity = true
		this.noTileCollide = true
		this.width = 30
		this.height = 30
		this.aiStyle = 13
		this.damage = 34
		this.defense = 10
		this.lifeMax = 110
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0
		this.DeathSound = SoundID.NPCDeath1
		this.value = 350
	elseif this.type == 44 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 22
		this.defense = 9
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 250
		this.rarity = 1
	elseif this.type == 45 then
		this.width = 18
		this.height = 40
		this.aiStyle = 8
		this.damage = 20
		this.defense = 4
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.6
		this.value = 5000
		this.rarity = 4
	elseif this.type == 46 or this.type == 303 or this.type == 337 or this.type == 540 then
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2019
	elseif this.type == 47 then
		this.width = 18
		this.height = 20
		this.aiStyle = 3
		this.damage = 20
		this.defense = 4
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 500
	elseif this.type == 48 then
		this.width = 24
		this.height = 34
		this.aiStyle = 14
		this.damage = 25
		this.defense = 8
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.6
		this.DeathSound = SoundID.NPCDeath1
		this.value = 300
	elseif this.type == 49 then
		this.npcSlots = 0.5
		this.width = 22
		this.height = 18
		this.aiStyle = 14
		this.damage = 13
		this.defense = 2
		this.lifeMax = 16
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath4
		this.value = 90
	elseif this.type == 50 then
		this.boss = true
		this.width = 98
		this.height = 92
		this.aiStyle = 15
		this.damage = 40
		this.defense = 10
		this.lifeMax = 2000
		this.knockBackResist = 0
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 30
		this.value = 10000
		this.scale = 1.25
		SpawnWithHigherTime(30)
	elseif this.type == 51 then
		this.npcSlots = 0.5
		this.width = 22
		this.height = 18
		this.aiStyle = 14
		this.damage = 20
		this.defense = 4
		this.lifeMax = 34
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath4
		this.value = 80
	elseif this.type == 52 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 20
		this.defense = 10
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 1000
		this.rarity = 2
	elseif this.type == 53 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 14
		this.defense = 8
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 1000
		this.rarity = 2
	elseif this.type == 54 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 55 then
		this.noGravity = true
		this.width = 20
		this.height = 18
		this.aiStyle = 16
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.catchItem = 261
	elseif this.type == 56 then
		this.noTileCollide = true
		this.noGravity = true
		this.width = 30
		this.height = 30
		this.aiStyle = 13
		this.damage = 25
		this.defense = 10
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0
		this.DeathSound = SoundID.NPCDeath1
		this.value = 90
	elseif this.type == 57 then
		this.noGravity = true
		this.width = 18
		this.height = 20
		this.aiStyle = 16
		this.damage = 30
		this.defense = 6
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 500
	elseif this.type == 58 then
		this.npcSlots = 0.5
		this.noGravity = true
		this.width = 18
		this.height = 20
		this.aiStyle = 16
		this.damage = 25
		this.defense = 2
		this.lifeMax = 30
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 50
	elseif this.type == 59 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 15
		this.defense = 10
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.scale = 1.1
		this.alpha = 50
		this.lavaImmune = true
		this.value = 120
	elseif this.type == 60 then
		this.npcSlots = 0.5
		this.width = 22
		this.height = 18
		this.aiStyle = 14
		this.damage = 35
		this.defense = 8
		this.lifeMax = 46
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath4
		this.value = 120
		this.scale = 1.1
		this.lavaImmune = true
	elseif this.type == 61 then
		this.width = 36
		this.height = 36
		this.aiStyle = 17
		this.damage = 15
		this.defense = 4
		this.lifeMax = 40
		this.knockBackResist = 0.8
		this.HitSound = SoundID.NPCHit28
		this.DeathSound = SoundID.NPCDeath31
		this.value = 60
	elseif this.type == 62 then
		this.npcSlots = 2
		this.width = 28
		this.height = 48
		this.aiStyle = 14
		this.damage = 32
		this.defense = 8
		this.lifeMax = 120
		this.HitSound = SoundID.NPCHit21
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath24
		this.value = 300
		this.lavaImmune = true
	elseif this.type == 63 then
		this.noGravity = true
		this.width = 26
		this.height = 26
		this.aiStyle = 18
		this.damage = 25
		this.defense = 4
		this.lifeMax = 34
		this.HitSound = SoundID.NPCHit25
		this.DeathSound = SoundID.NPCDeath28
		this.value = 100
		this.alpha = 20
	elseif this.type == 64 then
		this.noGravity = true
		this.width = 26
		this.height = 26
		this.aiStyle = 18
		this.damage = 30
		this.defense = 6
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit25
		this.DeathSound = SoundID.NPCDeath28
		this.value = 100
		this.alpha = 20
	elseif this.type == 65 then
		this.noGravity = true
		this.width = 100
		this.height = 24
		this.aiStyle = 16
		this.damage = 40
		this.defense = 2
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 400
		this.knockBackResist = 0.7
	elseif this.type == 66 then
		this.npcSlots = 2
		this.width = 28
		this.height = 48
		this.aiStyle = 14
		this.damage = 32
		this.defense = 8
		this.lifeMax = 140
		this.HitSound = SoundID.NPCHit21
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath24
		this.value = 1000
		this.lavaImmune = true
	elseif this.type == 67 then
		this.width = 28
		this.height = 20
		this.aiStyle = 3
		this.damage = 20
		this.defense = 10
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 60
	elseif this.type == 68 then
		this.width = 80
		this.height = 102
		this.aiStyle = 11
		this.damage = 1000
		this.defense = 9999
		this.lifeMax = 9999
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
	elseif this.type == 69 then
		this.width = 24
		this.height = 24
		this.aiStyle = 19
		this.damage = 10
		this.defense = 6
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit31
		this.DeathSound = SoundID.NPCDeath34
		this.knockBackResist = 0
		this.value = 60
		this.behindTiles = true
	elseif this.type == 70 then
		this.npcSlots = 0.3
		this.width = 34
		this.height = 34
		this.aiStyle = 20
		this.damage = 32
		this.defense = 100
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.dontTakeDamage = true
		this.scale = 1.5
	elseif this.type == 71 then
		this.npcSlots = 2
		this.width = 36
		this.height = 24
		this.aiStyle = 1
		this.damage = 30
		this.defense = 7
		this.lifeMax = 150
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 60
		this.value = 150
		this.scale = 1.25
		this.knockBackResist = 0.6
		this.rarity = 1
	elseif this.type == 72 then
		this.npcSlots = 0.3
		this.width = 34
		this.height = 34
		this.aiStyle = 21
		this.damage = 24
		this.defense = 100
		this.lifeMax = 100
		this.alpha = 100
		this.behindTiles = true
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.noGravity = true
		this.dontTakeDamage = true
		this.scale = 1.2
	elseif this.type == 73 then
		this.scale = 0.95
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 20
		this.defense = 6
		this.lifeMax = 80
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.7
		this.value = 200
		this.rarity = 1
	elseif this.type == 74 or this.type == 297 or this.type == 298 then
		this.width = 14
		this.height = 14
		this.aiStyle = 24
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath1
		if this.type == 74 then
			this.catchItem = 2015
		end
		if this.type == 297 then
			this.catchItem = 2016
		end
		if this.type == 298 then
			this.catchItem = 2017
		end
		this.npcSlots = 0.4
	elseif this.type == 75 then
		this.noGravity = true
		this.width = 20
		this.height = 20
		this.aiStyle = 22
		this.damage = 55
		this.defense = 20
		this.lifeMax = 150
		this.HitSound = SoundID.NPCHit5
		this.knockBackResist = 0.6
		this.DeathSound = SoundID.NPCDeath7
		this.value = 350
	elseif this.type == 77 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 40
		this.defense = 28
		this.lifeMax = 260
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = 400
	elseif this.type == 78 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 50
		this.defense = 16
		this.lifeMax = 130
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.6
		this.value = 600
	elseif this.type == 79 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 60
		this.defense = 18
		this.lifeMax = 180
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.5
		this.value = 700
	elseif this.type == 80 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 55
		this.defense = 18
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.55
		this.value = 700
	elseif this.type == 81 then
		this.width = 40
		this.height = 30
		this.aiStyle = 1
		this.damage = 55
		this.defense = 20
		this.lifeMax = 170
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 55
		this.value = 400
		this.scale = 1.1
	elseif this.type == 82 then
		this.noGravity = true
		this.noTileCollide = true
		this.width = 24
		this.height = 44
		this.aiStyle = 22
		this.damage = 65
		this.defense = 16
		this.lifeMax = 160
		this.HitSound = SoundID.NPCHit54
		this.DeathSound = SoundID.NPCDeath52
		this.alpha = 100
		this.value = 500
		this.knockBackResist = 0.7
	elseif this.type == 83 then
		this.width = 40
		this.height = 40
		this.aiStyle = 23
		this.damage = 80
		this.defense = 18
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath6
		this.value = 1000
		this.knockBackResist = 0.4
	elseif this.type == 84 then
		this.width = 40
		this.height = 40
		this.aiStyle = 23
		this.damage = 80
		this.defense = 18
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath6
		this.value = 1000
		this.knockBackResist = 0.4
	elseif this.type == 85 then
		this.width = 24
		this.height = 24
		this.aiStyle = 25
		this.damage = 80
		this.defense = 30
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath6
		this.value = 100000
		this.knockBackResist = 0.3
		this.rarity = 4
	elseif this.type == 86 then
		this.width = 46
		this.height = 42
		this.aiStyle = 26
		this.damage = 65
		this.defense = 30
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit12
		this.DeathSound = SoundID.NPCDeath18
		this.knockBackResist = 0.3
		this.value = 1000
	elseif this.type == 87 then
		this.noTileCollide = true
		this.npcSlots = 5
		this.width = 32
		this.height = 32
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 80
		this.defense = 10
		this.lifeMax = 4000
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath8
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 10000
		this.scale = 1
	elseif this.type == 88 then
		this.noTileCollide = true
		this.width = 32
		this.height = 32
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 40
		this.defense = 20
		this.lifeMax = 4000
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath8
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 10000
		this.scale = 1
		this.dontCountMe = true
	elseif this.type == 89 then
		this.noTileCollide = true
		this.width = 32
		this.height = 32
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 40
		this.defense = 20
		this.lifeMax = 4000
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath8
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 2000
		this.scale = 1
		this.dontCountMe = true
	elseif this.type == 90 then
		this.noTileCollide = true
		this.width = 32
		this.height = 32
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 40
		this.defense = 20
		this.lifeMax = 4000
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath8
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 10000
		this.scale = 1
		this.dontCountMe = true
	elseif this.type == 91 then
		this.noTileCollide = true
		this.width = 32
		this.height = 32
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 40
		this.defense = 20
		this.lifeMax = 4000
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath8
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 10000
		this.scale = 1
		this.dontCountMe = true
	elseif this.type == 92 then
		this.noTileCollide = true
		this.width = 32
		this.height = 32
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 40
		this.defense = 20
		this.lifeMax = 4000
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath8
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 10000
		this.scale = 1
		this.dontCountMe = true
	elseif this.type == 93 then
		this.npcSlots = 0.5
		this.width = 26
		this.height = 20
		this.aiStyle = 14
		this.damage = 45
		this.defense = 16
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.75
		this.DeathSound = SoundID.NPCDeath4
		this.value = 400
	elseif this.type == 94 then
		this.npcSlots = 1
		this.width = 44
		this.height = 44
		this.aiStyle = 5
		this.damage = 60
		this.defense = 32
		this.lifeMax = 230
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.knockBackResist = 0.55
		this.value = 500
	elseif this.type == 95 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 45
		this.defense = 10
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.scale = 0.9
		this.value = 300
	elseif this.type == 96 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 28
		this.defense = 20
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.scale = 0.9
		this.value = 300
		this.dontCountMe = true
	elseif this.type == 97 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 26
		this.defense = 30
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.scale = 0.9
		this.value = 300
		this.dontCountMe = true
	elseif this.type == 98 then
		this.npcSlots = 3.5
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 70
		this.defense = 36
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 700
	elseif this.type == 99 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 55
		this.defense = 40
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 700
		this.dontCountMe = true
	elseif this.type == 100 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 40
		this.defense = 44
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 700
		this.dontCountMe = true
	elseif this.type == 101 then
		this.noGravity = true
		this.noTileCollide = true
		this.behindTiles = true
		this.width = 30
		this.height = 30
		this.aiStyle = 13
		this.damage = 70
		this.defense = 30
		this.lifeMax = 320
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.2
		this.DeathSound = SoundID.NPCDeath1
		this.value = 600
	elseif this.type == 102 then
		this.npcSlots = 0.5
		this.noGravity = true
		this.width = 18
		this.height = 20
		this.aiStyle = 16
		this.damage = 80
		this.defense = 22
		this.lifeMax = 90
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 500
	elseif this.type == 103 then
		this.noGravity = true
		this.width = 26
		this.height = 26
		this.aiStyle = 18
		this.damage = 80
		this.defense = 30
		this.lifeMax = 120
		this.HitSound = SoundID.NPCHit25
		this.DeathSound = SoundID.NPCDeath28
		this.value = 800
		this.alpha = 20
	elseif this.type == 104 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 70
		this.defense = 38
		this.lifeMax = 350
		this.HitSound = SoundID.NPCHit6
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.4
		this.value = 1000
	elseif this.type == 105 then
		this.friendly = true
		this.width = 18
		this.height = 34
		this.aiStyle = 0
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.rarity = 1
	elseif this.type == 106 then
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 0
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.rarity = 1
	elseif this.type == 107 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 108 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 109 then
		this.width = 34
		this.height = 78
		this.aiStyle = 3
		this.damage = 60
		this.defense = 25
		this.lifeMax = 800
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.2
		this.value = 10000
		this.rarity = 1
	elseif this.type == 110 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 45
		this.defense = 14
		this.lifeMax = 210
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.55
		this.value = 400
	elseif this.type == 112 then
		this.width = 16
		this.height = 16
		this.aiStyle = 9
		this.damage = 65
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = nil
		this.DeathSound = SoundID.NPCDeath9
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.scale = 0.9
		this.alpha = 80
	elseif this.type == 113 then
		this.npcSlots = 10
		this.width = 100
		this.height = 100
		this.aiStyle = 27
		this.damage = 50
		this.defense = 12
		this.lifeMax = 8000
		this.HitSound = SoundID.NPCHit8
		this.DeathSound = SoundID.NPCDeath10
		this.noGravity = true
		this.noTileCollide = true
		this.behindTiles = true
		this.knockBackResist = 0
		this.scale = 1.2
		this.boss = true
		this.value = 80000
	elseif this.type == 114 then
		this.width = 100
		this.height = 100
		this.aiStyle = 28
		this.damage = 50
		this.defense = 0
		this.lifeMax = 8000
		this.HitSound = SoundID.NPCHit8
		this.DeathSound = SoundID.NPCDeath10
		this.noGravity = true
		this.noTileCollide = true
		this.behindTiles = true
		this.knockBackResist = 0
		this.scale = 1.2
		this.value = 80000
	elseif this.type == 115 then
		this.width = 30
		this.height = 30
		this.aiStyle = 29
		this.damage = 30
		this.defense = 10
		this.lifeMax = 240
		this.HitSound = SoundID.NPCHit9
		this.DeathSound = SoundID.NPCDeath11
		this.noGravity = true
		this.behindTiles = true
		this.noTileCollide = true
		this.knockBackResist = 1.1
	elseif this.type == 116 then
		this.width = 30
		this.height = 32
		this.aiStyle = 2
		this.damage = 30
		this.defense = 6
		this.lifeMax = 80
		this.HitSound = SoundID.NPCHit9
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath12
	elseif this.type == 117 then
		this.width = 14
		this.height = 14
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 26
		this.defense = 2
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit9
		this.DeathSound = SoundID.NPCDeath12
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
	elseif this.type == 118 then
		this.width = 14
		this.height = 14
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 22
		this.defense = 6
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit9
		this.DeathSound = SoundID.NPCDeath12
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
	elseif this.type == 119 then
		this.width = 14
		this.height = 14
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 18
		this.defense = 10
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit9
		this.DeathSound = SoundID.NPCDeath12
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
	elseif this.type == 120 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 40
		this.defense = 30
		this.lifeMax = 370
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.4
		this.value = 600
	elseif this.type == 121 then
		this.width = 40
		this.height = 30
		this.aiStyle = 14
		this.damage = 45
		this.defense = 20
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.alpha = 55
		this.knockBackResist = 0.8
		this.scale = 1.1
	elseif this.type == 122 then
		this.noGravity = true
		this.width = 20
		this.height = 20
		this.aiStyle = 22
		this.damage = 60
		this.defense = 22
		this.lifeMax = 220
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath1
		this.value = 600
	elseif this.type == 123 then
		this.friendly = true
		this.width = 18
		this.height = 34
		this.aiStyle = 0
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.scale = 0.9
		this.rarity = 1
	elseif this.type == 124 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 125 then
		this.width = 100
		this.height = 110
		this.aiStyle = 30
		this.defense = 10
		this.damage = 45
		this.lifeMax = 20000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath14
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		SpawnWithHigherTime(30)
		this.boss = true
		this.value = 120000
		this.npcSlots = 5
	elseif this.type == 126 then
		this.width = 100
		this.height = 110
		this.aiStyle = 31
		this.defense = 10
		this.damage = 50
		this.lifeMax = 23000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath14
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		SpawnWithHigherTime(30)
		this.boss = true
		this.value = 120000
		this.npcSlots = 5
	elseif this.type == 127 then
		this.width = 80
		this.height = 102
		this.aiStyle = 32
		this.damage = 47
		this.defense = 24
		this.lifeMax = 28000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.noGravity = true
		this.noTileCollide = true
		this.value = 120000
		this.knockBackResist = 0
		this.boss = true
		this.npcSlots = 6
		this.boss = true
	elseif this.type == 128 then
		this.width = 52
		this.height = 52
		this.aiStyle = 35
		this.damage = 30
		this.defense = 23
		this.lifeMax = 7000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.netAlways = true
	elseif this.type == 129 then
		this.width = 52
		this.height = 52
		this.aiStyle = 33
		this.damage = 56
		this.defense = 38
		this.lifeMax = 9000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.netAlways = true
	elseif this.type == 130 then
		this.width = 52
		this.height = 52
		this.aiStyle = 34
		this.damage = 52
		this.defense = 34
		this.lifeMax = 9000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.netAlways = true
	elseif this.type == 131 then
		this.width = 52
		this.height = 52
		this.aiStyle = 36
		this.damage = 29
		this.defense = 20
		this.lifeMax = 6000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.netAlways = true
	elseif this.type == 132 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 15
		this.defense = 5
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 65
	elseif this.type == 133 then
		this.width = 30
		this.height = 32
		this.aiStyle = 2
		this.damage = 40
		this.defense = 20
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath1
		this.value = 500
	elseif this.type == 134 then
		this.npcSlots = 5
		this.width = 38
		this.height = 38
		this.aiStyle = 37
		this.defense = 0
		this.damage = 70
		this.lifeMax = 80000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 120000
		this.scale = 1.25
		this.boss = true
		this.netAlways = true
		this.alpha = 255
	elseif this.type == 135 then
		this.npcSlots = 5
		this.width = 38
		this.height = 38
		this.aiStyle = 37
		this.damage = 55
		this.defense = 30
		this.lifeMax = 80000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.netAlways = true
		this.scale = 1.25
		this.dontCountMe = true
		this.alpha = 255
	elseif this.type == 136 then
		this.npcSlots = 5
		this.width = 38
		this.height = 38
		this.aiStyle = 37
		this.damage = 40
		this.defense = 35
		this.lifeMax = 80000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.scale = 1.25
		this.netAlways = true
		this.dontCountMe = true
		this.alpha = 255
	elseif this.type == 139 then
		this.npcSlots = 1
		this.width = 30
		this.height = 30
		this.aiStyle = 5
		this.damage = 50
		this.defense = 20
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.noGravity = true
		this.knockBackResist = 0.8
		this.noTileCollide = true
	elseif this.type == 137 then
		this.width = 26
		this.height = 20
		this.aiStyle = 14
		this.damage = 75
		this.defense = 30
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.75
		this.DeathSound = SoundID.NPCDeath6
		this.value = 500
	elseif this.type == 138 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 70
		this.defense = 30
		this.lifeMax = 180
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.alpha = 100
		this.value = 400
		this.knockBackResist = 0.85
		this.scale = 1.05
	elseif this.type == 140 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 55
		this.defense = 28
		this.lifeMax = 260
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.4
		this.value = 400
	elseif this.type == 141 then
		this.width = 34
		this.height = 28
		this.aiStyle = 1
		this.damage = 50
		this.defense = 18
		this.lifeMax = 150
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 55
		this.value = 400
		this.scale = 1.1
		this.knockBackResist = 0.8
	elseif this.type == 142 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 143 then
		this.width = 26
		this.height = 40
		this.aiStyle = 38
		this.damage = 50
		this.defense = 20
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit11
		this.DeathSound = SoundID.NPCDeath15
		this.knockBackResist = 0.6
		this.value = 400
		this.coldDamage = true
	elseif this.type == 144 then
		this.width = 26
		this.height = 40
		this.aiStyle = 38
		this.damage = 65
		this.defense = 26
		this.lifeMax = 240
		this.HitSound = SoundID.NPCHit11
		this.DeathSound = SoundID.NPCDeath15
		this.knockBackResist = 0.6
		this.value = 400
		this.coldDamage = true
	elseif this.type == 145 then
		this.width = 26
		this.height = 40
		this.aiStyle = 38
		this.damage = 55
		this.defense = 22
		this.lifeMax = 220
		this.HitSound = SoundID.NPCHit11
		this.DeathSound = SoundID.NPCDeath15
		this.knockBackResist = 0.6
		this.value = 400
		this.coldDamage = true
	elseif this.type == 147 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 8
		this.defense = 4
		this.lifeMax = 30
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 50
		this.value = 50
		this.coldDamage = true
	elseif this.type == 148 then
		this.width = 16
		this.height = 34
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2205
	elseif this.type == 149 then
		this.width = 16
		this.height = 34
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2205
	elseif this.type == 150 then
		this.npcSlots = 0.5
		this.width = 22
		this.height = 22
		this.aiStyle = 14
		this.damage = 18
		this.defense = 6
		this.lifeMax = 30
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath4
		this.value = 250
	elseif this.type == 151 then
		this.npcSlots = 0.5
		this.width = 22
		this.height = 22
		this.aiStyle = 14
		this.damage = 50
		this.defense = 16
		this.lifeMax = 160
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.6
		this.DeathSound = SoundID.NPCDeath4
		this.value = 400
		this.scale = 1.15
		this.lavaImmune = true
	elseif this.type == 152 then
		this.npcSlots = 0.5
		this.width = 38
		this.height = 34
		this.aiStyle = 14
		this.damage = 80
		this.defense = 24
		this.lifeMax = 220
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.65
		this.DeathSound = SoundID.NPCDeath4
		this.value = 400
	elseif this.type == 153 then
		this.npcSlots = 2
		this.width = 46
		this.height = 32
		this.aiStyle = 39
		this.damage = 80
		this.defense = 30
		this.lifeMax = 470
		this.HitSound = SoundID.NPCHit24
		this.knockBackResist = 0.3
		this.DeathSound = SoundID.NPCDeath27
		this.value = 500
		this.noGravity = false
	elseif this.type == 154 then
		this.npcSlots = 1.5
		this.width = 46
		this.height = 32
		this.aiStyle = 39
		this.damage = 55
		this.defense = 28
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit24
		this.knockBackResist = 0.3
		this.DeathSound = SoundID.NPCDeath27
		this.value = 450
		this.noGravity = false
	elseif this.type == 155 then
		this.width = 46
		this.height = 30
		this.aiStyle = 26
		this.damage = 65
		this.defense = 30
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.3
		this.value = 1000
	elseif this.type == 156 then
		this.npcSlots = 2
		this.width = 28
		this.height = 48
		this.aiStyle = 14
		this.damage = 50
		this.defense = 40
		this.lifeMax = 600
		this.HitSound = SoundID.NPCHit21
		this.knockBackResist = 0.5
		this.DeathSound = SoundID.NPCDeath24
		this.value = 1200
		this.lavaImmune = true
	elseif this.type == 157 then
		this.npcSlots = 0.5
		this.noGravity = true
		this.width = 74
		this.height = 20
		this.aiStyle = 16
		this.damage = 75
		this.defense = 30
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 500
	elseif this.type == 160 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 161 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 16
		this.defense = 8
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.45
		this.value = 80
	elseif this.type == 163 then
		this.width = 50
		this.height = 20
		this.aiStyle = 3
		this.damage = 90
		this.defense = 40
		this.lifeMax = 350
		this.HitSound = SoundID.NPCHit29
		this.DeathSound = SoundID.NPCDeath32
		this.knockBackResist = 0.25
		this.value = 500
		this.npcSlots = 0.5
		SpawnWithHigherTime(2)
	elseif this.type == 238 then
		this.noGravity = true
		this.width = 36
		this.height = 36
		this.aiStyle = 40
		this.damage = 100
		this.defense = 40
		this.lifeMax = 350
		this.HitSound = SoundID.NPCHit29
		this.DeathSound = SoundID.NPCDeath32
		this.knockBackResist = 0.25
		this.value = 500
		SpawnWithHigherTime(2)
		this.npcSlots = 0.5
	elseif this.type == 164 then
		this.width = 50
		this.height = 20
		this.aiStyle = 3
		this.damage = 30
		this.defense = 10
		this.lifeMax = 80
		this.HitSound = SoundID.NPCHit29
		this.DeathSound = SoundID.NPCDeath32
		this.knockBackResist = 0.25
		this.value = 100
		SpawnWithHigherTime(2)
		this.npcSlots = 0.5
	elseif this.type == 165 then
		this.noGravity = true
		this.width = 36
		this.height = 36
		this.aiStyle = 40
		this.damage = 30
		this.defense = 10
		this.lifeMax = 80
		this.HitSound = SoundID.NPCHit29
		this.DeathSound = SoundID.NPCDeath32
		this.knockBackResist = 0.25
		this.value = 100
		SpawnWithHigherTime(2)
		this.npcSlots = 0.5
	elseif this.type == 167 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 24
		this.defense = 10
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 200
	elseif this.type == 168 then
		this.width = 16
		this.height = 34
		this.aiStyle = 3
		this.damage = 20
		this.defense = 4
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 500
	elseif this.type == 169 then
		this.noGravity = true
		this.width = 18
		this.height = 40
		this.aiStyle = 22
		this.damage = 55
		this.defense = 20
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit5
		this.knockBackResist = 0.6
		this.DeathSound = SoundID.NPCDeath7
		this.value = 1500
		this.coldDamage = true
	elseif this.type == 170 then
		this.width = 44
		this.height = 36
		this.aiStyle = 2
		this.damage = 70
		this.defense = 16
		this.lifeMax = 210
		this.HitSound = SoundID.NPCHit27
		this.DeathSound = SoundID.NPCDeath30
		this.knockBackResist = 0.5
		this.value = 2000
	elseif this.type == 171 then
		this.width = 44
		this.height = 36
		this.aiStyle = 2
		this.damage = 70
		this.defense = 16
		this.lifeMax = 210
		this.HitSound = SoundID.NPCHit27
		this.DeathSound = SoundID.NPCDeath30
		this.knockBackResist = 0.5
		this.value = 2000
	elseif this.type == 172 then
		this.width = 18
		this.height = 40
		this.aiStyle = 8
		this.damage = 200
		this.defense = 30
		this.lifeMax = 600
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.3
		this.value = 5000
		this.rarity = 2
	elseif this.type == 173 then
		this.npcSlots = 1
		this.width = 30
		this.height = 30
		this.aiStyle = 5
		this.damage = 22
		this.defense = 8
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.knockBackResist = 0.5
		this.value = 90
	elseif this.type == 174 then
		this.npcSlots = 1
		this.width = 52
		this.height = 26
		this.aiStyle = 41
		this.damage = 65
		this.defense = 26
		this.lifeMax = 220
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.3
		this.value = 450
	elseif this.type == 175 then
		this.noGravity = true
		this.noTileCollide = true
		this.width = 30
		this.height = 30
		this.aiStyle = 13
		this.damage = 100
		this.defense = 30
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.25
		this.DeathSound = SoundID.NPCDeath1
		this.value = 650
	elseif this.type == 176 then
		this.width = 34
		this.height = 32
		this.aiStyle = 5
		this.damage = 70
		this.defense = 22
		this.lifeMax = 220
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.5
		this.DeathSound = SoundID.NPCDeath1
		this.value = 600
		this.noGravity = true
		this.npcSlots = 1.5
	elseif this.type == 177 then
		this.npcSlots = 1
		this.width = 58
		this.height = 44
		this.aiStyle = 41
		this.damage = 80
		this.defense = 26
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit22
		this.DeathSound = SoundID.NPCDeath25
		this.knockBackResist = 0.5
		this.value = 500
	elseif this.type == 178 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 179 then
		this.width = 40
		this.height = 40
		this.aiStyle = 23
		this.damage = 80
		this.defense = 18
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath6
		this.value = 1000
		this.knockBackResist = 0.4
	elseif this.type == 180 then
		this.width = 44
		this.height = 36
		this.aiStyle = 2
		this.damage = 70
		this.defense = 16
		this.lifeMax = 210
		this.HitSound = SoundID.NPCHit27
		this.DeathSound = SoundID.NPCDeath30
		this.knockBackResist = 0.5
		this.value = 4000
	elseif this.type == 181 then
		this.width = 18
		this.height = 44
		this.aiStyle = 3
		this.damage = 25
		this.defense = 10
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = 200
	elseif this.type == 182 then
		this.noGravity = true
		this.noTileCollide = true
		this.width = 24
		this.height = 62
		this.aiStyle = 22
		this.damage = 65
		this.defense = 18
		this.lifeMax = 240
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.alpha = 100
		this.value = 500
		this.knockBackResist = 0.7
	elseif this.type == 183 then
		this.width = 40
		this.height = 30
		this.aiStyle = 1
		this.damage = 60
		this.defense = 26
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 55
		this.value = 400
		this.scale = 1.1
	elseif this.type == 184 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 12
		this.defense = 8
		this.lifeMax = 60
		this.scale = 1.1
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 50
		this.value = 200
		this.coldDamage = true
	elseif this.type == 185 then
		this.width = 28
		this.height = 28
		this.aiStyle = 3
		this.damage = 26
		this.defense = 12
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 1.1
		this.value = 200
		this.coldDamage = true
	elseif this.type == 186 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 16
		this.defense = 8
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.45
		this.value = 65
	elseif this.type == 187 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 13
		this.defense = 6
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.55
		this.value = 55
	elseif this.type == 188 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 13
		this.defense = 8
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.45
		this.value = 80
	elseif this.type == 189 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 16
		this.defense = 4
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.55
		this.value = 70
	elseif this.type == 190 then
		this.width = 30
		this.height = 32
		this.aiStyle = 2
		this.damage = 18
		this.defense = 4
		this.lifeMax = 65
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.7
		this.DeathSound = SoundID.NPCDeath1
		this.value = 75
	elseif this.type == 191 then
		this.width = 30
		this.height = 32
		this.aiStyle = 2
		this.damage = 16
		this.defense = 2
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.85
		this.DeathSound = SoundID.NPCDeath1
		this.value = 75
	elseif this.type == 192 then
		this.width = 30
		this.height = 32
		this.aiStyle = 2
		this.damage = 18
		this.defense = 2
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath1
		this.value = 75
	elseif this.type == 193 then
		this.width = 30
		this.height = 32
		this.aiStyle = 2
		this.damage = 20
		this.defense = 0
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath1
		this.value = 75
	elseif this.type == 194 then
		this.width = 30
		this.height = 32
		this.aiStyle = 2
		this.damage = 14
		this.defense = 4
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath1
		this.value = 75
	elseif this.type == 195 then
		this.width = 18
		this.height = 40
		this.aiStyle = 42
		this.damage = 10
		this.defense = 30
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.rarity = 1
		this.value = Item.buyPrice(0, 5, 0, 0)
	elseif this.type == 196 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 35
		this.defense = 16
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = Item.buyPrice(0, 5, 0, 0)
		this.rarity = 1
	elseif this.type == 197 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 50
		this.defense = 28
		this.lifeMax = 280
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.45
		this.value = 500
	elseif this.type == 198 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 38
		this.defense = 20
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit26
		this.DeathSound = SoundID.NPCDeath29
		this.knockBackResist = 0.4
		this.value = 650
	elseif this.type == 199 then
		this.width = 42
		this.height = 30
		this.aiStyle = 3
		this.damage = 60
		this.defense = 30
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit26
		this.DeathSound = SoundID.NPCDeath29
		this.knockBackResist = 0
		this.value = 650
	elseif this.type == 200 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 12
		this.defense = 4
		this.lifeMax = 38
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.6
		this.value = 65
	elseif this.type == 201 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 20
		this.defense = 12
		this.lifeMax = 55
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 130
	elseif this.type == 202 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 18
		this.defense = 8
		this.lifeMax = 65
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 120
	elseif this.type == 203 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 22
		this.defense = 8
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 110
	elseif this.type == 204 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 28
		this.defense = 8
		this.lifeMax = 65
		this.scale = 1.15
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 50
		this.value = 300
	elseif this.type == 205 then
		this.width = 40
		this.height = 40
		this.aiStyle = 5
		this.damage = 70
		this.defense = 28
		this.lifeMax = 1000
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.4
		this.DeathSound = SoundID.NPCDeath1
		this.value = 600
		this.noGravity = true
		this.rarity = 2
	elseif this.type == 206 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 60
		this.defense = 30
		this.lifeMax = 280
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.value = 500
		this.coldDamage = true
	elseif this.type == 207 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 208 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 209 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 210 then
		this.width = 12
		this.height = 12
		this.aiStyle = 5
		this.damage = 20
		this.defense = 5
		this.lifeMax = 20
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.5
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
	elseif this.type == 211 then
		this.width = 8
		this.height = 8
		this.aiStyle = 5
		this.damage = 15
		this.defense = 2
		this.lifeMax = 10
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.5
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
	elseif this.type == 212 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 35
		this.defense = 17
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.4
		this.value = 700
	elseif this.type == 213 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 50
		this.defense = 22
		this.lifeMax = 450
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.2
		this.value = 1000
	elseif this.type == 214 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 30
		this.defense = 14
		this.lifeMax = 225
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.3
		this.value = 1000
	elseif this.type == 215 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 35
		this.defense = 20
		this.lifeMax = 350
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.35
		this.value = 1500
	elseif this.type == 216 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 70
		this.defense = 30
		this.lifeMax = 3000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.value = 50000
		this.rarity = 1
	elseif this.type == 217 then
		this.width = 28
		this.height = 20
		this.aiStyle = 3
		this.damage = 20
		this.defense = 10
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath16
		this.value = 60
		this.rarity = 2
	elseif this.type == 218 then
		this.width = 28
		this.height = 20
		this.aiStyle = 3
		this.damage = 20
		this.defense = 10
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath16
		this.value = 60
		this.rarity = 2
	elseif this.type == 219 then
		this.width = 28
		this.height = 20
		this.aiStyle = 3
		this.damage = 20
		this.defense = 10
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath16
		this.value = 60
		this.rarity = 2
	elseif this.type == 220 then
		this.width = 28
		this.height = 20
		this.aiStyle = 3
		this.damage = 20
		this.defense = 10
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 60
		this.rarity = 1
	elseif this.type == 221 then
		this.noGravity = true
		this.width = 26
		this.height = 26
		this.aiStyle = 18
		this.damage = 20
		this.defense = 2
		this.lifeMax = 30
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 100
		this.alpha = 20
		this.rarity = 1
	elseif this.type == 222 then
		this.width = 66
		this.height = 66
		this.aiStyle = 43
		this.damage = 30
		this.defense = 8
		this.lifeMax = 3400
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		SpawnWithHigherTime(30)
		this.boss = true
		this.value = 50000
		this.npcSlots = 7
	elseif this.type == 223 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 16
		this.defense = 8
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.45
		this.value = 70
	elseif this.type == 224 then
		this.width = 32
		this.height = 18
		this.aiStyle = 44
		this.damage = 9
		this.defense = 4
		this.lifeMax = 20
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath1
		this.value = 300
	end
	if this.type == 225 then
		this.width = 38
		this.height = 26
		this.aiStyle = 1
		this.damage = 10
		this.defense = 5
		this.lifeMax = 35
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.75
		this.value = 200
	elseif this.type == 226 then
		this.npcSlots = 0.5
		this.width = 34
		this.height = 50
		this.aiStyle = 14
		this.damage = 85
		this.defense = 28
		this.lifeMax = 260
		this.HitSound = SoundID.NPCHit23
		this.knockBackResist = 0.65
		this.DeathSound = SoundID.NPCDeath26
		this.value = 400
	elseif this.type == 227 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 228 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 229 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 230 then
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 261
	elseif this.type == 231 then
		this.width = 34
		this.height = 32
		this.aiStyle = 5
		this.damage = 22
		this.defense = 16
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.3
		this.DeathSound = SoundID.NPCDeath1
		this.value = 200
		this.noGravity = true
	elseif this.type == 232 then
		this.width = 34
		this.height = 32
		this.aiStyle = 5
		this.damage = 28
		this.defense = 12
		this.lifeMax = 42
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.6
		this.DeathSound = SoundID.NPCDeath1
		this.value = 200
		this.noGravity = true
	elseif this.type == 233 then
		this.width = 34
		this.height = 32
		this.aiStyle = 5
		this.damage = 30
		this.defense = 14
		this.lifeMax = 38
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.45
		this.DeathSound = SoundID.NPCDeath1
		this.value = 200
		this.noGravity = true
	elseif this.type == 234 then
		this.width = 34
		this.height = 32
		this.aiStyle = 5
		this.damage = 32
		this.defense = 6
		this.lifeMax = 42
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.55
		this.DeathSound = SoundID.NPCDeath1
		this.value = 200
		this.noGravity = true
	elseif this.type == 235 then
		this.width = 34
		this.height = 32
		this.aiStyle = 5
		this.damage = 34
		this.defense = 4
		this.lifeMax = 38
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.6
		this.DeathSound = SoundID.NPCDeath1
		this.value = 200
		this.noGravity = true
	elseif this.type == 236 then
		this.width = 50
		this.height = 20
		this.aiStyle = 3
		this.damage = 100
		this.defense = 40
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.25
		this.value = 1000
		SpawnWithHigherTime(2)
		this.npcSlots = 0.75
	elseif this.type == 237 then
		this.noGravity = true
		this.width = 36
		this.height = 36
		this.aiStyle = 40
		this.damage = 100
		this.defense = 40
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.25
		this.value = 1000
		SpawnWithHigherTime(2)
		this.npcSlots = 0.75
	elseif this.type == 239 then
		this.width = 50
		this.height = 20
		this.aiStyle = 3
		this.damage = 30
		this.defense = 8
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit20
		this.DeathSound = SoundID.NPCDeath23
		this.knockBackResist = 0.5
		this.value = 130
		SpawnWithHigherTime(2)
	elseif this.type == 240 then
		this.noGravity = true
		this.width = 36
		this.height = 36
		this.aiStyle = 40
		this.damage = 30
		this.defense = 8
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit20
		this.DeathSound = SoundID.NPCDeath23
		this.knockBackResist = 0.5
		this.value = 130
		SpawnWithHigherTime(2)
	elseif this.type == 241 then
		this.npcSlots = 0.5
		this.noGravity = true
		this.width = 18
		this.height = 20
		this.aiStyle = 16
		this.damage = 50
		this.defense = 20
		this.lifeMax = 150
		this.HitSound = SoundID.NPCHit13
		this.DeathSound = SoundID.NPCDeath19
		this.value = 500
	elseif this.type == 242 then
		this.noGravity = true
		this.width = 26
		this.height = 26
		this.aiStyle = 18
		this.damage = 75
		this.defense = 20
		this.lifeMax = 150
		this.HitSound = SoundID.NPCHit13
		this.DeathSound = SoundID.NPCDeath19
		this.value = 800
		this.alpha = 20
	elseif this.type == 243 then
		this.width = 30
		this.height = 114
		this.aiStyle = 3
		this.damage = 60
		this.defense = 32
		this.lifeMax = 4000
		this.HitSound = SoundID.NPCHit5
		this.DeathSound = SoundID.NPCDeath7
		this.knockBackResist = 0.05
		this.value = Item.buyPrice(0, 1, 50, 0)
		this.coldDamage = true
		this.rarity = 2
	elseif this.type == 244 then
		this.width = 60
		this.height = 42
		this.aiStyle = 1
		this.damage = 85
		this.defense = 26
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 175
		this.value = Item.buyPrice(0, 0, 20, 0)
		this.knockBackResist = 0.3
		this.rarity = 1
	elseif this.type == 245 then
		this.width = 140
		this.height = 140
		this.aiStyle = 45
		this.damage = 72
		this.defense = 26
		this.lifeMax = 9000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.knockBackResist = 0
		this.value = Item.buyPrice(0, 15, 0, 0)
		this.alpha = 255
		this.boss = true
	elseif this.type == 246 then
		this.noGravity = true
		this.width = 70
		this.height = 70
		this.aiStyle = 46
		this.damage = 64
		this.defense = 20
		this.lifeMax = 16000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = nil
		this.knockBackResist = 0
		this.alpha = 255
	elseif this.type == 247 or this.type == 248 then
		this.noGravity = true
		this.width = 40
		this.height = 30
		this.aiStyle = 47
		this.damage = 59
		this.defense = 28
		this.lifeMax = 7000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.alpha = 255
	elseif this.type == 249 then
		this.noGravity = true
		this.width = 70
		this.height = 70
		this.aiStyle = 48
		this.damage = 80
		this.defense = 32
		this.lifeMax = 11000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.knockBackResist = 0
		this.dontTakeDamage = true
	elseif this.type == 250 then
		this.width = 34
		this.height = 26
		this.aiStyle = 49
		this.damage = 50
		this.defense = 24
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit30
		this.DeathSound = SoundID.NPCDeath33
		this.knockBackResist = 0.3
		this.value = 300
	elseif this.type == 251 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 50
		this.defense = 30
		this.lifeMax = 1000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.3
		this.value = Item.buyPrice(0, 0, 50, 0)
		this.rarity = 2
	elseif this.type == 252 then
		this.noGravity = true
		this.npcSlots = 0.5
		this.width = 32
		this.height = 32
		this.aiStyle = 5
		this.damage = 80
		this.defense = 12
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit46
		this.knockBackResist = 0.7
		this.DeathSound = SoundID.NPCDeath48
		this.value = 500
	elseif this.type == 254 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 40
		this.defense = 10
		this.lifeMax = 180
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.4
		this.value = 1000
	elseif this.type == 255 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 38
		this.defense = 16
		this.lifeMax = 220
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.3
		this.value = 1200
	elseif this.type == 256 then
		this.noGravity = true
		this.width = 26
		this.height = 26
		this.aiStyle = 18
		this.damage = 90
		this.defense = 20
		this.lifeMax = 140
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.value = 1200
		this.alpha = 20
		this.npcSlots = 0.3
	elseif this.type == 257 then
		this.width = 44
		this.height = 34
		this.aiStyle = 3
		this.damage = 38
		this.defense = 24
		this.lifeMax = 230
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.3
		this.value = 1300
		this.npcSlots = 0.3
	elseif this.type == 258 then
		this.width = 30
		this.height = 24
		this.aiStyle = 3
		this.damage = 60
		this.defense = 16
		this.lifeMax = 220
		this.HitSound = SoundID.NPCHit45
		this.DeathSound = SoundID.NPCDeath47
		this.knockBackResist = 0.3
		this.value = 1500
		this.npcSlots = 0.3
	elseif this.type == 259 then
		this.noGravity = true
		this.noTileCollide = true
		this.width = 20
		this.height = 20
		this.aiStyle = 13
		this.damage = 24
		this.defense = 4
		this.lifeMax = 90
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0
		this.DeathSound = SoundID.NPCDeath1
		this.value = 350
		this.npcSlots = 0.3
	elseif this.type == 260 then
		this.noGravity = true
		this.noTileCollide = true
		this.width = 36
		this.height = 36
		this.aiStyle = 13
		this.damage = 70
		this.defense = 20
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0
		this.DeathSound = SoundID.NPCDeath1
		this.value = 1250
		this.npcSlots = 0.3
	elseif this.type == 261 then
		this.width = 12
		this.height = 12
		this.aiStyle = 50
		this.damage = 80
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.npcSlots = 0
	elseif this.type == 262 then
		this.noTileCollide = true
		this.width = 86
		this.height = 86
		this.aiStyle = 51
		this.damage = 50
		this.defense = 14
		this.lifeMax = 30000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.value = Item.buyPrice(0, 15, 0, 0)
		this.noGravity = true
		this.boss = true
		this.npcSlots = 16
	elseif this.type == 263 then
		this.noTileCollide = true
		this.noGravity = true
		this.width = 40
		this.height = 40
		this.aiStyle = 52
		this.damage = 60
		this.defense = 24
		this.lifeMax = 4000
		this.dontTakeDamage = true
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
	elseif this.type == 264 then
		this.width = 24
		this.height = 24
		this.aiStyle = 53
		this.damage = 60
		this.defense = 20
		this.lifeMax = 1000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
	elseif this.type == 265 then
		this.width = 18
		this.height = 18
		this.aiStyle = 50
		this.damage = 70
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.npcSlots = 0
	elseif this.type == 266 then
		this.dontTakeDamage = true
		this.width = 160
		this.height = 110
		this.aiStyle = 54
		this.damage = 30
		this.defense = 14
		this.lifeMax = 1000
		this.HitSound = SoundID.NPCHit9
		this.DeathSound = SoundID.NPCDeath11
		this.knockBackResist = 0.5
		this.noGravity = true
		this.noTileCollide = true
		SpawnWithHigherTime(30)
		this.boss = true
		this.value = 50000
		this.npcSlots = 6
	elseif this.type == 267 then
		this.width = 30
		this.height = 30
		this.aiStyle = 55
		this.damage = 20
		this.defense = 10
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit9
		this.DeathSound = SoundID.NPCDeath11
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0.8
	elseif this.type == 268 then
		this.noGravity = true
		this.width = 28
		this.height = 56
		this.aiStyle = 22
		this.damage = 55
		this.defense = 20
		this.lifeMax = 340
		this.HitSound = SoundID.NPCHit13
		this.DeathSound = SoundID.NPCDeath19
		this.knockBackResist = 0.6
		this.value = 450
	elseif this.type == 269 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 70
		this.defense = 34
		this.lifeMax = 550
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.3
		this.value = 1000
	elseif this.type == 270 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 55
		this.defense = 50
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.2
		this.value = 1000
	elseif this.type == 271 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 70
		this.defense = 40
		this.lifeMax = 450
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.25
		this.value = 1000
	elseif this.type == 272 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 75
		this.defense = 28
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.35
		this.value = 1000
	elseif this.type == 273 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 45
		this.defense = 50
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.15
		this.value = 1000
	elseif this.type == 274 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 65
		this.defense = 34
		this.lifeMax = 350
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = 1000
	elseif this.type == 275 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 45
		this.defense = 50
		this.lifeMax = 550
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.15
		this.value = 1000
	elseif this.type == 276 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 85
		this.defense = 54
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.2
		this.value = 1000
	elseif this.type == 277 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 70
		this.defense = 32
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = 1000
	elseif this.type == 278 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 65
		this.defense = 48
		this.lifeMax = 450
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.3
		this.value = 1000
	elseif this.type == 279 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 40
		this.defense = 54
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.2
		this.value = 1000
	elseif this.type == 280 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 75
		this.defense = 34
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = 1000
	elseif this.type == 281 then
		this.width = 18
		this.height = 40
		this.aiStyle = 8
		this.damage = 40
		this.defense = 20
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.6
		this.value = 1500
		this.npcSlots = 2
	elseif this.type == 282 then
		this.width = 18
		this.height = 40
		this.aiStyle = 8
		this.damage = 35
		this.defense = 28
		this.lifeMax = 450
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 1500
		this.npcSlots = 2
	elseif this.type == 283 then
		this.width = 18
		this.height = 40
		this.aiStyle = 8
		this.damage = 50
		this.defense = 18
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.55
		this.value = 1500
		this.npcSlots = 2
	elseif this.type == 284 then
		this.width = 18
		this.height = 40
		this.aiStyle = 8
		this.damage = 35
		this.defense = 24
		this.lifeMax = 450
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 1500
		this.npcSlots = 2
	elseif this.type == 285 then
		this.width = 18
		this.height = 40
		this.aiStyle = 8
		this.damage = 50
		this.defense = 12
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.7
		this.value = 1500
		this.npcSlots = 2
	elseif this.type == 286 then
		this.width = 18
		this.height = 40
		this.aiStyle = 8
		this.damage = 60
		this.defense = 10
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.65
		this.value = 1500
		this.npcSlots = 2
	elseif this.type == 287 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 90
		this.defense = 42
		this.lifeMax = 1000
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.3
		this.value = 2000
		this.rarity = 1
	elseif this.type == 288 then
		this.width = 20
		this.height = 20
		this.aiStyle = 56
		this.damage = 70
		this.defense = 30
		this.lifeMax = 200
		this.knockBackResist = 0.2
		this.HitSound = SoundID.NPCHit36
		this.DeathSound = SoundID.NPCDeath39
		this.value = 500
		this.noTileCollide = true
		this.noGravity = true
	elseif this.type == 289 then
		this.width = 44
		this.height = 44
		this.aiStyle = 10
		this.damage = 60
		this.defense = 20
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.noGravity = true
		this.noTileCollide = true
		this.value = 150
		this.knockBackResist = 0.2
		this.npcSlots = 0.75
	elseif this.type == 290 then
		this.width = 34
		this.height = 62
		this.aiStyle = 3
		this.damage = 100
		this.defense = 50
		this.lifeMax = 5000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0
		this.value = 50000
		this.rarity = 1
	elseif this.type == 291 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 60
		this.defense = 28
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = 1000
		this.rarity = 2
	elseif this.type == 292 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 60
		this.defense = 28
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = 1000
		this.rarity = 2
	elseif this.type == 293 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 60
		this.defense = 28
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = 1000
		this.rarity = 2
	elseif this.type == 294 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 34
		this.defense = 6
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.9
		this.value = 130
	elseif this.type == 295 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 28
		this.defense = 12
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.7
		this.value = 130
	elseif this.type == 296 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 24
		this.defense = 14
		this.lifeMax = 120
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.6
		this.value = 130
	elseif this.type == 299 then
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2018
	elseif this.type == 300 then
		this.width = 14
		this.height = 12
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath4
		this.npcSlots = 0.25
		this.catchItem = 2003
	elseif this.type == 301 then
		this.width = 36
		this.height = 26
		this.aiStyle = 17
		this.damage = 12
		this.defense = 2
		this.lifeMax = 35
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.85
		this.DeathSound = SoundID.NPCDeath1
		this.value = 50
	end
	if this.type == 302 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 7
		this.defense = 2
		this.lifeMax = 25
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 25
	elseif this.type == 304 then
		this.width = 34
		this.height = 28
		this.aiStyle = 1
		this.damage = 80
		this.defense = 20
		this.lifeMax = 175
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 500
		this.scale = 1.1
		this.knockBackResist = 0.5
		this.npcSlots = 0.3
	elseif this.type >= 305 and this.type <= 314 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.value = 1200
		this.npcSlots = 0.5
		if this.type == 305 or this.type == 310 then
			this.damage = 60
			this.defense = 18
			this.lifeMax = 500
			this.knockBackResist = 0.4
		elseif this.type == 306 or this.type == 311 then
			this.damage = 52
			this.defense = 14
			this.lifeMax = 400
			this.knockBackResist = 0.2
			this.scale = 1.05
		elseif this.type == 307 or this.type == 312 then
			this.damage = 78
			this.defense = 16
			this.lifeMax = 600
			this.knockBackResist = 0.25
			this.scale = 0.9
		elseif this.type == 308 or this.type == 313 then
			this.damage = 66
			this.defense = 14
			this.lifeMax = 650
			this.knockBackResist = 0.35
			this.scale = 0.95
		elseif this.type == 309 or this.type == 314 then
			this.damage = 52
			this.defense = 26
			this.lifeMax = 450
			this.knockBackResist = 0.5
			this.scale = 1.1
		end
	elseif this.type == 315 then
		this.width = 74
		this.height = 70
		this.aiStyle = 26
		this.damage = 130
		this.defense = 40
		this.lifeMax = 10000
		this.HitSound = SoundID.NPCHit12
		this.DeathSound = SoundID.NPCDeath18
		this.knockBackResist = 0
		this.value = 10000
	elseif this.type == 316 then
		this.noGravity = true
		this.noTileCollide = true
		this.width = 24
		this.height = 44
		this.aiStyle = 22
		this.damage = 15
		this.defense = 4
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.alpha = 100
		this.value = 90
		this.knockBackResist = 0.5
	elseif this.type == 317 then
		this.width = 30
		this.height = 32
		this.aiStyle = 2
		this.damage = 16
		this.defense = 6
		this.lifeMax = 75
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.7
		this.DeathSound = SoundID.NPCDeath1
		this.value = 100
	elseif this.type == 318 then
		this.width = 30
		this.height = 32
		this.aiStyle = 2
		this.damage = 20
		this.defense = 4
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.65
		this.DeathSound = SoundID.NPCDeath1
		this.value = 100
	elseif this.type == 319 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 20
		this.defense = 6
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.6
		this.value = 85
		this.scale = 0.9
	elseif this.type == 320 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 15
		this.defense = 8
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 105
		this.scale = 1.05
	elseif this.type == 321 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 20
		this.defense = 14
		this.lifeMax = 34
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.3
		this.value = 120
		this.scale = 1.1
	elseif this.type == 322 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 23
		this.defense = 0
		this.lifeMax = 115
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.65
		this.value = 130
	elseif this.type == 323 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 18
		this.defense = 10
		this.lifeMax = 65
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 120
	elseif this.type == 324 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 22
		this.defense = 10
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = 130
		this.scale = 1.05
	elseif this.type == 325 then
		this.width = 164
		this.height = 154
		this.aiStyle = 57
		this.damage = 120
		this.defense = 28
		this.lifeMax = 12000
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath5
		this.knockBackResist = 0
		this.value = 10000
	elseif this.type == 326 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 100
		this.defense = 32
		this.lifeMax = 900
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.2
		this.value = 2000
	elseif this.type == 327 then
		this.width = 100
		this.height = 100
		this.aiStyle = 58
		this.damage = 50
		this.defense = 36
		this.lifeMax = 22000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.value = 50000
		this.knockBackResist = 0
	elseif this.type == 328 then
		this.width = 80
		this.height = 80
		this.aiStyle = 59
		this.damage = 65
		this.defense = 14
		this.lifeMax = 5000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.dontTakeDamage = true
		this.npcSlots = 0
		this.dontCountMe = true
	elseif this.type == 329 then
		this.width = 46
		this.height = 30
		this.aiStyle = 26
		this.damage = 80
		this.defense = 38
		this.lifeMax = 1200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath5
		this.knockBackResist = 0.3
		this.value = 3000
	elseif this.type == 330 then
		this.noGravity = true
		this.noTileCollide = true
		this.width = 24
		this.height = 44
		this.aiStyle = 22
		this.damage = 90
		this.defense = 44
		this.lifeMax = 2000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.alpha = 100
		this.value = 4500
		this.knockBackResist = 0.4
	elseif this.type == 331 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 14
		this.defense = 6
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 60
	elseif this.type == 332 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 14
		this.defense = 6
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 60
	end
	if this.type == 333 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 7
		this.defense = 2
		this.lifeMax = 25
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 25
	end
	if this.type == 334 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 6
		this.defense = 2
		this.lifeMax = 23
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.scale = 0.9
		this.value = 25
	end
	if this.type == 335 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 8
		this.defense = 3
		this.lifeMax = 29
		this.scale = 1.05
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 25
	end
	if this.type == 336 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 5
		this.defense = 1
		this.lifeMax = 22
		this.scale = 0.85
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 25
	elseif this.type >= 338 and this.type <= 340 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 1200
		this.npcSlots = 0.5
		if this.type == 338 then
			this.damage = 65
			this.defense = 18
			this.lifeMax = 600
			this.knockBackResist = 0.4
		elseif this.type == 339 then
			this.damage = 52
			this.defense = 24
			this.lifeMax = 700
			this.knockBackResist = 0.2
			this.scale = 1.05
		elseif this.type == 340 then
			this.damage = 78
			this.defense = 14
			this.lifeMax = 500
			this.knockBackResist = 0.25
			this.scale = 0.9
		end
	elseif this.type == 341 then
		this.width = 24
		this.height = 24
		this.aiStyle = 25
		this.damage = 100
		this.defense = 32
		this.lifeMax = 900
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath6
		this.value = Item.buyPrice(0, 0, 20, 0)
		this.knockBackResist = 0.25
	elseif this.type == 342 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 90
		this.defense = 26
		this.lifeMax = 750
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.2
		this.value = 1800
	elseif this.type == 343 then
		this.width = 38
		this.height = 78
		this.aiStyle = 3
		this.damage = 140
		this.defense = 50
		this.lifeMax = 3500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.value = 3000
		this.npcSlots = 2
	elseif this.type == 344 then
		this.width = 172
		this.height = 130
		this.aiStyle = 57
		this.damage = 110
		this.defense = 38
		this.lifeMax = 13000
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath5
		this.knockBackResist = 0
		this.value = 10000
		this.npcSlots = 3
	elseif this.type == 345 then
		this.width = 130
		this.height = 140
		this.aiStyle = 60
		this.damage = 120
		this.defense = 38
		this.lifeMax = 34000
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath5
		this.knockBackResist = 0
		this.value = 50000
		this.noTileCollide = true
		this.noGravity = true
		this.npcSlots = 5
		this.coldDamage = true
	elseif this.type == 346 then
		this.width = 112
		this.height = 140
		this.aiStyle = 61
		this.damage = 120
		this.defense = 56
		this.lifeMax = 18000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.knockBackResist = 0
		this.value = 10000
		this.npcSlots = 4
	elseif this.type == 347 then
		this.width = 50
		this.height = 50
		this.aiStyle = 62
		this.damage = 60
		this.defense = 28
		this.lifeMax = 1200
		this.HitSound = SoundID.NPCHit4
		this.knockBackResist = 0.4
		this.DeathSound = SoundID.NPCDeath14
		this.value = 1000
		this.noTileCollide = true
		this.noGravity = true
		this.npcSlots = 1.5
	elseif this.type == 348 then
		this.width = 28
		this.height = 76
		this.aiStyle = 3
		this.damage = 80
		this.defense = 26
		this.lifeMax = 1800
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.4
		this.value = 1500
		this.npcSlots = 1.5
	elseif this.type == 349 then
		this.width = 28
		this.height = 76
		this.aiStyle = 3
		this.damage = 100
		this.defense = 42
		this.lifeMax = 1800
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.1
		this.value = 1500
		this.npcSlots = 1.5
	elseif this.type == 350 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 70
		this.defense = 30
		this.lifeMax = 900
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.45
		this.value = 900
	elseif this.type == 351 then
		this.width = 18
		this.height = 90
		this.aiStyle = 3
		this.damage = 100
		this.defense = 40
		this.lifeMax = 2500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.1
		this.value = 3000
		this.npcSlots = 1.75
	elseif this.type == 352 then
		this.width = 54
		this.height = 54
		this.aiStyle = 63
		this.damage = 75
		this.defense = 8
		this.lifeMax = 450
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.value = 500
		this.knockBackResist = 0.4
		this.noGravity = true
		this.noTileCollide = true
		this.npcSlots = 2
		this.coldDamage = true
	elseif this.type == 353 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 354 then
		this.friendly = true
		this.width = 18
		this.height = 34
		this.aiStyle = 0
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.scale = 0.9
		this.rarity = 1
	elseif this.type == 355 then
		this.width = 10
		this.height = 10
		this.aiStyle = 64
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.2
		this.noGravity = true
		this.catchItem = 1992
	elseif this.type == 356 then
		this.width = 10
		this.height = 10
		this.aiStyle = 65
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.25
		this.noGravity = true
		this.catchItem = 1994
	elseif this.type == 357 then
		this.width = 10
		this.height = 4
		this.aiStyle = 66
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.1
		this.catchItem = 2002
		this.friendly = true
	elseif this.type == 358 then
		this.width = 12
		this.height = 12
		this.aiStyle = 64
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.2
		this.noGravity = true
		this.catchItem = 2004
	elseif this.type == 359 then
		this.width = 12
		this.height = 12
		this.aiStyle = 67
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.5
		this.noGravity = true
		this.catchItem = 2006
	elseif this.type == 360 then
		this.width = 14
		this.height = 14
		this.aiStyle = 67
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.5
		this.noGravity = true
		this.catchItem = 2007
	elseif this.type == 361 then
		this.width = 12
		this.height = 10
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2121
	elseif this.type == 362 then
		this.width = 22
		this.height = 26
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2122
	elseif this.type == 363 then
		this.width = 28
		this.height = 22
		this.aiStyle = 68
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2122
	elseif this.type == 364 then
		this.width = 22
		this.height = 26
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2123
	elseif this.type == 365 then
		this.width = 28
		this.height = 22
		this.aiStyle = 68
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2123
	elseif this.type == 366 or this.type == 367 then
		this.width = 26
		this.height = 18
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = (2156 + this.type - 366)
	elseif this.type == 368 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 369 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.5
	elseif this.type == 370 then
		this.width = 150
		this.height = 100
		this.aiStyle = 69
		this.damage = 100
		this.defense = 50
		this.lifeMax = 50000
		this.knockBackResist = 0
		this.noTileCollide = true
		this.noGravity = true
		this.npcSlots = 10
		this.HitSound = SoundID.NPCHit14
		this.DeathSound = SoundID.NPCDeath20
		this.value = 250000
		this.boss = true
		this.netAlways = true
		SpawnWithHigherTime(30)
	elseif this.type == 371 then
		this.width = 36
		this.height = 36
		this.aiStyle = 70
		this.damage = 100
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = SoundID.NPCHit3
		this.DeathSound = SoundID.NPCDeath3
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.alpha = 255
	elseif this.type == 372 then
		this.noGravity = true
		this.width = 120
		this.height = 24
		this.aiStyle = 71
		this.damage = 100
		this.defense = 100
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.alpha = 255
	elseif this.type == 373 then
		this.noGravity = true
		this.width = 100
		this.height = 24
		this.aiStyle = 71
		this.damage = 120
		this.defense = 100
		this.lifeMax = 100
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.alpha = 255
	elseif this.type == 374 then
		this.width = 20
		this.height = 10
		this.aiStyle = 66
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.15
		this.catchItem = 2673
		this.rarity = 4
	elseif this.type == 375 then
		this.width = 10
		this.height = 10
		this.aiStyle = 6
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.npcSlots = 0.15
		this.catchItem = 2673
		this.rarity = 4
	elseif this.type == 376 then
		this.friendly = true
		this.width = 34
		this.height = 8
		this.aiStyle = 0
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.5
		this.scale = 0.9
		this.rarity = 1
	elseif this.type == 377 then
		this.width = 14
		this.height = 10
		this.aiStyle = 1
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.friendly = true
		this.catchItem = 2740
		this.npcSlots = 0.1
	elseif this.type == 378 then
		this.npcSlots = 1
		this.width = 20
		this.height = 26
		this.aiStyle = 41
		this.damage = 200
		this.defense = 30
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.value = 450
	elseif this.type >= 379 and this.type <= 380 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 45
		this.defense = 14
		this.lifeMax = 210
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.55
		this.value = 1000
		this.npcSlots = 0
		this.lavaImmune = true
		this.netAlways = true
		this.chaseable = false
	elseif this.type >= 381 and this.type <= 382 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 50
		this.defense = 25
		this.lifeMax = 350
		this.HitSound = SoundID.NPCHit39
		this.DeathSound = SoundID.NPCDeath57
		this.knockBackResist = 0.35
		this.value = 1000
	elseif this.type == 383 then
		this.lifeMax = 300
		this.defense = 50
		this.damage = 75
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.HitSound = SoundID.NPCHit39
		this.DeathSound = SoundID.NPCDeath57
		this.value = 1200
		this.knockBackResist = 0.25
	elseif this.type == 384 then
		this.lifeMax = 1000
		this.width = 18
		this.defense = 20
		this.height = 40
		this.aiStyle = 72
		this.HitSound = SoundID.NPCHit43
		this.DeathSound = SoundID.NPCDeath45
		this.npcSlots = 0
		this.noTileCollide = true
		this.canGhostHeal = false
	elseif this.type == 385 then
		this.lifeMax = 750
		this.defense = 30
		this.damage = 80
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.HitSound = SoundID.NPCHit39
		this.DeathSound = SoundID.NPCDeath57
		this.value = 600
		this.knockBackResist = 0
		this.npcSlots = 0.75
	elseif this.type == 386 then
		this.lifeMax = 400
		this.defense = 34
		this.damage = 40
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.HitSound = SoundID.NPCHit39
		this.DeathSound = SoundID.NPCDeath57
		this.value = 1200
		this.knockBackResist = 0.4
	elseif this.type == 387 then
		this.width = 20
		this.height = 50
		this.aiStyle = 73
		this.damage = 10
		this.defense = 40
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit53
		this.DeathSound = SoundID.NPCDeath56
		this.knockBackResist = 0
		this.canGhostHeal = false
	elseif this.type == 388 then
		this.width = 40
		this.height = 30
		this.aiStyle = 74
		this.damage = 60
		this.defense = 16
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit42
		this.knockBackResist = 0.4
		this.DeathSound = SoundID.NPCDeath44
		this.value = 1000
		this.noTileCollide = true
		this.noGravity = true
		this.npcSlots = 1.5
		this.canGhostHeal = false
	elseif this.type == 389 then
		this.lifeMax = 600
		this.defense = 38
		this.damage = 75
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.HitSound = SoundID.NPCHit39
		this.DeathSound = SoundID.NPCDeath57
		this.value = 1200
		this.npcSlots = 0.5
		this.knockBackResist = 0.3
	elseif this.type == 390 then
		this.damage = 65
		this.defense = 30
		this.lifeMax = 350
		this.width = 18
		this.height = 40
		this.aiStyle = 75
		this.HitSound = SoundID.NPCHit39
		this.DeathSound = SoundID.NPCDeath57
		this.value = 1200
		this.npcSlots = 0.5
	elseif this.type == 391 then
		this.lifeMax = 600
		this.defense = 30
		this.damage = 85
		this.width = 60
		this.height = 40
		this.aiStyle = 3
		this.HitSound = SoundID.NPCHit51
		this.DeathSound = SoundID.NPCDeath54
		this.value = 1200
		this.npcSlots = 0.5
		this.knockBackResist = 0.1
	elseif this.type == 392 then
		this.lifeMax = 100
		this.defense = 100
		this.damage = 50
		this.width = 150
		this.height = 80
		this.aiStyle = 75
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.value = 0
		this.npcSlots = 0
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.dontTakeDamage = true
		this.netAlways = true
	elseif this.type == 393 then
		this.lifeMax = 5000
		this.defense = 20
		this.damage = 60
		this.width = 40
		this.height = 16
		this.aiStyle = 75
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.value = 0
		this.npcSlots = 1
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.netAlways = true
	elseif this.type == 394 then
		this.lifeMax = 3500
		this.defense = 20
		this.damage = 60
		this.width = 46
		this.height = 36
		this.aiStyle = 75
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.value = 0
		this.npcSlots = 1
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.netAlways = true
	elseif this.type == 395 then
		this.lifeMax = 10000
		this.defense = 0
		this.damage = 80
		this.width = 46
		this.height = 36
		this.aiStyle = 76
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.value = 0
		this.npcSlots = 6
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.dontTakeDamage = true
		this.boss = true
		this.netAlways = true
	elseif this.type == 399 then
		this.defense = 5
		this.damage = 5
		this.lifeMax = 500
		this.aiStyle = 80
		this.width = 42
		this.height = 72
		this.value = 0
		this.knockBackResist = 0
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.npcSlots = 0
		this.noGravity = true
		SpawnWithHigherTime(30)
		this.chaseable = false
		this.netAlways = true
		this.rarity = 1
	elseif this.type == 396 then
		this.lifeMax = 45000
		this.defense = 50
		this.damage = 0
		this.width = 38
		this.height = 56
		this.aiStyle = 79
		this.HitSound = SoundID.NPCHit57
		this.DeathSound = SoundID.NPCDeath62
		this.value = 0
		this.npcSlots = 6
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.boss = true
		this.hide = true
		this.netAlways = true
	elseif this.type == 397 then
		this.lifeMax = 25000
		this.defense = 40
		this.damage = 0
		this.width = 46
		this.height = 66
		this.aiStyle = 78
		this.HitSound = SoundID.NPCHit57
		this.DeathSound = SoundID.NPCDeath62
		this.value = 0
		this.npcSlots = 6
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.boss = true
		this.hide = true
		this.netAlways = true
	elseif this.type == 398 then
		this.lifeMax = 50000
		this.defense = 70
		this.damage = 0
		this.width = 46
		this.height = 66
		this.aiStyle = 77
		this.HitSound = SoundID.NPCHit57
		this.DeathSound = nil
		this.value = 1000000
		this.npcSlots = 6
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.dontTakeDamage = true
		this.boss = true
		this.behindTiles = true
		this.hide = true
		this.netAlways = true
	elseif this.type == 400 then
		this.defense = 0
		this.damage = 60
		this.lifeMax = 100
		this.aiStyle = 81
		this.width = 60
		this.height = 60
		this.value = 0
		this.knockBackResist = 0
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0
		this.noGravity = true
		this.dontTakeDamage = true
		this.noTileCollide = true
		this.netAlways = true
	elseif this.type == 401 then
		this.lifeMax = 400
		this.defense = 0
		this.damage = 0
		this.width = 30
		this.height = 30
		this.aiStyle = 82
		this.HitSound = SoundID.NPCHit57
		this.DeathSound = SoundID.NPCDeath62
		this.value = 0
		this.npcSlots = 0
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.hide = true
	elseif this.type == 437 then
		this.lifeMax = 400
		this.defense = 0
		this.damage = 0
		this.width = 54
		this.height = 54
		this.aiStyle = 83
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.value = 0
		this.npcSlots = 0
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.dontTakeDamage = true
		this.netAlways = true
		this.chaseable = false
	elseif this.type == 438 then
		this.lifeMax = 400
		this.defense = 0
		this.damage = 0
		this.width = 22
		this.height = 40
		this.aiStyle = 83
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 0
		this.npcSlots = 0
		this.knockBackResist = 0
		this.lavaImmune = true
		this.netAlways = true
		this.chaseable = false
	elseif this.type == 439 then
		this.width = 24
		this.height = 50
		this.aiStyle = 84
		this.damage = 50
		this.defense = 42
		this.lifeMax = 32000
		this.knockBackResist = 0
		this.noTileCollide = true
		this.noGravity = true
		this.npcSlots = 10
		this.HitSound = SoundID.NPCHit55
		this.DeathSound = SoundID.NPCDeath59
		this.value = 100000
		this.boss = true
		this.netAlways = true
		SpawnWithHigherTime(30)
	elseif this.type == 440 then
		this.width = 24
		this.height = 50
		this.aiStyle = 84
		this.damage = 0
		this.defense = 35
		this.lifeMax = 10000
		this.knockBackResist = 0
		this.noTileCollide = true
		this.noGravity = true
		this.npcSlots = 0
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.netAlways = true
		SpawnWithHigherTime(30)
		this.chaseable = false
	elseif this.type == 442 then
		this.width = 14
		this.height = 14
		this.aiStyle = 24
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2889
		this.npcSlots = 0.4
		this.rarity = 3
	elseif this.type == 443 then
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2890
		this.rarity = 3
	elseif this.type == 444 then
		this.width = 10
		this.height = 10
		this.aiStyle = 65
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.25
		this.noGravity = true
		this.catchItem = 2891
		this.rarity = 3
	elseif this.type == 445 then
		this.width = 12
		this.height = 10
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 2892
		this.rarity = 3
	elseif this.type == 446 then
		this.width = 14
		this.height = 10
		this.aiStyle = 1
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.friendly = true
		this.catchItem = 2893
		this.npcSlots = 0.1
		this.rarity = 3
	elseif this.type == 447 then
		this.width = 14
		this.height = 12
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath4
		this.npcSlots = 0.25
		this.catchItem = 2894
		this.rarity = 3
	elseif this.type == 448 then
		this.width = 10
		this.height = 4
		this.aiStyle = 66
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.1
		this.catchItem = 2895
		this.friendly = true
		this.rarity = 3
	elseif this.type == 449 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 20
		this.defense = 8
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 100
	elseif this.type == 450 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 20
		this.defense = 12
		this.lifeMax = 55
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 130
	elseif this.type == 451 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 18
		this.defense = 8
		this.lifeMax = 65
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 120
	elseif this.type == 452 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 22
		this.defense = 8
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 110
	elseif this.type == 453 then
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 30
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.npcSlots = 7
		this.rarity = 1
	elseif this.type == 454 then
		this.noTileCollide = true
		this.npcSlots = 5
		this.width = 32
		this.height = 32
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 100
		this.defense = 15
		this.lifeMax = 10000
		this.HitSound = SoundID.NPCHit56
		this.DeathSound = SoundID.NPCDeath60
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 0
		this.scale = 1
		this.alpha = 255
	elseif this.type == 459 then
		this.noTileCollide = true
		this.width = 32
		this.height = 32
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 50
		this.defense = 30
		this.lifeMax = 10000
		this.HitSound = SoundID.NPCHit56
		this.DeathSound = SoundID.NPCDeath60
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 0
		this.scale = 1
		this.alpha = 255
		this.dontCountMe = true
	elseif this.type == 455 or this.type == 456 or this.type == 457 or this.type == 458 then
		this.noTileCollide = true
		this.width = 32
		this.height = 32
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 50
		this.defense = 30
		this.lifeMax = 10000
		this.HitSound = SoundID.NPCHit56
		this.DeathSound = SoundID.NPCDeath60
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 0
		this.scale = 1
		this.alpha = 255
		this.dontCountMe = true
	elseif this.type == 464 then
		this.width = 18
		this.height = 20
		this.aiStyle = 3
		this.damage = 21
		this.defense = 5
		this.lifeMax = 75
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 500
	elseif this.type == 465 then
		this.noGravity = true
		this.width = 18
		this.height = 20
		this.aiStyle = 16
		this.damage = 31
		this.defense = 7
		this.lifeMax = 110
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 500
	elseif this.type == 470 then
		this.width = 16
		this.height = 34
		this.aiStyle = 3
		this.damage = 21
		this.defense = 5
		this.lifeMax = 75
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 500
	elseif this.type == 473 or this.type == 474 or this.type == 475 or this.type == 476 then
		this.width = 28
		this.height = 44
		this.aiStyle = 87
		this.damage = 90
		this.defense = 34
		this.lifeMax = 3500
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath6
		this.value = 30000
		this.knockBackResist = 0.1
		this.rarity = 5
	elseif this.type == 480 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 30
		this.defense = 20
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.15
		this.value = 1000
		this.rarity = 1
	elseif this.type == 481 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 22
		this.defense = 10
		this.lifeMax = 70
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.4
		this.value = 300
	elseif this.type == 482 then
		this.width = 28
		this.height = 48
		this.aiStyle = 3
		this.damage = 30
		this.defense = 18
		this.lifeMax = 110
		this.HitSound = SoundID.NPCHit41
		this.DeathSound = SoundID.NPCDeath43
		this.knockBackResist = 0.35
		this.value = 500
	elseif this.type == 483 then
		this.npcSlots = 0.5
		this.width = 20
		this.height = 30
		this.aiStyle = 91
		this.damage = 24
		this.defense = 8
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit7
		this.knockBackResist = 0.6
		this.DeathSound = SoundID.NPCDeath6
		this.value = 1000
	elseif this.type >= 484 and this.type <= 487 then
		this.width = 10
		this.height = 4
		this.aiStyle = 66
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.1
		this.catchItem = (3191 + this.type - 484)
		this.friendly = true
	elseif this.type == 488 then
		this.width = 18
		this.height = 40
		this.aiStyle = 92
		this.damage = 0
		this.defense = 0
		this.lifeMax = 1000
		this.HitSound = SoundID.NPCHit15
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0
		this.value = 0
		this.immortal = true
		this.netAlways = true
	elseif this.type == 489 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 20
		this.defense = 8
		this.lifeMax = 75
		this.HitSound = SoundID.NPCHit18
		this.DeathSound = SoundID.NPCDeath21
		this.knockBackResist = 0.4
		this.value = 150
	elseif this.type == 490 then
		this.noGravity = true
		this.width = 28
		this.height = 30
		this.aiStyle = 22
		this.damage = 28
		this.defense = 14
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit19
		this.knockBackResist = 0.6
		this.DeathSound = SoundID.NPCDeath22
		this.value = 150
	elseif this.type == 491 then
		this.noGravity = true
		this.width = 350
		this.height = 120
		this.aiStyle = 93
		this.damage = 0
		this.defense = 100
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit19
		this.knockBackResist = 0
		this.DeathSound = SoundID.NPCDeath22
		this.value = 0
		this.dontTakeDamage = true
		this.netAlways = true
	elseif this.type == 492 then
		this.lifeMax = 2000
		this.defense = 20
		this.damage = 30
		this.width = 30
		this.height = 30
		this.aiStyle = 75
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.value = 0
		this.npcSlots = 1
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.hide = true
		this.netAlways = true
	elseif this.type >= 494 and this.type <= 495 then
		this.width = 28
		this.height = 22
		this.aiStyle = 3
		this.damage = 28
		this.defense = 6
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit33
		this.DeathSound = SoundID.NPCDeath36
		this.value = 120
	elseif this.type >= 496 and this.type <= 497 then
		this.width = 28
		this.height = 22
		this.aiStyle = 39
		this.damage = 16
		this.defense = 12
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit38
		this.DeathSound = SoundID.NPCDeath41
		this.knockBackResist = 0.75
		this.value = 120
	elseif this.type >= 498 and this.type <= 506 then
		this.width = 24
		this.height = 44
		this.aiStyle = 3
		this.damage = 18
		this.defense = 10
		this.lifeMax = 65
		this.HitSound = SoundID.NPCHit50
		this.DeathSound = SoundID.NPCDeath53
		this.knockBackResist = 0.45
		this.value = 120
	elseif this.type == 441 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 513 then
		this.npcSlots = 4
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.damage = 18
		this.defense = 0
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 130
	elseif this.type == 514 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 7
		this.defense = 16
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 130
		this.dontCountMe = true
		this.npcSlots = 0
	elseif this.type == 515 then
		this.width = 22
		this.height = 22
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 7
		this.defense = 20
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 130
		this.dontCountMe = true
		this.npcSlots = 0
	elseif this.type == 510 then
		this.npcSlots = 5
		this.width = 34
		this.height = 34
		this.aiStyle = 6
		this.damage = 58
		this.defense = 18
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 700
	elseif this.type == 511 then
		this.width = 34
		this.height = 34
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 54
		this.defense = 28
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 700
		this.dontCountMe = true
		this.npcSlots = 0
	elseif this.type == 512 then
		this.width = 34
		this.height = 34
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 50
		this.defense = 34
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = 700
		this.dontCountMe = true
		this.npcSlots = 0
	elseif this.type == 508 then
		this.width = 50
		this.height = 31
		this.aiStyle = 3
		this.damage = 38
		this.defense = 22
		this.lifeMax = 110
		this.HitSound = SoundID.NPCHit31
		this.DeathSound = SoundID.NPCDeath34
		this.knockBackResist = 0.4
		this.value = 175
	elseif this.type == 509 then
		this.width = 40
		this.height = 31
		this.aiStyle = 44
		this.damage = 34
		this.defense = 18
		this.lifeMax = 90
		this.knockBackResist = 0.3
		this.HitSound = SoundID.NPCHit32
		this.DeathSound = SoundID.NPCDeath35
		this.value = 195
	elseif this.type == 580 then
		this.width = 26
		this.height = 26
		this.aiStyle = 3
		this.damage = 25
		this.defense = 10
		this.lifeMax = 80
		this.HitSound = SoundID.NPCHit31
		this.DeathSound = SoundID.NPCDeath34
		this.knockBackResist = 0.5
		this.value = 80
		this.npcSlots = 0.8
	elseif this.type == 581 then
		this.width = 30
		this.height = 22
		this.aiStyle = 44
		this.damage = 29
		this.defense = 8
		this.lifeMax = 60
		this.knockBackResist = 0.5
		this.HitSound = SoundID.NPCHit32
		this.DeathSound = SoundID.NPCDeath35
		this.value = 90
		this.npcSlots = 0.8
	elseif this.type >= 524 and this.type <= 527 then
		this.width = 24
		this.height = 44
		this.aiStyle = 3
		this.damage = 50
		this.defense = 26
		this.lifeMax = 180
		this.HitSound = SoundID.NPCHit37
		this.DeathSound = SoundID.NPCDeath40
		this.knockBackResist = 0.6
		this.value = 500
		this.npcSlots = 0.5
		if this.type  == 525 then
			this.lifeMax = this.lifeMax + 70
			this.defense = this.defense + 4
			this.damage = this.damage + 10
			this.knockBackResist = this.knockBackResist - 0.1
			this.value = this.value + 150
		elseif this.type  == 526 then
			this.lifeMax = this.lifeMax + 40
			this.defense = this.defense + 6
			this.damage = this.damage + 14
			this.knockBackResist = this.knockBackResist - 0.1
			this.value = this.value + 150
		elseif this.type == 527 then
			this.lifeMax = this.lifeMax + 120
			this.defense = this.defense + 6
			this.damage = this.damage + 4
			this.knockBackResist = this.knockBackResist - 0.2
			this.value = this.value + 250
		end
	elseif this.type >= 528 and this.type <= 529 then
		this.width = 24
		this.height = 44
		this.aiStyle = 3
		this.damage = 52
		this.defense = 28
		this.lifeMax = 350
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.35
		this.value = 600
	elseif this.type == 530 then
		this.width = 50
		this.height = 20
		this.aiStyle = 3
		this.damage = 66
		this.defense = 24
		this.lifeMax = 320
		this.HitSound = SoundID.NPCHit13
		this.DeathSound = SoundID.NPCDeath19
		this.knockBackResist = 0.5
		this.value = 600
		SpawnWithHigherTime(2)
	elseif this.type == 531 then
		this.noGravity = true
		this.width = 36
		this.height = 36
		this.aiStyle = 40
		this.damage = 66
		this.defense = 24
		this.lifeMax = 320
		this.HitSound = SoundID.NPCHit13
		this.DeathSound = SoundID.NPCDeath19
		this.knockBackResist = 0.5
		this.value = 600
		SpawnWithHigherTime(2)
	elseif this.type == 532 then
		this.width = 32
		this.height = 31
		this.aiStyle = 3
		this.damage = 65
		this.defense = 34
		this.lifeMax = 270
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.3
		this.value = 800
		this.npcSlots = 0.75
	elseif this.type == 533 then
		this.width = 28
		this.height = 62
		this.aiStyle = 8
		this.damage = 40
		this.defense = 20
		this.lifeMax = 220
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0
		this.value = 1200
		this.npcSlots = 2
	elseif this.type == 493 then
		this.lifeMax = 20000
		this.defense = 20
		this.damage = 0
		this.width = 130
		this.height = 270
		this.aiStyle = 94
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 0
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.npcSlots = 0
	elseif this.type == 402 then
		this.noTileCollide = true
		this.npcSlots = 1
		this.width = 32
		this.height = 32
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 80
		this.defense = 10
		this.lifeMax = 1200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 0
		this.scale = 1
	elseif this.type == 405 then
		this.width = 44
		this.height = 44
		this.aiStyle = 85
		this.damage = 120
		this.defense = 50
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.noGravity = true
		this.npcSlots = 2
	elseif this.type == 406 then
		this.width = 22
		this.height = 22
		this.aiStyle = 95
		this.damage = 70
		this.defense = 0
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.4
		this.noGravity = true
	elseif this.type == 411 then
		this.width = 22
		this.height = 56
		this.aiStyle = 3
		this.damage = 80
		this.defense = 34
		this.lifeMax = 700
		this.HitSound = SoundID.NPCHit6
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.4
	elseif this.type == 409 then
		this.width = 34
		this.height = 42
		this.aiStyle = 3
		this.damage = 70
		this.defense = 40
		this.lifeMax = 800
		this.HitSound = SoundID.NPCHit6
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.4
		this.npcSlots = 3
	elseif this.type == 410 then
		this.width = 22
		this.height = 22
		this.aiStyle = 26
		this.damage = 80
		this.defense = 10
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath5
		this.knockBackResist = 0.3
		this.npcSlots = 0.5
	elseif this.type == 407 then
		this.width = 40
		this.height = 60
		this.aiStyle = 96
		this.damage = 70
		this.defense = 38
		this.lifeMax = 1500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.knockBackResist = 0.03
		this.npcSlots = 3
	elseif this.type == 507 then
		this.lifeMax = 20000
		this.defense = 20
		this.damage = 0
		this.width = 130
		this.height = 270
		this.aiStyle = 94
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 0
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.npcSlots = 0
	elseif this.type == 423 then
		this.width = 50
		this.height = 44
		this.aiStyle = 26
		this.damage = 90
		this.defense = 46
		this.lifeMax = 850
		this.HitSound = SoundID.NPCHit6
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.2
		this.npcSlots = 1
	elseif this.type == 421 then
		this.width = 44
		this.height = 44
		this.aiStyle = 85
		this.damage = 70
		this.defense = 34
		this.lifeMax = 330
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.noGravity = true
		this.npcSlots = 1
	elseif this.type == 424 then
		this.width = 22
		this.height = 56
		this.aiStyle = 3
		this.damage = 80
		this.defense = 30
		this.lifeMax = 700
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath5
		this.knockBackResist = 0.6
		this.npcSlots = 2
	elseif this.type == 420 then
		this.width = 40
		this.height = 40
		this.aiStyle = 97
		this.damage = 75
		this.defense = 20
		this.lifeMax = 1300
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.noTileCollide = true
		this.noGravity = true
		this.npcSlots = 3
	elseif this.type == 422 then
		this.lifeMax = 20000
		this.defense = 20
		this.damage = 0
		this.width = 130
		this.height = 270
		this.aiStyle = 94
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 0
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.npcSlots = 0
	elseif this.type == 425 then
		this.width = 30
		this.height = 56
		this.aiStyle = 3
		this.damage = 100
		this.defense = 40
		this.lifeMax = 800
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.4
	elseif this.type == 429 then
		this.width = 22
		this.height = 56
		this.aiStyle = 3
		this.damage = 90
		this.defense = 34
		this.lifeMax = 700
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath5
		this.knockBackResist = 0.6
		this.npcSlots = 2
	elseif this.type == 428 then
		this.width = 24
		this.height = 26
		this.aiStyle = 3
		this.damage = 50
		this.defense = 6
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
	elseif this.type == 427 then
		this.width = 40
		this.height = 28
		this.aiStyle = 3
		this.damage = 75
		this.defense = 20
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.5
		this.npcSlots = 0.5
	elseif this.type == 426 then
		this.width = 50
		this.height = 62
		this.aiStyle = 3
		this.damage = 100
		this.defense = 44
		this.lifeMax = 1000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.3
	elseif this.type == 517 then
		this.lifeMax = 20000
		this.defense = 20
		this.damage = 0
		this.width = 130
		this.height = 270
		this.aiStyle = 94
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 0
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.npcSlots = 0
	elseif this.type == 412 then
		this.width = 20
		this.height = 20
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 150
		this.defense = 1000
		this.lifeMax = 10000
		this.HitSound = SoundID.NPCHit11
		this.DeathSound = SoundID.NPCDeath22
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.dontTakeDamage = true
		this.npcSlots = 2
	elseif this.type == 413 then
		this.width = 20
		this.height = 20
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 100
		this.defense = 1000
		this.lifeMax = 10000
		this.HitSound = SoundID.NPCHit11
		this.DeathSound = SoundID.NPCDeath22
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.dontCountMe = true
		this.dontTakeDamage = true
		this.npcSlots = 0
	elseif this.type == 414 then
		this.width = 20
		this.height = 20
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 50
		this.defense = 0
		this.lifeMax = 10000
		this.HitSound = SoundID.NPCHit8
		this.DeathSound = SoundID.NPCDeath22
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.dontCountMe = true
		this.takenDamageMultiplier = 10
		this.npcSlots = 0
	elseif this.type == 415 then
		this.lifeMax = 800
		this.defense = 32
		this.damage = 55
		this.width = 60
		this.height = 40
		this.aiStyle = 3
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.2
	elseif this.type == 416 then
		this.damage = 80
		this.defense = 28
		this.lifeMax = 800
		this.width = 18
		this.height = 40
		this.aiStyle = 75
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.2
	elseif this.type == 518 then
		this.lifeMax = 1000
		this.defense = 28
		this.damage = 80
		this.width = 22
		this.height = 56
		this.aiStyle = 3
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.4
	elseif this.type == 417 then
		this.npcSlots = 2
		this.width = 46
		this.height = 52
		this.aiStyle = 39
		this.damage = 80
		this.defense = 34
		this.lifeMax = 700
		this.HitSound = SoundID.NPCHit7
		this.knockBackResist = 0
		this.DeathSound = SoundID.NPCDeath5
	elseif this.type == 418 then
		this.width = 38
		this.height = 38
		this.aiStyle = 74
		this.damage = 70
		this.defense = 26
		this.lifeMax = 600
		this.HitSound = SoundID.NPCHit3
		this.DeathSound = SoundID.NPCDeath3
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0.2
	elseif this.type == 419 then
		this.lifeMax = 800
		this.defense = 30
		this.damage = 90
		this.width = 22
		this.height = 56
		this.aiStyle = 3
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.4
	elseif this.type == 516 then
		this.width = 26
		this.height = 26
		this.aiStyle = 9
		this.damage = 100
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = nil
		this.DeathSound = nil
		this.noGravity = true
		this.noTileCollide = false
		this.alpha = 0
		this.knockBackResist = 0
	elseif this.type == 519 then
		this.width = 26
		this.height = 26
		this.aiStyle = 99
		this.damage = 120
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = nil
		this.DeathSound = nil
		this.noGravity = true
		this.noTileCollide = false
		this.alpha = 0
		this.knockBackResist = 0
	elseif this.type == 162 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 65
		this.defense = 18
		this.lifeMax = 350
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.3
		this.value = 600
	elseif this.type == 166 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 70
		this.defense = 26
		this.lifeMax = 450
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.2
		this.value = 1000
	elseif this.type == 253 then
		this.noGravity = true
		this.noTileCollide = true
		this.width = 24
		this.height = 44
		this.aiStyle = 22
		this.damage = 80
		this.defense = 22
		this.lifeMax = 700
		this.HitSound = SoundID.NPCHit49
		this.DeathSound = SoundID.NPCDeath51
		this.alpha = 100
		this.value = 1500
		this.knockBackResist = 0.6
	elseif this.type == 158 then
		this.npcSlots = 2
		this.width = 22
		this.height = 22
		this.aiStyle = 14
		this.damage = 60
		this.defense = 32
		this.lifeMax = 750
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.75
		this.DeathSound = SoundID.NPCDeath6
		this.value = 5000
	elseif this.type == 159 then
		this.npcSlots = 2
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 80
		this.defense = 24
		this.lifeMax = 750
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.4
		this.value = 5000
	elseif this.type == 460 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 70
		this.defense = 30
		this.lifeMax = 700
		this.HitSound = SoundID.NPCHit7
		this.DeathSound = SoundID.NPCDeath17
		this.knockBackResist = 0.25
		this.value = 1000
	elseif this.type == 461 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 60
		this.defense = 22
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.3
		this.value = 1000
	elseif this.type == 462 then
		this.width = 20
		this.height = 24
		this.aiStyle = 3
		this.damage = 70
		this.defense = 14
		this.lifeMax = 270
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.7
		this.value = 600
		this.npcSlots = 0.5
	elseif this.type == 463 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 100
		this.defense = 34
		this.lifeMax = 4000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.1
		this.value = 3000
	elseif this.type == 466 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 70
		this.defense = 40
		this.lifeMax = 550
		this.HitSound = SoundID.NPCHit48
		this.DeathSound = SoundID.NPCDeath50
		this.knockBackResist = 0.5
		this.value = 1500
	elseif this.type == 467 then
		this.width = 22
		this.height = 22
		this.aiStyle = 85
		this.damage = 100
		this.defense = 80
		this.lifeMax = 350
		this.HitSound = SoundID.NPCHit34
		this.DeathSound = SoundID.NPCDeath37
		this.value = 900
		this.knockBackResist = 0.7
		this.noGravity = true
	elseif this.type == 469 then
		this.width = 38
		this.height = 26
		this.aiStyle = 3
		this.damage = 68
		this.defense = 28
		this.lifeMax = 600
		this.HitSound = SoundID.NPCHit47
		this.DeathSound = SoundID.NPCDeath49
		this.knockBackResist = 0.35
		this.value = 1300
	elseif this.type == 468 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 65
		this.defense = 24
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit35
		this.DeathSound = SoundID.NPCDeath38
		this.knockBackResist = 0.6
		this.value = 1300
	elseif this.type == 477 then
		this.noGravity = true
		this.netAlways = true
		this.width = 80
		this.height = 50
		this.aiStyle = 88
		this.damage = 80
		this.defense = 30
		this.lifeMax = 6000
		this.HitSound = SoundID.NPCHit44
		this.DeathSound = SoundID.NPCDeath46
		this.value = 50000
		this.knockBackResist = 0.2
		this.rarity = 1
	elseif this.type == 478 then
		this.width = 34
		this.height = 34
		this.aiStyle = 89
		this.damage = 0
		this.defense = 30
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 0
		this.knockBackResist = 0.7
		this.npcSlots = 0
	elseif this.type == 479 then
		this.width = 46
		this.height = 30
		this.aiStyle = 90
		this.damage = 50
		this.defense = 14
		this.lifeMax = 700
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.3
		this.value = 0
		this.npcSlots = 0.1
	elseif this.type == 26 then
		this.scale = 0.9
		this.width = 18
		this.height = 38
		this.aiStyle = 3
		this.damage = 12
		this.defense = 4
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.8
		this.value = 100
	elseif this.type == 27 then
		this.scale = 0.95
		this.width = 18
		this.height = 38
		this.aiStyle = 3
		this.damage = 20
		this.defense = 6
		this.lifeMax = 80
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.7
		this.value = 200
	elseif this.type == 28 then
		this.scale = 1.1
		this.width = 18
		this.height = 38
		this.aiStyle = 3
		this.damage = 25
		this.defense = 8
		this.lifeMax = 110
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.value = 150
	elseif this.type == 29 then
		this.width = 18
		this.height = 38
		this.aiStyle = 8
		this.damage = 20
		this.defense = 2
		this.lifeMax = 40
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.6
		this.value = 200
	elseif this.type == 30 then
		this.width = 16
		this.height = 16
		this.aiStyle = 9
		this.damage = 20
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = SoundID.NPCHit3
		this.DeathSound = SoundID.NPCDeath3
		this.noGravity = true
		this.noTileCollide = true
		this.alpha = 100
		this.knockBackResist = 0
	elseif this.type == 111 then
		this.scale = 0.95
		this.width = 18
		this.height = 38
		this.aiStyle = 3
		this.damage = 20
		this.defense = 6
		this.lifeMax = 80
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.7
		this.value = 200
	elseif this.type == 471 then
		this.width = 18
		this.height = 38
		this.aiStyle = 3
		this.damage = 80
		this.defense = 26
		this.lifeMax = 2000
		this.HitSound = SoundID.NPCHit40
		this.DeathSound = SoundID.NPCDeath42
		this.knockBackResist = 0.15
		this.value = 5000
		this.rarity = 1
	elseif this.type == 472 then
		this.width = 40
		this.height = 24
		this.aiStyle = 86
		this.damage = 50
		this.defense = 18
		this.lifeMax = 180
		this.HitSound = SoundID.NPCHit52
		this.DeathSound = SoundID.NPCDeath55
		this.knockBackResist = 0
		this.value = 0
		this.npcSlots = 0.1
	elseif this.type == 520 then
		this.width = 34
		this.height = 110
		this.aiStyle = 3
		this.damage = 60
		this.defense = 40
		this.lifeMax = 2000
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath14
		this.knockBackResist = 0
	elseif this.type == 521 then
		this.width = 60
		this.height = 60
		this.aiStyle = 86
		this.damage = 90
		this.defense = 30
		this.lifeMax = 2000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0
	elseif this.type == 522 then
		this.width = 26
		this.height = 26
		this.aiStyle = 100
		this.damage = 120
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = nil
		this.DeathSound = nil
		this.noGravity = true
		this.noTileCollide = true
		this.alpha = 0
		this.knockBackResist = 0
		this.chaseable = false
	elseif this.type == 523 then
		this.width = 42
		this.height = 42
		this.aiStyle = 101
		this.damage = 30
		this.defense = 0
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.noGravity = true
		this.noTileCollide = true
		this.alpha = 0
		this.knockBackResist = 0
		this.chaseable = false
		this.alpha = 255
		this.canGhostHeal = false
	elseif this.type == 534 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 14
		this.defense = 20
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.3
		this.value = 0
		this.lavaImmune = true
		this.netAlways = true
		this.rarity = 1
	elseif this.type == 535 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 14
		this.defense = 5
		this.lifeMax = 50
		this.scale = 1.1
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 0
		this.value = 40
	elseif this.type == 536 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 14
		this.defense = 8
		this.lifeMax = 200
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 1000
		this.rarity = 2
	elseif this.type == 537 then
		this.npcSlots = 2
		this.width = 30
		this.height = 24
		this.aiStyle = 1
		this.damage = 15
		this.defense = 5
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.alpha = 50
		-- this.color = new Color(255, 250, 0, 0) * 0.2
		this.value = 75
		this.knockBackResist = 0.7
	elseif this.type == 538 then
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 3563
	elseif this.type == 539 then
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 3564
		this.rarity = 3
	elseif this.type == 541 then
		this.width = 30
		this.height = 76
		this.aiStyle = 102
		this.damage = 40
		this.defense = 30
		this.lifeMax = 5000
		this.HitSound = SoundID.NPCHit23
		this.DeathSound = SoundID.NPCDeath39
		this.knockBackResist = 0.05
		this.value = Item.buyPrice(0, 1, 50, 0)
		this.rarity = 2
	elseif this.type == 542 then
		this.noGravity = true
		this.width = 100
		this.height = 24
		this.aiStyle = 103
		this.damage = 50
		this.defense = 20
		this.lifeMax = 360
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 400
		this.knockBackResist = 0.9
		this.behindTiles = true
	elseif this.type == 543 then
		this.noGravity = true
		this.width = 100
		this.height = 24
		this.aiStyle = 103
		this.damage = 60
		this.defense = 24
		this.lifeMax = 380
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 400
		this.knockBackResist = 0.8
		this.behindTiles = true
	elseif this.type == 544 then
		this.noGravity = true
		this.width = 100
		this.height = 24
		this.aiStyle = 103
		this.damage = 64
		this.defense = 22
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 400
		this.knockBackResist = 0.8
		this.behindTiles = true
	elseif this.type == 545 then
		this.noGravity = true
		this.width = 100
		this.height = 24
		this.aiStyle = 103
		this.damage = 54
		this.defense = 26
		this.lifeMax = 450
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 400
		this.knockBackResist = 0.7
		this.behindTiles = true
	elseif this.type == 546 then
		this.width = 30
		this.height = 30
		this.aiStyle = 26
		this.damage = 30
		this.defense = 6
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit11
		this.DeathSound = SoundID.NPCDeath15
		this.knockBackResist = 0.8
		this.value = 100
	elseif this.type == 547 then
		this.width = 16
		this.height = 16
		this.aiStyle = 104
		this.defense = 10
		this.lifeMax = 10
		this.HitSound = SoundID.NPCHit11
		this.DeathSound = SoundID.NPCDeath15
		this.knockBackResist = 1
		this.noGravity = true
		this.noTileCollide = true
	elseif this.type == 548 then
		this.width = 40
		this.height = 40
		this.aiStyle = 105
		this.defense = 14
		this.lifeMax = 1000
		this.HitSound = SoundID.DD2_CrystalCartImpact
		this.DeathSound = SoundID.NPCDeath15
		this.knockBackResist = 0
		this.friendly = true
		this.npcSlots = 0
		this.hide = true
		if Main.hardMode and NPC.downedMechBossAny then
			this.defense = 18
			this.lifeMax = 3000
		end
		if NPC.downedGolemBoss and Main.hardMode then
			this.defense = 20
			this.lifeMax = 5000
		end
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 549 then
		this.lifeMax = 5
		this.defense = 20
		this.damage = 0
		this.width = 78
		this.height = 130
		this.aiStyle = 106
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.value = 0
		this.knockBackResist = 0
		this.noGravity = true
		this.noTileCollide = true
		this.npcSlots = 0
		this.behindTiles = true
		this.dontTakeDamage = true
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 552 then
		this.lifeMax = 30
		this.defense = 14
		this.damage = 18
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_GoblinHurt
		this.DeathSound = SoundID.DD2_GoblinDeath
		this.knockBackResist = 0.2
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 553 then
		this.lifeMax = 170
		this.defense = 20
		this.damage = 46
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_GoblinHurt
		this.DeathSound = SoundID.DD2_GoblinDeath
		this.knockBackResist = 0.2
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 554 then
		this.lifeMax = 560
		this.defense = 28
		this.damage = 70
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_GoblinHurt
		this.DeathSound = SoundID.DD2_GoblinDeath
		this.knockBackResist = 0.15
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 561 then
		this.lifeMax = 60
		this.defense = 18
		this.damage = 30
		this.width = 26
		this.height = 52
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_JavelinThrowersHurt
		this.DeathSound = SoundID.DD2_JavelinThrowersDeath
		this.knockBackResist = 0.1
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 562 then
		this.lifeMax = 300
		this.defense = 28
		this.damage = 60
		this.width = 26
		this.height = 52
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_JavelinThrowersHurt
		this.DeathSound = SoundID.DD2_JavelinThrowersDeath
		this.knockBackResist = 0.1
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 563 then
		this.lifeMax = 1000
		this.defense = 38
		this.damage = 80
		this.width = 26
		this.height = 52
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_JavelinThrowersHurt
		this.DeathSound = SoundID.DD2_JavelinThrowersDeath
		this.knockBackResist = 0.05
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 555 then
		this.lifeMax = 50
		this.defense = 16
		this.damage = 26
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_GoblinBomberHurt
		this.DeathSound = SoundID.DD2_GoblinBomberDeath
		this.knockBackResist = 0.2
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 556 then
		this.lifeMax = 200
		this.defense = 26
		this.damage = 55
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_GoblinBomberHurt
		this.DeathSound = SoundID.DD2_GoblinBomberDeath
		this.knockBackResist = 0.2
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 557 then
		this.lifeMax = 700
		this.defense = 34
		this.damage = 75
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_GoblinBomberHurt
		this.DeathSound = SoundID.DD2_GoblinBomberDeath
		this.knockBackResist = 0.15
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 558 then
		this.width = 38
		this.height = 38
		this.aiStyle = 108
		this.damage = 30
		this.defense = 4
		this.lifeMax = 60
		this.HitSound = SoundID.DD2_WyvernHurt
		this.DeathSound = SoundID.DD2_WyvernDeath
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0.2
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 559 then
		this.width = 38
		this.height = 38
		this.aiStyle = 108
		this.damage = 75
		this.defense = 16
		this.lifeMax = 180
		this.HitSound = SoundID.DD2_WyvernHurt
		this.DeathSound = SoundID.DD2_WyvernDeath
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0.2
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 560 then
		this.width = 38
		this.height = 38
		this.aiStyle = 108
		this.damage = 100
		this.defense = 30
		this.lifeMax = 600
		this.HitSound = SoundID.DD2_WyvernHurt
		this.DeathSound = SoundID.DD2_WyvernDeath
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0.05
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 550 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 576 then
		this.lifeMax = 5000
		this.defense = 34
		this.damage = 70
		this.width = 96
		this.height = 124
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_OgreHurt
		this.DeathSound = SoundID.DD2_OgreDeath
		this.knockBackResist = 0
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 577 then
		this.lifeMax = 13000
		this.defense = 40
		this.damage = 90
		this.width = 96
		this.height = 124
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_OgreHurt
		this.DeathSound = SoundID.DD2_OgreDeath
		this.knockBackResist = 0
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 568 then
		this.lifeMax = 500
		this.defense = 30
		this.damage = 50
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_WitherBeastHurt
		this.DeathSound = SoundID.DD2_WitherBeastDeath
		this.knockBackResist = 0.15
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 569 then
		this.lifeMax = 1400
		this.defense = 40
		this.damage = 80
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_WitherBeastHurt
		this.DeathSound = SoundID.DD2_WitherBeastDeath
		this.knockBackResist = 0.05
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 566 then
		this.lifeMax = 25
		this.defense = 12
		this.damage = 18
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_SkeletonHurt
		this.DeathSound = SoundID.DD2_SkeletonDeath
		this.knockBackResist = 0.3
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 567 then
		this.lifeMax = 480
		this.defense = 22
		this.damage = 70
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_SkeletonHurt
		this.DeathSound = SoundID.DD2_SkeletonDeath
		this.knockBackResist = 0.2
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 572 then
		this.lifeMax = 260
		this.defense = 26
		this.damage = 60
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_KoboldHurt
		this.DeathSound = SoundID.DD2_KoboldDeath
		this.knockBackResist = 0.2
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 573 then
		this.lifeMax = 800
		this.defense = 32
		this.damage = 80
		this.width = 18
		this.height = 40
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_KoboldHurt
		this.DeathSound = SoundID.DD2_KoboldDeath
		this.knockBackResist = 0.1
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 570 then
		this.lifeMax = 900
		this.defense = 30
		this.damage = 60
		this.width = 42
		this.height = 58
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_DrakinHurt
		this.DeathSound = SoundID.DD2_DrakinDeath
		this.knockBackResist = 0
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 571 then
		this.lifeMax = 3000
		this.defense = 40
		this.damage = 90
		this.width = 42
		this.height = 58
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_DrakinHurt
		this.DeathSound = SoundID.DD2_DrakinDeath
		this.knockBackResist = 0
		this.value = 0
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 564 then
		this.lifeMax = 800
		this.defense = 18
		this.damage = 40
		this.width = 34
		this.height = 62
		this.aiStyle = 109
		this.HitSound = SoundID.DD2_DarkMageHurt
		this.DeathSound = SoundID.DD2_DarkMageDeath
		this.knockBackResist = 0
		this.value = 0
		this.npcSlots = 0
		this.noGravity = true
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 565 then
		this.lifeMax = 4000
		this.defense = 38
		this.damage = 90
		this.width = 34
		this.height = 62
		this.aiStyle = 109
		this.HitSound = SoundID.DD2_DarkMageHurt
		this.DeathSound = SoundID.DD2_DarkMageDeath
		this.knockBackResist = 0
		this.value = 0
		this.npcSlots = 0
		this.noGravity = true
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 574 then
		this.width = 38
		this.height = 38
		this.aiStyle = 108
		this.damage = 50
		this.defense = 16
		this.lifeMax = 170
		this.HitSound = SoundID.DD2_KoboldFlyerHurt
		this.DeathSound = SoundID.DD2_KoboldFlyerDeath
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0.4
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 575 then
		this.width = 38
		this.height = 38
		this.aiStyle = 108
		this.damage = 80
		this.defense = 32
		this.lifeMax = 580
		this.HitSound = SoundID.DD2_KoboldFlyerHurt
		this.DeathSound = SoundID.DD2_KoboldFlyerDeath
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0.25
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 551 then
		this.damage = 80
		this.defense = 38
		this.lifeMax = 50000
		this.width = 190
		this.height = 90
		this.aiStyle = 110
		this.HitSound = SoundID.DD2_BetsyHurt
		this.DeathSound = SoundID.DD2_BetsyDeath
		this.knockBackResist = 0
		this.value = 0
		this.noGravity = true
		this.noTileCollide = true
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 578 then
		this.width = 30
		this.height = 24
		this.aiStyle = 111
		this.damage = 80
		this.defense = 36
		this.lifeMax = 500
		this.HitSound = SoundID.DD2_LightningBugHurt
		this.DeathSound = SoundID.DD2_LightningBugDeath
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0.8
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
	elseif this.type == 579 then
		this.friendly = true
		this.width = 34
		this.height = 8
		this.aiStyle = 0
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.5
		this.scale = 1
		this.rarity = 1
	elseif this.type == 582 then
		this.width = 18
		this.height = 18
		this.aiStyle = 3
		this.damage = 10
		this.defense = 4
		this.lifeMax = 35
		this.HitSound = SoundID.NPCHit31
		this.DeathSound = SoundID.NPCDeath34
		this.knockBackResist = 0.75
		this.value = 40
		this.npcSlots = 0.4
	elseif this.type == 583 or this.type == 584 or this.type == 585 then
		this.width = 18
		this.height = 20
		this.aiStyle = 112
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		if this.type == 583 then
			this.catchItem = 4068
		elseif this.type == 584 then
			this.catchItem = 4069
		elseif this.type == 585 then
			this.catchItem = 4070
		end
		this.noGravity = true
		this.rarity = 2
	elseif this.type == 586 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 40
		this.defense = 20
		this.lifeMax = 400
		this.HitSound = SoundID.NPCHit18
		this.DeathSound = SoundID.NPCDeath21
		this.knockBackResist = 0
		this.value = 1000
		this.alpha = 255
		this.rarity = 1
	elseif this.type == 587 then
		this.width = 32
		this.height = 18
		this.aiStyle = 44
		this.damage = 35
		this.defense = 18
		this.lifeMax = 300
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0
		this.DeathSound = SoundID.NPCDeath1
		this.value = 1000
		this.alpha = 255
		this.rarity = 1
	elseif this.type == 588 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 589 then
		this.friendly = true
		this.width = 18
		this.height = 34
		this.aiStyle = 0
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.rarity = 1
	elseif this.type == 590 or this.type == 591 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 14
		this.defense = 6
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 60
	elseif this.type == 592 then
		this.noGravity = true
		this.width = 20
		this.height = 18
		this.aiStyle = 16
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.catchItem = 4274
		this.rarity = 3
	elseif this.type == 593 then
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 4274
		this.rarity = 3
	elseif this.type == 594 then
		this.width = 20
		this.height = 20
		this.aiStyle = 113
		this.damage = 0
		this.defense = 0
		this.knockBackResist = 0.3
		this.lifeMax = 1
		this.DeathSound = SoundID.NPCDeath63
		this.value = 0
		this.noGravity = true
	elseif this.type >= 595 and this.type <= 601 then
		this.timeLeft = this.timeLeft * 3
		this.width = 10
		this.height = 10
		this.aiStyle = 114
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.25
		this.noGravity = true
		if this.type == 601 then
			this.rarity = 3
		end
		this.catchItem = (this.type - 595 + 4334)
	elseif this.type == 602 then
		this.width = 22
		this.height = 26
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 4359
	elseif this.type == 603 then
		this.width = 28
		this.height = 22
		this.aiStyle = 68
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 4359
	elseif this.type == 604 or this.type == 605 then
		this.width = 10
		this.height = 10
		this.aiStyle = 115
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.25
		this.noGravity = true
		if this.type == 605 then
			this.rarity = 3
		end
		this.catchItem = (this.type - 604 + 4361)
	elseif this.type == 606 then
		this.width = 10
		this.height = 4
		this.aiStyle = 66
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.1
		this.catchItem = 4363
		this.friendly = true
	elseif this.type == 607 then
		this.noGravity = true
		this.width = 20
		this.height = 18
		this.aiStyle = 16
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.catchItem = 4373
	elseif this.type == 608 then
		this.width = 22
		this.height = 26
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 4374
	elseif this.type == 609 then
		this.width = 28
		this.height = 22
		this.aiStyle = 68
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 4374
	elseif this.type == 610 then
		this.width = 14
		this.height = 12
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath4
		this.npcSlots = 0.25
		this.catchItem = 4375
	elseif this.type == 611 then
		this.width = 18
		this.height = 34
		this.aiStyle = 24
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = 4395
		this.npcSlots = 0.4
	elseif this.type == 612 or this.type == 613 then
		this.width = 10
		this.height = 10
		this.aiStyle = 116
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.25
		if this.type == 613 then
			this.rarity = 3
		end
		this.catchItem = (this.type - 612 + 4418)
		this.waterMovementSpeed = 1
		this.lavaMovementSpeed = 1
		this.honeyMovementSpeed = 1
	elseif this.type == 614 then
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = nil
		this.catchItem = 1338
	elseif this.type == 615 then
		this.noGravity = true
		this.width = 20
		this.height = 18
		this.aiStyle = 16
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 616 or this.type == 617 then
		this.width = 22
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
		this.catchItem = (this.type - 616 + 4464)
	elseif this.type == 618 then
		this.noGravity = true
		this.width = 100
		this.height = 100
		this.aiStyle = 117
		this.damage = 55
		this.defense = 24
		this.lifeMax = 7000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.value = Item.buyPrice(0, 2, 0, 0)
		this.noTileCollide = true
		this.rarity = 1
	elseif this.type == 619 then
		this.npcSlots = 1
		this.width = 44
		this.height = 44
		this.aiStyle = 5
		this.damage = 60
		this.defense = 16
		this.lifeMax = 1000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.knockBackResist = 0
		this.value = 500
		this.alpha = 255
	elseif this.type == 620 then
		this.lifeMax = 5000
		this.defense = 30
		this.damage = 70
		this.width = 34
		this.height = 58
		this.aiStyle = 107
		this.HitSound = SoundID.DD2_DrakinHurt
		this.DeathSound = SoundID.DD2_DrakinDeath
		this.knockBackResist = 0
		this.value = Item.buyPrice(0, 0, 75, 0)
		this.npcSlots = 0
		this.lavaImmune = true
		LazySetLiquidMovementDD2()
		this.netAlways = true
		this.alpha = 255
		this.rarity = 1
	elseif this.type == 621 then
		this.npcSlots = 5
		this.width = 28
		this.height = 28
		this.aiStyle = 6
		this.damage = 90
		this.defense = 0
		this.lifeMax = 6000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.value = Item.buyPrice(0, 0, 75, 0)
		this.alpha = 255
		this.rarity = 1
	elseif this.type == 622 then
		this.width = 28
		this.height = 28
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 60
		this.defense = 30
		this.lifeMax = 6000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.dontCountMe = true
		this.npcSlots = 0
		this.alpha = 255
	elseif this.type == 623 then
		this.width = 28
		this.height = 28
		this.aiStyle = 6
		this.netAlways = true
		this.damage = 50
		this.defense = 40
		this.lifeMax = 6000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.behindTiles = true
		this.dontCountMe = true
		this.npcSlots = 0
		this.alpha = 255
	elseif this.type == 624 then
		this.width = 14
		this.height = 30
		this.aiStyle = 3
		this.damage = 10
		this.defense = 0
		this.lifeMax = 25
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 1
		this.rarity = 1
	elseif this.type == 625 then
		this.width = 22
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 626 or this.type == 627 then
		this.width = 16
		this.height = 20
		this.aiStyle = 118
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 1
		if this.type == 627 then
			this.rarity = 3
		end
		this.catchItem = 4480
		if this.type == 627 then
			this.catchItem = 4482
		end
	elseif this.type == 628 then
		this.width = 22
		this.height = 40
		this.aiStyle = 119
		this.damage = 15
		this.defense = 0
		this.lifeMax = 50
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0
		this.value = 50
	elseif this.type == 629 then
		this.width = 24
		this.height = 24
		this.aiStyle = 25
		this.damage = 80
		this.defense = 30
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit4
		this.DeathSound = SoundID.NPCDeath6
		this.value = 100000
		this.knockBackResist = 0.3
		this.rarity = 4
	elseif this.type == 630 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 60
		this.defense = 18
		this.lifeMax = 180
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.5
		this.value = 700
	elseif this.type == 631 then
		this.width = 36
		this.height = 48
		this.scale = 1.1
		this.aiStyle = 3
		this.damage = 85
		this.defense = 35
		this.lifeMax = 1000
		this.HitSound = SoundID.NPCHit41
		this.DeathSound = SoundID.NPCDeath43
		this.knockBackResist = 0.1
		this.value = 50000
	elseif this.type == 632 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 14
		this.defense = 6
		this.lifeMax = 45
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 60
	elseif this.type == 633 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 634 then
		this.npcSlots = 0.5
		this.width = 22
		this.height = 18
		this.aiStyle = 14
		this.damage = 13
		this.defense = 2
		this.lifeMax = 16
		this.HitSound = SoundID.NPCHit1
		this.knockBackResist = 0.8
		this.DeathSound = SoundID.NPCDeath4
		this.value = 90
	elseif this.type == 635 then
		this.width = 18
		this.height = 40
		this.aiStyle = 3
		this.damage = 20
		this.defense = 8
		this.lifeMax = 60
		this.HitSound = SoundID.NPCHit2
		this.DeathSound = SoundID.NPCDeath2
		this.knockBackResist = 0.5
		this.value = 100
	elseif this.type == 636 then
		this.noGravity = true
		this.width = 100
		this.height = 100
		this.aiStyle = 120
		this.damage = 80
		this.defense = 50
		this.lifeMax = 70000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath65
		this.knockBackResist = 0
		this.value = 250000
		this.noTileCollide = true
		this.boss = true
		this.Opacity = 0
		this.dontTakeDamage = true
	elseif this.type == 637 or this.type == 638 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 28
		if this.type == 637 then
			this.height = 20
		end
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.5
		this.housingCategory = 1
	elseif this.type >= 639 and this.type <= 645 then
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = (4831 + (this.type - 639))
	elseif this.type >= 646 and this.type <= 652 then
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.catchItem = (4838 + (this.type - 646))
	elseif this.type == 653 then
		this.width = 10
		this.height = 10
		this.aiStyle = 65
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.25
		this.noGravity = true
		this.lavaImmune = true
		this.catchItem = 4845
	elseif this.type == 654 then
		this.width = 10
		this.height = 10
		this.aiStyle = 64
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.2
		this.noGravity = true
		this.lavaImmune = true
		this.catchItem = 4847
	elseif this.type == 655 then
		this.width = 14
		this.height = 14
		this.aiStyle = 67
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.5
		this.noGravity = true
		this.lavaImmune = true
		this.catchItem = 4849
	elseif this.type == 656 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 20
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.5
		this.housingCategory = 1
	elseif this.type == 657 then
		this.width = 114
		this.height = 100
		this.aiStyle = 121
		this.damage = 60
		this.defense = 26
		this.lifeMax = 18000
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath64
		this.lavaImmune = true
		this.knockBackResist = 0
		this.value = 60000
		this.boss = true
	elseif this.type == 658 or this.type == 659 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 40
		this.defense = 35
		this.lifeMax = 150
		this.scale = 1
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
	elseif this.type == 660 then
		this.width = 40
		this.height = 30
		this.aiStyle = 14
		this.damage = 50
		this.defense = 30
		this.lifeMax = 120
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.8
		this.scale = 1
	elseif this.type == 661 then
		this.width = 10
		this.height = 10
		this.aiStyle = 65
		this.damage = 0
		this.defense = 0
		this.lifeMax = 5
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.npcSlots = 0.25
		this.noGravity = true
		this.lavaImmune = true
		this.catchItem = 4961
		this.rarity = 4
	elseif this.type == 662 then
		this.width = 18
		this.height = 40
		this.aiStyle = 122
		this.damage = 75
		this.defense = 22
		this.lifeMax = 500
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath6
		this.knockBackResist = 0.2
		this.value = 0
		this.noTileCollide = true
		this.lavaImmune = true
		this.trapImmune = true
		this.noGravity = true
	elseif this.type == 663 then
		this.townNPC = true
		this.friendly = true
		this.width = 18
		this.height = 40
		this.aiStyle = 7
		this.damage = 10
		this.defense = 15
		this.lifeMax = 250
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
		this.knockBackResist = 0.5
	elseif this.type == 664 then
		this.lifeMax = 20
		this.boss = true
	elseif this.type == 665 then
		this.width = 16
		this.height = 16
		this.aiStyle = 9
		this.damage = 20
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = SoundID.NPCHit3
		this.DeathSound = SoundID.NPCDeath3
		this.noGravity = true
		this.noTileCollide = true
		this.alpha = 100
		this.knockBackResist = 0
	elseif this.type == 666 then
		this.width = 16
		this.height = 16
		this.aiStyle = 9
		this.damage = 65
		this.defense = 0
		this.lifeMax = 1
		this.HitSound = nil
		this.DeathSound = SoundID.NPCDeath9
		this.noGravity = true
		this.noTileCollide = true
		this.knockBackResist = 0
		this.scale = 0.9
		this.alpha = 80
	elseif this.type == 667 then
		this.width = 24
		this.height = 18
		this.aiStyle = 1
		this.damage = 5
		this.defense = 5
		this.lifeMax = 300
		this.knockBackResist = 1.4
		this.rarity = 2
		this.scale = 1
		this.value = Item.buyPrice(0, 15, 0, 0)
		this.HitSound = SoundID.NPCHit1
		this.DeathSound = SoundID.NPCDeath1
	end
-- ==================

	if (not spawnparams.sizeScaleOverride) then
		this.width = math.floor(this.width * this.scale)
		this.height = math.floor(this.height * this.scale)
	else
		local num3 = math.floor(this.width * this.scale)
		local num4 = math.floor(this.height * this.scale)
		--this.position.X = this.position.X + (num3 / 2)
		--this.position.Y = this.position.Y + num4
		this.scale = spawnparams.sizeScaleOverride
		this.width = math.floor(this.width * this.scale)
		this.height = math.floor(this.height * this.scale)
		if (this.height == 16 or this.height == 32) then
			this.height =  this.height + 1
		end
		--this.position.X = this.position.X - (this.width / 2)
		--this.position.Y = this.position.Y - this.height
	end
	this.life = this.lifeMax
	this.defDamage = this.damage
	this.defDefense = this.defense
	this.netID = this.type
	--1.4.1 move all debuff Immunity info here:
	if DebuffImmunity[this.type] then
		for _,v in ipairs(DebuffImmunity[this.type]) do
			this.buffImmune[v] = true
		end
	elseif ImmuneToAll[this.type] then
		this.buffImmuneAll = true
	elseif ImmuneToAllNotWhips[this.type] then
		this.buffImmuneAllNotWhips = true
	end
	if (Main.getGoodWorld) then
		this.getGoodAdjustments()
	end
	if (Main.tenthAnniversaryWorld) then
		this.getTenthAnniversaryAdjustments()
	end
	ScaleStats(spawnparams.playerCountForMultiplayerDifficultyOverride, spawnparams.gameModeData, spawnparams.strengthMultiplierOverride)
	this.life = this.lifeMax
end


--------------------


---Converts a table to a string.
---@param var table
---@return string
local function export(var)
	local resultStr = mw.dumpObject(var)
	resultStr = string.gsub(resultStr, "table#1 ", "")
	resultStr = string.gsub(resultStr, "metatable = table#2", "")
	resultStr = string.gsub(resultStr, "  +", "")
	resultStr = string.gsub(resultStr, "\n+", "\n")
	return resultStr
end

---Main function. Returns a table of stats for the specified NPC ID.
---@param npcid number
---@return table
local function npcinfo(npcid)

	Main.hardMode = false
	NPC.downedPlantBoss = false

	----------
	-- normal stats
	----------
	SetDefaults(npcid)
	if not ExcludedFromDeathTally(npcid) then
		this.banner = BannerToItem(npcToBanner(BannerID()))
	elseif npcid == 0 then
		this.banner = nil
	end
	local info = {}
	for k,v in pairs(this) do
		info[k] = v
	end
	info.buffImmune = {}
	for k,v in pairs(this.buffImmune) do
		info.buffImmune[k] = v
	end

	info.life = nil
	info.defDamage = nil
	info.defDefense = nil
	info.statsAreScaledForThisManyPlayers = nil
	info.strengthMultiplier = nil

	----------
	-- expert/master stats
	----------
	local fields = {'lifeMax', 'damage', 'defense', 'knockBackResist', 'value'}

	-- expert pre-hardmode
	Main.hardMode = false
	NPC.downedPlantBoss = false
	SetDefaults(npcid, {gameModeData = GameModeData.ExpertMode})
	for _, v in pairs(fields) do
		info[v .. '_e'] = this[v]
	end
	-- expert hardmode
	Main.hardMode = true
	SetDefaults(npcid, {gameModeData = GameModeData.ExpertMode})
	for _, v in pairs(fields) do
		info[v .. '_e_hm'] = this[v]
	end
	-- expert hardmode post-plantera
	NPC.downedPlantBoss = true
	SetDefaults(npcid, {gameModeData = GameModeData.ExpertMode})
	for _, v in pairs(fields) do
		info[v .. '_e_pp'] = this[v]
	end

	-- master pre-hardmode
	Main.hardMode = false
	NPC.downedPlantBoss = false
	SetDefaults(npcid, {gameModeData = GameModeData.MasterMode})
	for _, v in pairs(fields) do
		info[v .. '_m'] = this[v]
	end
	-- master hardmode
	Main.hardMode = true
	SetDefaults(npcid, {gameModeData = GameModeData.MasterMode})
	for _, v in pairs(fields) do
		info[v .. '_m_hm'] = this[v]
	end
	-- master hardmode post-plantera
	NPC.downedPlantBoss = true
	SetDefaults(npcid, {gameModeData = GameModeData.MasterMode})
	for _, v in pairs(fields) do
		info[v .. '_m_pp'] = this[v]
	end

	----------
	-- filter the stats
	----------
	local Valid = {} -- these are the stats that will be included, all others will be ignored
	do
		Valid.DeathSound = true
		Valid.HitSound = true
		Valid.Opacity = true
		Valid.aiStyle = true
		Valid.alpha = true
		Valid.behindTiles = true
		Valid.boss = true
		Valid.buffImmune = true
		Valid.buffImmuneAll = true
		Valid.buffImmuneAllNotWhips = true
		Valid.catchItem = true
		Valid.coldDamage = true
		Valid.damage = true
		Valid.damage_e = true
		Valid.damage_e_hm = true
		Valid.damage_e_pp = true
		Valid.damage_hm = true
		Valid.damage_m = true
		Valid.damage_m_hm = true
		Valid.damage_m_pp = true
		Valid.damage_pp = true
		Valid.defense = true
		Valid.defense_e = true
		Valid.defense_e_hm = true
		Valid.defense_e_pp = true
		Valid.defense_hm = true
		Valid.defense_m = true
		Valid.defense_m_hm = true
		Valid.defense_m_pp = true
		Valid.defense_pp = true
		Valid.dontCountMe = true
		Valid.dontTakeDamage = true
		Valid.friendly = true
		Valid.height = true
		Valid.housingCategory = true
		Valid.internalName = true
		Valid.knockBackResist = true
		Valid.knockBackResist_e = true
		Valid.knockBackResist_e_hm = true
		Valid.knockBackResist_e_pp = true
		Valid.knockBackResist_hm = true
		Valid.knockBackResist_m = true
		Valid.knockBackResist_m_hm = true
		Valid.knockBackResist_m_pp = true
		Valid.knockBackResist_pp = true
		Valid.lavaImmune = true
		Valid.lifeMax = true
		Valid.lifeMax_e = true
		Valid.lifeMax_e_hm = true
		Valid.lifeMax_e_pp = true
		Valid.lifeMax_hm = true
		Valid.lifeMax_m = true
		Valid.lifeMax_m_hm = true
		Valid.lifeMax_m_pp = true
		Valid.lifeMax_pp = true
		Valid.name = true
		Valid.netAlways = true
		Valid.netID = true
		Valid.noGravity = true
		Valid.noTileCollide = true
		Valid.npcSlots = true
		Valid.rarity = true
		Valid.scale = true
		Valid.timeLeft = true
		Valid.townNPC = true
		Valid.trapImmune = true
		Valid.type = true
		Valid.value = true
		Valid.value_e = true
		Valid.value_e_hm = true
		Valid.value_e_pp = true
		Valid.value_hm = true
		Valid.value_m = true
		Valid.value_m_hm = true
		Valid.value_m_pp = true
		Valid.value_pp = true
		Valid.width = true
		Valid.banner = true
	end

	for k,v in pairs(info) do
		if not Valid[k] then
			info[k] = nil
		end
	end

	if npcid == 0 then
		info.buffImmune = {}
	end

	return info
end

-----------------------------------------------------------------
-- main return object
return {

getInfo = function(npcid)
	return npcinfo(npcid)
end,

gen = function(frame)
	currentFrame = frame -- cache
	local min = tonumber(getArg(1)) or 0
	local max = tonumber(getArg(2)) or 0

	local output = ''

	local reset = npcinfo(0)

	for npcid = min, max do
		local npcinfoTable = npcinfo(npcid)
		local outputTable = {}
		if npcid == 0 then
			outputTable = reset
		else
			for stat, value in pairs(npcinfoTable) do
				if value ~= reset[stat] then
					outputTable[stat] = value -- only append to output if stat has a non-default value
				end
			end
		end
		local buffImmune = nil
		for k, v in pairs(npcinfoTable.buffImmune) do
			if v then
				if buffImmune then
					buffImmune = buffImmune .. ', ' .. k
				else
					buffImmune = k
				end
			end
		end
		outputTable.buffImmune = buffImmune
		outputTable.internalName = frame:expandTemplate{title = 'NpcInternalNameFromId', args = {npcid} }
		outputTable.name = frame:expandTemplate{title = 'gameText', args = {'NPCName.' .. outputTable.internalName} }
		if outputTable.name == '' then
			outputTable.name = frame:expandTemplate{title = 'gameText', args ={'NPCName.' .. frame:expandTemplate{title = 'NpcInternalNameFromId', args = {npcinfoTable.type} } } }
		end
		-- if still no name: body/tail of worm
		if npcid ~= 0 then -- but not if npcid == 0 (empty name is expected)
			local i = npcid
			while outputTable.name == '' do
				i = i - 1
				outputTable.name = frame:expandTemplate{title = 'gameText', args = {'NPCName.' .. frame:expandTemplate{title = 'NpcInternalNameFromId', args = {i} } } }
			end
		end

		output = output .. '\n[' .. npcid .. '] = ' .. export(outputTable) .. ',\n'
	end
	return output
end,
}